academia/docs/architecture/diagrams/04-components.svg

1 line
83 KiB
XML

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentStyleType="text/css" data-diagram-type="DESCRIPTION" height="974px" preserveAspectRatio="none" style="width:6576px;height:974px;background:#FFFFFF;" version="1.1" viewBox="0 0 6576 974" width="6576px" zoomAndPan="magnify"><title>Sistema de Registro de Estudiantes - Arquitectura de Componentes</title><defs/><g><g class="title" data-source-line="9"><text fill="#000000" font-family="Verdana" font-size="22" font-weight="bold" lengthAdjust="spacing" textLength="840.458" x="2863.2775" y="35.4209">Sistema de Registro de Estudiantes - Arquitectura de Componentes</text></g><!--cluster frontend--><g class="cluster" data-entity="frontend" data-source-line="11" data-uid="ent0002" id="cluster_frontend"><rect fill="#FFFFFF" height="630.19" rx="2.5" ry="2.5" style="stroke:#DEE2E6;stroke-width:1;" width="4089" x="2156" y="322.3294"/><text fill="#000000" font-family="Verdana" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="176.1963" x="4112.4019" y="337.3245">Frontend (Angular 21)</text></g><!--cluster Features--><g class="cluster" data-entity="Features" data-source-line="14" data-uid="ent0004" id="cluster_Features"><rect fill="#FFFFFF" height="164.3" rx="2.5" ry="2.5" style="stroke:#DEE2E6;stroke-width:1;" width="2925" x="2686" y="492.6294"/><text fill="#000000" font-family="Verdana" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="69.8975" x="4113.5513" y="507.6245">Features</text></g><!--cluster Auth--><g class="cluster" data-entity="Auth" data-source-line="15" data-uid="ent0005" id="cluster_Auth"><rect fill="#FFFFFF" height="97.3" rx="2.5" ry="2.5" style="stroke:#DEE2E6;stroke-width:1;" width="1285" x="3463" y="535.6294"/><text fill="#000000" font-family="Verdana" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="37.4609" x="4086.7695" y="550.6245">Auth</text></g><!--cluster Dashboard--><g class="cluster" data-entity="Dashboard" data-source-line="21" data-uid="ent0010" id="cluster_Dashboard"><rect fill="#FFFFFF" height="97.3" rx="2.5" ry="2.5" style="stroke:#DEE2E6;stroke-width:1;" width="409" x="4772" y="535.6294"/><text fill="#000000" font-family="Verdana" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="85.3809" x="4933.8096" y="550.6245">Dashboard</text></g><!--cluster Students--><g class="cluster" data-entity="Students" data-source-line="25" data-uid="ent0013" id="cluster_Students"><rect fill="#FFFFFF" height="97.3" rx="2.5" ry="2.5" style="stroke:#DEE2E6;stroke-width:1;" width="729" x="2710" y="535.6294"/><text fill="#000000" font-family="Verdana" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="71.251" x="3038.8745" y="550.6245">Students</text></g><!--cluster Enrollment--><g class="cluster" data-entity="Enrollment" data-source-line="29" data-uid="ent0016" id="cluster_Enrollment"><rect fill="#FFFFFF" height="97.3" rx="2.5" ry="2.5" style="stroke:#DEE2E6;stroke-width:1;" width="382" x="5205" y="535.6294"/><text fill="#000000" font-family="Verdana" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="86.3926" x="5352.8037" y="550.6245">Enrollment</text></g><!--cluster Core--><g class="cluster" data-entity="Core" data-source-line="35" data-uid="ent0019" id="cluster_Core"><rect fill="#FFFFFF" height="222.59" rx="2.5" ry="2.5" style="stroke:#DEE2E6;stroke-width:1;" width="943" x="4427" y="705.9294"/><text fill="#000000" font-family="Verdana" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="36.292" x="4880.354" y="720.9245">Core</text></g><!--cluster Guards--><g class="cluster" data-entity="Guards" data-source-line="44" data-uid="ent0026" id="cluster_Guards"><rect fill="#FFFFFF" height="97.3" rx="2.5" ry="2.5" style="stroke:#DEE2E6;stroke-width:1;" width="482" x="2180" y="535.6294"/><text fill="#000000" font-family="Verdana" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="56.1641" x="2392.918" y="550.6245">Guards</text></g><!--cluster Shared--><g class="cluster" data-entity="Shared" data-source-line="50" data-uid="ent0030" id="cluster_Shared"><rect fill="#FFFFFF" height="97.3" rx="2.5" ry="2.5" style="stroke:#DEE2E6;stroke-width:1;" width="586" x="5635" y="535.6294"/><text fill="#000000" font-family="Verdana" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="55.918" x="5900.041" y="550.6245">Shared</text></g><!--cluster backend--><g class="cluster" data-entity="backend" data-source-line="57" data-uid="ent0034" id="cluster_backend"><rect fill="#FFFFFF" height="876.78" rx="2.5" ry="2.5" style="stroke:#DEE2E6;stroke-width:1;" width="1541" x="591" y="91.7394"/><text fill="#000000" font-family="Verdana" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="145.3867" x="1288.8066" y="106.7345">Backend (.NET 10)</text></g><!--cluster host--><g class="cluster" data-entity="host" data-source-line="59" data-uid="ent0035" id="cluster_host"><rect fill="#FFFFFF" height="97.29" rx="2.5" ry="2.5" style="stroke:#DEE2E6;stroke-width:1;" width="314" x="615" y="185.8894"/><text fill="#000000" font-family="Verdana" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="36.3604" x="753.8198" y="200.8845">Host</text></g><!--cluster adapters--><g class="cluster" data-entity="adapters" data-source-line="64" data-uid="ent0038" id="cluster_adapters"><rect fill="#FFFFFF" height="308.89" rx="2.5" ry="2.5" style="stroke:#DEE2E6;stroke-width:1;" width="1155" x="953" y="134.7394"/><text fill="#000000" font-family="Verdana" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="71.75" x="1494.625" y="149.7345">Adapters</text></g><!--cluster Driving (Primary)--><g class="cluster" data-entity="Driving .Primary." data-source-line="65" data-uid="ent0039" id="cluster_Driving .Primary."><rect fill="#FFFFFF" height="241.89" rx="2.5" ry="2.5" style="stroke:#DEE2E6;stroke-width:1;" width="405" x="977" y="177.7394"/><text fill="#000000" font-family="Verdana" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="136.9375" x="1111.0313" y="192.7345">Driving (Primary)</text></g><!--cluster Driven (Secondary)--><g class="cluster" data-entity="Driven .Secondary." data-source-line="73" data-uid="ent0045" id="cluster_Driven .Secondary."><rect fill="#FFFFFF" height="233.74" rx="2.5" ry="2.5" style="stroke:#DEE2E6;stroke-width:1;" width="678" x="1406" y="185.8894"/><text fill="#000000" font-family="Verdana" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="152.5439" x="1668.728" y="200.8845">Driven (Secondary)</text></g><!--cluster application--><g class="cluster" data-entity="application" data-source-line="82" data-uid="ent0051" id="cluster_application"><rect fill="#FFFFFF" height="164.3" rx="2.5" ry="2.5" style="stroke:#DEE2E6;stroke-width:1;" width="680" x="1036" y="492.6294"/><text fill="#000000" font-family="Verdana" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="89.2979" x="1331.3511" y="507.6245">Application</text></g><!--cluster Enrollments--><g class="cluster" data-entity="Enrollments" data-source-line="92" data-uid="ent0057" id="cluster_Enrollments"><rect fill="#FFFFFF" height="97.3" rx="2.5" ry="2.5" style="stroke:#DEE2E6;stroke-width:1;" width="398" x="1060" y="535.6294"/><text fill="#000000" font-family="Verdana" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="94.7256" x="1211.6372" y="550.6245">Enrollments</text></g><!--cluster domain--><g class="cluster" data-entity="domain" data-source-line="100" data-uid="ent0062" id="cluster_domain"><rect fill="#FFFFFF" height="238.59" rx="2.5" ry="2.5" style="stroke:#DEE2E6;stroke-width:1;" width="745" x="737" y="697.9294"/><text fill="#000000" font-family="Verdana" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="60.04" x="1079.48" y="712.9245">Domain</text></g><!--cluster sqlserver--><g class="cluster" data-entity="sqlserver" data-source-line="111" data-uid="ent0070" id="cluster_sqlserver"><path d="M11,522.6294 C11,512.6294 285,512.6294 285,512.6294 C285,512.6294 559,512.6294 559,522.6294 L559,801.2194 C559,811.2194 285,811.2194 285,811.2194 C285,811.2194 11,811.2194 11,801.2194 L11,522.6294" fill="#FFFFFF" style="stroke:#DEE2E6;stroke-width:1;"/><path d="M11,522.6294 C11,532.6294 285,532.6294 285,532.6294 C285,532.6294 559,532.6294 559,522.6294" fill="none" style="stroke:#DEE2E6;stroke-width:1;"/><text fill="#000000" font-family="Verdana" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="131.626" x="219.187" y="547.6245">SQL Server 2022</text></g><!--entity app--><g class="entity" data-entity="app" data-source-line="12" data-uid="ent0003" id="entity_app"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="153.0801" x="4877.46" y="357.3294"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="5010.5401" y="362.3294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="5008.5401" y="364.3294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="5008.5401" y="368.3294"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="113.0801" x="4892.46" y="390.3245">App Component</text></g><!--entity loginPage--><g class="entity" data-entity="loginPage" data-source-line="16" data-uid="ent0006" id="entity_loginPage"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="116.9863" x="4063.51" y="570.6294"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="4160.4963" y="575.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="4158.4963" y="577.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="4158.4963" y="581.6294"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="76.9863" x="4078.51" y="603.6245">Login Page</text></g><!--entity registerPage--><g class="entity" data-entity="registerPage" data-source-line="17" data-uid="ent0007" id="entity_registerPage"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="137.2412" x="4215.38" y="570.6294"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="4332.6212" y="575.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="4330.6212" y="577.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="4330.6212" y="581.6294"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="97.2412" x="4230.38" y="603.6245">Register Page</text></g><!--entity resetPage--><g class="entity" data-entity="resetPage" data-source-line="18" data-uid="ent0008" id="entity_resetPage"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="150.4551" x="4387.77" y="570.6294"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="4518.2251" y="575.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="4516.2251" y="577.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="4516.2251" y="581.6294"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="110.4551" x="4402.77" y="603.6245">Reset Password</text></g><!--entity activatePage--><g class="entity" data-entity="activatePage" data-source-line="19" data-uid="ent0009" id="entity_activatePage"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="158.8428" x="4573.58" y="570.6294"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="4712.4228" y="575.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="4710.4228" y="577.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="4710.4228" y="581.6294"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="118.8428" x="4588.58" y="603.6245">Activate Account</text></g><!--entity loginCmd--><g class="entity" data-entity="loginCmd" data-source-line="84" data-uid="ent0052" id="entity_loginCmd"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="154.4199" x="3663.79" y="570.6294"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="3798.2099" y="575.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="3796.2099" y="577.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="3796.2099" y="581.6294"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="114.4199" x="3678.79" y="603.6245">Login Command</text></g><!--entity registerCmd--><g class="entity" data-entity="registerCmd" data-source-line="85" data-uid="ent0053" id="entity_registerCmd"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="174.6748" x="3853.66" y="570.6294"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="4008.3348" y="575.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="4006.3348" y="577.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="4006.3348" y="581.6294"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="134.6748" x="3868.66" y="603.6245">Register Command</text></g><!--entity resetCmd--><g class="entity" data-entity="resetCmd" data-source-line="86" data-uid="ent0054" id="entity_resetCmd"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="150.4551" x="3478.77" y="570.6294"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="3609.2251" y="575.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="3607.2251" y="577.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="3607.2251" y="581.6294"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="110.4551" x="3493.77" y="603.6245">Reset Password</text></g><!--entity studentDash--><g class="entity" data-entity="studentDash" data-source-line="22" data-uid="ent0011" id="entity_studentDash"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="175.7617" x="4788.12" y="570.6294"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="4943.8817" y="575.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="4941.8817" y="577.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="4941.8817" y="581.6294"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="135.7617" x="4803.12" y="603.6245">Student Dashboard</text></g><!--entity adminDash--><g class="entity" data-entity="adminDash" data-source-line="23" data-uid="ent0012" id="entity_adminDash"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="165.5146" x="4999.24" y="570.6294"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="5144.7546" y="575.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="5142.7546" y="577.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="5142.7546" y="581.6294"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="125.5146" x="5014.24" y="603.6245">Admin Dashboard</text></g><!--entity studentList--><g class="entity" data-entity="studentList" data-source-line="26" data-uid="ent0014" id="entity_studentList"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="124.0342" x="3298.98" y="570.6294"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="3403.0142" y="575.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="3401.0142" y="577.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="3401.0142" y="581.6294"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="84.0342" x="3313.98" y="603.6245">Student List</text></g><!--entity studentForm--><g class="entity" data-entity="studentForm" data-source-line="27" data-uid="ent0015" id="entity_studentForm"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="135.5732" x="2939.21" y="570.6294"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="3054.7832" y="575.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="3052.7832" y="577.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="3052.7832" y="581.6294"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="95.5732" x="2954.21" y="603.6245">Student Form</text></g><!--entity studentCmds--><g class="entity" data-entity="studentCmds" data-source-line="89" data-uid="ent0055" id="entity_studentCmds"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="178.8105" x="2725.59" y="570.6294"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="2884.4005" y="575.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="2882.4005" y="577.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="2882.4005" y="581.6294"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="138.8105" x="2740.59" y="603.6245">Student Commands</text></g><!--entity studentQs--><g class="entity" data-entity="studentQs" data-source-line="90" data-uid="ent0056" id="entity_studentQs"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="153.6201" x="3110.19" y="570.6294"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="3243.8101" y="575.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="3241.8101" y="577.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="3241.8101" y="581.6294"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="113.6201" x="3125.19" y="603.6245">Student Queries</text></g><!--entity enrollPage--><g class="entity" data-entity="enrollPage" data-source-line="30" data-uid="ent0017" id="entity_enrollPage"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="155.4043" x="5415.3" y="570.6294"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="5550.7043" y="575.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="5548.7043" y="577.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="5548.7043" y="581.6294"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="115.4043" x="5430.3" y="603.6245">Enrollment Page</text></g><!--entity classmates--><g class="entity" data-entity="classmates" data-source-line="31" data-uid="ent0018" id="entity_classmates"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="159.417" x="5221.29" y="570.6294"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="5360.707" y="575.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="5358.707" y="577.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="5358.707" y="581.6294"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="119.417" x="5236.29" y="603.6245">Classmates Page</text></g><!--entity apollo--><g class="entity" data-entity="apollo" data-source-line="36" data-uid="ent0020" id="entity_apollo"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="128.3545" x="4669.82" y="866.2194"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="4778.1745" y="871.2194"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="4776.1745" y="873.2194"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="4776.1745" y="877.2194"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="88.3545" x="4684.82" y="899.2145">Apollo Client</text></g><!--entity authSvc--><g class="entity" data-entity="authSvc" data-source-line="37" data-uid="ent0021" id="entity_authSvc"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="129.0039" x="4443.5" y="740.9294"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="4552.5039" y="745.9294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="4550.5039" y="747.9294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="4550.5039" y="751.9294"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="89.0039" x="4458.5" y="773.9245">Auth Service</text></g><!--entity studentSvc--><g class="entity" data-entity="studentSvc" data-source-line="38" data-uid="ent0022" id="entity_studentSvc"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="151.3027" x="4607.35" y="740.9294"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="4738.6527" y="745.9294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="4736.6527" y="747.9294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="4736.6527" y="751.9294"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="111.3027" x="4622.35" y="773.9245">Student Service</text></g><!--entity enrollSvc--><g class="entity" data-entity="enrollSvc" data-source-line="39" data-uid="ent0023" id="entity_enrollSvc"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="172.624" x="4793.69" y="740.9294"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="4946.314" y="745.9294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="4944.314" y="747.9294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="4944.314" y="751.9294"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="132.624" x="4808.69" y="773.9245">Enrollment Service</text></g><!--entity connSvc--><g class="entity" data-entity="connSvc" data-source-line="40" data-uid="ent0024" id="entity_connSvc"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="183.917" x="5001.04" y="740.9294"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="5164.957" y="745.9294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="5162.957" y="747.9294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="5162.957" y="751.9294"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="143.917" x="5016.04" y="773.9245">Connectivity Service</text></g><!--entity errorHandler--><g class="entity" data-entity="errorHandler" data-source-line="41" data-uid="ent0025" id="entity_errorHandler"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="134.2539" x="5219.87" y="740.9294"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="5334.1239" y="745.9294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="5332.1239" y="747.9294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="5332.1239" y="751.9294"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="94.2539" x="5234.87" y="773.9245">Error Handler</text></g><!--entity authGuard--><g class="entity" data-entity="authGuard" data-source-line="45" data-uid="ent0027" id="entity_authGuard"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="120.2061" x="2525.9" y="570.6294"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="2626.1061" y="575.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="2624.1061" y="577.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="2624.1061" y="581.6294"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="80.2061" x="2540.9" y="603.6245">Auth Guard</text></g><!--entity adminGuard--><g class="entity" data-entity="adminGuard" data-source-line="46" data-uid="ent0028" id="entity_adminGuard"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="132.2578" x="2195.87" y="570.6294"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="2308.1278" y="575.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="2306.1278" y="577.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="2306.1278" y="581.6294"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="92.2578" x="2210.87" y="603.6245">Admin Guard</text></g><!--entity guestGuard--><g class="entity" data-entity="guestGuard" data-source-line="47" data-uid="ent0029" id="entity_guestGuard"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="128.5117" x="2362.74" y="570.6294"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="2471.2517" y="575.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="2469.2517" y="577.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="2469.2517" y="581.6294"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="88.5117" x="2377.74" y="603.6245">Guest Guard</text></g><!--entity overlay--><g class="entity" data-entity="overlay" data-source-line="51" data-uid="ent0031" id="entity_overlay"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="186.6035" x="5650.7" y="570.6294"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="5817.3035" y="575.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="5815.3035" y="577.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="5815.3035" y="581.6294"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="146.6035" x="5665.7" y="603.6245">Connectivity Overlay</text></g><!--entity spinner--><g class="entity" data-entity="spinner" data-source-line="52" data-uid="ent0032" id="entity_spinner"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="153.709" x="5872.15" y="570.6294"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="6005.859" y="575.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="6003.859" y="577.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="6003.859" y="581.6294"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="113.709" x="5887.15" y="603.6245">Loading Spinner</text></g><!--entity dialog--><g class="entity" data-entity="dialog" data-source-line="53" data-uid="ent0033" id="entity_dialog"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="144.4668" x="6060.77" y="570.6294"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="6185.2368" y="575.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="6183.2368" y="577.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="6183.2368" y="581.6294"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="104.4668" x="6075.77" y="603.6245">Confirm Dialog</text></g><!--entity program--><g class="entity" data-entity="program" data-source-line="60" data-uid="ent0036" id="entity_program"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="119.0645" x="631.47" y="220.8894"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="730.5345" y="225.8894"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="728.5345" y="227.8894"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="728.5345" y="231.8894"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="79.0645" x="646.47" y="253.8845">Program.cs</text></g><!--entity di--><g class="entity" data-entity="di" data-source-line="61" data-uid="ent0037" id="entity_di"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="127.7734" x="785.11" y="220.8894"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="892.8834" y="225.8894"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="890.8834" y="227.8894"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="890.8834" y="231.8894"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="87.7734" x="800.11" y="253.8845">DI Container</text></g><!--entity graphql--><g class="entity" data-entity="graphql" data-source-line="66" data-uid="ent0040" id="entity_graphql"><rect fill="#F8F9FA" height="62.5938" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="145.5537" x="1044.22" y="212.7394"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="1169.7737" y="217.7394"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="1167.7737" y="219.7394"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="1167.7737" y="223.7394"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="88.3613" x="1059.22" y="245.7345">GraphQL API</text><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="105.5537" x="1059.22" y="262.0314">(HotChocolate)</text></g><!--entity query--><g class="entity" data-entity="query" data-source-line="67" data-uid="ent0041" id="entity_query"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="82.5469" x="1146.73" y="357.3294"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="1209.2769" y="362.3294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="1207.2769" y="364.3294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="1207.2769" y="368.3294"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="42.5469" x="1161.73" y="390.3245">Query</text></g><!--entity mutation--><g class="entity" data-entity="mutation" data-source-line="68" data-uid="ent0042" id="entity_mutation"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="101.8379" x="1264.08" y="357.3294"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="1345.9179" y="362.3294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="1343.9179" y="364.3294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="1343.9179" y="368.3294"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="61.8379" x="1279.08" y="390.3245">Mutation</text></g><!--entity authTypes--><g class="entity" data-entity="authTypes" data-source-line="69" data-uid="ent0043" id="entity_authTypes"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="118.8936" x="992.55" y="357.3294"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="1091.4436" y="362.3294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="1089.4436" y="364.3294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="1089.4436" y="368.3294"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="78.8936" x="1007.55" y="390.3245">Auth Types</text></g><!--entity studentTypes--><g class="entity" data-entity="studentTypes" data-source-line="70" data-uid="ent0044" id="entity_studentTypes"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="141.1924" x="1224.4" y="220.8894"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="1345.5924" y="225.8894"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="1343.5924" y="227.8894"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="1343.5924" y="231.8894"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="101.1924" x="1239.4" y="253.8845">Student Types</text></g><!--entity repos--><g class="entity" data-entity="repos" data-source-line="74" data-uid="ent0046" id="entity_repos"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="126.584" x="1421.71" y="220.8894"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="1528.294" y="225.8894"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="1526.294" y="227.8894"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="1526.294" y="231.8894"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="86.584" x="1436.71" y="253.8845">Repositories</text></g><!--entity loaders--><g class="entity" data-entity="loaders" data-source-line="75" data-uid="ent0047" id="entity_loaders"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="128.9219" x="1741.54" y="220.8894"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="1850.4619" y="225.8894"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="1848.4619" y="227.8894"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="1848.4619" y="231.8894"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="88.9219" x="1756.54" y="253.8845">DataLoaders</text></g><!--entity dbContext--><g class="entity" data-entity="dbContext" data-source-line="76" data-uid="ent0048" id="entity_dbContext"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="114.7578" x="1427.62" y="357.3294"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="1522.3778" y="362.3294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="1520.3778" y="364.3294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="1520.3778" y="368.3294"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="74.7578" x="1442.62" y="390.3245">DbContext</text></g><!--entity jwtSvc--><g class="entity" data-entity="jwtSvc" data-source-line="77" data-uid="ent0049" id="entity_jwtSvc"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="122.7148" x="1583.64" y="220.8894"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="1686.3548" y="225.8894"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="1684.3548" y="227.8894"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="1684.3548" y="231.8894"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="82.7148" x="1598.64" y="253.8845">JWT Service</text></g><!--entity passSvc--><g class="entity" data-entity="passSvc" data-source-line="78" data-uid="ent0050" id="entity_passSvc"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="162.459" x="1905.77" y="220.8894"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="2048.229" y="225.8894"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="2046.229" y="227.8894"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="2046.229" y="231.8894"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="122.459" x="1920.77" y="253.8845">Password Service</text></g><!--entity validators--><g class="entity" data-entity="validators" data-source-line="96" data-uid="ent0060" id="entity_validators"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="110.5059" x="1476.75" y="570.6294"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="1567.2559" y="575.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="1565.2559" y="577.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="1565.2559" y="581.6294"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="70.5059" x="1491.75" y="603.6245">Validators</text></g><!--entity dtos--><g class="entity" data-entity="dtos" data-source-line="97" data-uid="ent0061" id="entity_dtos"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="77.6455" x="1622.18" y="570.6294"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="1679.8255" y="575.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="1677.8255" y="577.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="1677.8255" y="581.6294"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="37.6455" x="1637.18" y="603.6245">DTOs</text></g><!--entity enrollCmds--><g class="entity" data-entity="enrollCmds" data-source-line="93" data-uid="ent0058" id="entity_enrollCmds"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="163.5186" x="1278.24" y="570.6294"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="1421.7586" y="575.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="1419.7586" y="577.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="1419.7586" y="581.6294"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="123.5186" x="1293.24" y="603.6245">Enroll Commands</text></g><!--entity classmatesQ--><g class="entity" data-entity="classmatesQ" data-source-line="94" data-uid="ent0059" id="entity_classmatesQ"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="167.4424" x="1076.28" y="570.6294"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="1223.7224" y="575.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="1221.7224" y="577.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="1221.7224" y="581.6294"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="127.4424" x="1091.28" y="603.6245">Classmates Query</text></g><!--entity userEntity--><g class="entity" data-entity="userEntity" data-source-line="101" data-uid="ent0063" id="entity_userEntity"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="117.2324" x="761.38" y="740.9294"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="858.6124" y="745.9294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="856.6124" y="747.9294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="856.6124" y="751.9294"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="77.2324" x="776.38" y="773.9245">User Entity</text></g><!--entity studentEntity--><g class="entity" data-entity="studentEntity" data-source-line="102" data-uid="ent0064" id="entity_studentEntity"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="140.4336" x="1295.78" y="866.2194"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="1416.2136" y="871.2194"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="1414.2136" y="873.2194"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="1414.2136" y="877.2194"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="100.4336" x="1310.78" y="899.2145">Student Entity</text></g><!--entity subjectEntity--><g class="entity" data-entity="subjectEntity" data-source-line="103" data-uid="ent0065" id="entity_subjectEntity"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="137.6582" x="913.17" y="740.9294"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="1030.8282" y="745.9294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="1028.8282" y="747.9294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="1028.8282" y="751.9294"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="97.6582" x="928.17" y="773.9245">Subject Entity</text></g><!--entity enrollEntity--><g class="entity" data-entity="enrollEntity" data-source-line="104" data-uid="ent0066" id="entity_enrollEntity"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="161.7549" x="761.12" y="866.2194"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="902.8749" y="871.2194"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="900.8749" y="873.2194"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="900.8749" y="877.2194"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="121.7549" x="776.12" y="899.2145">Enrollment Entity</text></g><!--entity valueObjects--><g class="entity" data-entity="valueObjects" data-source-line="105" data-uid="ent0067" id="entity_valueObjects"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="136.8721" x="1123.56" y="866.2194"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="1240.4321" y="871.2194"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="1238.4321" y="873.2194"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="1238.4321" y="877.2194"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="96.8721" x="1138.56" y="899.2145">Value Objects</text></g><!--entity domainSvc--><g class="entity" data-entity="domainSvc" data-source-line="106" data-uid="ent0068" id="entity_domainSvc"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="157.8105" x="1281.09" y="740.9294"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="1418.9005" y="745.9294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="1416.9005" y="747.9294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="1416.9005" y="751.9294"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="117.8105" x="1296.09" y="773.9245">Domain Services</text></g><!--entity ports--><g class="entity" data-entity="ports" data-source-line="107" data-uid="ent0069" id="entity_ports"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="160.8936" x="1085.55" y="740.9294"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="1226.4436" y="745.9294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="1224.4436" y="747.9294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="1224.4436" y="751.9294"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="120.8936" x="1100.55" y="773.9245">Ports (Interfaces)</text></g><!--entity tblUsers--><g class="entity" data-entity="tblUsers" data-source-line="112" data-uid="ent0071" id="entity_tblUsers"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="122.1748" x="34.91" y="570.6294"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="137.0848" y="575.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="135.0848" y="577.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="135.0848" y="581.6294"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="82.1748" x="49.91" y="603.6245">Users Table</text></g><!--entity tblStudents--><g class="entity" data-entity="tblStudents" data-source-line="113" data-uid="ent0072" id="entity_tblStudents"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="145.376" x="192.31" y="570.6294"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="317.686" y="575.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="315.686" y="577.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="315.686" y="581.6294"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="105.376" x="207.31" y="603.6245">Students Table</text></g><!--entity tblSubjects--><g class="entity" data-entity="tblSubjects" data-source-line="114" data-uid="ent0073" id="entity_tblSubjects"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="142.6006" x="372.7" y="570.6294"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="495.3006" y="575.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="493.3006" y="577.6294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="493.3006" y="581.6294"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="102.6006" x="387.7" y="603.6245">Subjects Table</text></g><!--entity tblProf--><g class="entity" data-entity="tblProf" data-source-line="115" data-uid="ent0074" id="entity_tblProf"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="155.4795" x="35.26" y="740.9294"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="170.7395" y="745.9294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="168.7395" y="747.9294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="168.7395" y="751.9294"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="115.4795" x="50.26" y="773.9245">Professors Table</text></g><!--entity tblEnroll--><g class="entity" data-entity="tblEnroll" data-source-line="116" data-uid="ent0075" id="entity_tblEnroll"><rect fill="#F8F9FA" height="46.2969" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="166.6973" x="225.65" y="740.9294"/><rect fill="#F8F9FA" height="10" style="stroke:#495057;stroke-width:1;" width="15" x="372.3473" y="745.9294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="370.3473" y="747.9294"/><rect fill="#F8F9FA" height="2" style="stroke:#495057;stroke-width:1;" width="4" x="370.3473" y="751.9294"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="126.6973" x="240.65" y="773.9245">Enrollments Table</text></g><!--entity browser--><g class="entity" data-entity="browser" data-source-line="119" data-uid="ent0076" id="entity_browser"><path d="M6282.2898,230.6979 C6284.3523,225.231 6289.3151,224.7324 6292.6101,229.4489 C6296.5063,223.4182 6300.7547,222.9466 6305.2608,228.7997 C6307.0949,221.7628 6312.8013,219.946 6317.7492,225.7779 C6322.2926,221.376 6325.9541,222.8499 6327.8811,228.4329 C6331.3704,222.1411 6337.7192,221.6144 6340.9391,228.696 C6344.5007,223.7294 6348.3323,223.5529 6351.5694,229.0264 C6359.4771,232.73 6361.7408,238.1719 6355.4627,245.2746 C6363.3639,250.8732 6361.246,257.3432 6353.6677,261.1967 C6350.469,267.0623 6346.6882,268.5169 6341.6303,263.1975 C6338.8569,269.6949 6334.6798,269.953 6329.729,265.5817 C6327.0527,272.2346 6321.8685,273.7629 6316.9884,267.8089 C6312.6108,272.3166 6307.1731,271.687 6305.0601,265.3241 C6300.3008,270.1509 6294.0732,268.9493 6292.5988,261.8825 C6288.6436,268.2994 6283.7687,267.4479 6280.5453,261.1867 C6273.4901,258.3967 6271.9347,251.0923 6277.3871,245.7442 C6270.7,238.8239 6274.7347,232.9776 6282.2898,230.6979" fill="#FFFFFF" style="stroke:#000000;stroke-width:1;"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="57.0391" x="6287.48" y="248.8845">Browser</text></g><g class="entity" data-entity="GMN124" data-source-line="184" data-uid="ent0125" id="entity_GMN124"><path d="M6327.98,736.3794 L6327.98,791.7778 L6518.0117,791.7778 L6518.0117,746.3794 L6508.0117,736.3794 L6327.98,736.3794" fill="#FFFFFF" style="stroke:#000000;stroke-width:1;"/><path d="M6508.0117,736.3794 L6508.0117,746.3794 L6518.0117,746.3794 L6508.0117,736.3794" fill="#FFFFFF" style="stroke:#000000;stroke-width:1;"/><text fill="#000000" font-family="Verdana" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="169.0317" x="6333.98" y="753.4463">Regla de Dependencia:</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="131.8916" x="6333.98" y="768.5791">Domain no depende</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="119.7295" x="6333.98" y="783.7119">de capas externas</text></g><g class="entity" data-entity="GMN127" data-source-line="190" data-uid="ent0128" id="entity_GMN127"><path d="M442.84,345.2194 L442.84,415.7506 L575.1525,415.7506 L575.1525,355.2194 L565.1525,345.2194 L442.84,345.2194" fill="#FFFFFF" style="stroke:#000000;stroke-width:1;"/><path d="M565.1525,345.2194 L565.1525,355.2194 L575.1525,355.2194 L565.1525,345.2194" fill="#FFFFFF" style="stroke:#000000;stroke-width:1;"/><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="69.0117" x="448.84" y="362.2863">Endpoints:</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="63.1211" x="448.84" y="377.4191">- /graphql</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="54.355" x="448.84" y="392.5519">- /health</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="111.3125" x="448.84" y="407.6847">Auth: JWT Bearer</text></g><g class="entity" data-entity="GMN130" data-source-line="197" data-uid="ent0131" id="entity_GMN130"><path d="M6394.99,223.8994 L6394.99,264.165 L6569.0129,264.165 L6569.0129,233.8994 L6559.0129,223.8994 L6394.99,223.8994" fill="#FFFFFF" style="stroke:#000000;stroke-width:1;"/><path d="M6559.0129,223.8994 L6559.0129,233.8994 L6569.0129,233.8994 L6559.0129,223.8994" fill="#FFFFFF" style="stroke:#000000;stroke-width:1;"/><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="95.3862" x="6400.99" y="240.9663">HMAC-SHA256</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="153.0229" x="6400.99" y="256.0991">Configurable expiration</text></g><!--link browser to app--><g class="link" data-entity-1="browser" data-entity-2="app" data-source-line="122" data-uid="lnk77" id="link_browser_app"><path d="M6272.23,249.3594 C6076.78,268.6494 5288.471,346.46 5036.831,371.3" fill="none" id="browser-to-app" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="5030.86,371.8894,5040.2094,374.9859,5035.8358,371.3982,5039.4235,367.0246,5030.86,371.8894" style="stroke:#000000;stroke-width:1;"/></g><!--link app to loginPage--><g class="link" data-entity-1="app" data-entity-2="loginPage" data-source-line="123" data-uid="lnk78" id="link_app_loginPage"><path d="M4877.23,384.2494 C4708.43,391.5594 4311.07,415.7794 4198,484.6294 C4165.07,504.6794 4145.1167,539.5289 4133.5767,564.8689" fill="none" id="app-to-loginPage" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="4131.09,570.3294,4138.4604,563.7965,4133.1623,565.779,4131.1798,560.4809,4131.09,570.3294" style="stroke:#000000;stroke-width:1;"/></g><!--link app to registerPage--><g class="link" data-entity-1="app" data-entity-2="registerPage" data-source-line="124" data-uid="lnk79" id="link_app_registerPage"><path d="M4876.99,402.6994 C4791.85,425.1894 4650.27,459.7494 4526,476.6294 C4508.8,478.9694 4385.43,476.6894 4370,484.6294 C4333.95,503.1694 4310.791,539.0476 4297.331,564.8976" fill="none" id="app-to-registerPage" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="4294.56,570.2194,4302.2644,564.0841,4296.8692,565.7846,4295.1687,560.3893,4294.56,570.2194" style="stroke:#000000;stroke-width:1;"/></g><!--link app to studentDash--><g class="link" data-entity-1="app" data-entity-2="studentDash" data-source-line="125" data-uid="lnk80" id="link_app_studentDash"><path d="M4945.65,404.0894 C4930.64,444.7594 4901.338,524.1507 4886.368,564.7007" fill="none" id="app-to-studentDash" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="4884.29,570.3294,4891.1594,563.2717,4886.0216,565.6388,4883.6545,560.501,4884.29,570.3294" style="stroke:#000000;stroke-width:1;"/></g><!--link app to adminDash--><g class="link" data-entity-1="app" data-entity-2="adminDash" data-source-line="126" data-uid="lnk81" id="link_app_adminDash"><path d="M4967.7,404.0894 C4992.33,444.7594 5040.7316,524.6473 5065.2916,565.1973" fill="none" id="app-to-adminDash" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="5068.4,570.3294,5067.1589,560.559,5065.8097,566.0526,5060.3161,564.7035,5068.4,570.3294" style="stroke:#000000;stroke-width:1;"/></g><!--link app to studentList--><g class="link" data-entity-1="app" data-entity-2="studentList" data-source-line="127" data-uid="lnk82" id="link_app_studentList"><path d="M4877.12,383.5294 C4590.13,391.6194 3591.34,423.9194 3463,484.6294 C3423.57,503.2794 3395.0603,539.4352 3377.9803,565.2552" fill="none" id="app-to-studentList" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="3374.67,570.2594,3382.9716,564.9599,3377.4286,566.0892,3376.2993,560.5462,3374.67,570.2594" style="stroke:#000000;stroke-width:1;"/></g><!--link app to enrollPage--><g class="link" data-entity-1="app" data-entity-2="enrollPage" data-source-line="128" data-uid="lnk83" id="link_app_enrollPage"><path d="M5030.75,385.1294 C5123.71,392.5994 5282.21,415.3594 5398,484.6294 C5433.81,506.0594 5460.0566,540.521 5476.2466,565.391" fill="none" id="app-to-enrollPage" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="5479.52,570.4194,5477.9621,560.6945,5476.7922,566.229,5471.2576,565.0591,5479.52,570.4194" style="stroke:#000000;stroke-width:1;"/></g><!--link app to overlay--><g class="link" data-entity-1="app" data-entity-2="overlay" data-source-line="129" data-uid="lnk84" id="link_app_overlay"><path d="M5030.94,383.2294 C5153.07,388.3394 5396.92,408.1894 5587,484.6294 C5638.28,505.2494 5684.9105,541.0892 5714.3005,566.2292" fill="none" id="app-to-overlay" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="5718.86,570.1294,5714.6209,561.2395,5715.0604,566.8793,5709.4207,567.3188,5718.86,570.1294" style="stroke:#000000;stroke-width:1;"/></g><!--link loginPage to authSvc--><g class="link" data-entity-1="loginPage" data-entity-2="authSvc" data-source-line="131" data-uid="lnk85" id="link_loginPage_authSvc"><path d="M4141.28,617.1594 C4155.57,632.5094 4176.26,652.2994 4198,664.9294 C4276.24,710.3494 4372.1313,736.1112 4437.3013,749.9712" fill="none" id="loginPage-to-authSvc" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="4443.17,751.2194,4435.199,745.4347,4438.2794,750.1793,4433.5348,753.2597,4443.17,751.2194" style="stroke:#000000;stroke-width:1;"/></g><!--link registerPage to authSvc--><g class="link" data-entity-1="registerPage" data-entity-2="authSvc" data-source-line="132" data-uid="lnk86" id="link_registerPage_authSvc"><path d="M4310.75,617.3594 C4327.54,631.3394 4349.77,649.5094 4370,664.9294 C4405.19,691.7494 4441.7643,717.5378 4470.0043,737.0578" fill="none" id="registerPage-to-authSvc" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="4474.94,740.4694,4469.8109,732.0615,4470.8269,737.6264,4465.2621,738.6424,4474.94,740.4694" style="stroke:#000000;stroke-width:1;"/></g><!--link resetPage to authSvc--><g class="link" data-entity-1="resetPage" data-entity-2="authSvc" data-source-line="133" data-uid="lnk87" id="link_resetPage_authSvc"><path d="M4468.98,617.1294 C4477.58,649.3194 4491.8302,702.593 4500.4502,734.833" fill="none" id="resetPage-to-authSvc" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="4502,740.6294,4503.5396,730.9016,4500.7085,735.799,4495.8111,732.968,4502,740.6294" style="stroke:#000000;stroke-width:1;"/></g><!--link activatePage to authSvc--><g class="link" data-entity-1="activatePage" data-entity-2="authSvc" data-source-line="134" data-uid="lnk88" id="link_activatePage_authSvc"><path d="M4633.75,617.1294 C4606.01,649.3194 4559.0266,703.844 4531.2466,736.084" fill="none" id="activatePage-to-authSvc" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="4527.33,740.6294,4536.2351,736.4224,4530.5938,736.8416,4530.1746,731.2003,4527.33,740.6294" style="stroke:#000000;stroke-width:1;"/></g><!--link studentDash to studentSvc--><g class="link" data-entity-1="studentDash" data-entity-2="studentSvc" data-source-line="135" data-uid="lnk89" id="link_studentDash_studentSvc"><path d="M4850.1,617.3394 C4829.91,634.9394 4801.17,659.9794 4776,681.9294 C4753.23,701.7794 4731.8509,720.4345 4713.1709,736.7345" fill="none" id="studentDash-to-studentSvc" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="4708.65,740.6794,4718.0612,737.776,4712.4174,737.392,4712.8014,731.7482,4708.65,740.6794" style="stroke:#000000;stroke-width:1;"/></g><!--link adminDash to studentSvc--><g class="link" data-entity-1="adminDash" data-entity-2="studentSvc" data-source-line="136" data-uid="lnk90" id="link_adminDash_studentSvc"><path d="M5057.53,617.3394 C5038.27,633.6394 5009.93,654.5294 4981,664.9294 C4894.96,695.8394 4860.2,646.3194 4776,681.9294 C4745.8,694.6994 4722.4634,716.7025 4705.3734,735.9525" fill="none" id="adminDash-to-studentSvc" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="4701.39,740.4394,4710.3564,736.3646,4704.7095,736.7003,4704.3739,731.0534,4701.39,740.4394" style="stroke:#000000;stroke-width:1;"/></g><!--link studentList to studentSvc--><g class="link" data-entity-1="studentList" data-entity-2="studentSvc" data-source-line="137" data-uid="lnk91" id="link_studentList_studentSvc"><path d="M3384.75,617.2194 C3404.13,633.9194 3433.11,655.3894 3463,664.9294 C3522.66,683.9494 4531.54,659.4994 4590,681.9294 C4621.01,693.8194 4644.6438,716.5137 4661.5638,736.1537" fill="none" id="studentList-to-studentSvc" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="4665.48,740.6994,4662.6362,731.27,4662.2165,736.9113,4656.5753,736.4916,4665.48,740.6994" style="stroke:#000000;stroke-width:1;"/></g><!--link enrollPage to enrollSvc--><g class="link" data-entity-1="enrollPage" data-entity-2="enrollSvc" data-source-line="138" data-uid="lnk92" id="link_enrollPage_enrollSvc"><path d="M5470.72,617.3394 C5452.79,633.8594 5426.04,655.0494 5398,664.9294 C5354.57,680.2194 5027.22,666.0594 4984,681.9294 C4950.89,694.0794 4924.2084,716.7226 4904.8384,736.2226" fill="none" id="enrollPage-to-enrollSvc" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="4900.61,740.4794,4909.7905,736.9131,4904.1337,736.932,4904.1148,731.2752,4900.61,740.4794" style="stroke:#000000;stroke-width:1;"/></g><!--link classmates to enrollSvc--><g class="link" data-entity-1="classmates" data-entity-2="enrollSvc" data-source-line="139" data-uid="lnk93" id="link_classmates_enrollSvc"><path d="M5271.21,617.2694 C5247.95,633.5294 5214.12,654.4094 5181,664.9294 C5097.24,691.5294 5065.8,649.7894 4984,681.9294 C4951.39,694.7394 4924.8799,717.0042 4905.3899,736.2442" fill="none" id="classmates-to-enrollSvc" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="4901.12,740.4594,4910.335,736.9832,4904.6783,736.9467,4904.7148,731.29,4901.12,740.4594" style="stroke:#000000;stroke-width:1;"/></g><!--link overlay to connSvc--><g class="link" data-entity-1="overlay" data-entity-2="connSvc" data-source-line="140" data-uid="lnk94" id="link_overlay_connSvc"><path d="M5704.81,617.2894 C5673.9,633.7794 5629.13,654.9694 5587,664.9294 C5503.66,684.6294 5282.68,653.1994 5202,681.9294 C5167.77,694.1094 5139.6233,716.8599 5119.1633,736.3599" fill="none" id="overlay-to-connSvc" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="5114.82,740.4994,5124.0946,737.1856,5118.4394,737.0498,5118.5753,731.3946,5114.82,740.4994" style="stroke:#000000;stroke-width:1;"/></g><!--link authSvc to apollo--><g class="link" data-entity-1="authSvc" data-entity-2="apollo" data-source-line="142" data-uid="lnk95" id="link_authSvc_apollo"><path d="M4534.16,787.5494 C4549.72,800.2194 4570.22,815.7594 4590,827.2194 C4615.73,842.1294 4640.229,853.2414 4666.209,863.6314" fill="none" id="authSvc-to-apollo" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="4671.78,865.8594,4664.9088,858.8034,4667.1375,864.0027,4661.9382,866.2314,4671.78,865.8594" style="stroke:#000000;stroke-width:1;"/></g><!--link studentSvc to apollo--><g class="link" data-entity-1="studentSvc" data-entity-2="apollo" data-source-line="143" data-uid="lnk96" id="link_studentSvc_apollo"><path d="M4692.35,787.6894 C4701.56,809.9394 4713.2251,838.1556 4722.4151,860.3556" fill="none" id="studentSvc-to-apollo" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="4724.71,865.8994,4724.9635,856.0538,4722.7976,861.2796,4717.5718,859.1137,4724.71,865.8994" style="stroke:#000000;stroke-width:1;"/></g><!--link enrollSvc to apollo--><g class="link" data-entity-1="enrollSvc" data-entity-2="apollo" data-source-line="144" data-uid="lnk97" id="link_enrollSvc_apollo"><path d="M4853.22,787.6894 C4826.88,809.9394 4791.4735,839.8275 4765.1935,862.0275" fill="none" id="enrollSvc-to-apollo" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="4760.61,865.8994,4770.0665,863.1472,4764.4296,862.6728,4764.904,857.0359,4760.61,865.8994" style="stroke:#000000;stroke-width:1;"/></g><!--link authGuard to authSvc--><g class="link" data-entity-1="authGuard" data-entity-2="authSvc" data-source-line="147" data-uid="lnk98" id="link_authGuard_authSvc"><path d="M2615.69,617.2994 C2639.7,634.0394 2675.13,655.5394 2710,664.9294 C2748.68,675.3394 3390.99,671.0294 3431,672.9294 C3815.69,691.1394 4269.864,737.4612 4437.194,755.3612" fill="none" id="authGuard-to-authSvc" style="stroke:#000000;stroke-width:1;stroke-dasharray:7,7;"/><polygon fill="#000000" points="4443.16,755.9994,4434.6365,751.0648,4438.1884,755.4675,4433.7856,759.0194,4443.16,755.9994" style="stroke:#000000;stroke-width:1;"/></g><!--link adminGuard to authSvc--><g class="link" data-entity-1="adminGuard" data-entity-2="authSvc" data-source-line="148" data-uid="lnk99" id="link_adminGuard_authSvc"><path d="M2280.93,617.2494 C2296.3,633.7194 2319.55,654.8894 2345,664.9294 C2420.34,694.6294 2446.1,670.1094 2527,673.9294 C3280.12,709.4894 4188.4557,749.1887 4437.0157,759.9987" fill="none" id="adminGuard-to-authSvc" style="stroke:#000000;stroke-width:1;stroke-dasharray:7,7;"/><polygon fill="#000000" points="4443.01,760.2594,4434.1923,755.8721,4438.0147,760.0421,4433.8447,763.8646,4443.01,760.2594" style="stroke:#000000;stroke-width:1;"/></g><!--link guestGuard to authSvc--><g class="link" data-entity-1="guestGuard" data-entity-2="authSvc" data-source-line="149" data-uid="lnk100" id="link_guestGuard_authSvc"><path d="M2445.36,617.2394 C2460.3,633.7194 2482.96,654.8894 2508,664.9294 C2690.96,738.2994 4113.6604,758.6307 4437.0704,762.3307" fill="none" id="guestGuard-to-authSvc" style="stroke:#000000;stroke-width:1;stroke-dasharray:7,7;"/><polygon fill="#000000" points="4443.07,762.3994,4434.1163,758.2967,4438.0703,762.3422,4434.0248,766.2962,4443.07,762.3994" style="stroke:#000000;stroke-width:1;"/></g><!--link apollo to graphql--><g class="link" data-entity-1="apollo" data-entity-2="graphql" data-source-line="152" data-uid="lnk101" id="link_apollo_graphql"><path d="M4798.25,886.6494 C5089.9,878.4294 6275,840.3894 6275,765.0694 C6275,379.4794 6275,379.4794 6275,379.4794 C6275,347.5994 6271.8,331.5894 6245,314.3294 C6186.16,276.4594 1274.98,307.7594 1207,291.1794 C1193.35,287.8594 1184.8166,284.7827 1172.1366,278.4427" fill="none" id="apollo-to-graphql" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="1166.77,275.7594,1173.031,283.362,1171.2421,277.9954,1176.6087,276.2066,1166.77,275.7594" style="stroke:#000000;stroke-width:1;"/><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="95.2275" x="6276" y="590.8463">HTTP/GraphQL</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="91.1206" x="6278.0535" y="605.9791">+ JWT Header</text></g><!--link graphql to query--><g class="link" data-entity-1="graphql" data-entity-2="query" data-source-line="154" data-uid="lnk102" id="link_graphql_query"><path d="M1133.11,275.5394 C1146.2,300.3394 1161.5666,329.4346 1173.3566,351.7446" fill="none" id="graphql-to-query" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="1176.16,357.0494,1175.4914,347.2232,1173.8238,352.6287,1168.4184,350.9611,1176.16,357.0494" style="stroke:#000000;stroke-width:1;"/></g><!--link graphql to mutation--><g class="link" data-entity-1="graphql" data-entity-2="mutation" data-source-line="155" data-uid="lnk103" id="link_graphql_mutation"><path d="M1176.31,275.7094 C1207.36,291.9394 1240.32,309.4894 1247,314.3294 C1264.35,326.8994 1277.5939,339.3319 1290.4439,352.7119" fill="none" id="graphql-to-mutation" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="1294.6,357.0394,1291.2509,347.7774,1291.1366,353.4331,1285.4809,353.3189,1294.6,357.0394" style="stroke:#000000;stroke-width:1;"/></g><!--link graphql to authTypes--><g class="link" data-entity-1="graphql" data-entity-2="authTypes" data-source-line="156" data-uid="lnk104" id="link_graphql_authTypes"><path d="M1102.25,275.5394 C1090.26,300.3394 1076.2424,329.3379 1065.4524,351.6479" fill="none" id="graphql-to-authTypes" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="1062.84,357.0494,1070.3595,350.6888,1065.017,352.5482,1063.1576,347.2056,1062.84,357.0494" style="stroke:#000000;stroke-width:1;"/></g><!--link mutation to loginCmd--><g class="link" data-entity-1="mutation" data-entity-2="loginCmd" data-source-line="158" data-uid="lnk105" id="link_mutation_loginCmd"><path d="M1336.13,404.0994 C1353.2,420.6494 1378.78,441.8594 1406,451.6294 C1431.63,460.8294 1623.92,456.6994 1651,459.6294 C1692.34,464.0994 1701.6,472.7494 1743,476.6294 C1769.33,479.0994 3622.96,473.6094 3647,484.6294 C3685.45,502.2494 3711.2903,538.9573 3726.3303,565.1273" fill="none" id="mutation-to-loginCmd" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="3729.32,570.3294,3728.3036,560.5331,3726.8286,565.9943,3721.3674,564.5193,3729.32,570.3294" style="stroke:#000000;stroke-width:1;"/></g><!--link mutation to registerCmd--><g class="link" data-entity-1="mutation" data-entity-2="registerCmd" data-source-line="159" data-uid="lnk106" id="link_mutation_registerCmd"><path d="M1335.73,403.8994 C1352.77,420.5794 1378.5,442.0494 1406,451.6294 C1413.97,454.3994 3828.25,481.2894 3836,484.6294 C3876.86,502.2394 3906.4161,539.1609 3923.9061,565.3309" fill="none" id="mutation-to-registerCmd" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="3927.24,570.3194,3925.5648,560.614,3924.4617,566.1623,3918.9135,565.0593,3927.24,570.3194" style="stroke:#000000;stroke-width:1;"/></g><!--link mutation to resetCmd--><g class="link" data-entity-1="mutation" data-entity-2="resetCmd" data-source-line="160" data-uid="lnk107" id="link_mutation_resetCmd"><path d="M1336.19,403.9394 C1353.29,420.4094 1378.88,441.5794 1406,451.6294 C1437.51,463.2994 1523.53,456.6494 1557,459.6294 C1617.68,465.0194 1632.21,472.7094 1693,476.6294 C1717.2,478.1894 3416.48,475.6394 3439,484.6294 C3482.27,501.8994 3515.1979,539.1135 3534.8479,565.4035" fill="none" id="mutation-to-resetCmd" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="3538.44,570.2094,3536.2558,560.6058,3535.4466,566.2044,3529.8479,565.3952,3538.44,570.2094" style="stroke:#000000;stroke-width:1;"/></g><!--link mutation to studentCmds--><g class="link" data-entity-1="mutation" data-entity-2="studentCmds" data-source-line="161" data-uid="lnk108" id="link_mutation_studentCmds"><path d="M1336.71,403.8494 C1353.89,420.0394 1379.36,440.8994 1406,451.6294 C1500.56,489.7194 1532.23,470.6694 1634,476.6294 C1662.51,478.2994 2634.82,475.8794 2662,484.6294 C2714.95,501.6794 2761.085,540.0716 2788.765,566.4316" fill="none" id="mutation-to-studentCmds" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="2793.11,570.5694,2789.3511,561.4661,2789.4892,567.1212,2783.834,567.2594,2793.11,570.5694" style="stroke:#000000;stroke-width:1;"/></g><!--link mutation to enrollCmds--><g class="link" data-entity-1="mutation" data-entity-2="enrollCmds" data-source-line="162" data-uid="lnk109" id="link_mutation_enrollCmds"><path d="M1319.82,404.0894 C1328.48,444.7594 1345.3296,523.9111 1353.9696,564.4611" fill="none" id="mutation-to-enrollCmds" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="1355.22,570.3294,1357.2566,560.6934,1354.178,565.4391,1349.4323,562.3605,1355.22,570.3294" style="stroke:#000000;stroke-width:1;"/></g><!--link query to studentQs--><g class="link" data-entity-1="query" data-entity-2="studentQs" data-source-line="163" data-uid="lnk110" id="link_query_studentQs"><path d="M1200.25,404.0794 C1210.44,420.3894 1226.55,441.2894 1247,451.6294 C1323.91,490.5094 1547.87,473.6094 1634,476.6294 C1654.24,477.3394 3073.57,476.2294 3092,484.6294 C3130.66,502.2494 3156.8476,538.9762 3172.1076,565.1462" fill="none" id="query-to-studentQs" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="3175.13,570.3294,3174.0519,560.5397,3172.6114,566.0101,3167.141,564.5695,3175.13,570.3294" style="stroke:#000000;stroke-width:1;"/></g><!--link query to classmatesQ--><g class="link" data-entity-1="query" data-entity-2="classmatesQ" data-source-line="164" data-uid="lnk111" id="link_query_classmatesQ"><path d="M1185,404.0894 C1179.61,444.7594 1169.1391,523.8315 1163.7591,564.3815" fill="none" id="query-to-classmatesQ" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="1162.97,570.3294,1168.119,561.9336,1163.6276,565.3728,1160.1885,560.8815,1162.97,570.3294" style="stroke:#000000;stroke-width:1;"/></g><!--link loginCmd to jwtSvc--><g class="link" data-entity-1="loginCmd" data-entity-2="jwtSvc" data-source-line="166" data-uid="lnk112" id="link_loginCmd_jwtSvc"><path d="M3729.28,570.4094 C3714.21,544.3194 3685.33,502.4894 3647,484.6294 C3635.11,479.0894 3188.11,476.9294 3175,476.6294 C2788.27,467.7994 2687.54,509.0894 2305,451.6294 C2040.08,411.8394 1970.84,395.2694 1724,291.1794 C1708.63,284.6994 1697.7039,278.9012 1684.1139,270.6212" fill="none" id="loginCmd-to-jwtSvc" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="1678.99,267.4994,1684.5946,275.598,1683.2599,270.1009,1688.757,268.7662,1678.99,267.4994" style="stroke:#000000;stroke-width:1;"/></g><!--link loginCmd to passSvc--><g class="link" data-entity-1="loginCmd" data-entity-2="passSvc" data-source-line="167" data-uid="lnk113" id="link_loginCmd_passSvc"><path d="M3729.26,570.4694 C3714.16,544.4294 3685.26,502.6494 3647,484.6294 C3631.11,477.1394 3348.48,478.3494 3331,476.6294 C2848.24,429.1794 2283.2496,310.6398 2074.4996,264.6698" fill="none" id="loginCmd-to-passSvc" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="2068.64,263.3794,2076.5692,269.2213,2073.523,264.4547,2078.2897,261.4085,2068.64,263.3794" style="stroke:#000000;stroke-width:1;"/></g><!--link registerCmd to passSvc--><g class="link" data-entity-1="registerCmd" data-entity-2="passSvc" data-source-line="168" data-uid="lnk114" id="link_registerCmd_passSvc"><path d="M3927.23,570.3494 C3909.73,544.1994 3876.82,502.3194 3836,484.6294 C3812.7,474.5294 3404.17,479.9894 3379,476.6294 C3233.35,457.1794 2882.82,339.1894 2738,314.3294 C2496.68,272.9094 2213.1831,255.3162 2074.6631,248.6862" fill="none" id="registerCmd-to-passSvc" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="2068.67,248.3994,2077.4685,252.8251,2073.6643,248.6384,2077.8509,244.8342,2068.67,248.3994" style="stroke:#000000;stroke-width:1;"/></g><!--link studentCmds to domainSvc--><g class="link" data-entity-1="studentCmds" data-entity-2="domainSvc" data-source-line="169" data-uid="lnk115" id="link_studentCmds_domainSvc"><path d="M2777.58,617.2994 C2747.53,634.0394 2703.62,655.5394 2662,664.9294 C2595.93,679.8294 1505.54,655.9194 1443,681.9294 C1414.16,693.9194 1393.4104,716.3397 1378.7004,735.9497" fill="none" id="studentCmds-to-domainSvc" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="1375.1,740.7494,1383.7004,735.9501,1378.1003,736.7496,1377.3008,731.1496,1375.1,740.7494" style="stroke:#000000;stroke-width:1;"/></g><!--link enrollCmds to domainSvc--><g class="link" data-entity-1="enrollCmds" data-entity-2="domainSvc" data-source-line="170" data-uid="lnk116" id="link_enrollCmds_domainSvc"><path d="M1360,617.1294 C1360,649.3194 1360,702.3894 1360,734.6294" fill="none" id="enrollCmds-to-domainSvc" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="1360,740.6294,1364,731.6294,1360,735.6294,1356,731.6294,1360,740.6294" style="stroke:#000000;stroke-width:1;"/></g><!--link domainSvc to studentEntity--><g class="link" data-entity-1="domainSvc" data-entity-2="studentEntity" data-source-line="172" data-uid="lnk117" id="link_domainSvc_studentEntity"><path d="M1361.1,787.6894 C1362.18,809.9394 1363.5385,837.7065 1364.6185,859.9065" fill="none" id="domainSvc-to-studentEntity" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="1364.91,865.8994,1368.468,856.7156,1364.667,860.9053,1360.4774,857.1044,1364.91,865.8994" style="stroke:#000000;stroke-width:1;"/></g><!--link domainSvc to valueObjects--><g class="link" data-entity-1="domainSvc" data-entity-2="valueObjects" data-source-line="173" data-uid="lnk118" id="link_domainSvc_valueObjects"><path d="M1329.19,787.6894 C1298.87,809.9394 1257.6966,840.1487 1227.4566,862.3487" fill="none" id="domainSvc-to-valueObjects" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="1222.62,865.8994,1232.242,863.7978,1226.6505,862.9405,1227.5078,857.349,1222.62,865.8994" style="stroke:#000000;stroke-width:1;"/></g><!--link repos to dbContext--><g class="link" data-entity-1="repos" data-entity-2="dbContext" data-source-line="175" data-uid="lnk119" id="link_repos_dbContext"><path d="M1485,267.5394 C1485,292.3594 1485,326.0594 1485,350.8994" fill="none" id="repos-to-dbContext" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="1485,356.8994,1489,347.8994,1485,351.8994,1481,347.8994,1485,356.8994" style="stroke:#000000;stroke-width:1;"/></g><!--link loaders to dbContext--><g class="link" data-entity-1="loaders" data-entity-2="dbContext" data-source-line="176" data-uid="lnk120" id="link_loaders_dbContext"><path d="M1769.1,267.4494 C1755.21,275.4394 1739.12,284.1894 1724,291.1794 C1663.58,319.1294 1597.2923,342.8427 1548.2223,359.1927" fill="none" id="loaders-to-dbContext" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="1542.53,361.0894,1552.3329,362.0393,1547.2736,359.5088,1549.8041,354.4495,1542.53,361.0894" style="stroke:#000000;stroke-width:1;"/></g><!--link dbContext to sqlserver--><g class="link" data-entity-1="dbContext" data-entity-2="sqlserver" data-source-line="177" data-uid="lnk121" id="link_dbContext_sqlserver"><path d="M1460.98,403.9394 C1441.39,420.6394 1412.12,442.1194 1382,451.6294 C1319.9,471.2294 859,443.1594 796,459.6294 C736.985,475.0594 676.7125,507.5544 630.7163,536.5781 C607.7181,551.09 588.2891,564.7341 574.3708,574.9433 C570.8912,577.4956 567.7561,579.8332 564.9957,581.9161 C563.6155,582.9575 562.329,583.9352 561.14,584.8442 C560.5455,585.2987 559.9753,585.736 559.43,586.1556 C559.2937,586.2604 563.9116,582.702 563.7784,582.8046" fill="none" id="dbContext-to-sqlserver" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="559.0257,586.4669,568.5963,584.142,562.9863,583.415,563.7133,577.8051,559.0257,586.4669" style="stroke:#000000;stroke-width:1;"/></g><!--link repos to ports--><g class="link" data-entity-1="repos" data-entity-2="ports" data-source-line="180" data-uid="lnk122" id="link_repos_ports"><path d="M1444.68,267.4794 C1426.17,276.6294 1403.57,286.1994 1382,291.1794 C1334.99,302.0394 990.62,282.7194 948,305.3294 C873.14,345.0394 862.17,379.0294 836,459.6294 C806.2,551.4194 703.36,520.3694 948,673.9294 C970.64,688.1294 1043.17,672.0394 1068,681.9294 C1099.6,694.5194 1116.3497,708.1778 1134.4797,727.5478" fill="none" id="repos-to-ports" style="stroke:#000000;stroke-width:1;stroke-dasharray:7,7;"/><polygon fill="none" points="1146.78,740.6894,1138.8602,723.4477,1130.0991,731.6479,1146.78,740.6894" style="stroke:#000000;stroke-width:1;"/><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="76.9082" x="837" y="472.6963">implements</text></g><!--link jwtSvc to ports--><g class="link" data-entity-1="jwtSvc" data-entity-2="ports" data-source-line="181" data-uid="lnk123" id="link_jwtSvc_ports"><path d="M1614.34,267.6794 C1600.33,276.7394 1583.08,286.1994 1566,291.1794 C1534.56,300.3594 999.7,290.7294 977,314.3294 C866.02,429.7594 969.92,532.5394 1060,664.9294 C1080.46,694.9894 1097.5663,711.4068 1120.8463,729.5968" fill="none" id="jwtSvc-to-ports" style="stroke:#000000;stroke-width:1;stroke-dasharray:7,7;"/><polygon fill="none" points="1135.03,740.6794,1124.5405,724.8689,1117.1521,734.3247,1135.03,740.6794" style="stroke:#000000;stroke-width:1;"/><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="76.9082" x="941.03" y="472.6963">implements</text></g><!--link domain to GMN124--><g class="link" data-entity-1="domain" data-entity-2="GMN124" data-source-line="184" data-uid="lnk126" id="link_domain_GMN124"><path d="M1482.8331,763.7034 C1487.0634,763.5246 1492.7869,763.2834 1499.9453,762.9834 C1514.2622,762.3836 1534.3186,761.5486 1559.6484,760.5071 C1610.3079,758.4239 1682.0604,755.5145 1771.1752,752.0064 C1949.4047,744.9903 2197.0831,735.58 2484.3638,725.5981 C3058.925,705.6344 3791.895,683.3844 4444.5,673.4294 C4495.58,672.6494 6233.72,661.9794 6283.5,673.4294 C6326.14,683.2294 6367.17,713.1794 6393.56,735.9994" fill="none" id="domain-GMN124" style="stroke:#000000;stroke-width:1;stroke-dasharray:7,7;"/></g><!--link graphql to GMN127--><g class="link" data-entity-1="graphql" data-entity-2="GMN127" data-source-line="190" data-uid="lnk129" id="link_graphql_GMN127"><path d="M1044.16,264.6894 C1009.46,273.5994 967.27,283.7694 929,291.1794 C885.36,299.6394 873.69,297.1794 830,305.3294 C741.3,321.8794 640.03,346.1894 575.36,362.4094" fill="none" id="graphql-GMN127" style="stroke:#000000;stroke-width:1;stroke-dasharray:7,7;"/></g><!--link jwtSvc to GMN130--><g class="link" data-entity-1="jwtSvc" data-entity-2="GMN130" data-source-line="197" data-uid="lnk132" id="link_jwtSvc_GMN130"><path d="M1648.41,220.6494 C1656.06,178.4594 1679.11,91.8194 1741.5,68.7394 C1771.58,57.6094 6329.42,57.6094 6359.5,68.7394 C6427.58,93.9194 6463.12,182.8694 6476.12,223.5094" fill="none" id="jwtSvc-GMN130" style="stroke:#000000;stroke-width:1;stroke-dasharray:7,7;"/></g><!--SRC=[dLZRRjms47tdLx3kGsqKlcGHfuqH6DZihhCkdCRERjk7f0zSYTvb8f4oIJanqdnLFw4_rk55uaLoqTQ00VBCqN1cD9mPxJTwHskAcuemZjH7nXiYIOqBKJU2KwvN-g6YkAshIIHjIF6HRAcJILfemhSL7Nly9J2tKhIyd8bAIFpjnOyNpo-cerGXIoezxUdpqvFJ7uP73lNPln5Yh6s-M4mMpn3IJ8F1AwOqhGakANvBjx2HmgmNIhSb8rnJXG_nLDwrJ8DhhRJCMMScLGZvC_3UXHI0y1BlJ_cshOZ4aoS7UvWeVDj9lY0CV- -cJHDq_6uOf6cGbGLjbC1nLEtvXnBXjDMxM62rNeaju_WQ25PbPRPcbxASbrG6elJ865TH3KIbFa44FHcW8NDQQ7PFDCNJee0NuftoO4B_ElHcJjHk8uWi1owju2r0Y73Fi7gLGmsOML7M486KJ0oMK4SiyEUeHmsuWWZ5PvlzEFD2o3fcclq_7RtWKbHL3Sp1uK4KNXQrsF05p2fuIpKn-TfpYnxB3FYQvTfCI1gV3WaAXmWygrX8K8D43CX0lABodXNkC0B0whv0Wu3491-JX1Tv6LETembp9ZYd9gUOVaYu1GXIdLB2LLyINbPKEdK6yS1e35wra34gZOBnqUAzXtQ7ieIBA6QVSLwrLEc8ipNxmCdjMEs8fCbDIFr-SqzbHHwiAk7MA2e1f6HyYrSDWqUSvygj4tMtJDPupWZK2CifxTBRypMgQQR4sf9szFDYZP-Sk7gsyUYNpFQbKDeITh28FRYMOWlr-AXGzhZ6RODyVWdra6jeEzxeaeq6PrgI1YgLsdF1Tfkn0ZcN42q8nFwrP3MH3mU3o_LAacPtSuMdrvVl-VvIwDbE5AA2stBWNfEHtrNfGpSjbIxqTsQL2b-tccWck9NNVfCLA9DHwuU6gZwZx6wyb0IYlpSfrmTdu3VbU7z5uKwKeuw_fOrGJ0l9l79fW9Gp9vgON8Be-bvYrnbfOzuP_UmAHDdjKj9FlwsJg_hXKtBxNNRu1fCG6m1ZvdZbWavQiS96Ui_tqMx_7_iczECQoaDedREwVAHpnjIkUOwmntjdJFm_dSWVdkG5w7maXKp2iZI9RjI_QqVgaNwKMk3AzD20g1-5InCQqis83Uz-9HKh2MIcKttVRwD2iNxZXANsEPjdn5pKK4PiCfHs6TUXNnIylWM7qSyPrCBUROTzAwBvo0sOxUO3rEM4wQ2S6VMuYEnYbtCX2Yt5RwoUFX0jzK0K2kUTlpC-AXPBMk6ra5hX_Kkuc_AM0D6LjyR0eU13dCc6A9E0K1EDJWZKv6GoiO5KTvLoa1zWJHmLNfDDvIwhtbGMGd44CqA7eZXsEQUDl3HTuvOg9VAZ38wok6OK9p2U5PLeIsXaKdm22rtxSck4lZDTXtw6OW5fsetlo8lnuU6vdSlXtwx3GDqXoUJSWV5qsc5X2CrOTexii6Ysww2kmwF-SAVF3rkn0Pd0Z-a96W_aYI2oERREFjEPdWiY3t9HS2JoomX20SW4ta-BTjCSyjRv5s7dpt18ZFPwOX3UhflfK3-uuQEZA1Zzh9R0OJnBu3HN_5Y4t57sL3ylu3EyNA-lZ_ruyPv_ZqqBN5BJG17gMEO9DqB4I3yqn60O4b0d3-bekac2nlqe4_Zcaw1n0qa4KLstTiRicnYBQphgRB8It-eJhElgaPa97jbZyL3GWa6P0FNBs4PVLLDPKaYHdNkSidvsyODEXlOhTq9N3KrINDPDHKq18WNxwqzkVXre83QcEpdzHqT_dBjg2wd1EhP2BZgFYX4Ny3KjsNQdiRZrxaBHUx4vXpcaiZz3p6a3IKXvmSZPY-FDEOXzK-3cHmmh10oO1MbCl_aC4UT48JEx6_t-b8tGMjJcc33qBdZP20QMdC7c41y72Mnsb5JQV52RUUhC9lXB2fyjCjVSsz-FVSlNqzdXQZcTd3w3dVqKsRRIb6umhs7IvN-lvcy0]--></g></svg>