<svg aria-roledescription="flowchart-v2" role="graphics-document document" viewBox="0 0 5565.203125 2092.96875" style="max-width: 5565.2px; background-color: white;" class="flowchart" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="100%" id="my-svg"><style>#my-svg{font-family:"trebuchet ms",verdana,arial,sans-serif;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-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#my-svg p{margin:0;}#my-svg .label{font-family:"trebuchet ms",verdana,arial,sans-serif;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-family:"trebuchet ms",verdana,arial,sans-serif;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 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style><g><marker orient="auto" markerHeight="8" markerWidth="8" markerUnits="userSpaceOnUse" refY="5" refX="5" viewBox="0 0 10 10" class="marker flowchart-v2" id="my-svg_flowchart-v2-pointEnd"><path style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 0 0 L 10 5 L 0 10 z"/></marker><marker orient="auto" markerHeight="8" markerWidth="8" markerUnits="userSpaceOnUse" refY="5" refX="4.5" viewBox="0 0 10 10" class="marker flowchart-v2" id="my-svg_flowchart-v2-pointStart"><path style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 0 5 L 10 10 L 10 0 z"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5" refX="11" viewBox="0 0 10 10" class="marker flowchart-v2" id="my-svg_flowchart-v2-circleEnd"><circle style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" r="5" cy="5" cx="5"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5" refX="-1" viewBox="0 0 10 10" class="marker flowchart-v2" id="my-svg_flowchart-v2-circleStart"><circle style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" r="5" cy="5" cx="5"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5.2" refX="12" viewBox="0 0 11 11" class="marker cross flowchart-v2" id="my-svg_flowchart-v2-crossEnd"><path style="stroke-width: 2; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 1,1 l 9,9 M 10,1 l -9,9"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5.2" refX="-1" viewBox="0 0 11 11" class="marker cross flowchart-v2" id="my-svg_flowchart-v2-crossStart"><path style="stroke-width: 2; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 1,1 l 9,9 M 10,1 l -9,9"/></marker><g class="root"><g class="clusters"/><g class="edgePaths"><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_App_KindeProvider_0" d="M4667.664,123.5L4667.664,137.917C4667.664,152.333,4667.664,181.167,4667.664,199.083C4667.664,217,4667.664,224,4667.664,227.5L4667.664,231"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_KindeProvider_PublicContent_0" d="M4537.664,279.586L4264.572,291.322C3991.479,303.058,3445.294,326.529,3175.902,345.832C2906.509,365.135,2913.909,380.271,2917.609,387.839L2921.309,395.406"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_KindeProvider_AuthorisedContent_0" d="M4537.664,282.212L4358.815,293.51C4179.966,304.808,3822.268,327.404,3649.261,344.403C3476.254,361.402,3487.937,372.804,3493.779,378.505L3499.62,384.206"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_PublicContent_PC_Auth_0" d="M2936.266,453L2936.266,459.167C2936.266,465.333,2936.266,477.667,2936.336,487.417C2936.406,497.167,2936.547,504.334,2936.617,507.917L2936.687,511.501"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_PC_Auth_Authenticate_0" d="M2898.187,649.797L2887.95,662.31C2877.713,674.823,2857.24,699.849,2847.003,717.862C2836.766,735.875,2836.766,746.875,2836.766,752.375L2836.766,757.875"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_PC_Auth_NoPublicContent_0" d="M2975.344,649.797L2985.414,662.31C2995.484,674.823,3015.625,699.849,3025.695,719.862C3035.766,739.875,3035.766,754.875,3035.766,762.375L3035.766,769.875"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_AuthorisedContent_AC_Auth_0" d="M3542.445,465L3542.445,469.167C3542.445,473.333,3542.445,481.667,3542.516,489.417C3542.586,497.167,3542.726,504.334,3542.797,507.917L3542.867,511.501"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_AC_Auth_NoAuthorisedContent_0" d="M3479.802,625.232L3434.476,641.839C3389.149,658.446,3298.496,691.661,3253.17,715.768C3207.844,739.875,3207.844,754.875,3207.844,762.375L3207.844,769.875"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_AC_Auth_AC_Content_0" d="M3613.007,618.313L3689.269,636.073C3765.53,653.834,3918.052,689.354,3994.313,714.615C4070.574,739.875,4070.574,754.875,4070.574,762.375L4070.574,769.875"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_AC_Content_UserProfile_0" d="M3970.699,809.462L3840.012,820.697C3709.326,831.933,3447.952,854.404,3318.365,879.566C3188.779,904.728,3190.98,932.581,3192.081,946.508L3193.181,960.434"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_AC_Content_AC_View_0" d="M4170.449,819.092L4223.247,828.723C4276.044,838.353,4381.639,857.614,4434.511,872.828C4487.383,888.042,4487.532,899.209,4487.607,904.792L4487.681,910.375"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_AC_View_Datasets_0" d="M4407.381,1013.115L4236.341,1032.591C4065.301,1052.066,3723.221,1091.018,3555.19,1122.015C3387.16,1153.012,3393.18,1176.055,3396.19,1187.577L3399.199,1199.099"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_AC_View_Dataset_0" d="M4562.819,1018.384L4659.72,1036.982C4756.621,1055.579,4950.424,1092.774,5047.325,1130.871C5144.227,1168.969,5144.227,1207.969,5144.227,1227.469L5144.227,1246.969"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_Dataset_DatasetTabs_0" d="M5144.227,1328.969L5144.227,1347.135C5144.227,1365.302,5144.227,1401.635,5144.227,1435.302C5144.227,1468.969,5144.227,1499.969,5144.227,1515.469L5144.227,1530.969"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_DatasetTabs_Locations_0" d="M5058.422,1570.65L4868.456,1589.87C4678.49,1609.09,4298.557,1647.529,4194.851,1684.756C4091.145,1721.983,4263.666,1757.998,4349.926,1776.006L4436.186,1794.013"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_DatasetTabs_Species_0" d="M5183.027,1588.969L5206.26,1605.135C5229.492,1621.302,5275.957,1653.635,5303.534,1675.441C5331.11,1697.246,5339.799,1708.523,5344.143,1714.162L5348.487,1719.8"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_Species_EbirdSearch_0" d="M5427.203,1920.969L5427.203,1927.135C5427.203,1933.302,5427.203,1945.635,5427.203,1955.302C5427.203,1964.969,5427.203,1971.969,5427.203,1975.469L5427.203,1978.969"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_AC_View_Clusters_0" d="M4420.009,1025.743L4365.754,1043.114C4311.499,1060.485,4202.99,1095.227,4152.526,1118.212C4102.063,1141.197,4109.645,1152.425,4113.436,1158.04L4117.227,1163.654"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_AC_View_ClusterComponent_0" d="M4487.734,1093.469L4487.651,1099.552C4487.568,1105.635,4487.401,1117.802,4491.033,1133.431C4494.665,1149.06,4502.095,1168.15,4505.81,1177.696L4509.525,1187.241"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_AC_View_Selection_0" d="M4546.79,1034.413L4577.713,1050.339C4608.636,1066.265,4670.482,1098.117,4709.071,1123.688C4747.661,1149.258,4762.994,1168.548,4770.66,1178.193L4778.326,1187.837"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_ClusterComponent_FileModal_0" d="M4549.508,1388.969L4549.508,1397.135C4549.508,1405.302,4549.508,1421.635,4554.196,1433.552C4558.883,1445.469,4568.259,1452.97,4572.947,1456.72L4577.634,1460.47"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_Selection_FileModal_0" d="M4859.508,1388.969L4859.508,1397.135C4859.508,1405.302,4859.508,1421.635,4854.82,1433.552C4850.132,1445.469,4840.757,1452.97,4836.069,1456.72L4831.381,1460.47"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_Datasets_AC_Content_0" d="M3427.423,1202.969L3428.051,1190.802C3428.678,1178.635,3429.933,1154.302,3430.56,1121.044C3431.188,1087.786,3431.188,1045.604,3431.188,1003.422C3431.188,961.24,3431.188,919.057,3520.444,887.357C3609.701,855.656,3788.214,834.437,3877.471,823.828L3966.727,813.219"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_Locations_AC_Content_0" d="M4440.102,1793.971L4356.522,1775.971C4272.943,1757.97,4105.784,1721.969,4022.204,1683.302C3938.625,1644.635,3938.625,1603.302,3938.625,1561.969C3938.625,1520.635,3938.625,1479.302,3938.625,1433.969C3938.625,1388.635,3938.625,1339.302,3938.625,1287.969C3938.625,1236.635,3938.625,1183.302,3938.625,1135.544C3938.625,1087.786,3938.625,1045.604,3938.625,1003.422C3938.625,961.24,3938.625,919.057,3952.226,890.132C3965.827,861.207,3993.029,845.539,4006.63,837.705L4020.231,829.871"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_Clusters_AC_Content_0" d="M4230.114,1166.969L4231.498,1160.802C4232.881,1154.635,4235.647,1142.302,4237.031,1115.044C4238.414,1087.786,4238.414,1045.604,4238.414,1003.422C4238.414,961.24,4238.414,919.057,4220.986,890.074C4203.558,861.092,4168.702,845.308,4151.273,837.417L4133.845,829.525"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_Species_AC_Content_0" d="M5392.706,1722.969L5390.557,1716.802C5388.408,1710.635,5384.11,1698.302,5381.961,1671.469C5379.813,1644.635,5379.813,1603.302,5379.813,1561.969C5379.813,1520.635,5379.813,1479.302,5379.813,1433.969C5379.813,1388.635,5379.813,1339.302,5379.813,1287.969C5379.813,1236.635,5379.813,1183.302,5379.813,1135.544C5379.813,1087.786,5379.813,1045.604,5379.813,1003.422C5379.813,961.24,5379.813,919.057,5178.917,886.304C4978.022,853.551,4576.232,830.228,4375.337,818.566L4174.442,806.904"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_AC_Content_Breadcrumbs_0" d="M3970.699,821.149L3924.947,830.437C3879.195,839.725,3787.691,858.3,3741.939,879.512C3696.188,900.724,3696.188,924.573,3696.188,936.497L3696.188,948.422"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-dotted edge-thickness-normal edge-pattern-solid flowchart-link" id="L_UserProfile_KindeProvider_0" d="M3229.648,964.422L3242.02,949.831C3254.393,935.24,3279.138,906.057,3291.51,878.799C3303.883,851.542,3303.883,826.208,3303.883,800.875C3303.883,775.542,3303.883,750.208,3303.883,716.969C3303.883,683.729,3303.883,642.583,3303.883,603.438C3303.883,564.292,3303.883,527.146,3303.883,497.906C3303.883,468.667,3303.883,447.333,3303.883,424C3303.883,400.667,3303.883,375.333,3508.847,351.245C3713.812,327.156,4123.741,304.311,4328.706,292.889L4533.67,281.467"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-dotted edge-thickness-normal edge-pattern-solid flowchart-link" id="L_PublicContent_KindeProvider_0" d="M3006.04,399L3027.145,390.833C3048.249,382.667,3090.459,366.333,3345.063,346.606C3599.668,326.878,4066.669,303.756,4300.169,292.195L4533.669,280.634"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-dotted edge-thickness-normal edge-pattern-solid flowchart-link" id="L_AuthorisedContent_KindeProvider_0" d="M3561.512,387L3564.527,380.833C3567.542,374.667,3573.572,362.333,3735.599,345.06C3897.626,327.786,4215.65,305.573,4374.662,294.466L4533.674,283.359"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-dotted edge-thickness-normal edge-pattern-solid flowchart-link" id="L_Datasets_KindeProvider_0" d="M3552.938,1242.507L3604.313,1223.751C3655.688,1204.994,3758.438,1167.482,3809.813,1127.634C3861.188,1087.786,3861.188,1045.604,3861.188,1003.422C3861.188,961.24,3861.188,919.057,3861.188,885.299C3861.188,851.542,3861.188,826.208,3861.188,800.875C3861.188,775.542,3861.188,750.208,3861.188,716.969C3861.188,683.729,3861.188,642.583,3861.188,603.438C3861.188,564.292,3861.188,527.146,3861.188,497.906C3861.188,468.667,3861.188,447.333,3861.188,424C3861.188,400.667,3861.188,375.333,3973.27,352.104C4085.352,328.875,4309.517,307.751,4421.599,297.188L4533.682,286.626"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-dotted edge-thickness-normal edge-pattern-solid flowchart-link" id="L_Locations_KindeProvider_0" d="M4700.102,1796.527L4794.257,1778.101C4888.411,1759.674,5076.721,1722.822,5170.876,1683.729C5265.031,1644.635,5265.031,1603.302,5265.031,1561.969C5265.031,1520.635,5265.031,1479.302,5265.031,1433.969C5265.031,1388.635,5265.031,1339.302,5265.031,1287.969C5265.031,1236.635,5265.031,1183.302,5265.031,1135.544C5265.031,1087.786,5265.031,1045.604,5265.031,1003.422C5265.031,961.24,5265.031,919.057,5265.031,885.299C5265.031,851.542,5265.031,826.208,5265.031,800.875C5265.031,775.542,5265.031,750.208,5265.031,716.969C5265.031,683.729,5265.031,642.583,5265.031,603.438C5265.031,564.292,5265.031,527.146,5265.031,497.906C5265.031,468.667,5265.031,447.333,5265.031,424C5265.031,400.667,5265.031,375.333,5187.798,352.841C5110.565,330.348,4956.098,310.696,4878.865,300.87L4801.632,291.044"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-dotted edge-thickness-normal edge-pattern-solid flowchart-link" id="L_Clusters_KindeProvider_0" d="M4325.65,1166.969L4331.823,1160.802C4337.996,1154.635,4350.342,1142.302,4356.515,1115.044C4362.688,1087.786,4362.688,1045.604,4362.688,1003.422C4362.688,961.24,4362.688,919.057,4362.688,885.299C4362.688,851.542,4362.688,826.208,4362.688,800.875C4362.688,775.542,4362.688,750.208,4362.688,716.969C4362.688,683.729,4362.688,642.583,4362.688,603.438C4362.688,564.292,4362.688,527.146,4362.688,497.906C4362.688,468.667,4362.688,447.333,4362.688,424C4362.688,400.667,4362.688,375.333,4391.203,355.561C4419.719,335.788,4476.751,321.575,4505.267,314.469L4533.783,307.363"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-dotted edge-thickness-normal edge-pattern-solid flowchart-link" id="L_ClusterComponent_KindeProvider_0" d="M4628.2,1190.969L4636.281,1180.802C4644.363,1170.635,4660.525,1150.302,4668.606,1119.044C4676.688,1087.786,4676.688,1045.604,4676.688,1003.422C4676.688,961.24,4676.688,919.057,4676.688,885.299C4676.688,851.542,4676.688,826.208,4676.688,800.875C4676.688,775.542,4676.688,750.208,4676.688,716.969C4676.688,683.729,4676.688,642.583,4676.688,603.438C4676.688,564.292,4676.688,527.146,4676.688,497.906C4676.688,468.667,4676.688,447.333,4676.688,424C4676.688,400.667,4676.688,375.333,4676.034,357.162C4675.38,338.991,4674.073,327.981,4673.42,322.477L4672.766,316.972"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-dotted edge-thickness-normal edge-pattern-solid flowchart-link" id="L_Species_KindeProvider_0" d="M5476.26,1722.969L5479.315,1716.802C5482.371,1710.635,5488.482,1698.302,5491.538,1671.469C5494.594,1644.635,5494.594,1603.302,5494.594,1561.969C5494.594,1520.635,5494.594,1479.302,5494.594,1433.969C5494.594,1388.635,5494.594,1339.302,5494.594,1287.969C5494.594,1236.635,5494.594,1183.302,5494.594,1135.544C5494.594,1087.786,5494.594,1045.604,5494.594,1003.422C5494.594,961.24,5494.594,919.057,5494.594,885.299C5494.594,851.542,5494.594,826.208,5494.594,800.875C5494.594,775.542,5494.594,750.208,5494.594,716.969C5494.594,683.729,5494.594,642.583,5494.594,603.438C5494.594,564.292,5494.594,527.146,5494.594,497.906C5494.594,468.667,5494.594,447.333,5494.594,424C5494.594,400.667,5494.594,375.333,5379.103,352.052C5263.612,328.771,5032.629,307.543,4917.138,296.928L4801.647,286.314"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-dotted edge-thickness-normal edge-pattern-solid flowchart-link" id="L_Selection_KindeProvider_0" d="M4887.564,1190.969L4890.445,1180.802C4893.327,1170.635,4899.089,1150.302,4901.97,1119.044C4904.852,1087.786,4904.852,1045.604,4904.852,1003.422C4904.852,961.24,4904.852,919.057,4904.852,885.299C4904.852,851.542,4904.852,826.208,4904.852,800.875C4904.852,775.542,4904.852,750.208,4904.852,716.969C4904.852,683.729,4904.852,642.583,4904.852,603.438C4904.852,564.292,4904.852,527.146,4904.852,497.906C4904.852,468.667,4904.852,447.333,4904.852,424C4904.852,400.667,4904.852,375.333,4886.241,356.703C4867.63,338.074,4830.409,326.147,4811.799,320.184L4793.188,314.221"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-dotted edge-thickness-normal edge-pattern-solid flowchart-link" id="L_FileModal_KindeProvider_0" d="M4834.508,1511.594L4866.174,1499.323C4897.841,1487.052,4961.174,1462.51,4992.841,1425.573C5024.508,1388.635,5024.508,1339.302,5024.508,1287.969C5024.508,1236.635,5024.508,1183.302,5024.508,1135.544C5024.508,1087.786,5024.508,1045.604,5024.508,1003.422C5024.508,961.24,5024.508,919.057,5024.508,885.299C5024.508,851.542,5024.508,826.208,5024.508,800.875C5024.508,775.542,5024.508,750.208,5024.508,716.969C5024.508,683.729,5024.508,642.583,5024.508,603.438C5024.508,564.292,5024.508,527.146,5024.508,497.906C5024.508,468.667,5024.508,447.333,5024.508,424C5024.508,400.667,5024.508,375.333,4987.353,354.753C4950.197,334.173,4875.887,318.347,4838.732,310.434L4801.576,302.52"/></g><g class="edgeLabels"><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(2836.765625, 724.875)" class="edgeLabel"><g transform="translate(-9.3984375, -12)" class="label"><foreignObject height="24" width="18.796875"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"><p>No</p></span></div></foreignObject></g></g><g transform="translate(3035.765625, 724.875)" class="edgeLabel"><g transform="translate(-11.328125, -12)" class="label"><foreignObject height="24" width="22.65625"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"><p>Yes</p></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(3207.84375, 724.875)" class="edgeLabel"><g transform="translate(-9.3984375, -12)" class="label"><foreignObject height="24" width="18.796875"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"><p>No</p></span></div></foreignObject></g></g><g transform="translate(4070.57421875, 724.875)" class="edgeLabel"><g transform="translate(-11.328125, -12)" class="label"><foreignObject height="24" width="22.65625"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"><p>Yes</p></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(3381.140625, 1129.96875)" class="edgeLabel"><g transform="translate(-30.046875, -12)" class="label"><foreignObject height="24" width="60.09375"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"><p>datasets</p></span></div></foreignObject></g></g><g transform="translate(5144.2265625, 1129.96875)" class="edgeLabel"><g transform="translate(-26.8125, -12)" class="label"><foreignObject height="24" width="53.625"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"><p>dataset</p></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(4094.48046875, 1129.96875)" class="edgeLabel"><g transform="translate(-27.8125, -12)" class="label"><foreignObject height="24" width="55.625"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"><p>clusters</p></span></div></foreignObject></g></g><g transform="translate(4487.234375, 1129.96875)" class="edgeLabel"><g transform="translate(-24.578125, -12)" class="label"><foreignObject height="24" width="49.15625"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"><p>cluster</p></span></div></foreignObject></g></g><g transform="translate(4732.328125, 1129.96875)" class="edgeLabel"><g transform="translate(-35.640625, -12)" class="label"><foreignObject height="24" width="71.28125"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"><p>selections</p></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(3431.1875, 1003.421875)" class="edgeLabel"><g transform="translate(-100, -24)" class="label"><foreignObject height="48" width="200"><div style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"><p>onDatasetSelect(id, name, permissions)</p></span></div></foreignObject></g></g><g transform="translate(3938.625, 1289.96875)" class="edgeLabel"><g transform="translate(-98.8984375, -12)" class="label"><foreignObject height="24" width="197.796875"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"><p>onLocationSelect(id, name)</p></span></div></foreignObject></g></g><g transform="translate(4238.4140625, 1003.421875)" class="edgeLabel"><g transform="translate(-93.671875, -12)" class="label"><foreignObject height="24" width="187.34375"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"><p>onClusterSelect(id, name)</p></span></div></foreignObject></g></g><g transform="translate(5379.8125, 1289.96875)" class="edgeLabel"><g transform="translate(-94.78125, -12)" class="label"><foreignObject height="24" width="189.5625"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"><p>onSpeciesSelect(id, name)</p></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(3303.8828125, 601.4375)" class="edgeLabel"><g transform="translate(-54.3125, -12)" class="label"><foreignObject height="24" width="108.625"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"><p>useKindeAuth()</p></span></div></foreignObject></g></g><g transform="translate(3132.66796875, 350)" class="edgeLabel"><g transform="translate(-54.3125, -12)" class="label"><foreignObject height="24" width="108.625"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"><p>useKindeAuth()</p></span></div></foreignObject></g></g><g transform="translate(3579.6015625, 350)" class="edgeLabel"><g transform="translate(-54.3125, -12)" class="label"><foreignObject height="24" width="108.625"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"><p>useKindeAuth()</p></span></div></foreignObject></g></g><g transform="translate(3861.1875, 724.875)" class="edgeLabel"><g transform="translate(-54.3125, -12)" class="label"><foreignObject height="24" width="108.625"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"><p>useKindeAuth()</p></span></div></foreignObject></g></g><g transform="translate(5265.03125, 876.875)" class="edgeLabel"><g transform="translate(-54.3125, -12)" class="label"><foreignObject height="24" width="108.625"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"><p>useKindeAuth()</p></span></div></foreignObject></g></g><g transform="translate(4362.6875, 724.875)" class="edgeLabel"><g transform="translate(-54.3125, -12)" class="label"><foreignObject height="24" width="108.625"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"><p>useKindeAuth()</p></span></div></foreignObject></g></g><g transform="translate(4676.6875, 724.875)" class="edgeLabel"><g transform="translate(-54.3125, -12)" class="label"><foreignObject height="24" width="108.625"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"><p>useKindeAuth()</p></span></div></foreignObject></g></g><g transform="translate(5494.59375, 876.875)" class="edgeLabel"><g transform="translate(-54.3125, -12)" class="label"><foreignObject height="24" width="108.625"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"><p>useKindeAuth()</p></span></div></foreignObject></g></g><g transform="translate(4904.8515625, 724.875)" class="edgeLabel"><g transform="translate(-54.3125, -12)" class="label"><foreignObject height="24" width="108.625"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"><p>useKindeAuth()</p></span></div></foreignObject></g></g><g transform="translate(5024.5078125, 800.875)" class="edgeLabel"><g transform="translate(-54.3125, -12)" class="label"><foreignObject height="24" width="108.625"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"><p>useKindeAuth()</p></span></div></foreignObject></g></g></g><g class="nodes"><g transform="translate(0, 12)" class="root"><g class="clusters"><g data-look="classic" id="subGraph1" class="cluster"><rect height="153" width="1753.265625" y="8" x="8" style=""/><g transform="translate(838.5390625, 8)" class="cluster-label"><foreignObject height="24" width="92.1875"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>Key Features</p></span></div></foreignObject></g></g></g><g class="edgePaths"/><g class="edgeLabels"/><g class="nodes"><g transform="translate(173, 84.5)" id="flowchart-Features_Auth-83" class="node default"><rect height="78" width="260" y="-39" x="-130" style="" class="basic label-container"/><g transform="translate(-100, -24)" style="" class="label"><rect/><foreignObject height="48" width="200"><div style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>Role-based permissions (USER/CURATOR/ADMIN)</p></span></div></foreignObject></g></g><g transform="translate(449.7890625, 84.5)" id="flowchart-Features_Pagination-84" class="node default"><rect height="54" width="193.578125" y="-27" x="-96.7890625" style="" class="basic label-container"/><g transform="translate(-66.7890625, -12)" style="" class="label"><rect/><foreignObject height="24" width="133.578125"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>Pagination support</p></span></div></foreignObject></g></g><g transform="translate(706.203125, 84.5)" id="flowchart-Features_Filters-85" class="node default"><rect height="54" width="219.25" y="-27" x="-109.625" style="" class="basic label-container"/><g transform="translate(-79.625, -12)" style="" class="label"><rect/><foreignObject height="24" width="159.25"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>Time/Species filtering</p></span></div></foreignObject></g></g><g transform="translate(995.828125, 84.5)" id="flowchart-Features_Audio-86" class="node default"><rect height="78" width="260" y="-39" x="-130" style="" class="basic label-container"/><g transform="translate(-100, -24)" style="" class="label"><rect/><foreignObject height="48" width="200"><div style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>Audio player with waveform/spectrogram</p></span></div></foreignObject></g></g><g transform="translate(1296.046875, 84.5)" id="flowchart-Features_B2-87" class="node default"><rect height="54" width="240.4375" y="-27" x="-120.21875" style="" class="basic label-container"/><g transform="translate(-90.21875, -12)" style="" class="label"><rect/><foreignObject height="24" width="180.4375"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>Backblaze B2 file storage</p></span></div></foreignObject></g></g><g transform="translate(1596.265625, 84.5)" id="flowchart-Features_Metadata-88" class="node default"><rect height="78" width="260" y="-39" x="-130" style="" class="basic label-container"/><g transform="translate(-100, -24)" style="" class="label"><rect/><foreignObject height="48" width="200"><div style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>File metadata + Moth recorder data</p></span></div></foreignObject></g></g></g></g><g transform="translate(1803.265625, 0)" class="root"><g class="clusters"><g data-look="classic" id="subGraph0" class="cluster"><rect height="177" width="2749.40625" y="8" x="8" style=""/><g transform="translate(1290.8671875, 8)" class="cluster-label"><foreignObject height="24" width="183.671875"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>API Routes (Hono Worker)</p></span></div></foreignObject></g></g></g><g class="edgePaths"/><g class="edgeLabels"/><g class="nodes"><g transform="translate(142.703125, 96.5)" id="flowchart-API_Health-74" class="node default"><rect height="54" width="199.40625" y="-27" x="-99.703125" style="" class="basic label-container"/><g transform="translate(-69.703125, -12)" style="" class="label"><rect/><foreignObject height="24" width="139.40625"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>/api - Health check</p></span></div></foreignObject></g></g><g transform="translate(422.40625, 96.5)" id="flowchart-API_Datasets-75" class="node default"><rect height="78" width="260" y="-39" x="-130" style="" class="basic label-container"/><g transform="translate(-100, -24)" style="" class="label"><rect/><foreignObject height="48" width="200"><div style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>/api/datasets - CRUD + permissions</p></span></div></foreignObject></g></g><g transform="translate(732.40625, 96.5)" id="flowchart-API_Locations-76" class="node default"><rect height="78" width="260" y="-39" x="-130" style="" class="basic label-container"/><g transform="translate(-100, -24)" style="" class="label"><rect/><foreignObject height="48" width="200"><div style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>/api/locations - CRUD + pagination</p></span></div></foreignObject></g></g><g transform="translate(1042.40625, 96.5)" id="flowchart-API_Clusters-77" class="node default"><rect height="78" width="260" y="-39" x="-130" style="" class="basic label-container"/><g transform="translate(-100, -24)" style="" class="label"><rect/><foreignObject height="48" width="200"><div style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>/api/clusters - CRUD + recording patterns</p></span></div></foreignObject></g></g><g transform="translate(1352.40625, 96.5)" id="flowchart-API_Files-78" class="node default"><rect height="102" width="260" y="-51" x="-130" style="" class="basic label-container"/><g transform="translate(-100, -36)" style="" class="label"><rect/><foreignObject height="72" width="200"><div style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>/api/files - File listing + download + selections + context</p></span></div></foreignObject></g></g><g transform="translate(1662.40625, 96.5)" id="flowchart-API_Species-79" class="node default"><rect height="78" width="260" y="-39" x="-130" style="" class="basic label-container"/><g transform="translate(-100, -24)" style="" class="label"><rect/><foreignObject height="48" width="200"><div style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>/api/species - CRUD + call types</p></span></div></foreignObject></g></g><g transform="translate(1972.40625, 96.5)" id="flowchart-API_CallTypes-80" class="node default"><rect height="78" width="260" y="-39" x="-130" style="" class="basic label-container"/><g transform="translate(-100, -24)" style="" class="label"><rect/><foreignObject height="48" width="200"><div style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>/api/call-types - Management (placeholder)</p></span></div></foreignObject></g></g><g transform="translate(2282.40625, 96.5)" id="flowchart-API_Ebird-81" class="node default"><rect height="78" width="260" y="-39" x="-130" style="" class="basic label-container"/><g transform="translate(-100, -24)" style="" class="label"><rect/><foreignObject height="48" width="200"><div style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>/api/ebird - eBird integration (placeholder)</p></span></div></foreignObject></g></g><g transform="translate(2592.40625, 96.5)" id="flowchart-API_Selection-82" class="node default"><rect height="78" width="260" y="-39" x="-130" style="" class="basic label-container"/><g transform="translate(-100, -24)" style="" class="label"><rect/><foreignObject height="48" width="200"><div style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>/api/selection - Species-filtered files</p></span></div></foreignObject></g></g></g></g><g transform="translate(4667.6640625, 96.5)" id="flowchart-App-0" class="node default"><rect height="54" width="113.984375" y="-27" x="-56.9921875" style="" class="basic label-container"/><g transform="translate(-26.9921875, -12)" style="" class="label"><rect/><foreignObject height="24" width="53.984375"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>App.tsx</p></span></div></foreignObject></g></g><g transform="translate(4667.6640625, 274)" id="flowchart-KindeProvider-1" class="node default"><rect height="78" width="260" y="-39" x="-130" style="" class="basic label-container"/><g transform="translate(-100, -24)" style="" class="label"><rect/><foreignObject height="48" width="200"><div style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>KindeProvider (Auth Context)</p></span></div></foreignObject></g></g><g transform="translate(2936.265625, 426)" id="flowchart-PublicContent-3" class="node default"><rect height="54" width="160.84375" y="-27" x="-80.421875" style="" class="basic label-container"/><g transform="translate(-50.421875, -12)" style="" class="label"><rect/><foreignObject height="24" width="100.84375"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>PublicContent</p></span></div></foreignObject></g></g><g transform="translate(3542.4453125, 426)" id="flowchart-AuthorisedContent-5" class="node default"><rect height="78" width="193.8125" y="-39" x="-96.90625" style="" class="basic label-container"/><g transform="translate(-66.90625, -24)" style="" class="label"><rect/><foreignObject height="48" width="133.8125"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>AuthorisedContent<br />(Navigation Hub)</p></span></div></foreignObject></g></g><g transform="translate(2936.265625, 601.4375)" id="flowchart-PC_Auth-7" class="node default"><polygon transform="translate(-86.4375,86.4375)" class="label-container" points="86.4375,0 172.875,-86.4375 86.4375,-172.875 0,-86.4375"/><g transform="translate(-59.4375, -12)" style="" class="label"><rect/><foreignObject height="24" width="118.875"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>isAuthenticated?</p></span></div></foreignObject></g></g><g transform="translate(2836.765625, 800.875)" id="flowchart-Authenticate-9" class="node default"><rect height="78" width="175.921875" y="-39" x="-87.9609375" style="" class="basic label-container"/><g transform="translate(-57.9609375, -24)" style="" class="label"><rect/><foreignObject height="48" width="115.921875"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>Authenticate<br />(Login/Register)</p></span></div></foreignObject></g></g><g transform="translate(3035.765625, 800.875)" id="flowchart-NoPublicContent-11" class="node default"><rect height="54" width="122.078125" y="-27" x="-61.0390625" style="" class="basic label-container"/><g transform="translate(-31.0390625, -12)" style="" class="label"><rect/><foreignObject height="24" width="62.078125"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>(Hidden)</p></span></div></foreignObject></g></g><g transform="translate(3542.4453125, 601.4375)" id="flowchart-AC_Auth-13" class="node default"><polygon transform="translate(-86.4375,86.4375)" class="label-container" points="86.4375,0 172.875,-86.4375 86.4375,-172.875 0,-86.4375"/><g transform="translate(-59.4375, -12)" style="" class="label"><rect/><foreignObject height="24" width="118.875"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>isAuthenticated?</p></span></div></foreignObject></g></g><g transform="translate(3207.84375, 800.875)" id="flowchart-NoAuthorisedContent-15" class="node default"><rect height="54" width="122.078125" y="-27" x="-61.0390625" style="" class="basic label-container"/><g transform="translate(-31.0390625, -12)" style="" class="label"><rect/><foreignObject height="24" width="62.078125"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>(Hidden)</p></span></div></foreignObject></g></g><g transform="translate(4070.57421875, 800.875)" id="flowchart-AC_Content-17" class="node default"><rect height="54" width="199.75" y="-27" x="-99.875" style="" class="basic label-container"/><g transform="translate(-69.875, -12)" style="" class="label"><rect/><foreignObject height="24" width="139.75"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>Authorized Content</p></span></div></foreignObject></g></g><g transform="translate(3196.578125, 1003.421875)" id="flowchart-UserProfile-19" class="node default"><rect height="78" width="199.21875" y="-39" x="-99.609375" style="" class="basic label-container"/><g transform="translate(-69.609375, -24)" style="" class="label"><rect/><foreignObject height="48" width="139.21875"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>UserProfile<br />(User info + logout)</p></span></div></foreignObject></g></g><g transform="translate(4487.234375, 1003.421875)" id="flowchart-AC_View-21" class="node default"><polygon transform="translate(-89.546875,89.546875)" class="label-container" points="89.546875,0 179.09375,-89.546875 89.546875,-179.09375 0,-89.546875"/><g transform="translate(-62.546875, -12)" style="" class="label"><rect/><foreignObject height="24" width="125.09375"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>activeView state?</p></span></div></foreignObject></g></g><g transform="translate(3422.9375, 1289.96875)" id="flowchart-Datasets-23" class="node default"><rect height="174" width="260" y="-87" x="-130" style="" class="basic label-container"/><g transform="translate(-100, -72)" style="" class="label"><rect/><foreignObject height="144" width="200"><div style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>Datasets<br />API: GET /api/datasets<br />API: POST /api/datasets (create)<br />API: PUT /api/datasets/{id} (update)</p></span></div></foreignObject></g></g><g transform="translate(5144.2265625, 1289.96875)" id="flowchart-Dataset-25" class="node default"><rect height="78" width="169.4375" y="-39" x="-84.71875" style="" class="basic label-container"/><g transform="translate(-54.71875, -24)" style="" class="label"><rect/><foreignObject height="48" width="109.4375"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>Dataset<br />(Tab container)</p></span></div></foreignObject></g></g><g transform="translate(5144.2265625, 1561.96875)" id="flowchart-DatasetTabs-27" class="node default"><rect height="54" width="171.609375" y="-27" x="-85.8046875" style="" class="basic label-container"/><g transform="translate(-55.8046875, -12)" style="" class="label"><rect/><foreignObject height="24" width="111.609375"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>Tabs Navigation</p></span></div></foreignObject></g></g><g transform="translate(4570.1015625, 1821.96875)" id="flowchart-Locations-29" class="node default"><rect height="222" width="260" y="-111" x="-130" style="" class="basic label-container"/><g transform="translate(-100, -96)" style="" class="label"><rect/><foreignObject height="192" width="200"><div style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>Locations Tab<br />API: GET /api/locations?datasetId={id}&page={n}<br />API: POST /api/locations (create)<br />API: PUT /api/locations/{id} (update)</p></span></div></foreignObject></g></g><g transform="translate(5427.203125, 1821.96875)" id="flowchart-Species-31" class="node default"><rect height="198" width="260" y="-99" x="-130" style="" class="basic label-container"/><g transform="translate(-100, -84)" style="" class="label"><rect/><foreignObject height="168" width="200"><div style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>Species Tab<br />API: GET /api/species?datasetId={id}<br />API: POST /api/species (create)<br />API: PUT /api/species/{id} (update)</p></span></div></foreignObject></g></g><g transform="translate(5427.203125, 2033.96875)" id="flowchart-EbirdSearch-33" class="node default"><rect height="102" width="260" y="-51" x="-130" style="" class="basic label-container"/><g transform="translate(-100, -36)" style="" class="label"><rect/><foreignObject height="72" width="200"><div style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>EbirdSearch<br />(eBird integration - placeholder)</p></span></div></foreignObject></g></g><g transform="translate(4202.5234375, 1289.96875)" id="flowchart-Clusters-35" class="node default"><rect height="246" width="260" y="-123" x="-130" style="" class="basic label-container"/><g transform="translate(-100, -108)" style="" class="label"><rect/><foreignObject height="216" width="200"><div style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>Clusters<br />API: GET /api/clusters?locationId={id}<br />API: POST /api/clusters (create)<br />API: PUT /api/clusters/{id} (update)<br />API: DELETE /api/clusters/{id}</p></span></div></foreignObject></g></g><g transform="translate(4549.5078125, 1289.96875)" id="flowchart-ClusterComponent-37" class="node default"><rect height="198" width="260" y="-99" x="-130" style="" class="basic label-container"/><g transform="translate(-100, -84)" style="" class="label"><rect/><foreignObject height="168" width="200"><div style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>Cluster<br />(File browser with filters)<br />API: GET /api/files?clusterId={id}&filters...<br />API: GET /api/species?datasetId={id}<br />API: GET /api/datasets/{id}</p></span></div></foreignObject></g></g><g transform="translate(4859.5078125, 1289.96875)" id="flowchart-Selection-39" class="node default"><rect height="198" width="260" y="-99" x="-130" style="" class="basic label-container"/><g transform="translate(-100, -84)" style="" class="label"><rect/><foreignObject height="168" width="200"><div style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>Selection<br />(Species-filtered files)<br />API: GET /api/selection?datasetId={id}&speciesId={id}&filters...<br />API: GET /api/species?datasetId={id}</p></span></div></foreignObject></g></g><g transform="translate(4704.5078125, 1561.96875)" id="flowchart-FileModal-41" class="node default"><rect height="198" width="260" y="-99" x="-130" style="" class="basic label-container"/><g transform="translate(-100, -84)" style="" class="label"><rect/><foreignObject height="168" width="200"><div style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>File Modal<br />API: GET /api/files/{id}/download<br />API: GET /api/files/{id}/selections<br />API: GET /api/files/{id}/context</p></span></div></foreignObject></g></g><g transform="translate(3696.1875, 1003.421875)" id="flowchart-Breadcrumbs-53" class="node default"><rect height="102" width="260" y="-51" x="-130" style="" class="basic label-container"/><g transform="translate(-100, -36)" style="" class="label"><rect/><foreignObject height="72" width="200"><div style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>Breadcrumb Navigation<br />(Dataset > Location > Cluster)</p></span></div></foreignObject></g></g></g></g></g></svg>