mbkauthe 4.8.2 → 4.8.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- <svg id="my-svg" width="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="flowchart" style="max-width: 6676.77px; background-color: white;" viewBox="0 0 6676.7734375 2685.125" role="graphics-document document" aria-roledescription="flowchart-v2"><style>#my-svg{font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#my-svg .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#my-svg .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#my-svg .error-icon{fill:#552222;}#my-svg .error-text{fill:#552222;stroke:#552222;}#my-svg .edge-thickness-normal{stroke-width:1px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-thickness-invisible{stroke-width:0;fill:none;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#333333;stroke:#333333;}#my-svg .marker.cross{stroke:#333333;}#my-svg svg{font-size:16px;}#my-svg p{margin:0;}#my-svg .label{color:#333;}#my-svg .cluster-label text{fill:#333;}#my-svg .cluster-label span{color:#333;}#my-svg .cluster-label span p{background-color:transparent;}#my-svg .label text,#my-svg span{fill:#333;color:#333;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#my-svg .rough-node .label text,#my-svg .node .label text,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-anchor:middle;}#my-svg .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#my-svg .rough-node .label,#my-svg .node .label,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-align:center;}#my-svg .node.clickable{cursor:pointer;}#my-svg .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#my-svg .arrowheadPath{fill:#333333;}#my-svg .edgePath .path{stroke:#333333;stroke-width:2.0px;}#my-svg .flowchart-link{stroke:#333333;fill:none;}#my-svg .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#my-svg .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#my-svg .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#my-svg .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#my-svg .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#my-svg .cluster text{fill:#333;}#my-svg .cluster span{color:#333;}#my-svg div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#my-svg .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#my-svg rect.text{fill:none;stroke-width:0;}#my-svg .icon-shape,#my-svg .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#my-svg .icon-shape p,#my-svg .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#my-svg .icon-shape rect,#my-svg .image-shape rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#my-svg .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#my-svg .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#my-svg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style><g><marker id="my-svg_flowchart-v2-pointEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="4.5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 5 L 10 10 L 10 0 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="11" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-1" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossEnd" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="12" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossStart" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="-1" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"/></marker><g class="root"><g class="clusters"/><g class="edgePaths"><path d="M244.586,110L244.586,114.167C244.586,118.333,244.586,126.667,244.586,146.26C244.586,165.854,244.586,196.708,244.586,212.135L244.586,227.563" id="L_A_B_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_A_B_0" data-points="W3sieCI6MjQ0LjU4NTkzNzUsInkiOjExMH0seyJ4IjoyNDQuNTg1OTM3NSwieSI6MTM1fSx7IngiOjI0NC41ODU5Mzc1LCJ5IjoyMzEuNTYyNX1d" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M209.67,309.563L193.471,327.656C177.272,345.75,144.874,381.938,128.675,411.531C112.477,441.125,112.477,464.125,112.477,475.625L112.477,487.125" id="L_B_Aerr_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_B_Aerr_0" data-points="W3sieCI6MjA5LjY3MDExNzkzMjAyMDMzLCJ5IjozMDkuNTYyNX0seyJ4IjoxMTIuNDc2NTYyNSwieSI6NDE4LjEyNX0seyJ4IjoxMTIuNDc2NTYyNSwieSI6NDkxLjEyNX1d" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M284.856,309.563L303.539,327.656C322.222,345.75,359.587,381.938,378.27,409.531C396.953,437.125,396.953,456.125,396.953,465.625L396.953,475.125" id="L_B_C_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_B_C_0" data-points="W3sieCI6Mjg0Ljg1NTc5MTM3NTQ3NjUsInkiOjMwOS41NjI1fSx7IngiOjM5Ni45NTMxMjUsInkiOjQxOC4xMjV9LHsieCI6Mzk2Ljk1MzEyNSwieSI6NDc5LjEyNX1d" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M396.121,557.125L395.904,567.292C395.688,577.458,395.254,597.792,395.037,617.458C394.82,637.125,394.82,656.125,394.82,665.625L394.82,675.125" id="L_C_U404_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_C_U404_0" data-points="W3sieCI6Mzk2LjEyMTMyODEyNSwieSI6NTU3LjEyNX0seyJ4IjozOTQuODIwMzEyNSwieSI6NjE4LjEyNX0seyJ4IjozOTQuODIwMzEyNSwieSI6Njc5LjEyNX1d" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M511.759,557.125L541.688,567.292C571.616,577.458,631.472,597.792,661.4,615.458C691.328,633.125,691.328,648.125,691.328,655.625L691.328,663.125" id="L_C_D_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_C_D_0" data-points="W3sieCI6NTExLjc1OTM3NSwieSI6NTU3LjEyNX0seyJ4Ijo2OTEuMzI4MTI1LCJ5Ijo2MTguMTI1fSx7IngiOjY5MS4zMjgxMjUsInkiOjY2Ny4xMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M625.221,745.125L611.378,753.292C597.536,761.458,569.85,777.792,556.007,795.458C542.164,813.125,542.164,832.125,542.164,841.625L542.164,851.125" id="L_D_P401_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_D_P401_0" data-points="W3sieCI6NjI1LjIyMTMyNDU3Mzg2MzYsInkiOjc0NS4xMjV9LHsieCI6NTQyLjE2NDA2MjUsInkiOjc5NC4xMjV9LHsieCI6NTQyLjE2NDA2MjUsInkiOjg1NS4xMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M757.435,745.125L771.278,753.292C785.121,761.458,812.806,777.792,826.649,793.458C840.492,809.125,840.492,824.125,840.492,831.625L840.492,839.125" id="L_D_E_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_D_E_0" data-points="W3sieCI6NzU3LjQzNDkyNTQyNjEzNjQsInkiOjc0NS4xMjV9LHsieCI6ODQwLjQ5MjE4NzUsInkiOjc5NC4xMjV9LHsieCI6ODQwLjQ5MjE4NzUsInkiOjg0My4xMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M710.492,908.888L660.917,919.095C611.342,929.301,512.193,949.713,462.618,969.419C413.043,989.125,413.043,1008.125,413.043,1017.625L413.043,1027.125" id="L_E_I403_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_E_I403_0" data-points="W3sieCI6NzEwLjQ5MjE4NzUsInkiOjkwOC44ODg0MTMwNTE2MjM1fSx7IngiOjQxMy4wNDI5Njg3NSwieSI6OTcwLjEyNX0seyJ4Ijo0MTMuMDQyOTY4NzUsInkiOjEwMzEuMTI1fV0=" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M774.339,921.125L760.486,929.292C746.633,937.458,718.928,953.792,705.075,971.458C691.223,989.125,691.223,1008.125,691.223,1017.625L691.223,1027.125" id="L_E_A403_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_E_A403_0" data-points="W3sieCI6Nzc0LjMzODY0NTI0MTQ3NzMsInkiOjkyMS4xMjV9LHsieCI6NjkxLjIyMjY1NjI1LCJ5Ijo5NzAuMTI1fSx7IngiOjY5MS4yMjI2NTYyNSwieSI6MTAzMS4xMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M906.646,921.125L920.498,929.292C934.351,937.458,962.056,953.792,975.909,969.458C989.762,985.125,989.762,1000.125,989.762,1007.625L989.762,1015.125" id="L_E_F_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_E_F_0" data-points="W3sieCI6OTA2LjY0NTcyOTc1ODUyMjcsInkiOjkyMS4xMjV9LHsieCI6OTg5Ljc2MTcxODc1LCJ5Ijo5NzAuMTI1fSx7IngiOjk4OS43NjE3MTg3NSwieSI6MTAxOS4xMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M859.762,1077.865L771.67,1091.242C683.578,1104.619,507.395,1131.372,443.833,1156.625C380.271,1181.877,429.33,1205.63,453.86,1217.506L478.39,1229.382" id="L_F_G_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_F_G_0" data-points="W3sieCI6ODU5Ljc2MTcxODc1LCJ5IjoxMDc3Ljg2NTMxNTIwNDQzMjF9LHsieCI6MzMxLjIxMDkzNzUsInkiOjExNTguMTI1fSx7IngiOjQ4MS45OTAxNTYyNSwieSI6MTIzMS4xMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1095.373,1097.125L1122.904,1107.292C1150.435,1117.458,1205.497,1137.792,1233.028,1155.458C1260.559,1173.125,1260.559,1188.125,1260.559,1195.625L1260.559,1203.125" id="L_F_H_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_F_H_0" data-points="W3sieCI6MTA5NS4zNzI1LCJ5IjoxMDk3LjEyNX0seyJ4IjoxMjYwLjU1ODU5Mzc1LCJ5IjoxMTU4LjEyNX0seyJ4IjoxMjYwLjU1ODU5Mzc1LCJ5IjoxMjA3LjEyNX1d" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M987.039,1097.125L986.33,1107.292C985.62,1117.458,984.201,1137.792,928.123,1160.4C872.046,1183.008,761.31,1207.891,705.942,1220.333L650.575,1232.774" id="L_F_G_2" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_F_G_2" data-points="W3sieCI6OTg3LjAzOTMzNTkzNzUsInkiOjEwOTcuMTI1fSx7IngiOjk4Mi43ODEyNSwieSI6MTE1OC4xMjV9LHsieCI6NjQ2LjY3MTg3NSwieSI6MTIzMy42NTEyMTg3NzM1ODk4fV0=" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M537.758,1285.125L537.758,1297.292C537.758,1309.458,537.758,1333.792,537.758,1355.458C537.758,1377.125,537.758,1396.125,537.758,1405.625L537.758,1415.125" id="L_G_Gdel_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_G_Gdel_0" data-points="W3sieCI6NTM3Ljc1NzgxMjUsInkiOjEyODUuMTI1fSx7IngiOjUzNy43NTc4MTI1LCJ5IjoxMzU4LjEyNX0seyJ4Ijo1MzcuNzU3ODEyNSwieSI6MTQxOS4xMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M537.758,1497.125L537.758,1503.292C537.758,1509.458,537.758,1521.792,537.758,1531.458C537.758,1541.125,537.758,1548.125,537.758,1551.625L537.758,1555.125" id="L_Gdel_Gregen_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Gdel_Gregen_0" data-points="W3sieCI6NTM3Ljc1NzgxMjUsInkiOjE0OTcuMTI1fSx7IngiOjUzNy43NTc4MTI1LCJ5IjoxNTM0LjEyNX0seyJ4Ijo1MzcuNzU3ODEyNSwieSI6MTU1OS4xMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M537.758,1637.125L537.758,1641.292C537.758,1645.458,537.758,1653.792,537.758,1661.458C537.758,1669.125,537.758,1676.125,537.758,1679.625L537.758,1683.125" id="L_Gregen_Gprune_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Gregen_Gprune_0" data-points="W3sieCI6NTM3Ljc1NzgxMjUsInkiOjE2MzcuMTI1fSx7IngiOjUzNy43NTc4MTI1LCJ5IjoxNjYyLjEyNX0seyJ4Ijo1MzcuNzU3ODEyNSwieSI6MTY4Ny4xMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M537.758,1789.125L537.758,1793.292C537.758,1797.458,537.758,1805.792,537.758,1813.458C537.758,1821.125,537.758,1828.125,537.758,1831.625L537.758,1835.125" id="L_Gprune_Gcache_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Gprune_Gcache_0" data-points="W3sieCI6NTM3Ljc1NzgxMjUsInkiOjE3ODkuMTI1fSx7IngiOjUzNy43NTc4MTI1LCJ5IjoxODE0LjEyNX0seyJ4Ijo1MzcuNzU3ODEyNSwieSI6MTgzOS4xMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M537.758,1893.125L537.758,1897.292C537.758,1901.458,537.758,1909.792,537.758,1917.458C537.758,1925.125,537.758,1932.125,537.758,1935.625L537.758,1939.125" id="L_Gcache_Ginsert_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Gcache_Ginsert_0" data-points="W3sieCI6NTM3Ljc1NzgxMjUsInkiOjE4OTMuMTI1fSx7IngiOjUzNy43NTc4MTI1LCJ5IjoxOTE4LjEyNX0seyJ4Ijo1MzcuNzU3ODEyNSwieSI6MTk0My4xMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M537.758,2021.125L537.758,2025.292C537.758,2029.458,537.758,2037.792,537.758,2045.458C537.758,2053.125,537.758,2060.125,537.758,2063.625L537.758,2067.125" id="L_Ginsert_Glast_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Ginsert_Glast_0" data-points="W3sieCI6NTM3Ljc1NzgxMjUsInkiOjIwMjEuMTI1fSx7IngiOjUzNy43NTc4MTI1LCJ5IjoyMDQ2LjEyNX0seyJ4Ijo1MzcuNzU3ODEyNSwieSI6MjA3MS4xMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M537.758,2149.125L537.758,2153.292C537.758,2157.458,537.758,2165.792,537.758,2173.458C537.758,2181.125,537.758,2188.125,537.758,2191.625L537.758,2195.125" id="L_Glast_Gcookies_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Glast_Gcookies_0" data-points="W3sieCI6NTM3Ljc1NzgxMjUsInkiOjIxNDkuMTI1fSx7IngiOjUzNy43NTc4MTI1LCJ5IjoyMTc0LjEyNX0seyJ4Ijo1MzcuNzU3ODEyNSwieSI6MjE5OS4xMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M537.758,2349.125L537.758,2355.292C537.758,2361.458,537.758,2373.792,537.758,2385.458C537.758,2397.125,537.758,2408.125,537.758,2413.625L537.758,2419.125" id="L_Gcookies_Gtrust_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Gcookies_Gtrust_0" data-points="W3sieCI6NTM3Ljc1NzgxMjUsInkiOjIzNDkuMTI1fSx7IngiOjUzNy43NTc4MTI1LCJ5IjoyMzg2LjEyNX0seyJ4Ijo1MzcuNzU3ODEyNSwieSI6MjQyMy4xMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M427.267,2349.125L418.182,2355.292C409.097,2361.458,390.927,2373.792,381.843,2394.625C372.758,2415.458,372.758,2444.792,372.758,2472.125C372.758,2499.458,372.758,2524.792,381.198,2541.346C389.639,2557.901,406.52,2565.676,414.96,2569.564L423.401,2573.452" id="L_Gcookies_RESP_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Gcookies_RESP_0" data-points="W3sieCI6NDI3LjI2Njc0MTA3MTQyODU2LCJ5IjoyMzQ5LjEyNX0seyJ4IjozNzIuNzU3ODEyNSwieSI6MjM4Ni4xMjV9LHsieCI6MzcyLjc1NzgxMjUsInkiOjI0NzQuMTI1fSx7IngiOjM3Mi43NTc4MTI1LCJ5IjoyNTUwLjEyNX0seyJ4Ijo0MjcuMDM0MTI4Mjg5NDczNywieSI6MjU3NS4xMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M537.758,2525.125L537.758,2529.292C537.758,2533.458,537.758,2541.792,537.758,2549.458C537.758,2557.125,537.758,2564.125,537.758,2567.625L537.758,2571.125" id="L_Gtrust_RESP_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Gtrust_RESP_0" data-points="W3sieCI6NTM3Ljc1NzgxMjUsInkiOjI1MjUuMTI1fSx7IngiOjUzNy43NTc4MTI1LCJ5IjoyNTUwLjEyNX0seyJ4Ijo1MzcuNzU3ODEyNSwieSI6MjU3NS4xMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1281.547,110L1281.547,114.167C1281.547,118.333,1281.547,126.667,1281.547,144.26C1281.547,161.854,1281.547,188.708,1281.547,202.135L1281.547,215.563" id="L_A2_B2_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_A2_B2_0" data-points="W3sieCI6MTI4MS41NDY4NzUsInkiOjExMH0seyJ4IjoxMjgxLjU0Njg3NSwieSI6MTM1fSx7IngiOjEyODEuNTQ2ODc1LCJ5IjoyMTkuNTYyNX1d" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1231.005,321.563L1215.055,337.656C1199.106,353.75,1167.207,385.938,1151.258,413.531C1135.309,441.125,1135.309,464.125,1135.309,475.625L1135.309,487.125" id="L_B2_Err401_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_B2_Err401_0" data-points="W3sieCI6MTIzMS4wMDQ1NDY1Mzc0ODQyLCJ5IjozMjEuNTYyNX0seyJ4IjoxMTM1LjMwODU5Mzc1LCJ5Ijo0MTguMTI1fSx7IngiOjExMzUuMzA4NTkzNzUsInkiOjQ5MS4xMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1332.089,321.563L1348.039,337.656C1363.988,353.75,1395.887,385.938,1411.836,411.531C1427.785,437.125,1427.785,456.125,1427.785,465.625L1427.785,475.125" id="L_B2_C2_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_B2_C2_0" data-points="W3sieCI6MTMzMi4wODkyMDM0NjI1MTU4LCJ5IjozMjEuNTYyNX0seyJ4IjoxNDI3Ljc4NTE1NjI1LCJ5Ijo0MTguMTI1fSx7IngiOjE0MjcuNzg1MTU2MjUsInkiOjQ3OS4xMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1427.785,557.125L1427.785,567.292C1427.785,577.458,1427.785,597.792,1427.785,615.458C1427.785,633.125,1427.785,648.125,1427.785,655.625L1427.785,663.125" id="L_C2_D2_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_C2_D2_0" data-points="W3sieCI6MTQyNy43ODUxNTYyNSwieSI6NTU3LjEyNX0seyJ4IjoxNDI3Ljc4NTE1NjI1LCJ5Ijo2MTguMTI1fSx7IngiOjE0MjcuNzg1MTU2MjUsInkiOjY2Ny4xMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1427.785,745.125L1427.785,753.292C1427.785,761.458,1427.785,777.792,1427.785,795.458C1427.785,813.125,1427.785,832.125,1427.785,841.625L1427.785,851.125" id="L_D2_E2_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_D2_E2_0" data-points="W3sieCI6MTQyNy43ODUxNTYyNSwieSI6NzQ1LjEyNX0seyJ4IjoxNDI3Ljc4NTE1NjI1LCJ5Ijo3OTQuMTI1fSx7IngiOjE0MjcuNzg1MTU2MjUsInkiOjg1NS4xMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1382.704,909.125L1365.73,919.292C1348.755,929.458,1314.805,949.792,1297.83,969.458C1280.855,989.125,1280.855,1008.125,1280.855,1017.625L1280.855,1027.125" id="L_E2_T401_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_E2_T401_0" data-points="W3sieCI6MTM4Mi43MDQ0NTY2NzYxMzYzLCJ5Ijo5MDkuMTI1fSx7IngiOjEyODAuODU1NDY4NzUsInkiOjk3MC4xMjV9LHsieCI6MTI4MC44NTU0Njg3NSwieSI6MTAzMS4xMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1471.591,909.125L1488.085,919.292C1504.58,929.458,1537.569,949.792,1554.064,969.458C1570.559,989.125,1570.559,1008.125,1570.559,1017.625L1570.559,1027.125" id="L_E2_F2_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_E2_F2_0" data-points="W3sieCI6MTQ3MS41OTA2NDI3NTU2ODE4LCJ5Ijo5MDkuMTI1fSx7IngiOjE1NzAuNTU4NTkzNzUsInkiOjk3MC4xMjV9LHsieCI6MTU3MC41NTg1OTM3NSwieSI6MTAzMS4xMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1570.559,1085.125L1570.559,1097.292C1570.559,1109.458,1570.559,1133.792,1570.559,1155.458C1570.559,1177.125,1570.559,1196.125,1570.559,1205.625L1570.559,1215.125" id="L_F2_RESP2_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_F2_RESP2_0" data-points="W3sieCI6MTU3MC41NTg1OTM3NSwieSI6MTA4NS4xMjV9LHsieCI6MTU3MC41NTg1OTM3NSwieSI6MTE1OC4xMjV9LHsieCI6MTU3MC41NTg1OTM3NSwieSI6MTIxOS4xMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1844.621,86L1844.621,94.167C1844.621,102.333,1844.621,118.667,1844.621,130.333C1844.621,142,1844.621,149,1844.621,152.5L1844.621,156" id="L_L1_L2_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_L1_L2_0" data-points="W3sieCI6MTg0NC42MjEwOTM3NSwieSI6ODZ9LHsieCI6MTg0NC42MjEwOTM3NSwieSI6MTM1fSx7IngiOjE4NDQuNjIxMDkzNzUsInkiOjE2MH1d" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1791.003,327.506L1776.781,342.61C1762.56,357.713,1734.118,387.919,1719.897,414.522C1705.676,441.125,1705.676,464.125,1705.676,475.625L1705.676,487.125" id="L_L2_Lerr_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_L2_Lerr_0" data-points="W3sieCI6MTc5MS4wMDI1MTcwNzIzMzUyLCJ5IjozMjcuNTA2NDIzMzIyMzM1MjV9LHsieCI6MTcwNS42NzU3ODEyNSwieSI6NDE4LjEyNX0seyJ4IjoxNzA1LjY3NTc4MTI1LCJ5Ijo0OTEuMTI1fV0=" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1898.24,327.506L1912.461,342.61C1926.682,357.713,1955.124,387.919,1969.345,412.522C1983.566,437.125,1983.566,456.125,1983.566,465.625L1983.566,475.125" id="L_L2_L3_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_L2_L3_0" data-points="W3sieCI6MTg5OC4yMzk2NzA0Mjc2NjQ4LCJ5IjozMjcuNTA2NDIzMzIyMzM1MjV9LHsieCI6MTk4My41NjY0MDYyNSwieSI6NDE4LjEyNX0seyJ4IjoxOTgzLjU2NjQwNjI1LCJ5Ijo0NzkuMTI1fV0=" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1983.566,557.125L1983.566,567.292C1983.566,577.458,1983.566,597.792,1983.566,617.458C1983.566,637.125,1983.566,656.125,1983.566,665.625L1983.566,675.125" id="L_L3_L4_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_L3_L4_0" data-points="W3sieCI6MTk4My41NjY0MDYyNSwieSI6NTU3LjEyNX0seyJ4IjoxOTgzLjU2NjQwNjI1LCJ5Ijo2MTguMTI1fSx7IngiOjE5ODMuNTY2NDA2MjUsInkiOjY3OS4xMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1983.566,733.125L1983.566,743.292C1983.566,753.458,1983.566,773.792,1983.566,791.458C1983.566,809.125,1983.566,824.125,1983.566,831.625L1983.566,839.125" id="L_L4_L5_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_L4_L5_0" data-points="W3sieCI6MTk4My41NjY0MDYyNSwieSI6NzMzLjEyNX0seyJ4IjoxOTgzLjU2NjQwNjI1LCJ5Ijo3OTQuMTI1fSx7IngiOjE5ODMuNTY2NDA2MjUsInkiOjg0My4xMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1983.566,921.125L1983.566,929.292C1983.566,937.458,1983.566,953.792,1983.566,971.458C1983.566,989.125,1983.566,1008.125,1983.566,1017.625L1983.566,1027.125" id="L_L5_LResp_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_L5_LResp_0" data-points="W3sieCI6MTk4My41NjY0MDYyNSwieSI6OTIxLjEyNX0seyJ4IjoxOTgzLjU2NjQwNjI1LCJ5Ijo5NzAuMTI1fSx7IngiOjE5ODMuNTY2NDA2MjUsInkiOjEwMzEuMTI1fV0=" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M2449.93,98L2449.93,104.167C2449.93,110.333,2449.93,122.667,2449.93,146.26C2449.93,169.854,2449.93,204.708,2449.93,222.135L2449.93,239.563" id="L_AS1_AS2_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_AS1_AS2_0" data-points="W3sieCI6MjQ0OS45Mjk2ODc1LCJ5Ijo5OH0seyJ4IjoyNDQ5LjkyOTY4NzUsInkiOjEzNX0seyJ4IjoyNDQ5LjkyOTY4NzUsInkiOjI0My41NjI1fV0=" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M2421.319,297.563L2400.027,317.656C2378.735,337.75,2336.151,377.938,2314.859,407.531C2293.566,437.125,2293.566,456.125,2293.566,465.625L2293.566,475.125" id="L_AS2_ASresp_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_AS2_ASresp_0" data-points="W3sieCI6MjQyMS4zMTkzNzkzNjc4NTI0LCJ5IjoyOTcuNTYyNX0seyJ4IjoyMjkzLjU2NjQwNjI1LCJ5Ijo0MTguMTI1fSx7IngiOjIyOTMuNTY2NDA2MjUsInkiOjQ3OS4xMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M2478.041,297.563L2498.962,317.656C2519.883,337.75,2561.725,377.938,2582.646,403.531C2603.566,429.125,2603.566,440.125,2603.566,445.625L2603.566,451.125" id="L_AS2_AS3_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_AS2_AS3_0" data-points="W3sieCI6MjQ3OC4wNDExMDc0NDkxNzQsInkiOjI5Ny41NjI1fSx7IngiOjI2MDMuNTY2NDA2MjUsInkiOjQxOC4xMjV9LHsieCI6MjYwMy41NjY0MDYyNSwieSI6NDU1LjEyNX1d" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M2505.232,581.125L2495.607,587.292C2485.982,593.458,2466.731,605.792,2457.106,617.458C2447.48,629.125,2447.48,640.125,2447.48,645.625L2447.48,651.125" id="L_AS3_AS4_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_AS3_AS4_0" data-points="W3sieCI6MjUwNS4yMzIyNjU2MjUsInkiOjU4MS4xMjV9LHsieCI6MjQ0Ny40ODA0Njg3NSwieSI6NjE4LjEyNX0seyJ4IjoyNDQ3LjQ4MDQ2ODc1LCJ5Ijo2NTUuMTI1fV0=" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M2701.216,581.125L2710.775,587.292C2720.333,593.458,2739.45,605.792,2749.008,619.458C2758.566,633.125,2758.566,648.125,2758.566,655.625L2758.566,663.125" id="L_AS3_AS5_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_AS3_AS5_0" data-points="W3sieCI6MjcwMS4yMTY0MDYyNSwieSI6NTgxLjEyNX0seyJ4IjoyNzU4LjU2NjQwNjI1LCJ5Ijo2MTguMTI1fSx7IngiOjI3NTguNTY2NDA2MjUsInkiOjY2Ny4xMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M2758.566,745.125L2758.566,753.292C2758.566,761.458,2758.566,777.792,2758.566,793.458C2758.566,809.125,2758.566,824.125,2758.566,831.625L2758.566,839.125" id="L_AS5_ASresp2_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_AS5_ASresp2_0" data-points="W3sieCI6Mjc1OC41NjY0MDYyNSwieSI6NzQ1LjEyNX0seyJ4IjoyNzU4LjU2NjQwNjI1LCJ5Ijo3OTQuMTI1fSx7IngiOjI3NTguNTY2NDA2MjUsInkiOjg0My4xMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M3061.625,98L3061.625,104.167C3061.625,110.333,3061.625,122.667,3061.625,146.26C3061.625,169.854,3061.625,204.708,3061.625,222.135L3061.625,239.563" id="L_SS1_SS2_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_SS1_SS2_0" data-points="W3sieCI6MzA2MS42MjUsInkiOjk4fSx7IngiOjMwNjEuNjI1LCJ5IjoxMzV9LHsieCI6MzA2MS42MjUsInkiOjI0My41NjI1fV0=" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M3034.533,297.563L3014.37,317.656C2994.208,337.75,2953.883,377.938,2933.721,409.531C2913.559,441.125,2913.559,464.125,2913.559,475.625L2913.559,487.125" id="L_SS2_SSerr400_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_SS2_SSerr400_0" data-points="W3sieCI6MzAzNC41MzI3OTg2MDIyODcsInkiOjI5Ny41NjI1fSx7IngiOjI5MTMuNTU4NTkzNzUsInkiOjQxOC4xMjV9LHsieCI6MjkxMy41NTg1OTM3NSwieSI6NDkxLjEyNX1d" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M3088.225,297.563L3108.022,317.656C3127.818,337.75,3167.411,377.938,3187.207,407.531C3207.004,437.125,3207.004,456.125,3207.004,465.625L3207.004,475.125" id="L_SS2_SS3_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_SS2_SS3_0" data-points="W3sieCI6MzA4OC4yMjU0NjA2MDk5MTEsInkiOjI5Ny41NjI1fSx7IngiOjMyMDcuMDAzOTA2MjUsInkiOjQxOC4xMjV9LHsieCI6MzIwNy4wMDM5MDYyNSwieSI6NDc5LjEyNX1d" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M3153.013,557.125L3138.939,567.292C3124.864,577.458,3096.715,597.792,3082.641,615.458C3068.566,633.125,3068.566,648.125,3068.566,655.625L3068.566,663.125" id="L_SS3_SSerr403_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_SS3_SSerr403_0" data-points="W3sieCI6MzE1My4wMTMyODEyNSwieSI6NTU3LjEyNX0seyJ4IjozMDY4LjU2NjQwNjI1LCJ5Ijo2MTguMTI1fSx7IngiOjMwNjguNTY2NDA2MjUsInkiOjY2Ny4xMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M3260.995,557.125L3275.069,567.292C3289.143,577.458,3317.292,597.792,3331.367,617.458C3345.441,637.125,3345.441,656.125,3345.441,665.625L3345.441,675.125" id="L_SS3_SS4_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_SS3_SS4_0" data-points="W3sieCI6MzI2MC45OTQ1MzEyNSwieSI6NTU3LjEyNX0seyJ4IjozMzQ1LjQ0MTQwNjI1LCJ5Ijo2MTguMTI1fSx7IngiOjMzNDUuNDQxNDA2MjUsInkiOjY3OS4xMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M3299.197,733.125L3281.784,743.292C3264.371,753.458,3229.545,773.792,3212.132,793.458C3194.719,813.125,3194.719,832.125,3194.719,841.625L3194.719,851.125" id="L_SS4_SSerr401_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_SS4_SSerr401_0" data-points="W3sieCI6MzI5OS4xOTY5NTQ5MDA1NjgsInkiOjczMy4xMjV9LHsieCI6MzE5NC43MTg3NSwieSI6Nzk0LjEyNX0seyJ4IjozMTk0LjcxODc1LCJ5Ijo4NTUuMTI1fV0=" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M3389.229,733.125L3405.717,743.292C3422.205,753.458,3455.18,773.792,3471.668,789.458C3488.156,805.125,3488.156,816.125,3488.156,821.625L3488.156,827.125" id="L_SS4_SS5_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_SS4_SS5_0" data-points="W3sieCI6MzM4OS4yMjg5MTUxMjc4NDEsInkiOjczMy4xMjV9LHsieCI6MzQ4OC4xNTYyNSwieSI6Nzk0LjEyNX0seyJ4IjozNDg4LjE1NjI1LCJ5Ijo4MzEuMTI1fV0=" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M3488.156,933.125L3488.156,939.292C3488.156,945.458,3488.156,957.792,3488.156,971.458C3488.156,985.125,3488.156,1000.125,3488.156,1007.625L3488.156,1015.125" id="L_SS5_SS6_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_SS5_SS6_0" data-points="W3sieCI6MzQ4OC4xNTYyNSwieSI6OTMzLjEyNX0seyJ4IjozNDg4LjE1NjI1LCJ5Ijo5NzAuMTI1fSx7IngiOjM0ODguMTU2MjUsInkiOjEwMTkuMTI1fV0=" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M3488.156,1097.125L3488.156,1107.292C3488.156,1117.458,3488.156,1137.792,3488.156,1155.458C3488.156,1173.125,3488.156,1188.125,3488.156,1195.625L3488.156,1203.125" id="L_SS6_SSresp_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_SS6_SSresp_0" data-points="W3sieCI6MzQ4OC4xNTYyNSwieSI6MTA5Ny4xMjV9LHsieCI6MzQ4OC4xNTYyNSwieSI6MTE1OC4xMjV9LHsieCI6MzQ4OC4xNTYyNSwieSI6MTIwNy4xMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M3798.164,86L3798.164,94.167C3798.164,102.333,3798.164,118.667,3798.164,144.26C3798.164,169.854,3798.164,204.708,3798.164,222.135L3798.164,239.563" id="L_LA1_LA2_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_LA1_LA2_0" data-points="W3sieCI6Mzc5OC4xNjQwNjI1LCJ5Ijo4Nn0seyJ4IjozNzk4LjE2NDA2MjUsInkiOjEzNX0seyJ4IjozNzk4LjE2NDA2MjUsInkiOjI0My41NjI1fV0=" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M3798.164,297.563L3798.164,317.656C3798.164,337.75,3798.164,377.938,3798.164,407.531C3798.164,437.125,3798.164,456.125,3798.164,465.625L3798.164,475.125" id="L_LA2_LA3_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_LA2_LA3_0" data-points="W3sieCI6Mzc5OC4xNjQwNjI1LCJ5IjoyOTcuNTYyNX0seyJ4IjozNzk4LjE2NDA2MjUsInkiOjQxOC4xMjV9LHsieCI6Mzc5OC4xNjQwNjI1LCJ5Ijo0NzkuMTI1fV0=" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M3798.164,557.125L3798.164,567.292C3798.164,577.458,3798.164,597.792,3798.164,617.458C3798.164,637.125,3798.164,656.125,3798.164,665.625L3798.164,675.125" id="L_LA3_LA4_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_LA3_LA4_0" data-points="W3sieCI6Mzc5OC4xNjQwNjI1LCJ5Ijo1NTcuMTI1fSx7IngiOjM3OTguMTY0MDYyNSwieSI6NjE4LjEyNX0seyJ4IjozNzk4LjE2NDA2MjUsInkiOjY3OS4xMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M3798.164,733.125L3798.164,743.292C3798.164,753.458,3798.164,773.792,3798.164,791.458C3798.164,809.125,3798.164,824.125,3798.164,831.625L3798.164,839.125" id="L_LA4_LA5_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_LA4_LA5_0" data-points="W3sieCI6Mzc5OC4xNjQwNjI1LCJ5Ijo3MzMuMTI1fSx7IngiOjM3OTguMTY0MDYyNSwieSI6Nzk0LjEyNX0seyJ4IjozNzk4LjE2NDA2MjUsInkiOjg0My4xMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M3798.164,921.125L3798.164,929.292C3798.164,937.458,3798.164,953.792,3798.164,967.458C3798.164,981.125,3798.164,992.125,3798.164,997.625L3798.164,1003.125" id="L_LA5_LA6_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_LA5_LA6_0" data-points="W3sieCI6Mzc5OC4xNjQwNjI1LCJ5Ijo5MjEuMTI1fSx7IngiOjM3OTguMTY0MDYyNSwieSI6OTcwLjEyNX0seyJ4IjozNzk4LjE2NDA2MjUsInkiOjEwMDcuMTI1fV0=" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M3798.164,1109.125L3798.164,1117.292C3798.164,1125.458,3798.164,1141.792,3798.164,1159.458C3798.164,1177.125,3798.164,1196.125,3798.164,1205.625L3798.164,1215.125" id="L_LA6_LAresp_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_LA6_LAresp_0" data-points="W3sieCI6Mzc5OC4xNjQwNjI1LCJ5IjoxMTA5LjEyNX0seyJ4IjozNzk4LjE2NDA2MjUsInkiOjExNTguMTI1fSx7IngiOjM3OTguMTY0MDYyNSwieSI6MTIxOS4xMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M4252.434,110L4252.434,114.167C4252.434,118.333,4252.434,126.667,4252.434,142.26C4252.434,157.854,4252.434,180.708,4252.434,192.135L4252.434,203.563" id="L_O1_O2_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_O1_O2_0" data-points="W3sieCI6NDI1Mi40MzM1OTM3NSwieSI6MTEwfSx7IngiOjQyNTIuNDMzNTkzNzUsInkiOjEzNX0seyJ4Ijo0MjUyLjQzMzU5Mzc1LCJ5IjoyMDcuNTYyNX1d" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M4252.434,333.563L4252.434,347.656C4252.434,361.75,4252.434,389.938,4252.434,411.531C4252.434,433.125,4252.434,448.125,4252.434,455.625L4252.434,463.125" id="L_O2_O3_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_O2_O3_0" data-points="W3sieCI6NDI1Mi40MzM1OTM3NSwieSI6MzMzLjU2MjV9LHsieCI6NDI1Mi40MzM1OTM3NSwieSI6NDE4LjEyNX0seyJ4Ijo0MjUyLjQzMzU5Mzc1LCJ5Ijo0NjcuMTI1fV0=" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M4252.434,569.125L4252.434,577.292C4252.434,585.458,4252.434,601.792,4252.434,615.458C4252.434,629.125,4252.434,640.125,4252.434,645.625L4252.434,651.125" id="L_O3_O4_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_O3_O4_0" data-points="W3sieCI6NDI1Mi40MzM1OTM3NSwieSI6NTY5LjEyNX0seyJ4Ijo0MjUyLjQzMzU5Mzc1LCJ5Ijo2MTguMTI1fSx7IngiOjQyNTIuNDMzNTkzNzUsInkiOjY1NS4xMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M4252.434,757.125L4252.434,763.292C4252.434,769.458,4252.434,781.792,4252.434,793.458C4252.434,805.125,4252.434,816.125,4252.434,821.625L4252.434,827.125" id="L_O4_O5_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_O4_O5_0" data-points="W3sieCI6NDI1Mi40MzM1OTM3NSwieSI6NzU3LjEyNX0seyJ4Ijo0MjUyLjQzMzU5Mzc1LCJ5Ijo3OTQuMTI1fSx7IngiOjQyNTIuNDMzNTkzNzUsInkiOjgzMS4xMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M4162.663,933.125L4151.808,939.292C4140.954,945.458,4119.244,957.792,4108.39,973.458C4097.535,989.125,4097.535,1008.125,4097.535,1017.625L4097.535,1027.125" id="L_O5_Oerr_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_O5_Oerr_0" data-points="W3sieCI6NDE2Mi42NjI5MDgzODA2ODIsInkiOjkzMy4xMjV9LHsieCI6NDA5Ny41MzUxNTYyNSwieSI6OTcwLjEyNX0seyJ4Ijo0MDk3LjUzNTE1NjI1LCJ5IjoxMDMxLjEyNX1d" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M4334.946,933.125L4344.923,939.292C4354.9,945.458,4374.855,957.792,4384.832,971.458C4394.809,985.125,4394.809,1000.125,4394.809,1007.625L4394.809,1015.125" id="L_O5_O6_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_O5_O6_0" data-points="W3sieCI6NDMzNC45NDYzNzc4NDA5MDksInkiOjkzMy4xMjV9LHsieCI6NDM5NC44MDg1OTM3NSwieSI6OTcwLjEyNX0seyJ4Ijo0Mzk0LjgwODU5Mzc1LCJ5IjoxMDE5LjEyNX1d" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M4336.84,1097.125L4321.729,1107.292C4306.617,1117.458,4276.395,1137.792,4261.283,1159.458C4246.172,1181.125,4246.172,1204.125,4246.172,1215.625L4246.172,1227.125" id="L_O6_Oerr2_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_O6_Oerr2_0" data-points="W3sieCI6NDMzNi44NDAyNzM0Mzc1LCJ5IjoxMDk3LjEyNX0seyJ4Ijo0MjQ2LjE3MTg3NSwieSI6MTE1OC4xMjV9LHsieCI6NDI0Ni4xNzE4NzUsInkiOjEyMzEuMTI1fV0=" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M4452.777,1097.125L4467.888,1107.292C4483,1117.458,4513.223,1137.792,4528.334,1157.458C4543.445,1177.125,4543.445,1196.125,4543.445,1205.625L4543.445,1215.125" id="L_O6_O7_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_O6_O7_0" data-points="W3sieCI6NDQ1Mi43NzY5MTQwNjI1LCJ5IjoxMDk3LjEyNX0seyJ4Ijo0NTQzLjQ0NTMxMjUsInkiOjExNTguMTI1fSx7IngiOjQ1NDMuNDQ1MzEyNSwieSI6MTIxOS4xMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M4413.445,1265.98L4159.263,1281.337C3905.081,1296.695,3396.716,1327.41,3382.38,1358.014C3368.043,1388.619,3847.735,1419.113,4087.58,1434.36L4327.426,1449.607" id="L_O7_O8_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_O7_O8_0" data-points="W3sieCI6NDQxMy40NDUzMTI1LCJ5IjoxMjY1Ljk3OTUzOTk2MTg2MDJ9LHsieCI6Mjg4OC4zNTE1NjI1LCJ5IjoxMzU4LjEyNX0seyJ4Ijo0MzMxLjQxNzk2ODc1LCJ5IjoxNDQ5Ljg2MDg4NjA3MDQ0ODV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M4635.886,1297.125L4659.984,1307.292C4684.082,1317.458,4732.277,1337.792,4756.375,1355.458C4780.473,1373.125,4780.473,1388.125,4780.473,1395.625L4780.473,1403.125" id="L_O7_O9_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_O7_O9_0" data-points="W3sieCI6NDYzNS44ODU5NzY1NjI1LCJ5IjoxMjk3LjEyNX0seyJ4Ijo0NzgwLjQ3MjY1NjI1LCJ5IjoxMzU4LjEyNX0seyJ4Ijo0NzgwLjQ3MjY1NjI1LCJ5IjoxNDA3LjEyNX1d" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M4543.445,1297.125L4543.445,1307.292C4543.445,1317.458,4543.445,1337.792,4535.529,1357.61C4527.612,1377.427,4511.779,1396.73,4503.862,1406.381L4495.945,1416.032" id="L_O7_O8_2" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_O7_O8_2" data-points="W3sieCI6NDU0My40NDUzMTI1LCJ5IjoxMjk3LjEyNX0seyJ4Ijo0NTQzLjQ0NTMxMjUsInkiOjEzNTguMTI1fSx7IngiOjQ0OTMuNDA4NjMyODEyNSwieSI6MTQxOS4xMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M4461.418,1497.125L4461.418,1503.292C4461.418,1509.458,4461.418,1521.792,4461.418,1531.458C4461.418,1541.125,4461.418,1548.125,4461.418,1551.625L4461.418,1555.125" id="L_O8_Oresp_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_O8_Oresp_0" data-points="W3sieCI6NDQ2MS40MTc5Njg3NSwieSI6MTQ5Ny4xMjV9LHsieCI6NDQ2MS40MTc5Njg3NSwieSI6MTUzNC4xMjV9LHsieCI6NDQ2MS40MTc5Njg3NSwieSI6MTU1OS4xMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M4562.434,98L4562.434,104.167C4562.434,110.333,4562.434,122.667,4562.434,142.26C4562.434,161.854,4562.434,188.708,4562.434,202.135L4562.434,215.563" id="L_LG1_LG2_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_LG1_LG2_0" data-points="W3sieCI6NDU2Mi40MzM1OTM3NSwieSI6OTh9LHsieCI6NDU2Mi40MzM1OTM3NSwieSI6MTM1fSx7IngiOjQ1NjIuNDMzNTkzNzUsInkiOjIxOS41NjI1fV0=" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M4872.434,98L4872.434,104.167C4872.434,110.333,4872.434,122.667,4872.434,142.26C4872.434,161.854,4872.434,188.708,4872.434,202.135L4872.434,215.563" id="L_AC1_AC2_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_AC1_AC2_0" data-points="W3sieCI6NDg3Mi40MzM1OTM3NSwieSI6OTh9LHsieCI6NDg3Mi40MzM1OTM3NSwieSI6MTM1fSx7IngiOjQ4NzIuNDMzNTkzNzUsInkiOjIxOS41NjI1fV0=" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M5182.434,98L5182.434,104.167C5182.434,110.333,5182.434,122.667,5182.434,144.26C5182.434,165.854,5182.434,196.708,5182.434,212.135L5182.434,227.563" id="L_T1_T2_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_T1_T2_0" data-points="W3sieCI6NTE4Mi40MzM1OTM3NSwieSI6OTh9LHsieCI6NTE4Mi40MzM1OTM3NSwieSI6MTM1fSx7IngiOjUxODIuNDMzNTkzNzUsInkiOjIzMS41NjI1fV0=" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M5182.434,309.563L5182.434,327.656C5182.434,345.75,5182.434,381.938,5182.434,407.531C5182.434,433.125,5182.434,448.125,5182.434,455.625L5182.434,463.125" id="L_T2_T3_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_T2_T3_0" data-points="W3sieCI6NTE4Mi40MzM1OTM3NSwieSI6MzA5LjU2MjV9LHsieCI6NTE4Mi40MzM1OTM3NSwieSI6NDE4LjEyNX0seyJ4Ijo1MTgyLjQzMzU5Mzc1LCJ5Ijo0NjcuMTI1fV0=" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M5052.434,558.892L5020.952,568.764C4989.471,578.636,4926.509,598.381,4895.028,617.753C4863.547,637.125,4863.547,656.125,4863.547,665.625L4863.547,675.125" id="L_T3_Terr_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_T3_Terr_0" data-points="W3sieCI6NTA1Mi40MzM1OTM3NSwieSI6NTU4Ljg5MTgyNzk1MzY5NjN9LHsieCI6NDg2My41NDY4NzUsInkiOjYxOC4xMjV9LHsieCI6NDg2My41NDY4NzUsInkiOjY3OS4xMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M5255.172,569.125L5266.82,577.292C5278.468,585.458,5301.763,601.792,5313.411,615.458C5325.059,629.125,5325.059,640.125,5325.059,645.625L5325.059,651.125" id="L_T3_T4_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_T3_T4_0" data-points="W3sieCI6NTI1NS4xNzIzNDM3NSwieSI6NTY5LjEyNX0seyJ4Ijo1MzI1LjA1ODU5Mzc1LCJ5Ijo2MTguMTI1fSx7IngiOjUzMjUuMDU4NTkzNzUsInkiOjY1NS4xMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M5195.059,741.722L5163.163,750.456C5131.268,759.19,5067.478,776.657,5035.583,794.891C5003.688,813.125,5003.688,832.125,5003.688,841.625L5003.688,851.125" id="L_T4_Texp_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_T4_Texp_0" data-points="W3sieCI6NTE5NS4wNTg1OTM3NSwieSI6NzQxLjcyMjQ3NjYzMjEwNjF9LHsieCI6NTAwMy42ODc1LCJ5Ijo3OTQuMTI1fSx7IngiOjUwMDMuNjg3NSwieSI6ODU1LjEyNX1d" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M5408.298,757.125L5418.363,763.292C5428.428,769.458,5448.558,781.792,5458.623,793.458C5468.688,805.125,5468.688,816.125,5468.688,821.625L5468.688,827.125" id="L_T4_T5_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_T4_T5_0" data-points="W3sieCI6NTQwOC4yOTgwNzM1MDg1MjMsInkiOjc1Ny4xMjV9LHsieCI6NTQ2OC42ODc1LCJ5Ijo3OTQuMTI1fSx7IngiOjU0NjguNjg3NSwieSI6ODMxLjEyNX1d" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M5468.688,933.125L5468.688,939.292C5468.688,945.458,5468.688,957.792,5468.688,969.458C5468.688,981.125,5468.688,992.125,5468.688,997.625L5468.688,1003.125" id="L_T5_T6_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_T5_T6_0" data-points="W3sieCI6NTQ2OC42ODc1LCJ5Ijo5MzMuMTI1fSx7IngiOjU0NjguNjg3NSwieSI6OTcwLjEyNX0seyJ4Ijo1NDY4LjY4NzUsInkiOjEwMDcuMTI1fV0=" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M5338.688,1100.25L5308.92,1109.896C5279.152,1119.542,5219.617,1138.833,5189.85,1157.979C5160.082,1177.125,5160.082,1196.125,5160.082,1205.625L5160.082,1215.125" id="L_T6_T403_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_T6_T403_0" data-points="W3sieCI6NTMzOC42ODc1LCJ5IjoxMTAwLjI0OTk4MjU5NTU5Nzd9LHsieCI6NTE2MC4wODIwMzEyNSwieSI6MTE1OC4xMjV9LHsieCI6NTE2MC4wODIwMzEyNSwieSI6MTIxOS4xMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M5598.688,1098.185L5631.106,1108.175C5663.525,1118.165,5728.362,1138.145,5760.781,1157.635C5793.199,1177.125,5793.199,1196.125,5793.199,1205.625L5793.199,1215.125" id="L_T6_NEXT_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_T6_NEXT_0" data-points="W3sieCI6NTU5OC42ODc1LCJ5IjoxMDk4LjE4NTE4NjU3ODM5M30seyJ4Ijo1NzkzLjE5OTIxODc1LCJ5IjoxMTU4LjEyNX0seyJ4Ijo1NzkzLjE5OTIxODc1LCJ5IjoxMjE5LjEyNX1d" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M5933.688,98L5933.688,104.167C5933.688,110.333,5933.688,122.667,5933.688,144.26C5933.688,165.854,5933.688,196.708,5933.688,212.135L5933.688,227.563" id="L_R1_R2_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_R1_R2_0" data-points="W3sieCI6NTkzMy42ODc1LCJ5Ijo5OH0seyJ4Ijo1OTMzLjY4NzUsInkiOjEzNX0seyJ4Ijo1OTMzLjY4NzUsInkiOjIzMS41NjI1fV0=" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M5933.688,309.563L5933.688,327.656C5933.688,345.75,5933.688,381.938,5933.688,407.531C5933.688,433.125,5933.688,448.125,5933.688,455.625L5933.688,463.125" id="L_R2_R3_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_R2_R3_0" data-points="W3sieCI6NTkzMy42ODc1LCJ5IjozMDkuNTYyNX0seyJ4Ijo1OTMzLjY4NzUsInkiOjQxOC4xMjV9LHsieCI6NTkzMy42ODc1LCJ5Ijo0NjcuMTI1fV0=" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M5826.51,569.125L5809.347,577.292C5792.185,585.458,5757.86,601.792,5740.698,624.625C5723.535,647.458,5723.535,676.792,5723.535,706.125C5723.535,735.458,5723.535,764.792,5728.299,787.06C5733.064,809.329,5742.592,824.532,5747.357,832.134L5752.121,839.736" id="L_R3_RFALSE_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_R3_RFALSE_0" data-points="W3sieCI6NTgyNi41MDk4MDQ2ODc1LCJ5Ijo1NjkuMTI1fSx7IngiOjU3MjMuNTM1MTU2MjUsInkiOjYxOC4xMjV9LHsieCI6NTcyMy41MzUxNTYyNSwieSI6NzA2LjEyNX0seyJ4Ijo1NzIzLjUzNTE1NjI1LCJ5Ijo3OTQuMTI1fSx7IngiOjU3NTQuMjQ0OTg0MDE5ODg2LCJ5Ijo4NDMuMTI1fV0=" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M6063.688,564.689L6088.551,573.595C6113.415,582.501,6163.143,600.313,6188.007,616.719C6212.871,633.125,6212.871,648.125,6212.871,655.625L6212.871,663.125" id="L_R3_R4_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_R3_R4_0" data-points="W3sieCI6NjA2My42ODc1LCJ5Ijo1NjQuNjg5MzQwNzgxNTc1OH0seyJ4Ijo2MjEyLjg3MTA5Mzc1LCJ5Ijo2MTguMTI1fSx7IngiOjYyMTIuODcxMDkzNzUsInkiOjY2Ny4xMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M6144.178,745.125L6129.793,753.292C6115.409,761.458,6086.64,777.792,6046.982,793.925C6007.325,810.058,5956.778,825.99,5931.505,833.956L5906.232,841.923" id="L_R4_RFALSE_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_R4_RFALSE_0" data-points="W3sieCI6NjE0NC4xNzc5MTE5MzE4MTgsInkiOjc0NS4xMjV9LHsieCI6NjA1Ny44NzEwOTM3NSwieSI6Nzk0LjEyNX0seyJ4Ijo1OTAyLjQxNjU5MjY4NDY1OSwieSI6ODQzLjEyNX1d" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M6219.919,745.125L6221.395,753.292C6222.87,761.458,6225.822,777.792,6227.298,791.458C6228.773,805.125,6228.773,816.125,6228.773,821.625L6228.773,827.125" id="L_R4_R5_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_R4_R5_0" data-points="W3sieCI6NjIxOS45MTg3MjMzNjY0NzcsInkiOjc0NS4xMjV9LHsieCI6NjIyOC43NzM0Mzc1LCJ5Ijo3OTQuMTI1fSx7IngiOjYyMjguNzczNDM3NSwieSI6ODMxLjEyNX1d" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M6228.773,933.125L6228.773,939.292C6228.773,945.458,6228.773,957.792,6228.773,971.458C6228.773,985.125,6228.773,1000.125,6228.773,1007.625L6228.773,1015.125" id="L_R5_R6_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_R5_R6_0" data-points="W3sieCI6NjIyOC43NzM0Mzc1LCJ5Ijo5MzMuMTI1fSx7IngiOjYyMjguNzczNDM3NSwieSI6OTcwLjEyNX0seyJ4Ijo2MjI4Ljc3MzQzNzUsInkiOjEwMTkuMTI1fV0=" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M6228.773,1097.125L6228.773,1107.292C6228.773,1117.458,6228.773,1137.792,6228.773,1159.458C6228.773,1181.125,6228.773,1204.125,6228.773,1215.625L6228.773,1227.125" id="L_R6_RTRUE_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_R6_RTRUE_0" data-points="W3sieCI6NjIyOC43NzM0Mzc1LCJ5IjoxMDk3LjEyNX0seyJ4Ijo2MjI4Ljc3MzQzNzUsInkiOjExNTguMTI1fSx7IngiOjYyMjguNzczNDM3NSwieSI6MTIzMS4xMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M6243.688,98L6243.688,104.167C6243.688,110.333,6243.688,122.667,6243.688,146.26C6243.688,169.854,6243.688,204.708,6243.688,222.135L6243.688,239.563" id="L_TD1_TD2_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_TD1_TD2_0" data-points="W3sieCI6NjI0My42ODc1LCJ5Ijo5OH0seyJ4Ijo2MjQzLjY4NzUsInkiOjEzNX0seyJ4Ijo2MjQzLjY4NzUsInkiOjI0My41NjI1fV0=" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M6243.688,297.563L6243.688,317.656C6243.688,337.75,6243.688,377.938,6243.688,403.531C6243.688,429.125,6243.688,440.125,6243.688,445.625L6243.688,451.125" id="L_TD2_TD3_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_TD2_TD3_0" data-points="W3sieCI6NjI0My42ODc1LCJ5IjoyOTcuNTYyNX0seyJ4Ijo2MjQzLjY4NzUsInkiOjQxOC4xMjV9LHsieCI6NjI0My42ODc1LCJ5Ijo0NTUuMTI1fV0=" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M6113.688,562.026L6086.001,571.376C6058.314,580.726,6002.94,599.425,5975.253,618.275C5947.566,637.125,5947.566,656.125,5947.566,665.625L5947.566,675.125" id="L_TD3_TDNULL_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_TD3_TDNULL_0" data-points="W3sieCI6NjExMy42ODc1LCJ5Ijo1NjIuMDI1OTU5MDE0MzM5fSx7IngiOjU5NDcuNTY2NDA2MjUsInkiOjYxOC4xMjV9LHsieCI6NTk0Ny41NjY0MDYyNSwieSI6Njc5LjEyNX1d" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M6373.688,562.18L6401.202,571.504C6428.716,580.828,6483.745,599.477,6511.259,614.301C6538.773,629.125,6538.773,640.125,6538.773,645.625L6538.773,651.125" id="L_TD3_TD4_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_TD3_TD4_0" data-points="W3sieCI6NjM3My42ODc1LCJ5Ijo1NjIuMTc5OTYyODAyMTQ5OH0seyJ4Ijo2NTM4Ljc3MzQzNzUsInkiOjYxOC4xMjV9LHsieCI6NjUzOC43NzM0Mzc1LCJ5Ijo2NTUuMTI1fV0=" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M6538.773,757.125L6538.773,763.292C6538.773,769.458,6538.773,781.792,6538.773,793.458C6538.773,805.125,6538.773,816.125,6538.773,821.625L6538.773,827.125" id="L_TD4_TD5_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_TD4_TD5_0" data-points="W3sieCI6NjUzOC43NzM0Mzc1LCJ5Ijo3NTcuMTI1fSx7IngiOjY1MzguNzczNDM3NSwieSI6Nzk0LjEyNX0seyJ4Ijo2NTM4Ljc3MzQzNzUsInkiOjgzMS4xMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/></g><g class="edgeLabels"><g class="edgeLabel"><g class="label" data-id="L_A_B_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(112.4765625, 418.125)"><g class="label" data-id="L_B_Aerr_0" transform="translate(-23.875, -12)"><foreignObject width="47.75" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>invalid</p></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_B_C_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(394.8203125, 618.125)"><g class="label" data-id="L_C_U404_0" transform="translate(-26.15625, -12)"><foreignObject width="52.3125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>no user</p></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_C_D_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(542.1640625, 794.125)"><g class="label" data-id="L_D_P401_0" transform="translate(-11.8046875, -12)"><foreignObject width="23.609375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>fail</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(840.4921875, 794.125)"><g class="label" data-id="L_D_E_0" transform="translate(-8.328125, -12)"><foreignObject width="16.65625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>ok</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(413.04296875, 970.125)"><g class="label" data-id="L_E_I403_0" transform="translate(-28.5546875, -12)"><foreignObject width="57.109375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>inactive</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(691.22265625, 970.125)"><g class="label" data-id="L_E_A403_0" transform="translate(-52.6640625, -12)"><foreignObject width="105.328125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>not authorized</p></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_E_F_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(512.67499, 1130.56994)"><g class="label" data-id="L_F_G_0" transform="translate(-86.546875, -12)"><foreignObject width="173.09375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>trusted and 2FA enabled</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(1260.55859375, 1158.125)"><g class="label" data-id="L_F_H_0" transform="translate(-100, -24)"><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="edgeLabel"><p>not trusted and 2FA enabled</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(844.55694, 1189.18501)"><g class="label" data-id="L_F_G_2" transform="translate(-100, -24)"><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="edgeLabel"><p>not trusted and 2FA disabled</p></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_G_Gdel_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_Gdel_Gregen_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_Gregen_Gprune_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_Gprune_Gcache_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_Gcache_Ginsert_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_Ginsert_Glast_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_Glast_Gcookies_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(537.7578125, 2386.125)"><g class="label" data-id="L_Gcookies_Gtrust_0" transform="translate(-40.859375, -12)"><foreignObject width="81.71875" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>trustDevice</p></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_Gcookies_RESP_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_Gtrust_RESP_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_A2_B2_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(1135.30859375, 418.125)"><g class="label" data-id="L_B2_Err401_0" transform="translate(-26.0703125, -12)"><foreignObject width="52.140625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>missing</p></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_B2_C2_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_C2_D2_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_D2_E2_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(1280.85546875, 970.125)"><g class="label" data-id="L_E2_T401_0" transform="translate(-23.875, -12)"><foreignObject width="47.75" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>invalid</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(1570.55859375, 970.125)"><g class="label" data-id="L_E2_F2_0" transform="translate(-17.21875, -12)"><foreignObject width="34.4375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>valid</p></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_F2_RESP2_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_L1_L2_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(1705.67578125, 418.125)"><g class="label" data-id="L_L2_Lerr_0" transform="translate(-8.6640625, -12)"><foreignObject width="17.328125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>no</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(1983.56640625, 418.125)"><g class="label" data-id="L_L2_L3_0" transform="translate(-11.546875, -12)"><foreignObject width="23.09375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>yes</p></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_L3_L4_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_L4_L5_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_L5_LResp_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_AS1_AS2_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(2293.56640625, 418.125)"><g class="label" data-id="L_AS2_ASresp_0" transform="translate(-22.578125, -12)"><foreignObject width="45.15625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>empty</p></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_AS2_AS3_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(2447.48046875, 618.125)"><g class="label" data-id="L_AS3_AS4_0" transform="translate(-23.875, -12)"><foreignObject width="47.75" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>invalid</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(2758.56640625, 618.125)"><g class="label" data-id="L_AS3_AS5_0" transform="translate(-17.21875, -12)"><foreignObject width="34.4375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>valid</p></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_AS5_ASresp2_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_SS1_SS2_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(2913.55859375, 418.125)"><g class="label" data-id="L_SS2_SSerr400_0" transform="translate(-23.875, -12)"><foreignObject width="47.75" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>invalid</p></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_SS2_SS3_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(3068.56640625, 618.125)"><g class="label" data-id="L_SS3_SSerr403_0" transform="translate(-26.0703125, -12)"><foreignObject width="52.140625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>missing</p></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_SS3_SS4_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(3194.71875, 794.125)"><g class="label" data-id="L_SS4_SSerr401_0" transform="translate(-34.6953125, -12)"><foreignObject width="69.390625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>not found</p></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_SS4_SS5_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_SS5_SS6_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_SS6_SSresp_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_LA1_LA2_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_LA2_LA3_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_LA3_LA4_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_LA4_LA5_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_LA5_LA6_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_LA6_LAresp_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_O1_O2_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_O2_O3_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_O3_O4_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_O4_O5_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(4097.53515625, 970.125)"><g class="label" data-id="L_O5_Oerr_0" transform="translate(-23.875, -12)"><foreignObject width="47.75" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>invalid</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(4394.80859375, 970.125)"><g class="label" data-id="L_O5_O6_0" transform="translate(-17.21875, -12)"><foreignObject width="34.4375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>valid</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(4246.171875, 1158.125)"><g class="label" data-id="L_O6_Oerr2_0" transform="translate(-36.1171875, -12)"><foreignObject width="72.234375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>not linked</p></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_O6_O7_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(2888.3515625, 1358.125)"><g class="label" data-id="L_O7_O8_0" transform="translate(-100, -24)"><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="edgeLabel"><p>2FA enabled and device trusted</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(4780.47265625, 1358.125)"><g class="label" data-id="L_O7_O9_0" transform="translate(-100, -24)"><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="edgeLabel"><p>2FA enabled and not trusted</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(4543.4453125, 1358.125)"><g class="label" data-id="L_O7_O8_2" transform="translate(-44.0546875, -12)"><foreignObject width="88.109375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>2FA disabled</p></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_O8_Oresp_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_LG1_LG2_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_AC1_AC2_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_T1_T2_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_T2_T3_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(4863.546875, 618.125)"><g class="label" data-id="L_T3_Terr_0" transform="translate(-34.6953125, -12)"><foreignObject width="69.390625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>not found</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(5325.05859375, 618.125)"><g class="label" data-id="L_T3_T4_0" transform="translate(-20.453125, -12)"><foreignObject width="40.90625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>found</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(5003.6875, 794.125)"><g class="label" data-id="L_T4_Texp_0" transform="translate(-27.0390625, -12)"><foreignObject width="54.078125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>expired</p></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_T4_T5_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_T5_T6_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(5160.08203125, 1158.125)"><g class="label" data-id="L_T6_T403_0" transform="translate(-40.609375, -12)"><foreignObject width="81.21875" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>insufficient</p></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_T6_NEXT_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_R1_R2_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_R2_R3_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(5723.53515625, 706.125)"><g class="label" data-id="L_R3_RFALSE_0" transform="translate(-34.6953125, -12)"><foreignObject width="69.390625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>not found</p></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_R3_R4_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(6057.87109375, 794.125)"><g class="label" data-id="L_R4_RFALSE_0" transform="translate(-11.8046875, -12)"><foreignObject width="23.609375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>fail</p></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_R4_R5_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_R5_R6_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_R6_RTRUE_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_TD1_TD2_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_TD2_TD3_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(5947.56640625, 618.125)"><g class="label" data-id="L_TD3_TDNULL_0" transform="translate(-24.4296875, -12)"><foreignObject width="48.859375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>no row</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(6538.7734375, 618.125)"><g class="label" data-id="L_TD3_TD4_0" transform="translate(-36.21875, -12)"><foreignObject width="72.4375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>row found</p></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_TD4_TD5_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g></g><g class="nodes"><g class="node default" id="flowchart-A-0" transform="translate(244.5859375, 59)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Client POST /api/login - payload: username password redirect</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-B-1" transform="translate(244.5859375, 270.5625)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Validate input length &amp; format</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-Aerr-3" transform="translate(112.4765625, 518.125)"><rect class="basic label-container" style="" x="-104.4765625" y="-27" width="208.953125" height="54"/><g class="label" style="" transform="translate(-74.4765625, -12)"><rect/><foreignObject width="148.953125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>400 - missing/invalid</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-C-5" transform="translate(396.953125, 518.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Query Users and TwoFA status</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-U404-7" transform="translate(394.8203125, 706.125)"><rect class="basic label-container" style="" x="-116.5078125" y="-27" width="233.015625" height="54"/><g class="label" style="" transform="translate(-86.5078125, -12)"><rect/><foreignObject width="173.015625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>401 - invalid credentials</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-D-9" transform="translate(691.328125, 706.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Compare password - EncPass or raw</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-P401-11" transform="translate(542.1640625, 882.125)"><rect class="basic label-container" style="" x="-118.328125" y="-27" width="236.65625" height="54"/><g class="label" style="" transform="translate(-88.328125, -12)"><rect/><foreignObject width="176.65625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>401 - incorrect password</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-E-13" transform="translate(840.4921875, 882.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Check account Active and app authorization</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-I403-15" transform="translate(413.04296875, 1058.125)"><rect class="basic label-container" style="" x="-109.640625" y="-27" width="219.28125" height="54"/><g class="label" style="" transform="translate(-79.640625, -12)"><rect/><foreignObject width="159.28125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>403 - account inactive</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-A403-17" transform="translate(691.22265625, 1058.125)"><rect class="basic label-container" style="" x="-118.5390625" y="-27" width="237.078125" height="54"/><g class="label" style="" transform="translate(-88.5390625, -12)"><rect/><foreignObject width="177.078125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>403 - app not authorized</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-F-19" transform="translate(989.76171875, 1058.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>checkTrustedDevice username</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-G-21" transform="translate(537.7578125, 1258.125)"><rect class="basic label-container" style="" x="-108.9140625" y="-27" width="217.828125" height="54"/><g class="label" style="" transform="translate(-78.9140625, -12)"><rect/><foreignObject width="157.828125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>completeLoginProcess</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-H-23" transform="translate(1260.55859375, 1258.125)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Set preAuthUser and respond twoFactorRequired:true</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-Gdel-27" transform="translate(537.7578125, 1458.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Delete old session store row</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-Gregen-29" transform="translate(537.7578125, 1598.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Regenerate session - new session id</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-Gprune-31" transform="translate(537.7578125, 1738.125)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Enforce max sessions per user - prune oldest if limit reached</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-Gcache-33" transform="translate(537.7578125, 1866.125)"><rect class="basic label-container" style="" x="-103.4609375" y="-27" width="206.921875" height="54"/><g class="label" style="" transform="translate(-73.4609375, -12)"><rect/><foreignObject width="146.921875" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>clearProfilePicCache</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-Ginsert-35" transform="translate(537.7578125, 1982.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Insert app Sessions row - returns sessionId</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-Glast-37" transform="translate(537.7578125, 2110.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Update Users.last_login timestamp</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-Gcookies-39" transform="translate(537.7578125, 2274.125)"><rect class="basic label-container" style="" x="-130" y="-75" width="260" height="150"/><g class="label" style="" transform="translate(-100, -60)"><rect/><foreignObject width="200" height="120"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Set cookies: encrypted sessionId, username, fullName, lastLoginMethod; upsert account list cookie</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-Gtrust-41" transform="translate(537.7578125, 2474.125)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Create TrustedDevices row; set device_token cookie</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-RESP-43" transform="translate(537.7578125, 2626.125)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>200 - success: session created; cookies set; sessionId returned</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-A2-46" transform="translate(1281.546875, 59)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Client POST /api/verify-2fa - payload: token trustDevice</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-B2-47" transform="translate(1281.546875, 270.5625)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Ensure req.session.preAuthUser exists</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-Err401-49" transform="translate(1135.30859375, 518.125)"><rect class="basic label-container" style="" x="-112.4765625" y="-27" width="224.953125" height="54"/><g class="label" style="" transform="translate(-82.4765625, -12)"><rect/><foreignObject width="164.953125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>401 - session not found</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-C2-51" transform="translate(1427.78515625, 518.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Validate token format - 6 digits</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-D2-53" transform="translate(1427.78515625, 706.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Fetch TwoFA secret from DB for username</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-E2-55" transform="translate(1427.78515625, 882.125)"><rect class="basic label-container" style="" x="-94.3046875" y="-27" width="188.609375" height="54"/><g class="label" style="" transform="translate(-64.3046875, -12)"><rect/><foreignObject width="128.609375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>Verify TOTP token</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-T401-57" transform="translate(1280.85546875, 1058.125)"><rect class="basic label-container" style="" x="-111.09375" y="-27" width="222.1875" height="54"/><g class="label" style="" transform="translate(-81.09375, -12)"><rect/><foreignObject width="162.1875" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>401 - invalid 2FA token</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-F2-59" transform="translate(1570.55859375, 1058.125)"><rect class="basic label-container" style="" x="-108.9140625" y="-27" width="217.828125" height="54"/><g class="label" style="" transform="translate(-78.9140625, -12)"><rect/><foreignObject width="157.828125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>completeLoginProcess</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-RESP2-61" transform="translate(1570.55859375, 1258.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>200 - success: session created; cookies set</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-L1-62" transform="translate(1844.62109375, 59)"><rect class="basic label-container" style="" x="-116.1875" y="-27" width="232.375" height="54"/><g class="label" style="" transform="translate(-86.1875, -12)"><rect/><foreignObject width="172.375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>Client POST /api/logout</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-L2-63" transform="translate(1844.62109375, 270.5625)"><polygon points="110.5625,0 221.125,-110.5625 110.5625,-221.125 0,-110.5625" class="label-container" transform="translate(-110.0625, 110.5625)"/><g class="label" style="" transform="translate(-83.5625, -12)"><rect/><foreignObject width="167.125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>req.session.user exists?</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-Lerr-65" transform="translate(1705.67578125, 518.125)"><rect class="basic label-container" style="" x="-97.890625" y="-27" width="195.78125" height="54"/><g class="label" style="" transform="translate(-67.890625, -12)"><rect/><foreignObject width="135.78125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>400 - Not logged in</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-L3-67" transform="translate(1983.56640625, 518.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Delete app Sessions row and session store row</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-L4-69" transform="translate(1983.56640625, 706.125)"><rect class="basic label-container" style="" x="-127.828125" y="-27" width="255.65625" height="54"/><g class="label" style="" transform="translate(-97.828125, -12)"><rect/><foreignObject width="195.65625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>removeAccountFromCookie</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-L5-71" transform="translate(1983.56640625, 882.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Destroy session and clear session cookies</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-LResp-73" transform="translate(1983.56640625, 1058.125)"><rect class="basic label-container" style="" x="-111.3203125" y="-27" width="222.640625" height="54"/><g class="label" style="" transform="translate(-81.3203125, -12)"><rect/><foreignObject width="162.640625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>200 - logout successful</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-AS1-74" transform="translate(2449.9296875, 59)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Client GET /api/account-sessions</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-AS2-75" transform="translate(2449.9296875, 270.5625)"><rect class="basic label-container" style="" x="-130.015625" y="-27" width="260.03125" height="54"/><g class="label" style="" transform="translate(-100.015625, -12)"><rect/><foreignObject width="200.03125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>readAccountListFromCookie</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-ASresp-77" transform="translate(2293.56640625, 518.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Return empty accounts and currentSessionId</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-AS3-79" transform="translate(2603.56640625, 518.125)"><rect class="basic label-container" style="" x="-130" y="-63" width="260" height="126"/><g class="label" style="" transform="translate(-100, -48)"><rect/><foreignObject width="200" height="96"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>For each stored account: validate each stored session via fetchActiveSession</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-AS4-81" transform="translate(2447.48046875, 706.125)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>invalidate DB session and remove account from cookie</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-AS5-83" transform="translate(2758.56640625, 706.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Push validated account to list</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-ASresp2-85" transform="translate(2758.56640625, 882.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Return accounts and currentSessionId</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-SS1-86" transform="translate(3061.625, 59)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Client POST /api/switch-session</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-SS2-87" transform="translate(3061.625, 270.5625)"><rect class="basic label-container" style="" x="-120.015625" y="-27" width="240.03125" height="54"/><g class="label" style="" transform="translate(-90.015625, -12)"><rect/><foreignObject width="180.03125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>Validate sessionId format</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-SSerr400-89" transform="translate(2913.55859375, 518.125)"><rect class="basic label-container" style="" x="-110.7421875" y="-27" width="221.484375" height="54"/><g class="label" style="" transform="translate(-80.7421875, -12)"><rect/><foreignObject width="161.484375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>400 - Invalid session id</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-SS3-91" transform="translate(3207.00390625, 518.125)"><rect class="basic label-container" style="" x="-130.015625" y="-39" width="260.03125" height="78"/><g class="label" style="" transform="translate(-100.015625, -24)"><rect/><foreignObject width="200.03125" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Check sessionId in readAccountListFromCookie</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-SSerr403-93" transform="translate(3068.56640625, 706.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>403 - Account not available on this device</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-SS4-95" transform="translate(3345.44140625, 706.125)"><rect class="basic label-container" style="" x="-96.875" y="-27" width="193.75" height="54"/><g class="label" style="" transform="translate(-66.875, -12)"><rect/><foreignObject width="133.75" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>fetchActiveSession</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-SSerr401-97" transform="translate(3194.71875, 882.125)"><rect class="basic label-container" style="" x="-105.4296875" y="-27" width="210.859375" height="54"/><g class="label" style="" transform="translate(-75.4296875, -12)"><rect/><foreignObject width="150.859375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>401 - Session expired</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-SS5-99" transform="translate(3488.15625, 882.125)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Regenerate session; set req.session.user to DB row; save session</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-SS6-101" transform="translate(3488.15625, 1058.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Sync cookies &amp; upsert account list cookie</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-SSresp-103" transform="translate(3488.15625, 1258.125)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>200 - success with username fullName redirect</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-LA1-104" transform="translate(3798.1640625, 59)"><rect class="basic label-container" style="" x="-128.046875" y="-27" width="256.09375" height="54"/><g class="label" style="" transform="translate(-98.046875, -12)"><rect/><foreignObject width="196.09375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>Client POST /api/logout-all</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-LA2-105" transform="translate(3798.1640625, 270.5625)"><rect class="basic label-container" style="" x="-130.015625" y="-27" width="260.03125" height="54"/><g class="label" style="" transform="translate(-100.015625, -12)"><rect/><foreignObject width="200.03125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>readAccountListFromCookie</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-LA3-107" transform="translate(3798.1640625, 518.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Collect sessionIds; add currentSession if present</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-LA4-109" transform="translate(3798.1640625, 706.125)"><rect class="basic label-container" style="" x="-127.015625" y="-27" width="254.03125" height="54"/><g class="label" style="" transform="translate(-97.015625, -12)"><rect/><foreignObject width="194.03125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>Delete Sessions rows by ids</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-LA5-111" transform="translate(3798.1640625, 882.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Delete session store row for current session</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-LA6-113" transform="translate(3798.1640625, 1058.125)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Clear account list cookie, clear session cookies, destroy session</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-LAresp-115" transform="translate(3798.1640625, 1258.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>200 - All accounts logged out</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-O1-116" transform="translate(4252.43359375, 59)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Client GET /api/provider/login?redirect=...</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-O2-117" transform="translate(4252.43359375, 270.5625)"><rect class="basic label-container" style="" x="-130" y="-63" width="260" height="126"/><g class="label" style="" transform="translate(-100, -48)"><rect/><foreignObject width="200" height="96"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Server create CSRF token and save to session.oauthCsrfToken and oauthRedirect</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-O3-119" transform="translate(4252.43359375, 518.125)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>passport.authenticate -&gt; redirect to provider auth page</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-O4-121" transform="translate(4252.43359375, 706.125)"><rect class="basic label-container" style="" x="-136.9765625" y="-51" width="273.953125" height="102"/><g class="label" style="" transform="translate(-106.9765625, -36)"><rect/><foreignObject width="213.953125" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Provider redirects back to /api/provider/login/callback with state and auth code</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-O5-123" transform="translate(4252.43359375, 882.125)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>validateOAuthCallback: compare state with session.oauthCsrfToken</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-Oerr-125" transform="translate(4097.53515625, 1058.125)"><rect class="basic label-container" style="" x="-104.75" y="-27" width="209.5" height="54"/><g class="label" style="" transform="translate(-74.75, -12)"><rect/><foreignObject width="149.5" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>403 - CSRF mismatch</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-O6-127" transform="translate(4394.80859375, 1058.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>passport.authenticate -&gt; locate linked user record</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-Oerr2-129" transform="translate(4246.171875, 1258.125)"><rect class="basic label-container" style="" x="-117.2734375" y="-27" width="234.546875" height="54"/><g class="label" style="" transform="translate(-87.2734375, -12)"><rect/><foreignObject width="174.546875" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>403 - Account not linked</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-O7-131" transform="translate(4543.4453125, 1258.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Check account active and allowedApps</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-O8-133" transform="translate(4461.41796875, 1458.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>completeLoginProcess skip 2FA</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-O9-135" transform="translate(4780.47265625, 1458.125)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Set req.session.preAuthUser and redirect to /2fa</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-Oresp-139" transform="translate(4461.41796875, 1598.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>200/redirect - login completed</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-LG1-140" transform="translate(4562.43359375, 59)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Client GET /mbkauthe/login</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-LG2-141" transform="translate(4562.43359375, 270.5625)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Render login page with CSRF, provider flags and lastLogin cookie</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-AC1-142" transform="translate(4872.43359375, 59)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Client GET /mbkauthe/accounts</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-AC2-143" transform="translate(4872.43359375, 270.5625)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Render account switch page with CSRF and accounts list</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-T1-144" transform="translate(5182.43359375, 59)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Incoming request with Authorization: Bearer </p></span></div></foreignObject></g></g><g class="node default" id="flowchart-T2-145" transform="translate(5182.43359375, 270.5625)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>If token starts with mbk_ -&gt; API token</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-T3-147" transform="translate(5182.43359375, 518.125)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Hash token then query ApiTokens joined to Users by TokenHash</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-Terr-149" transform="translate(4863.546875, 706.125)"><rect class="basic label-container" style="" x="-105.25" y="-27" width="210.5" height="54"/><g class="label" style="" transform="translate(-75.25, -12)"><rect/><foreignObject width="150.5" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>401 - INVALID_TOKEN</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-T4-151" transform="translate(5325.05859375, 706.125)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Check ExpiresAt; parse permissions.scope and allowedApps</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-Texp-153" transform="translate(5003.6875, 882.125)"><rect class="basic label-container" style="" x="-107.2578125" y="-27" width="214.515625" height="54"/><g class="label" style="" transform="translate(-77.2578125, -12)"><rect/><foreignObject width="154.515625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>401 - TOKEN_EXPIRED</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-T5-155" transform="translate(5468.6875, 882.125)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Update ApiTokens LastUsed; return tokenUser with tokenScope</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-T6-157" transform="translate(5468.6875, 1058.125)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Validate tokenScope via canAccessMethod for request method</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-T403-159" transform="translate(5160.08203125, 1258.125)"><rect class="basic label-container" style="" x="-132.7890625" y="-39" width="265.578125" height="78"/><g class="label" style="" transform="translate(-102.7890625, -24)"><rect/><foreignObject width="205.578125" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>403 - TOKEN_SCOPE_INSUFFICIENT</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-NEXT-161" transform="translate(5793.19921875, 1258.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Populate req.session.user and proceed</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-R1-162" transform="translate(5933.6875, 59)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Call reloadSessionUser helper</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-R2-163" transform="translate(5933.6875, 270.5625)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Ensure req.session.user.id exists</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-R3-165" transform="translate(5933.6875, 518.125)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Query Sessions JOIN Users WHERE s.id = req.session.user.sessionId</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-RFALSE-167" transform="translate(5778.6875, 882.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Destroy session; clear cookies; return false</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-R4-169" transform="translate(6212.87109375, 706.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Check expiry and Active and allowedApps</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-R5-173" transform="translate(6228.7734375, 882.125)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Update req.session.user values; fetch fullname from cookie or DB</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-R6-175" transform="translate(6228.7734375, 1058.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Save session and sync cookies</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-RTRUE-177" transform="translate(6228.7734375, 1258.125)"><rect class="basic label-container" style="" x="-71.1484375" y="-27" width="142.296875" height="54"/><g class="label" style="" transform="translate(-41.1484375, -12)"><rect/><foreignObject width="82.296875" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>Return true</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-TD1-178" transform="translate(6243.6875, 59)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Request has device_token cookie</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-TD2-179" transform="translate(6243.6875, 270.5625)"><rect class="basic label-container" style="" x="-89.078125" y="-27" width="178.15625" height="54"/><g class="label" style="" transform="translate(-59.078125, -12)"><rect/><foreignObject width="118.15625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>If missing -&gt; null</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-TD3-181" transform="translate(6243.6875, 518.125)"><rect class="basic label-container" style="" x="-130" y="-63" width="260" height="126"/><g class="label" style="" transform="translate(-100, -48)"><rect/><foreignObject width="200" height="96"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Hash device token then query TrustedDevices for matching token and username and not expired</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-TDNULL-183" transform="translate(5947.56640625, 706.125)"><rect class="basic label-container" style="" x="-68.3671875" y="-27" width="136.734375" height="54"/><g class="label" style="" transform="translate(-38.3671875, -12)"><rect/><foreignObject width="76.734375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>return null</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-TD4-185" transform="translate(6538.7734375, 706.125)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>If account inactive or not authorized for app -&gt; return null</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-TD5-187" transform="translate(6538.7734375, 882.125)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Update TrustedDevices last used timestamp; return device user object</p></span></div></foreignObject></g></g></g></g></g></svg>
1
+ <svg id="my-svg" width="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="flowchart" style="max-width: 6693.19px; background-color: white;" viewBox="0 0 6693.1875 2781.125" role="graphics-document document" aria-roledescription="flowchart-v2"><style>#my-svg{font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#my-svg .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#my-svg .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#my-svg .error-icon{fill:#552222;}#my-svg .error-text{fill:#552222;stroke:#552222;}#my-svg .edge-thickness-normal{stroke-width:1px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-thickness-invisible{stroke-width:0;fill:none;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#333333;stroke:#333333;}#my-svg .marker.cross{stroke:#333333;}#my-svg svg{font-size:16px;}#my-svg p{margin:0;}#my-svg .label{color:#333;}#my-svg .cluster-label text{fill:#333;}#my-svg .cluster-label span{color:#333;}#my-svg .cluster-label span p{background-color:transparent;}#my-svg .label text,#my-svg span{fill:#333;color:#333;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#my-svg .rough-node .label text,#my-svg .node .label text,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-anchor:middle;}#my-svg .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#my-svg .rough-node .label,#my-svg .node .label,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-align:center;}#my-svg .node.clickable{cursor:pointer;}#my-svg .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#my-svg .arrowheadPath{fill:#333333;}#my-svg .edgePath .path{stroke:#333333;stroke-width:1px;}#my-svg .flowchart-link{stroke:#333333;fill:none;}#my-svg .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#my-svg .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#my-svg .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#my-svg .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#my-svg .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#my-svg .cluster text{fill:#333;}#my-svg .cluster span{color:#333;}#my-svg div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#my-svg .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#my-svg rect.text{fill:none;stroke-width:0;}#my-svg .icon-shape,#my-svg .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#my-svg .icon-shape p,#my-svg .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#my-svg .icon-shape .label rect,#my-svg .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#my-svg .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#my-svg .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#my-svg .node .neo-node{stroke:#9370DB;}#my-svg [data-look="neo"].node rect,#my-svg [data-look="neo"].cluster rect,#my-svg [data-look="neo"].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#my-svg [data-look="neo"].node path{stroke:#9370DB;stroke-width:1px;}#my-svg [data-look="neo"].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#my-svg [data-look="neo"].node .neo-line path{stroke:#9370DB;filter:none;}#my-svg [data-look="neo"].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#my-svg [data-look="neo"].node circle .state-start{fill:#000000;}#my-svg [data-look="neo"].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#my-svg [data-look="neo"].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#my-svg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style><g><marker id="my-svg_flowchart-v2-pointEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="4.5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 5 L 10 10 L 10 0 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointEnd-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="11.5" refY="7" markerUnits="userSpaceOnUse" markerWidth="10.5" markerHeight="14" orient="auto"><path d="M 0 0 L 11.5 7 L 0 14 z" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointStart-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="1" refY="7" markerUnits="userSpaceOnUse" markerWidth="11.5" markerHeight="14" orient="auto"><polygon points="0,7 11.5,14 11.5,0" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="11" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-1" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleEnd-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refY="5" refX="12.25" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleStart-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-2" refY="5" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossEnd" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="12" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossStart" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="-1" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossEnd-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="17.7" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width: 2.5;"/></marker><marker id="my-svg_flowchart-v2-crossStart-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="-3.5" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width: 2.5; stroke-dasharray: 1, 0;"/></marker><g class="root"><g class="clusters"/><g class="edgePaths"><path d="M244.586,146L244.586,152.167C244.586,158.333,244.586,170.667,244.586,192.26C244.586,213.854,244.586,244.708,244.586,260.135L244.586,275.563" id="my-svg-L_A_B_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_A_B_0" data-points="W3sieCI6MjQ0LjU4NTkzNzUsInkiOjE0Nn0seyJ4IjoyNDQuNTg1OTM3NSwieSI6MTgzfSx7IngiOjI0NC41ODU5Mzc1LCJ5IjoyNzkuNTYyNX1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M209.67,357.563L193.471,375.656C177.272,393.75,144.874,429.938,128.675,459.531C112.477,489.125,112.477,512.125,112.477,523.625L112.477,535.125" id="my-svg-L_B_Aerr_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_B_Aerr_0" data-points="W3sieCI6MjA5LjY3MDExNzkzMjAyMDMzLCJ5IjozNTcuNTYyNX0seyJ4IjoxMTIuNDc2NTYyNSwieSI6NDY2LjEyNX0seyJ4IjoxMTIuNDc2NTYyNSwieSI6NTM5LjEyNX1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M284.856,357.563L303.539,375.656C322.222,393.75,359.587,429.938,378.27,457.531C396.953,485.125,396.953,504.125,396.953,513.625L396.953,523.125" id="my-svg-L_B_C_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_B_C_0" data-points="W3sieCI6Mjg0Ljg1NTc5MTM3NTQ3NjUsInkiOjM1Ny41NjI1fSx7IngiOjM5Ni45NTMxMjUsInkiOjQ2Ni4xMjV9LHsieCI6Mzk2Ljk1MzEyNSwieSI6NTI3LjEyNX1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M396.953,605.125L396.953,615.292C396.953,625.458,396.953,645.792,396.953,669.458C396.953,693.125,396.953,720.125,396.953,733.625L396.953,747.125" id="my-svg-L_C_U404_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_C_U404_0" data-points="W3sieCI6Mzk2Ljk1MzEyNSwieSI6NjA1LjEyNX0seyJ4IjozOTYuOTUzMTI1LCJ5Ijo2NjYuMTI1fSx7IngiOjM5Ni45NTMxMjUsInkiOjc1MS4xMjV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M507.055,605.125L535.757,615.292C564.459,625.458,621.862,645.792,650.564,669.458C679.266,693.125,679.266,720.125,679.266,733.625L679.266,747.125" id="my-svg-L_C_D_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_C_D_0" data-points="W3sieCI6NTA3LjA1NSwieSI6NjA1LjEyNX0seyJ4Ijo2NzkuMjY1NjI1LCJ5Ijo2NjYuMTI1fSx7IngiOjY3OS4yNjU2MjUsInkiOjc1MS4xMjV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M644.503,805.125L626.264,819.292C608.024,833.458,571.545,861.792,553.306,885.458C535.066,909.125,535.066,928.125,535.066,937.625L535.066,947.125" id="my-svg-L_D_P401_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_D_P401_0" data-points="W3sieCI6NjQ0LjUwMzMxMzMzNzA1MzYsInkiOjgwNS4xMjV9LHsieCI6NTM1LjA2NjQwNjI1LCJ5Ijo4OTAuMTI1fSx7IngiOjUzNS4wNjY0MDYyNSwieSI6OTUxLjEyNX1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M716.422,805.125L735.917,819.292C755.413,833.458,794.404,861.792,813.899,883.458C833.395,905.125,833.395,920.125,833.395,927.625L833.395,935.125" id="my-svg-L_D_E_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_D_E_0" data-points="W3sieCI6NzE2LjQyMTcwMDYxMzgzOTMsInkiOjgwNS4xMjV9LHsieCI6ODMzLjM5NDUzMTI1LCJ5Ijo4OTAuMTI1fSx7IngiOjgzMy4zOTQ1MzEyNSwieSI6OTM5LjEyNX1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M703.395,1004.888L653.82,1015.095C604.245,1025.301,505.095,1045.713,455.52,1065.419C405.945,1085.125,405.945,1104.125,405.945,1113.625L405.945,1123.125" id="my-svg-L_E_I403_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_E_I403_0" data-points="W3sieCI6NzAzLjM5NDUzMTI1LCJ5IjoxMDA0Ljg4ODQxMzA1MTYyMzV9LHsieCI6NDA1Ljk0NTMxMjUsInkiOjEwNjYuMTI1fSx7IngiOjQwNS45NDUzMTI1LCJ5IjoxMTI3LjEyNX1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M767.241,1017.125L753.388,1025.292C739.536,1033.458,711.83,1049.792,697.978,1067.458C684.125,1085.125,684.125,1104.125,684.125,1113.625L684.125,1123.125" id="my-svg-L_E_A403_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_E_A403_0" data-points="W3sieCI6NzY3LjI0MDk4ODk5MTQ3NzMsInkiOjEwMTcuMTI1fSx7IngiOjY4NC4xMjUsInkiOjEwNjYuMTI1fSx7IngiOjY4NC4xMjUsInkiOjExMjcuMTI1fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M899.548,1017.125L913.401,1025.292C927.253,1033.458,954.959,1049.792,968.811,1065.458C982.664,1081.125,982.664,1096.125,982.664,1103.625L982.664,1111.125" id="my-svg-L_E_F_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_E_F_0" data-points="W3sieCI6ODk5LjU0ODA3MzUwODUyMjcsInkiOjEwMTcuMTI1fSx7IngiOjk4Mi42NjQwNjI1LCJ5IjoxMDY2LjEyNX0seyJ4Ijo5ODIuNjY0MDYyNSwieSI6MTExNS4xMjV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M852.664,1174.08L765.755,1187.421C678.846,1200.762,505.029,1227.443,442.65,1252.66C380.271,1277.877,429.33,1301.63,453.86,1313.506L478.39,1325.382" id="my-svg-L_F_G_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_F_G_0" data-points="W3sieCI6ODUyLjY2NDA2MjUsInkiOjExNzQuMDgwMzg4MTk0NjYxfSx7IngiOjMzMS4yMTA5Mzc1LCJ5IjoxMjU0LjEyNX0seyJ4Ijo0ODEuOTkwMTU2MjUsInkiOjEzMjcuMTI1fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1088.275,1193.125L1115.806,1203.292C1143.337,1213.458,1198.399,1233.792,1225.93,1251.458C1253.461,1269.125,1253.461,1284.125,1253.461,1291.625L1253.461,1299.125" id="my-svg-L_F_H_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_F_H_0" data-points="W3sieCI6MTA4OC4yNzQ4NDM3NSwieSI6MTE5My4xMjV9LHsieCI6MTI1My40NjA5Mzc1LCJ5IjoxMjU0LjEyNX0seyJ4IjoxMjUzLjQ2MDkzNzUsInkiOjEzMDMuMTI1fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M979.942,1193.125L979.232,1203.292C978.522,1213.458,977.103,1233.792,922.208,1256.332C867.313,1278.871,758.942,1303.618,704.757,1315.991L650.571,1328.364" id="my-svg-L_F_G_2" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_F_G_2" data-points="W3sieCI6OTc5Ljk0MTY3OTY4NzUsInkiOjExOTMuMTI1fSx7IngiOjk3NS42ODM1OTM3NSwieSI6MTI1NC4xMjV9LHsieCI6NjQ2LjY3MTg3NSwieSI6MTMyOS4yNTQ1NjE0MDg5ODU5fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M537.758,1381.125L537.758,1393.292C537.758,1405.458,537.758,1429.792,537.758,1451.458C537.758,1473.125,537.758,1492.125,537.758,1501.625L537.758,1511.125" id="my-svg-L_G_Gdel_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_G_Gdel_0" data-points="W3sieCI6NTM3Ljc1NzgxMjUsInkiOjEzODEuMTI1fSx7IngiOjUzNy43NTc4MTI1LCJ5IjoxNDU0LjEyNX0seyJ4Ijo1MzcuNzU3ODEyNSwieSI6MTUxNS4xMjV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M537.758,1593.125L537.758,1599.292C537.758,1605.458,537.758,1617.792,537.758,1627.458C537.758,1637.125,537.758,1644.125,537.758,1647.625L537.758,1651.125" id="my-svg-L_Gdel_Gregen_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Gdel_Gregen_0" data-points="W3sieCI6NTM3Ljc1NzgxMjUsInkiOjE1OTMuMTI1fSx7IngiOjUzNy43NTc4MTI1LCJ5IjoxNjMwLjEyNX0seyJ4Ijo1MzcuNzU3ODEyNSwieSI6MTY1NS4xMjV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M537.758,1733.125L537.758,1737.292C537.758,1741.458,537.758,1749.792,537.758,1757.458C537.758,1765.125,537.758,1772.125,537.758,1775.625L537.758,1779.125" id="my-svg-L_Gregen_Gprune_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Gregen_Gprune_0" data-points="W3sieCI6NTM3Ljc1NzgxMjUsInkiOjE3MzMuMTI1fSx7IngiOjUzNy43NTc4MTI1LCJ5IjoxNzU4LjEyNX0seyJ4Ijo1MzcuNzU3ODEyNSwieSI6MTc4My4xMjV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M537.758,1885.125L537.758,1889.292C537.758,1893.458,537.758,1901.792,537.758,1909.458C537.758,1917.125,537.758,1924.125,537.758,1927.625L537.758,1931.125" id="my-svg-L_Gprune_Gcache_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Gprune_Gcache_0" data-points="W3sieCI6NTM3Ljc1NzgxMjUsInkiOjE4ODUuMTI1fSx7IngiOjUzNy43NTc4MTI1LCJ5IjoxOTEwLjEyNX0seyJ4Ijo1MzcuNzU3ODEyNSwieSI6MTkzNS4xMjV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M537.758,1989.125L537.758,1993.292C537.758,1997.458,537.758,2005.792,537.758,2013.458C537.758,2021.125,537.758,2028.125,537.758,2031.625L537.758,2035.125" id="my-svg-L_Gcache_Ginsert_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Gcache_Ginsert_0" data-points="W3sieCI6NTM3Ljc1NzgxMjUsInkiOjE5ODkuMTI1fSx7IngiOjUzNy43NTc4MTI1LCJ5IjoyMDE0LjEyNX0seyJ4Ijo1MzcuNzU3ODEyNSwieSI6MjAzOS4xMjV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M537.758,2117.125L537.758,2121.292C537.758,2125.458,537.758,2133.792,537.758,2141.458C537.758,2149.125,537.758,2156.125,537.758,2159.625L537.758,2163.125" id="my-svg-L_Ginsert_Glast_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Ginsert_Glast_0" data-points="W3sieCI6NTM3Ljc1NzgxMjUsInkiOjIxMTcuMTI1fSx7IngiOjUzNy43NTc4MTI1LCJ5IjoyMTQyLjEyNX0seyJ4Ijo1MzcuNzU3ODEyNSwieSI6MjE2Ny4xMjV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M537.758,2245.125L537.758,2249.292C537.758,2253.458,537.758,2261.792,537.758,2269.458C537.758,2277.125,537.758,2284.125,537.758,2287.625L537.758,2291.125" id="my-svg-L_Glast_Gcookies_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Glast_Gcookies_0" data-points="W3sieCI6NTM3Ljc1NzgxMjUsInkiOjIyNDUuMTI1fSx7IngiOjUzNy43NTc4MTI1LCJ5IjoyMjcwLjEyNX0seyJ4Ijo1MzcuNzU3ODEyNSwieSI6MjI5NS4xMjV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M537.758,2445.125L537.758,2451.292C537.758,2457.458,537.758,2469.792,537.758,2481.458C537.758,2493.125,537.758,2504.125,537.758,2509.625L537.758,2515.125" id="my-svg-L_Gcookies_Gtrust_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Gcookies_Gtrust_0" data-points="W3sieCI6NTM3Ljc1NzgxMjUsInkiOjI0NDUuMTI1fSx7IngiOjUzNy43NTc4MTI1LCJ5IjoyNDgyLjEyNX0seyJ4Ijo1MzcuNzU3ODEyNSwieSI6MjUxOS4xMjV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M427.267,2445.125L418.182,2451.292C409.097,2457.458,390.927,2469.792,381.843,2490.625C372.758,2511.458,372.758,2540.792,372.758,2568.125C372.758,2595.458,372.758,2620.792,381.198,2637.346C389.639,2653.901,406.52,2661.676,414.96,2665.564L423.401,2669.452" id="my-svg-L_Gcookies_RESP_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Gcookies_RESP_0" data-points="W3sieCI6NDI3LjI2Njc0MTA3MTQyODU2LCJ5IjoyNDQ1LjEyNX0seyJ4IjozNzIuNzU3ODEyNSwieSI6MjQ4Mi4xMjV9LHsieCI6MzcyLjc1NzgxMjUsInkiOjI1NzAuMTI1fSx7IngiOjM3Mi43NTc4MTI1LCJ5IjoyNjQ2LjEyNX0seyJ4Ijo0MjcuMDM0MTI4Mjg5NDczNywieSI6MjY3MS4xMjV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M537.758,2621.125L537.758,2625.292C537.758,2629.458,537.758,2637.792,537.758,2645.458C537.758,2653.125,537.758,2660.125,537.758,2663.625L537.758,2667.125" id="my-svg-L_Gtrust_RESP_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Gtrust_RESP_0" data-points="W3sieCI6NTM3Ljc1NzgxMjUsInkiOjI2MjEuMTI1fSx7IngiOjUzNy43NTc4MTI1LCJ5IjoyNjQ2LjEyNX0seyJ4Ijo1MzcuNzU3ODEyNSwieSI6MjY3MS4xMjV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1274.449,146L1274.449,152.167C1274.449,158.333,1274.449,170.667,1274.449,190.26C1274.449,209.854,1274.449,236.708,1274.449,250.135L1274.449,263.563" id="my-svg-L_A2_B2_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_A2_B2_0" data-points="W3sieCI6MTI3NC40NDkyMTg3NSwieSI6MTQ2fSx7IngiOjEyNzQuNDQ5MjE4NzUsInkiOjE4M30seyJ4IjoxMjc0LjQ0OTIxODc1LCJ5IjoyNjcuNTYyNX1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1223.907,369.563L1207.958,385.656C1192.008,401.75,1160.11,433.938,1144.16,461.531C1128.211,489.125,1128.211,512.125,1128.211,523.625L1128.211,535.125" id="my-svg-L_B2_Err401_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_B2_Err401_0" data-points="W3sieCI6MTIyMy45MDY4OTAyODc0ODQyLCJ5IjozNjkuNTYyNX0seyJ4IjoxMTI4LjIxMDkzNzUsInkiOjQ2Ni4xMjV9LHsieCI6MTEyOC4yMTA5Mzc1LCJ5Ijo1MzkuMTI1fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1324.992,369.563L1340.941,385.656C1356.89,401.75,1388.789,433.938,1404.738,459.531C1420.688,485.125,1420.688,504.125,1420.688,513.625L1420.688,523.125" id="my-svg-L_B2_C2_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_B2_C2_0" data-points="W3sieCI6MTMyNC45OTE1NDcyMTI1MTU4LCJ5IjozNjkuNTYyNX0seyJ4IjoxNDIwLjY4NzUsInkiOjQ2Ni4xMjV9LHsieCI6MTQyMC42ODc1LCJ5Ijo1MjcuMTI1fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1420.688,605.125L1420.688,615.292C1420.688,625.458,1420.688,645.792,1420.688,667.458C1420.688,689.125,1420.688,712.125,1420.688,723.625L1420.688,735.125" id="my-svg-L_C2_D2_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_C2_D2_0" data-points="W3sieCI6MTQyMC42ODc1LCJ5Ijo2MDUuMTI1fSx7IngiOjE0MjAuNjg3NSwieSI6NjY2LjEyNX0seyJ4IjoxNDIwLjY4NzUsInkiOjczOS4xMjV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1420.688,817.125L1420.688,829.292C1420.688,841.458,1420.688,865.792,1420.688,887.458C1420.688,909.125,1420.688,928.125,1420.688,937.625L1420.688,947.125" id="my-svg-L_D2_E2_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_D2_E2_0" data-points="W3sieCI6MTQyMC42ODc1LCJ5Ijo4MTcuMTI1fSx7IngiOjE0MjAuNjg3NSwieSI6ODkwLjEyNX0seyJ4IjoxNDIwLjY4NzUsInkiOjk1MS4xMjV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1375.607,1005.125L1358.632,1015.292C1341.657,1025.458,1307.707,1045.792,1290.733,1065.458C1273.758,1085.125,1273.758,1104.125,1273.758,1113.625L1273.758,1123.125" id="my-svg-L_E2_T401_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_E2_T401_0" data-points="W3sieCI6MTM3NS42MDY4MDA0MjYxMzYzLCJ5IjoxMDA1LjEyNX0seyJ4IjoxMjczLjc1NzgxMjUsInkiOjEwNjYuMTI1fSx7IngiOjEyNzMuNzU3ODEyNSwieSI6MTEyNy4xMjV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1464.493,1005.125L1480.988,1015.292C1497.482,1025.458,1530.472,1045.792,1546.966,1065.458C1563.461,1085.125,1563.461,1104.125,1563.461,1113.625L1563.461,1123.125" id="my-svg-L_E2_F2_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_E2_F2_0" data-points="W3sieCI6MTQ2NC40OTI5ODY1MDU2ODE4LCJ5IjoxMDA1LjEyNX0seyJ4IjoxNTYzLjQ2MDkzNzUsInkiOjEwNjYuMTI1fSx7IngiOjE1NjMuNDYwOTM3NSwieSI6MTEyNy4xMjV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1563.461,1181.125L1563.461,1193.292C1563.461,1205.458,1563.461,1229.792,1563.461,1251.458C1563.461,1273.125,1563.461,1292.125,1563.461,1301.625L1563.461,1311.125" id="my-svg-L_F2_RESP2_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_F2_RESP2_0" data-points="W3sieCI6MTU2My40NjA5Mzc1LCJ5IjoxMTgxLjEyNX0seyJ4IjoxNTYzLjQ2MDkzNzUsInkiOjEyNTQuMTI1fSx7IngiOjE1NjMuNDYwOTM3NSwieSI6MTMxNS4xMjV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1837.523,122L1837.523,132.167C1837.523,142.333,1837.523,162.667,1837.523,176.333C1837.523,190,1837.523,197,1837.523,200.5L1837.523,204" id="my-svg-L_L1_L2_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_L1_L2_0" data-points="W3sieCI6MTgzNy41MjM0Mzc1LCJ5IjoxMjJ9LHsieCI6MTgzNy41MjM0Mzc1LCJ5IjoxODN9LHsieCI6MTgzNy41MjM0Mzc1LCJ5IjoyMDh9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1783.905,375.506L1769.684,390.61C1755.463,405.713,1727.02,435.919,1712.799,462.522C1698.578,489.125,1698.578,512.125,1698.578,523.625L1698.578,535.125" id="my-svg-L_L2_Lerr_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_L2_Lerr_0" data-points="W3sieCI6MTc4My45MDQ4NjA4MjIzMzUyLCJ5IjozNzUuNTA2NDIzMzIyMzM1MjV9LHsieCI6MTY5OC41NzgxMjUsInkiOjQ2Ni4xMjV9LHsieCI6MTY5OC41NzgxMjUsInkiOjUzOS4xMjV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1891.142,375.506L1905.363,390.61C1919.584,405.713,1948.027,435.919,1962.248,460.522C1976.469,485.125,1976.469,504.125,1976.469,513.625L1976.469,523.125" id="my-svg-L_L2_L3_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_L2_L3_0" data-points="W3sieCI6MTg5MS4xNDIwMTQxNzc2NjQ4LCJ5IjozNzUuNTA2NDIzMzIyMzM1MjV9LHsieCI6MTk3Ni40Njg3NSwieSI6NDY2LjEyNX0seyJ4IjoxOTc2LjQ2ODc1LCJ5Ijo1MjcuMTI1fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1976.469,605.125L1976.469,615.292C1976.469,625.458,1976.469,645.792,1976.469,669.458C1976.469,693.125,1976.469,720.125,1976.469,733.625L1976.469,747.125" id="my-svg-L_L3_L4_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_L3_L4_0" data-points="W3sieCI6MTk3Ni40Njg3NSwieSI6NjA1LjEyNX0seyJ4IjoxOTc2LjQ2ODc1LCJ5Ijo2NjYuMTI1fSx7IngiOjE5NzYuNDY4NzUsInkiOjc1MS4xMjV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1976.469,805.125L1976.469,819.292C1976.469,833.458,1976.469,861.792,1976.469,883.458C1976.469,905.125,1976.469,920.125,1976.469,927.625L1976.469,935.125" id="my-svg-L_L4_L5_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_L4_L5_0" data-points="W3sieCI6MTk3Ni40Njg3NSwieSI6ODA1LjEyNX0seyJ4IjoxOTc2LjQ2ODc1LCJ5Ijo4OTAuMTI1fSx7IngiOjE5NzYuNDY4NzUsInkiOjkzOS4xMjV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1976.469,1017.125L1976.469,1025.292C1976.469,1033.458,1976.469,1049.792,1976.469,1067.458C1976.469,1085.125,1976.469,1104.125,1976.469,1113.625L1976.469,1123.125" id="my-svg-L_L5_LResp_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_L5_LResp_0" data-points="W3sieCI6MTk3Ni40Njg3NSwieSI6MTAxNy4xMjV9LHsieCI6MTk3Ni40Njg3NSwieSI6MTA2Ni4xMjV9LHsieCI6MTk3Ni40Njg3NSwieSI6MTEyNy4xMjV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M2449.93,134L2449.93,142.167C2449.93,150.333,2449.93,166.667,2449.93,192.26C2449.93,217.854,2449.93,252.708,2449.93,270.135L2449.93,287.563" id="my-svg-L_AS1_AS2_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_AS1_AS2_0" data-points="W3sieCI6MjQ0OS45Mjk2ODc1LCJ5IjoxMzR9LHsieCI6MjQ0OS45Mjk2ODc1LCJ5IjoxODN9LHsieCI6MjQ0OS45Mjk2ODc1LCJ5IjoyOTEuNTYyNX1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M2420.021,345.563L2397.762,365.656C2375.503,385.75,2330.986,425.938,2308.727,455.531C2286.469,485.125,2286.469,504.125,2286.469,513.625L2286.469,523.125" id="my-svg-L_AS2_ASresp_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_AS2_ASresp_0" data-points="W3sieCI6MjQyMC4wMjA2OTc2NjUxODQzLCJ5IjozNDUuNTYyNX0seyJ4IjoyMjg2LjQ2ODc1LCJ5Ijo0NjYuMTI1fSx7IngiOjIyODYuNDY4NzUsInkiOjUyNy4xMjV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M2476.742,345.563L2496.697,365.656C2516.651,385.75,2556.56,425.938,2576.514,451.531C2596.469,477.125,2596.469,488.125,2596.469,493.625L2596.469,499.125" id="my-svg-L_AS2_AS3_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_AS2_AS3_0" data-points="W3sieCI6MjQ3Ni43NDI0MjU3NDY1MDYsInkiOjM0NS41NjI1fSx7IngiOjI1OTYuNDY4NzUsInkiOjQ2Ni4xMjV9LHsieCI6MjU5Ni40Njg3NSwieSI6NTAzLjEyNX1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M2498.135,629.125L2488.509,635.292C2478.884,641.458,2459.633,653.792,2450.008,669.458C2440.383,685.125,2440.383,704.125,2440.383,713.625L2440.383,723.125" id="my-svg-L_AS3_AS4_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_AS3_AS4_0" data-points="W3sieCI6MjQ5OC4xMzQ2MDkzNzUsInkiOjYyOS4xMjV9LHsieCI6MjQ0MC4zODI4MTI1LCJ5Ijo2NjYuMTI1fSx7IngiOjI0NDAuMzgyODEyNSwieSI6NzI3LjEyNX1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M2694.119,629.125L2703.677,635.292C2713.235,641.458,2732.352,653.792,2741.91,671.458C2751.469,689.125,2751.469,712.125,2751.469,723.625L2751.469,735.125" id="my-svg-L_AS3_AS5_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_AS3_AS5_0" data-points="W3sieCI6MjY5NC4xMTg3NSwieSI6NjI5LjEyNX0seyJ4IjoyNzUxLjQ2ODc1LCJ5Ijo2NjYuMTI1fSx7IngiOjI3NTEuNDY4NzUsInkiOjczOS4xMjV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M2751.469,817.125L2751.469,829.292C2751.469,841.458,2751.469,865.792,2751.469,885.458C2751.469,905.125,2751.469,920.125,2751.469,927.625L2751.469,935.125" id="my-svg-L_AS5_ASresp2_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_AS5_ASresp2_0" data-points="W3sieCI6Mjc1MS40Njg3NSwieSI6ODE3LjEyNX0seyJ4IjoyNzUxLjQ2ODc1LCJ5Ijo4OTAuMTI1fSx7IngiOjI3NTEuNDY4NzUsInkiOjkzOS4xMjV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M3054.527,134L3054.527,142.167C3054.527,150.333,3054.527,166.667,3054.527,192.26C3054.527,217.854,3054.527,252.708,3054.527,270.135L3054.527,287.563" id="my-svg-L_SS1_SS2_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_SS1_SS2_0" data-points="W3sieCI6MzA1NC41MjczNDM3NSwieSI6MTM0fSx7IngiOjMwNTQuNTI3MzQzNzUsInkiOjE4M30seyJ4IjozMDU0LjUyNzM0Mzc1LCJ5IjoyOTEuNTYyNX1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M3027.435,345.563L3007.273,365.656C2987.11,385.75,2946.786,425.938,2926.623,457.531C2906.461,489.125,2906.461,512.125,2906.461,523.625L2906.461,535.125" id="my-svg-L_SS2_SSerr400_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_SS2_SSerr400_0" data-points="W3sieCI6MzAyNy40MzUxNDIzNTIyODcsInkiOjM0NS41NjI1fSx7IngiOjI5MDYuNDYwOTM3NSwieSI6NDY2LjEyNX0seyJ4IjoyOTA2LjQ2MDkzNzUsInkiOjUzOS4xMjV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M3081.128,345.563L3100.924,365.656C3120.721,385.75,3160.313,425.938,3180.11,455.531C3199.906,485.125,3199.906,504.125,3199.906,513.625L3199.906,523.125" id="my-svg-L_SS2_SS3_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_SS2_SS3_0" data-points="W3sieCI6MzA4MS4xMjc4MDQzNTk5MTEsInkiOjM0NS41NjI1fSx7IngiOjMxOTkuOTA2MjUsInkiOjQ2Ni4xMjV9LHsieCI6MzE5OS45MDYyNSwieSI6NTI3LjEyNX1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M3145.916,605.125L3131.841,615.292C3117.767,625.458,3089.618,645.792,3075.543,667.458C3061.469,689.125,3061.469,712.125,3061.469,723.625L3061.469,735.125" id="my-svg-L_SS3_SSerr403_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_SS3_SSerr403_0" data-points="W3sieCI6MzE0NS45MTU2MjUsInkiOjYwNS4xMjV9LHsieCI6MzA2MS40Njg3NSwieSI6NjY2LjEyNX0seyJ4IjozMDYxLjQ2ODc1LCJ5Ijo3MzkuMTI1fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M3253.897,605.125L3267.971,615.292C3282.046,625.458,3310.195,645.792,3324.269,669.458C3338.344,693.125,3338.344,720.125,3338.344,733.625L3338.344,747.125" id="my-svg-L_SS3_SS4_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_SS3_SS4_0" data-points="W3sieCI6MzI1My44OTY4NzUsInkiOjYwNS4xMjV9LHsieCI6MzMzOC4zNDM3NSwieSI6NjY2LjEyNX0seyJ4IjozMzM4LjM0Mzc1LCJ5Ijo3NTEuMTI1fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M3302.009,805.125L3282.944,819.292C3263.88,833.458,3225.75,861.792,3206.686,885.458C3187.621,909.125,3187.621,928.125,3187.621,937.625L3187.621,947.125" id="my-svg-L_SS4_SSerr401_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_SS4_SSerr401_0" data-points="W3sieCI6MzMwMi4wMDg4MjM5Mzk3MzIzLCJ5Ijo4MDUuMTI1fSx7IngiOjMxODcuNjIxMDkzNzUsInkiOjg5MC4xMjV9LHsieCI6MzE4Ny42MjEwOTM3NSwieSI6OTUxLjEyNX1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M3372.748,805.125L3390.8,819.292C3408.852,833.458,3444.955,861.792,3463.007,881.458C3481.059,901.125,3481.059,912.125,3481.059,917.625L3481.059,923.125" id="my-svg-L_SS4_SS5_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_SS4_SS5_0" data-points="W3sieCI6MzM3Mi43NDgyMjEyNjExNjEsInkiOjgwNS4xMjV9LHsieCI6MzQ4MS4wNTg1OTM3NSwieSI6ODkwLjEyNX0seyJ4IjozNDgxLjA1ODU5Mzc1LCJ5Ijo5MjcuMTI1fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M3481.059,1029.125L3481.059,1035.292C3481.059,1041.458,3481.059,1053.792,3481.059,1067.458C3481.059,1081.125,3481.059,1096.125,3481.059,1103.625L3481.059,1111.125" id="my-svg-L_SS5_SS6_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_SS5_SS6_0" data-points="W3sieCI6MzQ4MS4wNTg1OTM3NSwieSI6MTAyOS4xMjV9LHsieCI6MzQ4MS4wNTg1OTM3NSwieSI6MTA2Ni4xMjV9LHsieCI6MzQ4MS4wNTg1OTM3NSwieSI6MTExNS4xMjV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M3481.059,1193.125L3481.059,1203.292C3481.059,1213.458,3481.059,1233.792,3481.059,1251.458C3481.059,1269.125,3481.059,1284.125,3481.059,1291.625L3481.059,1299.125" id="my-svg-L_SS6_SSresp_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_SS6_SSresp_0" data-points="W3sieCI6MzQ4MS4wNTg1OTM3NSwieSI6MTE5My4xMjV9LHsieCI6MzQ4MS4wNTg1OTM3NSwieSI6MTI1NC4xMjV9LHsieCI6MzQ4MS4wNTg1OTM3NSwieSI6MTMwMy4xMjV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M3791.066,122L3791.066,132.167C3791.066,142.333,3791.066,162.667,3791.066,190.26C3791.066,217.854,3791.066,252.708,3791.066,270.135L3791.066,287.563" id="my-svg-L_LA1_LA2_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_LA1_LA2_0" data-points="W3sieCI6Mzc5MS4wNjY0MDYyNSwieSI6MTIyfSx7IngiOjM3OTEuMDY2NDA2MjUsInkiOjE4M30seyJ4IjozNzkxLjA2NjQwNjI1LCJ5IjoyOTEuNTYyNX1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M3791.066,345.563L3791.066,365.656C3791.066,385.75,3791.066,425.938,3791.066,455.531C3791.066,485.125,3791.066,504.125,3791.066,513.625L3791.066,523.125" id="my-svg-L_LA2_LA3_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_LA2_LA3_0" data-points="W3sieCI6Mzc5MS4wNjY0MDYyNSwieSI6MzQ1LjU2MjV9LHsieCI6Mzc5MS4wNjY0MDYyNSwieSI6NDY2LjEyNX0seyJ4IjozNzkxLjA2NjQwNjI1LCJ5Ijo1MjcuMTI1fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M3791.066,605.125L3791.066,615.292C3791.066,625.458,3791.066,645.792,3791.066,669.458C3791.066,693.125,3791.066,720.125,3791.066,733.625L3791.066,747.125" id="my-svg-L_LA3_LA4_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_LA3_LA4_0" data-points="W3sieCI6Mzc5MS4wNjY0MDYyNSwieSI6NjA1LjEyNX0seyJ4IjozNzkxLjA2NjQwNjI1LCJ5Ijo2NjYuMTI1fSx7IngiOjM3OTEuMDY2NDA2MjUsInkiOjc1MS4xMjV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M3791.066,805.125L3791.066,819.292C3791.066,833.458,3791.066,861.792,3791.066,883.458C3791.066,905.125,3791.066,920.125,3791.066,927.625L3791.066,935.125" id="my-svg-L_LA4_LA5_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_LA4_LA5_0" data-points="W3sieCI6Mzc5MS4wNjY0MDYyNSwieSI6ODA1LjEyNX0seyJ4IjozNzkxLjA2NjQwNjI1LCJ5Ijo4OTAuMTI1fSx7IngiOjM3OTEuMDY2NDA2MjUsInkiOjkzOS4xMjV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M3791.066,1017.125L3791.066,1025.292C3791.066,1033.458,3791.066,1049.792,3791.066,1063.458C3791.066,1077.125,3791.066,1088.125,3791.066,1093.625L3791.066,1099.125" id="my-svg-L_LA5_LA6_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_LA5_LA6_0" data-points="W3sieCI6Mzc5MS4wNjY0MDYyNSwieSI6MTAxNy4xMjV9LHsieCI6Mzc5MS4wNjY0MDYyNSwieSI6MTA2Ni4xMjV9LHsieCI6Mzc5MS4wNjY0MDYyNSwieSI6MTEwMy4xMjV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M3791.066,1205.125L3791.066,1213.292C3791.066,1221.458,3791.066,1237.792,3791.066,1255.458C3791.066,1273.125,3791.066,1292.125,3791.066,1301.625L3791.066,1311.125" id="my-svg-L_LA6_LAresp_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_LA6_LAresp_0" data-points="W3sieCI6Mzc5MS4wNjY0MDYyNSwieSI6MTIwNS4xMjV9LHsieCI6Mzc5MS4wNjY0MDYyNSwieSI6MTI1NC4xMjV9LHsieCI6Mzc5MS4wNjY0MDYyNSwieSI6MTMxNS4xMjV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M4261.918,158L4261.918,162.167C4261.918,166.333,4261.918,174.667,4261.918,190.26C4261.918,205.854,4261.918,228.708,4261.918,240.135L4261.918,251.563" id="my-svg-L_O1_O2_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_O1_O2_0" data-points="W3sieCI6NDI2MS45MTc5Njg3NSwieSI6MTU4fSx7IngiOjQyNjEuOTE3OTY4NzUsInkiOjE4M30seyJ4Ijo0MjYxLjkxNzk2ODc1LCJ5IjoyNTUuNTYyNX1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M4261.918,381.563L4261.918,395.656C4261.918,409.75,4261.918,437.938,4261.918,459.531C4261.918,481.125,4261.918,496.125,4261.918,503.625L4261.918,511.125" id="my-svg-L_O2_O3_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_O2_O3_0" data-points="W3sieCI6NDI2MS45MTc5Njg3NSwieSI6MzgxLjU2MjV9LHsieCI6NDI2MS45MTc5Njg3NSwieSI6NDY2LjEyNX0seyJ4Ijo0MjYxLjkxNzk2ODc1LCJ5Ijo1MTUuMTI1fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M4261.918,617.125L4261.918,625.292C4261.918,633.458,4261.918,649.792,4261.918,663.458C4261.918,677.125,4261.918,688.125,4261.918,693.625L4261.918,699.125" id="my-svg-L_O3_O4_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_O3_O4_0" data-points="W3sieCI6NDI2MS45MTc5Njg3NSwieSI6NjE3LjEyNX0seyJ4Ijo0MjYxLjkxNzk2ODc1LCJ5Ijo2NjYuMTI1fSx7IngiOjQyNjEuOTE3OTY4NzUsInkiOjcwMy4xMjV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M4261.918,853.125L4261.918,859.292C4261.918,865.458,4261.918,877.792,4261.918,889.458C4261.918,901.125,4261.918,912.125,4261.918,917.625L4261.918,923.125" id="my-svg-L_O4_O5_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_O4_O5_0" data-points="W3sieCI6NDI2MS45MTc5Njg3NSwieSI6ODUzLjEyNX0seyJ4Ijo0MjYxLjkxNzk2ODc1LCJ5Ijo4OTAuMTI1fSx7IngiOjQyNjEuOTE3OTY4NzUsInkiOjkyNy4xMjV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M4172.147,1029.125L4161.293,1035.292C4150.438,1041.458,4128.729,1053.792,4117.874,1069.458C4107.02,1085.125,4107.02,1104.125,4107.02,1113.625L4107.02,1123.125" id="my-svg-L_O5_Oerr_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_O5_Oerr_0" data-points="W3sieCI6NDE3Mi4xNDcyODMzODA2ODIsInkiOjEwMjkuMTI1fSx7IngiOjQxMDcuMDE5NTMxMjUsInkiOjEwNjYuMTI1fSx7IngiOjQxMDcuMDE5NTMxMjUsInkiOjExMjcuMTI1fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M4344.431,1029.125L4354.408,1035.292C4364.385,1041.458,4384.339,1053.792,4394.316,1067.458C4404.293,1081.125,4404.293,1096.125,4404.293,1103.625L4404.293,1111.125" id="my-svg-L_O5_O6_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_O5_O6_0" data-points="W3sieCI6NDM0NC40MzA3NTI4NDA5MDksInkiOjEwMjkuMTI1fSx7IngiOjQ0MDQuMjkyOTY4NzUsInkiOjEwNjYuMTI1fSx7IngiOjQ0MDQuMjkyOTY4NzUsInkiOjExMTUuMTI1fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M4346.325,1193.125L4331.213,1203.292C4316.102,1213.458,4285.879,1233.792,4270.768,1255.458C4255.656,1277.125,4255.656,1300.125,4255.656,1311.625L4255.656,1323.125" id="my-svg-L_O6_Oerr2_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_O6_Oerr2_0" data-points="W3sieCI6NDM0Ni4zMjQ2NDg0Mzc1LCJ5IjoxMTkzLjEyNX0seyJ4Ijo0MjU1LjY1NjI1LCJ5IjoxMjU0LjEyNX0seyJ4Ijo0MjU1LjY1NjI1LCJ5IjoxMzI3LjEyNX1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M4462.261,1193.125L4477.373,1203.292C4492.484,1213.458,4522.707,1233.792,4537.818,1253.458C4552.93,1273.125,4552.93,1292.125,4552.93,1301.625L4552.93,1311.125" id="my-svg-L_O6_O7_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_O6_O7_0" data-points="W3sieCI6NDQ2Mi4yNjEyODkwNjI1LCJ5IjoxMTkzLjEyNX0seyJ4Ijo0NTUyLjkyOTY4NzUsInkiOjEyNTQuMTI1fSx7IngiOjQ1NTIuOTI5Njg3NSwieSI6MTMxNS4xMjV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M4422.93,1361.98L4168.747,1377.337C3914.565,1392.695,3406.201,1423.41,3391.864,1454.014C3377.527,1484.619,3857.219,1515.113,4097.065,1530.36L4336.91,1545.607" id="my-svg-L_O7_O8_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_O7_O8_0" data-points="W3sieCI6NDQyMi45Mjk2ODc1LCJ5IjoxMzYxLjk3OTUzOTk2MTg2MDJ9LHsieCI6Mjg5Ny44MzU5Mzc1LCJ5IjoxNDU0LjEyNX0seyJ4Ijo0MzQwLjkwMjM0Mzc1LCJ5IjoxNTQ1Ljg2MDg4NjA3MDQ0ODV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M4645.37,1393.125L4669.468,1403.292C4693.566,1413.458,4741.761,1433.792,4765.859,1451.458C4789.957,1469.125,4789.957,1484.125,4789.957,1491.625L4789.957,1499.125" id="my-svg-L_O7_O9_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_O7_O9_0" data-points="W3sieCI6NDY0NS4zNzAzNTE1NjI1LCJ5IjoxMzkzLjEyNX0seyJ4Ijo0Nzg5Ljk1NzAzMTI1LCJ5IjoxNDU0LjEyNX0seyJ4Ijo0Nzg5Ljk1NzAzMTI1LCJ5IjoxNTAzLjEyNX1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M4552.93,1393.125L4552.93,1403.292C4552.93,1413.458,4552.93,1433.792,4545.013,1453.61C4537.096,1473.427,4521.263,1492.73,4513.346,1502.381L4505.43,1512.032" id="my-svg-L_O7_O8_2" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_O7_O8_2" data-points="W3sieCI6NDU1Mi45Mjk2ODc1LCJ5IjoxMzkzLjEyNX0seyJ4Ijo0NTUyLjkyOTY4NzUsInkiOjE0NTQuMTI1fSx7IngiOjQ1MDIuODkzMDA3ODEyNSwieSI6MTUxNS4xMjV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M4470.902,1593.125L4470.902,1599.292C4470.902,1605.458,4470.902,1617.792,4470.902,1627.458C4470.902,1637.125,4470.902,1644.125,4470.902,1647.625L4470.902,1651.125" id="my-svg-L_O8_Oresp_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_O8_Oresp_0" data-points="W3sieCI6NDQ3MC45MDIzNDM3NSwieSI6MTU5My4xMjV9LHsieCI6NDQ3MC45MDIzNDM3NSwieSI6MTYzMC4xMjV9LHsieCI6NDQ3MC45MDIzNDM3NSwieSI6MTY1NS4xMjV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M4578.848,122L4578.848,132.167C4578.848,142.333,4578.848,162.667,4578.848,186.26C4578.848,209.854,4578.848,236.708,4578.848,250.135L4578.848,263.563" id="my-svg-L_LG1_LG2_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_LG1_LG2_0" data-points="W3sieCI6NDU3OC44NDc2NTYyNSwieSI6MTIyfSx7IngiOjQ1NzguODQ3NjU2MjUsInkiOjE4M30seyJ4Ijo0NTc4Ljg0NzY1NjI1LCJ5IjoyNjcuNTYyNX1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M4888.848,122L4888.848,132.167C4888.848,142.333,4888.848,162.667,4888.848,186.26C4888.848,209.854,4888.848,236.708,4888.848,250.135L4888.848,263.563" id="my-svg-L_AC1_AC2_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_AC1_AC2_0" data-points="W3sieCI6NDg4OC44NDc2NTYyNSwieSI6MTIyfSx7IngiOjQ4ODguODQ3NjU2MjUsInkiOjE4M30seyJ4Ijo0ODg4Ljg0NzY1NjI1LCJ5IjoyNjcuNTYyNX1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M5198.848,122L5198.848,132.167C5198.848,142.333,5198.848,162.667,5198.848,188.26C5198.848,213.854,5198.848,244.708,5198.848,260.135L5198.848,275.563" id="my-svg-L_T1_T2_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_T1_T2_0" data-points="W3sieCI6NTE5OC44NDc2NTYyNSwieSI6MTIyfSx7IngiOjUxOTguODQ3NjU2MjUsInkiOjE4M30seyJ4Ijo1MTk4Ljg0NzY1NjI1LCJ5IjoyNzkuNTYyNX1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M5198.848,357.563L5198.848,375.656C5198.848,393.75,5198.848,429.938,5198.848,455.531C5198.848,481.125,5198.848,496.125,5198.848,503.625L5198.848,511.125" id="my-svg-L_T2_T3_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_T2_T3_0" data-points="W3sieCI6NTE5OC44NDc2NTYyNSwieSI6MzU3LjU2MjV9LHsieCI6NTE5OC44NDc2NTYyNSwieSI6NDY2LjEyNX0seyJ4Ijo1MTk4Ljg0NzY1NjI1LCJ5Ijo1MTUuMTI1fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M5068.848,608.641L5039.553,618.221C5010.258,627.802,4951.668,646.964,4922.373,670.044C4893.078,693.125,4893.078,720.125,4893.078,733.625L4893.078,747.125" id="my-svg-L_T3_Terr_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_T3_Terr_0" data-points="W3sieCI6NTA2OC44NDc2NTYyNSwieSI6NjA4LjY0MDY4MTQ5MDA5Mjl9LHsieCI6NDg5My4wNzgxMjUsInkiOjY2Ni4xMjV9LHsieCI6NDg5My4wNzgxMjUsInkiOjc1MS4xMjV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M5271.586,617.125L5283.234,625.292C5294.882,633.458,5318.177,649.792,5329.825,667.458C5341.473,685.125,5341.473,704.125,5341.473,713.625L5341.473,723.125" id="my-svg-L_T3_T4_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_T3_T4_0" data-points="W3sieCI6NTI3MS41ODY0MDYyNSwieSI6NjE3LjEyNX0seyJ4Ijo1MzQxLjQ3MjY1NjI1LCJ5Ijo2NjYuMTI1fSx7IngiOjUzNDEuNDcyNjU2MjUsInkiOjcyNy4xMjV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M5211.473,822.948L5179,834.144C5146.527,845.34,5081.582,867.733,5049.109,888.429C5016.637,909.125,5016.637,928.125,5016.637,937.625L5016.637,947.125" id="my-svg-L_T4_Texp_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_T4_Texp_0" data-points="W3sieCI6NTIxMS40NzI2NTYyNSwieSI6ODIyLjk0NzYyNjgwNjgwMTV9LHsieCI6NTAxNi42MzY3MTg3NSwieSI6ODkwLjEyNX0seyJ4Ijo1MDE2LjYzNjcxODc1LCJ5Ijo5NTEuMTI1fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M5406.875,829.125L5419.913,839.292C5432.951,849.458,5459.026,869.792,5472.064,885.458C5485.102,901.125,5485.102,912.125,5485.102,917.625L5485.102,923.125" id="my-svg-L_T4_T5_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_T4_T5_0" data-points="W3sieCI6NTQwNi44NzUxMDQ2MzE2OTcsInkiOjgyOS4xMjV9LHsieCI6NTQ4NS4xMDE1NjI1LCJ5Ijo4OTAuMTI1fSx7IngiOjU0ODUuMTAxNTYyNSwieSI6OTI3LjEyNX1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M5485.102,1029.125L5485.102,1035.292C5485.102,1041.458,5485.102,1053.792,5485.102,1065.458C5485.102,1077.125,5485.102,1088.125,5485.102,1093.625L5485.102,1099.125" id="my-svg-L_T5_T6_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_T5_T6_0" data-points="W3sieCI6NTQ4NS4xMDE1NjI1LCJ5IjoxMDI5LjEyNX0seyJ4Ijo1NDg1LjEwMTU2MjUsInkiOjEwNjYuMTI1fSx7IngiOjU0ODUuMTAxNTYyNSwieSI6MTEwMy4xMjV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M5355.102,1195.782L5324.757,1205.506C5294.411,1215.23,5233.721,1234.677,5203.376,1253.901C5173.031,1273.125,5173.031,1292.125,5173.031,1301.625L5173.031,1311.125" id="my-svg-L_T6_T403_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_T6_T403_0" data-points="W3sieCI6NTM1NS4xMDE1NjI1LCJ5IjoxMTk1Ljc4MjI3ODc1ODI5Mjd9LHsieCI6NTE3My4wMzEyNSwieSI6MTI1NC4xMjV9LHsieCI6NTE3My4wMzEyNSwieSI6MTMxNS4xMjV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M5615.102,1194.185L5647.52,1204.175C5679.939,1214.165,5744.776,1234.145,5777.195,1253.635C5809.613,1273.125,5809.613,1292.125,5809.613,1301.625L5809.613,1311.125" id="my-svg-L_T6_NEXT_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_T6_NEXT_0" data-points="W3sieCI6NTYxNS4xMDE1NjI1LCJ5IjoxMTk0LjE4NTE4NjU3ODM5M30seyJ4Ijo1ODA5LjYxMzI4MTI1LCJ5IjoxMjU0LjEyNX0seyJ4Ijo1ODA5LjYxMzI4MTI1LCJ5IjoxMzE1LjEyNX1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M5950.102,122L5950.102,132.167C5950.102,142.333,5950.102,162.667,5950.102,188.26C5950.102,213.854,5950.102,244.708,5950.102,260.135L5950.102,275.563" id="my-svg-L_R1_R2_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_R1_R2_0" data-points="W3sieCI6NTk1MC4xMDE1NjI1LCJ5IjoxMjJ9LHsieCI6NTk1MC4xMDE1NjI1LCJ5IjoxODN9LHsieCI6NTk1MC4xMDE1NjI1LCJ5IjoyNzkuNTYyNX1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M5950.102,357.563L5950.102,375.656C5950.102,393.75,5950.102,429.938,5950.102,455.531C5950.102,481.125,5950.102,496.125,5950.102,503.625L5950.102,511.125" id="my-svg-L_R2_R3_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_R2_R3_0" data-points="W3sieCI6NTk1MC4xMDE1NjI1LCJ5IjozNTcuNTYyNX0seyJ4Ijo1OTUwLjEwMTU2MjUsInkiOjQ2Ni4xMjV9LHsieCI6NTk1MC4xMDE1NjI1LCJ5Ijo1MTUuMTI1fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M5842.924,617.125L5825.761,625.292C5808.599,633.458,5774.274,649.792,5757.112,676.625C5739.949,703.458,5739.949,740.792,5739.949,778.125C5739.949,815.458,5739.949,852.792,5744.713,879.06C5749.478,905.329,5759.006,920.532,5763.771,928.134L5768.535,935.736" id="my-svg-L_R3_RFALSE_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_R3_RFALSE_0" data-points="W3sieCI6NTg0Mi45MjM4NjcxODc1LCJ5Ijo2MTcuMTI1fSx7IngiOjU3MzkuOTQ5MjE4NzUsInkiOjY2Ni4xMjV9LHsieCI6NTczOS45NDkyMTg3NSwieSI6Nzc4LjEyNX0seyJ4Ijo1NzM5Ljk0OTIxODc1LCJ5Ijo4OTAuMTI1fSx7IngiOjU3NzAuNjU5MDQ2NTE5ODg2LCJ5Ijo5MzkuMTI1fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M6080.102,612.689L6104.965,621.595C6129.829,630.501,6179.557,648.313,6204.421,668.719C6229.285,689.125,6229.285,712.125,6229.285,723.625L6229.285,735.125" id="my-svg-L_R3_R4_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_R3_R4_0" data-points="W3sieCI6NjA4MC4xMDE1NjI1LCJ5Ijo2MTIuNjg5MzQwNzgxNTc1OH0seyJ4Ijo2MjI5LjI4NTE1NjI1LCJ5Ijo2NjYuMTI1fSx7IngiOjYyMjkuMjg1MTU2MjUsInkiOjczOS4xMjV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M6175.312,817.125L6158.474,829.292C6141.636,841.458,6107.961,865.792,6065.85,885.925C6023.739,906.058,5973.192,921.99,5947.919,929.956L5922.646,937.923" id="my-svg-L_R4_RFALSE_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_R4_RFALSE_0" data-points="W3sieCI6NjE3NS4zMTE5NDE5NjQyODUsInkiOjgxNy4xMjV9LHsieCI6NjA3NC4yODUxNTYyNSwieSI6ODkwLjEyNX0seyJ4Ijo1OTE4LjgzMDY1NTE4NDY1OSwieSI6OTM5LjEyNX1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M6234.823,817.125L6236.55,829.292C6238.278,841.458,6241.733,865.792,6243.46,883.458C6245.188,901.125,6245.188,912.125,6245.188,917.625L6245.188,923.125" id="my-svg-L_R4_R5_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_R4_R5_0" data-points="W3sieCI6NjIzNC44MjI1Nzk1MjAwOSwieSI6ODE3LjEyNX0seyJ4Ijo2MjQ1LjE4NzUsInkiOjg5MC4xMjV9LHsieCI6NjI0NS4xODc1LCJ5Ijo5MjcuMTI1fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M6245.188,1029.125L6245.188,1035.292C6245.188,1041.458,6245.188,1053.792,6245.188,1067.458C6245.188,1081.125,6245.188,1096.125,6245.188,1103.625L6245.188,1111.125" id="my-svg-L_R5_R6_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_R5_R6_0" data-points="W3sieCI6NjI0NS4xODc1LCJ5IjoxMDI5LjEyNX0seyJ4Ijo2MjQ1LjE4NzUsInkiOjEwNjYuMTI1fSx7IngiOjYyNDUuMTg3NSwieSI6MTExNS4xMjV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M6245.188,1193.125L6245.188,1203.292C6245.188,1213.458,6245.188,1233.792,6245.188,1255.458C6245.188,1277.125,6245.188,1300.125,6245.188,1311.625L6245.188,1323.125" id="my-svg-L_R6_RTRUE_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_R6_RTRUE_0" data-points="W3sieCI6NjI0NS4xODc1LCJ5IjoxMTkzLjEyNX0seyJ4Ijo2MjQ1LjE4NzUsInkiOjEyNTQuMTI1fSx7IngiOjYyNDUuMTg3NSwieSI6MTMyNy4xMjV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M6260.102,122L6260.102,132.167C6260.102,142.333,6260.102,162.667,6260.102,190.26C6260.102,217.854,6260.102,252.708,6260.102,270.135L6260.102,287.563" id="my-svg-L_TD1_TD2_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_TD1_TD2_0" data-points="W3sieCI6NjI2MC4xMDE1NjI1LCJ5IjoxMjJ9LHsieCI6NjI2MC4xMDE1NjI1LCJ5IjoxODN9LHsieCI6NjI2MC4xMDE1NjI1LCJ5IjoyOTEuNTYyNX1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M6260.102,345.563L6260.102,365.656C6260.102,385.75,6260.102,425.938,6260.102,451.531C6260.102,477.125,6260.102,488.125,6260.102,493.625L6260.102,499.125" id="my-svg-L_TD2_TD3_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_TD2_TD3_0" data-points="W3sieCI6NjI2MC4xMDE1NjI1LCJ5IjozNDUuNTYyNX0seyJ4Ijo2MjYwLjEwMTU2MjUsInkiOjQ2Ni4xMjV9LHsieCI6NjI2MC4xMDE1NjI1LCJ5Ijo1MDMuMTI1fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M6130.102,610.026L6102.415,619.376C6074.728,628.726,6019.354,647.425,5991.667,670.275C5963.98,693.125,5963.98,720.125,5963.98,733.625L5963.98,747.125" id="my-svg-L_TD3_TDNULL_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_TD3_TDNULL_0" data-points="W3sieCI6NjEzMC4xMDE1NjI1LCJ5Ijo2MTAuMDI1OTU5MDE0MzM5fSx7IngiOjU5NjMuOTgwNDY4NzUsInkiOjY2Ni4xMjV9LHsieCI6NTk2My45ODA0Njg3NSwieSI6NzUxLjEyNX1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M6390.102,610.18L6417.616,619.504C6445.13,628.828,6500.159,647.477,6527.673,666.301C6555.188,685.125,6555.188,704.125,6555.188,713.625L6555.188,723.125" id="my-svg-L_TD3_TD4_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_TD3_TD4_0" data-points="W3sieCI6NjM5MC4xMDE1NjI1LCJ5Ijo2MTAuMTc5OTYyODAyMTQ5OH0seyJ4Ijo2NTU1LjE4NzUsInkiOjY2Ni4xMjV9LHsieCI6NjU1NS4xODc1LCJ5Ijo3MjcuMTI1fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M6555.188,829.125L6555.188,839.292C6555.188,849.458,6555.188,869.792,6555.188,885.458C6555.188,901.125,6555.188,912.125,6555.188,917.625L6555.188,923.125" id="my-svg-L_TD4_TD5_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_TD4_TD5_0" data-points="W3sieCI6NjU1NS4xODc1LCJ5Ijo4MjkuMTI1fSx7IngiOjY1NTUuMTg3NSwieSI6ODkwLjEyNX0seyJ4Ijo2NTU1LjE4NzUsInkiOjkyNy4xMjV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/></g><g class="edgeLabels"><g class="edgeLabel"><g class="label" data-id="L_A_B_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(112.4765625, 466.125)"><g class="label" data-id="L_B_Aerr_0" transform="translate(-23.875, -12)"><foreignObject width="47.75" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>invalid</p></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_B_C_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(396.953125, 666.125)"><g class="label" data-id="L_C_U404_0" transform="translate(-26.15625, -12)"><foreignObject width="52.3125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>no user</p></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_C_D_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(535.06640625, 890.125)"><g class="label" data-id="L_D_P401_0" transform="translate(-11.8046875, -12)"><foreignObject width="23.609375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>fail</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(833.39453125, 890.125)"><g class="label" data-id="L_D_E_0" transform="translate(-8.328125, -12)"><foreignObject width="16.65625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>ok</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(405.9453125, 1066.125)"><g class="label" data-id="L_E_I403_0" transform="translate(-28.5546875, -12)"><foreignObject width="57.109375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>inactive</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(684.125, 1066.125)"><g class="label" data-id="L_E_A403_0" transform="translate(-52.6640625, -12)"><foreignObject width="105.328125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>not authorized</p></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_E_F_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(509.1466, 1226.81134)"><g class="label" data-id="L_F_G_0" transform="translate(-86.546875, -12)"><foreignObject width="173.09375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>trusted and 2FA enabled</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(1253.4609375, 1254.125)"><g class="label" data-id="L_F_H_0" transform="translate(-100, -24)"><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="edgeLabel"><p>not trusted and 2FA enabled</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(840.98471, 1284.88338)"><g class="label" data-id="L_F_G_2" transform="translate(-100, -24)"><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="edgeLabel"><p>not trusted and 2FA disabled</p></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_G_Gdel_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_Gdel_Gregen_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_Gregen_Gprune_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_Gprune_Gcache_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_Gcache_Ginsert_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_Ginsert_Glast_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_Glast_Gcookies_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(537.7578125, 2482.125)"><g class="label" data-id="L_Gcookies_Gtrust_0" transform="translate(-40.859375, -12)"><foreignObject width="81.71875" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>trustDevice</p></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_Gcookies_RESP_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_Gtrust_RESP_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_A2_B2_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(1128.2109375, 466.125)"><g class="label" data-id="L_B2_Err401_0" transform="translate(-26.0703125, -12)"><foreignObject width="52.140625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>missing</p></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_B2_C2_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_C2_D2_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_D2_E2_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(1273.7578125, 1066.125)"><g class="label" data-id="L_E2_T401_0" transform="translate(-23.875, -12)"><foreignObject width="47.75" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>invalid</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(1563.4609375, 1066.125)"><g class="label" data-id="L_E2_F2_0" transform="translate(-17.21875, -12)"><foreignObject width="34.4375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>valid</p></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_F2_RESP2_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_L1_L2_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(1698.578125, 466.125)"><g class="label" data-id="L_L2_Lerr_0" transform="translate(-8.6640625, -12)"><foreignObject width="17.328125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>no</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(1976.46875, 466.125)"><g class="label" data-id="L_L2_L3_0" transform="translate(-11.546875, -12)"><foreignObject width="23.09375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>yes</p></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_L3_L4_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_L4_L5_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_L5_LResp_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_AS1_AS2_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(2286.46875, 466.125)"><g class="label" data-id="L_AS2_ASresp_0" transform="translate(-22.578125, -12)"><foreignObject width="45.15625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>empty</p></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_AS2_AS3_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(2440.3828125, 666.125)"><g class="label" data-id="L_AS3_AS4_0" transform="translate(-23.875, -12)"><foreignObject width="47.75" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>invalid</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(2751.46875, 666.125)"><g class="label" data-id="L_AS3_AS5_0" transform="translate(-17.21875, -12)"><foreignObject width="34.4375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>valid</p></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_AS5_ASresp2_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_SS1_SS2_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(2906.4609375, 466.125)"><g class="label" data-id="L_SS2_SSerr400_0" transform="translate(-23.875, -12)"><foreignObject width="47.75" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>invalid</p></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_SS2_SS3_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(3061.46875, 666.125)"><g class="label" data-id="L_SS3_SSerr403_0" transform="translate(-26.0703125, -12)"><foreignObject width="52.140625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>missing</p></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_SS3_SS4_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(3187.62109375, 890.125)"><g class="label" data-id="L_SS4_SSerr401_0" transform="translate(-34.6953125, -12)"><foreignObject width="69.390625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>not found</p></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_SS4_SS5_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_SS5_SS6_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_SS6_SSresp_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_LA1_LA2_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_LA2_LA3_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_LA3_LA4_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_LA4_LA5_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_LA5_LA6_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_LA6_LAresp_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_O1_O2_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_O2_O3_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_O3_O4_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_O4_O5_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(4107.01953125, 1066.125)"><g class="label" data-id="L_O5_Oerr_0" transform="translate(-23.875, -12)"><foreignObject width="47.75" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>invalid</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(4404.29296875, 1066.125)"><g class="label" data-id="L_O5_O6_0" transform="translate(-17.21875, -12)"><foreignObject width="34.4375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>valid</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(4255.65625, 1254.125)"><g class="label" data-id="L_O6_Oerr2_0" transform="translate(-36.1171875, -12)"><foreignObject width="72.234375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>not linked</p></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_O6_O7_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(2897.8359375, 1454.125)"><g class="label" data-id="L_O7_O8_0" transform="translate(-100, -24)"><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="edgeLabel"><p>2FA enabled and device trusted</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(4789.95703125, 1454.125)"><g class="label" data-id="L_O7_O9_0" transform="translate(-100, -24)"><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="edgeLabel"><p>2FA enabled and not trusted</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(4552.9296875, 1454.125)"><g class="label" data-id="L_O7_O8_2" transform="translate(-44.0546875, -12)"><foreignObject width="88.109375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>2FA disabled</p></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_O8_Oresp_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_LG1_LG2_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_AC1_AC2_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_T1_T2_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_T2_T3_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(4893.078125, 666.125)"><g class="label" data-id="L_T3_Terr_0" transform="translate(-34.6953125, -12)"><foreignObject width="69.390625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>not found</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(5341.47265625, 666.125)"><g class="label" data-id="L_T3_T4_0" transform="translate(-20.453125, -12)"><foreignObject width="40.90625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>found</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(5016.63671875, 890.125)"><g class="label" data-id="L_T4_Texp_0" transform="translate(-27.0390625, -12)"><foreignObject width="54.078125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>expired</p></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_T4_T5_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_T5_T6_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(5173.03125, 1254.125)"><g class="label" data-id="L_T6_T403_0" transform="translate(-40.609375, -12)"><foreignObject width="81.21875" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>insufficient</p></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_T6_NEXT_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_R1_R2_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_R2_R3_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(5739.94921875, 778.125)"><g class="label" data-id="L_R3_RFALSE_0" transform="translate(-34.6953125, -12)"><foreignObject width="69.390625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>not found</p></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_R3_R4_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(6055.99569, 895.88993)"><g class="label" data-id="L_R4_RFALSE_0" transform="translate(-11.8046875, -12)"><foreignObject width="23.609375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>fail</p></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_R4_R5_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_R5_R6_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_R6_RTRUE_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_TD1_TD2_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_TD2_TD3_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(5963.98046875, 666.125)"><g class="label" data-id="L_TD3_TDNULL_0" transform="translate(-24.4296875, -12)"><foreignObject width="48.859375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>no row</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(6555.1875, 666.125)"><g class="label" data-id="L_TD3_TD4_0" transform="translate(-36.21875, -12)"><foreignObject width="72.4375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>row found</p></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_TD4_TD5_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g></g><g class="nodes"><g class="node default" id="my-svg-flowchart-A-0" data-look="classic" transform="translate(244.5859375, 83)"><rect class="basic label-container" style="" x="-130" y="-63" width="260" height="126"/><g class="label" style="" transform="translate(-100, -48)"><rect/><foreignObject width="200" height="96"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Client POST /mbkauthe/api/login - payload: username password redirect</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-B-1" data-look="classic" transform="translate(244.5859375, 318.5625)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Validate input length &amp; format</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-Aerr-3" data-look="classic" transform="translate(112.4765625, 566.125)"><rect class="basic label-container" style="" x="-104.4765625" y="-27" width="208.953125" height="54"/><g class="label" style="" transform="translate(-74.4765625, -12)"><rect/><foreignObject width="148.953125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>400 - missing/invalid</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-C-5" data-look="classic" transform="translate(396.953125, 566.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Query Users and TwoFA status</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-U404-7" data-look="classic" transform="translate(396.953125, 778.125)"><rect class="basic label-container" style="" x="-116.5078125" y="-27" width="233.015625" height="54"/><g class="label" style="" transform="translate(-86.5078125, -12)"><rect/><foreignObject width="173.015625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>401 - invalid credentials</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-D-9" data-look="classic" transform="translate(679.265625, 778.125)"><rect class="basic label-container" style="" x="-115.8046875" y="-27" width="231.609375" height="54"/><g class="label" style="" transform="translate(-85.8046875, -12)"><rect/><foreignObject width="171.609375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>Compare password hash</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-P401-11" data-look="classic" transform="translate(535.06640625, 978.125)"><rect class="basic label-container" style="" x="-118.328125" y="-27" width="236.65625" height="54"/><g class="label" style="" transform="translate(-88.328125, -12)"><rect/><foreignObject width="176.65625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>401 - incorrect password</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-E-13" data-look="classic" transform="translate(833.39453125, 978.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Check account Active and app authorization</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-I403-15" data-look="classic" transform="translate(405.9453125, 1154.125)"><rect class="basic label-container" style="" x="-109.640625" y="-27" width="219.28125" height="54"/><g class="label" style="" transform="translate(-79.640625, -12)"><rect/><foreignObject width="159.28125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>403 - account inactive</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-A403-17" data-look="classic" transform="translate(684.125, 1154.125)"><rect class="basic label-container" style="" x="-118.5390625" y="-27" width="237.078125" height="54"/><g class="label" style="" transform="translate(-88.5390625, -12)"><rect/><foreignObject width="177.078125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>403 - app not authorized</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-F-19" data-look="classic" transform="translate(982.6640625, 1154.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>checkTrustedDevice username</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-G-21" data-look="classic" transform="translate(537.7578125, 1354.125)"><rect class="basic label-container" style="" x="-108.9140625" y="-27" width="217.828125" height="54"/><g class="label" style="" transform="translate(-78.9140625, -12)"><rect/><foreignObject width="157.828125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>completeLoginProcess</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-H-23" data-look="classic" transform="translate(1253.4609375, 1354.125)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Set preAuthUser and respond twoFactorRequired:true</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-Gdel-27" data-look="classic" transform="translate(537.7578125, 1554.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Delete old session store row</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-Gregen-29" data-look="classic" transform="translate(537.7578125, 1694.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Regenerate session - new session id</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-Gprune-31" data-look="classic" transform="translate(537.7578125, 1834.125)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Enforce max sessions per user - prune oldest if limit reached</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-Gcache-33" data-look="classic" transform="translate(537.7578125, 1962.125)"><rect class="basic label-container" style="" x="-103.4609375" y="-27" width="206.921875" height="54"/><g class="label" style="" transform="translate(-73.4609375, -12)"><rect/><foreignObject width="146.921875" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>clearProfilePicCache</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-Ginsert-35" data-look="classic" transform="translate(537.7578125, 2078.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Insert app Sessions row - returns sessionId</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-Glast-37" data-look="classic" transform="translate(537.7578125, 2206.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Update Users.last_login timestamp</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-Gcookies-39" data-look="classic" transform="translate(537.7578125, 2370.125)"><rect class="basic label-container" style="" x="-130" y="-75" width="260" height="150"/><g class="label" style="" transform="translate(-100, -60)"><rect/><foreignObject width="200" height="120"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Set cookies: encrypted sessionId, username, fullName, lastLoginMethod; upsert account list cookie</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-Gtrust-41" data-look="classic" transform="translate(537.7578125, 2570.125)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Create TrustedDevices row; set device_token cookie</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-RESP-43" data-look="classic" transform="translate(537.7578125, 2722.125)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>200 - success: session created; cookies set; sessionId returned</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-A2-46" data-look="classic" transform="translate(1274.44921875, 83)"><rect class="basic label-container" style="" x="-130" y="-63" width="260" height="126"/><g class="label" style="" transform="translate(-100, -48)"><rect/><foreignObject width="200" height="96"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Client POST /mbkauthe/api/verify-2fa - payload: token trustDevice</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-B2-47" data-look="classic" transform="translate(1274.44921875, 318.5625)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Ensure req.session.preAuthUser exists</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-Err401-49" data-look="classic" transform="translate(1128.2109375, 566.125)"><rect class="basic label-container" style="" x="-112.4765625" y="-27" width="224.953125" height="54"/><g class="label" style="" transform="translate(-82.4765625, -12)"><rect/><foreignObject width="164.953125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>401 - session not found</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-C2-51" data-look="classic" transform="translate(1420.6875, 566.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Validate token format - 6 digits</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-D2-53" data-look="classic" transform="translate(1420.6875, 778.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Fetch TwoFA secret from DB for username</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-E2-55" data-look="classic" transform="translate(1420.6875, 978.125)"><rect class="basic label-container" style="" x="-94.3046875" y="-27" width="188.609375" height="54"/><g class="label" style="" transform="translate(-64.3046875, -12)"><rect/><foreignObject width="128.609375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>Verify TOTP token</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-T401-57" data-look="classic" transform="translate(1273.7578125, 1154.125)"><rect class="basic label-container" style="" x="-111.09375" y="-27" width="222.1875" height="54"/><g class="label" style="" transform="translate(-81.09375, -12)"><rect/><foreignObject width="162.1875" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>401 - invalid 2FA token</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-F2-59" data-look="classic" transform="translate(1563.4609375, 1154.125)"><rect class="basic label-container" style="" x="-108.9140625" y="-27" width="217.828125" height="54"/><g class="label" style="" transform="translate(-78.9140625, -12)"><rect/><foreignObject width="157.828125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>completeLoginProcess</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-RESP2-61" data-look="classic" transform="translate(1563.4609375, 1354.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>200 - success: session created; cookies set</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-L1-62" data-look="classic" transform="translate(1837.5234375, 83)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Client POST /mbkauthe/api/logout</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-L2-63" data-look="classic" transform="translate(1837.5234375, 318.5625)"><polygon points="110.5625,0 221.125,-110.5625 110.5625,-221.125 0,-110.5625" class="label-container" transform="translate(-110.0625, 110.5625)"/><g class="label" style="" transform="translate(-83.5625, -12)"><rect/><foreignObject width="167.125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>req.session.user exists?</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-Lerr-65" data-look="classic" transform="translate(1698.578125, 566.125)"><rect class="basic label-container" style="" x="-97.890625" y="-27" width="195.78125" height="54"/><g class="label" style="" transform="translate(-67.890625, -12)"><rect/><foreignObject width="135.78125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>400 - Not logged in</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-L3-67" data-look="classic" transform="translate(1976.46875, 566.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Delete app Sessions row and session store row</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-L4-69" data-look="classic" transform="translate(1976.46875, 778.125)"><rect class="basic label-container" style="" x="-127.828125" y="-27" width="255.65625" height="54"/><g class="label" style="" transform="translate(-97.828125, -12)"><rect/><foreignObject width="195.65625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>removeAccountFromCookie</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-L5-71" data-look="classic" transform="translate(1976.46875, 978.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Destroy session and clear session cookies</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-LResp-73" data-look="classic" transform="translate(1976.46875, 1154.125)"><rect class="basic label-container" style="" x="-111.3203125" y="-27" width="222.640625" height="54"/><g class="label" style="" transform="translate(-81.3203125, -12)"><rect/><foreignObject width="162.640625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>200 - logout successful</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-AS1-74" data-look="classic" transform="translate(2449.9296875, 83)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Client GET /mbkauthe/api/account-sessions</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-AS2-75" data-look="classic" transform="translate(2449.9296875, 318.5625)"><rect class="basic label-container" style="" x="-130.015625" y="-27" width="260.03125" height="54"/><g class="label" style="" transform="translate(-100.015625, -12)"><rect/><foreignObject width="200.03125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>readAccountListFromCookie</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-ASresp-77" data-look="classic" transform="translate(2286.46875, 566.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Return empty accounts and currentSessionId</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-AS3-79" data-look="classic" transform="translate(2596.46875, 566.125)"><rect class="basic label-container" style="" x="-130" y="-63" width="260" height="126"/><g class="label" style="" transform="translate(-100, -48)"><rect/><foreignObject width="200" height="96"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>For each stored account: validate each stored session via fetchActiveSession</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-AS4-81" data-look="classic" transform="translate(2440.3828125, 778.125)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>invalidate DB session and remove account from cookie</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-AS5-83" data-look="classic" transform="translate(2751.46875, 778.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Push validated account to list</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-ASresp2-85" data-look="classic" transform="translate(2751.46875, 978.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Return accounts and currentSessionId</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-SS1-86" data-look="classic" transform="translate(3054.52734375, 83)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Client POST /mbkauthe/api/switch-session</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-SS2-87" data-look="classic" transform="translate(3054.52734375, 318.5625)"><rect class="basic label-container" style="" x="-120.015625" y="-27" width="240.03125" height="54"/><g class="label" style="" transform="translate(-90.015625, -12)"><rect/><foreignObject width="180.03125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>Validate sessionId format</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-SSerr400-89" data-look="classic" transform="translate(2906.4609375, 566.125)"><rect class="basic label-container" style="" x="-110.7421875" y="-27" width="221.484375" height="54"/><g class="label" style="" transform="translate(-80.7421875, -12)"><rect/><foreignObject width="161.484375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>400 - Invalid session id</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-SS3-91" data-look="classic" transform="translate(3199.90625, 566.125)"><rect class="basic label-container" style="" x="-130.015625" y="-39" width="260.03125" height="78"/><g class="label" style="" transform="translate(-100.015625, -24)"><rect/><foreignObject width="200.03125" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Check sessionId in readAccountListFromCookie</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-SSerr403-93" data-look="classic" transform="translate(3061.46875, 778.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>403 - Account not available on this device</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-SS4-95" data-look="classic" transform="translate(3338.34375, 778.125)"><rect class="basic label-container" style="" x="-96.875" y="-27" width="193.75" height="54"/><g class="label" style="" transform="translate(-66.875, -12)"><rect/><foreignObject width="133.75" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>fetchActiveSession</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-SSerr401-97" data-look="classic" transform="translate(3187.62109375, 978.125)"><rect class="basic label-container" style="" x="-105.4296875" y="-27" width="210.859375" height="54"/><g class="label" style="" transform="translate(-75.4296875, -12)"><rect/><foreignObject width="150.859375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>401 - Session expired</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-SS5-99" data-look="classic" transform="translate(3481.05859375, 978.125)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Regenerate session; set req.session.user to DB row; save session</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-SS6-101" data-look="classic" transform="translate(3481.05859375, 1154.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Sync cookies &amp; upsert account list cookie</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-SSresp-103" data-look="classic" transform="translate(3481.05859375, 1354.125)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>200 - success with username fullName redirect</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-LA1-104" data-look="classic" transform="translate(3791.06640625, 83)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Client POST /mbkauthe/api/logout-all</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-LA2-105" data-look="classic" transform="translate(3791.06640625, 318.5625)"><rect class="basic label-container" style="" x="-130.015625" y="-27" width="260.03125" height="54"/><g class="label" style="" transform="translate(-100.015625, -12)"><rect/><foreignObject width="200.03125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>readAccountListFromCookie</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-LA3-107" data-look="classic" transform="translate(3791.06640625, 566.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Collect sessionIds; add currentSession if present</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-LA4-109" data-look="classic" transform="translate(3791.06640625, 778.125)"><rect class="basic label-container" style="" x="-127.015625" y="-27" width="254.03125" height="54"/><g class="label" style="" transform="translate(-97.015625, -12)"><rect/><foreignObject width="194.03125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>Delete Sessions rows by ids</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-LA5-111" data-look="classic" transform="translate(3791.06640625, 978.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Delete session store row for current session</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-LA6-113" data-look="classic" transform="translate(3791.06640625, 1154.125)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Clear account list cookie, clear session cookies, destroy session</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-LAresp-115" data-look="classic" transform="translate(3791.06640625, 1354.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>200 - All accounts logged out</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-O1-116" data-look="classic" transform="translate(4261.91796875, 83)"><rect class="basic label-container" style="" x="-136.9296875" y="-75" width="273.859375" height="150"/><g class="label" style="" transform="translate(-106.9296875, -60)"><rect/><foreignObject width="213.859375" height="120"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Client GET /mbkauthe/api/github/login or /mbkauthe/api/google/login?redirect=...</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-O2-117" data-look="classic" transform="translate(4261.91796875, 318.5625)"><rect class="basic label-container" style="" x="-130" y="-63" width="260" height="126"/><g class="label" style="" transform="translate(-100, -48)"><rect/><foreignObject width="200" height="96"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Server create CSRF token and save to session.oauthCsrfToken and oauthRedirect</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-O3-119" data-look="classic" transform="translate(4261.91796875, 566.125)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>passport.authenticate -&gt; redirect to provider auth page</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-O4-121" data-look="classic" transform="translate(4261.91796875, 778.125)"><rect class="basic label-container" style="" x="-170.140625" y="-75" width="340.28125" height="150"/><g class="label" style="" transform="translate(-140.140625, -60)"><rect/><foreignObject width="280.28125" height="120"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Provider redirects back to /mbkauthe/api/github/login/callback or /mbkauthe/api/google/login/callback with state and auth code</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-O5-123" data-look="classic" transform="translate(4261.91796875, 978.125)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>validateOAuthCallback: compare state with session.oauthCsrfToken</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-Oerr-125" data-look="classic" transform="translate(4107.01953125, 1154.125)"><rect class="basic label-container" style="" x="-104.75" y="-27" width="209.5" height="54"/><g class="label" style="" transform="translate(-74.75, -12)"><rect/><foreignObject width="149.5" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>403 - CSRF mismatch</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-O6-127" data-look="classic" transform="translate(4404.29296875, 1154.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>passport.authenticate -&gt; locate linked user record</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-Oerr2-129" data-look="classic" transform="translate(4255.65625, 1354.125)"><rect class="basic label-container" style="" x="-117.2734375" y="-27" width="234.546875" height="54"/><g class="label" style="" transform="translate(-87.2734375, -12)"><rect/><foreignObject width="174.546875" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>403 - Account not linked</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-O7-131" data-look="classic" transform="translate(4552.9296875, 1354.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Check account active and allowedApps</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-O8-133" data-look="classic" transform="translate(4470.90234375, 1554.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>completeLoginProcess skip 2FA</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-O9-135" data-look="classic" transform="translate(4789.95703125, 1554.125)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Set req.session.preAuthUser and redirect to /2fa</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-Oresp-139" data-look="classic" transform="translate(4470.90234375, 1694.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>200/redirect - login completed</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-LG1-140" data-look="classic" transform="translate(4578.84765625, 83)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Client GET /mbkauthe/login</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-LG2-141" data-look="classic" transform="translate(4578.84765625, 318.5625)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Render login page with CSRF, provider flags and lastLogin cookie</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-AC1-142" data-look="classic" transform="translate(4888.84765625, 83)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Client GET /mbkauthe/accounts</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-AC2-143" data-look="classic" transform="translate(4888.84765625, 318.5625)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Render account switch page with CSRF and accounts list</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-T1-144" data-look="classic" transform="translate(5198.84765625, 83)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Incoming request with Authorization: Bearer </p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-T2-145" data-look="classic" transform="translate(5198.84765625, 318.5625)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>If token starts with mbk_ -&gt; API token</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-T3-147" data-look="classic" transform="translate(5198.84765625, 566.125)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Hash token then query ApiTokens joined to Users by TokenHash</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-Terr-149" data-look="classic" transform="translate(4893.078125, 778.125)"><rect class="basic label-container" style="" x="-105.25" y="-27" width="210.5" height="54"/><g class="label" style="" transform="translate(-75.25, -12)"><rect/><foreignObject width="150.5" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>401 - INVALID_TOKEN</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-T4-151" data-look="classic" transform="translate(5341.47265625, 778.125)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Check ExpiresAt; parse permissions.scope and allowedApps</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-Texp-153" data-look="classic" transform="translate(5016.63671875, 978.125)"><rect class="basic label-container" style="" x="-107.2578125" y="-27" width="214.515625" height="54"/><g class="label" style="" transform="translate(-77.2578125, -12)"><rect/><foreignObject width="154.515625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>401 - TOKEN_EXPIRED</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-T5-155" data-look="classic" transform="translate(5485.1015625, 978.125)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Update ApiTokens LastUsed; return tokenUser with tokenScope</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-T6-157" data-look="classic" transform="translate(5485.1015625, 1154.125)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Validate tokenScope via canAccessMethod for request method</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-T403-159" data-look="classic" transform="translate(5173.03125, 1354.125)"><rect class="basic label-container" style="" x="-132.7890625" y="-39" width="265.578125" height="78"/><g class="label" style="" transform="translate(-102.7890625, -24)"><rect/><foreignObject width="205.578125" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>403 - TOKEN_SCOPE_INSUFFICIENT</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-NEXT-161" data-look="classic" transform="translate(5809.61328125, 1354.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Populate req.session.user and proceed</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-R1-162" data-look="classic" transform="translate(5950.1015625, 83)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Call reloadSessionUser helper</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-R2-163" data-look="classic" transform="translate(5950.1015625, 318.5625)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Ensure req.session.user.id exists</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-R3-165" data-look="classic" transform="translate(5950.1015625, 566.125)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Query Sessions JOIN Users WHERE s.id = req.session.user.sessionId</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-RFALSE-167" data-look="classic" transform="translate(5795.1015625, 978.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Destroy session; clear cookies; return false</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-R4-169" data-look="classic" transform="translate(6229.28515625, 778.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Check expiry and Active and allowedApps</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-R5-173" data-look="classic" transform="translate(6245.1875, 978.125)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Update req.session.user values; fetch fullname from cookie or DB</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-R6-175" data-look="classic" transform="translate(6245.1875, 1154.125)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Save session and sync cookies</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-RTRUE-177" data-look="classic" transform="translate(6245.1875, 1354.125)"><rect class="basic label-container" style="" x="-71.1484375" y="-27" width="142.296875" height="54"/><g class="label" style="" transform="translate(-41.1484375, -12)"><rect/><foreignObject width="82.296875" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>Return true</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-TD1-178" data-look="classic" transform="translate(6260.1015625, 83)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Request has device_token cookie</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-TD2-179" data-look="classic" transform="translate(6260.1015625, 318.5625)"><rect class="basic label-container" style="" x="-89.078125" y="-27" width="178.15625" height="54"/><g class="label" style="" transform="translate(-59.078125, -12)"><rect/><foreignObject width="118.15625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>If missing -&gt; null</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-TD3-181" data-look="classic" transform="translate(6260.1015625, 566.125)"><rect class="basic label-container" style="" x="-130" y="-63" width="260" height="126"/><g class="label" style="" transform="translate(-100, -48)"><rect/><foreignObject width="200" height="96"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Hash device token then query TrustedDevices for matching token and username and not expired</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-TDNULL-183" data-look="classic" transform="translate(5963.98046875, 778.125)"><rect class="basic label-container" style="" x="-68.3671875" y="-27" width="136.734375" height="54"/><g class="label" style="" transform="translate(-38.3671875, -12)"><rect/><foreignObject width="76.734375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>return null</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-TD4-185" data-look="classic" transform="translate(6555.1875, 778.125)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>If account inactive or not authorized for app -&gt; return null</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-TD5-187" data-look="classic" transform="translate(6555.1875, 978.125)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Update TrustedDevices last used timestamp; return device user object</p></span></div></foreignObject></g></g></g></g></g><defs><filter id="my-svg-drop-shadow" height="130%" width="130%"><feDropShadow dx="4" dy="4" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"/></filter></defs><defs><filter id="my-svg-drop-shadow-small" height="150%" width="150%"><feDropShadow dx="2" dy="2" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"/></filter></defs></svg>