<mxfile host="app.diagrams.net" agent="rndc-diagramas.py" version="24.0.0"><diagram id="c2-contenedores" name="Nivel 2 · Contenedores"><mxGraphModel dx="1400" dy="900" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1654" pageHeight="1169" math="0" shadow="0"><root><mxCell id="0"/><mxCell id="1" parent="0"/><mxCell id="analista" value="&lt;b&gt;Analista de despachos&lt;/b&gt;&lt;div&gt;[Persona]&lt;/div&gt;" style="html=1;fontSize=11;dashed=0;whiteSpace=wrap;fillColor=#083F75;strokeColor=#06315C;fontColor=#ffffff;shape=mxgraph.c4.person2;align=center;metaEdit=1;points=[[0.5,0,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0]];resizable=0;" vertex="1" parent="1"><mxGeometry x="60" y="20" width="200" height="90" as="geometry"/></mxCell><mxCell id="generador" value="&lt;b&gt;Generador de carga&lt;/b&gt;&lt;div&gt;[Persona]&lt;/div&gt;" style="html=1;fontSize=11;dashed=0;whiteSpace=wrap;fillColor=#083F75;strokeColor=#06315C;fontColor=#ffffff;shape=mxgraph.c4.person2;align=center;metaEdit=1;points=[[0.5,0,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0]];resizable=0;" vertex="1" parent="1"><mxGeometry x="340" y="20" width="200" height="90" as="geometry"/></mxCell><mxCell id="plataforma" value="&lt;b&gt;Plataforma de despachos&lt;/b&gt;&lt;div&gt;[Sistema de software]&lt;/div&gt;" style="rounded=1;fontSize=11;whiteSpace=wrap;html=1;dashed=1;arcSize=20;fillColor=none;strokeColor=#666666;fontColor=#333333;labelBackgroundColor=none;align=left;verticalAlign=bottom;labelBorderColor=none;spacingTop=0;spacing=10;dashPattern=8 4;metaEdit=1;rotatable=0;perimeter=rectanglePerimeter;noLabel=0;labelPadding=0;allowArrows=0;connectable=0;expand=0;recursiveResize=0;editable=1;pointerEvents=0;absoluteArcSize=1;" vertex="1" parent="1"><mxGeometry x="40" y="160" width="1320" height="570" as="geometry"/></mxCell><mxCell id="web" value="&lt;b&gt;Web de despachos&lt;/b&gt;&lt;div&gt;[Contenedor · Angular]&lt;/div&gt;&lt;br&gt;&lt;div&gt;&lt;font style=&quot;font-size: 11px&quot;&gt;Órdenes, remesas, manifiestos, cumplidos y estado de cada reporte&lt;/font&gt;&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#23A2D9;fontColor=#ffffff;align=center;arcSize=10;strokeColor=#0E7DAD;metaEdit=1;resizable=0;" vertex="1" parent="plataforma"><mxGeometry x="20" y="40" width="200" height="120" as="geometry"/></mxCell><mxCell id="api" value="&lt;b&gt;API de despachos&lt;/b&gt;&lt;div&gt;[Contenedor · Quarkus REST]&lt;/div&gt;&lt;br&gt;&lt;div&gt;&lt;font style=&quot;font-size: 11px&quot;&gt;Comandos del ciclo de vida; escribe el evento en la outbox en la misma transacción&lt;/font&gt;&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#23A2D9;fontColor=#ffffff;align=center;arcSize=10;strokeColor=#0E7DAD;metaEdit=1;resizable=0;" vertex="1" parent="plataforma"><mxGeometry x="300" y="40" width="200" height="120" as="geometry"/></mxCell><mxCell id="pg" value="&lt;b&gt;PostgreSQL&lt;/b&gt;&lt;div&gt;[Contenedor · base de datos]&lt;/div&gt;&lt;br&gt;&lt;div&gt;&lt;font style=&quot;font-size: 11px&quot;&gt;Despachos, estado de cada reporte, idempotencia, outbox&lt;/font&gt;&lt;/div&gt;" style="shape=cylinder3;size=15;whiteSpace=wrap;html=1;boundedLbl=1;rounded=0;labelBackgroundColor=none;fillColor=#23A2D9;fontSize=12;fontColor=#ffffff;align=center;strokeColor=#0E7DAD;metaEdit=1;" vertex="1" parent="plataforma"><mxGeometry x="580" y="40" width="200" height="120" as="geometry"/></mxCell><mxCell id="keycloak" value="&lt;b&gt;Keycloak&lt;/b&gt;&lt;div&gt;[Contenedor · IAM]&lt;/div&gt;&lt;br&gt;&lt;div&gt;&lt;font style=&quot;font-size: 11px&quot;&gt;OAuth2/OIDC; reemplazó al LDAP&lt;/font&gt;&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#23A2D9;fontColor=#ffffff;align=center;arcSize=10;strokeColor=#0E7DAD;metaEdit=1;resizable=0;" vertex="1" parent="plataforma"><mxGeometry x="1120" y="40" width="180" height="120" as="geometry"/></mxCell><mxCell id="motor" value="&lt;b&gt;Motor de validación&lt;/b&gt;&lt;div&gt;[Contenedor · Camel]&lt;/div&gt;&lt;br&gt;&lt;div&gt;&lt;font style=&quot;font-size: 11px&quot;&gt;Reglas del Ministerio antes de salir: pesos, SOAT/RTM, flete mínimo, ICA, catálogos DANE&lt;/font&gt;&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#23A2D9;fontColor=#ffffff;align=center;arcSize=10;strokeColor=#0E7DAD;metaEdit=1;resizable=0;" vertex="1" parent="plataforma"><mxGeometry x="300" y="210" width="200" height="120" as="geometry"/></mxCell><mxCell id="kafka" value="&lt;b&gt;Kafka&lt;/b&gt;&lt;div&gt;[Contenedor · Confluent]&lt;/div&gt;&lt;br&gt;&lt;div&gt;&lt;font style=&quot;font-size: 11px&quot;&gt;despacho.orden · remesa · manifiesto · cumplido · rndc.resultado&lt;/font&gt;&lt;/div&gt;" style="shape=mxgraph.c4.container;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#23A2D9;fontColor=#ffffff;align=center;strokeColor=#0E7DAD;metaEdit=1;" vertex="1" parent="plataforma"><mxGeometry x="580" y="210" width="200" height="120" as="geometry"/></mxCell><mxCell id="integrador" value="&lt;b&gt;Integrador RNDC&lt;/b&gt;&lt;div&gt;[Contenedor · Camel + CXF]&lt;/div&gt;&lt;br&gt;&lt;div&gt;&lt;font style=&quot;font-size: 11px&quot;&gt;Mapea a XML, llama al servicio SOAP, interpreta ingresoid/errores, reintenta y difiere&lt;/font&gt;&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#23A2D9;fontColor=#ffffff;align=center;arcSize=10;strokeColor=#0E7DAD;metaEdit=1;resizable=0;" vertex="1" parent="plataforma"><mxGeometry x="860" y="210" width="200" height="120" as="geometry"/></mxCell><mxCell id="obs" value="&lt;b&gt;Observabilidad&lt;/b&gt;&lt;div&gt;[Contenedor · OTel · Grafana]&lt;/div&gt;&lt;br&gt;&lt;div&gt;&lt;font style=&quot;font-size: 11px&quot;&gt;Trazas por despacho, métricas de rechazo por código&lt;/font&gt;&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#23A2D9;fontColor=#ffffff;align=center;arcSize=10;strokeColor=#0E7DAD;metaEdit=1;resizable=0;" vertex="1" parent="plataforma"><mxGeometry x="1120" y="210" width="180" height="120" as="geometry"/></mxCell><mxCell id="debezium" value="&lt;b&gt;Debezium&lt;/b&gt;&lt;div&gt;[Contenedor · Kafka Connect]&lt;/div&gt;&lt;br&gt;&lt;div&gt;&lt;font style=&quot;font-size: 11px&quot;&gt;CDC desde Oracle: órdenes y maestros del legado&lt;/font&gt;&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#23A2D9;fontColor=#ffffff;align=center;arcSize=10;strokeColor=#0E7DAD;metaEdit=1;resizable=0;" vertex="1" parent="plataforma"><mxGeometry x="20" y="380" width="200" height="120" as="geometry"/></mxCell><mxCell id="conciliador" value="&lt;b&gt;Conciliador de fletes&lt;/b&gt;&lt;div&gt;[Contenedor · Kafka Streams]&lt;/div&gt;&lt;br&gt;&lt;div&gt;&lt;font style=&quot;font-size: 11px&quot;&gt;Flete pactado vs. SICE-TAC vs. factura; alimenta al ERP&lt;/font&gt;&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#23A2D9;fontColor=#ffffff;align=center;arcSize=10;strokeColor=#0E7DAD;metaEdit=1;resizable=0;" vertex="1" parent="plataforma"><mxGeometry x="580" y="380" width="200" height="120" as="geometry"/></mxCell><mxCell id="sim" value="&lt;b&gt;Simulador RNDC&lt;/b&gt;&lt;div&gt;[Contenedor · WireMock (pruebas)]&lt;/div&gt;&lt;br&gt;&lt;div&gt;&lt;font style=&quot;font-size: 11px&quot;&gt;Contratos de ejemplo: ingresoid, errores MAN/REM, latencia&lt;/font&gt;&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#23A2D9;fontColor=#ffffff;align=center;arcSize=10;strokeColor=#0E7DAD;metaEdit=1;resizable=0;" vertex="1" parent="plataforma"><mxGeometry x="860" y="380" width="200" height="120" as="geometry"/></mxCell><mxCell id="oracle" value="&lt;b&gt;Oracle legado&lt;/b&gt;&lt;div&gt;[Sistema existente]&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#8C8496;strokeColor=#736782;fontColor=#ffffff;align=center;arcSize=10;strokeWidth=1;metaEdit=1;resizable=0;" vertex="1" parent="1"><mxGeometry x="60" y="780" width="200" height="90" as="geometry"/></mxCell><mxCell id="sicetac" value="&lt;b&gt;SICE-TAC&lt;/b&gt;&lt;div&gt;[Sistema externo]&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#8C8496;strokeColor=#736782;fontColor=#ffffff;align=center;arcSize=10;strokeWidth=1;metaEdit=1;resizable=0;" vertex="1" parent="1"><mxGeometry x="620" y="780" width="200" height="90" as="geometry"/></mxCell><mxCell id="rndc" value="&lt;b&gt;RNDC · servicio web&lt;/b&gt;&lt;div&gt;[Sistema externo · SOAP/XML]&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#8C8496;strokeColor=#736782;fontColor=#ffffff;align=center;arcSize=10;strokeWidth=1;metaEdit=1;resizable=0;" vertex="1" parent="1"><mxGeometry x="900" y="780" width="200" height="90" as="geometry"/></mxCell><mxCell id="e0" value="&lt;div style=&quot;text-align: center&quot;&gt;&lt;b&gt;Usa&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: center&quot;&gt;[HTTPS]&lt;/div&gt;" style="endArrow=blockThin;html=1;fontSize=10;fontColor=#404040;strokeWidth=1;endFill=1;strokeColor=#828282;elbow=vertical;metaEdit=1;endSize=14;startSize=14;jumpStyle=arc;jumpSize=16;rounded=0;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="analista" target="web"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="e1" value="&lt;div style=&quot;text-align: center&quot;&gt;&lt;b&gt;Usa&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: center&quot;&gt;[HTTPS]&lt;/div&gt;" style="endArrow=blockThin;html=1;fontSize=10;fontColor=#404040;strokeWidth=1;endFill=1;strokeColor=#828282;elbow=vertical;metaEdit=1;endSize=14;startSize=14;jumpStyle=arc;jumpSize=16;rounded=0;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="generador" target="web"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="e2" value="&lt;div style=&quot;text-align: center&quot;&gt;&lt;b&gt;Llama&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: center&quot;&gt;[REST · OIDC]&lt;/div&gt;" style="endArrow=blockThin;html=1;fontSize=10;fontColor=#404040;strokeWidth=1;endFill=1;strokeColor=#828282;elbow=vertical;metaEdit=1;endSize=14;startSize=14;jumpStyle=arc;jumpSize=16;rounded=0;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="web" target="api"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="e3" value="&lt;div style=&quot;text-align: center&quot;&gt;&lt;b&gt;Valida tokens&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: center&quot;&gt;[OIDC]&lt;/div&gt;" style="endArrow=blockThin;html=1;fontSize=10;fontColor=#404040;strokeWidth=1;endFill=1;strokeColor=#828282;elbow=vertical;metaEdit=1;endSize=14;startSize=14;jumpStyle=arc;jumpSize=16;rounded=0;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="api" target="keycloak"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="440" y="180"/><mxPoint x="1250" y="180"/></Array></mxGeometry></mxCell><mxCell id="e4" value="&lt;div style=&quot;text-align: center&quot;&gt;&lt;b&gt;Lee y escribe; outbox&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: center&quot;&gt;[JDBC]&lt;/div&gt;" style="endArrow=blockThin;html=1;fontSize=10;fontColor=#404040;strokeWidth=1;endFill=1;strokeColor=#828282;elbow=vertical;metaEdit=1;endSize=14;startSize=14;jumpStyle=arc;jumpSize=16;rounded=0;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="api" target="pg"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="e5" value="&lt;div style=&quot;text-align: center&quot;&gt;&lt;b&gt;Outbox → eventos&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: center&quot;&gt;[Debezium outbox]&lt;/div&gt;" style="endArrow=blockThin;html=1;fontSize=10;fontColor=#404040;strokeWidth=1;endFill=1;strokeColor=#828282;elbow=vertical;metaEdit=1;endSize=14;startSize=14;jumpStyle=arc;jumpSize=16;rounded=0;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="pg" target="kafka"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="e6" value="&lt;div style=&quot;text-align: center&quot;&gt;&lt;b&gt;Eventos del despacho&lt;/b&gt;&lt;/div&gt;" style="endArrow=blockThin;html=1;fontSize=10;fontColor=#404040;strokeWidth=1;endFill=1;strokeColor=#828282;elbow=vertical;metaEdit=1;endSize=14;startSize=14;jumpStyle=arc;jumpSize=16;rounded=0;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="kafka" target="motor"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="620" y="410"/><mxPoint x="540" y="410"/></Array></mxGeometry></mxCell><mxCell id="e7" value="&lt;div style=&quot;text-align: center&quot;&gt;&lt;b&gt;Validado o rechazado&lt;/b&gt;&lt;/div&gt;" style="endArrow=blockThin;html=1;fontSize=10;fontColor=#404040;strokeWidth=1;endFill=1;strokeColor=#828282;elbow=vertical;metaEdit=1;endSize=14;startSize=14;jumpStyle=arc;jumpSize=16;rounded=0;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="motor" target="kafka"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="540" y="455"/><mxPoint x="620" y="455"/></Array></mxGeometry></mxCell><mxCell id="e8" value="&lt;div style=&quot;text-align: center&quot;&gt;&lt;b&gt;Remesa · manifiesto · cumplido validados&lt;/b&gt;&lt;/div&gt;" style="endArrow=blockThin;html=1;fontSize=10;fontColor=#404040;strokeWidth=1;endFill=1;strokeColor=#828282;elbow=vertical;metaEdit=1;endSize=14;startSize=14;jumpStyle=arc;jumpSize=16;rounded=0;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="kafka" target="integrador"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="e9" value="&lt;div style=&quot;text-align: center&quot;&gt;&lt;b&gt;rndc.resultado&lt;/b&gt;&lt;/div&gt;" style="endArrow=blockThin;html=1;fontSize=10;fontColor=#404040;strokeWidth=1;endFill=1;strokeColor=#828282;elbow=vertical;metaEdit=1;endSize=14;startSize=14;jumpStyle=arc;jumpSize=16;rounded=0;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="integrador" target="kafka"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="1000" y="490"/><mxPoint x="1000" y="510"/><mxPoint x="780" y="510"/><mxPoint x="780" y="490"/></Array></mxGeometry></mxCell><mxCell id="e10" value="&lt;div style=&quot;text-align: center&quot;&gt;&lt;b&gt;Reporta y consulta&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: center&quot;&gt;[SOAP/XML · HTTPS]&lt;/div&gt;" style="endArrow=blockThin;html=1;fontSize=10;fontColor=#404040;strokeWidth=1;endFill=1;strokeColor=#828282;elbow=vertical;metaEdit=1;endSize=14;startSize=14;jumpStyle=arc;jumpSize=16;rounded=0;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="integrador" target="rndc"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="1130" y="470"/><mxPoint x="1130" y="760"/><mxPoint x="1050" y="760"/></Array></mxGeometry></mxCell><mxCell id="e11" value="&lt;div style=&quot;text-align: center&quot;&gt;&lt;b&gt;En pruebas y demos&lt;/b&gt;&lt;/div&gt;" style="endArrow=blockThin;html=1;fontSize=10;fontColor=#404040;strokeWidth=1;endFill=1;strokeColor=#828282;elbow=vertical;metaEdit=1;endSize=14;startSize=14;jumpStyle=arc;jumpSize=16;rounded=0;edgeStyle=orthogonalEdgeStyle;dashed=1;" edge="1" parent="1" source="integrador" target="sim"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="e12" value="&lt;div style=&quot;text-align: center&quot;&gt;&lt;b&gt;Captura cambios&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: center&quot;&gt;[LogMiner]&lt;/div&gt;" style="endArrow=blockThin;html=1;fontSize=10;fontColor=#404040;strokeWidth=1;endFill=1;strokeColor=#828282;elbow=vertical;metaEdit=1;endSize=14;startSize=14;jumpStyle=arc;jumpSize=16;rounded=0;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="debezium" target="oracle"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="e13" value="&lt;div style=&quot;text-align: center&quot;&gt;&lt;b&gt;Órdenes y maestros como eventos&lt;/b&gt;&lt;/div&gt;" style="endArrow=blockThin;html=1;fontSize=10;fontColor=#404040;strokeWidth=1;endFill=1;strokeColor=#828282;elbow=vertical;metaEdit=1;endSize=14;startSize=14;jumpStyle=arc;jumpSize=16;rounded=0;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="debezium" target="kafka"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="260" y="580"/><mxPoint x="580" y="580"/><mxPoint x="580" y="465"/><mxPoint x="620" y="465"/></Array></mxGeometry></mxCell><mxCell id="e14" value="&lt;div style=&quot;text-align: center&quot;&gt;&lt;b&gt;Remesas y cumplidos&lt;/b&gt;&lt;/div&gt;" style="endArrow=blockThin;html=1;fontSize=10;fontColor=#404040;strokeWidth=1;endFill=1;strokeColor=#828282;elbow=vertical;metaEdit=1;endSize=14;startSize=14;jumpStyle=arc;jumpSize=16;rounded=0;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="kafka" target="conciliador"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="700" y="490"/><mxPoint x="700" y="540"/></Array></mxGeometry></mxCell><mxCell id="e15" value="&lt;div style=&quot;text-align: center&quot;&gt;&lt;b&gt;Costos de referencia&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: center&quot;&gt;[HTTP]&lt;/div&gt;" style="endArrow=blockThin;html=1;fontSize=10;fontColor=#404040;strokeWidth=1;endFill=1;strokeColor=#828282;elbow=vertical;metaEdit=1;endSize=14;startSize=14;jumpStyle=arc;jumpSize=16;rounded=0;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="conciliador" target="sicetac"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="e16" value="&lt;div style=&quot;text-align: center&quot;&gt;&lt;b&gt;Trazas y métricas&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: center&quot;&gt;[OTLP]&lt;/div&gt;" style="endArrow=blockThin;html=1;fontSize=10;fontColor=#404040;strokeWidth=1;endFill=1;strokeColor=#828282;elbow=vertical;metaEdit=1;endSize=14;startSize=14;jumpStyle=arc;jumpSize=16;rounded=0;edgeStyle=orthogonalEdgeStyle;dashed=1;" edge="1" parent="1" source="integrador" target="obs"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell></root></mxGraphModel></diagram></mxfile>
