1
0

Fix chapter 3 (normalization)

anybody can find love
This commit is contained in:
2025-02-19 09:13:57 +02:00
parent 7307f6eef6
commit a4dad5c788
8 changed files with 590 additions and 578 deletions

View File

@ -1,11 +1,11 @@
<mxfile host="Electron" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/26.0.9 Chrome/128.0.6613.186 Electron/32.3.0 Safari/537.36" version="26.0.9">
<diagram name="Page-1" id="e56a1550-8fbb-45ad-956c-1786394a9013">
<mxGraphModel dx="1395" dy="2456" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1100" pageHeight="850" background="none" math="0" shadow="0">
<mxGraphModel dx="1195" dy="2456" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1100" pageHeight="850" background="none" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="TstbxcchZz1pR3d-lyST-31" value="Пакунок" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#e0e0e0;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;align=center;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=14;swimlaneLine=1;" parent="1" vertex="1">
<mxGeometry x="480" y="-732" width="160" height="248" as="geometry" />
<mxGeometry x="530" y="-1432" width="160" height="248" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-32" value="Пакунок id" style="shape=partialRectangle;top=0;left=0;right=0;bottom=1;html=1;align=left;verticalAlign=middle;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;fontStyle=5;" parent="TstbxcchZz1pR3d-lyST-31" vertex="1">
<mxGeometry y="26" width="160" height="30" as="geometry" />
@ -62,7 +62,7 @@
<mxGeometry width="30" height="10" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-70" value="Користувач" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#e0e0e0;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;align=center;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=14;swimlaneLine=1;" parent="1" vertex="1">
<mxGeometry x="680" y="-860" width="150" height="220" as="geometry" />
<mxGeometry x="730" y="-1560" width="150" height="220" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-71" value="Користувач id" style="shape=partialRectangle;top=0;left=0;right=0;bottom=1;html=1;align=left;verticalAlign=middle;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;fontStyle=5;" parent="TstbxcchZz1pR3d-lyST-70" vertex="1">
<mxGeometry y="26" width="150" height="30" as="geometry" />
@ -113,7 +113,7 @@
<mxGeometry width="30" height="8" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-116" value="Тип ролі" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#e0e0e0;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;align=center;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=14;swimlaneLine=1;" parent="1" vertex="1">
<mxGeometry x="270" y="-840" width="160" height="118" as="geometry" />
<mxGeometry x="320" y="-1560" width="160" height="118" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-117" value="Тип ролі id" style="shape=partialRectangle;top=0;left=0;right=0;bottom=1;html=1;align=left;verticalAlign=middle;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;fontStyle=5;" parent="TstbxcchZz1pR3d-lyST-116" vertex="1">
<mxGeometry y="26" width="160" height="30" as="geometry" />
@ -140,7 +140,7 @@
<mxGeometry width="30" height="10" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-140" value="Тип залежності" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#e0e0e0;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;align=center;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=14;swimlaneLine=1;" parent="1" vertex="1">
<mxGeometry x="670" y="-440" width="160" height="92" as="geometry" />
<mxGeometry x="720" y="-1140" width="160" height="92" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-141" value="Тип залежності id" style="shape=partialRectangle;top=0;left=0;right=0;bottom=1;html=1;align=left;verticalAlign=middle;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;fontStyle=5;" parent="TstbxcchZz1pR3d-lyST-140" vertex="1">
<mxGeometry y="26" width="160" height="30" as="geometry" />
@ -161,7 +161,7 @@
<mxGeometry width="30" height="10" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-150" value="Тип відношення" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#e0e0e0;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;align=center;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=14;swimlaneLine=1;" parent="1" vertex="1">
<mxGeometry x="480" y="-440" width="160" height="92" as="geometry" />
<mxGeometry x="530" y="-1140" width="160" height="92" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-151" value="Тип відношення id" style="shape=partialRectangle;top=0;left=0;right=0;bottom=1;html=1;align=left;verticalAlign=middle;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;fontStyle=5;" parent="TstbxcchZz1pR3d-lyST-150" vertex="1">
<mxGeometry y="26" width="160" height="30" as="geometry" />
@ -182,7 +182,7 @@
<mxGeometry width="30" height="10" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-157" value="База пакунку" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#e0e0e0;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;align=center;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=14;swimlaneLine=1;" parent="1" vertex="1">
<mxGeometry x="270" y="-700" width="160" height="170" as="geometry" />
<mxGeometry x="320" y="-1410" width="160" height="170" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-158" value="База пакунку id" style="shape=partialRectangle;top=0;left=0;right=0;bottom=1;html=1;align=left;verticalAlign=middle;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;fontStyle=5;" parent="TstbxcchZz1pR3d-lyST-157" vertex="1">
<mxGeometry y="26" width="160" height="30" as="geometry" />
@ -224,7 +224,7 @@
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-171" value="Залежність" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#e0e0e0;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;align=center;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=14;swimlaneLine=1;" parent="1" vertex="1">
<mxGeometry x="680" y="-630" width="150" height="180" as="geometry" />
<mxGeometry x="730" y="-1330" width="150" height="180" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-172" value="Залежність id" style="shape=partialRectangle;top=0;left=0;right=0;bottom=1;html=1;align=left;verticalAlign=middle;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;fontStyle=5;" parent="TstbxcchZz1pR3d-lyST-171" vertex="1">
<mxGeometry y="26" width="150" height="30" as="geometry" />
@ -257,7 +257,7 @@
<mxGeometry width="30" height="46" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-188" value="Відношення" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#e0e0e0;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;align=center;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=14;swimlaneLine=1;" parent="1" vertex="1">
<mxGeometry x="270" y="-502" width="160" height="154" as="geometry" />
<mxGeometry x="320" y="-1202" width="160" height="154" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-189" value="Відношення id" style="shape=partialRectangle;top=0;left=0;right=0;bottom=1;html=1;align=left;verticalAlign=middle;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;fontStyle=5;" parent="TstbxcchZz1pR3d-lyST-188" vertex="1">
<mxGeometry y="26" width="160" height="30" as="geometry" />
@ -285,10 +285,10 @@
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-206" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERmandOne;endFill=0;startArrow=ERzeroToMany;startFill=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="TstbxcchZz1pR3d-lyST-193" target="TstbxcchZz1pR3d-lyST-61" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="480" y="-540" as="targetPoint" />
<mxPoint x="530" y="-1240" as="targetPoint" />
<Array as="points">
<mxPoint x="460" y="-407" />
<mxPoint x="460" y="-507" />
<mxPoint x="510" y="-1107" />
<mxPoint x="510" y="-1207" />
</Array>
</mxGeometry>
</mxCell>
@ -298,8 +298,8 @@
<mxCell id="TstbxcchZz1pR3d-lyST-208" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;endArrow=ERmandOne;endFill=0;startArrow=ERzeroToMany;startFill=0;" parent="1" source="TstbxcchZz1pR3d-lyST-178" target="TstbxcchZz1pR3d-lyST-143" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="650" y="-483" />
<mxPoint x="650" y="-371" />
<mxPoint x="700" y="-1183" />
<mxPoint x="700" y="-1071" />
</Array>
</mxGeometry>
</mxCell>
@ -308,16 +308,16 @@
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-212" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERmandOne;endFill=0;startArrow=ERzeroToMany;startFill=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="PkgUqFx-XmgoDWfw4lMe-12" target="TstbxcchZz1pR3d-lyST-119" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="480" y="-790" as="sourcePoint" />
<mxPoint x="440" y="-760" as="targetPoint" />
<mxPoint x="530" y="-1490" as="sourcePoint" />
<mxPoint x="490" y="-1460" as="targetPoint" />
<Array as="points">
<mxPoint x="450" y="-791" />
<mxPoint x="450" y="-771" />
<mxPoint x="500" y="-1491" />
<mxPoint x="500" y="-1471" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="PkgUqFx-XmgoDWfw4lMe-1" value="Роль" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#e0e0e0;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;align=center;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=14;swimlaneLine=1;" parent="1" vertex="1">
<mxGeometry x="480" y="-860" width="160" height="82" as="geometry" />
<mxGeometry x="530" y="-1560" width="160" height="82" as="geometry" />
</mxCell>
<mxCell id="PkgUqFx-XmgoDWfw4lMe-2" value="Роль id" style="shape=partialRectangle;top=0;left=0;right=0;bottom=1;html=1;align=left;verticalAlign=middle;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;fontStyle=5;" parent="PkgUqFx-XmgoDWfw4lMe-1" vertex="1">
<mxGeometry y="26" width="160" height="30" as="geometry" />
@ -333,21 +333,21 @@
</mxCell>
<mxCell id="PkgUqFx-XmgoDWfw4lMe-16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=ERmandOne;startFill=0;endArrow=ERzeroToMany;endFill=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" target="PkgUqFx-XmgoDWfw4lMe-12" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="430" y="-640" as="sourcePoint" />
<mxPoint x="470" y="-750" as="targetPoint" />
<mxPoint x="480" y="-1340" as="sourcePoint" />
<mxPoint x="520" y="-1450" as="targetPoint" />
<Array as="points">
<mxPoint x="460" y="-640" />
<mxPoint x="460" y="-791" />
<mxPoint x="510" y="-1340" />
<mxPoint x="510" y="-1491" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="PkgUqFx-XmgoDWfw4lMe-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERmandOne;endFill=0;startArrow=ERzeroToMany;startFill=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="PkgUqFx-XmgoDWfw4lMe-12" target="TstbxcchZz1pR3d-lyST-77" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="690" y="-770" as="targetPoint" />
<mxPoint x="640" y="-813" as="sourcePoint" />
<mxPoint x="740" y="-1470" as="targetPoint" />
<mxPoint x="690" y="-1513" as="sourcePoint" />
<Array as="points">
<mxPoint x="660" y="-791" />
<mxPoint x="660" y="-739" />
<mxPoint x="710" y="-1491" />
<mxPoint x="710" y="-1439" />
</Array>
</mxGeometry>
</mxCell>

View File

@ -1,11 +1,11 @@
<mxfile host="Electron" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/26.0.9 Chrome/128.0.6613.186 Electron/32.3.0 Safari/537.36" version="26.0.9">
<diagram name="Page-1" id="e56a1550-8fbb-45ad-956c-1786394a9013">
<mxGraphModel dx="1572" dy="2484" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1100" pageHeight="850" background="none" math="0" shadow="0">
<mxGraphModel dx="1434" dy="2607" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1100" pageHeight="850" background="none" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="TstbxcchZz1pR3d-lyST-31" value="Packages" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#e0e0e0;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;align=center;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=14;swimlaneLine=1;" parent="1" vertex="1">
<mxGeometry x="470" y="-760" width="160" height="274" as="geometry" />
<mxGeometry x="480" y="-1349" width="160" height="274" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-32" value="id" style="shape=partialRectangle;top=0;left=0;right=0;bottom=1;html=1;align=left;verticalAlign=middle;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;fontStyle=5;" parent="TstbxcchZz1pR3d-lyST-31" vertex="1">
<mxGeometry y="26" width="160" height="30" as="geometry" />
@ -55,10 +55,10 @@
<mxCell id="TstbxcchZz1pR3d-lyST-62" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" parent="TstbxcchZz1pR3d-lyST-61" vertex="1" connectable="0">
<mxGeometry width="30" height="26" as="geometry" />
</mxCell>
<mxCell id="j6MDIjJCqvpe9HdPzyI4-47" value="updated_at" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" vertex="1" parent="TstbxcchZz1pR3d-lyST-31">
<mxCell id="j6MDIjJCqvpe9HdPzyI4-47" value="updated_at" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" parent="TstbxcchZz1pR3d-lyST-31" vertex="1">
<mxGeometry y="238" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="j6MDIjJCqvpe9HdPzyI4-48" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" vertex="1" connectable="0" parent="j6MDIjJCqvpe9HdPzyI4-47">
<mxCell id="j6MDIjJCqvpe9HdPzyI4-48" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" parent="j6MDIjJCqvpe9HdPzyI4-47" vertex="1" connectable="0">
<mxGeometry width="30" height="26" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-40" value="" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" parent="TstbxcchZz1pR3d-lyST-31" vertex="1">
@ -68,7 +68,7 @@
<mxGeometry width="30" height="10" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-70" value="Users" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#e0e0e0;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;align=center;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=14;swimlaneLine=1;" parent="1" vertex="1">
<mxGeometry x="260" y="-1070" width="150" height="246" as="geometry" />
<mxGeometry x="270" y="-1639" width="150" height="220" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-71" value="id" style="shape=partialRectangle;top=0;left=0;right=0;bottom=1;html=1;align=left;verticalAlign=middle;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;fontStyle=5;" parent="TstbxcchZz1pR3d-lyST-70" vertex="1">
<mxGeometry y="26" width="150" height="30" as="geometry" />
@ -76,56 +76,50 @@
<mxCell id="TstbxcchZz1pR3d-lyST-72" value="PK" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" parent="TstbxcchZz1pR3d-lyST-71" vertex="1" connectable="0">
<mxGeometry width="30" height="30" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-93" value="id" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" parent="TstbxcchZz1pR3d-lyST-70" vertex="1">
<mxCell id="j6MDIjJCqvpe9HdPzyI4-31" value="name" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" parent="TstbxcchZz1pR3d-lyST-70" vertex="1">
<mxGeometry y="56" width="150" height="26" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-94" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" parent="TstbxcchZz1pR3d-lyST-93" vertex="1" connectable="0">
<mxCell id="j6MDIjJCqvpe9HdPzyI4-32" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" parent="j6MDIjJCqvpe9HdPzyI4-31" vertex="1" connectable="0">
<mxGeometry width="30" height="26" as="geometry" />
</mxCell>
<mxCell id="j6MDIjJCqvpe9HdPzyI4-31" value="name" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" vertex="1" parent="TstbxcchZz1pR3d-lyST-70">
<mxCell id="j6MDIjJCqvpe9HdPzyI4-33" value="email" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" parent="TstbxcchZz1pR3d-lyST-70" vertex="1">
<mxGeometry y="82" width="150" height="26" as="geometry" />
</mxCell>
<mxCell id="j6MDIjJCqvpe9HdPzyI4-32" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" vertex="1" connectable="0" parent="j6MDIjJCqvpe9HdPzyI4-31">
<mxCell id="j6MDIjJCqvpe9HdPzyI4-34" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" parent="j6MDIjJCqvpe9HdPzyI4-33" vertex="1" connectable="0">
<mxGeometry width="30" height="26" as="geometry" />
</mxCell>
<mxCell id="j6MDIjJCqvpe9HdPzyI4-33" value="email" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" vertex="1" parent="TstbxcchZz1pR3d-lyST-70">
<mxCell id="j6MDIjJCqvpe9HdPzyI4-35" value="password" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" parent="TstbxcchZz1pR3d-lyST-70" vertex="1">
<mxGeometry y="108" width="150" height="26" as="geometry" />
</mxCell>
<mxCell id="j6MDIjJCqvpe9HdPzyI4-34" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" vertex="1" connectable="0" parent="j6MDIjJCqvpe9HdPzyI4-33">
<mxCell id="j6MDIjJCqvpe9HdPzyI4-36" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" parent="j6MDIjJCqvpe9HdPzyI4-35" vertex="1" connectable="0">
<mxGeometry width="30" height="26" as="geometry" />
</mxCell>
<mxCell id="j6MDIjJCqvpe9HdPzyI4-35" value="password" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" vertex="1" parent="TstbxcchZz1pR3d-lyST-70">
<mxCell id="j6MDIjJCqvpe9HdPzyI4-37" value="last_used" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" parent="TstbxcchZz1pR3d-lyST-70" vertex="1">
<mxGeometry y="134" width="150" height="26" as="geometry" />
</mxCell>
<mxCell id="j6MDIjJCqvpe9HdPzyI4-36" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" vertex="1" connectable="0" parent="j6MDIjJCqvpe9HdPzyI4-35">
<mxCell id="j6MDIjJCqvpe9HdPzyI4-38" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" parent="j6MDIjJCqvpe9HdPzyI4-37" vertex="1" connectable="0">
<mxGeometry width="30" height="26" as="geometry" />
</mxCell>
<mxCell id="j6MDIjJCqvpe9HdPzyI4-37" value="last_used" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" vertex="1" parent="TstbxcchZz1pR3d-lyST-70">
<mxCell id="j6MDIjJCqvpe9HdPzyI4-39" value="created_at" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" parent="TstbxcchZz1pR3d-lyST-70" vertex="1">
<mxGeometry y="160" width="150" height="26" as="geometry" />
</mxCell>
<mxCell id="j6MDIjJCqvpe9HdPzyI4-38" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" vertex="1" connectable="0" parent="j6MDIjJCqvpe9HdPzyI4-37">
<mxCell id="j6MDIjJCqvpe9HdPzyI4-40" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" parent="j6MDIjJCqvpe9HdPzyI4-39" vertex="1" connectable="0">
<mxGeometry width="30" height="26" as="geometry" />
</mxCell>
<mxCell id="j6MDIjJCqvpe9HdPzyI4-39" value="created_at" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" vertex="1" parent="TstbxcchZz1pR3d-lyST-70">
<mxCell id="j6MDIjJCqvpe9HdPzyI4-41" value="updated_at" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" parent="TstbxcchZz1pR3d-lyST-70" vertex="1">
<mxGeometry y="186" width="150" height="26" as="geometry" />
</mxCell>
<mxCell id="j6MDIjJCqvpe9HdPzyI4-40" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" vertex="1" connectable="0" parent="j6MDIjJCqvpe9HdPzyI4-39">
<mxGeometry width="30" height="26" as="geometry" />
</mxCell>
<mxCell id="j6MDIjJCqvpe9HdPzyI4-41" value="updated_at" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" vertex="1" parent="TstbxcchZz1pR3d-lyST-70">
<mxGeometry y="212" width="150" height="26" as="geometry" />
</mxCell>
<mxCell id="j6MDIjJCqvpe9HdPzyI4-42" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" vertex="1" connectable="0" parent="j6MDIjJCqvpe9HdPzyI4-41">
<mxCell id="j6MDIjJCqvpe9HdPzyI4-42" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" parent="j6MDIjJCqvpe9HdPzyI4-41" vertex="1" connectable="0">
<mxGeometry width="30" height="26" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-114" value="" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" parent="TstbxcchZz1pR3d-lyST-70" vertex="1">
<mxGeometry y="238" width="150" height="8" as="geometry" />
<mxGeometry y="212" width="150" height="8" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-115" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" parent="TstbxcchZz1pR3d-lyST-114" vertex="1" connectable="0">
<mxGeometry width="30" height="8" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-116" value="PackageBaseRoles" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#e0e0e0;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;align=center;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=14;swimlaneLine=1;" parent="1" vertex="1">
<mxGeometry x="470" y="-890" width="160" height="118" as="geometry" />
<mxGeometry x="480" y="-1510" width="160" height="118" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-117" value="id" style="shape=partialRectangle;top=0;left=0;right=0;bottom=1;html=1;align=left;verticalAlign=middle;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;fontStyle=5;" parent="TstbxcchZz1pR3d-lyST-116" vertex="1">
<mxGeometry y="26" width="160" height="30" as="geometry" />
@ -152,7 +146,7 @@
<mxGeometry width="30" height="10" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-129" value="PackageBaseUserRoles" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#e0e0e0;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;align=center;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=14" parent="1" vertex="1">
<mxGeometry x="260" y="-810" width="160" height="142" as="geometry" />
<mxGeometry x="270" y="-1399" width="160" height="142" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-130" value="user" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=middle;fillColor=none;spacingLeft=60;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;fontStyle=5;" parent="TstbxcchZz1pR3d-lyST-129" vertex="1">
<mxGeometry y="26" width="160" height="30" as="geometry" />
@ -179,7 +173,7 @@
<mxGeometry width="56" height="26" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-140" value="DependencyTypes" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#e0e0e0;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;align=center;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=14;swimlaneLine=1;" parent="1" vertex="1">
<mxGeometry x="470" y="-1030" width="160" height="92" as="geometry" />
<mxGeometry x="480" y="-1639" width="160" height="92" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-141" value="id" style="shape=partialRectangle;top=0;left=0;right=0;bottom=1;html=1;align=left;verticalAlign=middle;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;fontStyle=5;" parent="TstbxcchZz1pR3d-lyST-140" vertex="1">
<mxGeometry y="26" width="160" height="30" as="geometry" />
@ -200,7 +194,7 @@
<mxGeometry width="30" height="10" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-150" value="RelationTypes" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#e0e0e0;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;align=center;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=14;swimlaneLine=1;" parent="1" vertex="1">
<mxGeometry x="700" y="-810" width="160" height="92" as="geometry" />
<mxGeometry x="720" y="-1399" width="160" height="92" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-151" value="id" style="shape=partialRectangle;top=0;left=0;right=0;bottom=1;html=1;align=left;verticalAlign=middle;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;fontStyle=5;" parent="TstbxcchZz1pR3d-lyST-150" vertex="1">
<mxGeometry y="26" width="160" height="30" as="geometry" />
@ -221,7 +215,7 @@
<mxGeometry width="30" height="10" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-157" value="PackageBases" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#e0e0e0;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;align=center;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=14;swimlaneLine=1;" parent="1" vertex="1">
<mxGeometry x="260" y="-656" width="160" height="170" as="geometry" />
<mxGeometry x="270" y="-1245" width="160" height="170" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-158" value="id" style="shape=partialRectangle;top=0;left=0;right=0;bottom=1;html=1;align=left;verticalAlign=middle;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;fontStyle=5;" parent="TstbxcchZz1pR3d-lyST-157" vertex="1">
<mxGeometry y="26" width="160" height="30" as="geometry" />
@ -261,15 +255,15 @@
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-170" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=ERmandOne;startFill=0;endArrow=ERzeroToMany;endFill=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="TstbxcchZz1pR3d-lyST-158" target="TstbxcchZz1pR3d-lyST-34" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="440" y="-630" as="sourcePoint" />
<mxPoint x="450" y="-1219" as="sourcePoint" />
<Array as="points">
<mxPoint x="450" y="-615" />
<mxPoint x="450" y="-691" />
<mxPoint x="460" y="-1204" />
<mxPoint x="460" y="-1280" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-171" value="PackageDependencies" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#e0e0e0;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;align=center;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=14;swimlaneLine=1;" parent="1" vertex="1">
<mxGeometry x="670" y="-1057" width="200" height="220" as="geometry" />
<mxGeometry x="680" y="-1646" width="200" height="220" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-172" value="id" style="shape=partialRectangle;top=0;left=0;right=0;bottom=1;html=1;align=left;verticalAlign=middle;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;fontStyle=5;" parent="TstbxcchZz1pR3d-lyST-171" vertex="1">
<mxGeometry y="26" width="200" height="30" as="geometry" />
@ -283,10 +277,10 @@
<mxCell id="TstbxcchZz1pR3d-lyST-185" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" parent="TstbxcchZz1pR3d-lyST-184" vertex="1" connectable="0">
<mxGeometry width="30" height="26" as="geometry" />
</mxCell>
<mxCell id="j6MDIjJCqvpe9HdPzyI4-23" value="requirement" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" vertex="1" parent="TstbxcchZz1pR3d-lyST-171">
<mxCell id="j6MDIjJCqvpe9HdPzyI4-23" value="requirement" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" parent="TstbxcchZz1pR3d-lyST-171" vertex="1">
<mxGeometry y="82" width="200" height="26" as="geometry" />
</mxCell>
<mxCell id="j6MDIjJCqvpe9HdPzyI4-24" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" vertex="1" connectable="0" parent="j6MDIjJCqvpe9HdPzyI4-23">
<mxCell id="j6MDIjJCqvpe9HdPzyI4-24" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" parent="j6MDIjJCqvpe9HdPzyI4-23" vertex="1" connectable="0">
<mxGeometry width="30" height="26" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-176" value="description" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" parent="TstbxcchZz1pR3d-lyST-171" vertex="1">
@ -295,10 +289,10 @@
<mxCell id="TstbxcchZz1pR3d-lyST-177" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" parent="TstbxcchZz1pR3d-lyST-176" vertex="1" connectable="0">
<mxGeometry width="30" height="26" as="geometry" />
</mxCell>
<mxCell id="j6MDIjJCqvpe9HdPzyI4-29" value="dependency_type" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" vertex="1" parent="TstbxcchZz1pR3d-lyST-171">
<mxCell id="j6MDIjJCqvpe9HdPzyI4-29" value="dependency_type" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" parent="TstbxcchZz1pR3d-lyST-171" vertex="1">
<mxGeometry y="134" width="200" height="26" as="geometry" />
</mxCell>
<mxCell id="j6MDIjJCqvpe9HdPzyI4-30" value="FK" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" vertex="1" connectable="0" parent="j6MDIjJCqvpe9HdPzyI4-29">
<mxCell id="j6MDIjJCqvpe9HdPzyI4-30" value="FK" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" parent="j6MDIjJCqvpe9HdPzyI4-29" vertex="1" connectable="0">
<mxGeometry width="30" height="26" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-174" value="package" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" parent="TstbxcchZz1pR3d-lyST-171" vertex="1">
@ -314,7 +308,7 @@
<mxGeometry width="30" height="34" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-188" value="&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); font-size: 12px; text-wrap: wrap;&quot;&gt;&lt;font face=&quot;Helvetica&quot;&gt;PackageRelations&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#e0e0e0;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;align=center;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=14;swimlaneLine=1;" parent="1" vertex="1">
<mxGeometry x="690" y="-686" width="180" height="200" as="geometry" />
<mxGeometry x="700" y="-1275" width="180" height="200" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-189" value="id" style="shape=partialRectangle;top=0;left=0;right=0;bottom=1;html=1;align=left;verticalAlign=middle;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;fontStyle=5;" parent="TstbxcchZz1pR3d-lyST-188" vertex="1">
<mxGeometry y="26" width="180" height="30" as="geometry" />
@ -340,25 +334,25 @@
<mxCell id="TstbxcchZz1pR3d-lyST-192" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" parent="TstbxcchZz1pR3d-lyST-191" vertex="1" connectable="0">
<mxGeometry width="30" height="26" as="geometry" />
</mxCell>
<mxCell id="j6MDIjJCqvpe9HdPzyI4-1" value="requirement" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" vertex="1" parent="TstbxcchZz1pR3d-lyST-188">
<mxCell id="j6MDIjJCqvpe9HdPzyI4-1" value="requirement" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" parent="TstbxcchZz1pR3d-lyST-188" vertex="1">
<mxGeometry y="140" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="j6MDIjJCqvpe9HdPzyI4-2" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" vertex="1" connectable="0" parent="j6MDIjJCqvpe9HdPzyI4-1">
<mxCell id="j6MDIjJCqvpe9HdPzyI4-2" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" parent="j6MDIjJCqvpe9HdPzyI4-1" vertex="1" connectable="0">
<mxGeometry width="30" height="30" as="geometry" />
</mxCell>
<mxCell id="j6MDIjJCqvpe9HdPzyI4-3" value="relation_package_name" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" vertex="1" parent="TstbxcchZz1pR3d-lyST-188">
<mxCell id="j6MDIjJCqvpe9HdPzyI4-3" value="relation_package_name" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" parent="TstbxcchZz1pR3d-lyST-188" vertex="1">
<mxGeometry y="170" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="j6MDIjJCqvpe9HdPzyI4-4" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" vertex="1" connectable="0" parent="j6MDIjJCqvpe9HdPzyI4-3">
<mxCell id="j6MDIjJCqvpe9HdPzyI4-4" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" parent="j6MDIjJCqvpe9HdPzyI4-3" vertex="1" connectable="0">
<mxGeometry width="30" height="30" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-203" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;endArrow=ERmandOne;endFill=0;startArrow=ERzeroToMany;startFill=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="TstbxcchZz1pR3d-lyST-132" target="TstbxcchZz1pR3d-lyST-158" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="440" y="-709" />
<mxPoint x="440" y="-615" />
<mxPoint x="450" y="-1298" />
<mxPoint x="450" y="-1204" />
</Array>
<mxPoint x="170" y="-710" as="sourcePoint" />
<mxPoint x="180" y="-1299" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-204" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=ERmandOne;startFill=0;endArrow=ERzeroToMany;endFill=0;entryX=1.004;entryY=0.627;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="TstbxcchZz1pR3d-lyST-71" target="TstbxcchZz1pR3d-lyST-130" edge="1">
@ -367,43 +361,43 @@
<mxCell id="TstbxcchZz1pR3d-lyST-206" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;endArrow=ERmandOne;endFill=0;startArrow=ERzeroToMany;startFill=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="TstbxcchZz1pR3d-lyST-193" target="TstbxcchZz1pR3d-lyST-32" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="660" y="-585" />
<mxPoint x="660" y="-719" />
<mxPoint x="670" y="-1174" />
<mxPoint x="670" y="-1308" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-207" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;endArrow=ERmandOne;endFill=0;startArrow=ERzeroToMany;startFill=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="TstbxcchZz1pR3d-lyST-197" target="TstbxcchZz1pR3d-lyST-151" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="670" y="-614" />
<mxPoint x="670" y="-769" />
<mxPoint x="680" y="-1203" />
<mxPoint x="680" y="-1358" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-208" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERmandOne;endFill=0;startArrow=ERzeroToMany;startFill=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="j6MDIjJCqvpe9HdPzyI4-29" target="TstbxcchZz1pR3d-lyST-141" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="650" y="-910" />
<mxPoint x="650" y="-989" />
<mxPoint x="660" y="-1499" />
<mxPoint x="660" y="-1578" />
</Array>
<mxPoint x="1110" y="-650" as="sourcePoint" />
<mxPoint x="670" y="-400" as="targetPoint" />
<mxPoint x="1120" y="-1239" as="sourcePoint" />
<mxPoint x="680" y="-989" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-210" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=ERmandOne;startFill=0;endArrow=ERzeroToMany;endFill=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="TstbxcchZz1pR3d-lyST-32" target="TstbxcchZz1pR3d-lyST-174" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="710" y="-547" as="targetPoint" />
<mxPoint x="720" y="-1136" as="targetPoint" />
<Array as="points">
<mxPoint x="650" y="-719" />
<mxPoint x="650" y="-884" />
<mxPoint x="660" y="-1308" />
<mxPoint x="660" y="-1473" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-212" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;endArrow=ERmandOne;endFill=0;startArrow=ERzeroToMany;startFill=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="TstbxcchZz1pR3d-lyST-138" target="TstbxcchZz1pR3d-lyST-117" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="450" y="-739" />
<mxPoint x="450" y="-849" />
<mxPoint x="460" y="-1328" />
<mxPoint x="460" y="-1438" />
</Array>
</mxGeometry>
</mxCell>

File diff suppressed because it is too large Load Diff