LocationAPI/res/backend.svg

1 line
54 KiB
XML

<svg aria-roledescription="class" role="graphics-document document" viewBox="0 0 781.953125 1286" style="max-width: 3840px; background-color: white; max-height: 3840px;" class="classDiagram" 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:arial,sans-serif;font-size:14px;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:#ffffff;}#my-svg .error-text{fill:#000000;stroke:#000000;}#my-svg .edge-thickness-normal{stroke-width:2px;}#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:#000000;stroke:#000000;}#my-svg .marker.cross{stroke:#000000;}#my-svg svg{font-family:arial,sans-serif;font-size:14px;}#my-svg p{margin:0;}#my-svg g.classGroup text{fill:#000000;stroke:none;font-family:arial,sans-serif;font-size:10px;}#my-svg g.classGroup text .title{font-weight:bolder;}#my-svg .nodeLabel,#my-svg .edgeLabel{color:#333;}#my-svg .noteLabel .nodeLabel,#my-svg .noteLabel .edgeLabel{color:#333;}#my-svg .edgeLabel .label rect{fill:#ffffff;}#my-svg .label text{fill:#333;}#my-svg .labelBkg{background:#ffffff;}#my-svg .edgeLabel .label span{background:#ffffff;}#my-svg .classTitle{font-weight:bolder;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#ffffff;stroke:#000000;stroke-width:2;}#my-svg .divider{stroke:#000000;stroke-width:1;}#my-svg g.clickable{cursor:pointer;}#my-svg g.classGroup rect{fill:#ffffff;stroke:#000000;}#my-svg g.classGroup line{stroke:#000000;stroke-width:1;}#my-svg .classLabel .box{stroke:none;stroke-width:0;fill:#ffffff;opacity:0.5;}#my-svg .classLabel .label{fill:#000000;font-size:10px;}#my-svg .relation{stroke:#000000;stroke-width:2;fill:none;}#my-svg .dashed-line{stroke-dasharray:3;}#my-svg .dotted-line{stroke-dasharray:1 2;}#my-svg #compositionStart,#my-svg .composition{fill:#000000!important;stroke:#000000!important;stroke-width:1;}#my-svg #compositionEnd,#my-svg .composition{fill:#000000!important;stroke:#000000!important;stroke-width:1;}#my-svg #dependencyStart,#my-svg .dependency{fill:#000000!important;stroke:#000000!important;stroke-width:1;}#my-svg #dependencyStart,#my-svg .dependency{fill:#000000!important;stroke:#000000!important;stroke-width:1;}#my-svg #extensionStart,#my-svg .extension{fill:transparent!important;stroke:#000000!important;stroke-width:1;}#my-svg #extensionEnd,#my-svg .extension{fill:transparent!important;stroke:#000000!important;stroke-width:1;}#my-svg #aggregationStart,#my-svg .aggregation{fill:transparent!important;stroke:#000000!important;stroke-width:1;}#my-svg #aggregationEnd,#my-svg .aggregation{fill:transparent!important;stroke:#000000!important;stroke-width:1;}#my-svg #lollipopStart,#my-svg .lollipop{fill:#ffffff!important;stroke:#000000!important;stroke-width:1;}#my-svg #lollipopEnd,#my-svg .lollipop{fill:#ffffff!important;stroke:#000000!important;stroke-width:1;}#my-svg .edgeTerminals{font-size:11px;line-height:initial;}#my-svg .classTitleText{text-anchor:middle;font-size:18px;fill:#333;}#my-svg .edgeLabel{background-color:hsl(-120, 0%, 80%);text-align:center;}#my-svg .edgeLabel p{background-color:hsl(-120, 0%, 80%);}#my-svg .edgeLabel rect{opacity:0.5;background-color:hsl(-120, 0%, 80%);fill:hsl(-120, 0%, 80%);}#my-svg .cluster rect{fill:#ffffff;stroke:hsl(0, 0%, 90%);stroke-width:2px;}#my-svg .node .neo-node{stroke:#000000;}#my-svg [data-look="neo"].node rect,#my-svg [data-look="neo"].cluster rect,#my-svg [data-look="neo"].node polygon{stroke:url(#my-svg-gradient);filter:drop-shadow( 0px 1px 2px rgba(0, 0, 0, 0.25));}#my-svg [data-look="neo"].node path{stroke:url(#my-svg-gradient);stroke-width:2;}#my-svg [data-look="neo"].node .outer-path{filter:drop-shadow( 0px 1px 2px rgba(0, 0, 0, 0.25));}#my-svg [data-look="neo"].node .neo-line path{stroke:#000000;filter:none;}#my-svg [data-look="neo"].node circle{stroke:url(#my-svg-gradient);filter:drop-shadow( 0px 1px 2px rgba(0, 0, 0, 0.25));}#my-svg [data-look="neo"].node circle .state-start{fill:#000000;}#my-svg [data-look="neo"].statediagram-cluster rect{fill:#ffffff;stroke:url(#my-svg-gradient);stroke-width:2;}#my-svg [data-look="neo"].icon-shape .icon{fill:url(#my-svg-gradient);filter:drop-shadow( 0px 1px 2px rgba(0, 0, 0, 0.25));}#my-svg [data-look="neo"].icon-shape .icon-neo path{stroke:url(#my-svg-gradient);filter:drop-shadow( 0px 1px 2px rgba(0, 0, 0, 0.25));}#my-svg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style><g><defs><marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="18" class="marker aggregation class" id="my-svg_class-aggregationStart"><path d="M 18,7 L9,13 L1,7 L9,1 Z"/></marker></defs><defs><marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="1" class="marker aggregation class" id="my-svg_class-aggregationEnd"><path d="M 18,7 L9,13 L1,7 L9,1 Z"/></marker></defs><defs><marker markerUnits="userSpaceOnUse" orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="15" class="marker aggregation class" id="my-svg_class-aggregationStart-margin"><path style="stroke-width: 2;" d="M 18,7 L9,13 L1,7 L9,1 Z"/></marker></defs><defs><marker markerUnits="userSpaceOnUse" orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="1" class="marker aggregation class" id="my-svg_class-aggregationEnd-margin"><path style="stroke-width: 2;" d="M 18,7 L9,13 L1,7 L9,1 Z"/></marker></defs><defs><marker markerUnits="userSpaceOnUse" orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="17.5" class="marker extension class" id="my-svg_class-extensionStart"><path d="M 1,7 L18,13 V 1 Z"/></marker></defs><defs><marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="1" class="marker extension class" id="my-svg_class-extensionEnd"><path d="M 1,1 V 13 L18,7 Z"/></marker></defs><marker viewBox="0 0 20 14" markerUnits="userSpaceOnUse" orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="18" class="marker extension class" id="my-svg_class-extensionStart-margin"><polygon style="stroke-width: 2; stroke-dasharray: 0;" points="10,7 18,13 18,1"/></marker><defs><marker viewBox="0 0 20 14" markerUnits="userSpaceOnUse" orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="9" class="marker extension class" id="my-svg_class-extensionEnd-margin"><polygon style="stroke-width: 2; stroke-dasharray: 0;" points="10,1 10,13 18,7"/></marker></defs><defs><marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="18" class="marker composition class" id="my-svg_class-compositionStart"><path d="M 18,7 L9,13 L1,7 L9,1 Z"/></marker></defs><defs><marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="1" class="marker composition class" id="my-svg_class-compositionEnd"><path d="M 18,7 L9,13 L1,7 L9,1 Z"/></marker></defs><defs><marker markerUnits="userSpaceOnUse" orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="15" class="marker composition class" id="my-svg_class-compositionStart-margin"><path style="stroke-width: 0;" d="M 18,7 L9,13 L1,7 L9,1 Z" viewBox="0 0 15 15"/></marker></defs><defs><marker markerUnits="userSpaceOnUse" orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="3.5" class="marker composition class" id="my-svg_class-compositionEnd-margin"><path style="stroke-width: 0;" d="M 18,7 L9,13 L1,7 L9,1 Z"/></marker></defs><defs><marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="6" class="marker dependency class" id="my-svg_class-dependencyStart"><path d="M 5,7 L9,13 L1,7 L9,1 Z"/></marker></defs><defs><marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="13" class="marker dependency class" id="my-svg_class-dependencyEnd"><path d="M 18,7 L9,13 L14,7 L9,1 Z"/></marker></defs><defs><marker markerUnits="userSpaceOnUse" orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="4" class="marker dependency class" id="my-svg_class-dependencyStart-margin"><path style="stroke-width: 0;" d="M 5,7 L9,13 L1,7 L9,1 Z"/></marker></defs><defs><marker markerUnits="userSpaceOnUse" orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="16" class="marker dependency class" id="my-svg_class-dependencyEnd-margin"><path style="stroke-width: 0;" d="M 18,7 L9,13 L14,7 L9,1 Z"/></marker></defs><defs><marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="13" class="marker lollipop class" id="my-svg_class-lollipopStart"><circle r="6" cy="7" cx="7" fill="transparent"/></marker></defs><defs><marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="1" class="marker lollipop class" id="my-svg_class-lollipopEnd"><circle r="6" cy="7" cx="7" fill="transparent"/></marker></defs><defs><marker markerUnits="userSpaceOnUse" orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="13" class="marker lollipop class" id="my-svg_class-lollipopStart-margin"><circle stroke-width="2" r="6" cy="7" cx="7" fill="transparent"/></marker></defs><defs><marker markerUnits="userSpaceOnUse" orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="1" class="marker lollipop class" id="my-svg_class-lollipopEnd-margin"><circle stroke-width="2" r="6" cy="7" cx="7" fill="transparent"/></marker></defs><g class="root"><g class="clusters"/><g class="edgePaths"><path data-points="W3sieCI6Njc4LjgzNTkzNzUsInkiOjQxfSx7IngiOjY3OC44MzU5Mzc1LCJ5Ijo2Nn0seyJ4Ijo2NzguODM1OTM3NSwieSI6OTF9XQ==" data-id="edgeNote1" data-et="edge" data-edge="true" style="stroke-dasharray: 0 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 0; stroke-dashoffset: 0;fill: none;;;fill: none" class="edge-thickness-normal edge-pattern-dotted relation" id="edgeNote1" d="M678.8359375,41L678.8359375,66L678.8359375,91"/><path data-points="W3sieCI6NDcxLjkzNzUsInkiOjE5Nn0seyJ4Ijo0NzEuOTM3NSwieSI6MzAzLjV9LHsieCI6NTA0LjI5Mzg2MzU3Mzc4ODU0LCJ5IjozMzl9XQ==" data-id="edgeNote2" data-et="edge" data-edge="true" style="stroke-dasharray: 0 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 0; stroke-dashoffset: 0;fill: none;;;fill: none" class="edge-thickness-normal edge-pattern-dotted relation" id="edgeNote2" d="M471.9375,196L471.9375,289.6571562856982Q471.9375,303.5 481.26239353453525,313.73086910619855L504.29386357378854,339"/><path data-points="W3sieCI6Mzc3Ljk5NjA5Mzc1LCJ5Ijo0MzMuNX0seyJ4IjozNzcuOTk2MDkzNzUsInkiOjUzMC41fSx7IngiOjQwNS41ODQxNTM1NDMzMDcxLCJ5Ijo1NjZ9XQ==" data-id="edgeNote3" data-et="edge" data-edge="true" style="stroke-dasharray: 0 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 0; stroke-dashoffset: 0;fill: none;;;fill: none" class="edge-thickness-normal edge-pattern-dotted relation" id="edgeNote3" d="M377.99609375,433.5L377.99609375,515.0843168265519Q377.99609375,530.5 387.45548226527524,542.6722330170438L405.5841535433071,566"/><path data-points="W3sieCI6MjE3LjA2MjUsInkiOjY3NH0seyJ4IjoyMTcuMDYyNSwieSI6Nzg0LjV9LHsieCI6MjQyLjQwNzI0MTk0MTQzNywieSI6ODIwfV0=" data-id="edgeNote4" data-et="edge" data-edge="true" style="stroke-dasharray: 0 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 0; stroke-dashoffset: 0;fill: none;;;fill: none" class="edge-thickness-normal edge-pattern-dotted relation" id="edgeNote4" d="M217.0625,674L217.0625,768.110172500644Q217.0625,784.5 226.58580802928324,797.8391547572563L242.407241941437,820"/><path data-points="W3sieCI6ODkuNDkyMTg3NSwieSI6OTI4fSx7IngiOjg5LjQ5MjE4NzUsInkiOjEwMzguNX0seyJ4Ijo5OC42NDM1MjI3MjcyNzI3MiwieSI6MTA3NH1d" data-id="edgeNote5" data-et="edge" data-edge="true" style="stroke-dasharray: 0 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 0; stroke-dashoffset: 0;fill: none;;;fill: none" class="edge-thickness-normal edge-pattern-dotted relation" id="edgeNote5" d="M89.4921875,928L89.4921875,1020.1697181115379Q89.4921875,1038.5 94.06785511363637,1056.25L98.64352272727272,1074"/><path data-points="W3sieCI6NTI0LjY1NDA3Mzg4MDQxMzQsInkiOjkyOH0seyJ4Ijo1MTkuMTMyODEyNSwieSI6MTAzOC41fSx7IngiOjUxOS4xMzI4MTI1LCJ5IjoxMDg3LjV9XQ==" data-id="edgeNote6" data-et="edge" data-edge="true" style="stroke-dasharray: 0 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 0; stroke-dashoffset: 0;fill: none;;;fill: none" class="edge-thickness-normal edge-pattern-dotted relation" id="edgeNote6" d="M524.6540738804134,928L520.3554582871127,1014.0305264200625Q519.1328125,1038.5 519.1328125,1063L519.1328125,1087.5"/><path marker-end="url(#my-svg_class-dependencyEnd-margin)" data-points="W3sieCI6Njc4LjgzNTkzNzUsInkiOjI2OH0seyJ4Ijo2NzguODM1OTM3NSwieSI6MzAzLjV9LHsieCI6NjQ2LjQ3OTU3MzkyNjIxMTUsInkiOjMzOX1d" data-id="id_App_Router_1" data-et="edge" data-edge="true" style="stroke-dasharray: 0 0 76.29589080810547 0; stroke-dashoffset: 0;;;;" class="edge-thickness-normal edge-pattern-solid relation" id="id_App_Router_1" d="M678.8359375,268L678.8359375,289.65715628569814Q678.8359375,303.5 669.5110439654648,313.7308691061986L650.5213273666125,334.56556326834993"/><path marker-end="url(#my-svg_class-dependencyEnd-margin)" data-points="W3sieCI6NTc1LjM4NjcxODc1LCJ5Ijo0OTV9LHsieCI6NTc1LjM4NjcxODc1LCJ5Ijo1MzAuNX0seyJ4Ijo1NDcuNzk4NjU4OTU2NjkyOSwieSI6NTY2fV0=" data-id="id_Router_Controller_2" data-et="edge" data-edge="true" style="stroke-dasharray: 0 0 73.35450744628906 0; stroke-dashoffset: 0;;;;" class="edge-thickness-normal edge-pattern-solid relation" id="id_Router_Controller_2" d="M575.38671875,495L575.38671875,515.0843168265519Q575.38671875,530.5 565.9273302347248,542.6722330170437L551.480385575816,561.2623962700495"/><path marker-end="url(#my-svg_class-dependencyEnd-margin)" data-points="W3sieCI6NDc2LjY5MTQwNjI1LCJ5Ijo3NDl9LHsieCI6NDc2LjY5MTQwNjI1LCJ5Ijo3ODQuNX0seyJ4IjozODguMTM0NzY1NjI1LCJ5Ijo4NTEuMDY0NjM2Mzg3ODA2OH1d" data-id="id_Controller_Model_3" data-et="edge" data-edge="true" style="stroke-dasharray: 0 0 138.72991943359375 0; stroke-dashoffset: 0;;;;" class="edge-thickness-normal edge-pattern-solid relation" id="id_Controller_Model_3" d="M476.69140625,749L476.69140625,773.3077651075527Q476.69140625,784.5 467.74475944553086,791.2248518826661L392.93093737645586,847.4595377025366"/><path marker-end="url(#my-svg_class-dependencyEnd-margin)" data-points="W3sieCI6MzAzLjE2MDUxNzY1NTAxOTcsInkiOjEwMDN9LHsieCI6MzAxLjM4NjcxODc1LCJ5IjoxMDM4LjV9LHsieCI6MjA0LjQ0NTMxMjUsInkiOjExMTQuMDQyNjYwMTEzNzl9XQ==" data-id="id_Model_Repository_4" data-et="edge" data-edge="true" style="stroke-dasharray: 0 0 151.00408935546875 0; stroke-dashoffset: 0;;;;" class="edge-thickness-normal edge-pattern-solid relation" id="id_Model_Repository_4" d="M303.1605176550197,1003L301.98598791733605,1026.5065009735742Q301.38671875,1038.5 291.91462585628284,1045.8812328675222L209.1780218799768,1110.3546441262054"/><path marker-end="url(#my-svg_class-dependencyEnd-margin)" data-points="W3sieCI6Mzg4LjEzNDc2NTYyNSwieSI6OTQ2Ljc0ODQyNzM5NzMzNDF9LHsieCI6NTk3LjQyMTg3NSwieSI6MTAzOC41fSx7IngiOjU2OS41MjI1LCJ5IjoxMDg3LjV9XQ==" data-id="id_Model_Adapter_5" data-et="edge" data-edge="true" style="stroke-dasharray: 0 0 276.055419921875 0; stroke-dashoffset: 0;;;;" class="edge-thickness-normal edge-pattern-solid relation" id="id_Model_Adapter_5" d="M388.134765625,946.7484273973341L591.2590557113093,1035.7982169657175Q597.421875,1038.5 594.0923930208086,1044.3476083059345L572.4912582830083,1082.2859349584926"/></g><g class="edgeLabels"><g class="edgeLabel"><g transform="translate(0, 0)" data-id="edgeNote1" class="label"><foreignObject height="0" width="0"><div class="labelBkg" xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: normal; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel" style=";"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" data-id="edgeNote2" class="label"><foreignObject height="0" width="0"><div class="labelBkg" xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: normal; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel" style=";"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" data-id="edgeNote3" class="label"><foreignObject height="0" width="0"><div class="labelBkg" xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: normal; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel" style=";"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" data-id="edgeNote4" class="label"><foreignObject height="0" width="0"><div class="labelBkg" xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: normal; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel" style=";"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" data-id="edgeNote5" class="label"><foreignObject height="0" width="0"><div class="labelBkg" xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: normal; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel" style=";"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" data-id="edgeNote6" class="label"><foreignObject height="0" width="0"><div class="labelBkg" xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: normal; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel" style=";"></span></div></foreignObject></g></g><g transform="translate(678.8359375, 303.5)" class="edgeLabel"><g transform="translate(-25.2109375, -10.5)" data-id="id_App_Router_1" class="label"><foreignObject height="21" width="50.421875"><div class="labelBkg" xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: normal; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel" style=";display: inline-block"><p>"instala"</p></span></div></foreignObject></g></g><g transform="translate(575.38671875, 530.5)" class="edgeLabel"><g transform="translate(-27.546875, -10.5)" data-id="id_Router_Controller_2" class="label"><foreignObject height="21" width="55.09375"><div class="labelBkg" xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: normal; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel" style=";display: inline-block"><p>"ejecuta"</p></span></div></foreignObject></g></g><g transform="translate(476.69140625, 784.5)" class="edgeLabel"><g transform="translate(-27.5390625, -10.5)" data-id="id_Controller_Model_3" class="label"><foreignObject height="21" width="55.078125"><div class="labelBkg" xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: normal; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel" style=";display: inline-block"><p>"llama a"</p></span></div></foreignObject></g></g><g transform="translate(301.38671875, 1038.5)" class="edgeLabel"><g transform="translate(-50.890625, -10.5)" data-id="id_Model_Repository_4" class="label"><foreignObject height="21" width="101.78125"><div class="labelBkg" xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: normal; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel" style=";display: inline-block"><p>"usa queries de"</p></span></div></foreignObject></g></g><g transform="translate(597.421875, 1038.5)" class="edgeLabel"><g transform="translate(-58.2890625, -10.5)" data-id="id_Model_Adapter_5" class="label"><foreignObject height="21" width="116.578125"><div class="labelBkg" xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: normal; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel" style=";display: inline-block"><p>"ejecuta mediante"</p></span></div></foreignObject></g></g></g><g class="nodes"><g transform="translate(678.8359375, 179.5)" data-look="neo" data-et="node" data-node="true" data-id="App" id="classId-App-0" class="node default"><g class="basic label-container outer-path"><path style="" fill="#ffffff" stroke-width="0" stroke="none" d="M-80.4765625 -88.5 L80.4765625 -88.5 L80.4765625 88.5 L-80.4765625 88.5"/><path style="" fill="none" stroke-width="1.3" stroke="#000000" d="M-80.4765625 -88.5 C-35.49028754465449 -88.5, 9.495987410691015 -88.5, 80.4765625 -88.5 M-80.4765625 -88.5 C-20.507220616918524 -88.5, 39.46212126616295 -88.5, 80.4765625 -88.5 M80.4765625 -88.5 C80.4765625 -33.045126689972506, 80.4765625 22.40974662005499, 80.4765625 88.5 M80.4765625 -88.5 C80.4765625 -21.345021417878627, 80.4765625 45.809957164242746, 80.4765625 88.5 M80.4765625 88.5 C30.7522905485335 88.5, -18.971981402932997 88.5, -80.4765625 88.5 M80.4765625 88.5 C27.11414308741302 88.5, -26.24827632517396 88.5, -80.4765625 88.5 M-80.4765625 88.5 C-80.4765625 18.675241828340106, -80.4765625 -51.14951634331979, -80.4765625 -88.5 M-80.4765625 88.5 C-80.4765625 34.50202702796897, -80.4765625 -19.495945944062058, -80.4765625 -88.5"/></g><g transform="translate(0, -64.5)" class="annotation-group text"/><g transform="translate(-13.609375, -64.5)" class="label-group text"><g transform="translate(0,-10.5)" style="font-weight: bolder" class="label"><foreignObject height="21" width="27.21875"><div style="display: table-cell; white-space: normal; line-height: 1.5; max-width: 78px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="" class="nodeLabel markdown-node-label"><p>App</p></span></div></foreignObject></g></g><g transform="translate(-68.4765625, -19.5)" class="members-group text"><g transform="translate(0,-10.5)" style="" class="label"><foreignObject height="21" width="115.5625"><div style="display: table-cell; white-space: normal; line-height: 1.5; max-width: 171px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="" class="nodeLabel markdown-node-label"><p>+express: Express</p></span></div></foreignObject></g></g><g transform="translate(-68.4765625, 25.5)" class="methods-group text"><g transform="translate(0,-10.5)" style="" class="label"><foreignObject height="21" width="44.734375"><div style="display: table-cell; white-space: normal; line-height: 1.5; max-width: 102px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="" class="nodeLabel markdown-node-label"><p>+start()</p></span></div></foreignObject></g><g transform="translate(0,10.5)" style="" class="label"><foreignObject height="21" width="123.34375"><div style="display: table-cell; white-space: normal; line-height: 1.5; max-width: 185px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="" class="nodeLabel markdown-node-label"><p>+setupMiddleware()</p></span></div></foreignObject></g><g transform="translate(0,31.5)" style="" class="label"><foreignObject height="21" width="96.109375"><div style="display: table-cell; white-space: normal; line-height: 1.5; max-width: 152px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="" class="nodeLabel markdown-node-label"><p>+setupRoutes()</p></span></div></foreignObject></g></g><g style="" class="divider"><path style="" fill="none" stroke-width="1.3" stroke="#000000" d="M-80.4765625 -43.5 C-41.04009355169525 -43.49975498165104, -1.6036246033905002 -43.49950996330207, 80.4765625 -43.499 M-80.4765625 -43.5 C-23.125327924607525 -43.49964367740871, 34.22590665078495 -43.49928735481743, 80.4765625 -43.499"/></g><g style="" class="divider"><path style="" fill="none" stroke-width="1.3" stroke="#000000" d="M-80.4765625 1.5 C-17.96172926528253 1.5003884039731115, 44.55310396943494 1.500776807946223, 80.4765625 1.501 M-80.4765625 1.5 C-16.97021789347403 1.500394564222388, 46.53612671305194 1.5007891284447756, 80.4765625 1.501"/></g></g><g transform="translate(575.38671875, 417)" data-look="neo" data-et="node" data-node="true" data-id="Router" id="classId-Router-1" class="node default"><g class="basic label-container outer-path"><path style="" fill="#ffffff" stroke-width="0" stroke="none" d="M-84.5625 -78 L84.5625 -78 L84.5625 78 L-84.5625 78"/><path style="" fill="none" stroke-width="1.3" stroke="#000000" d="M-84.5625 -78 C-24.543954673429305 -78, 35.47459065314139 -78, 84.5625 -78 M-84.5625 -78 C-44.69690935779459 -78, -4.831318715589177 -78, 84.5625 -78 M84.5625 -78 C84.5625 -17.215418725098694, 84.5625 43.56916254980261, 84.5625 78 M84.5625 -78 C84.5625 -40.55003908559152, 84.5625 -3.1000781711830427, 84.5625 78 M84.5625 78 C34.47009306395787 78, -15.622313872084263 78, -84.5625 78 M84.5625 78 C32.37004851497897 78, -19.822402970042063 78, -84.5625 78 M-84.5625 78 C-84.5625 24.66954866693206, -84.5625 -28.660902666135883, -84.5625 -78 M-84.5625 78 C-84.5625 29.009849707036594, -84.5625 -19.980300585926813, -84.5625 -78"/></g><g transform="translate(0, -54)" class="annotation-group text"/><g transform="translate(-22.5625, -54)" class="label-group text"><g transform="translate(0,-10.5)" style="font-weight: bolder" class="label"><foreignObject height="21" width="45.125"><div style="display: table-cell; white-space: normal; line-height: 1.5; max-width: 94px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="" class="nodeLabel markdown-node-label"><p>Router</p></span></div></foreignObject></g></g><g transform="translate(-72.5625, -9)" class="members-group text"><g transform="translate(0,-10.5)" style="" class="label"><foreignObject height="21" width="100.015625"><div style="display: table-cell; white-space: normal; line-height: 1.5; max-width: 160px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="" class="nodeLabel markdown-node-label"><p>+routes: Route[]</p></span></div></foreignObject></g></g><g transform="translate(-72.5625, 36)" class="methods-group text"><g transform="translate(0,-10.5)" style="" class="label"><foreignObject height="21" width="114.03125"><div style="display: table-cell; white-space: normal; line-height: 1.5; max-width: 173px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="" class="nodeLabel markdown-node-label"><p>+setupEndpoints()</p></span></div></foreignObject></g><g transform="translate(0,10.5)" style="" class="label"><foreignObject height="21" width="122.5625"><div style="display: table-cell; white-space: normal; line-height: 1.5; max-width: 187px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="" class="nodeLabel markdown-node-label"><p>+applyMiddleware()</p></span></div></foreignObject></g></g><g style="" class="divider"><path style="" fill="none" stroke-width="1.3" stroke="#000000" d="M-84.5625 -33 C-46.915773646780934 -32.99977740294839, -9.269047293561869 -32.999554805896786, 84.5625 -32.999 M-84.5625 -33 C-33.87320511088309 -32.99970028502653, 16.816089778233817 -32.99940057005305, 84.5625 -32.999"/></g><g style="" class="divider"><path style="" fill="none" stroke-width="1.3" stroke="#000000" d="M-84.5625 12 C-27.946179217865527 12.000334760211572, 28.670141564268945 12.000669520423143, 84.5625 12.001 M-84.5625 12 C-34.48411577808566 12.000296102789191, 15.594268443828682 12.000592205578382, 84.5625 12.001"/></g></g><g transform="translate(476.69140625, 657.5)" data-look="neo" data-et="node" data-node="true" data-id="Controller" id="classId-Controller-2" class="node default"><g class="basic label-container outer-path"><path style="" fill="#ffffff" stroke-width="0" stroke="none" d="M-88.83203125 -91.5 L88.83203125 -91.5 L88.83203125 91.5 L-88.83203125 91.5"/><path style="" fill="none" stroke-width="1.3" stroke="#000000" d="M-88.83203125 -91.5 C-34.11141536545302 -91.5, 20.60920051909396 -91.5, 88.83203125 -91.5 M-88.83203125 -91.5 C-26.78245755609619 -91.5, 35.26711613780762 -91.5, 88.83203125 -91.5 M88.83203125 -91.5 C88.83203125 -43.47760022656217, 88.83203125 4.544799546875666, 88.83203125 91.5 M88.83203125 -91.5 C88.83203125 -53.635009130993076, 88.83203125 -15.770018261986152, 88.83203125 91.5 M88.83203125 91.5 C46.016597462781995 91.5, 3.20116367556399 91.5, -88.83203125 91.5 M88.83203125 91.5 C45.885969413514616 91.5, 2.9399075770292313 91.5, -88.83203125 91.5 M-88.83203125 91.5 C-88.83203125 44.50505664592954, -88.83203125 -2.489886708140915, -88.83203125 -91.5 M-88.83203125 91.5 C-88.83203125 42.72627215636431, -88.83203125 -6.0474556872713805, -88.83203125 -91.5"/></g><g transform="translate(0, -67.5)" class="annotation-group text"/><g transform="translate(-33.4453125, -67.5)" class="label-group text"><g transform="translate(0,-10.5)" style="font-weight: bolder" class="label"><foreignObject height="21" width="66.890625"><div style="display: table-cell; white-space: normal; line-height: 1.5; max-width: 116px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="" class="nodeLabel markdown-node-label"><p>Controller</p></span></div></foreignObject></g></g><g transform="translate(-76.83203125, -22.5)" class="members-group text"/><g transform="translate(-76.83203125, 1.5)" class="methods-group text"><g transform="translate(0,-10.5)" style="" class="label"><foreignObject height="21" width="111.6875"><div style="display: table-cell; white-space: normal; line-height: 1.5; max-width: 168px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="" class="nodeLabel markdown-node-label"><p>+handleRequest()</p></span></div></foreignObject></g><g transform="translate(0,10.5)" style="" class="label"><foreignObject height="21" width="96.09375"><div style="display: table-cell; white-space: normal; line-height: 1.5; max-width: 152px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="" class="nodeLabel markdown-node-label"><p>+processData()</p></span></div></foreignObject></g><g transform="translate(0,31.5)" style="" class="label"><foreignObject height="21" width="76.640625"><div style="display: table-cell; white-space: normal; line-height: 1.5; max-width: 139px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="" class="nodeLabel markdown-node-label"><p>+callModel()</p></span></div></foreignObject></g><g transform="translate(0,52.5)" style="" class="label"><foreignObject height="21" width="120.21875"><div style="display: table-cell; white-space: normal; line-height: 1.5; max-width: 178px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="" class="nodeLabel markdown-node-label"><p>+formatResponse()</p></span></div></foreignObject></g></g><g style="" class="divider"><path style="" fill="none" stroke-width="1.3" stroke="#000000" d="M-88.83203125 -46.5 C-45.8462782769191 -46.499758050376826, -2.8605253038382017 -46.49951610075366, 88.83203125 -46.499 M-88.83203125 -46.5 C-25.579294793025944 -46.499643975626995, 37.67344166394811 -46.49928795125399, 88.83203125 -46.499"/></g><g style="" class="divider"><path style="" fill="none" stroke-width="1.3" stroke="#000000" d="M-88.83203125 -22.5 C-29.64526071155177 -22.499666861324087, 29.54150982689646 -22.499333722648174, 88.83203125 -22.499 M-88.83203125 -22.5 C-30.024773385780087 -22.49966899744925, 28.782484478439827 -22.499337994898497, 88.83203125 -22.499"/></g></g><g transform="translate(307.732421875, 911.5)" data-look="neo" data-et="node" data-node="true" data-id="Model" id="classId-Model-3" class="node default"><g class="basic label-container outer-path"><path style="" fill="#ffffff" stroke-width="0" stroke="none" d="M-80.40234375 -91.5 L80.40234375 -91.5 L80.40234375 91.5 L-80.40234375 91.5"/><path style="" fill="none" stroke-width="1.3" stroke="#000000" d="M-80.40234375 -91.5 C-38.694097470141514 -91.5, 3.0141488097169713 -91.5, 80.40234375 -91.5 M-80.40234375 -91.5 C-32.47407194321966 -91.5, 15.454199863560675 -91.5, 80.40234375 -91.5 M80.40234375 -91.5 C80.40234375 -27.55163628002289, 80.40234375 36.39672743995422, 80.40234375 91.5 M80.40234375 -91.5 C80.40234375 -45.43165937818543, 80.40234375 0.6366812436291411, 80.40234375 91.5 M80.40234375 91.5 C36.46588881606542 91.5, -7.470566117869154 91.5, -80.40234375 91.5 M80.40234375 91.5 C47.59107048244857 91.5, 14.779797214897144 91.5, -80.40234375 91.5 M-80.40234375 91.5 C-80.40234375 24.56815002206598, -80.40234375 -42.36369995586804, -80.40234375 -91.5 M-80.40234375 91.5 C-80.40234375 41.77971910995024, -80.40234375 -7.9405617800995145, -80.40234375 -91.5"/></g><g transform="translate(0, -67.5)" class="annotation-group text"/><g transform="translate(-20.2265625, -67.5)" class="label-group text"><g transform="translate(0,-10.5)" style="font-weight: bolder" class="label"><foreignObject height="21" width="40.453125"><div style="display: table-cell; white-space: normal; line-height: 1.5; max-width: 92px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="" class="nodeLabel markdown-node-label"><p>Model</p></span></div></foreignObject></g></g><g transform="translate(-68.40234375, -22.5)" class="members-group text"/><g transform="translate(-68.40234375, 1.5)" class="methods-group text"><g transform="translate(0,-10.5)" style="" class="label"><foreignObject height="21" width="104.671875"><div style="display: table-cell; white-space: normal; line-height: 1.5; max-width: 163px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="" class="nodeLabel markdown-node-label"><p>+executeQuery()</p></span></div></foreignObject></g><g transform="translate(0,10.5)" style="" class="label"><foreignObject height="21" width="116.578125"><div style="display: table-cell; white-space: normal; line-height: 1.5; max-width: 175px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="" class="nodeLabel markdown-node-label"><p>+addTimestamps()</p></span></div></foreignObject></g><g transform="translate(0,31.5)" style="" class="label"><foreignObject height="21" width="82.09375"><div style="display: table-cell; white-space: normal; line-height: 1.5; max-width: 143px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="" class="nodeLabel markdown-node-label"><p>+addUUIDs()</p></span></div></foreignObject></g><g transform="translate(0,52.5)" style="" class="label"><foreignObject height="21" width="113.203125"><div style="display: table-cell; white-space: normal; line-height: 1.5; max-width: 169px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="" class="nodeLabel markdown-node-label"><p>+processResults()</p></span></div></foreignObject></g></g><g style="" class="divider"><path style="" fill="none" stroke-width="1.3" stroke="#000000" d="M-80.40234375 -46.5 C-21.954245515021796 -46.499636527397655, 36.49385271995641 -46.49927305479531, 80.40234375 -46.499 M-80.40234375 -46.5 C-20.35571877291119 -46.49962658660073, 39.69090620417762 -46.499253173201474, 80.40234375 -46.499"/></g><g style="" class="divider"><path style="" fill="none" stroke-width="1.3" stroke="#000000" d="M-80.40234375 -22.5 C-42.451725567077574 -22.499763995572685, -4.501107384155148 -22.49952799114537, 80.40234375 -22.499 M-80.40234375 -22.5 C-44.38063166226976 -22.49977599090768, -8.358919574539513 -22.499551981815358, 80.40234375 -22.499"/></g></g><g transform="translate(124.9375, 1176)" data-look="neo" data-et="node" data-node="true" data-id="Repository" id="classId-Repository-4" class="node default"><g class="basic label-container outer-path"><path style="" fill="#ffffff" stroke-width="0" stroke="none" d="M-79.5078125 -102 L79.5078125 -102 L79.5078125 102 L-79.5078125 102"/><path style="" fill="none" stroke-width="1.3" stroke="#000000" d="M-79.5078125 -102 C-42.803527689412945 -102, -6.099242878825891 -102, 79.5078125 -102 M-79.5078125 -102 C-24.595690836049293 -102, 30.316430827901414 -102, 79.5078125 -102 M79.5078125 -102 C79.5078125 -22.884552135700773, 79.5078125 56.230895728598455, 79.5078125 102 M79.5078125 -102 C79.5078125 -58.978180279953925, 79.5078125 -15.95636055990785, 79.5078125 102 M79.5078125 102 C19.945404821174087 102, -39.617002857651826 102, -79.5078125 102 M79.5078125 102 C21.0526438206872 102, -37.4025248586256 102, -79.5078125 102 M-79.5078125 102 C-79.5078125 45.482229326745426, -79.5078125 -11.035541346509149, -79.5078125 -102 M-79.5078125 102 C-79.5078125 21.38431006953705, -79.5078125 -59.2313798609259, -79.5078125 -102"/></g><g transform="translate(0, -78)" class="annotation-group text"/><g transform="translate(-36.5625, -78)" class="label-group text"><g transform="translate(0,-10.5)" style="font-weight: bolder" class="label"><foreignObject height="21" width="73.125"><div style="display: table-cell; white-space: normal; line-height: 1.5; max-width: 120px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="" class="nodeLabel markdown-node-label"><p>Repository</p></span></div></foreignObject></g></g><g transform="translate(-67.5078125, -33)" class="members-group text"/><g transform="translate(-67.5078125, -9)" class="methods-group text"><g transform="translate(0,-10.5)" style="" class="label"><foreignObject height="21" width="85.203125"><div style="display: table-cell; white-space: normal; line-height: 1.5; max-width: 147px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="" class="nodeLabel markdown-node-label"><p>+buildQuery()</p></span></div></foreignObject></g><g transform="translate(0,10.5)" style="" class="label"><foreignObject height="21" width="75.09375"><div style="display: table-cell; white-space: normal; line-height: 1.5; max-width: 134px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="" class="nodeLabel markdown-node-label"><p>+getQuery()</p></span></div></foreignObject></g><g transform="translate(0,31.5)" style="" class="label"><foreignObject height="21" width="89.859375"><div style="display: table-cell; white-space: normal; line-height: 1.5; max-width: 150px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="" class="nodeLabel markdown-node-label"><p>+insertQuery()</p></span></div></foreignObject></g><g transform="translate(0,52.5)" style="" class="label"><foreignObject height="21" width="98.453125"><div style="display: table-cell; white-space: normal; line-height: 1.5; max-width: 157px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="" class="nodeLabel markdown-node-label"><p>+updateQuery()</p></span></div></foreignObject></g><g transform="translate(0,73.5)" style="" class="label"><foreignObject height="21" width="93.78125"><div style="display: table-cell; white-space: normal; line-height: 1.5; max-width: 152px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="" class="nodeLabel markdown-node-label"><p>+deleteQuery()</p></span></div></foreignObject></g></g><g style="" class="divider"><path style="" fill="none" stroke-width="1.3" stroke="#000000" d="M-79.5078125 -57 C-29.10926274662124 -56.99968305913489, 21.28928700675752 -56.99936611826978, 79.5078125 -56.999 M-79.5078125 -57 C-17.96066714512243 -56.99961294907117, 43.58647820975514 -56.99922589814234, 79.5078125 -56.999"/></g><g style="" class="divider"><path style="" fill="none" stroke-width="1.3" stroke="#000000" d="M-79.5078125 -33 C-21.62970672248585 -32.99963602252434, 36.2483990550283 -32.999272045048684, 79.5078125 -32.999 M-79.5078125 -33 C-43.17985277278712 -32.99977154471627, -6.8518930455742435 -32.999543089432535, 79.5078125 -32.999"/></g></g><g transform="translate(519.1328125, 1176)" data-look="neo" data-et="node" data-node="true" data-id="Adapter" id="classId-Adapter-5" class="node default"><g class="basic label-container outer-path"><path style="" fill="#ffffff" stroke-width="0" stroke="none" d="M-102.4765625 -88.5 L102.4765625 -88.5 L102.4765625 88.5 L-102.4765625 88.5"/><path style="" fill="none" stroke-width="1.3" stroke="#000000" d="M-102.4765625 -88.5 C-37.21629983091418 -88.5, 28.043962838171637 -88.5, 102.4765625 -88.5 M-102.4765625 -88.5 C-54.22230398302283 -88.5, -5.968045466045666 -88.5, 102.4765625 -88.5 M102.4765625 -88.5 C102.4765625 -40.020913746341726, 102.4765625 8.458172507316547, 102.4765625 88.5 M102.4765625 -88.5 C102.4765625 -41.53575230800045, 102.4765625 5.428495383999106, 102.4765625 88.5 M102.4765625 88.5 C42.56965429715885 88.5, -17.337253905682303 88.5, -102.4765625 88.5 M102.4765625 88.5 C36.6230189588604 88.5, -29.2305245822792 88.5, -102.4765625 88.5 M-102.4765625 88.5 C-102.4765625 49.37681477310881, -102.4765625 10.253629546217624, -102.4765625 -88.5 M-102.4765625 88.5 C-102.4765625 46.579896094228744, -102.4765625 4.659792188457487, -102.4765625 -88.5"/></g><g transform="translate(0, -64.5)" class="annotation-group text"/><g transform="translate(-26.453125, -64.5)" class="label-group text"><g transform="translate(0,-10.5)" style="font-weight: bolder" class="label"><foreignObject height="21" width="52.90625"><div style="display: table-cell; white-space: normal; line-height: 1.5; max-width: 102px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="" class="nodeLabel markdown-node-label"><p>Adapter</p></span></div></foreignObject></g></g><g transform="translate(-90.4765625, -19.5)" class="members-group text"><g transform="translate(0,-10.5)" style="" class="label"><foreignObject height="21" width="154.5"><div style="display: table-cell; white-space: normal; line-height: 1.5; max-width: 216px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="" class="nodeLabel markdown-node-label"><p>+connection: Connection</p></span></div></foreignObject></g></g><g transform="translate(-90.4765625, 25.5)" class="methods-group text"><g transform="translate(0,-10.5)" style="" class="label"><foreignObject height="21" width="44.734375"><div style="display: table-cell; white-space: normal; line-height: 1.5; max-width: 102px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="" class="nodeLabel markdown-node-label"><p>+start()</p></span></div></foreignObject></g><g transform="translate(0,10.5)" style="" class="label"><foreignObject height="21" width="66.546875"><div style="display: table-cell; white-space: normal; line-height: 1.5; max-width: 123px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="" class="nodeLabel markdown-node-label"><p>+execute()</p></span></div></foreignObject></g><g transform="translate(0,31.5)" style="" class="label"><foreignObject height="21" width="40.859375"><div style="display: table-cell; white-space: normal; line-height: 1.5; max-width: 97px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="" class="nodeLabel markdown-node-label"><p>+end()</p></span></div></foreignObject></g></g><g style="" class="divider"><path style="" fill="none" stroke-width="1.3" stroke="#000000" d="M-102.4765625 -43.5 C-43.45623192980225 -43.49971203010166, 15.5640986403955 -43.499424060203324, 102.4765625 -43.499 M-102.4765625 -43.5 C-53.00060454503355 -43.49975859866516, -3.524646590067107 -43.49951719733032, 102.4765625 -43.499"/></g><g style="" class="divider"><path style="" fill="none" stroke-width="1.3" stroke="#000000" d="M-102.4765625 1.5 C-26.45589397087751 1.500370917342827, 49.56477455824498 1.5007418346856543, 102.4765625 1.501 M-102.4765625 1.5 C-53.086246233738976 1.5002409834749593, -3.6959299674779515 1.5004819669499185, 102.4765625 1.501"/></g></g><g transform="translate(678.8359375, 24.5)" data-look="neo" data-et="node" data-node="true" data-id="note0" id="note0" class="node undefined"><g class="basic label-container outer-path"><path style="fill:#fff5ad !important;stroke:hsl(52.6829268293, 60%, 73.9215686275%) !important" fill="#fff5ad" stroke-width="0" stroke="none" d="M-95.1171875 -16.5 L95.1171875 -16.5 L95.1171875 16.5 L-95.1171875 16.5"/><path style="fill:#fff5ad !important;stroke:hsl(52.6829268293, 60%, 73.9215686275%) !important" fill="none" stroke-width="1.3" stroke="hsl(52.6829268293, 60%, 73.9215686275%)" d="M-95.1171875 -16.5 C-23.95781471203098 -16.5, 47.20155807593804 -16.5, 95.1171875 -16.5 M-95.1171875 -16.5 C-34.27509280544319 -16.5, 26.567001889113627 -16.5, 95.1171875 -16.5 M95.1171875 -16.5 C95.1171875 -5.231097976133613, 95.1171875 6.037804047732774, 95.1171875 16.5 M95.1171875 -16.5 C95.1171875 -8.558875722792301, 95.1171875 -0.6177514455846023, 95.1171875 16.5 M95.1171875 16.5 C50.2800202054471 16.5, 5.442852910894203 16.5, -95.1171875 16.5 M95.1171875 16.5 C39.82576946192765 16.5, -15.465648576144702 16.5, -95.1171875 16.5 M-95.1171875 16.5 C-95.1171875 8.453826995117131, -95.1171875 0.4076539902342624, -95.1171875 -16.5 M-95.1171875 16.5 C-95.1171875 4.794619480063471, -95.1171875 -6.910761039873059, -95.1171875 -16.5"/></g><g transform="translate(-89.1171875, -10.5)" style="text-align:left !important;white-space:nowrap !important" class="label noteLabel"><rect/><foreignObject height="21" width="178.234375"><div xmlns="http://www.w3.org/1999/xhtml" style="text-align: center; white-space: normal; display: table-cell; line-height: 1.5; max-width: 200px;"><span class="nodeLabel" style="text-align:left !important;white-space:nowrap !important"><p>Punto de entrada - Main App</p></span></div></foreignObject></g></g><g transform="translate(471.9375, 179.5)" data-look="neo" data-et="node" data-node="true" data-id="note1" id="note1" class="node undefined"><g class="basic label-container outer-path"><path style="fill:#fff5ad !important;stroke:hsl(52.6829268293, 60%, 73.9215686275%) !important" fill="#fff5ad" stroke-width="0" stroke="none" d="M-76.421875 -16.5 L76.421875 -16.5 L76.421875 16.5 L-76.421875 16.5"/><path style="fill:#fff5ad !important;stroke:hsl(52.6829268293, 60%, 73.9215686275%) !important" fill="none" stroke-width="1.3" stroke="hsl(52.6829268293, 60%, 73.9215686275%)" d="M-76.421875 -16.5 C-35.75306816841435 -16.5, 4.915738663171297 -16.5, 76.421875 -16.5 M-76.421875 -16.5 C-22.78123373299232 -16.5, 30.85940753401536 -16.5, 76.421875 -16.5 M76.421875 -16.5 C76.421875 -3.703633867547694, 76.421875 9.092732264904612, 76.421875 16.5 M76.421875 -16.5 C76.421875 -5.724400724884701, 76.421875 5.051198550230598, 76.421875 16.5 M76.421875 16.5 C31.97473799069394 16.5, -12.472399018612123 16.5, -76.421875 16.5 M76.421875 16.5 C40.806523336788274 16.5, 5.191171673576548 16.5, -76.421875 16.5 M-76.421875 16.5 C-76.421875 3.836874518635721, -76.421875 -8.826250962728558, -76.421875 -16.5 M-76.421875 16.5 C-76.421875 5.200858969563198, -76.421875 -6.098282060873604, -76.421875 -16.5"/></g><g transform="translate(-70.421875, -10.5)" style="text-align:left !important;white-space:nowrap !important" class="label noteLabel"><rect/><foreignObject height="21" width="140.84375"><div xmlns="http://www.w3.org/1999/xhtml" style="text-align: center; white-space: normal; display: table-cell; line-height: 1.5; max-width: 200px;"><span class="nodeLabel" style="text-align:left !important;white-space:nowrap !important"><p>Manejo de rutas HTTP</p></span></div></foreignObject></g></g><g transform="translate(377.99609375, 417)" data-look="neo" data-et="node" data-node="true" data-id="note2" id="note2" class="node undefined"><g class="basic label-container outer-path"><path style="fill:#fff5ad !important;stroke:hsl(52.6829268293, 60%, 73.9215686275%) !important" fill="#fff5ad" stroke-width="0" stroke="none" d="M-62.828125 -16.5 L62.828125 -16.5 L62.828125 16.5 L-62.828125 16.5"/><path style="fill:#fff5ad !important;stroke:hsl(52.6829268293, 60%, 73.9215686275%) !important" fill="none" stroke-width="1.3" stroke="hsl(52.6829268293, 60%, 73.9215686275%)" d="M-62.828125 -16.5 C-29.351916196840662 -16.5, 4.124292606318676 -16.5, 62.828125 -16.5 M-62.828125 -16.5 C-30.682344654408226 -16.5, 1.4634356911835482 -16.5, 62.828125 -16.5 M62.828125 -16.5 C62.828125 -3.368904407202079, 62.828125 9.762191185595842, 62.828125 16.5 M62.828125 -16.5 C62.828125 -9.102846990257044, 62.828125 -1.7056939805140878, 62.828125 16.5 M62.828125 16.5 C23.0937902569501 16.5, -16.6405444860998 16.5, -62.828125 16.5 M62.828125 16.5 C17.61860593532125 16.5, -27.590913129357503 16.5, -62.828125 16.5 M-62.828125 16.5 C-62.828125 9.039234720727412, -62.828125 1.5784694414548248, -62.828125 -16.5 M-62.828125 16.5 C-62.828125 9.465755654231035, -62.828125 2.4315113084620688, -62.828125 -16.5"/></g><g transform="translate(-56.828125, -10.5)" style="text-align:left !important;white-space:nowrap !important" class="label noteLabel"><rect/><foreignObject height="21" width="113.65625"><div xmlns="http://www.w3.org/1999/xhtml" style="text-align: center; white-space: normal; display: table-cell; line-height: 1.5; max-width: 200px;"><span class="nodeLabel" style="text-align:left !important;white-space:nowrap !important"><p>Lógica de negocio</p></span></div></foreignObject></g></g><g transform="translate(217.0625, 657.5)" data-look="neo" data-et="node" data-node="true" data-id="note3" id="note3" class="node undefined"><g class="basic label-container outer-path"><path style="fill:#fff5ad !important;stroke:hsl(52.6829268293, 60%, 73.9215686275%) !important" fill="#fff5ad" stroke-width="0" stroke="none" d="M-120.796875 -16.5 L120.796875 -16.5 L120.796875 16.5 L-120.796875 16.5"/><path style="fill:#fff5ad !important;stroke:hsl(52.6829268293, 60%, 73.9215686275%) !important" fill="none" stroke-width="1.3" stroke="hsl(52.6829268293, 60%, 73.9215686275%)" d="M-120.796875 -16.5 C-46.611779935840474 -16.5, 27.573315128319052 -16.5, 120.796875 -16.5 M-120.796875 -16.5 C-57.85103640513654 -16.5, 5.09480218972692 -16.5, 120.796875 -16.5 M120.796875 -16.5 C120.796875 -7.009941560801392, 120.796875 2.480116878397215, 120.796875 16.5 M120.796875 -16.5 C120.796875 -7.554693556171971, 120.796875 1.390612887656058, 120.796875 16.5 M120.796875 16.5 C61.37139087725036 16.5, 1.9459067545007258 16.5, -120.796875 16.5 M120.796875 16.5 C63.74207559113562 16.5, 6.687276182271233 16.5, -120.796875 16.5 M-120.796875 16.5 C-120.796875 8.369083747277585, -120.796875 0.23816749455517083, -120.796875 -16.5 M-120.796875 16.5 C-120.796875 4.826018706612157, -120.796875 -6.847962586775687, -120.796875 -16.5"/></g><g transform="translate(-114.796875, -10.5)" style="text-align:left !important;white-space:nowrap !important" class="label noteLabel"><rect/><foreignObject height="21" width="229.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="text-align: center; white-space: break-spaces; display: table; line-height: 1.5; max-width: 200px; width: 200px;"><span class="nodeLabel" style="text-align:left !important;white-space:nowrap !important"><p>Procesamiento de datos con Adapter</p></span></div></foreignObject></g></g><g transform="translate(89.4921875, 911.5)" data-look="neo" data-et="node" data-node="true" data-id="note4" id="note4" class="node undefined"><g class="basic label-container outer-path"><path style="fill:#fff5ad !important;stroke:hsl(52.6829268293, 60%, 73.9215686275%) !important" fill="#fff5ad" stroke-width="0" stroke="none" d="M-81.4921875 -16.5 L81.4921875 -16.5 L81.4921875 16.5 L-81.4921875 16.5"/><path style="fill:#fff5ad !important;stroke:hsl(52.6829268293, 60%, 73.9215686275%) !important" fill="none" stroke-width="1.3" stroke="hsl(52.6829268293, 60%, 73.9215686275%)" d="M-81.4921875 -16.5 C-32.122222628856456 -16.5, 17.24774224228709 -16.5, 81.4921875 -16.5 M-81.4921875 -16.5 C-34.22427983521853 -16.5, 13.043627829562936 -16.5, 81.4921875 -16.5 M81.4921875 -16.5 C81.4921875 -9.538125375624062, 81.4921875 -2.576250751248123, 81.4921875 16.5 M81.4921875 -16.5 C81.4921875 -3.9942309360798713, 81.4921875 8.511538127840257, 81.4921875 16.5 M81.4921875 16.5 C44.341094342833955 16.5, 7.19000118566791 16.5, -81.4921875 16.5 M81.4921875 16.5 C32.643399901062004 16.5, -16.20538769787599 16.5, -81.4921875 16.5 M-81.4921875 16.5 C-81.4921875 5.994391933477484, -81.4921875 -4.511216133045032, -81.4921875 -16.5 M-81.4921875 16.5 C-81.4921875 5.4623808935828375, -81.4921875 -5.575238212834325, -81.4921875 -16.5"/></g><g transform="translate(-75.4921875, -10.5)" style="text-align:left !important;white-space:nowrap !important" class="label noteLabel"><rect/><foreignObject height="21" width="150.984375"><div xmlns="http://www.w3.org/1999/xhtml" style="text-align: center; white-space: normal; display: table-cell; line-height: 1.5; max-width: 200px;"><span class="nodeLabel" style="text-align:left !important;white-space:nowrap !important"><p>Construcción de queries</p></span></div></foreignObject></g></g><g transform="translate(525.478515625, 911.5)" data-look="neo" data-et="node" data-node="true" data-id="note5" id="note5" class="node undefined"><g class="basic label-container outer-path"><path style="fill:#fff5ad !important;stroke:hsl(52.6829268293, 60%, 73.9215686275%) !important" fill="#fff5ad" stroke-width="0" stroke="none" d="M-87.34375 -16.5 L87.34375 -16.5 L87.34375 16.5 L-87.34375 16.5"/><path style="fill:#fff5ad !important;stroke:hsl(52.6829268293, 60%, 73.9215686275%) !important" fill="none" stroke-width="1.3" stroke="hsl(52.6829268293, 60%, 73.9215686275%)" d="M-87.34375 -16.5 C-28.526448247798122 -16.5, 30.290853504403756 -16.5, 87.34375 -16.5 M-87.34375 -16.5 C-27.091885851024706 -16.5, 33.15997829795059 -16.5, 87.34375 -16.5 M87.34375 -16.5 C87.34375 -5.16371252815004, 87.34375 6.172574943699921, 87.34375 16.5 M87.34375 -16.5 C87.34375 -6.835540910745998, 87.34375 2.8289181785080046, 87.34375 16.5 M87.34375 16.5 C19.83602254359853 16.5, -47.67170491280294 16.5, -87.34375 16.5 M87.34375 16.5 C28.917561827328633 16.5, -29.508626345342734 16.5, -87.34375 16.5 M-87.34375 16.5 C-87.34375 4.881723253065514, -87.34375 -6.736553493868971, -87.34375 -16.5 M-87.34375 16.5 C-87.34375 7.439059963997204, -87.34375 -1.6218800720055917, -87.34375 -16.5"/></g><g transform="translate(-81.34375, -10.5)" style="text-align:left !important;white-space:nowrap !important" class="label noteLabel"><rect/><foreignObject height="21" width="162.6875"><div xmlns="http://www.w3.org/1999/xhtml" style="text-align: center; white-space: normal; display: table-cell; line-height: 1.5; max-width: 200px;"><span class="nodeLabel" style="text-align:left !important;white-space:nowrap !important"><p>Conexión a base de datos</p></span></div></foreignObject></g></g></g></g></g><defs><filter width="130%" height="130%" id="drop-shadow"><feDropShadow flood-color="#000000" flood-opacity="0.06" stdDeviation="0" dy="4" dx="4"/></filter></defs><defs><filter width="150%" height="150%" id="drop-shadow-small"><feDropShadow flood-color="#000000" flood-opacity="0.06" stdDeviation="0" dy="2" dx="2"/></filter></defs><linearGradient y2="0%" x2="100%" y1="0%" x1="0%" gradientUnits="objectBoundingBox" id="my-svg-gradient"><stop stop-opacity="1" stop-color="#0042eb" offset="0%"/><stop stop-opacity="1" stop-color="#eb0042" offset="100%"/></linearGradient></svg>