<mxfile host="65bd71144e" pages="2">
    <diagram id="TOYXUel0h6b4Yd0VOcvu" name="load">
        <mxGraphModel dx="1056" dy="944" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
            <root>
                <mxCell id="0"/>
                <mxCell id="1" parent="0"/>
                <mxCell id="yIAdUxezwQbCnBzwHmIZ-1" value="parse pkg_name" style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;" parent="1" vertex="1">
                    <mxGeometry x="180" y="150" width="120" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="4NanrWthPztIr26KfMBc-6" value="No" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="4NanrWthPztIr26KfMBc-1" target="4NanrWthPztIr26KfMBc-5" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="4NanrWthPztIr26KfMBc-1" value="have content_id?" style="rhombus;whiteSpace=wrap;html=1;" parent="1" vertex="1">
                    <mxGeometry x="132.5" y="230" width="215" height="90" as="geometry"/>
                </mxCell>
                <mxCell id="4NanrWthPztIr26KfMBc-2" value="load(pkg_name)" style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;" parent="1" vertex="1">
                    <mxGeometry x="180" y="70" width="120" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="4NanrWthPztIr26KfMBc-10" value="No" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="4NanrWthPztIr26KfMBc-5" target="4NanrWthPztIr26KfMBc-9" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="4NanrWthPztIr26KfMBc-5" value="&lt;span style=&quot;color: rgb(240, 240, 240); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(27, 29, 30); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;&quot;&gt;exact version?&lt;/span&gt;" style="rhombus;whiteSpace=wrap;html=1;" parent="1" vertex="1">
                    <mxGeometry x="440" y="235" width="135" height="80" as="geometry"/>
                </mxCell>
                <mxCell id="4NanrWthPztIr26KfMBc-13" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="4NanrWthPztIr26KfMBc-9" target="4NanrWthPztIr26KfMBc-12" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="4NanrWthPztIr26KfMBc-9" value="get version from local which match" style="whiteSpace=wrap;html=1;" parent="1" vertex="1">
                    <mxGeometry x="662.5" y="245" width="120" height="60" as="geometry"/>
                </mxCell>
                <mxCell id="4NanrWthPztIr26KfMBc-12" value="get exact version" style="whiteSpace=wrap;html=1;" parent="1" vertex="1">
                    <mxGeometry x="662.5" y="350" width="120" height="60" as="geometry"/>
                </mxCell>
                <mxCell id="4NanrWthPztIr26KfMBc-14" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="4NanrWthPztIr26KfMBc-12" target="4NanrWthPztIr26KfMBc-16" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="720" y="510" as="sourcePoint"/>
                        <mxPoint x="567.5" y="460" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="4NanrWthPztIr26KfMBc-15" value="Yes" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="4NanrWthPztIr26KfMBc-5" target="4NanrWthPztIr26KfMBc-16" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="480" y="420" as="sourcePoint"/>
                        <mxPoint x="567.5" y="460" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="4NanrWthPztIr26KfMBc-16" value="calc pkg full path with version (might be a soft link)&amp;nbsp;" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
                    <mxGeometry x="427.5" y="470" width="160" height="60" as="geometry"/>
                </mxCell>
                <mxCell id="4NanrWthPztIr26KfMBc-17" value="Try Load" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
                    <mxGeometry x="300" y="620" width="152" height="60" as="geometry"/>
                </mxCell>
                <mxCell id="4NanrWthPztIr26KfMBc-18" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="4NanrWthPztIr26KfMBc-16" target="4NanrWthPztIr26KfMBc-17" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="320" y="670" as="sourcePoint"/>
                        <mxPoint x="370" y="620" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="4NanrWthPztIr26KfMBc-19" value="calc pkg full path with cid&amp;nbsp;" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
                    <mxGeometry x="170" y="390" width="160" height="60" as="geometry"/>
                </mxCell>
                <mxCell id="4NanrWthPztIr26KfMBc-20" value="yes" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.435;entryY=0.019;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="4NanrWthPztIr26KfMBc-1" target="4NanrWthPztIr26KfMBc-19" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="320" y="360" as="sourcePoint"/>
                        <mxPoint x="370" y="310" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="4NanrWthPztIr26KfMBc-21" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="4NanrWthPztIr26KfMBc-19" target="4NanrWthPztIr26KfMBc-17" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="250" y="540" as="sourcePoint"/>
                        <mxPoint x="300" y="490" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="4NanrWthPztIr26KfMBc-22" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="4NanrWthPztIr26KfMBc-2" target="yIAdUxezwQbCnBzwHmIZ-1" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="360" y="180" as="sourcePoint"/>
                        <mxPoint x="410" y="130" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="4NanrWthPztIr26KfMBc-23" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="yIAdUxezwQbCnBzwHmIZ-1" target="4NanrWthPztIr26KfMBc-1" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="310" y="240" as="sourcePoint"/>
                        <mxPoint x="360" y="190" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="4NanrWthPztIr26KfMBc-32" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="4NanrWthPztIr26KfMBc-24" target="4NanrWthPztIr26KfMBc-31" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="4NanrWthPztIr26KfMBc-39" value="No" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="4NanrWthPztIr26KfMBc-32" vertex="1" connectable="0">
                    <mxGeometry x="-0.0706" y="-2" relative="1" as="geometry">
                        <mxPoint as="offset"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="4NanrWthPztIr26KfMBc-33" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="4NanrWthPztIr26KfMBc-24" target="4NanrWthPztIr26KfMBc-26" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="4NanrWthPztIr26KfMBc-40" value="Yes" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="4NanrWthPztIr26KfMBc-33" vertex="1" connectable="0">
                    <mxGeometry x="-0.2874" y="2" relative="1" as="geometry">
                        <mxPoint as="offset"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="4NanrWthPztIr26KfMBc-24" value="Load Success?" style="rhombus;whiteSpace=wrap;html=1;" parent="1" vertex="1">
                    <mxGeometry x="303.5" y="750" width="145" height="80" as="geometry"/>
                </mxCell>
                <mxCell id="4NanrWthPztIr26KfMBc-25" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="4NanrWthPztIr26KfMBc-17" target="4NanrWthPztIr26KfMBc-24" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="430" y="740" as="sourcePoint"/>
                        <mxPoint x="480" y="690" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="4NanrWthPztIr26KfMBc-26" value="Return" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
                    <mxGeometry x="316" y="890" width="120" height="60" as="geometry"/>
                </mxCell>
                <mxCell id="4NanrWthPztIr26KfMBc-35" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="4NanrWthPztIr26KfMBc-31" target="4NanrWthPztIr26KfMBc-34" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="4NanrWthPztIr26KfMBc-38" value="Yes" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="4NanrWthPztIr26KfMBc-35" vertex="1" connectable="0">
                    <mxGeometry x="-0.1494" y="1" relative="1" as="geometry">
                        <mxPoint as="offset"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="4NanrWthPztIr26KfMBc-37" value="No" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="4NanrWthPztIr26KfMBc-31" target="4NanrWthPztIr26KfMBc-36" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="4NanrWthPztIr26KfMBc-31" value="Have Parent Env?" style="rhombus;whiteSpace=wrap;html=1;" parent="1" vertex="1">
                    <mxGeometry x="510" y="750" width="145" height="80" as="geometry"/>
                </mxCell>
                <mxCell id="4NanrWthPztIr26KfMBc-34" value="Return parent.load" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
                    <mxGeometry x="522.5" y="890" width="120" height="60" as="geometry"/>
                </mxCell>
                <mxCell id="4NanrWthPztIr26KfMBc-36" value="failed" style="whiteSpace=wrap;html=1;" parent="1" vertex="1">
                    <mxGeometry x="710" y="760" width="120" height="60" as="geometry"/>
                </mxCell>
            </root>
        </mxGraphModel>
    </diagram>
    <diagram id="C5RBs43oDa-KdzZeNtuy" name="install">
        <mxGraphModel dx="1056" dy="944" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
            <root>
                <mxCell id="WIyWlLk6GJQsqaUBKTNV-0"/>
                <mxCell id="WIyWlLk6GJQsqaUBKTNV-1" parent="WIyWlLk6GJQsqaUBKTNV-0"/>
                <mxCell id="WIyWlLk6GJQsqaUBKTNV-2" value="" style="rounded=0;html=1;jettySize=auto;orthogonalLoop=1;fontSize=11;endArrow=block;endFill=0;endSize=8;strokeWidth=1;shadow=0;labelBackgroundColor=none;edgeStyle=orthogonalEdgeStyle;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="WIyWlLk6GJQsqaUBKTNV-3" target="WIyWlLk6GJQsqaUBKTNV-6" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="WIyWlLk6GJQsqaUBKTNV-3" value="start download and&lt;br&gt;install/upgrade pkg&amp;nbsp;" style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
                    <mxGeometry x="195" y="260" width="120" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="WIyWlLk6GJQsqaUBKTNV-4" value="Yes" style="rounded=0;html=1;jettySize=auto;orthogonalLoop=1;fontSize=11;endArrow=block;endFill=0;endSize=8;strokeWidth=1;shadow=0;labelBackgroundColor=none;edgeStyle=orthogonalEdgeStyle;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="WIyWlLk6GJQsqaUBKTNV-6" target="WIyWlLk6GJQsqaUBKTNV-10" edge="1">
                    <mxGeometry y="20" relative="1" as="geometry">
                        <mxPoint as="offset"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="WIyWlLk6GJQsqaUBKTNV-5" value="No" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;jettySize=auto;orthogonalLoop=1;fontSize=11;endArrow=block;endFill=0;endSize=8;strokeWidth=1;shadow=0;labelBackgroundColor=none;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="WIyWlLk6GJQsqaUBKTNV-6" target="WIyWlLk6GJQsqaUBKTNV-7" edge="1">
                    <mxGeometry y="10" relative="1" as="geometry">
                        <mxPoint as="offset"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="WIyWlLk6GJQsqaUBKTNV-6" value="exist in known index_db?" style="rhombus;whiteSpace=wrap;html=1;shadow=0;fontFamily=Helvetica;fontSize=12;align=center;strokeWidth=1;spacing=6;spacingTop=-4;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
                    <mxGeometry x="205" y="340" width="100" height="80" as="geometry"/>
                </mxCell>
                <mxCell id="WIyWlLk6GJQsqaUBKTNV-7" value="failed" style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
                    <mxGeometry x="355" y="360" width="120" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="WIyWlLk6GJQsqaUBKTNV-8" value="Yes" style="rounded=0;html=1;jettySize=auto;orthogonalLoop=1;fontSize=11;endArrow=block;endFill=0;endSize=8;strokeWidth=1;shadow=0;labelBackgroundColor=none;edgeStyle=orthogonalEdgeStyle;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="WIyWlLk6GJQsqaUBKTNV-10" target="WIyWlLk6GJQsqaUBKTNV-11" edge="1">
                    <mxGeometry x="0.3333" y="20" relative="1" as="geometry">
                        <mxPoint as="offset"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="WIyWlLk6GJQsqaUBKTNV-9" value="Yes" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;jettySize=auto;orthogonalLoop=1;fontSize=11;endArrow=block;endFill=0;endSize=8;strokeWidth=1;shadow=0;labelBackgroundColor=none;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="WIyWlLk6GJQsqaUBKTNV-10" target="WIyWlLk6GJQsqaUBKTNV-12" edge="1">
                    <mxGeometry y="10" relative="1" as="geometry">
                        <mxPoint as="offset"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="WIyWlLk6GJQsqaUBKTNV-10" value="jump depend check?" style="rhombus;whiteSpace=wrap;html=1;shadow=0;fontFamily=Helvetica;fontSize=12;align=center;strokeWidth=1;spacing=6;spacingTop=-4;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
                    <mxGeometry x="190" y="470" width="130" height="80" as="geometry"/>
                </mxCell>
                <mxCell id="WIyWlLk6GJQsqaUBKTNV-11" value="Start Install&lt;br&gt;" style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
                    <mxGeometry x="195" y="660" width="120" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="WIyWlLk6GJQsqaUBKTNV-12" value="check dpend pkg in index_db" style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
                    <mxGeometry x="375" y="490" width="120" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="wHlDFXOGKIaXFOMDR_Es-0" value="pkg not found?(include in parent env)&lt;br&gt;instll depend pkg" style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
                    <mxGeometry x="375" y="580" width="120" height="70" as="geometry"/>
                </mxCell>
                <mxCell id="wHlDFXOGKIaXFOMDR_Es-1" value="check depend failed" style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
                    <mxGeometry x="595" y="490" width="120" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="wHlDFXOGKIaXFOMDR_Es-2" value="error occur" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="WIyWlLk6GJQsqaUBKTNV-12" target="wHlDFXOGKIaXFOMDR_Es-1" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="535" y="510" as="sourcePoint"/>
                        <mxPoint x="585" y="460" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="lUqpj-z38_llIR96-J4U-0" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="WIyWlLk6GJQsqaUBKTNV-12" target="wHlDFXOGKIaXFOMDR_Es-0" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="555" y="700" as="sourcePoint"/>
                        <mxPoint x="605" y="650" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="lUqpj-z38_llIR96-J4U-1" value="install depend failed" style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
                    <mxGeometry x="600" y="595" width="120" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="lUqpj-z38_llIR96-J4U-2" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="wHlDFXOGKIaXFOMDR_Es-0" target="lUqpj-z38_llIR96-J4U-1" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="515" y="700" as="sourcePoint"/>
                        <mxPoint x="565" y="650" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="lUqpj-z38_llIR96-J4U-4" value="error occur" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="lUqpj-z38_llIR96-J4U-2" vertex="1" connectable="0">
                    <mxGeometry x="0.1747" y="2" relative="1" as="geometry">
                        <mxPoint as="offset"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="lUqpj-z38_llIR96-J4U-3" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="wHlDFXOGKIaXFOMDR_Es-0" target="WIyWlLk6GJQsqaUBKTNV-11" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="425" y="730" as="sourcePoint"/>
                        <mxPoint x="475" y="680" as="targetPoint"/>
                        <Array as="points">
                            <mxPoint x="435" y="680"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="lUqpj-z38_llIR96-J4U-5" value="target pkg_media ==&lt;br&gt;source pkg_media?" style="rhombus;whiteSpace=wrap;html=1;shadow=0;fontFamily=Helvetica;fontSize=12;align=center;strokeWidth=1;spacing=6;spacingTop=-4;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
                    <mxGeometry x="170" y="750" width="170" height="80" as="geometry"/>
                </mxCell>
                <mxCell id="lUqpj-z38_llIR96-J4U-7" value="ndnclient download pkg to /pkg/$cid" style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
                    <mxGeometry x="190" y="890" width="130" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="lUqpj-z38_llIR96-J4U-8" value="ndnclient download pkg to /.ndncache/$cid" style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
                    <mxGeometry x="435" y="770" width="150" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="lUqpj-z38_llIR96-J4U-9" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="WIyWlLk6GJQsqaUBKTNV-11" target="lUqpj-z38_llIR96-J4U-5" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="315" y="750" as="sourcePoint"/>
                        <mxPoint x="365" y="700" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="lUqpj-z38_llIR96-J4U-10" value="verfiy downloaded pkg" style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
                    <mxGeometry x="440" y="890" width="140" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="lUqpj-z38_llIR96-J4U-11" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="lUqpj-z38_llIR96-J4U-8" target="lUqpj-z38_llIR96-J4U-10" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="555" y="880" as="sourcePoint"/>
                        <mxPoint x="605" y="830" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="lUqpj-z38_llIR96-J4U-12" value="transform to target media&lt;br&gt;/pkg/$cid" style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
                    <mxGeometry x="437.5" y="980" width="145" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="lUqpj-z38_llIR96-J4U-13" value="Yes" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="lUqpj-z38_llIR96-J4U-5" target="lUqpj-z38_llIR96-J4U-7" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="325" y="910" as="sourcePoint"/>
                        <mxPoint x="375" y="860" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="lUqpj-z38_llIR96-J4U-14" value="verfiy downloaded pkg" style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
                    <mxGeometry x="190" y="980" width="130" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="lUqpj-z38_llIR96-J4U-15" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="lUqpj-z38_llIR96-J4U-7" target="lUqpj-z38_llIR96-J4U-14" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="225" y="1090" as="sourcePoint"/>
                        <mxPoint x="275" y="1040" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="lUqpj-z38_llIR96-J4U-16" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="lUqpj-z38_llIR96-J4U-10" target="lUqpj-z38_llIR96-J4U-12" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="605" y="980" as="sourcePoint"/>
                        <mxPoint x="655" y="930" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="lUqpj-z38_llIR96-J4U-17" value="Save state pkg,&lt;br&gt;create version soft link&lt;br&gt;/pkg/$version =&amp;gt; /pkg$cid" style="rounded=1;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
                    <mxGeometry x="315" y="1090" width="145" height="50" as="geometry"/>
                </mxCell>
                <mxCell id="lUqpj-z38_llIR96-J4U-18" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="lUqpj-z38_llIR96-J4U-14" target="lUqpj-z38_llIR96-J4U-17" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="210" y="1120" as="sourcePoint"/>
                        <mxPoint x="260" y="1070" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="lUqpj-z38_llIR96-J4U-19" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="lUqpj-z38_llIR96-J4U-12" target="lUqpj-z38_llIR96-J4U-17" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="560" y="1120" as="sourcePoint"/>
                        <mxPoint x="610" y="1070" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="lUqpj-z38_llIR96-J4U-20" value="pkg can load?&lt;br&gt;(not depend on index_db)&lt;br&gt;no parent env" style="rhombus;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
                    <mxGeometry x="147.5" y="45" width="215" height="90" as="geometry"/>
                </mxCell>
                <mxCell id="lUqpj-z38_llIR96-J4U-21" value="load by cid?" style="rhombus;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
                    <mxGeometry x="443.75" y="60" width="110" height="60" as="geometry"/>
                </mxCell>
                <mxCell id="lUqpj-z38_llIR96-J4U-22" value="force install?" style="rhombus;whiteSpace=wrap;html=1;shadow=0;fontFamily=Helvetica;fontSize=12;align=center;strokeWidth=1;spacing=6;spacingTop=-4;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
                    <mxGeometry x="640" y="55" width="100" height="70" as="geometry"/>
                </mxCell>
                <mxCell id="lUqpj-z38_llIR96-J4U-23" value="upgrade pkg" style="rounded=1;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
                    <mxGeometry x="630" y="260" width="120" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="lUqpj-z38_llIR96-J4U-24" value="can get cid &lt;br&gt;from index_db?" style="rhombus;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
                    <mxGeometry x="436.25" y="150" width="127.5" height="80" as="geometry"/>
                </mxCell>
                <mxCell id="lUqpj-z38_llIR96-J4U-26" value="For verify,download must by CID!&lt;br&gt;Need CID,need index-db" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
                    <mxGeometry x="595" y="775" width="200" height="30" as="geometry"/>
                </mxCell>
                <mxCell id="lUqpj-z38_llIR96-J4U-27" value="No" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="lUqpj-z38_llIR96-J4U-20" target="WIyWlLk6GJQsqaUBKTNV-3" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="190" y="210" as="sourcePoint"/>
                        <mxPoint x="240" y="160" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="lUqpj-z38_llIR96-J4U-28" value="Yes" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="lUqpj-z38_llIR96-J4U-20" target="lUqpj-z38_llIR96-J4U-21" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="340" y="200" as="sourcePoint"/>
                        <mxPoint x="390" y="150" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="lUqpj-z38_llIR96-J4U-29" value="Yes" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="lUqpj-z38_llIR96-J4U-21" target="lUqpj-z38_llIR96-J4U-22" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="580" y="90" as="sourcePoint"/>
                        <mxPoint x="630" y="40" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="lUqpj-z38_llIR96-J4U-30" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="lUqpj-z38_llIR96-J4U-22" target="lUqpj-z38_llIR96-J4U-23" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="640" y="360" as="sourcePoint"/>
                        <mxPoint x="690" y="310" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="lUqpj-z38_llIR96-J4U-31" value="No" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="lUqpj-z38_llIR96-J4U-5" target="lUqpj-z38_llIR96-J4U-8" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="370" y="790" as="sourcePoint"/>
                        <mxPoint x="420" y="740" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="lUqpj-z38_llIR96-J4U-32" value="No" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="lUqpj-z38_llIR96-J4U-21" target="lUqpj-z38_llIR96-J4U-24" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="570" y="180" as="sourcePoint"/>
                        <mxPoint x="620" y="130" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="lUqpj-z38_llIR96-J4U-33" value="download , install with backup(no remove)" style="rounded=1;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
                    <mxGeometry x="440" y="260" width="120" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="lUqpj-z38_llIR96-J4U-34" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="lUqpj-z38_llIR96-J4U-24" target="lUqpj-z38_llIR96-J4U-33" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="590" y="330" as="sourcePoint"/>
                        <mxPoint x="640" y="280" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="lUqpj-z38_llIR96-J4U-35" value="Yes" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="lUqpj-z38_llIR96-J4U-34" vertex="1" connectable="0">
                    <mxGeometry x="-0.0613" y="1" relative="1" as="geometry">
                        <mxPoint as="offset"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="lUqpj-z38_llIR96-J4U-36" value="" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="lUqpj-z38_llIR96-J4U-33" target="WIyWlLk6GJQsqaUBKTNV-3" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="290" y="380" as="sourcePoint"/>
                        <mxPoint x="340" y="330" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="lUqpj-z38_llIR96-J4U-37" value="No" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="lUqpj-z38_llIR96-J4U-24" target="WIyWlLk6GJQsqaUBKTNV-7" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="570" y="370" as="sourcePoint"/>
                        <mxPoint x="620" y="320" as="targetPoint"/>
                        <Array as="points">
                            <mxPoint x="600" y="190"/>
                            <mxPoint x="600" y="310"/>
                            <mxPoint x="600" y="380"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="lUqpj-z38_llIR96-J4U-38" value="if upgrade, target is /pkg/$cid.upgrade&lt;br&gt;after verify, remove old version,rename $cid.upgrade to $cid&amp;nbsp;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
                    <mxGeometry x="600" y="957.5" width="210" height="85" as="geometry"/>
                </mxCell>
            </root>
        </mxGraphModel>
    </diagram>
</mxfile>