ahriman/docs/ahriman-architecture.svg

5361 lines
508 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 3.0.0 (0)
-->
<!-- Title: G Pages: 1 -->
<svg width="10885pt" height="3686pt"
viewBox="0.00 0.00 10885.32 3686.23" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 3682.23)">
<title>G</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-3682.23 10881.32,-3682.23 10881.32,4 -4,4"/>
<!-- ahriman_application_ahriman -->
<g id="node1" class="node">
<title>ahriman_application_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#723131" stroke="black" cx="8720" cy="-28.99" rx="46.84" ry="28.98"/>
<text text-anchor="middle" x="8720" y="-37.49" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8720" y="-26.49" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="8720" y="-15.49" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman</text>
</g>
<!-- ahriman_application_application -->
<g id="node2" class="node">
<title>ahriman_application_application</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#db0505" stroke="black" cx="9358" cy="-729.11" rx="46.84" ry="28.98"/>
<text text-anchor="middle" x="9358" y="-737.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9358" y="-726.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="9358" y="-715.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application</text>
</g>
<!-- ahriman_application_handlers_add -->
<g id="node8" class="node">
<title>ahriman_application_handlers_add</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#913030" stroke="black" cx="9734" cy="-502.26" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="9734" y="-516.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9734" y="-505.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="9734" y="-494.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="9734" y="-483.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">add</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_add -->
<g id="edge1" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_add</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9404.14,-724.14C9510.53,-713.86 9767.34,-682.16 9811,-612.8"/>
<path fill="none" stroke="black" d="M9811,-610.8C9828.13,-583.59 9803.49,-553.97 9777.64,-532.72"/>
<polygon fill="#db0505" stroke="black" points="9779.65,-529.85 9769.63,-526.41 9775.32,-535.35 9779.65,-529.85"/>
</g>
<!-- ahriman_application_handlers_clean -->
<g id="node9" class="node">
<title>ahriman_application_handlers_clean</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#913030" stroke="black" cx="10067" cy="-502.26" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="10067" y="-516.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10067" y="-505.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="10067" y="-494.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="10067" y="-483.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">clean</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_clean -->
<g id="edge2" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_clean</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9963,-610.8C9989.05,-590.04 10015.1,-563.09 10034.61,-541.36"/>
<polygon fill="#db0505" stroke="black" points="10037.47,-543.42 10041.5,-533.61 10032.24,-538.77 10037.47,-543.42"/>
</g>
<!-- ahriman_application_handlers_key_import -->
<g id="node13" class="node">
<title>ahriman_application_handlers_key_import</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#913030" stroke="black" cx="9845" cy="-502.26" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="9845" y="-516.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9845" y="-505.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="9845" y="-494.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="9845" y="-483.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">key_import</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_key_import -->
<g id="edge3" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_key_import</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9811,-610.8C9822.78,-592.08 9830.78,-568.96 9836.05,-548.95"/>
<polygon fill="#db0505" stroke="black" points="9839.48,-549.66 9838.49,-539.11 9832.68,-547.97 9839.48,-549.66"/>
</g>
<!-- ahriman_application_handlers_patch -->
<g id="node14" class="node">
<title>ahriman_application_handlers_patch</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="8639" cy="-502.26" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="8639" y="-516.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8639" y="-505.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="8639" y="-494.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="8639" y="-483.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">patch</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge4" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_patch</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9311.53,-725.99C9224.56,-720.81 9032.3,-703.58 8881,-648.57 8804.91,-620.9 8726.24,-568.42 8680.01,-534.68"/>
<polygon fill="#db0505" stroke="black" points="8681.89,-531.72 8671.76,-528.61 8677.74,-537.35 8681.89,-531.72"/>
</g>
<!-- ahriman_application_handlers_rebuild -->
<g id="node15" class="node">
<title>ahriman_application_handlers_rebuild</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#822b2b" stroke="black" cx="9434" cy="-502.26" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="9434" y="-516.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9434" y="-505.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="9434" y="-494.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="9434" y="-483.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">rebuild</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_rebuild -->
<g id="edge5" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_rebuild</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9378.06,-702.67C9388.85,-687.72 9401.46,-667.99 9409,-648.57 9421.33,-616.79 9427.6,-578.76 9430.77,-549.58"/>
<polygon fill="#db0505" stroke="black" points="9434.29,-549.55 9431.81,-539.25 9427.33,-548.86 9434.29,-549.55"/>
</g>
<!-- ahriman_application_handlers_remove -->
<g id="node16" class="node">
<title>ahriman_application_handlers_remove</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#913030" stroke="black" cx="9212" cy="-502.26" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="9212" y="-516.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9212" y="-505.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="9212" y="-494.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="9212" y="-483.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">remove</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_remove -->
<g id="edge6" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_remove</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9375.43,-702.16C9388.88,-678.88 9403.82,-643.73 9395,-612.8"/>
<path fill="none" stroke="black" d="M9395,-610.8C9377.12,-548.07 9325.59,-567.68 9267,-539.03 9263.04,-537.09 9259.01,-534.92 9255.04,-532.63"/>
<polygon fill="#db0505" stroke="black" points="9256.84,-529.62 9246.46,-527.48 9253.23,-535.62 9256.84,-529.62"/>
</g>
<!-- ahriman_application_handlers_remove_unknown -->
<g id="node17" class="node">
<title>ahriman_application_handlers_remove_unknown</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#822b2b" stroke="black" cx="10308" cy="-502.26" rx="65.11" ry="36.54"/>
<text text-anchor="middle" x="10308" y="-516.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10308" y="-505.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="10308" y="-494.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="10308" y="-483.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">remove_unknown</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_remove_unknown -->
<g id="edge7" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_remove_unknown</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9404.66,-726.48C9509.01,-721.9 9768.41,-705.25 9977,-648.57 10078.45,-621 10188.86,-567.29 10253.06,-533.46"/>
<polygon fill="#db0505" stroke="black" points="10255,-536.39 10262.19,-528.61 10251.72,-530.21 10255,-536.39"/>
</g>
<!-- ahriman_application_handlers_report -->
<g id="node18" class="node">
<title>ahriman_application_handlers_report</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#822b2b" stroke="black" cx="8879" cy="-502.26" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="8879" y="-516.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8879" y="-505.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="8879" y="-494.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="8879" y="-483.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_report -->
<g id="edge8" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9321.88,-710.24C9261.73,-680.73 9136.98,-620.54 9029,-575.03 8987.39,-557.49 8974.27,-559.45 8934,-539.03 8930.07,-537.03 8926.06,-534.82 8922.1,-532.5"/>
<polygon fill="#db0505" stroke="black" points="8923.91,-529.51 8913.54,-527.31 8920.28,-535.49 8923.91,-529.51"/>
</g>
<!-- ahriman_application_handlers_setup -->
<g id="node20" class="node">
<title>ahriman_application_handlers_setup</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#822b2b" stroke="black" cx="9323" cy="-502.26" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="9323" y="-516.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9323" y="-505.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="9323" y="-494.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="9323" y="-483.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">setup</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_setup -->
<g id="edge9" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_setup</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9395,-610.8C9387.67,-585.08 9371.6,-560.04 9356.49,-540.6"/>
<polygon fill="#db0505" stroke="black" points="9359.09,-538.24 9350.11,-532.62 9353.62,-542.62 9359.09,-538.24"/>
</g>
<!-- ahriman_application_handlers_sign -->
<g id="node21" class="node">
<title>ahriman_application_handlers_sign</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#913030" stroke="black" cx="9101" cy="-502.26" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="9101" y="-516.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9101" y="-505.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="9101" y="-494.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="9101" y="-483.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">sign</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_sign -->
<g id="edge10" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_sign</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9319,-610.8C9264.73,-553.17 9226.95,-574.13 9156,-539.03 9152.05,-537.07 9148.03,-534.89 9144.06,-532.59"/>
<polygon fill="#db0505" stroke="black" points="9145.86,-529.59 9135.49,-527.42 9142.24,-535.58 9145.86,-529.59"/>
</g>
<!-- ahriman_application_handlers_status -->
<g id="node22" class="node">
<title>ahriman_application_handlers_status</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="8990" cy="-502.26" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="8990" y="-516.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8990" y="-505.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="8990" y="-494.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="8990" y="-483.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_status -->
<g id="edge11" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9355.14,-700.06C9351.14,-674.37 9341.6,-636.8 9319,-612.8"/>
<path fill="none" stroke="black" d="M9319,-610.8C9283.87,-573.49 9055.47,-543.33 9045,-539.03 9040.8,-537.3 9036.57,-535.24 9032.43,-533"/>
<polygon fill="#db0505" stroke="black" points="9033.94,-529.83 9023.53,-527.84 9030.43,-535.89 9033.94,-529.83"/>
</g>
<!-- ahriman_application_handlers_status_update -->
<g id="node23" class="node">
<title>ahriman_application_handlers_status_update</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#822b2b" stroke="black" cx="8759" cy="-502.26" rx="55.31" ry="36.54"/>
<text text-anchor="middle" x="8759" y="-516.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8759" y="-505.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="8759" y="-494.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="8759" y="-483.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status_update</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_status_update -->
<g id="edge12" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_status_update</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9312.98,-721.22C9247.92,-710.41 9124.5,-686.67 9025,-648.57 8929.62,-612.05 8912.47,-588.28 8823,-539.03 8818.58,-536.59 8814,-534.06 8809.41,-531.51"/>
<polygon fill="#db0505" stroke="black" points="8811.05,-528.42 8800.61,-526.62 8807.65,-534.54 8811.05,-528.42"/>
</g>
<!-- ahriman_application_handlers_sync -->
<g id="node24" class="node">
<title>ahriman_application_handlers_sync</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#913030" stroke="black" cx="9956" cy="-502.26" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="9956" y="-516.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9956" y="-505.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="9956" y="-494.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="9956" y="-483.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">sync</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_sync -->
<g id="edge13" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_sync</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9404.8,-727.14C9500.59,-723.89 9724.82,-709.77 9901,-648.57 9931.05,-638.13 9938.12,-632.62 9963,-612.8"/>
<path fill="none" stroke="black" d="M9963,-610.8C9981.36,-596.17 9980.04,-570.06 9973.93,-547.23"/>
<polygon fill="#db0505" stroke="black" points="9977.19,-545.92 9970.95,-537.36 9970.49,-547.94 9977.19,-545.92"/>
</g>
<!-- ahriman_application_handlers_update -->
<g id="node26" class="node">
<title>ahriman_application_handlers_update</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#913030" stroke="black" cx="9584" cy="-502.26" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="9584" y="-516.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9584" y="-505.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="9584" y="-494.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="9584" y="-483.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">update</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_update -->
<g id="edge14" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_update</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9382.19,-704.05C9422.07,-664.37 9501.83,-585.01 9548.25,-538.83"/>
<polygon fill="#db0505" stroke="black" points="9550.78,-541.25 9555.4,-531.71 9545.84,-536.29 9550.78,-541.25"/>
</g>
<!-- ahriman_application_application_application -->
<g id="node3" class="node">
<title>ahriman_application_application_application</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#913030" stroke="black" cx="7686" cy="-846.43" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="7686" y="-860.43" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7686" y="-849.43" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="7686" y="-838.43" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="7686" y="-827.43" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application</text>
</g>
<!-- ahriman_application_application_application&#45;&gt;ahriman_application_application -->
<g id="edge15" class="edge">
<title>ahriman_application_application_application&#45;&gt;ahriman_application_application</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7732.5,-842.76C7839.16,-836.65 8109.7,-821.31 8336,-809.66 8669.72,-792.48 8754.63,-808.22 9087,-773.66 9162.47,-765.81 9248.91,-750.88 9303.46,-740.71"/>
<polygon fill="#913030" stroke="black" points="9304.42,-744.09 9313.6,-738.81 9303.13,-737.21 9304.42,-744.09"/>
</g>
<!-- ahriman_application_application_packages -->
<g id="node4" class="node">
<title>ahriman_application_application_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="7042" cy="-955.97" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="7042" y="-969.97" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7042" y="-958.97" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="7042" y="-947.97" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="7042" y="-936.97" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">packages</text>
</g>
<!-- ahriman_application_application_packages&#45;&gt;ahriman_application_application_application -->
<g id="edge16" class="edge">
<title>ahriman_application_application_packages&#45;&gt;ahriman_application_application_application</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7087.62,-947.4C7166.28,-934.33 7332.53,-906.69 7473,-883.2 7526.41,-874.27 7587.35,-864.03 7630.32,-856.8"/>
<polygon fill="#732626" stroke="black" points="7631.02,-860.23 7640.3,-855.12 7629.86,-853.33 7631.02,-860.23"/>
</g>
<!-- ahriman_application_application_properties -->
<g id="node5" class="node">
<title>ahriman_application_application_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a32828" stroke="black" cx="7042" cy="-1065.51" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="7042" y="-1079.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7042" y="-1068.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="7042" y="-1057.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="7042" y="-1046.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">properties</text>
</g>
<!-- ahriman_application_application_properties&#45;&gt;ahriman_application_application_packages -->
<g id="edge17" class="edge">
<title>ahriman_application_application_properties&#45;&gt;ahriman_application_application_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7042,-1028.7C7042,-1020.53 7042,-1011.74 7042,-1003.21"/>
<polygon fill="#a32828" stroke="black" points="7045.5,-1002.99 7042,-992.99 7038.5,-1002.99 7045.5,-1002.99"/>
</g>
<!-- ahriman_application_application_repository -->
<g id="node6" class="node">
<title>ahriman_application_application_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="7648" cy="-955.97" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="7648" y="-969.97" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7648" y="-958.97" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="7648" y="-947.97" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="7648" y="-936.97" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository</text>
</g>
<!-- ahriman_application_application_properties&#45;&gt;ahriman_application_application_repository -->
<g id="edge18" class="edge">
<title>ahriman_application_application_properties&#45;&gt;ahriman_application_application_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7087.55,-1056.43C7196.94,-1037.01 7474.18,-987.82 7592.79,-966.77"/>
<polygon fill="#a32828" stroke="black" points="7593.52,-970.19 7602.75,-965 7592.29,-963.3 7593.52,-970.19"/>
</g>
<!-- ahriman_application_application_repository&#45;&gt;ahriman_application_application_application -->
<g id="edge19" class="edge">
<title>ahriman_application_application_repository&#45;&gt;ahriman_application_application_application</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7660.23,-920.35C7663.49,-911.14 7667.05,-901.07 7670.45,-891.43"/>
<polygon fill="#732626" stroke="black" points="7673.76,-892.58 7673.79,-881.98 7667.16,-890.25 7673.76,-892.58"/>
</g>
<!-- ahriman_application_handlers -->
<g id="node7" class="node">
<title>ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#950303" stroke="black" cx="8720" cy="-122.97" rx="46.84" ry="28.98"/>
<text text-anchor="middle" x="8720" y="-131.47" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8720" y="-120.47" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="8720" y="-109.47" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers</text>
</g>
<!-- ahriman_application_handlers&#45;&gt;ahriman_application_ahriman -->
<g id="edge20" class="edge">
<title>ahriman_application_handlers&#45;&gt;ahriman_application_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8720,-93.88C8720,-85.84 8720,-76.94 8720,-68.39"/>
<polygon fill="#950303" stroke="black" points="8723.5,-68.23 8720,-58.23 8716.5,-68.23 8723.5,-68.23"/>
</g>
<!-- ahriman_application_handlers_add&#45;&gt;ahriman_application_handlers -->
<g id="edge21" class="edge">
<title>ahriman_application_handlers_add&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9731.64,-465.08C9730.99,-446.07 9731.12,-422.43 9734,-401.5"/>
</g>
<!-- ahriman_application_handlers_clean&#45;&gt;ahriman_application_handlers -->
<g id="edge22" class="edge">
<title>ahriman_application_handlers_clean&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10100.52,-476.64C10107.38,-472.43 10114.73,-468.46 10122,-465.49 10188.32,-438.37 10452.62,-471.64 10438,-401.5"/>
</g>
<!-- ahriman_application_handlers_dump -->
<g id="node10" class="node">
<title>ahriman_application_handlers_dump</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="10438" cy="-502.26" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="10438" y="-516.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10438" y="-505.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="10438" y="-494.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="10438" y="-483.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">dump</text>
</g>
<!-- ahriman_application_handlers_dump&#45;&gt;ahriman_application_handlers -->
<g id="edge23" class="edge">
<title>ahriman_application_handlers_dump&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10441.52,-465.34C10442.52,-446.2 10442.35,-422.35 10438,-401.5"/>
</g>
<!-- ahriman_application_handlers_handler -->
<g id="node11" class="node">
<title>ahriman_application_handlers_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b30404" stroke="black" cx="9698" cy="-611.8" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="9698" y="-625.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9698" y="-614.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="9698" y="-603.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="9698" y="-592.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handler</text>
</g>
<!-- ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers -->
<g id="edge24" class="edge">
<title>ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9684.14,-576.57C9674.05,-546.45 9664.34,-501.84 9678,-465.49 9691.29,-430.11 9728.86,-438.94 9734,-401.5"/>
</g>
<!-- ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_add -->
<g id="edge25" class="edge">
<title>ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_add</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9709.59,-576.18C9712.61,-567.16 9715.91,-557.3 9719.07,-547.84"/>
<polygon fill="#b30404" stroke="black" points="9722.45,-548.77 9722.31,-538.18 9715.82,-546.55 9722.45,-548.77"/>
</g>
<!-- ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_clean -->
<g id="edge26" class="edge">
<title>ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_clean</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9739.38,-593.95C9756.92,-587.31 9777.73,-580.08 9797,-575.03 9890.72,-550.46 9921.72,-574.18 10012,-539.03 10016.23,-537.38 10020.48,-535.37 10024.64,-533.17"/>
<polygon fill="#b30404" stroke="black" points="10026.61,-536.07 10033.56,-528.07 10023.14,-530 10026.61,-536.07"/>
</g>
<!-- ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_dump -->
<g id="edge27" class="edge">
<title>ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_dump</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9738.66,-593.14C9756.27,-586.28 9777.31,-579.1 9797,-575.03 10052.09,-522.23 10134.32,-619.72 10382,-539.03 10386.62,-537.52 10391.24,-535.54 10395.74,-533.28"/>
<polygon fill="#b30404" stroke="black" points="10397.67,-536.22 10404.73,-528.32 10394.29,-530.08 10397.67,-536.22"/>
</g>
<!-- ahriman_application_handlers_help -->
<g id="node12" class="node">
<title>ahriman_application_handlers_help</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#993333" stroke="black" cx="10178" cy="-502.26" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="10178" y="-516.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10178" y="-505.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="10178" y="-494.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="10178" y="-483.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">help</text>
</g>
<!-- ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_help -->
<g id="edge28" class="edge">
<title>ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_help</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9738.77,-593.6C9756.39,-586.82 9777.42,-579.58 9797,-575.03 9938.99,-542.03 9985.74,-588.09 10123,-539.03 10127.28,-537.5 10131.56,-535.58 10135.74,-533.42"/>
<polygon fill="#b30404" stroke="black" points="10137.68,-536.35 10144.68,-528.4 10134.25,-530.24 10137.68,-536.35"/>
</g>
<!-- ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_key_import -->
<g id="edge29" class="edge">
<title>ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_key_import</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9731.72,-586.12C9753.01,-570.55 9780.67,-550.32 9803.33,-533.74"/>
<polygon fill="#b30404" stroke="black" points="9805.43,-536.54 9811.43,-527.81 9801.29,-530.89 9805.43,-536.54"/>
</g>
<!-- ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge30" class="edge">
<title>ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_patch</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9652.06,-604.06C9595.14,-595.96 9495.13,-582.52 9409,-575.03 9250.73,-561.26 8846.32,-587.4 8695,-539.03 8690.37,-537.55 8685.74,-535.58 8681.25,-533.34"/>
<polygon fill="#b30404" stroke="black" points="8682.69,-530.14 8672.24,-528.39 8679.32,-536.27 8682.69,-530.14"/>
</g>
<!-- ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_rebuild -->
<g id="edge31" class="edge">
<title>ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_rebuild</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9656.14,-595.53C9638.51,-589.14 9617.78,-581.67 9599,-575.03 9552.89,-558.72 9539.42,-559.5 9495,-539.03 9489.64,-536.56 9484.15,-533.76 9478.76,-530.83"/>
<polygon fill="#b30404" stroke="black" points="9480.26,-527.66 9469.82,-525.84 9476.84,-533.77 9480.26,-527.66"/>
</g>
<!-- ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_remove -->
<g id="edge32" class="edge">
<title>ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_remove</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9651.7,-605.52C9555.43,-594.15 9336.82,-566.17 9267,-539.03 9262.77,-537.38 9258.51,-535.38 9254.36,-533.17"/>
<polygon fill="#b30404" stroke="black" points="9255.86,-530 9245.44,-528.07 9252.38,-536.08 9255.86,-530"/>
</g>
<!-- ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_remove_unknown -->
<g id="edge33" class="edge">
<title>ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_remove_unknown</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9738.71,-593.34C9756.32,-586.51 9777.36,-579.3 9797,-575.03 9987.42,-533.55 10045.99,-590.3 10234,-539.03 10240.14,-537.35 10246.39,-535.17 10252.53,-532.72"/>
<polygon fill="#b30404" stroke="black" points="10254.21,-535.81 10262.04,-528.67 10251.46,-529.37 10254.21,-535.81"/>
</g>
<!-- ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_report -->
<g id="edge34" class="edge">
<title>ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9652.03,-604.42C9595.07,-596.68 9495.02,-583.61 9409,-575.03 9303.66,-564.52 9034.28,-572.94 8934,-539.03 8929.52,-537.51 8925.04,-535.54 8920.68,-533.31"/>
<polygon fill="#b30404" stroke="black" points="8922.39,-530.25 8911.95,-528.42 8918.96,-536.36 8922.39,-530.25"/>
</g>
<!-- ahriman_application_handlers_search -->
<g id="node19" class="node">
<title>ahriman_application_handlers_search</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="8103" cy="-502.26" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="8103" y="-516.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8103" y="-505.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="8103" y="-494.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="8103" y="-483.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">search</text>
</g>
<!-- ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_search -->
<g id="edge35" class="edge">
<title>ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9652.08,-603.8C9595.18,-595.44 9495.19,-581.73 9409,-575.03 8911.14,-536.32 8782.21,-595.11 8286,-539.03 8242.34,-534.09 8193.53,-524.33 8157.3,-516.25"/>
<polygon fill="#b30404" stroke="black" points="8157.96,-512.82 8147.44,-514.03 8156.42,-519.64 8157.96,-512.82"/>
</g>
<!-- ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_setup -->
<g id="edge36" class="edge">
<title>ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_setup</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9653.04,-601.64C9571.03,-584.79 9403.22,-549.65 9378,-539.03 9373.87,-537.29 9369.72,-535.24 9365.64,-533.02"/>
<polygon fill="#b30404" stroke="black" points="9367.28,-529.92 9356.87,-527.93 9363.76,-535.98 9367.28,-529.92"/>
</g>
<!-- ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_sign -->
<g id="edge37" class="edge">
<title>ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_sign</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9652,-604.98C9523.22,-588.66 9167.66,-543.34 9156,-539.03 9151.74,-537.45 9147.47,-535.5 9143.3,-533.32"/>
<polygon fill="#b30404" stroke="black" points="9144.79,-530.15 9134.37,-528.27 9141.35,-536.24 9144.79,-530.15"/>
</g>
<!-- ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_status -->
<g id="edge38" class="edge">
<title>ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9651.99,-604.75C9595,-597.34 9494.92,-584.59 9409,-575.03 9247.43,-557.04 9198.39,-592.87 9045,-539.03 9040.53,-537.46 9036.07,-535.46 9031.72,-533.2"/>
<polygon fill="#b30404" stroke="black" points="9033.43,-530.15 9023,-528.28 9029.99,-536.25 9033.43,-530.15"/>
</g>
<!-- ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_status_update -->
<g id="edge39" class="edge">
<title>ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_status_update</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9652.05,-604.22C9595.11,-596.27 9495.08,-582.99 9409,-575.03 9279.09,-563.01 8948.19,-575.77 8823,-539.03 8817.66,-537.46 8812.27,-535.38 8807.01,-533.02"/>
<polygon fill="#b30404" stroke="black" points="8808.24,-529.72 8797.72,-528.49 8805.18,-536.02 8808.24,-529.72"/>
</g>
<!-- ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_sync -->
<g id="edge40" class="edge">
<title>ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_sync</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9739.86,-595.53C9757.49,-589.14 9778.22,-581.67 9797,-575.03 9843.11,-558.72 9857.06,-560.52 9901,-539.03 9904.96,-537.09 9908.99,-534.92 9912.96,-532.63"/>
<polygon fill="#b30404" stroke="black" points="9914.77,-535.62 9921.54,-527.48 9911.16,-529.62 9914.77,-535.62"/>
</g>
<!-- ahriman_application_handlers_unsafe_commands -->
<g id="node25" class="node">
<title>ahriman_application_handlers_unsafe_commands</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#822b2b" stroke="black" cx="10573" cy="-502.26" rx="70.01" ry="36.54"/>
<text text-anchor="middle" x="10573" y="-516.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10573" y="-505.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="10573" y="-494.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="10573" y="-483.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">unsafe_commands</text>
</g>
<!-- ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_unsafe_commands -->
<g id="edge41" class="edge">
<title>ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_unsafe_commands</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9738.64,-593.04C9756.25,-586.17 9777.29,-579 9797,-575.03 10101.06,-513.66 10192.58,-612.27 10494,-539.03 10500.94,-537.34 10508.02,-535.05 10514.95,-532.44"/>
<polygon fill="#b30404" stroke="black" points="10516.3,-535.67 10524.28,-528.7 10513.7,-529.17 10516.3,-535.67"/>
</g>
<!-- ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_update -->
<g id="edge42" class="edge">
<title>ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_update</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9668.64,-583.1C9654.13,-569.41 9636.46,-552.74 9621.03,-538.19"/>
<polygon fill="#b30404" stroke="black" points="9623.33,-535.55 9613.65,-531.23 9618.53,-540.64 9623.33,-535.55"/>
</g>
<!-- ahriman_application_handlers_user -->
<g id="node27" class="node">
<title>ahriman_application_handlers_user</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="8342" cy="-502.26" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="8342" y="-516.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8342" y="-505.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="8342" y="-494.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="8342" y="-483.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">user</text>
</g>
<!-- ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_user -->
<g id="edge43" class="edge">
<title>ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_user</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9652.07,-603.96C9595.16,-595.77 9495.15,-582.22 9409,-575.03 9042.82,-544.43 8948.79,-574.05 8583,-539.03 8519.12,-532.91 8446.32,-521.48 8397.6,-513.18"/>
<polygon fill="#b30404" stroke="black" points="8398.03,-509.71 8387.58,-511.46 8396.84,-516.61 8398.03,-509.71"/>
</g>
<!-- ahriman_application_handlers_web -->
<g id="node28" class="node">
<title>ahriman_application_handlers_web</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#822b2b" stroke="black" cx="8570" cy="-224.74" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="8570" y="-238.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8570" y="-227.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="8570" y="-216.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="8570" y="-205.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web</text>
</g>
<!-- ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_web -->
<g id="edge44" class="edge">
<title>ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9656.3,-594.91C9609.26,-576.72 9537.96,-548.25 9528,-539.03 9501,-514.04 9519.35,-487.67 9490,-465.49 9192.95,-240.96 9009.41,-449.41 8669,-298.5 8647.02,-288.76 8625.2,-273.49 8607.66,-259.44"/>
<polygon fill="#b30404" stroke="black" points="8609.87,-256.73 8599.92,-253.1 8605.43,-262.14 8609.87,-256.73"/>
</g>
<!-- ahriman_application_handlers_help&#45;&gt;ahriman_application_handlers -->
<g id="edge45" class="edge">
<title>ahriman_application_handlers_help&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10212.44,-477.27C10219.39,-473 10226.79,-468.85 10234,-465.49 10320.13,-425.34 10457.38,-494.52 10438,-401.5"/>
</g>
<!-- ahriman_application_handlers_key_import&#45;&gt;ahriman_application_handlers -->
<g id="edge46" class="edge">
<title>ahriman_application_handlers_key_import&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9809,-478.57C9775.52,-456.08 9731.17,-422.1 9734,-401.5"/>
</g>
<!-- ahriman_application_handlers_patch&#45;&gt;ahriman_application_handlers -->
<g id="edge47" class="edge">
<title>ahriman_application_handlers_patch&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8674.87,-478.3C8708.13,-455.94 8753.31,-422.34 8759,-401.5"/>
<path fill="none" stroke="black" d="M8759,-399.5C8766.49,-372.06 8738.17,-354.87 8759,-335.5"/>
</g>
<!-- ahriman_application_handlers_rebuild&#45;&gt;ahriman_application_handlers -->
<g id="edge48" class="edge">
<title>ahriman_application_handlers_rebuild&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9400.52,-476.22C9364.69,-448.77 9314.11,-407.77 9323,-401.5"/>
</g>
<!-- ahriman_application_handlers_remove&#45;&gt;ahriman_application_handlers -->
<g id="edge49" class="edge">
<title>ahriman_application_handlers_remove&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9240.1,-472.6C9261.64,-451.49 9292.73,-422.87 9323,-401.5"/>
</g>
<!-- ahriman_application_handlers_remove_unknown&#45;&gt;ahriman_application_handlers -->
<g id="edge50" class="edge">
<title>ahriman_application_handlers_remove_unknown&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10355.22,-476.79C10394.21,-454.89 10442.48,-423.01 10438,-401.5"/>
</g>
<!-- ahriman_application_handlers_report&#45;&gt;ahriman_application_handlers -->
<g id="edge51" class="edge">
<title>ahriman_application_handlers_report&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8912.44,-476.23C8946.39,-450.11 8993.52,-411.59 8990,-401.5"/>
<path fill="none" stroke="black" d="M8990,-399.5C8962.9,-321.87 8886.3,-362.76 8835,-298.5"/>
</g>
<!-- ahriman_application_handlers_search&#45;&gt;ahriman_application_handlers -->
<g id="edge52" class="edge">
<title>ahriman_application_handlers_search&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8147.35,-490.1C8307.55,-449.67 8846.33,-312.45 8835,-298.5"/>
<path fill="none" stroke="black" d="M8835,-297.5C8797.83,-252.58 8761.84,-195.36 8740.3,-159.19"/>
<polygon fill="#732626" stroke="black" points="8743.25,-157.29 8735.14,-150.46 8737.22,-160.85 8743.25,-157.29"/>
</g>
<!-- ahriman_application_handlers_setup&#45;&gt;ahriman_application_handlers -->
<g id="edge53" class="edge">
<title>ahriman_application_handlers_setup&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9310.68,-466.49C9305.02,-443.6 9303.33,-415.38 9323,-401.5"/>
</g>
<!-- ahriman_application_handlers_sign&#45;&gt;ahriman_application_handlers -->
<g id="edge54" class="edge">
<title>ahriman_application_handlers_sign&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9135.55,-477.22C9142.19,-473.05 9149.2,-468.95 9156,-465.49 9226.82,-429.4 9258.07,-447.34 9323,-401.5"/>
<path fill="none" stroke="black" d="M9323,-399.5C9474.02,-292.87 9909.72,-392.94 9734,-335.5"/>
<path fill="none" stroke="black" d="M9734,-334.5C9686.49,-318.98 8866.52,-337.3 8835,-298.5"/>
</g>
<!-- ahriman_application_handlers_status&#45;&gt;ahriman_application_handlers -->
<g id="edge55" class="edge">
<title>ahriman_application_handlers_status&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8994.2,-465.19C8995.39,-446 8995.18,-422.16 8990,-401.5"/>
</g>
<!-- ahriman_application_handlers_status_update&#45;&gt;ahriman_application_handlers -->
<g id="edge56" class="edge">
<title>ahriman_application_handlers_status_update&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8754.49,-465.56C8753.17,-446.27 8753.35,-422.21 8759,-401.5"/>
</g>
<!-- ahriman_application_handlers_sync&#45;&gt;ahriman_application_handlers -->
<g id="edge57" class="edge">
<title>ahriman_application_handlers_sync&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9989.4,-476.35C9996.27,-472.16 10003.65,-468.28 10011,-465.49 10100.71,-431.45 10457.57,-495.43 10438,-401.5"/>
<path fill="none" stroke="black" d="M10438,-399.5C10434.66,-383.45 10428.7,-378.74 10414,-371.5 10278.24,-304.67 9877.83,-382.52 9734,-335.5"/>
</g>
<!-- ahriman_application_handlers_unsafe_commands&#45;&gt;ahriman_application_handlers -->
<g id="edge58" class="edge">
<title>ahriman_application_handlers_unsafe_commands&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10525.02,-475.12C10488.04,-453.47 10442.46,-422.89 10438,-401.5"/>
</g>
<!-- ahriman_application_handlers_update&#45;&gt;ahriman_application_handlers -->
<g id="edge59" class="edge">
<title>ahriman_application_handlers_update&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9620.41,-478.95C9664.51,-451.65 9733.08,-408.22 9734,-401.5"/>
<path fill="none" stroke="black" d="M9734,-399.5C9737.87,-371.32 9761.03,-344.34 9734,-335.5"/>
</g>
<!-- ahriman_application_handlers_user&#45;&gt;ahriman_application_handlers -->
<g id="edge60" class="edge">
<title>ahriman_application_handlers_user&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8388.46,-498.39C8452.7,-492.77 8570.68,-476.43 8659,-429.49 8712.86,-400.86 8714.33,-377.04 8759,-335.5"/>
<path fill="none" stroke="black" d="M8759,-334.5C8785.69,-308.34 8858.57,-327.51 8835,-298.5"/>
</g>
<!-- ahriman_application_handlers_web&#45;&gt;ahriman_application_handlers -->
<g id="edge61" class="edge">
<title>ahriman_application_handlers_web&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8605.17,-200.35C8627.59,-185.43 8656.7,-166.07 8680,-150.58"/>
<polygon fill="#822b2b" stroke="black" points="8682.23,-153.3 8688.62,-144.84 8678.36,-147.47 8682.23,-153.3"/>
</g>
<!-- ahriman_application_lock -->
<g id="node29" class="node">
<title>ahriman_application_lock</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a2828" stroke="black" cx="6839" cy="-1634.65" rx="46.84" ry="28.98"/>
<text text-anchor="middle" x="6839" y="-1643.15" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6839" y="-1632.15" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="6839" y="-1621.15" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">lock</text>
</g>
<!-- ahriman_application_lock&#45;&gt;ahriman_application_handlers_handler -->
<g id="edge62" class="edge">
<title>ahriman_application_lock&#45;&gt;ahriman_application_handlers_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6879.71,-1620.32C7208.25,-1512.73 9415.54,-789.67 9447,-773.66 9507.48,-742.88 9513.82,-721.11 9571,-684.57 9596.73,-668.12 9626.41,-651.24 9650.59,-637.99"/>
<polygon fill="#7a2828" stroke="black" points="9652.47,-640.95 9659.58,-633.09 9649.12,-634.8 9652.47,-640.95"/>
</g>
<!-- ahriman_core -->
<g id="node30" class="node">
<title>ahriman_core</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f91010" stroke="black" cx="8505" cy="-3649.24" rx="42.94" ry="18"/>
<text text-anchor="middle" x="8505" y="-3646.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.core</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_application_packages -->
<g id="edge63" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_application_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10071,-3120.53C10074.59,-2937.09 10106.03,-2887.81 10071,-2707.7"/>
<path fill="none" stroke="black" d="M10071,-2705.7C10063.64,-2677.54 10061.98,-2670.4 10057,-2641.71 10028.54,-2477.88 10060.24,-2428.86 10009,-2270.67 9989.5,-2210.47 9994.15,-2179.91 9941,-2145.57 9850.41,-2087.05 9561.59,-2135.92 9457,-2109.57 9318.98,-2074.8 7218.91,-1165.87 7117,-1066.51"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_application_properties -->
<g id="edge64" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_application_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10109,-3482.25C10143.25,-3459.94 10122.63,-3428.81 10109,-3390.27"/>
<path fill="none" stroke="black" d="M10109,-3388.27C10074.65,-3291.16 9957,-3316.31 9957,-3213.3 9957,-3213.3 9957,-3213.3 9957,-2924.78 9957,-2798.82 9948.32,-2767.56 9943,-2641.71 9936.04,-2476.85 9942.07,-2435.24 9930,-2270.67 9925.91,-2214.87 9956.59,-2184.08 9916,-2145.57 9866.66,-2098.77 9371.71,-2122.81 9305,-2109.57 8967.56,-2042.6 8162.1,-1720.83 7857,-1561.88 7552.21,-1403.09 7205.91,-1176.16 7085.77,-1095.95"/>
<polygon fill="#f91010" stroke="black" points="7087.43,-1092.86 7077.18,-1090.21 7083.54,-1098.68 7087.43,-1092.86"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_application_repository -->
<g id="edge65" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_application_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10147,-2611.72C10154.52,-2560.02 10121.73,-2182.74 10085,-2145.57 10045.86,-2105.96 9890.58,-2124.76 9837,-2109.57 9482.94,-2009.24 9409.95,-1937.7 9077,-1780.96 8998.35,-1743.93 7724.07,-1144.16 7685,-1066.51"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_add -->
<g id="edge66" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_add</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10535,-1633.65C10517.08,-1568.73 10519.15,-1549.97 10492,-1488.34 10469.08,-1436.33 10455.78,-1427.21 10426,-1378.8 10359.87,-1271.29 10342.19,-1245.13 10275,-1138.28 10244.37,-1089.57 10237.74,-1076.73 10206,-1028.74 10173.31,-979.32 10165.32,-966.78 10130,-919.2 10126.76,-914.84 9888.67,-617.96 9887,-612.8"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_clean -->
<g id="edge67" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_clean</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10611,-1524.11C10596.73,-1432.19 10611,-1407.83 10611,-1314.81 10611,-1314.81 10611,-1314.81 10611,-1247.82 10611,-1074.74 10222.92,-662.87 10102.32,-539.06"/>
<polygon fill="#f91010" stroke="black" points="10104.59,-536.38 10095.1,-531.67 10099.58,-541.27 10104.59,-536.38"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_dump -->
<g id="edge68" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_dump</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10869,-2071.8C10858.12,-1957.3 10873.71,-1920.68 10824,-1816.96 10805.91,-1779.21 10783.16,-1781.87 10763,-1745.19"/>
<path fill="none" stroke="black" d="M10763,-1743.19C10717.25,-1651.77 10687,-1628.33 10687,-1526.11 10687,-1526.11 10687,-1526.11 10687,-954.97 10687,-788.56 10623.93,-753.45 10535,-612.8"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_handler -->
<g id="edge69" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10459,-1743.19C10404.41,-1520.02 10329.38,-1486.86 10220,-1284.82 10202.28,-1252.09 10195.44,-1245.2 10179,-1211.82 10147.98,-1148.82 10148.57,-1129.23 10117,-1066.51"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_help -->
<g id="edge70" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_help</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10869,-2189.12C10863.11,-2138.21 10877.52,-2124.34 10869,-2073.8"/>
<path fill="none" stroke="black" d="M10869,-2071.8C10844.55,-1926.74 10770.42,-1915.53 10711,-1780.96 10690.19,-1733.82 10685.69,-1721.36 10673,-1671.42 10656.88,-1607.98 10649,-1591.57 10649,-1526.11 10649,-1526.11 10649,-1526.11 10649,-1247.82 10649,-1167.24 10662.39,-1145.97 10649,-1066.51"/>
<path fill="none" stroke="black" d="M10649,-1064.51C10602.33,-808.96 10330.39,-603.96 10222.29,-531.49"/>
<polygon fill="#f91010" stroke="black" points="10224.14,-528.52 10213.87,-525.89 10220.26,-534.35 10224.14,-528.52"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_key_import -->
<g id="edge71" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_key_import</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10869,-2415.98C10879.74,-2369.4 10880.35,-2354.87 10869,-2308.44"/>
<path fill="none" stroke="black" d="M10869,-2306.44C10845.93,-2212.07 10814.39,-2197.93 10774,-2109.57 10707.86,-1964.87 10692.44,-1928.13 10632,-1780.96 10578.98,-1651.85 10574.71,-1615.87 10518,-1488.34 10356.36,-1124.84 10059.57,-649.24 9977,-575.03 9948.9,-549.77 9933.03,-557.37 9900,-539.03 9896.14,-536.88 9892.19,-534.57 9888.27,-532.19"/>
<polygon fill="#f91010" stroke="black" points="9890.1,-529.21 9879.76,-526.9 9886.41,-535.15 9890.1,-529.21"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge72" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_patch</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10451,-2415.98C10429.03,-2318.49 10483.5,-2285.63 10451,-2191.12"/>
<path fill="none" stroke="black" d="M10451,-2189.12C10392.35,-2023.16 10250.55,-2096.02 10103,-2000.03 9991.13,-1927.27 9986.5,-1872.17 9865,-1816.96 9790.73,-1783.2 9755.25,-1822.43 9685,-1780.96 9644.75,-1757.19 9178.12,-1167.94 9142,-1138.28 9116.48,-1117.32 9103.57,-1121.88 9077,-1102.28 8963.91,-1018.85 8938.48,-991.56 8849,-883.2 8812.06,-838.46 8807.08,-823.87 8778,-773.66 8732.58,-695.24 8685.56,-600.38 8659.52,-546.41"/>
<polygon fill="#f91010" stroke="black" points="8662.55,-544.63 8655.06,-537.14 8656.24,-547.67 8662.55,-544.63"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_rebuild -->
<g id="edge73" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_rebuild</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10717,-2705.7C10711.5,-2665.19 10724.81,-2653.85 10717,-2613.72"/>
<path fill="none" stroke="black" d="M10717,-2611.72C10699.34,-2520.93 10641,-2510.47 10641,-2417.98 10641,-2417.98 10641,-2417.98 10641,-2071.8 10641,-1942.8 10203.07,-1135.74 10131,-1028.74 10095.96,-976.71 10082.08,-967.45 10042,-919.2 10001.2,-870.07 9992.91,-856.03 9949,-809.66 9933,-792.77 9925.14,-792.14 9911,-773.66 9883.66,-737.94 9889.81,-720.68 9863,-684.57 9842.53,-656.99 9784.57,-590.67 9754,-575.03 9663.45,-528.7 9626.27,-565.25 9528,-539.03 9513.47,-535.15 9498.08,-529.83 9484.05,-524.48"/>
<polygon fill="#f91010" stroke="black" points="9485.17,-521.16 9474.58,-520.79 9482.62,-527.69 9485.17,-521.16"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_remove -->
<g id="edge74" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_remove</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10717,-2815.24C10707.65,-2768.37 10728.95,-2753.98 10717,-2707.7"/>
<path fill="none" stroke="black" d="M10717,-2705.7C10696.8,-2627.46 10654.74,-2623.63 10627,-2547.73 10606.87,-2492.65 10603,-2476.62 10603,-2417.98 10603,-2417.98 10603,-2417.98 10603,-2306.44 10603,-2203.05 10638.38,-2170.95 10603,-2073.8"/>
<path fill="none" stroke="black" d="M10603,-2071.8C10584.25,-2026.42 10555.35,-2033.05 10519,-2000.03 10093.75,-1613.76 9984.98,-1518.51 9589,-1102.28 9572.29,-1084.72 9314.04,-794.7 9302,-773.66 9260.02,-700.28 9233.99,-604.39 9221.31,-548.74"/>
<polygon fill="#f91010" stroke="black" points="9224.7,-547.82 9219.1,-538.83 9217.86,-549.35 9224.7,-547.82"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_remove_unknown -->
<g id="edge75" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_remove_unknown</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10649,-1064.51C10642.8,-999.49 10647.68,-981.16 10627,-919.2 10587.12,-799.71 10549.03,-781.02 10468,-684.57 10426.28,-634.9 10376.63,-579.14 10343.83,-542.73"/>
<polygon fill="#f91010" stroke="black" points="10346.39,-540.35 10337.09,-535.27 10341.19,-545.04 10346.39,-540.35"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_report -->
<g id="edge76" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10565,-2611.72C10508.95,-2487.98 10527,-2444.29 10527,-2308.44 10527,-2308.44 10527,-2308.44 10527,-2189.12 10527,-2044.12 9603.9,-1282.74 9532,-1211.82 9403.39,-1084.96 9027,-667.82 8912.46,-540.49"/>
<polygon fill="#f91010" stroke="black" points="8914.9,-537.98 8905.61,-532.88 8909.7,-542.66 8914.9,-537.98"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_search -->
<g id="edge77" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10413,-3120.53C10401.37,-2960.73 10684.84,-3083.74 10717,-2926.78"/>
<path fill="none" stroke="black" d="M10717,-2924.78C10721.23,-2874.34 10617.41,-2778.25 10590,-2735.7 10506.54,-2606.12 10484.32,-2568.46 10451,-2417.98"/>
<path fill="none" stroke="black" d="M10451,-2415.98C10402.78,-2280.93 10379.94,-2243.3 10275,-2145.57 10250.83,-2123.07 10238.71,-2125.9 10210,-2109.57 10153.64,-2077.52 10141.27,-2066.43 10084,-2036.03 10051.34,-2018.7 10041.27,-2018.09 10009,-2000.03 9877.94,-1926.71 9860.76,-1881.17 9725,-1816.96 9677.73,-1794.6 9657.54,-1808.35 9613,-1780.96 9586.26,-1764.51 9239.79,-1399.28 9216,-1378.8 9075.17,-1257.57 9030.47,-1238.52 8874,-1138.28 8707.25,-1031.45 8671.05,-989.73 8486,-919.2 8421.94,-894.78 8391.47,-923.49 8336,-883.2 8216.67,-796.54 8145.87,-628.31 8117.49,-548.01"/>
<polygon fill="#f91010" stroke="black" points="8120.67,-546.5 8114.08,-538.2 8114.05,-548.8 8120.67,-546.5"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_setup -->
<g id="edge78" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_setup</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10459,-1852.73C10435.63,-1811.03 10473.06,-1790.87 10459,-1745.19"/>
<path fill="none" stroke="black" d="M10459,-1743.19C10455.16,-1730.72 10171.43,-1388.75 10163,-1378.8 9916.27,-1087.54 9655.33,-751.66 9439,-575.03 9414.62,-555.12 9404.76,-555.61 9378,-539.03 9374.41,-536.8 9370.7,-534.46 9366.98,-532.1"/>
<polygon fill="#f91010" stroke="black" points="9368.67,-529.02 9358.36,-526.57 9364.89,-534.92 9368.67,-529.02"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_sign -->
<g id="edge79" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_sign</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10193,-1962.27C10141.35,-1908.14 10151.03,-1878.16 10108,-1816.96 9970.7,-1621.67 9563.16,-1183.03 9419,-992.74 9298.88,-834.17 9175.99,-630.97 9125.22,-544.83"/>
<polygon fill="#f91010" stroke="black" points="9128.19,-542.97 9120.1,-536.13 9122.15,-546.52 9128.19,-542.97"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_status -->
<g id="edge80" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10603,-2071.8C10572.37,-1960.15 10533.6,-1943.27 10459,-1854.73"/>
<path fill="none" stroke="black" d="M10459,-1852.73C10404.63,-1770.42 10387.56,-1752.23 10331,-1671.42 10297.02,-1622.87 10288.09,-1611.04 10255,-1561.88 10233.21,-1529.5 10230.07,-1519.82 10207,-1488.34 10196.79,-1474.41 10022.79,-1259.43 10010,-1247.82 9729.65,-993.2 9594.73,-1013.94 9302,-773.66 9205.41,-694.38 9200.95,-652.63 9103,-575.03 9079.22,-556.19 9070.61,-555.3 9045,-539.03 9041.43,-536.76 9037.74,-534.4 9034.04,-532.01"/>
<polygon fill="#f91010" stroke="black" points="9035.73,-528.94 9025.43,-526.46 9031.93,-534.82 9035.73,-528.94"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_status_update -->
<g id="edge81" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_status_update</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10717,-2924.78C10726.59,-2877.96 10731.27,-2862.86 10717,-2817.24"/>
<path fill="none" stroke="black" d="M10717,-2815.24C10683.5,-2708.18 10586.42,-2723.84 10565,-2613.72"/>
<path fill="none" stroke="black" d="M10565,-2611.72C10522.29,-2529.68 10489,-2510.47 10489,-2417.98 10489,-2417.98 10489,-2417.98 10489,-2189.12 10489,-2140.28 10411.7,-2066.46 10369,-2036.03 10300.21,-1987.01 10252.12,-2024.61 10193,-1964.27"/>
<path fill="none" stroke="black" d="M10193,-1962.27C9774.01,-1481.4 9566.01,-1462.86 9135,-992.74 8992.35,-837.15 8846.61,-631.19 8786.99,-544.5"/>
<polygon fill="#f91010" stroke="black" points="8789.7,-542.26 8781.16,-535.99 8783.93,-546.22 8789.7,-542.26"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_sync -->
<g id="edge82" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_sync</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10869,-2306.44C10863.42,-2255.49 10877.48,-2241.67 10869,-2191.12"/>
<path fill="none" stroke="black" d="M10869,-2189.12C10866.92,-2176.71 10676.76,-1792.61 10672,-1780.96 10652.57,-1733.38 10647.45,-1721.27 10635,-1671.42 10619.14,-1607.91 10621.88,-1590.66 10611,-1526.11"/>
<path fill="none" stroke="black" d="M10611,-1524.11C10501.4,-1083.78 10112.22,-661.43 9991.78,-538.78"/>
<polygon fill="#f91010" stroke="black" points="9994.09,-536.13 9984.58,-531.47 9989.11,-541.05 9994.09,-536.13"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_unsafe_commands -->
<g id="edge83" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_unsafe_commands</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10763,-1743.19C10723.66,-1655.09 10763,-1622.59 10763,-1526.11 10763,-1526.11 10763,-1526.11 10763,-954.97 10763,-797.49 10744.92,-751.85 10671,-612.8"/>
<path fill="none" stroke="black" d="M10671,-610.8C10658.78,-584.12 10637.47,-559.51 10617.84,-540.59"/>
<polygon fill="#f91010" stroke="black" points="10620.11,-537.91 10610.42,-533.62 10615.32,-543.02 10620.11,-537.91"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_update -->
<g id="edge84" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_update</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10717,-2611.72C10704.99,-2502.94 10845.01,-2524.76 10869,-2417.98"/>
<path fill="none" stroke="black" d="M10869,-2415.98C10879.4,-2315.78 10779.64,-2323.95 10733,-2234.67 10700.54,-2172.54 10553.13,-1703.36 10535,-1635.65"/>
<path fill="none" stroke="black" d="M10535,-1633.65C10511.09,-1558.76 10211.61,-1094.15 10168,-1028.74 10134.56,-978.58 10125.31,-966.55 10088,-919.2 10048.47,-869.04 10041.05,-853.91 9995,-809.66 9976.28,-791.67 9965.73,-793.51 9949,-773.66 9920.01,-739.27 9925.56,-722.25 9901,-684.57 9889.93,-667.58 9884.77,-665.07 9873,-648.57 9850.33,-616.79 9856.85,-597.59 9825,-575.03 9770.11,-536.14 9742.22,-559.03 9678,-539.03 9663.78,-534.6 9648.59,-529.15 9634.67,-523.85"/>
<polygon fill="#f91010" stroke="black" points="9635.85,-520.55 9625.26,-520.22 9633.33,-527.08 9635.85,-520.55"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_user -->
<g id="edge85" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_user</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10451,-2189.12C10421.85,-2098.76 10383.35,-2085 10302,-2036.03 10253.2,-2006.66 10229.46,-2026.45 10179,-2000.03 10110.39,-1964.12 9696.54,-1611.4 9637,-1561.88 9414.39,-1376.71 9401.04,-1267.67 9142,-1138.28 9076.02,-1105.32 9047.38,-1132.28 8980,-1102.28 8937.19,-1083.22 8293.74,-659.65 8293,-612.8"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_web -->
<g id="edge86" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10671,-501.26C10658.42,-488.39 10667.02,-475.41 10652,-465.49 10606.76,-435.59 8759.27,-312.93 8707,-298.5 8673.53,-289.26 8639.02,-270.88 8613.02,-254.9"/>
<polygon fill="#f91010" stroke="black" points="8614.87,-251.93 8604.54,-249.58 8611.15,-257.86 8614.87,-251.93"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_lock -->
<g id="edge87" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_lock</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9014,-3565.24C9133.51,-3540.73 10017.56,-3565.02 10109,-3484.25"/>
<path fill="none" stroke="black" d="M10109,-3482.25C10185.33,-3414.83 9992.86,-3413.09 9943,-3324.28 9918.29,-3280.27 9919,-3263.76 9919,-3213.3 9919,-3213.3 9919,-3213.3 9919,-3018.77 9919,-2879.49 9881,-2846.98 9881,-2707.7 9881,-2707.7 9881,-2707.7 9881,-2611.72 9881,-2508.12 9958.74,-2220.31 9887,-2145.57 9858.73,-2116.12 9193.51,-2114.68 9153,-2109.57 8917.8,-2079.9 7219.49,-1717.15 6893.16,-1647.26"/>
<polygon fill="#f91010" stroke="black" points="6893.53,-1643.76 6883.01,-1645.09 6892.06,-1650.6 6893.53,-1643.76"/>
</g>
<!-- ahriman_models_aur_package -->
<g id="node100" class="node">
<title>ahriman_models_aur_package</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#db0505" stroke="black" cx="5074" cy="-3121.53" rx="50.82" ry="28.98"/>
<text text-anchor="middle" x="5074" y="-3130.03" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5074" y="-3119.03" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="5074" y="-3108.03" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">aur_package</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_models_aur_package -->
<g id="edge88" class="edge">
<title>ahriman_core&#45;&gt;ahriman_models_aur_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8505,-3482.25C8494.9,-3471.11 8495.15,-3466.2 8486,-3454.26 8412.78,-3358.71 8403.36,-3309.49 8291,-3266.3 8138.02,-3207.48 5565.26,-3135.76 5134.84,-3124.15"/>
<polygon fill="#f91010" stroke="black" points="5134.87,-3120.65 5124.78,-3123.88 5134.69,-3127.65 5134.87,-3120.65"/>
</g>
<!-- ahriman_models_auth_settings -->
<g id="node101" class="node">
<title>ahriman_models_auth_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c82323" stroke="black" cx="3940" cy="-2190.12" rx="53.07" ry="28.98"/>
<text text-anchor="middle" x="3940" y="-2198.62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3940" y="-2187.62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="3940" y="-2176.62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">auth_settings</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_models_auth_settings -->
<g id="edge89" class="edge">
<title>ahriman_core&#45;&gt;ahriman_models_auth_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8429,-3294.29C8415.06,-3285.68 8418.67,-3275.33 8405,-3266.3 8360.67,-3237 8229.24,-3204 8177,-3194.3 8079.37,-3176.17 6492.2,-3089.13 6393,-3084.76 6244.09,-3078.19 5191.16,-3102.15 5052,-3048.76 4963.39,-3014.76 4801.34,-2830.69 4727,-2771.7 4582.88,-2657.34 4118.79,-2320.55 3979.73,-2219.87"/>
<polygon fill="#f91010" stroke="black" points="3981.59,-2216.89 3971.43,-2213.86 3977.48,-2222.56 3981.59,-2216.89"/>
</g>
<!-- ahriman_models_build_status -->
<g id="node102" class="node">
<title>ahriman_models_build_status</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#e50505" stroke="black" cx="6421" cy="-2518.74" rx="48.58" ry="28.98"/>
<text text-anchor="middle" x="6421" y="-2527.24" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6421" y="-2516.24" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="6421" y="-2505.24" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">build_status</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_models_build_status -->
<g id="edge90" class="edge">
<title>ahriman_core&#45;&gt;ahriman_models_build_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8505,-3388.27C8493.39,-3328.58 8487.97,-3307.23 8443,-3266.3 8303.76,-3139.54 7829.22,-3026.2 7655,-2954.77 7462.43,-2875.83 7423.38,-2831.36 7224,-2771.7 7138.31,-2746.05 7112.83,-2757.15 7026,-2735.7 6890.77,-2702.29 6856.82,-2692.21 6727,-2641.71 6670.3,-2619.66 6659.32,-2606.73 6603,-2583.73 6559.74,-2566.06 6509.57,-2548.64 6472.87,-2536.45"/>
<polygon fill="#f91010" stroke="black" points="6473.96,-2533.13 6463.37,-2533.31 6471.77,-2539.77 6473.96,-2533.13"/>
</g>
<!-- ahriman_models_counters -->
<g id="node103" class="node">
<title>ahriman_models_counters</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a32828" stroke="black" cx="6164" cy="-2416.98" rx="38.78" ry="28.98"/>
<text text-anchor="middle" x="6164" y="-2425.48" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6164" y="-2414.48" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="6164" y="-2403.48" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">counters</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_models_counters -->
<g id="edge91" class="edge">
<title>ahriman_core&#45;&gt;ahriman_models_counters</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8695,-3294.29C8689.74,-3254.88 8441.3,-3100.96 8405,-3084.76 8156.64,-2973.89 8068.37,-3030.01 7807,-2954.77 7576.77,-2888.5 7532.79,-2828.31 7300,-2771.7 7180.65,-2742.67 7146.29,-2760.51 7026,-2735.7 7023.66,-2735.21 6365.19,-2548.69 6363,-2547.73 6289.14,-2515.57 6273.86,-2500.15 6208,-2453.75 6204.37,-2451.19 6200.66,-2448.42 6197,-2445.6"/>
<polygon fill="#f91010" stroke="black" points="6199.15,-2442.84 6189.13,-2439.39 6194.81,-2448.34 6199.15,-2442.84"/>
</g>
<!-- ahriman_models_migration_result -->
<g id="node106" class="node">
<title>ahriman_models_migration_result</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#bc2f2f" stroke="black" cx="5102" cy="-3389.27" rx="60.62" ry="28.98"/>
<text text-anchor="middle" x="5102" y="-3397.77" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5102" y="-3386.77" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="5102" y="-3375.77" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">migration_result</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_models_migration_result -->
<g id="edge92" class="edge">
<title>ahriman_core&#45;&gt;ahriman_models_migration_result</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5102,-3565.24C5047.95,-3560.56 5069.31,-3477.25 5087.18,-3427.3"/>
<polygon fill="#f91010" stroke="black" points="5090.51,-3428.38 5090.68,-3417.79 5083.94,-3425.96 5090.51,-3428.38"/>
</g>
<!-- ahriman_models_package -->
<g id="node107" class="node">
<title>ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#950303" stroke="black" cx="5695" cy="-2518.74" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="5695" y="-2527.24" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5695" y="-2516.24" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="5695" y="-2505.24" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">package</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_models_package -->
<g id="edge93" class="edge">
<title>ahriman_core&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8505,-3482.25C8485.18,-3460.35 8699.09,-3325.54 8695,-3296.29"/>
<path fill="none" stroke="black" d="M8695,-3294.29C8692.24,-3279.01 8191.76,-3089.55 8177,-3084.76 7814.03,-2966.8 7689.97,-3030.25 7348,-2860.79 7287.19,-2830.66 7287.65,-2795.23 7224,-2771.7 7047.86,-2706.57 6984.42,-2784.22 6803,-2735.7 6744.23,-2719.98 6737.55,-2694.25 6679,-2677.71 6436.65,-2609.26 6362.41,-2665.7 6116,-2613.72"/>
</g>
<!-- ahriman_models_package_description -->
<g id="node108" class="node">
<title>ahriman_models_package_description</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b42d2d" stroke="black" cx="4436" cy="-2925.78" rx="74.91" ry="28.98"/>
<text text-anchor="middle" x="4436" y="-2934.28" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4436" y="-2923.28" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="4436" y="-2912.28" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">package_description</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_models_package_description -->
<g id="edge94" class="edge">
<title>ahriman_core&#45;&gt;ahriman_models_package_description</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8505,-3482.25C8477.58,-3451.94 8512.81,-3430.4 8505,-3390.27"/>
<path fill="none" stroke="black" d="M8505,-3388.27C8494.87,-3336.22 8473.21,-3325.57 8429,-3296.29"/>
<path fill="none" stroke="black" d="M8429,-3294.29C8415.34,-3285.24 8419.56,-3273.82 8405,-3266.3 8327.28,-3226.15 7708.24,-3200.7 7621,-3194.3 6449.04,-3108.21 6146.33,-3200.12 4981,-3048.76 4775.8,-3022.1 4725.29,-3006.77 4525,-2954.77 4517.31,-2952.78 4509.3,-2950.52 4501.37,-2948.17"/>
<polygon fill="#f91010" stroke="black" points="4502.36,-2944.81 4491.77,-2945.27 4500.33,-2951.51 4502.36,-2944.81"/>
</g>
<!-- ahriman_models_package_source -->
<g id="node109" class="node">
<title>ahriman_models_package_source</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#e50505" stroke="black" cx="7173" cy="-2612.72" rx="62.45" ry="28.98"/>
<text text-anchor="middle" x="7173" y="-2621.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7173" y="-2610.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="7173" y="-2599.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">package_source</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_models_package_source -->
<g id="edge95" class="edge">
<title>ahriman_core&#45;&gt;ahriman_models_package_source</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8545.47,-3643.04C8631.93,-3631.68 8840.88,-3602.76 9014,-3567.24"/>
<path fill="none" stroke="black" d="M9014,-3565.24C9052.92,-3557.26 8969.55,-3540.87 8942,-3512.24 8931.57,-3501.41 8932.55,-3495.87 8923,-3484.25"/>
<path fill="none" stroke="black" d="M8923,-3482.25C8814.97,-3350.9 8802.44,-3302.21 8671,-3194.3 8569.43,-3110.9 7733.7,-2712.6 7607,-2677.71 7481.98,-2643.29 7331.29,-2626.35 7244.37,-2618.86"/>
<polygon fill="#f91010" stroke="black" points="7244.61,-2615.37 7234.35,-2618.02 7244.02,-2622.35 7244.61,-2615.37"/>
</g>
<!-- ahriman_models_report_settings -->
<g id="node111" class="node">
<title>ahriman_models_report_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b03a3a" stroke="black" cx="8419" cy="-3483.25" rx="57.97" ry="28.98"/>
<text text-anchor="middle" x="8419" y="-3491.75" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8419" y="-3480.75" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="8419" y="-3469.75" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report_settings</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_models_report_settings -->
<g id="edge96" class="edge">
<title>ahriman_core&#45;&gt;ahriman_models_report_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8507.31,-3631.21C8509.03,-3614.62 8510.26,-3588.83 8505,-3567.24"/>
<path fill="none" stroke="black" d="M8505,-3565.24C8499.62,-3543.15 8482.77,-3525.01 8465.39,-3511.53"/>
<polygon fill="#f91010" stroke="black" points="8467.01,-3508.38 8456.87,-3505.3 8462.87,-3514.03 8467.01,-3508.38"/>
</g>
<!-- ahriman_models_repository_paths -->
<g id="node112" class="node">
<title>ahriman_models_repository_paths</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#e50505" stroke="black" cx="9014" cy="-3483.25" rx="62.87" ry="28.98"/>
<text text-anchor="middle" x="9014" y="-3491.75" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9014" y="-3480.75" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="9014" y="-3469.75" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository_paths</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_models_repository_paths -->
<g id="edge97" class="edge">
<title>ahriman_core&#45;&gt;ahriman_models_repository_paths</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9014,-3565.24C9031.59,-3561.63 9031.63,-3541.46 9027.25,-3522.16"/>
<polygon fill="#f91010" stroke="black" points="9030.57,-3521 9024.63,-3512.23 9023.8,-3522.79 9030.57,-3521"/>
</g>
<!-- ahriman_models_result -->
<g id="node113" class="node">
<title>ahriman_models_result</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#d10505" stroke="black" cx="5633" cy="-2307.44" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="5633" y="-2315.94" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5633" y="-2304.94" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="5633" y="-2293.94" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">result</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_models_result -->
<g id="edge98" class="edge">
<title>ahriman_core&#45;&gt;ahriman_models_result</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8923,-3482.25C8843.03,-3365.01 8890.4,-3289.33 8785,-3194.3 8678.34,-3098.12 8616.39,-3132.67 8481,-3084.76 8315.11,-3026.04 8273.21,-3012.58 8107,-2954.77 7986.99,-2913.03 7954.77,-2908.48 7837,-2860.79 7749.8,-2825.49 7736.23,-2794.63 7645,-2771.7 7377.74,-2704.51 7296,-2790.85 7026,-2735.7 6830.28,-2695.72 6796.71,-2632.55 6603,-2583.73 6498.41,-2557.37 6467.95,-2572.62 6363,-2547.73 6096.57,-2484.55 5787.98,-2368.81 5676.2,-2325.44"/>
<polygon fill="#f91010" stroke="black" points="5677.21,-2322.08 5666.62,-2321.72 5674.68,-2328.6 5677.21,-2322.08"/>
</g>
<!-- ahriman_models_sign_settings -->
<g id="node114" class="node">
<title>ahriman_models_sign_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c82323" stroke="black" cx="4539" cy="-3121.53" rx="52.15" ry="28.98"/>
<text text-anchor="middle" x="4539" y="-3130.03" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4539" y="-3119.03" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="4539" y="-3108.03" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">sign_settings</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_models_sign_settings -->
<g id="edge99" class="edge">
<title>ahriman_core&#45;&gt;ahriman_models_sign_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8505,-3565.24C8496.48,-3530.27 8529.18,-3510.92 8505,-3484.25"/>
<path fill="none" stroke="black" d="M8505,-3482.25C8494.9,-3471.11 8499.25,-3461.37 8486,-3454.26 8397.65,-3406.88 4973.85,-3444.16 4877,-3418.26 4701.74,-3371.4 4407.28,-3352.18 4524,-3213.3"/>
</g>
<!-- ahriman_models_upload_settings -->
<g id="node116" class="node">
<title>ahriman_models_upload_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b03a3a" stroke="black" cx="3994" cy="-3483.25" rx="60.21" ry="28.98"/>
<text text-anchor="middle" x="3994" y="-3491.75" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3994" y="-3480.75" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="3994" y="-3469.75" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload_settings</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_models_upload_settings -->
<g id="edge100" class="edge">
<title>ahriman_core&#45;&gt;ahriman_models_upload_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8461.99,-3647.96C8117.28,-3645.61 5798.94,-3627.71 5102,-3567.24"/>
<path fill="none" stroke="black" d="M5102,-3565.24C4641.35,-3525.28 4514.42,-3612.33 4063,-3512.24 4057.34,-3510.99 4051.55,-3509.32 4045.84,-3507.41"/>
<polygon fill="#f91010" stroke="black" points="4046.95,-3504.09 4036.35,-3504.01 4044.59,-3510.68 4046.95,-3504.09"/>
</g>
<!-- ahriman_web_middlewares_auth_handler -->
<g id="node123" class="node">
<title>ahriman_web_middlewares_auth_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="418" cy="-729.11" rx="52.15" ry="36.54"/>
<text text-anchor="middle" x="418" y="-743.11" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="418" y="-732.11" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="418" y="-721.11" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">middlewares.</text>
<text text-anchor="middle" x="418" y="-710.11" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">auth_handler</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge101" class="edge">
<title>ahriman_core&#45;&gt;ahriman_web_middlewares_auth_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10109,-3388.27C10099.52,-3348.5 10118.2,-3336.12 10109,-3296.29"/>
<path fill="none" stroke="black" d="M10109,-3294.29C10091.4,-3218.11 10068.45,-3200.67 10071,-3122.53"/>
<path fill="none" stroke="black" d="M10071,-3120.53C10049.3,-3030.61 9995,-3019.28 9995,-2926.78 9995,-2926.78 9995,-2926.78 9995,-2815.24 9995,-2665.95 10047.08,-2250.63 9941,-2145.57 9900.79,-2105.76 9487.6,-2124.42 9433,-2109.57 9327.21,-2080.81 9300.02,-2065.39 9212,-2000.03 9176.02,-1973.32 9180.94,-1950.36 9143,-1926.5 9098.03,-1898.2 9078.26,-1910.4 9029,-1890.5 8927.72,-1849.58 8901.06,-1839.74 8809,-1780.96 8611.87,-1655.1 8578.49,-1601.07 8398,-1452.34 8339.95,-1404.51 8324.59,-1393.47 8269,-1342.8 8053.07,-1145.99 7993.39,-1101.31 7799,-883.2 7771.49,-852.33 7779.09,-827.95 7742,-809.66 7653.37,-765.95 725.27,-784.04 627,-773.66 575.58,-768.23 518.14,-755.79 476.51,-745.59"/>
<polygon fill="#f91010" stroke="black" points="477.1,-742.13 466.55,-743.11 475.41,-748.92 477.1,-742.13"/>
</g>
<!-- ahriman_web_views_base -->
<g id="node127" class="node">
<title>ahriman_web_views_base</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#950303" stroke="black" cx="1990" cy="-846.43" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="1990" y="-860.43" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1990" y="-849.43" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="1990" y="-838.43" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="1990" y="-827.43" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">base</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_web_views_base -->
<g id="edge102" class="edge">
<title>ahriman_core&#45;&gt;ahriman_web_views_base</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10071,-2705.7C10061.82,-2623.56 10071,-2602.39 10071,-2519.74 10071,-2519.74 10071,-2519.74 10071,-2306.44 10071,-2225.16 10051.75,-2190.48 9984,-2145.57 9914.22,-2099.32 9689.91,-2131.06 9609,-2109.57 9494.5,-2079.16 9472.9,-2051.08 9366,-2000.03 9268.51,-1953.48 9243.36,-1943.11 9149,-1890.5 9094.37,-1860.03 9085.74,-1843.28 9029,-1816.96 8982.72,-1795.48 8964.96,-1805.08 8920,-1780.96 8803.95,-1718.69 8791.49,-1678.04 8687,-1597.88 8502.85,-1456.6 8459.43,-1417.51 8269,-1284.82 8207.65,-1242.07 7775.64,-940.62 7704,-919.2 7560.92,-876.42 2477.1,-891.57 2328,-883.2 2224.12,-877.37 2103,-862.6 2037.66,-853.98"/>
<polygon fill="#f91010" stroke="black" points="2038.04,-850.49 2027.67,-852.65 2037.12,-857.43 2038.04,-850.49"/>
</g>
<!-- ahriman_web_views_index -->
<g id="node128" class="node">
<title>ahriman_web_views_index</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="1512" cy="-729.11" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="1512" y="-743.11" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1512" y="-732.11" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="1512" y="-721.11" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="1512" y="-710.11" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">index</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_web_views_index -->
<g id="edge103" class="edge">
<title>ahriman_core&#45;&gt;ahriman_web_views_index</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10261,-3211.3C10230.52,-3132.29 10261,-3105.45 10261,-3020.77 10261,-3020.77 10261,-3020.77 10261,-2924.78 10261,-2650.85 10332.85,-2572.78 10261,-2308.44"/>
<path fill="none" stroke="black" d="M10261,-2306.44C10247.6,-2266.47 10221.31,-2270.43 10199,-2234.67 10176.21,-2198.15 10194.69,-2172.37 10161,-2145.57 10089.64,-2088.8 10042.26,-2146.77 9959,-2109.57 9910.57,-2087.94 9912.8,-2059.02 9865,-2036.03 9802.43,-2005.95 9767.71,-2042.78 9713,-2000.03 9684.01,-1977.39 9704.27,-1948.78 9675,-1926.5 9613.2,-1879.45 9565.8,-1937.54 9504,-1890.5 9474.73,-1868.21 9494.63,-1840.06 9466,-1816.96 9418.35,-1778.49 9388.75,-1806.3 9333,-1780.96 9292.13,-1762.38 8018.92,-916.67 7989,-883.2 7964.48,-855.77 7982.37,-828.88 7951,-809.66 7875.3,-763.28 1641.56,-806.3 1559,-773.66 1553.57,-771.51 1548.38,-768.41 1543.58,-764.84"/>
<polygon fill="#f91010" stroke="black" points="1545.8,-762.14 1535.87,-758.47 1541.35,-767.54 1545.8,-762.14"/>
</g>
<!-- ahriman_web_views_service_search -->
<g id="node133" class="node">
<title>ahriman_web_views_service_search</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="2178" cy="-729.11" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="2178" y="-748.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2178" y="-737.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="2178" y="-726.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="2178" y="-715.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">service.</text>
<text text-anchor="middle" x="2178" y="-704.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">search</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_web_views_service_search -->
<g id="edge104" class="edge">
<title>ahriman_core&#45;&gt;ahriman_web_views_service_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10109,-3482.25C10200.56,-3422.61 10294.67,-3491.01 10337,-3390.27"/>
<path fill="none" stroke="black" d="M10337,-3388.27C10353.42,-3349.19 10269.35,-3254.86 10261,-3213.3"/>
<path fill="none" stroke="black" d="M10261,-3211.3C10222.39,-3128.71 10185,-3111.93 10185,-3020.77 10185,-3020.77 10185,-3020.77 10185,-2924.78 10185,-2785.51 10127.28,-2751.6 10147,-2613.72"/>
<path fill="none" stroke="black" d="M10147,-2611.72C10153.91,-2575.73 10186.74,-2582.26 10199,-2547.73 10219.16,-2490.96 10254.62,-2254.69 10161,-2145.57 10120.84,-2098.77 10084.82,-2131.02 10027,-2109.57 10000.65,-2099.8 9822.55,-2015.38 9799,-2000.03 9756.87,-1972.57 9754.65,-1954.69 9713,-1926.5 9626.15,-1867.7 9598.81,-1861.79 9504,-1816.96 9466.91,-1799.42 9453.89,-1802.54 9419,-1780.96 9376.23,-1754.5 9372.61,-1738.41 9333,-1707.42 8924.31,-1387.68 8821.56,-1306.08 8383,-1028.74 8213.66,-921.65 8182.79,-860.56 7989,-809.66 7834.14,-768.99 2373.88,-832.57 2225,-773.66 2220.81,-772 2216.78,-769.78 2212.95,-767.22"/>
<polygon fill="#f91010" stroke="black" points="2215,-764.38 2204.91,-761.14 2210.77,-769.96 2215,-764.38"/>
</g>
<!-- ahriman_web_views_status_package -->
<g id="node136" class="node">
<title>ahriman_web_views_status_package</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="1896" cy="-729.11" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="1896" y="-748.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1896" y="-737.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="1896" y="-726.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="1896" y="-715.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status.</text>
<text text-anchor="middle" x="1896" y="-704.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">package</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_web_views_status_package -->
<g id="edge105" class="edge">
<title>ahriman_core&#45;&gt;ahriman_web_views_status_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10261,-2306.44C10245.93,-2231.15 10255.07,-2196.94 10198,-2145.57 10153.12,-2105.18 10121.58,-2135.39 10067,-2109.57 10015.83,-2085.37 10012.63,-2063.27 9963,-2036.03 9925.95,-2015.71 9911.95,-2020.53 9875,-2000.03 9856.8,-1989.94 9587.03,-1794.23 9571,-1780.96 9462.02,-1690.71 9440.67,-1661.31 9340,-1561.88 9259.26,-1482.13 9250.42,-1449.94 9162,-1378.8 9034.49,-1276.21 8593.37,-1001.86 8398,-919.2 8341.6,-895.34 8323.35,-901.78 8265,-883.2 8174.76,-854.46 8158.19,-826.53 8065,-809.66 7897.66,-779.36 2101.14,-836.2 1943,-773.66 1938.81,-772.01 1934.78,-769.79 1930.95,-767.22"/>
<polygon fill="#f91010" stroke="black" points="1933,-764.38 1922.91,-761.14 1928.77,-769.96 1933,-764.38"/>
</g>
<!-- ahriman_web_views_user_login -->
<g id="node140" class="node">
<title>ahriman_web_views_user_login</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="1418" cy="-729.11" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="1418" y="-748.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1418" y="-737.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="1418" y="-726.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="1418" y="-715.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">user.</text>
<text text-anchor="middle" x="1418" y="-704.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">login</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_web_views_user_login -->
<g id="edge106" class="edge">
<title>ahriman_core&#45;&gt;ahriman_web_views_user_login</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10109,-3294.29C10092.74,-3219.7 10109,-3198.86 10109,-3122.53 10109,-3122.53 10109,-3122.53 10109,-2705.7 10109,-2581.23 10201.65,-2232.96 10113,-2145.57 10073.34,-2106.48 9917.57,-2127.95 9865,-2109.57 9803.79,-2088.18 9796.2,-2066.57 9739,-2036.03 9510.14,-1913.88 9439.59,-1909.04 9214,-1780.96 8665.55,-1469.55 8543.21,-1364.86 8034,-992.74 7927.1,-914.62 7924.09,-853.03 7799,-809.66 7632.76,-752.02 1628.62,-838.35 1465,-773.66 1460.81,-772.01 1456.78,-769.79 1452.95,-767.22"/>
<polygon fill="#f91010" stroke="black" points="1455,-764.38 1444.91,-761.14 1450.77,-769.97 1455,-764.38"/>
</g>
<!-- ahriman_web_views_user_logout -->
<g id="node141" class="node">
<title>ahriman_web_views_user_logout</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="1606" cy="-729.11" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="1606" y="-748.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1606" y="-737.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="1606" y="-726.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="1606" y="-715.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">user.</text>
<text text-anchor="middle" x="1606" y="-704.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">logout</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge107" class="edge">
<title>ahriman_core&#45;&gt;ahriman_web_views_user_logout</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10337,-3388.27C10396.22,-3280.64 10410.6,-3245.35 10413,-3122.53"/>
<path fill="none" stroke="black" d="M10413,-3120.53C10400.07,-3028.94 10337,-3019.28 10337,-2926.78 10337,-2926.78 10337,-2926.78 10337,-2611.72 10337,-2505.82 10313.38,-2219.95 10238,-2145.57 10195.93,-2104.07 10161.7,-2138.2 10110,-2109.57 10067.46,-2086.02 10071.22,-2060.15 10029,-2036.03 9982.13,-2009.26 9959.35,-2027.71 9913,-2000.03 9872.92,-1976.1 9875.52,-1954.27 9838,-1926.5 9729.38,-1846.08 9686.37,-1851.36 9571,-1780.96 9137.11,-1516.19 9068.09,-1387.34 8625,-1138.28 8625,-1138.28 8065,-883.2 8065,-883.2 8026.16,-856.73 8032.52,-827.41 7989,-809.66 7826.03,-743.18 1816.68,-838.37 1653,-773.66 1648.81,-772.01 1644.78,-769.79 1640.95,-767.22"/>
<polygon fill="#f91010" stroke="black" points="1643,-764.38 1632.91,-761.14 1638.77,-769.97 1643,-764.38"/>
</g>
<!-- ahriman_web_web -->
<g id="node142" class="node">
<title>ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="1896" cy="-400.5" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="1896" y="-409" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1896" y="-398" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="1896" y="-387" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_web_web -->
<g id="edge108" class="edge">
<title>ahriman_core&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10671,-610.8C10651.1,-567.34 10704.41,-537.43 10671,-503.26"/>
<path fill="none" stroke="black" d="M10671,-501.26C10658.42,-488.39 10667.41,-474.8 10652,-465.49 10606.11,-437.76 2984.61,-430.34 2931,-429.49 2551,-423.46 2092.72,-408.3 1944.65,-403.2"/>
<polygon fill="#f91010" stroke="black" points="1944.64,-399.7 1934.53,-402.85 1944.4,-406.69 1944.64,-399.7"/>
</g>
<!-- ahriman_core_alpm -->
<g id="node31" class="node">
<title>ahriman_core_alpm</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f91010" stroke="black" cx="7073" cy="-2706.7" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="7073" y="-2715.2" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7073" y="-2704.2" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7073" y="-2693.2" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">alpm</text>
</g>
<!-- ahriman_core_alpm&#45;&gt;ahriman_application_handlers_search -->
<g id="edge109" class="edge">
<title>ahriman_core_alpm&#45;&gt;ahriman_application_handlers_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7075.8,-2677.6C7085.68,-2579.09 7119.41,-2249.87 7139,-2145.57 7214.72,-1742.46 7296.12,-1654.44 7357,-1248.82 7386.16,-1054.55 7382.43,-1004.56 7407,-809.66 7411.46,-774.25 7448.92,-747.94 7418,-730.11"/>
<path fill="none" stroke="black" d="M7418,-728.11C7318,-676.87 7155.18,-718.61 7193,-612.8"/>
</g>
<!-- ahriman_core_repository_properties -->
<g id="node80" class="node">
<title>ahriman_core_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="5515" cy="-1744.19" rx="43.68" ry="36.54"/>
<text text-anchor="middle" x="5515" y="-1758.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5515" y="-1747.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5515" y="-1736.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository.</text>
<text text-anchor="middle" x="5515" y="-1725.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">properties</text>
</g>
<!-- ahriman_core_alpm&#45;&gt;ahriman_core_repository_properties -->
<g id="edge110" class="edge">
<title>ahriman_core_alpm&#45;&gt;ahriman_core_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7042.69,-2688.8C7025.48,-2677.64 7005.04,-2661.45 6993,-2641.71 6876.41,-2450.6 7028.15,-2333.18 6906,-2145.57 6759.28,-1920.23 6652.87,-1902.68 6398,-1816.96 6296.4,-1782.79 6023.83,-1789.71 5917,-1780.96 5792.44,-1770.75 5646.31,-1757.41 5569.13,-1750.25"/>
<polygon fill="#f91010" stroke="black" points="5568.99,-1746.72 5558.7,-1749.28 5568.34,-1753.69 5568.99,-1746.72"/>
</g>
<!-- ahriman_core_alpm&#45;&gt;ahriman_models_package -->
<g id="edge111" class="edge">
<title>ahriman_core_alpm&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7036.49,-2698.15C6978.81,-2686.2 6863.1,-2662.21 6765,-2641.71 6642.3,-2616.08 6613.1,-2601.34 6489,-2583.73 6277.19,-2553.67 6222.22,-2565.23 6009,-2547.73 5914.9,-2540.01 5805.02,-2529.98 5743.37,-2524.26"/>
<polygon fill="#f91010" stroke="black" points="5743.45,-2520.76 5733.17,-2523.32 5742.8,-2527.73 5743.45,-2520.76"/>
</g>
<!-- ahriman_core_alpm&#45;&gt;ahriman_web_views_service_search -->
<g id="edge112" class="edge">
<title>ahriman_core_alpm&#45;&gt;ahriman_web_views_service_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7070.87,-2677.69C7070.12,-2666.5 7069.37,-2653.51 7069,-2641.71 7068.2,-2615.96 7068.06,-2609.48 7069,-2583.73 7076.12,-2388.61 7084.13,-2340.1 7101,-2145.57 7117.91,-1950.59 7123.46,-1901.94 7145,-1707.42 7169.42,-1486.89 7191.64,-1433.29 7205,-1211.82 7206.97,-1179.19 7212.36,-1170.12 7205,-1138.28 7180.6,-1032.7 7188.61,-978.63 7098,-919.2 6869.68,-769.44 4915.93,-817.78 4643,-809.66 4575.86,-807.66 2287.36,-798.65 2225,-773.66 2220.82,-771.99 2216.79,-769.75 2212.96,-767.18"/>
<polygon fill="#f91010" stroke="black" points="2215.01,-764.34 2204.93,-761.09 2210.78,-769.92 2215.01,-764.34"/>
</g>
<!-- ahriman_core_alpm_pacman -->
<g id="node32" class="node">
<title>ahriman_core_alpm_pacman</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b42d2d" stroke="black" cx="5475" cy="-2816.24" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="5475" y="-2830.24" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5475" y="-2819.24" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5475" y="-2808.24" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">alpm.</text>
<text text-anchor="middle" x="5475" y="-2797.24" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">pacman</text>
</g>
<!-- ahriman_core_alpm_pacman&#45;&gt;ahriman_core_repository_properties -->
<g id="edge113" class="edge">
<title>ahriman_core_alpm_pacman&#45;&gt;ahriman_core_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5928,-2611.72C5833.57,-2369.73 6008.41,-2221.96 5827,-2036.03 5772.15,-1979.82 5716.81,-2047.18 5654,-2000.03 5639.6,-1989.23 5646.85,-1977.82 5635,-1964.27"/>
</g>
<!-- ahriman_core_alpm_pacman&#45;&gt;ahriman_models_package -->
<g id="edge114" class="edge">
<title>ahriman_core_alpm_pacman&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5513.13,-2814.21C5635.79,-2809.21 6007.64,-2780.3 5928,-2613.72"/>
<path fill="none" stroke="black" d="M5928,-2611.72C5900.58,-2541.44 5803.34,-2524.17 5743.49,-2520.34"/>
<polygon fill="#b42d2d" stroke="black" points="5743.67,-2516.85 5733.5,-2519.8 5743.3,-2523.84 5743.67,-2516.85"/>
</g>
<!-- ahriman_core_alpm_remote -->
<g id="node33" class="node">
<title>ahriman_core_alpm_remote</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f31616" stroke="black" cx="6475" cy="-2816.24" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="6475" y="-2830.24" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6475" y="-2819.24" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6475" y="-2808.24" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">alpm.</text>
<text text-anchor="middle" x="6475" y="-2797.24" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">remote</text>
</g>
<!-- ahriman_core_alpm_remote&#45;&gt;ahriman_application_handlers_search -->
<g id="edge115" class="edge">
<title>ahriman_core_alpm_remote&#45;&gt;ahriman_application_handlers_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6475,-2611.72C6467.88,-2584.13 6478.11,-2576.21 6479,-2547.73 6483.35,-2408.4 6465.18,-2373.97 6460,-2234.67 6458.53,-2195.1 6434.44,-2175.82 6460,-2145.57 6521.97,-2072.25 6611.03,-2182.9 6673,-2109.57 6725.52,-2047.43 6678.77,-2007.66 6673,-1926.5 6662.53,-1779.33 6724.55,-1707.68 6626,-1597.88 6582.8,-1549.74 6541.45,-1593.45 6485,-1561.88 6454.48,-1544.81 6389.6,-1482.56 6372,-1452.34 6282.86,-1299.25 6272,-1243.66 6272,-1066.51 6272,-1066.51 6272,-1066.51 6272,-728.11 6272,-544.74 7737.44,-509.5 8046.29,-504.11"/>
<polygon fill="#f31616" stroke="black" points="8046.42,-507.61 8056.36,-503.94 8046.3,-500.61 8046.42,-507.61"/>
</g>
<!-- ahriman_core_alpm_remote&#45;&gt;ahriman_models_package -->
<g id="edge116" class="edge">
<title>ahriman_core_alpm_remote&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6483.75,-2780.33C6487.34,-2757.99 6488.05,-2729.27 6475,-2707.7"/>
<path fill="none" stroke="black" d="M6475,-2705.7C6389.72,-2564.79 6277.16,-2647.72 6116,-2613.72"/>
<path fill="none" stroke="black" d="M6116,-2611.72C6071.68,-2602.37 6062.03,-2594.36 6018,-2583.73 5920.62,-2560.22 5805.2,-2538.91 5742.08,-2527.81"/>
<polygon fill="#f31616" stroke="black" points="5742.48,-2524.32 5732.03,-2526.05 5741.28,-2531.22 5742.48,-2524.32"/>
</g>
<!-- ahriman_core_alpm_remote&#45;&gt;ahriman_web_views_service_search -->
<g id="edge117" class="edge">
<title>ahriman_core_alpm_remote&#45;&gt;ahriman_web_views_service_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6475,-2705.7C6453.83,-2670.73 6488.25,-2652.39 6475,-2613.72"/>
<path fill="none" stroke="black" d="M6475,-2611.72C6456.41,-2557.49 6392.72,-2596.75 6363,-2547.73 6270.3,-2394.82 6275.34,-2307.59 6351,-2145.57 6361.55,-2122.99 6380.23,-2130.35 6394,-2109.57 6450.25,-2024.7 6445.95,-1991.2 6461,-1890.5 6473.25,-1808.56 6454.67,-1785.14 6426,-1707.42 6407.72,-1657.88 6406.24,-1643.7 6380,-1597.88 6349.78,-1545.11 6341.45,-1530.89 6298,-1488.34 6242.53,-1434.01 6084.25,-1317.9 6014,-1284.82 4912.06,-765.93 4530.32,-890.43 3315,-809.66 3194.09,-801.63 2337.07,-819.75 2225,-773.66 2220.84,-771.95 2216.82,-769.69 2212.99,-767.1"/>
<polygon fill="#f31616" stroke="black" points="2215.05,-764.26 2204.97,-760.98 2210.8,-769.83 2215.05,-764.26"/>
</g>
<!-- ahriman_core_alpm_remote_aur -->
<g id="node34" class="node">
<title>ahriman_core_alpm_remote_aur</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8b1818" stroke="black" cx="3328" cy="-2816.24" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="3328" y="-2835.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3328" y="-2824.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="3328" y="-2813.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">alpm.</text>
<text text-anchor="middle" x="3328" y="-2802.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">remote.</text>
<text text-anchor="middle" x="3328" y="-2791.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">aur</text>
</g>
<!-- ahriman_core_alpm_remote_aur&#45;&gt;ahriman_application_handlers_search -->
<g id="edge118" class="edge">
<title>ahriman_core_alpm_remote_aur&#45;&gt;ahriman_application_handlers_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3322.59,-2772.01C3310.86,-2675.7 3283.35,-2436.15 3274,-2234.67 3263.87,-2016.44 3319,-1963.65 3319,-1745.19 3319,-1745.19 3319,-1745.19 3319,-1524.11 3319,-1172.85 4395.26,-919.22 4729,-809.66 5298.05,-622.86 5460.37,-637.81 6056,-575.03 6457.5,-532.7 7757.22,-509 8045.86,-504.18"/>
<polygon fill="#8b1818" stroke="black" points="8046.16,-507.67 8056.1,-504.01 8046.04,-500.67 8046.16,-507.67"/>
</g>
<!-- ahriman_core_alpm_remote_aur&#45;&gt;ahriman_models_package -->
<g id="edge119" class="edge">
<title>ahriman_core_alpm_remote_aur&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3365.64,-2808.06C3476.55,-2786.99 3811.8,-2723.89 4091,-2677.71 4367.7,-2631.95 4436.15,-2613.78 4715,-2583.73 5071.4,-2545.32 5503.37,-2526.84 5646.42,-2521.46"/>
<polygon fill="#8b1818" stroke="black" points="5646.74,-2524.95 5656.61,-2521.08 5646.48,-2517.96 5646.74,-2524.95"/>
</g>
<!-- ahriman_core_alpm_remote_aur&#45;&gt;ahriman_web_views_service_search -->
<g id="edge120" class="edge">
<title>ahriman_core_alpm_remote_aur&#45;&gt;ahriman_web_views_service_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3308.7,-2777.45C3261.33,-2685.21 3139.41,-2450.98 3087,-2380.21 3046.68,-2325.77 3036.15,-2310.01 2981,-2270.67 2950.24,-2248.73 2924.28,-2266.54 2904,-2234.67 2841.65,-2136.69 2973.52,-2106.89 3019,-2000.03 3050.97,-1924.92 3061.41,-1893.86 3034,-1816.96 2924.53,-1509.87 2570,-1574.83 2570,-1248.82 2570,-1248.82 2570,-1248.82 2570,-1174.05 2570,-1077.57 2547.08,-1050.69 2570,-956.97"/>
</g>
<!-- ahriman_core_alpm_remote_official -->
<g id="node35" class="node">
<title>ahriman_core_alpm_remote_official</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#832020" stroke="black" cx="3811" cy="-2816.24" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="3811" y="-2835.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3811" y="-2824.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="3811" y="-2813.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">alpm.</text>
<text text-anchor="middle" x="3811" y="-2802.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">remote.</text>
<text text-anchor="middle" x="3811" y="-2791.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">official</text>
</g>
<!-- ahriman_core_alpm_remote_official&#45;&gt;ahriman_application_handlers_search -->
<g id="edge121" class="edge">
<title>ahriman_core_alpm_remote_official&#45;&gt;ahriman_application_handlers_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3820.81,-2773.09C3847.27,-2669.41 3930.33,-2400.97 4107,-2270.67 4161.13,-2230.74 4212.48,-2287.59 4254,-2234.67 4278.44,-2203.52 4277.81,-2177.21 4254,-2145.57 4219.23,-2099.38 4165.43,-2154.47 4129,-2109.57 4016.38,-1970.77 4039.31,-1864.28 4125,-1707.42 4189.29,-1589.73 5002.02,-1086.59 5123,-1028.74 5664.12,-770 5805.27,-689.73 6394,-575.03 6476.78,-558.9 7758.64,-514.87 8046.09,-505.17"/>
<polygon fill="#832020" stroke="black" points="8046.41,-508.66 8056.29,-504.82 8046.18,-501.66 8046.41,-508.66"/>
</g>
<!-- ahriman_core_alpm_remote_official&#45;&gt;ahriman_models_package -->
<g id="edge122" class="edge">
<title>ahriman_core_alpm_remote_official&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3848.02,-2804.53C3881.52,-2795.07 3932.29,-2781.33 3977,-2771.7 4314.56,-2698.93 4403.99,-2707.39 4743,-2641.71 4861.79,-2618.7 4889.43,-2602.27 5009,-2583.73 5246.84,-2546.85 5534.61,-2528.41 5646.88,-2522.21"/>
<polygon fill="#832020" stroke="black" points="5647.08,-2525.7 5656.87,-2521.66 5646.7,-2518.71 5647.08,-2525.7"/>
</g>
<!-- ahriman_core_alpm_remote_remote -->
<g id="node36" class="node">
<title>ahriman_core_alpm_remote_remote</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#bc2f2f" stroke="black" cx="3234" cy="-2816.24" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="3234" y="-2835.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3234" y="-2824.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="3234" y="-2813.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">alpm.</text>
<text text-anchor="middle" x="3234" y="-2802.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">remote.</text>
<text text-anchor="middle" x="3234" y="-2791.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">remote</text>
</g>
<!-- ahriman_core_alpm_remote_remote&#45;&gt;ahriman_core_alpm_remote_aur -->
<g id="edge123" class="edge">
<title>ahriman_core_alpm_remote_remote&#45;&gt;ahriman_core_alpm_remote_aur</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3272.19,-2816.24C3274.64,-2816.24 3277.09,-2816.24 3279.55,-2816.24"/>
<polygon fill="#bc2f2f" stroke="black" points="3279.63,-2819.74 3289.63,-2816.24 3279.63,-2812.74 3279.63,-2819.74"/>
</g>
<!-- ahriman_core_alpm_remote_remote&#45;&gt;ahriman_core_alpm_remote_official -->
<g id="edge124" class="edge">
<title>ahriman_core_alpm_remote_remote&#45;&gt;ahriman_core_alpm_remote_official</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3257.04,-2851.98C3265.93,-2862.65 3277.09,-2873.02 3290,-2878.79 3336.66,-2899.65 3702.9,-2898.65 3750,-2878.79 3760.92,-2874.19 3770.85,-2866.57 3779.39,-2858.21"/>
<polygon fill="#bc2f2f" stroke="black" points="3782.16,-2860.38 3786.52,-2850.72 3777.09,-2855.55 3782.16,-2860.38"/>
</g>
<!-- ahriman_core_alpm_repo -->
<g id="node37" class="node">
<title>ahriman_core_alpm_repo</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#993333" stroke="black" cx="4752" cy="-3121.53" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="4752" y="-3135.53" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4752" y="-3124.53" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4752" y="-3113.53" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">alpm.</text>
<text text-anchor="middle" x="4752" y="-3102.53" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repo</text>
</g>
<!-- ahriman_core_alpm_repo&#45;&gt;ahriman_core_repository_properties -->
<g id="edge125" class="edge">
<title>ahriman_core_alpm_repo&#45;&gt;ahriman_core_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4780.87,-3097.05C4859.4,-3030.34 5071,-2830.49 5071,-2613.72 5071,-2613.72 5071,-2613.72 5071,-2189.12 5071,-2067.61 5047.52,-1996.27 5147,-1926.5 5228.29,-1869.48 5563.43,-1950.93 5588,-1854.73"/>
<path fill="none" stroke="black" d="M5588,-1852.73C5595.49,-1823.81 5575.71,-1796.04 5554.86,-1775.96"/>
<polygon fill="#993333" stroke="black" points="5557.22,-1773.38 5547.49,-1769.2 5552.49,-1778.54 5557.22,-1773.38"/>
</g>
<!-- ahriman_core_auth -->
<g id="node38" class="node">
<title>ahriman_core_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f91010" stroke="black" cx="1084" cy="-1175.05" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="1084" y="-1183.55" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1084" y="-1172.55" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="1084" y="-1161.55" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">auth</text>
</g>
<!-- ahriman_core_auth&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge126" class="edge">
<title>ahriman_core_auth&#45;&gt;ahriman_web_middlewares_auth_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1067.65,-1148.77C1055.07,-1127.71 1038.75,-1096.45 1032,-1066.51"/>
<path fill="none" stroke="black" d="M1032,-1064.51C1004.45,-942.24 621.82,-799.64 474.89,-749.07"/>
<polygon fill="#f91010" stroke="black" points="475.74,-745.66 465.14,-745.73 473.47,-752.28 475.74,-745.66"/>
</g>
<!-- ahriman_core_auth&#45;&gt;ahriman_web_views_base -->
<g id="edge127" class="edge">
<title>ahriman_core_auth&#45;&gt;ahriman_web_views_base</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1119.74,-1164.64C1167.87,-1151.74 1256.04,-1127.3 1330,-1102.28 1565.25,-1022.7 1840.59,-909.86 1945.96,-865.93"/>
<polygon fill="#f91010" stroke="black" points="1947.44,-869.1 1955.32,-862.02 1944.74,-862.64 1947.44,-869.1"/>
</g>
<!-- ahriman_core_auth&#45;&gt;ahriman_web_views_index -->
<g id="edge128" class="edge">
<title>ahriman_core_auth&#45;&gt;ahriman_web_views_index</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1108,-1064.51C1123.88,-1008.18 1163.71,-1011.87 1184,-956.97"/>
<path fill="none" stroke="black" d="M1184,-954.97C1214.66,-872 1243.72,-854.45 1320,-809.66 1377.26,-776.04 1406.58,-805.22 1465,-773.66 1469.89,-771.02 1474.67,-767.75 1479.18,-764.19"/>
<polygon fill="#f91010" stroke="black" points="1481.64,-766.7 1487,-757.56 1477.11,-761.36 1481.64,-766.7"/>
</g>
<!-- ahriman_core_auth&#45;&gt;ahriman_web_views_user_login -->
<g id="edge129" class="edge">
<title>ahriman_core_auth&#45;&gt;ahriman_web_views_user_login</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1089.38,-1145.98C1093.77,-1124.16 1100.47,-1093.21 1108,-1066.51"/>
<path fill="none" stroke="black" d="M1108,-1064.51C1120.97,-1018.51 1103.9,-1004.59 1108,-956.97"/>
</g>
<!-- ahriman_core_auth&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge130" class="edge">
<title>ahriman_core_auth&#45;&gt;ahriman_web_views_user_logout</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1110.6,-1154.23C1118.56,-1148.72 1127.45,-1142.97 1136,-1138.28 1171.97,-1118.55 1187.49,-1125.95 1221,-1102.28 1292.5,-1051.76 1320.78,-1037.97 1354,-956.97"/>
<path fill="none" stroke="black" d="M1354,-954.97C1361.69,-937.44 1366.78,-934.71 1378,-919.2 1389.88,-902.77 1394.12,-899.63 1406,-883.2 1417.22,-867.69 1419.55,-863.47 1430,-847.43"/>
<path fill="none" stroke="black" d="M1430,-845.43C1440.45,-829.39 1438.82,-821.32 1454,-809.66 1493.12,-779.61 1516.66,-798.97 1559,-773.66 1562.81,-771.38 1566.57,-768.76 1570.21,-765.95"/>
<polygon fill="#f91010" stroke="black" points="1572.46,-768.63 1577.95,-759.57 1568.01,-763.23 1572.46,-768.63"/>
</g>
<!-- ahriman_core_auth&#45;&gt;ahriman_web_web -->
<g id="edge131" class="edge">
<title>ahriman_core_auth&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1032,-1064.51C961.77,-876.43 1033.11,-813.55 1032,-612.8"/>
</g>
<!-- ahriman_core_auth_auth -->
<g id="node39" class="node">
<title>ahriman_core_auth_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a0f0f" stroke="black" cx="2987" cy="-1853.73" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="2987" y="-1867.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2987" y="-1856.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="2987" y="-1845.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">auth.</text>
<text text-anchor="middle" x="2987" y="-1834.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">auth</text>
</g>
<!-- ahriman_core_auth_mapping -->
<g id="node41" class="node">
<title>ahriman_core_auth_mapping</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a1e1e" stroke="black" cx="2702" cy="-1744.19" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="2702" y="-1758.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2702" y="-1747.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="2702" y="-1736.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">auth.</text>
<text text-anchor="middle" x="2702" y="-1725.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">mapping</text>
</g>
<!-- ahriman_core_auth_auth&#45;&gt;ahriman_core_auth_mapping -->
<g id="edge132" class="edge">
<title>ahriman_core_auth_auth&#45;&gt;ahriman_core_auth_mapping</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2949.21,-1824.34C2944.57,-1821.58 2939.77,-1819.04 2935,-1816.96 2867.79,-1787.64 2843.11,-1805.45 2774,-1780.96 2763.93,-1777.39 2753.45,-1772.76 2743.7,-1768.02"/>
<polygon fill="#8a0f0f" stroke="black" points="2947.58,-1827.45 2957.9,-1829.85 2951.33,-1821.54 2947.58,-1827.45"/>
<polygon fill="#8a0f0f" stroke="black" points="2745.12,-1764.81 2734.61,-1763.47 2741.98,-1771.07 2745.12,-1764.81"/>
</g>
<!-- ahriman_core_auth_auth&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge133" class="edge">
<title>ahriman_core_auth_auth&#45;&gt;ahriman_web_middlewares_auth_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2956.32,-1831.79C2929.18,-1813.05 2893.1,-1787.55 2888,-1780.96 2877.56,-1767.45 2884.27,-1758.82 2874,-1745.19"/>
<path fill="none" stroke="black" d="M2874,-1743.19C2863.29,-1728.97 2867.8,-1720.74 2856,-1707.42 2836.88,-1685.82 2825.31,-1688.41 2802,-1671.42 2781.35,-1656.37 2779.79,-1647.2 2757,-1635.65"/>
<path fill="none" stroke="black" d="M2757,-1633.65C2740.94,-1625.51 2753.08,-1607.7 2738,-1597.88 2644.14,-1536.74 824.52,-1507.44 727,-1452.34 721.82,-1449.41 482.9,-1107.47 480,-1102.28 445.79,-1040.96 424.33,-1026.9 418,-956.97"/>
</g>
<!-- ahriman_core_auth_auth&#45;&gt;ahriman_web_views_base -->
<g id="edge134" class="edge">
<title>ahriman_core_auth_auth&#45;&gt;ahriman_web_views_base</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2757,-1633.65C2740.92,-1625.56 2750.57,-1610.77 2738,-1597.88 2646.09,-1503.61 2580.68,-1537.17 2480,-1452.34 2371.37,-1360.81 2168.17,-1065.06 2076,-956.97"/>
</g>
<!-- ahriman_core_auth_auth&#45;&gt;ahriman_web_web -->
<g id="edge135" class="edge">
<title>ahriman_core_auth_auth&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2874,-1743.19C2834.49,-1690.75 2828.31,-1517.69 2822,-1452.34 2794.55,-1167.99 2874.95,-1088.31 2812,-809.66 2790.8,-715.82 2714.59,-708.72 2722,-612.8"/>
</g>
<!-- ahriman_core_auth_helpers -->
<g id="node40" class="node">
<title>ahriman_core_auth_helpers</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#d92626" stroke="black" cx="1174" cy="-1065.51" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="1174" y="-1079.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1174" y="-1068.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="1174" y="-1057.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">auth.</text>
<text text-anchor="middle" x="1174" y="-1046.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">helpers</text>
</g>
<!-- ahriman_core_auth_helpers&#45;&gt;ahriman_web_views_index -->
<g id="edge136" class="edge">
<title>ahriman_core_auth_helpers&#45;&gt;ahriman_web_views_index</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1172.74,-1028.62C1173.1,-1007.21 1175.55,-979.83 1184,-956.97"/>
</g>
<!-- ahriman_core_auth_helpers&#45;&gt;ahriman_web_views_user_login -->
<g id="edge137" class="edge">
<title>ahriman_core_auth_helpers&#45;&gt;ahriman_web_views_user_login</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1165.88,-1029.55C1157.34,-983.96 1149.42,-903.45 1184,-847.43"/>
<path fill="none" stroke="black" d="M1184,-845.43C1193.53,-828.83 1193.01,-821.56 1208,-809.66 1256.26,-771.35 1324.97,-750.02 1370.49,-739.31"/>
<polygon fill="#d92626" stroke="black" points="1371.42,-742.69 1380.4,-737.06 1369.87,-735.86 1371.42,-742.69"/>
</g>
<!-- ahriman_core_auth_helpers&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge138" class="edge">
<title>ahriman_core_auth_helpers&#45;&gt;ahriman_web_views_user_logout</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1194,-1034.09C1231.09,-980.21 1315.92,-868.16 1416,-809.66 1472.58,-776.59 1501.39,-804.91 1559,-773.66 1562.9,-771.55 1566.73,-769.03 1570.41,-766.3"/>
<polygon fill="#d92626" stroke="black" points="1572.61,-769.02 1578.2,-760.02 1568.22,-763.56 1572.61,-769.02"/>
</g>
<!-- ahriman_core_auth_oauth -->
<g id="node42" class="node">
<title>ahriman_core_auth_oauth</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a1e1e" stroke="black" cx="2691" cy="-1634.65" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="2691" y="-1648.65" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2691" y="-1637.65" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="2691" y="-1626.65" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">auth.</text>
<text text-anchor="middle" x="2691" y="-1615.65" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">oauth</text>
</g>
<!-- ahriman_core_auth_mapping&#45;&gt;ahriman_core_auth_oauth -->
<g id="edge140" class="edge">
<title>ahriman_core_auth_mapping&#45;&gt;ahriman_core_auth_oauth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2698.34,-1707.38C2697.48,-1699.03 2696.56,-1690.04 2695.67,-1681.33"/>
<polygon fill="#7a1e1e" stroke="black" points="2699.15,-1680.89 2694.65,-1671.3 2692.18,-1681.6 2699.15,-1680.89"/>
</g>
<!-- ahriman_core_auth_oauth&#45;&gt;ahriman_core_auth_auth -->
<g id="edge141" class="edge">
<title>ahriman_core_auth_oauth&#45;&gt;ahriman_core_auth_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2713.77,-1664.28C2744.08,-1701.79 2796.81,-1764.71 2822,-1780.96 2866.3,-1809.52 2887.66,-1793.77 2935,-1816.96 2939.62,-1819.22 2944.29,-1821.85 2948.84,-1824.65"/>
<polygon fill="#7a1e1e" stroke="black" points="2947.1,-1827.69 2957.4,-1830.16 2950.89,-1821.8 2947.1,-1827.69"/>
</g>
<!-- ahriman_core_auth_oauth&#45;&gt;ahriman_web_views_user_login -->
<g id="edge142" class="edge">
<title>ahriman_core_auth_oauth&#45;&gt;ahriman_web_views_user_login</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2655.76,-1619.81C2421.25,-1527.21 1098.28,-996.75 1184,-847.43"/>
</g>
<!-- ahriman_core_build_tools -->
<g id="node43" class="node">
<title>ahriman_core_build_tools</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f91010" stroke="black" cx="8356" cy="-2706.7" rx="44.6" ry="28.98"/>
<text text-anchor="middle" x="8356" y="-2715.2" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8356" y="-2704.2" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="8356" y="-2693.2" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">build_tools</text>
</g>
<!-- ahriman_core_build_tools&#45;&gt;ahriman_application_application_packages -->
<g id="edge143" class="edge">
<title>ahriman_core_build_tools&#45;&gt;ahriman_application_application_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8357,-2189.12C8342.58,-2171.8 8349.64,-2158.25 8331,-2145.57 8249.08,-2089.85 8201.27,-2150.41 8111,-2109.57 8097.18,-2103.32 7273.57,-1430.24 7267,-1416.57"/>
</g>
<!-- ahriman_core_build_tools&#45;&gt;ahriman_application_application_repository -->
<g id="edge144" class="edge">
<title>ahriman_core_build_tools&#45;&gt;ahriman_application_application_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8391,-2517.74C8415.4,-2353.95 8495.26,-2286.93 8409,-2145.57 8390.78,-2115.71 8367.93,-2129.25 8339,-2109.57 8216.84,-2026.49 8193.2,-1995.23 8089,-1890.5 7998.1,-1799.13 7979.45,-1772.11 7899,-1671.42 7823.58,-1577.01 7775.65,-1567.16 7738,-1452.34 7714.77,-1381.49 7729.77,-1357.36 7747,-1284.82 7750.97,-1268.11 7768.41,-1264.3 7761,-1248.82"/>
<path fill="none" stroke="black" d="M7761,-1247.82C7727.92,-1197.92 7645.36,-1235.9 7647,-1176.05"/>
</g>
<!-- ahriman_core_build_tools&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge145" class="edge">
<title>ahriman_core_build_tools&#45;&gt;ahriman_application_handlers_patch</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8391,-2611.72C8439.85,-2530.22 8526.04,-2613.1 8595,-2547.73 8665.07,-2481.3 8644.63,-2437.09 8671,-2344.21 8685.04,-2294.77 8755.26,-1941.57 8761,-1890.5 8807.32,-1478.03 8820.62,-1370.67 8787,-956.97"/>
<path fill="none" stroke="black" d="M8787,-954.97C8774.7,-910.97 8549.09,-657.4 8559,-612.8"/>
</g>
<!-- ahriman_core_repository_executor -->
<g id="node79" class="node">
<title>ahriman_core_repository_executor</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="6002" cy="-1525.11" rx="43.68" ry="36.54"/>
<text text-anchor="middle" x="6002" y="-1539.11" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6002" y="-1528.11" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6002" y="-1517.11" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository.</text>
<text text-anchor="middle" x="6002" y="-1506.11" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">executor</text>
</g>
<!-- ahriman_core_build_tools&#45;&gt;ahriman_core_repository_executor -->
<g id="edge146" class="edge">
<title>ahriman_core_build_tools&#45;&gt;ahriman_core_repository_executor</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8364.72,-2678.05C8371.03,-2659.42 8380.3,-2634.54 8391,-2613.72"/>
<path fill="none" stroke="black" d="M8391,-2611.72C8404.31,-2585.83 8383.02,-2576.21 8377,-2547.73 8358.14,-2458.49 8362.75,-2206.64 8295,-2145.57 8233.97,-2090.56 8005.84,-2132.71 7927,-2109.57 7687.67,-2039.34 7168.03,-1665.7 6928,-1597.88 6885.84,-1585.97 6247.62,-1542.54 6056,-1529.7"/>
<polygon fill="#f91010" stroke="black" points="6056.09,-1526.2 6045.88,-1529.03 6055.62,-1533.19 6056.09,-1526.2"/>
</g>
<!-- ahriman_core_repository_update_handler -->
<g id="node82" class="node">
<title>ahriman_core_repository_update_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#822b2b" stroke="black" cx="6586" cy="-1525.11" rx="58.88" ry="36.54"/>
<text text-anchor="middle" x="6586" y="-1539.11" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6586" y="-1528.11" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6586" y="-1517.11" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository.</text>
<text text-anchor="middle" x="6586" y="-1506.11" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">update_handler</text>
</g>
<!-- ahriman_core_build_tools&#45;&gt;ahriman_core_repository_update_handler -->
<g id="edge147" class="edge">
<title>ahriman_core_build_tools&#45;&gt;ahriman_core_repository_update_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8391,-2611.72C8409.69,-2575.36 8387.23,-2560.45 8391,-2519.74"/>
<path fill="none" stroke="black" d="M8391,-2517.74C8393.68,-2488.75 8381.23,-2482.55 8377,-2453.75 8368.5,-2395.84 8394.35,-2236.19 8357,-2191.12"/>
<path fill="none" stroke="black" d="M8357,-2189.12C8342.27,-2172.65 8351.21,-2158.09 8333,-2145.57 8236.87,-2079.48 8181.4,-2152.68 8073,-2109.57 7786.93,-1995.81 7784.22,-1845.39 7509,-1707.42 7366.32,-1635.89 7322.88,-1632.15 7167,-1597.88 6984.29,-1557.7 6763.97,-1538.2 6654.57,-1530.41"/>
<polygon fill="#f91010" stroke="black" points="6654.55,-1526.9 6644.33,-1529.69 6654.06,-1533.88 6654.55,-1526.9"/>
</g>
<!-- ahriman_core_tree -->
<g id="node90" class="node">
<title>ahriman_core_tree</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="5446" cy="-1853.73" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="5446" y="-1862.23" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5446" y="-1851.23" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5446" y="-1840.23" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">tree</text>
</g>
<!-- ahriman_core_build_tools&#45;&gt;ahriman_core_tree -->
<g id="edge148" class="edge">
<title>ahriman_core_build_tools&#45;&gt;ahriman_core_tree</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8345.75,-2678.16C8304.02,-2566.06 8148.79,-2149.85 8143,-2145.57 8093.93,-2109.3 7655.53,-2117.3 7595,-2109.57 7164.14,-2054.55 7066.67,-1974.69 6635,-1926.5 6166.09,-1874.15 6040.3,-1962.5 5574,-1890.5 5545.54,-1886.1 5514.41,-1877.49 5489.97,-1869.82"/>
<polygon fill="#f91010" stroke="black" points="5490.87,-1866.43 5480.28,-1866.71 5488.73,-1873.1 5490.87,-1866.43"/>
</g>
<!-- ahriman_core_build_tools&#45;&gt;ahriman_models_package -->
<g id="edge149" class="edge">
<title>ahriman_core_build_tools&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8311.5,-2704.48C8149.3,-2699.77 7574.49,-2681.18 7102,-2641.71 6879.5,-2623.13 6825.4,-2603.38 6603,-2583.73 6339.54,-2560.46 6272.75,-2567.47 6009,-2547.73 5914.84,-2540.68 5804.99,-2530.42 5743.36,-2524.48"/>
<polygon fill="#f91010" stroke="black" points="5743.45,-2520.97 5733.16,-2523.49 5742.77,-2527.94 5743.45,-2520.97"/>
</g>
<!-- ahriman_core_build_tools_sources -->
<g id="node44" class="node">
<title>ahriman_core_build_tools_sources</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#e50505" stroke="black" cx="4256" cy="-2816.24" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="4256" y="-2830.24" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4256" y="-2819.24" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4256" y="-2808.24" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">build_tools.</text>
<text text-anchor="middle" x="4256" y="-2797.24" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">sources</text>
</g>
<!-- ahriman_core_build_tools_sources&#45;&gt;ahriman_application_application_packages -->
<g id="edge150" class="edge">
<title>ahriman_core_build_tools_sources&#45;&gt;ahriman_application_application_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4349,-2517.74C4351.28,-2347.58 4485.12,-2309.38 4439,-2145.57 4395.18,-1989.95 4211.68,-1962.05 4283,-1816.96 4392.65,-1593.89 4580.09,-1724.13 4823,-1671.42 4898.42,-1655.05 6077.65,-1264.56 6134,-1211.82 6185.26,-1163.84 6141.53,-1110.81 6196,-1066.51"/>
</g>
<!-- ahriman_core_build_tools_sources&#45;&gt;ahriman_application_application_repository -->
<g id="edge151" class="edge">
<title>ahriman_core_build_tools_sources&#45;&gt;ahriman_application_application_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4463,-2705.7C4497.76,-2644.66 4459.48,-2617.96 4458,-2547.73 4457.12,-2505.97 4457.22,-2495.52 4457,-2453.75 4456.83,-2421.06 4455.24,-2412.85 4457,-2380.21 4463.79,-2254.49 4486.99,-1938.98 4518,-1816.96 4530.96,-1765.95 4520.68,-1738.7 4563,-1707.42 4632.99,-1655.68 4867.39,-1687.1 4953,-1671.42 5252.85,-1616.51 5317.33,-1558.43 5614,-1488.34 5859.96,-1430.22 5921.91,-1415.26 6172,-1378.8 6337.68,-1354.64 6382.11,-1371.87 6547,-1342.8 6775.77,-1302.47 6833.77,-1288.65 7053,-1211.82 7240.95,-1145.95 7278.14,-1105.3 7462,-1028.74 7507.02,-1009.99 7558.84,-990.14 7596.32,-976.08"/>
<polygon fill="#e50505" stroke="black" points="7597.87,-979.23 7606.01,-972.45 7595.42,-972.68 7597.87,-979.23"/>
</g>
<!-- ahriman_core_build_tools_sources&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge152" class="edge">
<title>ahriman_core_build_tools_sources&#45;&gt;ahriman_application_handlers_patch</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4285.62,-2787.8C4292.65,-2782.05 4300.34,-2776.33 4308,-2771.7 4371.76,-2733.1 4420.58,-2768.98 4463,-2707.7"/>
<path fill="none" stroke="black" d="M4463,-2705.7C4518.18,-2626 4342.95,-2616.5 4349,-2519.74"/>
<path fill="none" stroke="black" d="M4349,-2517.74C4277.92,-2365.09 4329.77,-2305.81 4278,-2145.57 4239.54,-2026.53 4186.09,-2012.63 4159,-1890.5 4139.62,-1803.1 4171.09,-1760.75 4243,-1707.42 4390.6,-1597.95 4473.15,-1657.62 4630,-1561.88 4681.71,-1530.32 4781.56,-1412.36 4832,-1378.8 5137.61,-1175.5 5234.77,-1153.42 5580,-1028.74 5864.71,-925.92 6598.54,-728.84 6898,-684.57 7001.84,-669.21 7753.4,-704.85 7842,-648.57 7873.05,-628.84 7849.26,-595.24 7880,-575.03 7928.21,-543.33 8340.64,-545.27 8398,-539.03 8461.79,-532.09 8534.61,-520.81 8583.36,-512.77"/>
<polygon fill="#e50505" stroke="black" points="8584.09,-516.2 8593.38,-511.11 8582.95,-509.29 8584.09,-516.2"/>
</g>
<!-- ahriman_core_build_tools_task -->
<g id="node45" class="node">
<title>ahriman_core_build_tools_task</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="6005" cy="-1853.73" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="6005" y="-1867.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6005" y="-1856.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6005" y="-1845.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">build_tools.</text>
<text text-anchor="middle" x="6005" y="-1834.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">task</text>
</g>
<!-- ahriman_core_build_tools_sources&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge153" class="edge">
<title>ahriman_core_build_tools_sources&#45;&gt;ahriman_core_build_tools_task</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4463,-2705.7C4488.33,-2666.61 4511.41,-2672.9 4546,-2641.71 4731.39,-2474.56 4775.35,-2428.21 4933,-2234.67 4985.66,-2170.03 5074.7,-1968.02 5147,-1926.5 5234.95,-1875.98 5500.93,-1898.98 5602,-1890.5 5725.76,-1880.11 5870.81,-1867.01 5948.7,-1859.89"/>
<polygon fill="#e50505" stroke="black" points="5949.14,-1863.37 5958.78,-1858.97 5948.5,-1856.4 5949.14,-1863.37"/>
</g>
<!-- ahriman_core_build_tools_sources&#45;&gt;ahriman_core_repository_update_handler -->
<g id="edge154" class="edge">
<title>ahriman_core_build_tools_sources&#45;&gt;ahriman_core_repository_update_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4463,-2705.7C4531.95,-2578.08 4408.41,-2502.13 4487,-2380.21 4505.1,-2352.12 4528.14,-2366.54 4553,-2344.21 4597.08,-2304.61 4611.3,-2291.22 4629,-2234.67 4640.83,-2196.88 4641.85,-2183.03 4629,-2145.57 4622.42,-2126.4 4612.24,-2126.44 4601,-2109.57 4569.97,-2063.03 4553.25,-2054.13 4539,-2000.03 4518.28,-1921.35 4512.59,-1893.92 4539,-1816.96 4545.58,-1797.78 4555.23,-1797.46 4567,-1780.96 4589.67,-1749.18 4580.97,-1726.52 4615,-1707.42 4729.09,-1643.37 5664.74,-1701.8 5792,-1671.42 5866.95,-1653.53 5874.84,-1618.81 5949,-1597.88 6150.12,-1541.11 6398.92,-1529.01 6517.24,-1526.59"/>
<polygon fill="#e50505" stroke="black" points="6517.32,-1530.09 6527.25,-1526.4 6517.19,-1523.09 6517.32,-1530.09"/>
</g>
<!-- ahriman_core_build_tools_sources&#45;&gt;ahriman_core_tree -->
<g id="edge155" class="edge">
<title>ahriman_core_build_tools_sources&#45;&gt;ahriman_core_tree</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4463,-2705.7C4569.63,-2557.04 4602.84,-2524.75 4715,-2380.21 4727.43,-2364.19 4733.33,-2362.02 4743,-2344.21 4767.59,-2298.92 4771.16,-2285.25 4781,-2234.67 4785.22,-2212.98 4779.18,-2054.71 4791,-2036.03 4804.76,-2014.29 4970.36,-1933.89 4995,-1926.5 5165.55,-1875.35 5226.51,-1950.92 5394,-1890.5 5400.37,-1888.2 5406.7,-1884.92 5412.63,-1881.28"/>
<polygon fill="#e50505" stroke="black" points="5414.59,-1884.18 5421,-1875.74 5410.72,-1878.34 5414.59,-1884.18"/>
</g>
<!-- ahriman_core_build_tools_sources&#45;&gt;ahriman_models_package -->
<g id="edge156" class="edge">
<title>ahriman_core_build_tools_sources&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4301.2,-2805.88C4347.85,-2796.43 4422.8,-2781.81 4488,-2771.7 4617.65,-2751.58 4653.78,-2767.76 4781,-2735.7 4961.39,-2690.23 4990.6,-2629.13 5171,-2583.73 5342.59,-2540.55 5553.38,-2526.1 5646.67,-2521.61"/>
<polygon fill="#e50505" stroke="black" points="5647.09,-2525.09 5656.92,-2521.13 5646.77,-2518.1 5647.09,-2525.09"/>
</g>
<!-- ahriman_core_build_tools_task&#45;&gt;ahriman_core_repository_executor -->
<g id="edge157" class="edge">
<title>ahriman_core_build_tools_task&#45;&gt;ahriman_core_repository_executor</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5970.86,-1828.16C5947.08,-1807.77 5921.23,-1777.04 5931,-1745.19"/>
</g>
<!-- ahriman_core_configuration -->
<g id="node46" class="node">
<title>ahriman_core_configuration</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#d10505" stroke="black" cx="5112" cy="-3019.77" rx="50.82" ry="28.98"/>
<text text-anchor="middle" x="5112" y="-3028.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5112" y="-3017.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5112" y="-3006.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">configuration</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_application_properties -->
<g id="edge158" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_application_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7210,-2815.24C7148.38,-2766.47 7233.1,-2719.55 7244,-2641.71 7257.84,-2542.88 7277.96,-2516.65 7263,-2417.98"/>
<path fill="none" stroke="black" d="M7263,-2415.98C7252.67,-2352.07 7245.28,-2334.94 7253,-2270.67 7271.58,-2116.03 7332.36,-2081.68 7319,-1926.5 7310.52,-1828.04 7310.16,-1801.84 7281,-1707.42 7261.86,-1645.43 7009.58,-1233.87 7039,-1176.05"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_add -->
<g id="edge159" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_add</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7605,-2415.98C7610.58,-2353.17 7651.71,-2194.89 7691,-2145.57 7710.62,-2120.95 7725.54,-2126.62 7752,-2109.57 7767.22,-2099.77 9893.96,-629.51 9887,-612.8"/>
<path fill="none" stroke="black" d="M9887,-610.8C9870.41,-559.42 9835.99,-565.6 9789,-539.03 9785.16,-536.85 9781.22,-534.52 9777.31,-532.12"/>
<polygon fill="#d10505" stroke="black" points="9779.14,-529.15 9768.81,-526.82 9775.43,-535.08 9779.14,-529.15"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_clean -->
<g id="edge160" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_clean</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7631,-2815.24C7646.97,-2799.97 7642.54,-2789.94 7655,-2771.7 7666.75,-2754.5 7674.63,-2753.76 7685,-2735.7 7754.47,-2614.73 7789.01,-2231.37 7899,-2145.57 7961,-2097.21 8176.92,-2135.94 8251,-2109.57 8584.8,-1990.78 8637.84,-1889.6 8917,-1671.42 9267.58,-1397.41 9335.89,-1304.87 9653,-992.74 9685.16,-961.09 9685.84,-944.8 9723,-919.2 9757.12,-895.69 9773.4,-904.41 9809,-883.2 9875.68,-843.48 9897.52,-835.06 9945,-773.66 9999.39,-703.33 10035.91,-604.89 10053.92,-548.23"/>
<polygon fill="#d10505" stroke="black" points="10057.32,-549.08 10056.96,-538.49 10050.64,-546.99 10057.32,-549.08"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_dump -->
<g id="edge161" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_dump</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5162.87,-3018.07C5498.94,-3013.39 7389.79,-2985.78 7507,-2954.77 7782.47,-2881.91 7792.27,-2714.57 7907,-2453.75 7927.69,-2406.71 7931.77,-2394.12 7944,-2344.21 7965.26,-2257.42 7909.39,-2206.23 7975,-2145.57 8052.08,-2074.32 8345.74,-2140.67 8446,-2109.57 8538.73,-2080.81 8552.45,-2051.13 8635,-2000.03 8780.93,-1909.7 8815.95,-1884.27 8953,-1780.96 9024.35,-1727.17 10399.53,-649.36 10419,-612.8"/>
<path fill="none" stroke="black" d="M10419,-610.8C10427.73,-591.71 10432.46,-569.02 10435.02,-549.41"/>
<polygon fill="#d10505" stroke="black" points="10438.5,-549.81 10436.17,-539.48 10431.54,-549.01 10438.5,-549.81"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_handler -->
<g id="edge162" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7593,-2705.7C7639.46,-2585.26 7649.28,-2229.93 7747,-2145.57 7796.82,-2102.56 7980.09,-2134.51 8041,-2109.57 8077.96,-2094.44 8580.52,-1697.23 8611,-1671.42 8756.56,-1548.12 8781.72,-1504.74 8925,-1378.8 9184.26,-1150.9 9293.69,-1141.21 9523,-883.2 9587.92,-810.15 9645.76,-710.81 9675.93,-655.13"/>
<polygon fill="#d10505" stroke="black" points="9679.06,-656.71 9680.71,-646.25 9672.89,-653.4 9679.06,-656.71"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_help -->
<g id="edge163" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_help</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6963,-2071.8C7052.05,-2024.71 7083.17,-2034.03 7178,-2000.03 7539.04,-1870.63 9381.96,-1166.3 9515,-1102.28 9745.33,-991.44 9821.65,-968.59 9987,-773.66 10051.98,-697.06 10117.26,-599.02 10152.14,-544.52"/>
<polygon fill="#d10505" stroke="black" points="10155.25,-546.14 10157.68,-535.83 10149.35,-542.38 10155.25,-546.14"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_key_import -->
<g id="edge164" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_key_import</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7593,-2705.7C7611.5,-2678.29 7617.15,-2671.75 7631,-2641.71 7667.95,-2561.57 7668.4,-2537.89 7695,-2453.75 7716.5,-2385.72 7730.39,-2191.48 7785,-2145.57 7840.12,-2099.24 8040.07,-2136.11 8107,-2109.57 8256.5,-2050.29 8268,-1989.16 8395,-1890.5 8457.39,-1842.03 8473.48,-1830.53 8535,-1780.96 8594.36,-1733.12 8608.99,-1720.88 8667,-1671.42 8817.17,-1543.36 8848.5,-1504.07 9001,-1378.8 9095.04,-1301.56 9122.82,-1287.65 9218,-1211.82 9371.87,-1089.23 9817.1,-826.51 9901,-648.57 9914.94,-619 9911.63,-605.93 9901,-575.03 9896.58,-562.16 9888.8,-549.84 9880.42,-539.14"/>
<polygon fill="#d10505" stroke="black" points="9883.01,-536.78 9873.94,-531.3 9877.61,-541.24 9883.01,-536.78"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge165" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_patch</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7263,-2415.98C7260.15,-2305.51 7486.81,-1560.59 7509,-1452.34 7523.59,-1381.16 7576.8,-859.16 7630,-809.66 7832.46,-621.29 7976.14,-755.9 8231,-648.57 8290.05,-623.7 8295.77,-599.47 8355,-575.03 8431.28,-543.55 8524.95,-523.14 8583.33,-512.42"/>
<polygon fill="#d10505" stroke="black" points="8584.23,-515.81 8593.45,-510.59 8582.99,-508.92 8584.23,-515.81"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_rebuild -->
<g id="edge166" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_rebuild</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7400,-2924.78C7416.13,-2898.26 7418.96,-2890.49 7428,-2860.79 7451.51,-2783.54 7508.96,-2210.48 7557,-2145.57 7577.81,-2117.45 7598.41,-2129.73 7627,-2109.57 8065.13,-1800.74 8069.25,-1594.18 8507,-1284.82 8532.23,-1266.98 9475.04,-797.25 9495,-773.66 9508.13,-758.14 9494.69,-744.55 9509,-730.11"/>
<path fill="none" stroke="black" d="M9509,-728.11C9522.12,-710.33 9521.16,-703.23 9533,-684.57 9554.1,-651.3 9600.86,-648.85 9585,-612.8"/>
<path fill="none" stroke="black" d="M9585,-610.8C9583.66,-607.75 9521.06,-563.78 9476.89,-533.02"/>
<polygon fill="#d10505" stroke="black" points="9478.81,-530.09 9468.6,-527.25 9474.81,-535.83 9478.81,-530.09"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_remove -->
<g id="edge167" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_remove</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6665,-2705.7C6629.82,-2653.7 6702.02,-2195.58 6740,-2145.57 6764.57,-2113.23 6794.12,-2137.08 6824,-2109.57 6851.22,-2084.52 6843.52,-2067.49 6863,-2036.03 7031.01,-1764.77 7111.65,-1722.77 7281,-1452.34 7453.51,-1176.86 7355.04,-982.99 7630,-809.66 7695.6,-768.31 8250.46,-786.14 8327,-773.66 8531.45,-740.32 8576.68,-704.98 8776,-648.57 8945.53,-600.58 8996.72,-612.2 9157,-539.03 9161.07,-537.17 9165.19,-535.03 9169.25,-532.76"/>
<polygon fill="#d10505" stroke="black" points="9171.16,-535.7 9177.98,-527.59 9167.59,-529.67 9171.16,-535.7"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_remove_unknown -->
<g id="edge168" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_remove_unknown</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5162.96,-3017.86C5491.44,-3012 7300.2,-2978.68 7414,-2954.77 7441.12,-2949.08 7624.38,-2879.3 7645,-2860.79 7678.47,-2830.75 7671.53,-2811.22 7693,-2771.7 7718.84,-2724.11 7912.27,-2396.31 7927,-2344.21 7951.05,-2259.15 7875.63,-2209.19 7937,-2145.57 8001.58,-2078.64 8264.67,-2135.5 8354,-2109.57 8455.47,-2080.12 8475.55,-2056.27 8565,-2000.03 9166.1,-1622.12 9259.15,-1446.82 9805,-992.74 9863.08,-944.42 9879.58,-934.56 9935,-883.2 10063.54,-764.08 10206.27,-613.01 10271.67,-542.65"/>
<polygon fill="#d10505" stroke="black" points="10274.27,-544.99 10278.51,-535.28 10269.14,-540.23 10274.27,-544.99"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_report -->
<g id="edge169" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7400,-2924.78C7449.53,-2841.98 7395.56,-2803.91 7403,-2707.7"/>
<path fill="none" stroke="black" d="M7403,-2705.7C7404.68,-2580.93 7373.09,-2248.94 7443,-2145.57 7463.49,-2115.28 7488.14,-2132.04 7517,-2109.57 7773.21,-1910.14 8256.71,-1246.7 8459,-992.74 8603.71,-811.08 8604.76,-735.15 8773,-575.03 8778.5,-569.79 8808.35,-549.68 8834.98,-532.08"/>
<polygon fill="#d10505" stroke="black" points="8837.06,-534.9 8843.48,-526.47 8833.21,-529.05 8837.06,-534.9"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_search -->
<g id="edge170" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6589,-2611.72C6559.39,-2545.25 6615.15,-2524.53 6632,-2453.75 6664.38,-2317.75 6604.97,-2252.52 6695,-2145.57 6723.28,-2111.98 6757.33,-2141.94 6787,-2109.57 6878.58,-2009.64 6818.38,-1941.02 6873,-1816.96 6956.79,-1626.66 7115,-1624.5 7115,-1416.57 7115,-1416.57 7115,-1416.57 7115,-1247.82 7115,-1113.98 7193,-1090.8 7193,-956.97 7193,-956.97 7193,-956.97 7193,-845.43 7193,-742.04 7158.2,-710.16 7193,-612.8"/>
<path fill="none" stroke="black" d="M7193,-610.8C7198.93,-594.79 7193.29,-585.21 7207,-575.03 7274.28,-525.06 7859.54,-508.41 8046.11,-504.35"/>
<polygon fill="#d10505" stroke="black" points="8046.34,-507.85 8056.26,-504.13 8046.19,-500.85 8046.34,-507.85"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_setup -->
<g id="edge171" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_setup</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6779,-2705.7C6781.03,-2677.31 6780.7,-2670.16 6782,-2641.71 6784.51,-2586.59 6770.35,-2189.31 6804,-2145.57 6836.66,-2103.13 6871.82,-2134.92 6919,-2109.57 6941.2,-2097.65 6940.47,-2085.09 6963,-2073.8"/>
<path fill="none" stroke="black" d="M6963,-2071.8C7763.45,-1655.97 7890.83,-1419.12 8704,-1028.74 8745.45,-1008.84 8758.59,-1010.53 8801,-992.74 8977.58,-918.68 9008.04,-866.15 9191,-809.66 9286.93,-780.04 9334.67,-835.19 9414,-773.66 9430.69,-760.72 9422.33,-748.34 9433,-730.11"/>
<path fill="none" stroke="black" d="M9433,-728.11C9451.3,-661.72 9442.95,-634.95 9409,-575.03 9399.21,-557.75 9383.56,-542.84 9368.26,-531.16"/>
<polygon fill="#d10505" stroke="black" points="9369.99,-528.08 9359.85,-525 9365.85,-533.73 9369.99,-528.08"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_sign -->
<g id="edge172" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_sign</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5161.92,-3013.4C5223.47,-3006.99 5331.31,-2996.43 5424,-2990.77 5478.82,-2987.43 7371.46,-2973.7 7400,-2926.78"/>
<path fill="none" stroke="black" d="M7400,-2924.78C7472.78,-2805.13 6881.3,-2912.9 6779,-2817.24"/>
<path fill="none" stroke="black" d="M6779,-2815.24C6737.52,-2776.46 6714.77,-2779.81 6679,-2735.7 6670.24,-2724.89 6672.79,-2719.23 6665,-2707.7"/>
<path fill="none" stroke="black" d="M6665,-2705.7C6642.81,-2672.91 6625.9,-2674.02 6603,-2641.71 6594.96,-2630.37 6594.95,-2626.29 6589,-2613.72"/>
<path fill="none" stroke="black" d="M6589,-2611.72C6565.77,-2562.67 6578.02,-2543.79 6583,-2489.75 6584.79,-2470.38 6636.36,-2161.85 6647,-2145.57 6662.58,-2121.74 6686.67,-2134.74 6700,-2109.57 6715.3,-2080.69 6700.2,-2068.72 6700,-2036.03 6699.11,-1889.97 6718.17,-1851.79 6696,-1707.42 6688.28,-1657.16 6699.83,-1632.94 6663,-1597.88 6614.91,-1552.1 6572.54,-1599.75 6518,-1561.88 6469.53,-1528.23 6471.11,-1504.21 6443,-1452.34 6411.47,-1394.17 6386,-1380.98 6386,-1314.81 6386,-1314.81 6386,-1314.81 6386,-1064.51 6386,-790.13 6717.84,-977.27 6986,-919.2 7112.7,-891.76 7430.59,-827.5 7559,-809.66 7741.06,-784.37 7789.15,-800.41 7971,-773.66 8241.36,-733.9 8306.09,-707.2 8573,-648.57 8783.76,-602.27 8847.42,-623.47 9046,-539.03 9050.12,-537.27 9054.27,-535.22 9058.35,-532.99"/>
<polygon fill="#d10505" stroke="black" points="9060.23,-535.94 9067.11,-527.89 9056.71,-529.89 9060.23,-535.94"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_status -->
<g id="edge173" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7403,-2705.7C7403.15,-2703.72 7517.89,-2147.22 7519,-2145.57 7535.13,-2121.66 7550.51,-2127.64 7573,-2109.57 7627.78,-2065.57 7637.42,-2049.82 7687,-2000.03 7821.56,-1864.91 8127.7,-1494.88 8279,-1378.8 8305.51,-1358.46 8317,-1361.03 8345,-1342.8 8559.13,-1203.42 8647.95,-1197.33 8801,-992.74 8907.53,-850.34 8961.5,-640.46 8981.11,-548.84"/>
<polygon fill="#d10505" stroke="black" points="8984.6,-549.29 8983.23,-538.79 8977.75,-547.85 8984.6,-549.29"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_status_update -->
<g id="edge174" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_status_update</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6779,-2815.24C6744.09,-2782.6 6783.76,-2755.26 6779,-2707.7"/>
<path fill="none" stroke="black" d="M6779,-2705.7C6766.6,-2581.84 6700.82,-2248.39 6771,-2145.57 6795.75,-2109.31 6827.13,-2134.9 6863,-2109.57 6968.29,-2035.25 7169.74,-1777.46 7243,-1671.42 7364.31,-1495.83 7398.57,-1449.57 7471,-1248.82 7538.56,-1061.57 7417.91,-950.09 7559,-809.66 7592.06,-776.76 8342.52,-671.74 8383,-648.57 8420.86,-626.89 8409.63,-595.78 8448,-575.03 8545.58,-522.25 8589.95,-574.68 8695,-539.03 8700.2,-537.26 8705.46,-535.08 8710.62,-532.66"/>
<polygon fill="#d10505" stroke="black" points="8712.36,-535.7 8719.76,-528.11 8709.24,-529.44 8712.36,-535.7"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_sync -->
<g id="edge175" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_sync</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7400,-2924.78C7454.58,-2825.56 7555.4,-2901.56 7631,-2817.24"/>
<path fill="none" stroke="black" d="M7631,-2815.24C7682.67,-2757.61 7763.56,-2195.16 7823,-2145.57 7885.25,-2093.65 8110.66,-2139.49 8186,-2109.57 8260.08,-2080.16 8265.27,-2049.21 8328,-2000.03 8365.93,-1970.31 9646.73,-948.48 9685,-919.2 9825.53,-811.68 9913.09,-813.57 9977,-648.57 9989.61,-616 9982.71,-576.67 9973.57,-547.14"/>
<polygon fill="#d10505" stroke="black" points="9976.86,-545.94 9970.41,-537.53 9970.21,-548.12 9976.86,-545.94"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_unsafe_commands -->
<g id="edge176" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_unsafe_commands</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5163.04,-3018.53C5495.44,-3016.88 7346.43,-3005.47 7592,-2954.77 7752.85,-2921.57 7904.39,-2978.61 7935,-2817.24"/>
<path fill="none" stroke="black" d="M7935,-2815.24C7973.91,-2751.3 7954.04,-2197.45 8008,-2145.57 8049.75,-2105.44 8471.51,-2122.34 8528,-2109.57 8916.61,-2021.76 9010.83,-1969.12 9362,-1780.96 9662.3,-1620.05 9741.97,-1575.31 9991,-1342.8 10066.82,-1272.01 10570.79,-716.51 10573,-612.8"/>
<path fill="none" stroke="black" d="M10573,-610.8C10571.92,-590.66 10571.75,-568.38 10571.91,-549.34"/>
<polygon fill="#d10505" stroke="black" points="10575.42,-549.17 10572.04,-539.13 10568.42,-549.09 10575.42,-549.17"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_update -->
<g id="edge177" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_update</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7400,-2924.78C7464.82,-2813.14 7551.52,-2829.96 7593,-2707.7"/>
<path fill="none" stroke="black" d="M7593,-2705.7C7607.88,-2677.38 7601.47,-2449.78 7605,-2417.98"/>
<path fill="none" stroke="black" d="M7605,-2415.98C7607.8,-2295.19 7568.9,-2247.99 7633,-2145.57 7649.1,-2119.86 7666.28,-2127.17 7691,-2109.57 7753.95,-2064.77 7766.5,-2049.33 7826,-2000.03 8097.19,-1775.37 8149.79,-1700.34 8431,-1488.34 8560.83,-1390.46 8598.48,-1373.12 8735,-1284.82 9017.92,-1101.82 9100.41,-1074.19 9378,-883.2 9496.02,-802 9560.38,-786.52 9599,-648.57 9608.2,-615.69 9603.58,-577.2 9597.13,-548.1"/>
<polygon fill="#d10505" stroke="black" points="9600.5,-547.15 9594.79,-538.22 9593.68,-548.76 9600.5,-547.15"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_user -->
<g id="edge178" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_user</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7400,-2924.78C7414.22,-2899.38 7390.64,-2889.53 7386,-2860.79 7359.68,-2697.68 7352.97,-2654.67 7363,-2489.75 7372.35,-2335.93 7318.44,-2273.07 7405,-2145.57 7423.77,-2117.93 7446.14,-2131.9 7471,-2109.57 7515.08,-2069.98 7529.3,-2056.58 7547,-2000.03 7556.76,-1968.84 7549.39,-1959.09 7547,-1926.5 7526.95,-1652.44 7457,-1589.6 7457,-1314.81 7457,-1314.81 7457,-1314.81 7457,-1247.82 7457,-1052.74 7365.92,-965.7 7483,-809.66 7534.24,-741.37 8108.82,-570.67 8288.58,-518.59"/>
<polygon fill="#d10505" stroke="black" points="8289.71,-521.9 8298.35,-515.76 8287.77,-515.18 8289.71,-521.9"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_web -->
<g id="edge179" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2611,-2517.74C2590.3,-2489.16 2583.27,-2483.31 2564,-2453.75 2503.83,-2361.45 2472.62,-2342.06 2448,-2234.67 2395.63,-2006.21 2431.49,-1940.18 2459,-1707.42 2464.81,-1658.27 2465.9,-1645.6 2479,-1597.88 2550.39,-1337.72 2590.59,-1279.53 2690,-1028.74 2783.42,-793.04 2867.34,-752.83 2912,-503.26"/>
<path fill="none" stroke="black" d="M2912,-501.26C2917.17,-427.77 2838.84,-344.13 2912,-335.5"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_lock -->
<g id="edge180" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_lock</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7400,-2924.78C7440.66,-2852.16 7281.73,-2920.74 7224,-2860.79 7209.9,-2846.15 7226.42,-2829.23 7210,-2817.24"/>
<path fill="none" stroke="black" d="M7210,-2815.24C7138.03,-2762.73 7089.91,-2797.77 7026,-2735.7 6983.08,-2694 6969,-2673.56 6969,-2613.72 6969,-2613.72 6969,-2613.72 6969,-2517.74 6969,-2303.62 6995.92,-2249.32 6977,-2036.03 6971.2,-1970.63 6975.73,-1786.87 6925,-1745.19"/>
<path fill="none" stroke="black" d="M6925,-1743.19C6899.54,-1722.76 6876.77,-1693.52 6861.07,-1670.69"/>
<polygon fill="#d10505" stroke="black" points="6863.89,-1668.62 6855.4,-1662.29 6858.09,-1672.54 6863.89,-1668.62"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_alpm_pacman -->
<g id="edge181" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_alpm_pacman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5368,-2924.78C5397.93,-2905.99 5425.88,-2877.35 5445.7,-2854.35"/>
<polygon fill="#d10505" stroke="black" points="5448.58,-2856.37 5452.36,-2846.48 5443.23,-2851.85 5448.58,-2856.37"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_auth_auth -->
<g id="edge182" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_auth_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2905,-2517.74C2881.36,-2390.74 2853.76,-2363.01 2839,-2234.67 2834.47,-2195.33 2824.07,-2182.25 2839,-2145.57 2880.19,-2044.38 3075.15,-2048.02 3005,-1964.27"/>
<path fill="none" stroke="black" d="M3005,-1962.27C2990.57,-1945.49 2985.57,-1921.62 2984.39,-1900.63"/>
<polygon fill="#d10505" stroke="black" points="2987.89,-1900.49 2984.09,-1890.59 2980.89,-1900.69 2987.89,-1900.49"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_auth_mapping -->
<g id="edge183" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_auth_mapping</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2829,-2415.98C2787.97,-2359 2815.41,-2321.53 2767,-2270.67 2741.79,-2244.18 2715.17,-2263.76 2693,-2234.67 2648.92,-2176.82 2663,-2146.53 2663,-2073.8 2663,-2073.8 2663,-2073.8 2663,-1962.27 2663,-1901.7 2677.89,-1833.1 2689.27,-1789.52"/>
<polygon fill="#d10505" stroke="black" points="2692.66,-1790.37 2691.86,-1779.81 2685.9,-1788.57 2692.66,-1790.37"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_auth_oauth -->
<g id="edge184" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_auth_oauth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2829,-2415.98C2828.46,-2415.3 2657.35,-2235.46 2657,-2234.67 2635.17,-2184.73 2586.37,-1783.64 2625,-1745.19"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge185" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_build_tools_task</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6023,-2517.74C5992.14,-2463.94 6015.56,-2162.22 6009,-1926.5 6008.77,-1918.16 6008.38,-1909.28 6007.94,-1900.72"/>
<polygon fill="#d10505" stroke="black" points="6011.43,-1900.28 6007.39,-1890.49 6004.44,-1900.66 6011.43,-1900.28"/>
</g>
<!-- ahriman_core_database_data -->
<g id="node48" class="node">
<title>ahriman_core_database_data</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a1e1e" stroke="black" cx="8059" cy="-2190.12" rx="41.94" ry="36.54"/>
<text text-anchor="middle" x="8059" y="-2204.12" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8059" y="-2193.12" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="8059" y="-2182.12" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="8059" y="-2171.12" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">data</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_database_data -->
<g id="edge186" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_database_data</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7935,-2815.24C7951.36,-2718.16 8000.13,-2708.44 8027,-2613.72"/>
<path fill="none" stroke="black" d="M8027,-2611.72C8038.07,-2568.9 8073.45,-2563.16 8065,-2519.74"/>
<path fill="none" stroke="black" d="M8065,-2517.74C8045.82,-2419.12 8050.31,-2300.6 8054.9,-2236.94"/>
<polygon fill="#d10505" stroke="black" points="8058.4,-2237.06 8055.66,-2226.83 8051.42,-2236.53 8058.4,-2237.06"/>
</g>
<!-- ahriman_core_database_data_users -->
<g id="node51" class="node">
<title>ahriman_core_database_data_users</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b03a3a" stroke="black" cx="6855" cy="-2190.12" rx="41.94" ry="44.6"/>
<text text-anchor="middle" x="6855" y="-2209.62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6855" y="-2198.62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6855" y="-2187.62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="6855" y="-2176.62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">data.</text>
<text text-anchor="middle" x="6855" y="-2165.62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">users</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_database_data_users -->
<g id="edge187" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_database_data_users</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6779,-2815.24C6746.18,-2780.41 6855,-2661.58 6855,-2613.72 6855,-2613.72 6855,-2613.72 6855,-2415.98 6855,-2357.67 6855,-2290.86 6855,-2245.31"/>
<polygon fill="#d10505" stroke="black" points="6858.5,-2245.07 6855,-2235.07 6851.5,-2245.07 6858.5,-2245.07"/>
</g>
<!-- ahriman_core_database_sqlite -->
<g id="node59" class="node">
<title>ahriman_core_database_sqlite</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#950303" stroke="black" cx="3363" cy="-2072.8" rx="41.94" ry="36.54"/>
<text text-anchor="middle" x="3363" y="-2086.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3363" y="-2075.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="3363" y="-2064.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="3363" y="-2053.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">sqlite</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_database_sqlite -->
<g id="edge188" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_database_sqlite</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5147,-2924.78C5091.62,-2835.03 4294.86,-2906.87 4200,-2860.79 4175.9,-2849.08 4063.36,-2695.14 4043,-2677.71 3982.66,-2626.07 3966.62,-2608.02 3891,-2583.73 3778.39,-2547.57 3463.65,-2604.7 3360,-2547.73 3279.05,-2503.24 3296.92,-2450.51 3237,-2380.21 3192.65,-2328.18 3189.18,-2303.11 3129,-2270.67 3056.8,-2231.75 3000.03,-2298.07 2948,-2234.67 2922.88,-2204.06 2922.5,-2175.87 2948,-2145.57 2959.7,-2131.67 3203.58,-2096.07 3311.91,-2080.86"/>
<polygon fill="#d10505" stroke="black" points="3312.54,-2084.31 3321.96,-2079.46 3311.57,-2077.38 3312.54,-2084.31"/>
</g>
<!-- ahriman_core_report_console -->
<g id="node72" class="node">
<title>ahriman_core_report_console</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a2828" stroke="black" cx="5227" cy="-1963.27" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="5227" y="-1977.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5227" y="-1966.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5227" y="-1955.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report.</text>
<text text-anchor="middle" x="5227" y="-1944.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">console</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_report_console -->
<g id="edge189" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_report_console</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5299,-2705.7C5271.44,-2627.78 5299,-2602.39 5299,-2519.74 5299,-2519.74 5299,-2519.74 5299,-2306.44 5299,-2197.67 5272.86,-2170.47 5223,-2073.8"/>
<path fill="none" stroke="black" d="M5223,-2071.8C5213.36,-2052.68 5213.15,-2029.12 5215.87,-2008.93"/>
<polygon fill="#d10505" stroke="black" points="5219.33,-2009.45 5217.46,-1999.03 5212.42,-2008.34 5219.33,-2009.45"/>
</g>
<!-- ahriman_core_report_email -->
<g id="node73" class="node">
<title>ahriman_core_report_email</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="5336" cy="-1744.19" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="5336" y="-1758.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5336" y="-1747.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5336" y="-1736.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report.</text>
<text text-anchor="middle" x="5336" y="-1725.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">email</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_report_email -->
<g id="edge190" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_report_email</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5368,-2924.78C5644,-2762.77 5854.06,-3043.9 6080,-2817.24"/>
<path fill="none" stroke="black" d="M6080,-2815.24C6174.43,-2720.52 6091.25,-2634.77 6023,-2519.74"/>
<path fill="none" stroke="black" d="M6023,-2517.74C5861.75,-2329.51 5936.9,-2189.16 5742,-2036.03 5697.88,-2001.37 5666.29,-2033.16 5621,-2000.03 5589.1,-1976.7 5593.58,-1958.94 5571,-1926.5 5536.86,-1877.44 5539.08,-1855.02 5493,-1816.96 5460.09,-1789.77 5415.19,-1770.62 5381.84,-1758.98"/>
<polygon fill="#d10505" stroke="black" points="5382.92,-1755.65 5372.33,-1755.75 5380.67,-1762.28 5382.92,-1755.65"/>
</g>
<!-- ahriman_core_report_html -->
<g id="node74" class="node">
<title>ahriman_core_report_html</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#822b2b" stroke="black" cx="4695" cy="-1744.19" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="4695" y="-1758.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4695" y="-1747.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4695" y="-1736.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report.</text>
<text text-anchor="middle" x="4695" y="-1725.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">html</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_report_html -->
<g id="edge191" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_report_html</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5133.66,-2993.37C5147.24,-2974.2 5159.93,-2947.72 5147,-2926.78"/>
<path fill="none" stroke="black" d="M5147,-2924.78C5086.86,-2827.42 4226.44,-2900.2 4119,-2860.79 4058.63,-2838.65 4061.88,-2801.7 4005,-2771.7 3882.92,-2707.3 3840.62,-2719.27 3709,-2677.71 3525.09,-2619.65 3454.67,-2655.89 3295,-2547.73 3198.36,-2482.26 3193.02,-2441.81 3129,-2344.21 3108.82,-2313.45 3120.19,-2293.06 3091,-2270.67 3031.44,-2224.99 2973.08,-2293.13 2926,-2234.67 2901.16,-2203.83 2902.13,-2177.17 2926,-2145.57 2939.44,-2127.79 3290.38,-2041.47 3312,-2036.03 3752.84,-1925.25 3865.54,-1907.41 4311,-1816.96 4431.84,-1792.42 4574.72,-1766.54 4647.39,-1753.59"/>
<polygon fill="#d10505" stroke="black" points="4648.35,-1756.98 4657.59,-1751.78 4647.13,-1750.09 4648.35,-1756.98"/>
</g>
<!-- ahriman_core_report_jinja_template -->
<g id="node75" class="node">
<title>ahriman_core_report_jinja_template</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#832020" stroke="black" cx="4673" cy="-1853.73" rx="54.39" ry="36.54"/>
<text text-anchor="middle" x="4673" y="-1867.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4673" y="-1856.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4673" y="-1845.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report.</text>
<text text-anchor="middle" x="4673" y="-1834.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">jinja_template</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge192" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_report_jinja_template</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5368,-2924.78C5384.68,-2914.64 4881,-2437.5 4881,-2417.98 4881,-2417.98 4881,-2417.98 4881,-2306.44 4881,-2154.42 4790.18,-2139.2 4729,-2000.03 4714.34,-1966.68 4699.59,-1928.17 4688.92,-1899.18"/>
<polygon fill="#d10505" stroke="black" points="4692.18,-1897.93 4685.46,-1889.74 4685.61,-1900.33 4692.18,-1897.93"/>
</g>
<!-- ahriman_core_report_report -->
<g id="node76" class="node">
<title>ahriman_core_report_report</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a0f0f" stroke="black" cx="5227" cy="-1853.73" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="5227" y="-1867.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5227" y="-1856.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5227" y="-1845.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report.</text>
<text text-anchor="middle" x="5227" y="-1834.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_report_report -->
<g id="edge193" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_report_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5368,-2924.78C5378.72,-2918.05 5303.39,-2719.57 5299,-2707.7"/>
<path fill="none" stroke="black" d="M5299,-2705.7C5211.15,-2555.49 4961.39,-2115.77 5047,-1964.27"/>
<path fill="none" stroke="black" d="M5047,-1962.27C5067.02,-1906.93 5133.52,-1878.6 5179.82,-1865.23"/>
<polygon fill="#d10505" stroke="black" points="5180.95,-1868.56 5189.66,-1862.53 5179.09,-1861.81 5180.95,-1868.56"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_repository_properties -->
<g id="edge194" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5368,-2924.78C5647.35,-2760.81 5821.51,-3035.93 6094,-2860.79 6147.78,-2826.23 6139.36,-2794.26 6165,-2735.7 6182.58,-2695.53 6184.3,-2684.23 6195,-2641.71 6215.74,-2559.31 6216.08,-2537.58 6230,-2453.75 6230.71,-2449.48 6272.36,-2149 6275,-2145.57 6299.76,-2113.37 6334.39,-2141.88 6359,-2109.57 6408.47,-2044.63 6423.33,-1991.55 6374,-1926.5 6302.61,-1832.34 6230.8,-1889.91 6118,-1854.73"/>
</g>
<!-- ahriman_core_sign_gpg -->
<g id="node84" class="node">
<title>ahriman_core_sign_gpg</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#932424" stroke="black" cx="4615" cy="-2816.24" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="4615" y="-2830.24" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4615" y="-2819.24" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4615" y="-2808.24" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">sign.</text>
<text text-anchor="middle" x="4615" y="-2797.24" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">gpg</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_sign_gpg -->
<g id="edge195" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_sign_gpg</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5159.09,-3008.35C5212.62,-2995.09 5301.21,-2968.73 5368,-2926.78"/>
<path fill="none" stroke="black" d="M5368,-2924.78C5429.03,-2886.45 4838.48,-2835.3 4663.17,-2821.06"/>
<polygon fill="#d10505" stroke="black" points="4663.21,-2817.55 4652.96,-2820.24 4662.65,-2824.53 4663.21,-2817.55"/>
</g>
<!-- ahriman_core_spawn -->
<g id="node85" class="node">
<title>ahriman_core_spawn</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b62020" stroke="black" cx="2611" cy="-2416.98" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="2611" y="-2425.48" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2611" y="-2414.48" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="2611" y="-2403.48" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">spawn</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_spawn -->
<g id="edge196" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_spawn</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2611,-2517.74C2595.3,-2501.66 2595.52,-2476.24 2599.55,-2455.09"/>
<polygon fill="#d10505" stroke="black" points="2603.01,-2455.64 2601.78,-2445.11 2596.18,-2454.11 2603.01,-2455.64"/>
</g>
<!-- ahriman_core_status_client -->
<g id="node87" class="node">
<title>ahriman_core_status_client</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#931a1a" stroke="black" cx="6327" cy="-1963.27" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="6327" y="-1977.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6327" y="-1966.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6327" y="-1955.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status.</text>
<text text-anchor="middle" x="6327" y="-1944.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">client</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_status_client -->
<g id="edge197" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_status_client</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6080,-2815.24C6191.37,-2685.43 6171.33,-2619.88 6212,-2453.75 6227.49,-2390.48 6208.94,-2369.72 6231,-2308.44"/>
</g>
<!-- ahriman_core_status_watcher -->
<g id="node88" class="node">
<title>ahriman_core_status_watcher</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#832020" stroke="black" cx="3405" cy="-1175.05" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="3405" y="-1189.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3405" y="-1178.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="3405" y="-1167.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status.</text>
<text text-anchor="middle" x="3405" y="-1156.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">watcher</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_status_watcher -->
<g id="edge198" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_status_watcher</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5063.99,-3009.88C5018.72,-3000.3 4949.83,-2982.57 4895,-2954.77 4857.11,-2935.56 4859.12,-2910.77 4819,-2896.79 4719.62,-2862.15 3000.87,-2933.72 2925,-2860.79 2870.27,-2808.18 2922.58,-2593.6 2905,-2519.74"/>
<path fill="none" stroke="black" d="M2905,-2517.74C2891.81,-2463.58 2864.44,-2461 2829,-2417.98"/>
<path fill="none" stroke="black" d="M2829,-2415.98C2785.05,-2362.62 2740.62,-2392.35 2691,-2344.21 2689.77,-2343.02 2635.5,-2236.3 2635,-2234.67 2566.58,-2010.29 2572.57,-1938.83 2611,-1707.42 2619.33,-1657.26 2606.81,-1632.55 2644,-1597.88 2696.99,-1548.47 2751.75,-1613.1 2803,-1561.88 2849.84,-1515.06 2780.43,-1452.6 2836,-1416.57"/>
</g>
<!-- ahriman_core_status_web_client -->
<g id="node89" class="node">
<title>ahriman_core_status_web_client</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="2849" cy="-1853.73" rx="43.68" ry="36.54"/>
<text text-anchor="middle" x="2849" y="-1867.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2849" y="-1856.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="2849" y="-1845.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status.</text>
<text text-anchor="middle" x="2849" y="-1834.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web_client</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_status_web_client -->
<g id="edge199" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_status_web_client</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5091.15,-2993.31C5065.3,-2963.89 5018.22,-2916.96 4966,-2896.79 4784.46,-2826.68 4279.43,-2909.43 4091,-2860.79 4005.34,-2838.68 3994.93,-2805.07 3913,-2771.7 3610.49,-2648.46 3497.25,-2708.67 3213,-2547.73 3157.92,-2516.54 3152.12,-2497.1 3106,-2453.75 3022.41,-2375.16 3019.05,-2334.93 2924,-2270.67 2890.01,-2247.69 2861.66,-2268.87 2839,-2234.67 2817.13,-2201.66 2837.47,-2185.14 2839,-2145.57 2842.11,-2064.81 2851.41,-2045.07 2853,-1964.27"/>
</g>
<!-- ahriman_core_upload_github -->
<g id="node92" class="node">
<title>ahriman_core_upload_github</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#822b2b" stroke="black" cx="2027" cy="-2190.12" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="2027" y="-2204.12" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2027" y="-2193.12" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="2027" y="-2182.12" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload.</text>
<text text-anchor="middle" x="2027" y="-2171.12" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">github</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_upload_github -->
<g id="edge200" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_upload_github</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5060.89,-3017.52C4941.64,-3013.86 4648.66,-3000.36 4563,-2954.77 4548.53,-2947.08 4555.29,-2928.6 4539,-2926.78"/>
<path fill="none" stroke="black" d="M4539,-2924.78C4524.06,-2923.11 4533.21,-2903.96 4520,-2896.79 4433.07,-2849.6 2832.9,-2894.75 2740,-2860.79 2680.91,-2839.19 2685.24,-2801.8 2630,-2771.7 2549.91,-2728.05 2510.44,-2758.98 2435,-2707.7"/>
<path fill="none" stroke="black" d="M2435,-2705.7C2350.01,-2649.58 2338.48,-2622.19 2269,-2547.73 2246.18,-2523.27 2246.82,-2511.03 2221,-2489.75 2195.22,-2468.5 2179.82,-2476.12 2155,-2453.75 2096.77,-2401.25 2064.16,-2386.3 2055,-2308.44"/>
</g>
<!-- ahriman_core_upload_http_upload -->
<g id="node93" class="node">
<title>ahriman_core_upload_http_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#913030" stroke="black" cx="2020" cy="-1963.27" rx="47.25" ry="36.54"/>
<text text-anchor="middle" x="2020" y="-1977.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2020" y="-1966.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="2020" y="-1955.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload.</text>
<text text-anchor="middle" x="2020" y="-1944.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">http_upload</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_upload_http_upload -->
<g id="edge201" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_upload_http_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2435,-2705.7C2380.63,-2665.02 2390.58,-2632.17 2343,-2583.73 2324.81,-2565.21 2314.57,-2566.84 2297,-2547.73 2276.15,-2525.05 2282.23,-2509.98 2259,-2489.75 2230.82,-2465.2 2207.87,-2481.65 2183,-2453.75 2129.25,-2393.45 2091.19,-2186.33 2066,-2109.57 2054.96,-2075.95 2042.91,-2037.8 2033.9,-2009.03"/>
<polygon fill="#d10505" stroke="black" points="2037.18,-2007.77 2030.85,-1999.27 2030.5,-2009.86 2037.18,-2007.77"/>
</g>
<!-- ahriman_core_upload_rsync -->
<g id="node94" class="node">
<title>ahriman_core_upload_rsync</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="2255" cy="-1963.27" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="2255" y="-1977.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2255" y="-1966.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="2255" y="-1955.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload.</text>
<text text-anchor="middle" x="2255" y="-1944.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">rsync</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_upload_rsync -->
<g id="edge202" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_upload_rsync</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5078.83,-2997.55C5028.11,-2965.56 4933.16,-2907.55 4895,-2896.79 4792.69,-2867.94 4035.38,-2905.61 3939,-2860.79 3890.47,-2838.22 3904.82,-2797.62 3858,-2771.7 3573.14,-2613.98 3445.06,-2747.16 3137,-2641.71 3051.61,-2612.49 3023.89,-2608.31 2957,-2547.73 2934.16,-2527.05 2945.33,-2505.74 2919,-2489.75 2783.46,-2407.42 2709.91,-2515.87 2564,-2453.75 2524.68,-2437.01 2294.49,-2232.28 2283,-2191.12"/>
</g>
<!-- ahriman_core_upload_s3 -->
<g id="node95" class="node">
<title>ahriman_core_upload_s3</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#822b2b" stroke="black" cx="2161" cy="-1963.27" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="2161" y="-1977.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2161" y="-1966.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="2161" y="-1955.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload.</text>
<text text-anchor="middle" x="2161" y="-1944.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">s3</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_upload_s3 -->
<g id="edge203" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_upload_s3</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5061.47,-3015.13C4985.04,-3008.64 4836.1,-2992.05 4715,-2954.77 4656.85,-2936.88 4650.25,-2910.59 4591,-2896.79 4494.94,-2874.42 2900.74,-2911.27 2816,-2860.79 2735.6,-2812.9 2771.23,-2750.17 2712,-2677.71 2616.11,-2560.41 2562.28,-2560.73 2455,-2453.75 2409.16,-2408.04 2400.89,-2393.57 2359,-2344.21 2318.23,-2296.17 2304.36,-2286.82 2269,-2234.67 2256.6,-2216.38 2255.25,-2210.7 2245,-2191.12"/>
</g>
<!-- ahriman_core_upload_upload -->
<g id="node96" class="node">
<title>ahriman_core_upload_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a0f0f" stroke="black" cx="2113" cy="-2072.8" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="2113" y="-2086.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2113" y="-2075.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="2113" y="-2064.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload.</text>
<text text-anchor="middle" x="2113" y="-2053.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_upload_upload -->
<g id="edge204" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_upload_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4539,-2924.78C4524.06,-2923.11 4533.21,-2903.97 4520,-2896.79 4349.88,-2804.39 2953.73,-2942.03 2778,-2860.79 2729.96,-2838.58 2738.49,-2806.93 2699,-2771.7 2536.16,-2626.41 2484.13,-2602.03 2297,-2489.75 2266.66,-2471.54 2248.23,-2481.27 2226,-2453.75 2137.03,-2343.56 2191.99,-2279.17 2145,-2145.57 2141.57,-2135.83 2137.37,-2125.56 2133.15,-2115.94"/>
<polygon fill="#d10505" stroke="black" points="2136.24,-2114.28 2128.96,-2106.58 2129.85,-2117.14 2136.24,-2114.28"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_web_views_base -->
<g id="edge205" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_web_views_base</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5062.39,-3012.65C4998.49,-3003.93 4884.54,-2985.47 4791,-2954.77 4733.19,-2935.8 4726.26,-2910.58 4667,-2896.79 4568.88,-2873.96 2941.28,-2911.1 2854,-2860.79 2813.88,-2837.67 2824.16,-2811.2 2800,-2771.7 2774.39,-2729.82 2770.62,-2717.59 2742,-2677.71 2688.81,-2603.62 2674.71,-2585.01 2611,-2519.74"/>
<path fill="none" stroke="black" d="M2611,-2517.74C2583.06,-2481.79 2563.23,-2485.91 2531,-2453.75 2448.69,-2371.62 2429.91,-2343.13 2388,-2234.67 2375.19,-2201.51 2328.79,-1949.87 2302,-1926.5 2213.1,-1848.94 2121.19,-1975.14 2039,-1890.5 1925.54,-1773.64 2000,-1688.98 2000,-1526.11 2000,-1526.11 2000,-1526.11 2000,-1312.81 2000,-1252.03 1964,-1225.02 2000,-1176.05"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_web_web -->
<g id="edge206" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5061.68,-3014.48C5001.57,-3007.87 4899.09,-2991.84 4819,-2954.77 4780.44,-2936.93 4783.12,-2910.78 4743,-2896.79 4646.1,-2862.99 2982.11,-2916.63 2896,-2860.79 2863.86,-2839.95 2619.14,-2271.01 2607,-2234.67 2551.79,-2069.48 2511,-2028.9 2511,-1854.73 2511,-1854.73 2511,-1854.73 2511,-1743.19 2511,-1513.7 2613.09,-1473.45 2660,-1248.82 2707.46,-1021.54 2740.62,-961.54 2722,-730.11"/>
</g>
<!-- ahriman_core_database -->
<g id="node47" class="node">
<title>ahriman_core_database</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f91010" stroke="black" cx="3905" cy="-2072.8" rx="39.7" ry="28.98"/>
<text text-anchor="middle" x="3905" y="-2081.3" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3905" y="-2070.3" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="3905" y="-2059.3" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database</text>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_application_application_properties -->
<g id="edge207" class="edge">
<title>ahriman_core_database&#45;&gt;ahriman_application_application_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3919.03,-2045.59C3958.62,-1974.76 4079.1,-1780.02 4243,-1707.42 4328.45,-1669.57 4569.85,-1686.98 4662,-1671.42 5145.46,-1589.77 6681.48,-1166.51 6988.35,-1081.42"/>
<polygon fill="#f91010" stroke="black" points="6989.62,-1084.7 6998.33,-1078.65 6987.75,-1077.95 6989.62,-1084.7"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_application_handlers_user -->
<g id="edge208" class="edge">
<title>ahriman_core_database&#45;&gt;ahriman_application_handlers_user</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3983,-1743.19C3990.74,-1727.97 3984.2,-1718.71 3997,-1707.42 4194.7,-1533.04 4340.09,-1687.23 4572,-1561.88 4633.2,-1528.8 4972.86,-1173.23 5033,-1138.28 5147.89,-1071.51 6069.79,-858.58 6172,-773.66 6206.6,-744.92 6181.81,-708.33 6220,-684.57 6266.59,-655.58 7152.29,-652.7 7207,-648.57 7220.27,-647.56 8145.85,-541.07 8159,-539.03 8202.28,-532.32 8250.92,-522.71 8287.17,-515.14"/>
<polygon fill="#f91010" stroke="black" points="8287.98,-518.55 8297.05,-513.07 8286.54,-511.7 8287.98,-518.55"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_core_auth_auth -->
<g id="edge209" class="edge">
<title>ahriman_core_database&#45;&gt;ahriman_core_auth_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3865.65,-2068.63C3695.76,-2054.74 3032.54,-1998.44 3005,-1964.27"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_core_auth_mapping -->
<g id="edge210" class="edge">
<title>ahriman_core_database&#45;&gt;ahriman_core_auth_mapping</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3865.2,-2072.5C3770.24,-2072.95 3524.03,-2066.99 3333,-2000.03 3185.95,-1948.49 3178.64,-1874.92 3034,-1816.96 2937.36,-1778.23 2816.1,-1758.78 2750.15,-1750.44"/>
<polygon fill="#f91010" stroke="black" points="2750.41,-1746.95 2740.06,-1749.2 2749.55,-1753.9 2750.41,-1746.95"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_core_auth_oauth -->
<g id="edge211" class="edge">
<title>ahriman_core_database&#45;&gt;ahriman_core_auth_oauth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3871.52,-2057.1C3751.27,-2004.62 3329.14,-1823.56 2969,-1707.42 2889.06,-1681.64 2793.9,-1658.7 2738.2,-1646.03"/>
<polygon fill="#f91010" stroke="black" points="2738.8,-1642.58 2728.27,-1643.79 2737.26,-1649.41 2738.8,-1642.58"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge212" class="edge">
<title>ahriman_core_database&#45;&gt;ahriman_core_build_tools_task</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3944.17,-2068.54C4050.59,-2059.51 4353.93,-2032.69 4605,-2000.03 4812.92,-1972.99 4862.64,-1949.95 5071,-1926.5 5306.06,-1900.03 5366.18,-1908.95 5602,-1890.5 5725.81,-1880.8 5870.84,-1867.44 5948.71,-1860.09"/>
<polygon fill="#f91010" stroke="black" points="5949.16,-1863.57 5958.79,-1859.14 5948.5,-1856.6 5949.16,-1863.57"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_core_repository_properties -->
<g id="edge213" class="edge">
<title>ahriman_core_database&#45;&gt;ahriman_core_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3932.05,-2051.36C3996.05,-2004.5 4163.55,-1890.63 4325,-1854.73"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_core_status_watcher -->
<g id="edge214" class="edge">
<title>ahriman_core_database&#45;&gt;ahriman_core_status_watcher</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3907,-1852.73C3870.53,-1763.4 3907,-1732.13 3907,-1635.65 3907,-1635.65 3907,-1635.65 3907,-1312.81 3907,-1107.83 3644.85,-1293.83 3457,-1211.82 3452.23,-1209.73 3447.43,-1207.19 3442.79,-1204.43"/>
<polygon fill="#f91010" stroke="black" points="3444.42,-1201.32 3434.1,-1198.92 3440.67,-1207.23 3444.42,-1201.32"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_core_tree -->
<g id="edge215" class="edge">
<title>ahriman_core_database&#45;&gt;ahriman_core_tree</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3942.45,-2062.55C4051.32,-2036.07 4377.53,-1959.77 4653,-1926.5 4816.67,-1906.73 5237.8,-1943.22 5394,-1890.5 5400.42,-1888.33 5406.77,-1885.12 5412.71,-1881.51"/>
<polygon fill="#f91010" stroke="black" points="5414.66,-1884.41 5421.08,-1875.99 5410.8,-1878.57 5414.66,-1884.41"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_web_views_base -->
<g id="edge216" class="edge">
<title>ahriman_core_database&#45;&gt;ahriman_web_views_base</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3911.96,-2044.09C3921.22,-2001.49 3933.53,-1918.18 3907,-1854.73"/>
<path fill="none" stroke="black" d="M3907,-1852.73C3808.93,-1656.79 3678.66,-1700.36 3485,-1597.88 3476.09,-1593.16 2174.32,-998.43 2166,-992.74 2127.2,-966.22 2126.08,-949.33 2090,-919.2 2070.8,-903.17 2048.24,-886.79 2029.42,-873.73"/>
<polygon fill="#f91010" stroke="black" points="2031.28,-870.77 2021.06,-867.98 2027.32,-876.53 2031.28,-870.77"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_web_web -->
<g id="edge217" class="edge">
<title>ahriman_core_database&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3907,-1852.73C3905.19,-1835.75 3911.46,-1831.12 3921,-1816.96 3934,-1797.66 3943.98,-1798.72 3959,-1780.96 3971.36,-1766.34 3969.82,-1759.07 3983,-1745.19"/>
<path fill="none" stroke="black" d="M3983,-1743.19C4005.53,-1719.45 3986.8,-1623.63 4007,-1597.88 4013.34,-1589.79 4337.78,-1456.87 4347,-1452.34 4436.55,-1408.3 4463.84,-1403.57 4543,-1342.8 4624.96,-1279.88 4705,-1279.38 4705,-1176.05 4705,-1176.05 4705,-1176.05 4705,-845.43 4705,-793.73 4749.81,-638.57 4705,-612.8"/>
<path fill="none" stroke="black" d="M4705,-610.8C4528.7,-514.4 3085.08,-612.36 2898,-539.03 2851.18,-520.67 2858.54,-484.54 2812,-465.49 2652.75,-400.29 2110.67,-399.55 1944.7,-400.91"/>
<polygon fill="#f91010" stroke="black" points="1944.28,-397.42 1934.32,-401.01 1944.35,-404.42 1944.28,-397.42"/>
</g>
<!-- ahriman_core_database_data&#45;&gt;ahriman_core_database_sqlite -->
<g id="edge218" class="edge">
<title>ahriman_core_database_data&#45;&gt;ahriman_core_database_sqlite</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8017.22,-2186.52C7889.8,-2178.7 7494.78,-2155.35 7167,-2145.57 5696.01,-2101.69 5326.37,-2170.85 3856,-2109.57 3694.76,-2102.85 3504.38,-2086.71 3414.68,-2078.61"/>
<polygon fill="#7a1e1e" stroke="black" points="3414.78,-2075.1 3404.5,-2077.68 3414.15,-2082.07 3414.78,-2075.1"/>
</g>
<!-- ahriman_core_database_data_package_statuses -->
<g id="node49" class="node">
<title>ahriman_core_database_data_package_statuses</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a13535" stroke="black" cx="6537" cy="-2190.12" rx="67.76" ry="44.6"/>
<text text-anchor="middle" x="6537" y="-2209.62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6537" y="-2198.62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6537" y="-2187.62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="6537" y="-2176.62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">data.</text>
<text text-anchor="middle" x="6537" y="-2165.62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">package_statuses</text>
</g>
<!-- ahriman_core_database_data_package_statuses&#45;&gt;ahriman_core_database_data -->
<g id="edge219" class="edge">
<title>ahriman_core_database_data_package_statuses&#45;&gt;ahriman_core_database_data</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6599.08,-2208.37C6654.57,-2223.67 6738.42,-2244.32 6813,-2252.67 6930.82,-2265.85 7763.12,-2272.5 7880,-2252.67 7926.43,-2244.79 7976.86,-2226.19 8012.33,-2211.3"/>
<polygon fill="#a13535" stroke="black" points="8014.09,-2214.36 8021.92,-2207.22 8011.34,-2207.92 8014.09,-2214.36"/>
</g>
<!-- ahriman_core_database_data_patches -->
<g id="node50" class="node">
<title>ahriman_core_database_data_patches</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b03a3a" stroke="black" cx="9735" cy="-2190.12" rx="41.94" ry="44.6"/>
<text text-anchor="middle" x="9735" y="-2209.62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9735" y="-2198.62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="9735" y="-2187.62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="9735" y="-2176.62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">data.</text>
<text text-anchor="middle" x="9735" y="-2165.62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">patches</text>
</g>
<!-- ahriman_core_database_data_patches&#45;&gt;ahriman_core_database_data -->
<g id="edge220" class="edge">
<title>ahriman_core_database_data_patches&#45;&gt;ahriman_core_database_data</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9708.5,-2224.64C9697.88,-2235.77 9684.67,-2246.76 9670,-2252.67 9602.09,-2280.04 8424.82,-2260.36 8352,-2252.67 8265.39,-2243.53 8166.72,-2219.58 8108.83,-2204.11"/>
<polygon fill="#b03a3a" stroke="black" points="8109.42,-2200.65 8098.86,-2201.42 8107.6,-2207.41 8109.42,-2200.65"/>
</g>
<!-- ahriman_core_database_data_users&#45;&gt;ahriman_core_database_data -->
<g id="edge221" class="edge">
<title>ahriman_core_database_data_users&#45;&gt;ahriman_core_database_data</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6896.74,-2190.12C7266.79,-2190.12 7636.84,-2190.12 8006.88,-2190.12"/>
<polygon fill="#b03a3a" stroke="black" points="8007,-2193.62 8017,-2190.12 8007,-2186.62 8007,-2193.62"/>
</g>
<!-- ahriman_core_database_migrations -->
<g id="node52" class="node">
<title>ahriman_core_database_migrations</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#9d4343" stroke="black" cx="3327" cy="-2190.12" rx="43.68" ry="36.54"/>
<text text-anchor="middle" x="3327" y="-2204.12" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3327" y="-2193.12" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="3327" y="-2182.12" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="3327" y="-2171.12" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">migrations</text>
</g>
<!-- ahriman_core_database_migrations&#45;&gt;ahriman_core_database_sqlite -->
<g id="edge222" class="edge">
<title>ahriman_core_database_migrations&#45;&gt;ahriman_core_database_sqlite</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3337.9,-2154.21C3341.42,-2142.92 3345.38,-2130.24 3349.09,-2118.35"/>
<polygon fill="#9d4343" stroke="black" points="3352.5,-2119.19 3352.14,-2108.6 3345.82,-2117.1 3352.5,-2119.19"/>
</g>
<!-- ahriman_core_database_operations -->
<g id="node53" class="node">
<title>ahriman_core_database_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f31616" stroke="black" cx="4055" cy="-2190.12" rx="43.68" ry="36.54"/>
<text text-anchor="middle" x="4055" y="-2204.12" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4055" y="-2193.12" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4055" y="-2182.12" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="4055" y="-2171.12" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">operations</text>
</g>
<!-- ahriman_core_database_operations&#45;&gt;ahriman_core_database_sqlite -->
<g id="edge223" class="edge">
<title>ahriman_core_database_operations&#45;&gt;ahriman_core_database_sqlite</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4027.3,-2161.38C4019.67,-2155.21 4011,-2149.38 4002,-2145.57 3948.33,-2122.89 3557.21,-2089.47 3414.73,-2077.91"/>
<polygon fill="#f31616" stroke="black" points="3414.76,-2074.41 3404.51,-2077.09 3414.2,-2081.38 3414.76,-2074.41"/>
</g>
<!-- ahriman_core_database_operations_auth_operations -->
<g id="node54" class="node">
<title>ahriman_core_database_operations_auth_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="3166" cy="-2190.12" rx="60.62" ry="44.6"/>
<text text-anchor="middle" x="3166" y="-2209.62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3166" y="-2198.62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="3166" y="-2187.62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="3166" y="-2176.62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">operations.</text>
<text text-anchor="middle" x="3166" y="-2165.62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">auth_operations</text>
</g>
<!-- ahriman_core_database_operations_auth_operations&#45;&gt;ahriman_core_database_sqlite -->
<g id="edge224" class="edge">
<title>ahriman_core_database_operations_auth_operations&#45;&gt;ahriman_core_database_sqlite</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3212.94,-2161.65C3245.36,-2142.67 3288.16,-2117.61 3319.75,-2099.12"/>
<polygon fill="#8a2e2e" stroke="black" points="3321.89,-2101.92 3328.76,-2093.85 3318.36,-2095.88 3321.89,-2101.92"/>
</g>
<!-- ahriman_core_database_operations_build_operations -->
<g id="node55" class="node">
<title>ahriman_core_database_operations_build_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#913030" stroke="black" cx="3489" cy="-2190.12" rx="61.54" ry="44.6"/>
<text text-anchor="middle" x="3489" y="-2209.62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3489" y="-2198.62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="3489" y="-2187.62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="3489" y="-2176.62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">operations.</text>
<text text-anchor="middle" x="3489" y="-2165.62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">build_operations</text>
</g>
<!-- ahriman_core_database_operations_build_operations&#45;&gt;ahriman_core_database_sqlite -->
<g id="edge225" class="edge">
<title>ahriman_core_database_operations_build_operations&#45;&gt;ahriman_core_database_sqlite</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3451.2,-2154.52C3434.75,-2139.47 3415.56,-2121.91 3399.29,-2107.02"/>
<polygon fill="#913030" stroke="black" points="3401.3,-2104.11 3391.56,-2099.94 3396.58,-2109.28 3401.3,-2104.11"/>
</g>
<!-- ahriman_core_database_operations_operations -->
<g id="node56" class="node">
<title>ahriman_core_database_operations_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#e72222" stroke="black" cx="3003" cy="-2190.12" rx="45.92" ry="44.6"/>
<text text-anchor="middle" x="3003" y="-2209.62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3003" y="-2198.62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="3003" y="-2187.62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="3003" y="-2176.62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">operations.</text>
<text text-anchor="middle" x="3003" y="-2165.62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">operations</text>
</g>
<!-- ahriman_core_database_operations_operations&#45;&gt;ahriman_core_database_operations_auth_operations -->
<g id="edge226" class="edge">
<title>ahriman_core_database_operations_operations&#45;&gt;ahriman_core_database_operations_auth_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3049.16,-2190.12C3064.39,-2190.12 3079.61,-2190.12 3094.84,-2190.12"/>
<polygon fill="#e72222" stroke="black" points="3094.84,-2193.62 3104.84,-2190.12 3094.84,-2186.62 3094.84,-2193.62"/>
</g>
<!-- ahriman_core_database_operations_operations&#45;&gt;ahriman_core_database_operations_build_operations -->
<g id="edge227" class="edge">
<title>ahriman_core_database_operations_operations&#45;&gt;ahriman_core_database_operations_build_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3038.46,-2218.59C3057.1,-2231.73 3081.01,-2245.9 3105,-2252.67 3168.95,-2270.71 3340.87,-2273.39 3404,-2252.67 3417.86,-2248.12 3431.32,-2240.35 3443.29,-2231.8"/>
<polygon fill="#e72222" stroke="black" points="3445.42,-2234.58 3451.33,-2225.79 3441.22,-2228.98 3445.42,-2234.58"/>
</g>
<!-- ahriman_core_database_operations_package_operations -->
<g id="node57" class="node">
<title>ahriman_core_database_operations_package_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#822b2b" stroke="black" cx="3681" cy="-2190.12" rx="73.58" ry="44.6"/>
<text text-anchor="middle" x="3681" y="-2209.62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3681" y="-2198.62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="3681" y="-2187.62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="3681" y="-2176.62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">operations.</text>
<text text-anchor="middle" x="3681" y="-2165.62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">package_operations</text>
</g>
<!-- ahriman_core_database_operations_operations&#45;&gt;ahriman_core_database_operations_package_operations -->
<g id="edge228" class="edge">
<title>ahriman_core_database_operations_operations&#45;&gt;ahriman_core_database_operations_package_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3038.46,-2218.59C3057.1,-2231.73 3081.01,-2245.9 3105,-2252.67 3156.22,-2267.12 3532.95,-2267.7 3584,-2252.67 3599.29,-2248.17 3614.45,-2240.42 3628.08,-2231.88"/>
<polygon fill="#e72222" stroke="black" points="3630.35,-2234.58 3636.8,-2226.18 3626.52,-2228.72 3630.35,-2234.58"/>
</g>
<!-- ahriman_core_database_operations_patch_operations -->
<g id="node58" class="node">
<title>ahriman_core_database_operations_patch_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a13535" stroke="black" cx="4181" cy="-2190.12" rx="64.19" ry="44.6"/>
<text text-anchor="middle" x="4181" y="-2209.62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4181" y="-2198.62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4181" y="-2187.62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="4181" y="-2176.62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">operations.</text>
<text text-anchor="middle" x="4181" y="-2165.62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">patch_operations</text>
</g>
<!-- ahriman_core_database_operations_operations&#45;&gt;ahriman_core_database_operations_patch_operations -->
<g id="edge229" class="edge">
<title>ahriman_core_database_operations_operations&#45;&gt;ahriman_core_database_operations_patch_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3038.46,-2218.59C3057.1,-2231.73 3081.01,-2245.9 3105,-2252.67 3158.15,-2267.67 4046.68,-2270.34 4099,-2252.67 4111.84,-2248.33 4124.26,-2241.09 4135.38,-2233.04"/>
<polygon fill="#e72222" stroke="black" points="4137.79,-2235.61 4143.62,-2226.76 4133.54,-2230.04 4137.79,-2235.61"/>
</g>
<!-- ahriman_core_database_operations_package_operations&#45;&gt;ahriman_core_database_sqlite -->
<g id="edge230" class="edge">
<title>ahriman_core_database_operations_package_operations&#45;&gt;ahriman_core_database_sqlite</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3618.55,-2166.48C3557.64,-2144.39 3466.29,-2111.26 3410.9,-2091.18"/>
<polygon fill="#822b2b" stroke="black" points="3411.92,-2087.82 3401.33,-2087.7 3409.54,-2094.4 3411.92,-2087.82"/>
</g>
<!-- ahriman_core_database_operations_patch_operations&#45;&gt;ahriman_core_database_sqlite -->
<g id="edge231" class="edge">
<title>ahriman_core_database_operations_patch_operations&#45;&gt;ahriman_core_database_sqlite</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4135.75,-2158C4126.87,-2153.11 4117.39,-2148.66 4108,-2145.57 4042.49,-2124.08 3573.5,-2088.89 3415.1,-2077.49"/>
<polygon fill="#a13535" stroke="black" points="3414.91,-2073.97 3404.69,-2076.75 3414.41,-2080.95 3414.91,-2073.97"/>
</g>
<!-- ahriman_core_database_sqlite&#45;&gt;ahriman_application_application_properties -->
<g id="edge232" class="edge">
<title>ahriman_core_database_sqlite&#45;&gt;ahriman_application_application_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3401.91,-2059.37C3442.27,-2046.09 3506.91,-2023.72 3561,-2000.03 3820.04,-1886.58 3862.77,-1810.77 4126,-1707.42 4351.38,-1618.92 4427.09,-1654.03 4651,-1561.88 4805.03,-1498.49 4821.54,-1435.93 4978,-1378.8 5234.42,-1285.16 6311.05,-1165.52 6509,-1138.28 6682.81,-1114.36 6888.62,-1086.89 6985.82,-1073.96"/>
<polygon fill="#950303" stroke="black" points="6986.55,-1077.4 6996,-1072.61 6985.63,-1070.46 6986.55,-1077.4"/>
</g>
<!-- ahriman_core_database_sqlite&#45;&gt;ahriman_application_handlers_user -->
<g id="edge233" class="edge">
<title>ahriman_core_database_sqlite&#45;&gt;ahriman_application_handlers_user</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3547,-1852.73C3530.72,-1756.13 4380.62,-1403.94 4766,-1211.82 4925.58,-1132.26 4957.32,-1094.66 5123,-1028.74 5284.73,-964.39 5331.8,-967.59 5499,-919.2 5668.25,-870.22 5707.69,-846.45 5880,-809.66 5991.5,-785.85 6043.52,-843.05 6134,-773.66 6168.16,-747.46 6137.39,-710.16 6172,-684.57 6357.25,-547.57 6973.19,-591.54 7203,-575.03 7627.1,-544.55 7736.63,-587.96 8159,-539.03 8202.65,-533.97 8251.46,-524.22 8287.69,-516.17"/>
<polygon fill="#950303" stroke="black" points="8288.57,-519.56 8297.56,-513.96 8287.03,-512.73 8288.57,-519.56"/>
</g>
<!-- ahriman_core_database_sqlite&#45;&gt;ahriman_core_auth_auth -->
<g id="edge234" class="edge">
<title>ahriman_core_database_sqlite&#45;&gt;ahriman_core_auth_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3322.08,-2065.4C3236.94,-2051.17 3045.26,-2014.23 3005,-1964.27"/>
</g>
<!-- ahriman_core_database_sqlite&#45;&gt;ahriman_core_auth_mapping -->
<g id="edge235" class="edge">
<title>ahriman_core_database_sqlite&#45;&gt;ahriman_core_auth_mapping</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3321.44,-2067.83C3236.18,-2059.03 3045.01,-2035.82 2991,-2000.03 2975.04,-1989.46 2979.79,-1978.51 2967,-1964.27"/>
</g>
<!-- ahriman_core_database_sqlite&#45;&gt;ahriman_core_auth_oauth -->
<g id="edge236" class="edge">
<title>ahriman_core_database_sqlite&#45;&gt;ahriman_core_auth_oauth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3330.42,-2049.61C3322.88,-2044.86 3314.78,-2040.07 3307,-2036.03 3269.49,-2016.58 3253.07,-2025.04 3219,-2000.03 3133.74,-1937.46 3146.96,-1886.17 3067,-1816.96 2996.48,-1755.91 2972.01,-1747.92 2888,-1707.42 2838.02,-1683.32 2777.71,-1662.47 2737.1,-1649.55"/>
<polygon fill="#950303" stroke="black" points="2738.06,-1646.18 2727.47,-1646.52 2735.96,-1652.86 2738.06,-1646.18"/>
</g>
<!-- ahriman_core_database_sqlite&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge237" class="edge">
<title>ahriman_core_database_sqlite&#45;&gt;ahriman_core_build_tools_task</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3404.51,-2068.52C3517.28,-2059.43 3838.74,-2032.47 4105,-2000.03 4327.96,-1972.87 4381.32,-1946.92 4605,-1926.5 5046.56,-1886.17 5159.46,-1918.11 5602,-1890.5 5725.95,-1882.76 5870.93,-1868.65 5948.75,-1860.66"/>
<polygon fill="#950303" stroke="black" points="5949.23,-1864.13 5958.82,-1859.62 5948.52,-1857.16 5949.23,-1864.13"/>
</g>
<!-- ahriman_core_database_sqlite&#45;&gt;ahriman_core_repository_properties -->
<g id="edge238" class="edge">
<title>ahriman_core_database_sqlite&#45;&gt;ahriman_core_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3404.71,-2069.39C3512.63,-2062.61 3798.5,-2041.17 3883,-2000.03 3925.26,-1979.46 3917.34,-1948.25 3959,-1926.5 3995.73,-1907.31 4284.49,-1863.47 4325,-1854.73"/>
<path fill="none" stroke="black" d="M4325,-1852.73C4786.26,-1755.94 4917.39,-1853.99 5383,-1780.96 5410.42,-1776.66 5440.32,-1768.82 5464.72,-1761.58"/>
<polygon fill="#950303" stroke="black" points="5465.91,-1764.88 5474.47,-1758.64 5463.89,-1758.18 5465.91,-1764.88"/>
</g>
<!-- ahriman_core_database_sqlite&#45;&gt;ahriman_core_status_watcher -->
<g id="edge239" class="edge">
<title>ahriman_core_database_sqlite&#45;&gt;ahriman_core_status_watcher</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3471,-1633.65C3442.58,-1464.99 3427.95,-1414.35 3471,-1248.82"/>
</g>
<!-- ahriman_core_database_sqlite&#45;&gt;ahriman_core_tree -->
<g id="edge240" class="edge">
<title>ahriman_core_database_sqlite&#45;&gt;ahriman_core_tree</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3404.53,-2069C3502.05,-2061.93 3753.03,-2040.98 3959,-2000.03 4078.04,-1976.37 4102.02,-1944.83 4222,-1926.5 4350.79,-1906.81 5270.19,-1931.06 5394,-1890.5 5400.51,-1888.36 5406.93,-1885.14 5412.93,-1881.49"/>
<polygon fill="#950303" stroke="black" points="5414.97,-1884.34 5421.38,-1875.9 5411.11,-1878.5 5414.97,-1884.34"/>
</g>
<!-- ahriman_core_database_sqlite&#45;&gt;ahriman_web_views_base -->
<g id="edge241" class="edge">
<title>ahriman_core_database_sqlite&#45;&gt;ahriman_web_views_base</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3348.45,-2038.07C3317.87,-1969.87 3241.53,-1813.07 3143,-1707.42 3136.82,-1700.79 2081.71,-964 2076,-956.97"/>
</g>
<!-- ahriman_core_database_sqlite&#45;&gt;ahriman_web_web -->
<g id="edge242" class="edge">
<title>ahriman_core_database_sqlite&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3396.98,-2050.84C3447.43,-2016.92 3537.27,-1944.61 3547,-1854.73"/>
<path fill="none" stroke="black" d="M3547,-1852.73C3580.79,-1756.25 3491.38,-1735.82 3471,-1635.65"/>
<path fill="none" stroke="black" d="M3471,-1633.65C3317.31,-1301.51 2874,-1432.48 2874,-1066.51 2874,-1066.51 2874,-1066.51 2874,-728.11 2874,-622.62 2880.74,-568.7 2798,-503.26"/>
</g>
<!-- ahriman_core_exceptions -->
<g id="node60" class="node">
<title>ahriman_core_exceptions</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f91010" stroke="black" cx="6115" cy="-3649.24" rx="44.6" ry="28.98"/>
<text text-anchor="middle" x="6115" y="-3657.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6115" y="-3646.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6115" y="-3635.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">exceptions</text>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_application_handlers_handler -->
<g id="edge243" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_application_handlers_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6159.71,-3647.88C6465.37,-3645.27 8237.86,-3627.56 8333,-3567.24"/>
<path fill="none" stroke="black" d="M8333,-3565.24C8375.26,-3538.45 8315.41,-3488.4 8352,-3454.26 8410.29,-3399.86 8629.69,-3426.53 8709,-3418.26 9213.18,-3365.73 9385.87,-3515.35 9843,-3296.29"/>
<path fill="none" stroke="black" d="M9843,-3294.29C9932.95,-3257.67 9875.39,-3177.25 9905,-3084.76 9965.92,-2894.45 10164.99,-2431.74 10198,-2234.67 10204.54,-2195.62 10202.77,-2184.88 10198,-2145.57 10188.23,-2065.17 9901.27,-791.98 9849,-730.11"/>
<path fill="none" stroke="black" d="M9849,-728.11C9818.82,-692.63 9775.98,-661.2 9743.64,-640.15"/>
<polygon fill="#f91010" stroke="black" points="9745.12,-636.95 9734.82,-634.5 9741.35,-642.84 9745.12,-636.95"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_application_handlers_search -->
<g id="edge244" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_application_handlers_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1344,-3565.24C1248.97,-3555.12 1243.52,-3482.64 1219,-3390.27"/>
<path fill="none" stroke="black" d="M1219,-3388.27C1174.37,-3282.5 1088.85,-3311.26 1029,-3213.3"/>
<path fill="none" stroke="black" d="M1029,-3211.3C762.14,-3031.32 577.43,-3166.84 363,-2926.78"/>
<path fill="none" stroke="black" d="M363,-2924.78C259.22,-2811.18 211,-2767.59 211,-2613.72 211,-2613.72 211,-2613.72 211,-2306.44 211,-2056.42 173,-1995.2 173,-1745.19 173,-1745.19 173,-1745.19 173,-1414.57 173,-1300.13 76,-1290.49 76,-1176.05 76,-1176.05 76,-1176.05 76,-1064.51 76,-970.5 182.61,-734.9 262,-684.57 320.05,-647.76 2667.29,-650.03 2736,-648.57 3903.75,-623.73 4195.42,-606.66 5363,-575.03 6441.37,-545.81 7758.52,-512.06 8045.91,-504.71"/>
<polygon fill="#f91010" stroke="black" points="8046.18,-508.21 8056.09,-504.45 8046.01,-501.21 8046.18,-508.21"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_application_handlers_unsafe_commands -->
<g id="edge245" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_application_handlers_unsafe_commands</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9843,-3294.29C10321.97,-3125.51 10379.33,-2902.53 10617,-2453.75 10788.65,-2129.64 10725,-2002.4 10725,-1635.65 10725,-1635.65 10725,-1635.65 10725,-954.97 10725,-904.29 10709.67,-775.44 10687,-730.11"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_application_lock -->
<g id="edge246" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_application_lock</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8295,-3482.25C8311.23,-3479.96 8304.56,-3462.01 8319,-3454.26 8433.43,-3392.82 8484.43,-3455 8609,-3418.26 8892.43,-3334.66 9733,-3003.21 9733,-2707.7 9733,-2707.7 9733,-2707.7 9733,-2611.72 9733,-2398.12 9998.4,-2299.21 9850,-2145.57 9809.87,-2104.03 8868.29,-2116.94 8811,-2109.57 8626.89,-2085.92 8179.08,-1957.1 7996,-1926.5 7852.66,-1902.53 7814.67,-1912.41 7671,-1890.5 7587.52,-1877.76 6991.62,-1797.08 6925,-1745.19"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_alpm_remote_aur -->
<g id="edge247" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_core_alpm_remote_aur</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3906,-3565.24C3889.73,-3533.13 3915.67,-3518.93 3906,-3484.25"/>
<path fill="none" stroke="black" d="M3906,-3482.25C3882.73,-3398.81 3214.56,-3431.78 3129,-3418.26 2895.38,-3381.35 2611,-3532.81 2611,-3296.29 2611,-3296.29 2611,-3296.29 2611,-3211.3 2611,-3112.44 2862.59,-2966.78 2953,-2926.78"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_alpm_remote_official -->
<g id="edge248" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_core_alpm_remote_official</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3906,-3482.25C3911.41,-3381.85 3079.59,-3401.33 3015,-3324.28 2780.15,-3044.13 3559.25,-2867.18 3763.33,-2826.33"/>
<polygon fill="#f91010" stroke="black" points="3764.03,-2829.76 3773.16,-2824.38 3762.67,-2822.89 3764.03,-2829.76"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_alpm_repo -->
<g id="edge249" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_core_alpm_repo</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4096,-3388.27C4132.06,-3349.39 4127.92,-3325.76 4172,-3296.29"/>
<path fill="none" stroke="black" d="M4172,-3294.29C4373.02,-3159.89 4535.12,-3380.29 4710,-3213.3"/>
<path fill="none" stroke="black" d="M4710,-3211.3C4722.66,-3199.21 4731.92,-3182.53 4738.48,-3166.9"/>
<polygon fill="#f91010" stroke="black" points="4741.83,-3167.93 4742.21,-3157.35 4735.31,-3165.38 4741.83,-3167.93"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_auth_oauth -->
<g id="edge250" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_core_auth_oauth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1219,-3388.27C1199.56,-3312.97 1219,-3291.06 1219,-3213.3 1219,-3213.3 1219,-3213.3 1219,-3120.53 1219,-3034.42 1232.26,-3011.86 1219,-2926.78"/>
<path fill="none" stroke="black" d="M1219,-2924.78C1145.33,-2522.67 1223.84,-2372.52 1456,-2036.03 1499.49,-1973 1517.74,-1954.53 1589,-1926.5 1712.06,-1878.09 2055.05,-1923.93 2183,-1890.5 2255.61,-1871.52 2264.42,-1842.45 2335,-1816.96 2459.88,-1771.85 2530.42,-1838.38 2625,-1745.19"/>
<path fill="none" stroke="black" d="M2625,-1743.19C2644.53,-1724.78 2660.48,-1699.36 2671.8,-1677.86"/>
<polygon fill="#f91010" stroke="black" points="2674.94,-1679.42 2676.37,-1668.92 2668.71,-1676.23 2674.94,-1679.42"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge251" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_core_build_tools_task</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3906,-3565.24C3860.28,-3452.2 8174.2,-3500.84 8295,-3484.25"/>
<path fill="none" stroke="black" d="M8295,-3482.25C8311.24,-3480.02 8304.67,-3462.21 8319,-3454.26 8412.57,-3402.4 8458.5,-3460.01 8557,-3418.26 8596.12,-3401.68 8595.17,-3379.62 8633,-3360.28 8682.2,-3335.12 8703.23,-3350.25 8752,-3324.28 8787.96,-3305.13 8787.75,-3286.73 8823,-3266.3 8861.71,-3243.86 8876.64,-3249.59 8917,-3230.3 9150.79,-3118.54 9196.03,-3054.63 9368,-2860.79 9447.33,-2771.38 9456.41,-2740.3 9524,-2641.71 9594.5,-2538.88 9873.1,-2234.79 9786,-2145.57 9756.98,-2115.85 8332.33,-2113.7 8291,-2109.57 8104.17,-2090.92 8060.99,-2061.73 7875,-2036.03 7390.07,-1969.04 7267.11,-1963.88 6779,-1926.5 6479.45,-1903.55 6398.44,-1950.18 6104,-1890.5 6087.68,-1887.19 6070.44,-1881.71 6055,-1876.01"/>
<polygon fill="#f91010" stroke="black" points="6056.24,-1872.74 6045.65,-1872.46 6053.75,-1879.28 6056.24,-1872.74"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_configuration -->
<g id="edge252" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_core_configuration</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3906,-3482.25C3906.81,-3467.24 3913.18,-3463.55 3925,-3454.26 3988.79,-3404.11 4040.82,-3449.76 4096,-3390.27"/>
<path fill="none" stroke="black" d="M4096,-3388.27C4133.57,-3347.76 4078.63,-3302.92 4120,-3266.3 4202.58,-3193.19 4519.98,-3286.29 4615,-3230.3 4647.92,-3210.89 4641.9,-3190.8 4662,-3158.3 4681.91,-3126.09 4673.67,-3106.02 4705,-3084.76 4793.16,-3024.93 4836.77,-3065.41 4942,-3048.76 4979.22,-3042.87 5020.97,-3036 5053.78,-3030.54"/>
<polygon fill="#f91010" stroke="black" points="5054.37,-3033.98 5063.66,-3028.89 5053.22,-3027.08 5054.37,-3033.98"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_report_report -->
<g id="edge253" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_core_report_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1219,-3388.27C1213.68,-3360.92 1307.96,-3183.88 1319,-3158.3 1515.28,-2703.37 1485.97,-2540.62 1785,-2145.57 1835.77,-2078.5 1853.06,-2065.41 1906,-2000.03 1932.2,-1967.69 1926.66,-1944.9 1964,-1926.5 2033.07,-1892.45 4659.06,-1893.79 4736,-1890.5 4898.47,-1883.53 5090.66,-1867.16 5178.64,-1859.21"/>
<polygon fill="#f91010" stroke="black" points="5179.2,-1862.68 5188.85,-1858.29 5178.57,-1855.7 5179.2,-1862.68"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_repository_properties -->
<g id="edge254" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_core_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1219,-2924.78C1176.08,-2670.12 1581.9,-2039.75 1814,-1926.5 1946.81,-1861.69 2331.69,-1911.22 2478,-1890.5 2621.63,-1870.15 2651.99,-1834.41 2796,-1816.96 3366.77,-1747.79 4813.62,-1860.77 5383,-1780.96 5410.59,-1777.09 5440.62,-1769.25 5465.05,-1761.9"/>
<polygon fill="#f91010" stroke="black" points="5466.28,-1765.18 5474.81,-1758.9 5464.23,-1758.49 5466.28,-1765.18"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_sign_gpg -->
<g id="edge255" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_core_sign_gpg</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3906,-3482.25C3906.81,-3467.24 3915.67,-3466.05 3925,-3454.26 3948.63,-3424.39 3963.29,-3423.44 3982,-3390.27"/>
<path fill="none" stroke="black" d="M3982,-3388.27C4009.53,-3339.45 3976.45,-3307.9 4014,-3266.3 4044.53,-3232.47 4074.3,-3258.62 4110,-3230.3 4240.48,-3126.75 4146.47,-2995.02 4281,-2896.79 4380.55,-2824.1 4441.67,-2906.86 4556,-2860.79 4563.98,-2857.58 4571.85,-2853.03 4579.13,-2848.07"/>
<polygon fill="#f91010" stroke="black" points="4581.31,-2850.81 4587.36,-2842.12 4577.2,-2845.14 4581.31,-2850.81"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_status_watcher -->
<g id="edge256" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_core_status_watcher</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1029,-3211.3C985.41,-3138.7 1029,-3105.45 1029,-3020.77 1029,-3020.77 1029,-3020.77 1029,-2415.98 1029,-2114.38 1224.92,-2052.35 1499,-1926.5 1630.67,-1866.03 2030.59,-1972.56 2150,-1890.5 2179.52,-1870.21 2161.22,-1845.4 2183,-1816.96 2198.36,-1796.89 2207.55,-1797.08 2227,-1780.96 2449.5,-1596.52 2480.14,-1509.32 2738,-1378.8 2956.07,-1268.42 3245.16,-1206.02 3357.51,-1184.59"/>
<polygon fill="#f91010" stroke="black" points="3358.33,-1187.99 3367.51,-1182.7 3357.04,-1181.11 3358.33,-1187.99"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_upload_upload -->
<g id="edge257" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_core_upload_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1344,-3565.24C1208.65,-3550.38 1368.39,-3395.62 1411,-3266.3 1486.7,-3036.55 1727.6,-2478.72 1851,-2270.67 1886.75,-2210.39 1891.73,-2188.66 1947,-2145.57 1982.99,-2117.52 2031.62,-2098.19 2066.93,-2086.72"/>
<polygon fill="#f91010" stroke="black" points="2068.04,-2090.04 2076.52,-2083.69 2065.93,-2083.36 2068.04,-2090.04"/>
</g>
<!-- ahriman_core_util -->
<g id="node97" class="node">
<title>ahriman_core_util</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c70505" stroke="black" cx="3792" cy="-3295.29" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="3792" y="-3303.79" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3792" y="-3292.79" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="3792" y="-3281.79" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">util</text>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_util -->
<g id="edge258" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_core_util</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3906,-3482.25C3911.09,-3418.73 3860.23,-3358.37 3824.78,-3324.46"/>
<polygon fill="#f91010" stroke="black" points="3826.73,-3321.49 3817.03,-3317.23 3821.96,-3326.61 3826.73,-3321.49"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_models_auth_settings -->
<g id="edge259" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_models_auth_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6070.42,-3647.67C5759.9,-3643.57 3931.4,-3617.36 3906,-3567.24"/>
<path fill="none" stroke="black" d="M3906,-3565.24C3881.14,-3516.19 1981.26,-3521.18 1927,-3512.24 1787.46,-3489.25 1706.94,-3532.07 1623,-3418.26 1531.36,-3294.01 1552.01,-3283.82 1813,-3084.76 2014.39,-2931.15 2102.56,-2946.09 2351,-2896.79 2492.03,-2868.81 2869.26,-2926.78 2997,-2860.79 3041.99,-2837.55 3036.43,-2811.28 3068,-2771.7 3101.32,-2729.91 3100.27,-2709.81 3143,-2677.71 3264.09,-2586.74 3326.13,-2622.22 3458,-2547.73 3637.49,-2446.35 3827.72,-2288.42 3904.66,-2222.1"/>
<polygon fill="#f91010" stroke="black" points="3907.34,-2224.41 3912.62,-2215.22 3902.76,-2219.11 3907.34,-2224.41"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_models_migration_result -->
<g id="edge260" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_models_migration_result</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3906,-3482.25C3907.2,-3467.27 3911.83,-3461.52 3925,-3454.26 4029.06,-3396.86 4876.38,-3435.27 4994,-3418.26 5009.65,-3416 5026.29,-3412.33 5041.72,-3408.39"/>
<polygon fill="#f91010" stroke="black" points="5042.87,-3411.7 5051.65,-3405.77 5041.09,-3404.94 5042.87,-3411.7"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_models_package -->
<g id="edge261" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1941,-3482.25C1702.47,-3362.13 1880.88,-3378.16 2223,-3194.3 2512.14,-3038.9 2584.77,-2991.72 2899,-2896.79 2988.39,-2869.79 3024.17,-2905.77 3106,-2860.79 3152.9,-2835.01 3140.04,-2797.36 3187,-2771.7 3297.06,-2711.55 4175.29,-2597.07 4300,-2583.73 4825.31,-2527.53 5467.08,-2520.64 5646.43,-2519.84"/>
<polygon fill="#f91010" stroke="black" points="5646.61,-2523.33 5656.59,-2519.79 5646.58,-2516.33 5646.61,-2523.33"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_models_report_settings -->
<g id="edge262" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_models_report_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8333,-3565.24C8353.54,-3552.22 8373.51,-3533.88 8389.02,-3517.95"/>
<polygon fill="#f91010" stroke="black" points="8391.9,-3520.01 8396.26,-3510.35 8386.83,-3515.17 8391.9,-3520.01"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_models_repository_paths -->
<g id="edge263" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_models_repository_paths</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6159.89,-3648.49C6390.86,-3649.51 7468.52,-3650.3 8347,-3584.24 8610.42,-3564.44 8680.1,-3573.77 8937,-3512.24 8943.94,-3510.58 8951.12,-3508.5 8958.18,-3506.21"/>
<polygon fill="#f91010" stroke="black" points="8959.34,-3509.52 8967.69,-3503.01 8957.1,-3502.89 8959.34,-3509.52"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_models_result -->
<g id="edge264" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_models_result</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3906,-3565.24C3887.49,-3528.72 2473.9,-3514.14 2433,-3512.24 2214.22,-3502.09 2146.79,-3559.21 1941,-3484.25"/>
<path fill="none" stroke="black" d="M1941,-3482.25C1886.77,-3462.5 1857.07,-3468.12 1828,-3418.26 1815.02,-3396 1817.1,-3383.63 1828,-3360.28 1936.15,-3128.57 2038.93,-3102.38 2269,-2990.77 2452.83,-2901.6 2517.11,-2928.2 2719,-2896.79 2796.04,-2884.81 3005.24,-2907.05 3068,-2860.79 3102.65,-2835.25 3076.14,-2802.71 3106,-2771.7 3173.83,-2701.23 3211.68,-2707.01 3305,-2677.71 3499.84,-2616.55 4492.23,-2468.98 5209,-2380.21 5373.85,-2359.79 5424.94,-2401.09 5581,-2344.21 5587.36,-2341.89 5593.69,-2338.6 5599.62,-2334.96"/>
<polygon fill="#f91010" stroke="black" points="5601.57,-2337.86 5607.98,-2329.42 5597.71,-2332.02 5601.57,-2337.86"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_models_sign_settings -->
<g id="edge265" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_models_sign_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3982,-3388.27C4017.57,-3327.86 4020.54,-3300.01 4082,-3266.3 4168.73,-3218.72 4460.56,-3289.2 4524,-3213.3"/>
<path fill="none" stroke="black" d="M4524,-3211.3C4535.57,-3197.52 4539.77,-3178.19 4540.89,-3161.08"/>
<polygon fill="#f91010" stroke="black" points="4544.4,-3160.89 4541.22,-3150.78 4537.4,-3160.66 4544.4,-3160.89"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_models_upload_settings -->
<g id="edge266" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_models_upload_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3906,-3565.24C3894.12,-3541.8 3915.5,-3521.74 3940.16,-3507.45"/>
<polygon fill="#f91010" stroke="black" points="3941.87,-3510.5 3948.97,-3502.64 3938.51,-3504.36 3941.87,-3510.5"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_web_views_status_package -->
<g id="edge267" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_web_views_status_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M363,-2924.78C300.84,-2851 363,-2804.18 363,-2707.7 363,-2707.7 363,-2707.7 363,-2517.74 363,-2221.19 288,-2151.28 288,-1854.73 288,-1854.73 288,-1854.73 288,-1524.11 288,-1456.02 388.15,-1146.66 399,-1138.28 471.33,-1082.37 1134.21,-1131 1221,-1102.28 1441.16,-1029.43 1438.38,-897.51 1653,-809.66 1734.97,-776.11 1769.81,-813.34 1849,-773.66 1852.86,-771.73 1856.63,-769.38 1860.25,-766.79"/>
<polygon fill="#f91010" stroke="black" points="1862.7,-769.31 1868.39,-760.37 1858.37,-763.81 1862.7,-769.31"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_web_web -->
<g id="edge268" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6070.16,-3648.29C5601.51,-3648.76 1611.86,-3650.83 1373,-3584.24 1358.61,-3580.23 1358.85,-3568.86 1344,-3567.24"/>
<path fill="none" stroke="black" d="M1344,-3565.24C858.96,-3512.54 629.94,-3656.9 273,-3324.28 8.4,-3077.71 38,-2487.97 38,-1635.65 38,-1635.65 38,-1635.65 38,-1064.51 38,-1037.41 145.65,-744.35 152,-730.11"/>
<path fill="none" stroke="black" d="M152,-728.11C175.93,-655.26 213.83,-581.12 347,-503.26"/>
<path fill="none" stroke="black" d="M347,-501.26C412.92,-461.71 1592.28,-413.39 1847.54,-403.37"/>
<polygon fill="#f91010" stroke="black" points="1847.76,-406.86 1857.61,-402.97 1847.49,-399.87 1847.76,-406.86"/>
</g>
<!-- ahriman_core_formatters -->
<g id="node61" class="node">
<title>ahriman_core_formatters</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f91010" stroke="black" cx="8767" cy="-2190.12" rx="43.68" ry="28.98"/>
<text text-anchor="middle" x="8767" y="-2198.62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8767" y="-2187.62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="8767" y="-2176.62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters</text>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_application_repository -->
<g id="edge269" class="edge">
<title>ahriman_core_formatters&#45;&gt;ahriman_application_application_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8752.91,-2162.53C8740.96,-2139.43 8723.77,-2104.89 8711,-2073.8"/>
<path fill="none" stroke="black" d="M8711,-2071.8C8633.39,-1882.8 8510.24,-1913.79 8355,-1780.96 8085.69,-1550.52 7985.06,-1523.46 7761,-1248.82"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_dump -->
<g id="edge270" class="edge">
<title>ahriman_core_formatters&#45;&gt;ahriman_application_handlers_dump</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8801.58,-2171.9C8819.61,-2163.31 8842.2,-2153.17 8863,-2145.57 8918.51,-2125.31 8934.72,-2127.6 8991,-2109.57 9127.77,-2065.76 9170.18,-2071.07 9295,-2000.03 9613.21,-1818.94 9761.77,-1608.61 10131,-1102.28 10279.72,-898.33 10314.65,-842.63 10419,-612.8"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge271" class="edge">
<title>ahriman_core_formatters&#45;&gt;ahriman_application_handlers_patch</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8792.79,-2166.53C8802.39,-2159.02 8813.71,-2151.15 8825,-2145.57 8877.98,-2119.39 8905.14,-2144.25 8953,-2109.57 8968.5,-2098.34 8964.7,-2088.48 8977,-2073.8"/>
<path fill="none" stroke="black" d="M8977,-2071.8C9062.54,-1969.76 8689.06,-1046.18 8649,-919.2 8633.5,-870.06 8635.59,-854.95 8611,-809.66 8601.33,-791.85 8590.98,-792.29 8583,-773.66 8554.55,-707.21 8536.58,-681.52 8559,-612.8"/>
<path fill="none" stroke="black" d="M8559,-610.8C8565.19,-582.92 8583.83,-557.06 8601.56,-537.69"/>
<polygon fill="#f91010" stroke="black" points="8604.2,-539.99 8608.54,-530.33 8599.12,-535.17 8604.2,-539.99"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_rebuild -->
<g id="edge272" class="edge">
<title>ahriman_core_formatters&#45;&gt;ahriman_application_handlers_rebuild</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8977,-2071.8C9035.81,-2013.59 9071.01,-2023.3 9129,-1964.27"/>
<path fill="none" stroke="black" d="M9129,-1962.27C9234.94,-1854.42 9144.32,-1428.6 9191,-1284.82 9272.61,-1033.41 9386.31,-1014.6 9495,-773.66 9503.36,-755.13 9494.82,-744.68 9509,-730.11"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_remove_unknown -->
<g id="edge273" class="edge">
<title>ahriman_core_formatters&#45;&gt;ahriman_application_handlers_remove_unknown</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9129,-1962.27C9390.72,-1700.64 9455.38,-1634.38 9723,-1378.8 9784.4,-1320.16 9804.13,-1310 9863,-1248.82 9967.03,-1140.69 9991.61,-1111.74 10083,-992.74 10114.16,-952.17 10342.9,-663.95 10343,-612.8"/>
<path fill="none" stroke="black" d="M10343,-610.8C10342.58,-589.3 10336.12,-566.52 10328.86,-547.48"/>
<polygon fill="#f91010" stroke="black" points="10332.1,-546.17 10325.13,-538.18 10325.6,-548.77 10332.1,-546.17"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_search -->
<g id="edge274" class="edge">
<title>ahriman_core_formatters&#45;&gt;ahriman_application_handlers_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8711,-2071.8C8701.2,-2040.82 8721.87,-2032.38 8725,-2000.03 8728.14,-1967.5 8739.96,-1955.55 8725,-1926.5 8699.5,-1876.99 8554.5,-1825.44 8521,-1780.96 8235.38,-1401.64 8313.15,-1224.78 8165,-773.66 8146.87,-718.46 8140.21,-705.15 8127,-648.57 8119.31,-615.63 8113.16,-577.95 8109.01,-549.2"/>
<polygon fill="#f91010" stroke="black" points="8112.44,-548.46 8107.58,-539.05 8105.51,-549.44 8112.44,-548.46"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_status -->
<g id="edge275" class="edge">
<title>ahriman_core_formatters&#45;&gt;ahriman_application_handlers_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8977,-2071.8C9000.97,-2048.6 8993.14,-2032.88 8999,-2000.03 9054.95,-1686.62 9011.3,-1601.98 9039,-1284.82 9056.03,-1089.8 9150.79,-1033.84 9091,-847.43"/>
<path fill="none" stroke="black" d="M9091,-845.43C9034.89,-748.23 9007.61,-617.2 8996.46,-548.93"/>
<polygon fill="#f91010" stroke="black" points="8999.89,-548.25 8994.87,-538.93 8992.98,-549.35 8999.89,-548.25"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_unsafe_commands -->
<g id="edge276" class="edge">
<title>ahriman_core_formatters&#45;&gt;ahriman_application_handlers_unsafe_commands</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8804.33,-2174.66C8829.82,-2165.24 8864.56,-2153.32 8896,-2145.57 8995.19,-2121.15 9025.08,-2138.67 9123,-2109.57 9341.34,-2044.69 9889.07,-1853.06 10093,-1671.42 10285.89,-1499.62 10573,-871.1 10573,-612.8"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_user -->
<g id="edge277" class="edge">
<title>ahriman_core_formatters&#45;&gt;ahriman_application_handlers_user</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8769.33,-2160.89C8772.71,-2112.51 8777.14,-2010.82 8763,-1926.5 8744.26,-1814.68 8528.98,-1033.13 8445,-956.97"/>
<path fill="none" stroke="black" d="M8445,-954.97C8425.9,-936.96 8419.84,-933.77 8398,-919.2 8371.49,-901.52 8357.24,-906.95 8336,-883.2 8248.47,-785.33 8153.37,-727.65 8217,-612.8"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_core_report_console -->
<g id="edge278" class="edge">
<title>ahriman_core_formatters&#45;&gt;ahriman_core_report_console</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8734.42,-2170.25C8716.37,-2160.87 8693.15,-2150.49 8671,-2145.57 8323.77,-2068.45 5812.32,-2206.19 5470,-2109.57 5389.39,-2086.82 5308.43,-2029.98 5263.3,-1994.51"/>
<polygon fill="#f91010" stroke="black" points="5265.31,-1991.63 5255.3,-1988.15 5260.95,-1997.11 5265.31,-1991.63"/>
</g>
<!-- ahriman_core_formatters_aur_printer -->
<g id="node62" class="node">
<title>ahriman_core_formatters_aur_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="8583" cy="-2190.12" rx="45.92" ry="36.54"/>
<text text-anchor="middle" x="8583" y="-2204.12" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8583" y="-2193.12" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="8583" y="-2182.12" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="8583" y="-2171.12" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">aur_printer</text>
</g>
<!-- ahriman_core_formatters_aur_printer&#45;&gt;ahriman_application_handlers_search -->
<g id="edge279" class="edge">
<title>ahriman_core_formatters_aur_printer&#45;&gt;ahriman_application_handlers_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8549.88,-2164.36C8526.67,-2146.32 8498.49,-2122.8 8491,-2109.57 8450.28,-2037.7 8490.92,-2002.68 8459,-1926.5 8428.28,-1853.17 8400.77,-1845.96 8355,-1780.96 8189.89,-1546.48 8103.14,-1493.81 8051,-1211.82 8018.45,-1035.75 8100.86,-972.77 8027,-809.66 7975.68,-696.33 7790.23,-731.33 7828,-612.8"/>
</g>
<!-- ahriman_core_formatters_build_printer -->
<g id="node63" class="node">
<title>ahriman_core_formatters_build_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#993333" stroke="black" cx="5414" cy="-2190.12" rx="48.58" ry="36.54"/>
<text text-anchor="middle" x="5414" y="-2204.12" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5414" y="-2193.12" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5414" y="-2182.12" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="5414" y="-2171.12" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">build_printer</text>
</g>
<!-- ahriman_core_formatters_build_printer&#45;&gt;ahriman_core_report_console -->
<g id="edge280" class="edge">
<title>ahriman_core_formatters_build_printer&#45;&gt;ahriman_core_report_console</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5380.39,-2163.4C5371.17,-2157.05 5360.96,-2150.62 5351,-2145.57 5307.37,-2123.46 5285.74,-2139.43 5247,-2109.57 5231.84,-2097.89 5231.78,-2090.82 5223,-2073.8"/>
</g>
<!-- ahriman_core_formatters_configuration_printer -->
<g id="node64" class="node">
<title>ahriman_core_formatters_configuration_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#993333" stroke="black" cx="9563" cy="-2190.12" rx="73.58" ry="36.54"/>
<text text-anchor="middle" x="9563" y="-2204.12" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9563" y="-2193.12" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="9563" y="-2182.12" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="9563" y="-2171.12" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">configuration_printer</text>
</g>
<!-- ahriman_core_formatters_configuration_printer&#45;&gt;ahriman_application_handlers_dump -->
<g id="edge281" class="edge">
<title>ahriman_core_formatters_configuration_printer&#45;&gt;ahriman_application_handlers_dump</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9618.84,-2166.07C9639.07,-2158.51 9662.28,-2150.74 9684,-2145.57 9812.5,-2115.02 9862.39,-2171.61 9979,-2109.57 10092.79,-2049.04 10099.89,-1999.29 10169,-1890.5 10327.37,-1641.19 10661.51,-879.68 10535,-612.8"/>
<path fill="none" stroke="black" d="M10535,-610.8C10524.77,-594.61 10523.22,-589.76 10511,-575.03 10500.39,-562.23 10487.79,-549.21 10476.07,-537.83"/>
<polygon fill="#993333" stroke="black" points="10478.17,-535 10468.53,-530.61 10473.33,-540.05 10478.17,-535"/>
</g>
<!-- ahriman_core_formatters_package_printer -->
<g id="node65" class="node">
<title>ahriman_core_formatters_package_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="9220" cy="-2190.12" rx="60.62" ry="36.54"/>
<text text-anchor="middle" x="9220" y="-2204.12" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9220" y="-2193.12" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="9220" y="-2182.12" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="9220" y="-2171.12" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">package_printer</text>
</g>
<!-- ahriman_core_formatters_package_printer&#45;&gt;ahriman_application_handlers_status -->
<g id="edge282" class="edge">
<title>ahriman_core_formatters_package_printer&#45;&gt;ahriman_application_handlers_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9261.08,-2162.76C9271.84,-2156.56 9283.62,-2150.37 9295,-2145.57 9349.85,-2122.44 9374.88,-2143.19 9424,-2109.57 9664.87,-1944.72 9717.71,-1768.84 9637,-1488.34 9628.72,-1459.56 9082.84,-598.3 9064,-575.03 9053.28,-561.78 9040.29,-548.46 9028.21,-536.95"/>
<polygon fill="#8a2e2e" stroke="black" points="9030.52,-534.32 9020.83,-530.03 9025.73,-539.42 9030.52,-534.32"/>
</g>
<!-- ahriman_core_formatters_printer -->
<g id="node66" class="node">
<title>ahriman_core_formatters_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b03a3a" stroke="black" cx="9229" cy="-2416.98" rx="45.92" ry="36.54"/>
<text text-anchor="middle" x="9229" y="-2430.98" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9229" y="-2419.98" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="9229" y="-2408.98" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="9229" y="-2397.98" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">printer</text>
</g>
<!-- ahriman_core_formatters_string_printer -->
<g id="node68" class="node">
<title>ahriman_core_formatters_string_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#db0505" stroke="black" cx="9229" cy="-2307.44" rx="51.74" ry="36.54"/>
<text text-anchor="middle" x="9229" y="-2321.44" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9229" y="-2310.44" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="9229" y="-2299.44" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="9229" y="-2288.44" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">string_printer</text>
</g>
<!-- ahriman_core_formatters_printer&#45;&gt;ahriman_core_formatters_string_printer -->
<g id="edge283" class="edge">
<title>ahriman_core_formatters_printer&#45;&gt;ahriman_core_formatters_string_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9229,-2380.17C9229,-2372 9229,-2363.21 9229,-2354.68"/>
<polygon fill="#b03a3a" stroke="black" points="9232.5,-2354.46 9229,-2344.46 9225.5,-2354.46 9232.5,-2354.46"/>
</g>
<!-- ahriman_core_formatters_status_printer -->
<g id="node67" class="node">
<title>ahriman_core_formatters_status_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#993333" stroke="black" cx="8959" cy="-2190.12" rx="53.98" ry="36.54"/>
<text text-anchor="middle" x="8959" y="-2204.12" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8959" y="-2193.12" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="8959" y="-2182.12" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="8959" y="-2171.12" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status_printer</text>
</g>
<!-- ahriman_core_formatters_status_printer&#45;&gt;ahriman_application_handlers_status -->
<g id="edge284" class="edge">
<title>ahriman_core_formatters_status_printer&#45;&gt;ahriman_application_handlers_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8992.57,-2161.35C9001.63,-2155.18 9011.77,-2149.35 9022,-2145.57 9095.14,-2118.56 9309.88,-2157.98 9371,-2109.57 9590.87,-1935.44 9525.25,-1765.46 9482,-1488.34 9456.81,-1326.94 9463.34,-1272.34 9370,-1138.28 9355.17,-1116.97 9340.88,-1122.01 9324,-1102.28 9303.35,-1078.15 9085.08,-678.08 9012.97,-545.53"/>
<polygon fill="#993333" stroke="black" points="9015.89,-543.57 9008.04,-536.46 9009.74,-546.92 9015.89,-543.57"/>
</g>
<!-- ahriman_core_formatters_string_printer&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge285" class="edge">
<title>ahriman_core_formatters_string_printer&#45;&gt;ahriman_application_handlers_patch</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9257.83,-2276.54C9268.79,-2264.21 9280.82,-2249.37 9290,-2234.67 9301.18,-2216.76 9292.57,-2204.39 9309,-2191.12"/>
<path fill="none" stroke="black" d="M9309,-2189.12C9370.51,-2139.46 9215.3,-1561.76 9186,-1488.34 9145.77,-1387.53 9115.11,-1372.41 9051,-1284.82 8940.51,-1133.85 8802.15,-1143.43 8787,-956.97"/>
</g>
<!-- ahriman_core_formatters_string_printer&#45;&gt;ahriman_application_handlers_remove_unknown -->
<g id="edge286" class="edge">
<title>ahriman_core_formatters_string_printer&#45;&gt;ahriman_application_handlers_remove_unknown</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9309,-2189.12C9325.62,-2176.1 9311.33,-2158.53 9328,-2145.57 9406.22,-2084.77 9454.12,-2141.25 9548,-2109.57 9646.25,-2076.42 9678.21,-2070.81 9754,-2000.03 10055.65,-1718.34 10087.25,-1593.21 10245,-1211.82 10302.3,-1073.29 10297.97,-1031.33 10321,-883.2 10339.52,-764.05 10345.35,-733.35 10343,-612.8"/>
</g>
<!-- ahriman_core_formatters_string_printer&#45;&gt;ahriman_application_handlers_unsafe_commands -->
<g id="edge287" class="edge">
<title>ahriman_core_formatters_string_printer&#45;&gt;ahriman_application_handlers_unsafe_commands</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9309,-2189.12C9325.35,-2175.76 9311.02,-2158.12 9328,-2145.57 9441.68,-2061.57 9511.41,-2158.57 9644,-2109.57 9806.95,-2049.36 10036.46,-1883.48 10368,-1561.88 10470.42,-1462.53 10573,-1457.49 10573,-1314.81 10573,-1314.81 10573,-1314.81 10573,-1247.82 10573,-1130.02 10731.3,-839.27 10687,-730.11"/>
<path fill="none" stroke="black" d="M10687,-728.11C10654.76,-663.66 10571.47,-684.85 10573,-612.8"/>
</g>
<!-- ahriman_core_formatters_string_printer&#45;&gt;ahriman_core_formatters_aur_printer -->
<g id="edge288" class="edge">
<title>ahriman_core_formatters_string_printer&#45;&gt;ahriman_core_formatters_aur_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9179.93,-2295.46C9143.86,-2287.69 9093.57,-2277.48 9049,-2270.67 8900.97,-2248.05 8860.33,-2266.47 8714,-2234.67 8686.93,-2228.79 8657.6,-2219.34 8633.57,-2210.75"/>
<polygon fill="#db0505" stroke="black" points="8634.56,-2207.38 8623.96,-2207.25 8632.17,-2213.96 8634.56,-2207.38"/>
</g>
<!-- ahriman_core_formatters_string_printer&#45;&gt;ahriman_core_formatters_build_printer -->
<g id="edge289" class="edge">
<title>ahriman_core_formatters_string_printer&#45;&gt;ahriman_core_formatters_build_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9179.17,-2297.54C9127.73,-2288.81 9045.05,-2276.05 8973,-2270.67 8779.31,-2256.2 5662.12,-2293.47 5477,-2234.67 5469.25,-2232.21 5461.6,-2228.44 5454.46,-2224.12"/>
<polygon fill="#db0505" stroke="black" points="5455.99,-2220.94 5445.7,-2218.42 5452.17,-2226.81 5455.99,-2220.94"/>
</g>
<!-- ahriman_core_formatters_string_printer&#45;&gt;ahriman_core_formatters_configuration_printer -->
<g id="edge290" class="edge">
<title>ahriman_core_formatters_string_printer&#45;&gt;ahriman_core_formatters_configuration_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9275.63,-2291.03C9318.85,-2276.68 9384.88,-2254.57 9442,-2234.67 9459.17,-2228.69 9477.65,-2222.11 9494.88,-2215.91"/>
<polygon fill="#db0505" stroke="black" points="9496.09,-2219.2 9504.31,-2212.52 9493.72,-2212.61 9496.09,-2219.2"/>
</g>
<!-- ahriman_core_formatters_string_printer&#45;&gt;ahriman_core_formatters_package_printer -->
<g id="edge291" class="edge">
<title>ahriman_core_formatters_string_printer&#45;&gt;ahriman_core_formatters_package_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9226.2,-2270.58C9225.37,-2259.95 9224.45,-2248.16 9223.58,-2236.99"/>
<polygon fill="#db0505" stroke="black" points="9227.06,-2236.65 9222.8,-2226.95 9220.09,-2237.2 9227.06,-2236.65"/>
</g>
<!-- ahriman_core_formatters_string_printer&#45;&gt;ahriman_core_formatters_status_printer -->
<g id="edge292" class="edge">
<title>ahriman_core_formatters_string_printer&#45;&gt;ahriman_core_formatters_status_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9180.64,-2293.72C9137.71,-2281.48 9073.9,-2260.99 9022,-2234.67 9015.56,-2231.4 9009.02,-2227.56 9002.7,-2223.54"/>
<polygon fill="#db0505" stroke="black" points="9004.54,-2220.56 8994.27,-2217.98 9000.69,-2226.4 9004.54,-2220.56"/>
</g>
<!-- ahriman_core_formatters_update_printer -->
<g id="node69" class="node">
<title>ahriman_core_formatters_update_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#9b2626" stroke="black" cx="9086" cy="-2190.12" rx="55.31" ry="36.54"/>
<text text-anchor="middle" x="9086" y="-2204.12" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9086" y="-2193.12" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="9086" y="-2182.12" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="9086" y="-2171.12" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">update_printer</text>
</g>
<!-- ahriman_core_formatters_string_printer&#45;&gt;ahriman_core_formatters_update_printer -->
<g id="edge293" class="edge">
<title>ahriman_core_formatters_string_printer&#45;&gt;ahriman_core_formatters_update_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9195.47,-2279.4C9175.56,-2263.35 9150.12,-2242.83 9128.77,-2225.61"/>
<polygon fill="#db0505" stroke="black" points="9130.79,-2222.75 9120.81,-2219.19 9126.4,-2228.2 9130.79,-2222.75"/>
</g>
<!-- ahriman_core_formatters_user_printer -->
<g id="node70" class="node">
<title>ahriman_core_formatters_user_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#913030" stroke="black" cx="9385" cy="-2190.12" rx="48.17" ry="36.54"/>
<text text-anchor="middle" x="9385" y="-2204.12" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9385" y="-2193.12" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="9385" y="-2182.12" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="9385" y="-2171.12" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">user_printer</text>
</g>
<!-- ahriman_core_formatters_string_printer&#45;&gt;ahriman_core_formatters_user_printer -->
<g id="edge294" class="edge">
<title>ahriman_core_formatters_string_printer&#45;&gt;ahriman_core_formatters_user_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9264.4,-2280.27C9287.74,-2263.02 9318.42,-2240.34 9343,-2222.17"/>
<polygon fill="#db0505" stroke="black" points="9345.12,-2224.95 9351.08,-2216.2 9340.96,-2219.33 9345.12,-2224.95"/>
</g>
<!-- ahriman_core_formatters_update_printer&#45;&gt;ahriman_application_application_repository -->
<g id="edge295" class="edge">
<title>ahriman_core_formatters_update_printer&#45;&gt;ahriman_application_application_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9069.67,-2154.92C9052.92,-2122.09 9024.62,-2072.26 8991,-2036.03 8745.15,-1771.07 7834.03,-1395.81 7685,-1066.51"/>
</g>
<!-- ahriman_core_formatters_update_printer&#45;&gt;ahriman_application_handlers_rebuild -->
<g id="edge296" class="edge">
<title>ahriman_core_formatters_update_printer&#45;&gt;ahriman_application_handlers_rebuild</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9120.57,-2161.33C9129.69,-2155.23 9139.83,-2149.45 9150,-2145.57 9264.77,-2101.84 9309.91,-2155.05 9424,-2109.57 9603.08,-2038.19 9775,-2047.51 9775,-1854.73 9775,-1854.73 9775,-1854.73 9775,-1743.19 9775,-1546.17 9661,-1511.83 9661,-1314.81 9661,-1314.81 9661,-1314.81 9661,-1174.05 9661,-922.33 9699.36,-837.04 9585,-612.8"/>
</g>
<!-- ahriman_core_formatters_user_printer&#45;&gt;ahriman_application_handlers_user -->
<g id="edge297" class="edge">
<title>ahriman_core_formatters_user_printer&#45;&gt;ahriman_application_handlers_user</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9362.89,-2157.32C9293.42,-2057.62 9072.71,-1742.63 8881,-1488.34 8724.3,-1280.49 8691.82,-1222.5 8518,-1028.74 8487.62,-994.87 8478.94,-987.27 8445,-956.97"/>
</g>
<!-- ahriman_core_report -->
<g id="node71" class="node">
<title>ahriman_core_report</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f31616" stroke="black" cx="5997" cy="-1744.19" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="5997" y="-1752.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5997" y="-1741.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5997" y="-1730.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report</text>
</g>
<!-- ahriman_core_report&#45;&gt;ahriman_core_repository_executor -->
<g id="edge298" class="edge">
<title>ahriman_core_report&#45;&gt;ahriman_core_repository_executor</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6023.73,-1722.8C6046.17,-1703.15 6074.5,-1671.24 6074,-1635.65"/>
</g>
<!-- ahriman_core_report_console&#45;&gt;ahriman_core_report_report -->
<g id="edge299" class="edge">
<title>ahriman_core_report_console&#45;&gt;ahriman_core_report_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5227,-1916.24C5227,-1911.18 5227,-1906.02 5227,-1900.96"/>
<polygon fill="#7a2828" stroke="black" points="5223.5,-1916.46 5227,-1926.46 5230.5,-1916.46 5223.5,-1916.46"/>
<polygon fill="#7a2828" stroke="black" points="5230.5,-1900.75 5227,-1890.75 5223.5,-1900.75 5230.5,-1900.75"/>
</g>
<!-- ahriman_core_report_jinja_template&#45;&gt;ahriman_core_report_email -->
<g id="edge302" class="edge">
<title>ahriman_core_report_jinja_template&#45;&gt;ahriman_core_report_email</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4723.02,-1838.91C4750.59,-1831.65 4785.51,-1823.03 4817,-1816.96 4989.01,-1783.8 5195.92,-1759.91 5287.89,-1750.11"/>
<polygon fill="#832020" stroke="black" points="5288.43,-1753.58 5298,-1749.04 5287.69,-1746.62 5288.43,-1753.58"/>
</g>
<!-- ahriman_core_report_jinja_template&#45;&gt;ahriman_core_report_html -->
<g id="edge303" class="edge">
<title>ahriman_core_report_jinja_template&#45;&gt;ahriman_core_report_html</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4680.26,-1817.22C4682.01,-1808.68 4683.9,-1799.45 4685.72,-1790.54"/>
<polygon fill="#832020" stroke="black" points="4689.17,-1791.16 4687.74,-1780.66 4682.31,-1789.76 4689.17,-1791.16"/>
</g>
<!-- ahriman_core_report_report&#45;&gt;ahriman_core_report_email -->
<g id="edge305" class="edge">
<title>ahriman_core_report_report&#45;&gt;ahriman_core_report_email</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5260.83,-1819.35C5273.93,-1806.43 5288.89,-1791.66 5302,-1778.73"/>
<polygon fill="#8a0f0f" stroke="black" points="5258.05,-1817.18 5253.39,-1826.69 5262.96,-1822.16 5258.05,-1817.18"/>
<polygon fill="#8a0f0f" stroke="black" points="5304.82,-1780.87 5309.48,-1771.35 5299.9,-1775.88 5304.82,-1780.87"/>
</g>
<!-- ahriman_core_report_report&#45;&gt;ahriman_core_report_html -->
<g id="edge306" class="edge">
<title>ahriman_core_report_report&#45;&gt;ahriman_core_report_html</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5179.65,-1843.15C5078.67,-1822.74 4843.19,-1775.14 4742.28,-1754.74"/>
<polygon fill="#8a0f0f" stroke="black" points="5179.1,-1846.61 5189.59,-1845.16 5180.48,-1839.75 5179.1,-1846.61"/>
<polygon fill="#8a0f0f" stroke="black" points="4742.86,-1751.29 4732.37,-1752.74 4741.48,-1758.15 4742.86,-1751.29"/>
</g>
<!-- ahriman_core_report_report&#45;&gt;ahriman_core_repository_executor -->
<g id="edge307" class="edge">
<title>ahriman_core_report_report&#45;&gt;ahriman_core_repository_executor</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5231.53,-1817.08C5237.95,-1782.8 5253.22,-1732.58 5289,-1707.42 5401.35,-1628.41 5786.75,-1739.55 5906,-1671.42 5922.62,-1661.92 5914.72,-1647.19 5930,-1635.65"/>
<path fill="none" stroke="black" d="M5930,-1633.65C5944.37,-1622.81 5939.4,-1613.11 5949,-1597.88 5956.04,-1586.71 5964.26,-1575.02 5972.1,-1564.4"/>
<polygon fill="#8a0f0f" stroke="black" points="5975.09,-1566.25 5978.28,-1556.14 5969.49,-1562.06 5975.09,-1566.25"/>
</g>
<!-- ahriman_core_repository -->
<g id="node77" class="node">
<title>ahriman_core_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#db0505" stroke="black" cx="6496" cy="-1313.81" rx="42.35" ry="28.98"/>
<text text-anchor="middle" x="6496" y="-1322.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6496" y="-1311.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6496" y="-1300.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository</text>
</g>
<!-- ahriman_core_repository&#45;&gt;ahriman_application_application_properties -->
<g id="edge308" class="edge">
<title>ahriman_core_repository&#45;&gt;ahriman_application_application_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6537.47,-1306.5C6662.18,-1286.99 7026.11,-1225.93 7039,-1176.05"/>
<path fill="none" stroke="black" d="M7039,-1174.05C7048.52,-1155.34 7050.26,-1132.32 7049.21,-1112.39"/>
<polygon fill="#db0505" stroke="black" points="7052.69,-1112 7048.44,-1102.29 7045.71,-1112.53 7052.69,-1112"/>
</g>
<!-- ahriman_core_repository&#45;&gt;ahriman_core_status_watcher -->
<g id="edge309" class="edge">
<title>ahriman_core_repository&#45;&gt;ahriman_core_status_watcher</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6453.77,-1310.94C6113.11,-1295.87 3816.98,-1194.28 3453.44,-1178.19"/>
<polygon fill="#db0505" stroke="black" points="3453.4,-1174.69 3443.25,-1177.74 3453.09,-1181.68 3453.4,-1174.69"/>
</g>
<!-- ahriman_core_repository_cleaner -->
<g id="node78" class="node">
<title>ahriman_core_repository_cleaner</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b42d2d" stroke="black" cx="6002" cy="-1634.65" rx="43.68" ry="36.54"/>
<text text-anchor="middle" x="6002" y="-1648.65" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6002" y="-1637.65" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6002" y="-1626.65" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository.</text>
<text text-anchor="middle" x="6002" y="-1615.65" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">cleaner</text>
</g>
<!-- ahriman_core_repository_cleaner&#45;&gt;ahriman_core_repository_executor -->
<g id="edge310" class="edge">
<title>ahriman_core_repository_cleaner&#45;&gt;ahriman_core_repository_executor</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6002,-1597.84C6002,-1589.67 6002,-1580.88 6002,-1572.35"/>
<polygon fill="#b42d2d" stroke="black" points="6005.5,-1572.13 6002,-1562.13 5998.5,-1572.13 6005.5,-1572.13"/>
</g>
<!-- ahriman_core_repository_cleaner&#45;&gt;ahriman_core_repository_update_handler -->
<g id="edge311" class="edge">
<title>ahriman_core_repository_cleaner&#45;&gt;ahriman_core_repository_update_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6044.94,-1625.74C6146.02,-1607.13 6399.48,-1560.45 6520.15,-1538.23"/>
<polygon fill="#b42d2d" stroke="black" points="6520.81,-1541.67 6530.01,-1536.42 6519.54,-1534.79 6520.81,-1541.67"/>
</g>
<!-- ahriman_core_repository_repository -->
<g id="node81" class="node">
<title>ahriman_core_repository_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#822b2b" stroke="black" cx="6496" cy="-1415.57" rx="43.68" ry="36.54"/>
<text text-anchor="middle" x="6496" y="-1429.57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6496" y="-1418.57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6496" y="-1407.57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository.</text>
<text text-anchor="middle" x="6496" y="-1396.57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository</text>
</g>
<!-- ahriman_core_repository_executor&#45;&gt;ahriman_core_repository_repository -->
<g id="edge312" class="edge">
<title>ahriman_core_repository_executor&#45;&gt;ahriman_core_repository_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6045.82,-1522.49C6126.07,-1518.32 6300.94,-1503.6 6438,-1452.34 6443.47,-1450.3 6448.98,-1447.71 6454.32,-1444.87"/>
<polygon fill="#732626" stroke="black" points="6456.12,-1447.87 6463.1,-1439.9 6452.67,-1441.78 6456.12,-1447.87"/>
</g>
<!-- ahriman_core_repository_properties&#45;&gt;ahriman_core_repository_cleaner -->
<g id="edge313" class="edge">
<title>ahriman_core_repository_properties&#45;&gt;ahriman_core_repository_cleaner</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5547.75,-1719.44C5555.68,-1714.72 5564.37,-1710.32 5573,-1707.42 5730.01,-1654.57 5786.99,-1724.26 5944,-1671.42 5949.53,-1669.56 5955.08,-1667.08 5960.44,-1664.31"/>
<polygon fill="#732626" stroke="black" points="5962.22,-1667.32 5969.25,-1659.39 5958.81,-1661.21 5962.22,-1667.32"/>
</g>
<!-- ahriman_core_repository_repository&#45;&gt;ahriman_core_repository -->
<g id="edge314" class="edge">
<title>ahriman_core_repository_repository&#45;&gt;ahriman_core_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6496,-1378.55C6496,-1370.31 6496,-1361.52 6496,-1353.19"/>
<polygon fill="#822b2b" stroke="black" points="6499.5,-1352.95 6496,-1342.95 6492.5,-1352.95 6499.5,-1352.95"/>
</g>
<!-- ahriman_core_repository_update_handler&#45;&gt;ahriman_core_repository_repository -->
<g id="edge315" class="edge">
<title>ahriman_core_repository_update_handler&#45;&gt;ahriman_core_repository_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6559.24,-1492.13C6549.21,-1480.15 6537.72,-1466.42 6527.32,-1453.99"/>
<polygon fill="#822b2b" stroke="black" points="6529.76,-1451.46 6520.66,-1446.03 6524.39,-1455.95 6529.76,-1451.46"/>
</g>
<!-- ahriman_core_sign -->
<g id="node83" class="node">
<title>ahriman_core_sign</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#ce3b3b" stroke="black" cx="5671" cy="-2072.8" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="5671" y="-2081.3" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5671" y="-2070.3" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5671" y="-2059.3" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">sign</text>
</g>
<!-- ahriman_core_sign&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge316" class="edge">
<title>ahriman_core_sign&#45;&gt;ahriman_core_report_jinja_template</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5645.38,-2050.68C5638.63,-2045.57 5631.22,-2040.35 5624,-2036.03 5590.89,-2016.23 5579.2,-2017.9 5545,-2000.03 5488.21,-1970.36 5481.91,-1946.38 5421,-1926.5 5356.74,-1905.52 4906.22,-1871.47 4737.01,-1859.26"/>
<polygon fill="#ce3b3b" stroke="black" points="4737.23,-1855.76 4727,-1858.54 4736.73,-1862.75 4737.23,-1855.76"/>
</g>
<!-- ahriman_core_sign&#45;&gt;ahriman_core_repository_properties -->
<g id="edge317" class="edge">
<title>ahriman_core_sign&#45;&gt;ahriman_core_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5664.31,-2044.07C5657.2,-2016.39 5645.53,-1976.31 5635,-1964.27"/>
<path fill="none" stroke="black" d="M5635,-1962.27C5617.84,-1942.63 5581.54,-1880 5588,-1854.73"/>
</g>
<!-- ahriman_core_sign_gpg&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge318" class="edge">
<title>ahriman_core_sign_gpg&#45;&gt;ahriman_core_report_jinja_template</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4650.66,-2801.88C4712.25,-2776.23 4833.01,-2713.6 4843,-2613.72"/>
<path fill="none" stroke="black" d="M4843,-2611.72C4890.46,-2475.77 4694.42,-2448.23 4729,-2308.44"/>
</g>
<!-- ahriman_core_sign_gpg&#45;&gt;ahriman_core_repository_properties -->
<g id="edge319" class="edge">
<title>ahriman_core_sign_gpg&#45;&gt;ahriman_core_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4843,-2611.72C4879.24,-2526.62 4919,-2510.47 4919,-2417.98 4919,-2417.98 4919,-2417.98 4919,-2306.44 4919,-2123.9 4918.51,-2020.47 5075,-1926.5 5154.93,-1878.5 5424.99,-1954.27 5493,-1890.5 5519.54,-1865.61 5523.34,-1823.38 5521.5,-1790.84"/>
<polygon fill="#932424" stroke="black" points="5524.97,-1790.35 5520.73,-1780.64 5517.99,-1790.88 5524.97,-1790.35"/>
</g>
<!-- ahriman_core_spawn&#45;&gt;ahriman_application_handlers_web -->
<g id="edge320" class="edge">
<title>ahriman_core_spawn&#45;&gt;ahriman_application_handlers_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2473,-1962.27C2470.24,-1789.11 2506.25,-1735.78 2611,-1597.88 2627.35,-1576.36 2642.14,-1582.16 2660,-1561.88 2765.23,-1442.44 2763.93,-1391.75 2834,-1248.82 2872.79,-1169.68 2912,-1154.64 2912,-1066.51 2912,-1066.51 2912,-1066.51 2912,-728.11 2912,-628.18 2895.39,-601.8 2912,-503.26"/>
</g>
<!-- ahriman_core_spawn&#45;&gt;ahriman_web_views_base -->
<g id="edge321" class="edge">
<title>ahriman_core_spawn&#45;&gt;ahriman_web_views_base</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2583.12,-2396.75C2541.76,-2366.82 2464.39,-2305.14 2421,-2234.67 2390.54,-2185.19 2398.82,-2165.49 2383,-2109.57 2360.1,-2028.63 2398.17,-1982.05 2335,-1926.5 2241.11,-1843.93 2138.56,-1984.39 2056,-1890.5 2034.42,-1865.95 2042.17,-1846.57 2056,-1816.96 2066.55,-1794.37 2087.47,-1803.05 2099,-1780.96 2166.82,-1650.97 2121.55,-1598.82 2128,-1452.34 2129.44,-1419.69 2130.69,-1411.37 2128,-1378.8 2116.41,-1238.57 2029.04,-1199.15 2076,-1066.51"/>
</g>
<!-- ahriman_core_spawn&#45;&gt;ahriman_web_web -->
<g id="edge322" class="edge">
<title>ahriman_core_spawn&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2594.4,-2390.8C2574.06,-2360.76 2537.76,-2309.72 2501,-2270.67 2484.15,-2252.77 2469.27,-2257.01 2459,-2234.67 2442.45,-2198.69 2457.47,-2185.14 2459,-2145.57 2462.11,-2064.81 2485.4,-2044.13 2473,-1964.27"/>
<path fill="none" stroke="black" d="M2473,-1962.27C2458.74,-1898.97 2453.44,-1881.6 2459,-1816.96 2467.48,-1718.5 2479.19,-1695.08 2497,-1597.88 2511.79,-1517.15 2532,-1498.64 2532,-1416.57 2532,-1416.57 2532,-1416.57 2532,-1174.05 2532,-1066.74 2722,-837.42 2722,-730.11"/>
<path fill="none" stroke="black" d="M2722,-728.11C2717.89,-677.03 2711.6,-662.98 2722,-612.8"/>
<path fill="none" stroke="black" d="M2722,-610.8C2733.88,-553.49 2843.56,-540 2798,-503.26"/>
<path fill="none" stroke="black" d="M2798,-501.26C2731.04,-447.25 2121.84,-412.79 1944.33,-403.83"/>
<polygon fill="#b62020" stroke="black" points="1944.4,-400.32 1934.24,-403.32 1944.05,-407.32 1944.4,-400.32"/>
</g>
<!-- ahriman_core_status -->
<g id="node86" class="node">
<title>ahriman_core_status</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f91010" stroke="black" cx="5701" cy="-1963.27" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="5701" y="-1971.77" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5701" y="-1960.77" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5701" y="-1949.77" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status</text>
</g>
<!-- ahriman_core_status&#45;&gt;ahriman_application_lock -->
<g id="edge323" class="edge">
<title>ahriman_core_status&#45;&gt;ahriman_application_lock</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5726.33,-1941.21C5734.4,-1935.54 5743.67,-1930 5753,-1926.5 5882.01,-1878.02 5926.46,-1920.38 6061,-1890.5 6312.91,-1834.54 6366.52,-1787 6612,-1707.42 6672.44,-1687.82 6742.14,-1665.88 6788.19,-1651.48"/>
<polygon fill="#f91010" stroke="black" points="6789.43,-1654.76 6797.93,-1648.43 6787.35,-1648.08 6789.43,-1654.76"/>
</g>
<!-- ahriman_core_status&#45;&gt;ahriman_core_repository_properties -->
<g id="edge324" class="edge">
<title>ahriman_core_status&#45;&gt;ahriman_core_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5683.13,-1937.47C5673.27,-1923.7 5660.86,-1906.22 5650,-1890.5 5639.12,-1874.74 5636.82,-1870.52 5626,-1854.73"/>
<path fill="none" stroke="black" d="M5626,-1852.73C5615.18,-1836.93 5614.85,-1831.15 5602,-1816.96 5588.36,-1801.9 5571.48,-1787.25 5556.23,-1775.16"/>
<polygon fill="#f91010" stroke="black" points="5558,-1772.1 5547.96,-1768.72 5553.7,-1777.62 5558,-1772.1"/>
</g>
<!-- ahriman_core_status&#45;&gt;ahriman_web_views_base -->
<g id="edge325" class="edge">
<title>ahriman_core_status&#45;&gt;ahriman_web_views_base</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5626,-1852.73C5597.28,-1810.78 5623.74,-1780.32 5587,-1745.19"/>
<path fill="none" stroke="black" d="M5587,-1743.19C5573.99,-1730.75 5581.57,-1719.25 5568,-1707.42 5532.58,-1676.55 5213.99,-1580.84 5171,-1561.88 4894.17,-1439.77 4856,-1337.39 4567,-1247.82 3674.43,-971.17 3391.36,-1199.21 2480,-992.74 2379.86,-970.05 2359.35,-948.7 2261,-919.2 2183.04,-895.82 2091.3,-872.36 2037.04,-858.9"/>
<polygon fill="#f91010" stroke="black" points="2037.58,-855.43 2027.03,-856.43 2035.9,-862.22 2037.58,-855.43"/>
</g>
<!-- ahriman_core_status&#45;&gt;ahriman_web_web -->
<g id="edge326" class="edge">
<title>ahriman_core_status&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5587,-1743.19C5576.49,-1728.57 5579.16,-1721.54 5568,-1707.42 5376.76,-1465.36 5047,-1557.3 5047,-1248.82 5047,-1248.82 5047,-1248.82 5047,-1064.51 5047,-812.7 4904.14,-766.92 4705,-612.8"/>
</g>
<!-- ahriman_core_status_client&#45;&gt;ahriman_application_lock -->
<g id="edge327" class="edge">
<title>ahriman_core_status_client&#45;&gt;ahriman_application_lock</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6358.64,-1942.08C6447.63,-1885.31 6700.03,-1724.3 6798.73,-1661.33"/>
<polygon fill="#931a1a" stroke="black" points="6800.69,-1664.24 6807.24,-1655.91 6796.93,-1658.33 6800.69,-1664.24"/>
</g>
<!-- ahriman_core_status_client&#45;&gt;ahriman_core_repository_properties -->
<g id="edge328" class="edge">
<title>ahriman_core_status_client&#45;&gt;ahriman_core_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6295.9,-1941.88C6256.32,-1916.99 6185,-1875.63 6118,-1854.73"/>
<path fill="none" stroke="black" d="M6118,-1852.73C6089.45,-1843.82 6089.14,-1827.09 6061,-1816.96 5970.97,-1784.55 5687.92,-1758.94 5568.74,-1749.31"/>
<polygon fill="#931a1a" stroke="black" points="5568.99,-1745.82 5558.75,-1748.51 5568.43,-1752.8 5568.99,-1745.82"/>
</g>
<!-- ahriman_core_status_client&#45;&gt;ahriman_core_status_web_client -->
<g id="edge329" class="edge">
<title>ahriman_core_status_client&#45;&gt;ahriman_core_status_web_client</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6279.02,-1955.35C6216.88,-1946.74 6105.12,-1932.45 6009,-1926.5 5668.63,-1905.41 3274.68,-1955.95 2940,-1890.5 2925.25,-1887.61 2909.81,-1882.44 2895.93,-1876.91"/>
<polygon fill="#931a1a" stroke="black" points="6278.54,-1958.82 6288.93,-1956.73 6279.51,-1951.88 6278.54,-1958.82"/>
<polygon fill="#931a1a" stroke="black" points="2897.17,-1873.64 2886.59,-1873.05 2894.5,-1880.11 2897.17,-1873.64"/>
</g>
<!-- ahriman_core_status_watcher&#45;&gt;ahriman_web_views_base -->
<g id="edge330" class="edge">
<title>ahriman_core_status_watcher&#45;&gt;ahriman_web_views_base</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3366.76,-1171.93C3225.35,-1163.2 2719.94,-1124.04 2328,-992.74 2253.02,-967.62 2239.44,-948.51 2166,-919.2 2120.57,-901.07 2107.11,-902.12 2062,-883.2 2052.25,-879.11 2041.96,-874.31 2032.31,-869.57"/>
<polygon fill="#832020" stroke="black" points="2033.8,-866.4 2023.29,-865.08 2030.68,-872.67 2033.8,-866.4"/>
</g>
<!-- ahriman_core_status_watcher&#45;&gt;ahriman_web_web -->
<g id="edge331" class="edge">
<title>ahriman_core_status_watcher&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3366.6,-1173.36C3256.9,-1169.16 2950,-1140.99 2950,-956.97 2950,-956.97 2950,-956.97 2950,-728.11 2950,-607.49 2895.83,-573.83 2798,-503.26"/>
</g>
<!-- ahriman_core_tree&#45;&gt;ahriman_application_application_repository -->
<g id="edge333" class="edge">
<title>ahriman_core_tree&#45;&gt;ahriman_application_application_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5442.04,-1824.84C5439.1,-1793.64 5438.93,-1742.82 5462,-1707.42 5568.02,-1544.74 5655.48,-1548.8 5840,-1488.34 5981.04,-1442.13 6026.65,-1482.39 6172,-1452.34 6280.42,-1429.93 6301.41,-1400.38 6410,-1378.8 6579.43,-1345.12 6627,-1373.48 6797,-1342.8 7016.31,-1303.23 7078.96,-1305.86 7281,-1211.82 7411.5,-1151.08 7545.64,-1044.49 7609.58,-990.44"/>
<polygon fill="#8a2e2e" stroke="black" points="7612.04,-992.94 7617.39,-983.8 7607.5,-987.61 7612.04,-992.94"/>
</g>
<!-- ahriman_core_upload -->
<g id="node91" class="node">
<title>ahriman_core_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f91010" stroke="black" cx="6091" cy="-1744.19" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="6091" y="-1752.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6091" y="-1741.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6091" y="-1730.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload</text>
</g>
<!-- ahriman_core_upload&#45;&gt;ahriman_core_repository_executor -->
<g id="edge334" class="edge">
<title>ahriman_core_upload&#45;&gt;ahriman_core_repository_executor</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6084.4,-1715.52C6079.79,-1693.91 6074.39,-1663.05 6074,-1635.65"/>
</g>
<!-- ahriman_core_upload_github&#45;&gt;ahriman_core_upload_upload -->
<g id="edge335" class="edge">
<title>ahriman_core_upload_github&#45;&gt;ahriman_core_upload_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2048.92,-2159.72C2059.84,-2145.09 2073.17,-2127.22 2084.83,-2111.58"/>
<polygon fill="#822b2b" stroke="black" points="2087.94,-2113.26 2091.12,-2103.15 2082.33,-2109.07 2087.94,-2113.26"/>
</g>
<!-- ahriman_core_upload_http_upload&#45;&gt;ahriman_core_upload_github -->
<g id="edge336" class="edge">
<title>ahriman_core_upload_http_upload&#45;&gt;ahriman_core_upload_github</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2021.12,-2000.3C2022.33,-2039.03 2024.25,-2100.71 2025.56,-2142.96"/>
<polygon fill="#913030" stroke="black" points="2022.07,-2143.11 2025.88,-2152.99 2029.06,-2142.89 2022.07,-2143.11"/>
</g>
<!-- ahriman_core_upload_upload&#45;&gt;ahriman_core_repository_executor -->
<g id="edge339" class="edge">
<title>ahriman_core_upload_upload&#45;&gt;ahriman_core_repository_executor</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2102.77,-2037.2C2095.6,-2005.36 2090.92,-1958.38 2114,-1926.5 2143.42,-1885.85 2174.52,-1909.4 2221,-1890.5 2325.14,-1848.15 2356.27,-1844.52 2449,-1780.96 2547.06,-1713.75 2533.94,-1642.81 2644,-1597.88 2803.44,-1532.78 5528.97,-1526.71 5948.09,-1526.16"/>
<polygon fill="#8a0f0f" stroke="black" points="5948.13,-1529.66 5958.13,-1526.15 5948.12,-1522.66 5948.13,-1529.66"/>
</g>
<!-- ahriman_core_upload_upload&#45;&gt;ahriman_core_upload_http_upload -->
<g id="edge340" class="edge">
<title>ahriman_core_upload_upload&#45;&gt;ahriman_core_upload_http_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2089.05,-2044.11C2077.98,-2031.31 2064.67,-2015.92 2052.69,-2002.07"/>
<polygon fill="#8a0f0f" stroke="black" points="2055.02,-1999.4 2045.83,-1994.13 2049.72,-2003.98 2055.02,-1999.4"/>
</g>
<!-- ahriman_core_upload_upload&#45;&gt;ahriman_core_upload_rsync -->
<g id="edge341" class="edge">
<title>ahriman_core_upload_upload&#45;&gt;ahriman_core_upload_rsync</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2151.19,-2043C2168.54,-2029.91 2189.32,-2014.2 2208,-2000.03 2211,-1997.76 2214.1,-1995.41 2217.21,-1993.04"/>
<polygon fill="#8a0f0f" stroke="black" points="2148.84,-2040.39 2142.97,-2049.2 2153.06,-2045.97 2148.84,-2040.39"/>
<polygon fill="#8a0f0f" stroke="black" points="2219.58,-1995.64 2225.43,-1986.8 2215.35,-1990.06 2219.58,-1995.64"/>
</g>
<!-- ahriman_core_upload_upload&#45;&gt;ahriman_core_upload_s3 -->
<g id="edge342" class="edge">
<title>ahriman_core_upload_upload&#45;&gt;ahriman_core_upload_s3</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2131.87,-2029.52C2135.21,-2022.04 2138.69,-2014.24 2142.03,-2006.76"/>
<polygon fill="#8a0f0f" stroke="black" points="2128.67,-2028.1 2127.79,-2038.66 2135.07,-2030.96 2128.67,-2028.1"/>
<polygon fill="#8a0f0f" stroke="black" points="2145.29,-2008.04 2146.17,-1997.48 2138.9,-2005.19 2145.29,-2008.04"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_application_application_packages -->
<g id="edge343" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_application_application_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3792,-3018.77C3814.48,-2918.76 4249.93,-2333.25 4278,-2234.67 4342.24,-2009.08 4134.46,-1872.59 4301,-1707.42 4302.12,-1706.31 4730.5,-1562.38 4732,-1561.88 5382.73,-1341.92 5626.75,-1450.95 6196,-1066.51"/>
<path fill="none" stroke="black" d="M6196,-1064.51C6249.89,-1038.3 6267.09,-1039.72 6326,-1028.74 6342.22,-1025.72 6819.57,-978.78 6985.68,-962.49"/>
<polygon fill="#c70505" stroke="black" points="6986.08,-965.96 6995.69,-961.51 6985.4,-959 6986.08,-965.96"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_application_lock -->
<g id="edge344" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_application_lock</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4029,-2924.78C4091.22,-2811.83 4211.49,-2941.58 4312,-2860.79 4344.91,-2834.33 4313.85,-2800.21 4345,-2771.7 4389.86,-2730.64 4432.68,-2777.33 4477,-2735.7 4562.75,-2655.15 4628.74,-2350.73 4648,-2234.67 4654.48,-2195.61 4650.93,-2185.06 4648,-2145.57 4637.14,-1998.95 4585.57,-1961.94 4610,-1816.96 4618.56,-1766.14 4606.39,-1737.82 4648,-1707.42 4712.62,-1660.21 6008.03,-1674.32 6088,-1671.42 6347.46,-1662 6657.11,-1645.62 6782.32,-1638.79"/>
<polygon fill="#c70505" stroke="black" points="6782.64,-1642.27 6792.44,-1638.23 6782.26,-1635.28 6782.64,-1642.27"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_alpm_remote_aur -->
<g id="edge345" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_alpm_remote_aur</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3792,-3211.3C3772.69,-3176.89 3801.96,-3160.7 3792,-3122.53"/>
<path fill="none" stroke="black" d="M3792,-3120.53C3775,-3055.38 3705.52,-3082.21 3678,-3020.77"/>
<path fill="none" stroke="black" d="M3678,-3018.77C3623.67,-2897.44 3457.84,-2845.29 3375.47,-2826.4"/>
<polygon fill="#c70505" stroke="black" points="3376.13,-2822.96 3365.61,-2824.2 3374.61,-2829.79 3376.13,-2822.96"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_alpm_remote_official -->
<g id="edge346" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_alpm_remote_official</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3792,-3120.53C3780.8,-3077.63 3783.53,-3064.29 3792,-3020.77"/>
<path fill="none" stroke="black" d="M3792,-3018.77C3801.65,-2969.16 3806.45,-2911.69 3808.81,-2870.85"/>
<polygon fill="#c70505" stroke="black" points="3812.31,-2871.01 3809.36,-2860.84 3805.32,-2870.63 3812.31,-2871.01"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_alpm_repo -->
<g id="edge347" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_alpm_repo</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3829.87,-3290.9C3890.92,-3285.48 4014.88,-3274.6 4120,-3266.3 4229.95,-3257.61 4512.16,-3270.13 4615,-3230.3 4655.84,-3214.48 4694.28,-3182.1 4719.99,-3156.95"/>
<polygon fill="#c70505" stroke="black" points="4722.62,-3159.27 4727.22,-3149.73 4717.67,-3154.32 4722.62,-3159.27"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_build_tools_sources -->
<g id="edge348" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_build_tools_sources</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4029,-2924.78C4065.9,-2865.3 4145.76,-2838.13 4200.21,-2826.14"/>
<polygon fill="#c70505" stroke="black" points="4201,-2829.55 4210.07,-2824.07 4199.56,-2822.7 4201,-2829.55"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge349" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_build_tools_task</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4039,-3120.53C4071.96,-3081.52 4080.89,-3069.54 4096,-3020.77"/>
<path fill="none" stroke="black" d="M4096,-3018.77C4108.68,-2977.82 4047.14,-2964.77 4067,-2926.78"/>
<path fill="none" stroke="black" d="M4067,-2924.78C4125.73,-2812.42 4239.47,-2931.06 4345,-2860.79 4383.35,-2835.25 4361.78,-2800.17 4398,-2771.7 4440.77,-2738.07 4467.51,-2762.25 4515,-2735.7 4809.4,-2571.1 4910.6,-2523.37 5085,-2234.67 5122.05,-2173.33 5121.9,-1968.44 5180,-1926.5 5256.31,-1871.41 5508.24,-1898.66 5602,-1890.5 5725.73,-1879.73 5870.78,-1866.77 5948.69,-1859.79"/>
<polygon fill="#c70505" stroke="black" points="5949.12,-1863.26 5958.77,-1858.88 5948.5,-1856.29 5949.12,-1863.26"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_formatters_aur_printer -->
<g id="edge350" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_formatters_aur_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4181,-3018.77C4226.93,-2937.49 4263.3,-2925.9 4352,-2896.79 4481.71,-2854.22 6673.61,-2878.24 6809,-2860.79 6845.04,-2856.15 8045.95,-2562.84 8079,-2547.73 8271.03,-2459.95 8465.95,-2296.12 8545.61,-2225.24"/>
<polygon fill="#c70505" stroke="black" points="8548.28,-2227.55 8553.41,-2218.28 8543.62,-2222.33 8548.28,-2227.55"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_report_email -->
<g id="edge351" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_report_email</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3678,-3018.77C3598.82,-2880.73 3683.79,-2798.84 3787,-2677.71 3959.15,-2475.68 3997.19,-2408.53 4224,-2270.67 4264.72,-2245.92 4287.27,-2263.78 4325,-2234.67 4502.93,-2097.37 4416.69,-1931.6 4610,-1816.96 4668.17,-1782.46 5134.66,-1755.57 5287.62,-1747.6"/>
<polygon fill="#c70505" stroke="black" points="5287.85,-1751.1 5297.66,-1747.08 5287.49,-1744.1 5287.85,-1751.1"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge352" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_report_jinja_template</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3754.59,-3288.65C3711.94,-3282.4 3640.09,-3272.4 3578,-3266.3 3335.97,-3242.51 3272.17,-3268.54 3032,-3230.3 2968.13,-3220.13 2953.73,-3210.04 2891,-3194.3 2826.18,-3178.03 2807.01,-3183.23 2745,-3158.3 2626.11,-3110.48 2345.36,-2947.5 2251,-2860.79 2080.75,-2704.33 2004.26,-2671.68 1927,-2453.75 1887.75,-2343.04 1870.26,-1997.27 1964,-1926.5 2016.66,-1886.74 4273.14,-1894.51 4339,-1890.5 4433.68,-1884.72 4542.88,-1871.84 4609.92,-1863.22"/>
<polygon fill="#c70505" stroke="black" points="4610.44,-1866.68 4619.91,-1861.93 4609.54,-1859.74 4610.44,-1866.68"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_repository_executor -->
<g id="edge353" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_repository_executor</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3991,-2815.24C4041.54,-2708.59 4117.83,-2733.52 4192,-2641.71 4275.24,-2538.67 4256.24,-2486.72 4335,-2380.21 4348.43,-2362.04 4467.47,-2255.15 4477,-2234.67 4577.28,-2019.13 4369.88,-1840.3 4567,-1707.42 4658.92,-1645.46 5454.91,-1691.07 5564,-1671.42 5583.76,-1667.86 5841.11,-1580.78 5951.87,-1543.16"/>
<polygon fill="#c70505" stroke="black" points="5953.15,-1546.43 5961.49,-1539.9 5950.89,-1539.8 5953.15,-1546.43"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_repository_properties -->
<g id="edge354" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3792,-3211.3C3776.86,-3154.97 4001.35,-3167.08 4039,-3122.53"/>
<path fill="none" stroke="black" d="M4039,-3120.53C4094.65,-3054.67 3983.55,-3000.05 4029,-2926.78"/>
<path fill="none" stroke="black" d="M4029,-2924.78C4079.67,-2825.09 4125.43,-2823.25 4195,-2735.7 4365.26,-2521.42 4400.91,-2462.2 4553,-2234.67 4610.84,-2148.15 4601.05,-2107.18 4677,-2036.03 4752.11,-1965.68 4787.12,-1968.64 4881,-1926.5 5010.11,-1868.53 5043.35,-1853.8 5180,-1816.96 5268.47,-1793.1 5293.58,-1800.96 5383,-1780.96 5409.98,-1774.92 5439.73,-1766.97 5464.15,-1760.1"/>
<polygon fill="#c70505" stroke="black" points="5465.25,-1763.43 5473.91,-1757.33 5463.34,-1756.7 5465.25,-1763.43"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_repository_repository -->
<g id="edge355" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_repository_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3792,-3211.3C3785.63,-3187.61 3983.81,-2840.69 3991,-2817.24"/>
<path fill="none" stroke="black" d="M3991,-2815.24C4013.03,-2751.13 4022.96,-2736.35 4057,-2677.71 4117.07,-2574.23 4327.39,-2348.9 4363,-2234.67 4418.68,-2056.07 4218.74,-1979.71 4311,-1816.96 4357.75,-1734.49 4403.25,-1734.8 4494,-1707.42 4658,-1657.93 5094.9,-1698.75 5264,-1671.42 5561.13,-1623.4 5620.92,-1547.67 5916,-1488.34 6016.38,-1468.16 6318.98,-1435.19 6442.56,-1422.14"/>
<polygon fill="#c70505" stroke="black" points="6442.97,-1425.62 6452.55,-1421.09 6442.24,-1418.65 6442.97,-1425.62"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_sign_gpg -->
<g id="edge356" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_sign_gpg</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3829.18,-3288.06C3900.66,-3275.5 4053.91,-3245.59 4096,-3213.3"/>
<path fill="none" stroke="black" d="M4096,-3211.3C4169.57,-3154.86 4122.12,-3092.4 4181,-3020.77"/>
<path fill="none" stroke="black" d="M4181,-3018.77C4201.11,-2983.17 4153.14,-2956.7 4181,-2926.78"/>
<path fill="none" stroke="black" d="M4181,-2924.78C4201.6,-2902.66 4213.86,-2904.84 4243,-2896.79 4377.98,-2859.54 4425.71,-2912.1 4556,-2860.79 4564.09,-2857.61 4572.06,-2853.02 4579.4,-2848.01"/>
<polygon fill="#c70505" stroke="black" points="4581.66,-2850.7 4587.7,-2841.99 4577.55,-2845.03 4581.66,-2850.7"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_status_web_client -->
<g id="edge357" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_status_web_client</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3754.6,-3288.5C3711.96,-3282.11 3640.13,-3271.98 3578,-3266.3 3273.52,-3238.45 3192.93,-3278.51 2891,-3230.3 2830.53,-3220.64 2817.49,-3208.83 2758,-3194.3 2685.09,-3176.49 2662.09,-3187.63 2593,-3158.3 2483.34,-3111.73 2233.74,-2942.46 2147,-2860.79 2085.65,-2803.02 1742.77,-2315.52 1719,-2234.67 1707.83,-2196.68 1703.57,-2182.04 1719,-2145.57 1736.86,-2103.38 1766.07,-2110.87 1793,-2073.8"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_upload_github -->
<g id="edge358" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_upload_github</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3798.45,-3266.7C3800.81,-3250.19 3801.02,-3229.36 3792,-3213.3"/>
<path fill="none" stroke="black" d="M3792,-3211.3C3761,-3156.07 3574.04,-3171 3512,-3158.3 3290.41,-3112.92 3228.57,-3123.24 3015,-3048.76 2669.73,-2928.35 2587.82,-2867.26 2300,-2641.71 2268.45,-2616.99 2017.47,-2458.06 2017,-2417.98"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_upload_http_upload -->
<g id="edge359" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_upload_http_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3754.53,-3289.17C3711.83,-3283.39 3639.93,-3273.81 3578,-3266.3 3285.1,-3230.77 3201.22,-3256.49 2923,-3158.3 2786.59,-3110.15 2457.08,-2951 2344,-2860.79 2275.49,-2806.14 2047.74,-2541.72 2003,-2453.75 1964.29,-2377.62 1897.02,-2144.46 1945,-2073.8"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_upload_rsync -->
<g id="edge360" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_upload_rsync</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3792,-3211.3C3720.58,-3026.69 3122.98,-3027.8 2939,-2954.77 2852.17,-2920.31 2824.54,-2918.39 2751,-2860.79 2513.57,-2674.83 2465.87,-2602.99 2311,-2344.21 2302.23,-2329.56 2302.09,-2324.73 2297,-2308.44"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_upload_s3 -->
<g id="edge361" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_upload_s3</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3754.65,-3289.08C3652.62,-3274.34 3361.15,-3228.75 3127,-3158.3 2973.14,-3112 2597.75,-2955.56 2468,-2860.79 2275.1,-2719.89 2196.66,-2678.95 2117,-2453.75 2092.73,-2385.14 2132.45,-2237.08 2155,-2145.57 2163.05,-2112.92 2180.31,-2107.41 2179,-2073.8"/>
<path fill="none" stroke="black" d="M2179,-2071.8C2176.67,-2051.24 2173.05,-2028.62 2169.66,-2009.46"/>
<polygon fill="#c70505" stroke="black" points="2173.08,-2008.71 2167.87,-1999.49 2166.2,-2009.95 2173.08,-2008.71"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_models_aur_package -->
<g id="edge362" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_models_aur_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3829.85,-3290.74C3890.89,-3285.09 4014.83,-3273.92 4120,-3266.3 4388.22,-3246.86 4459.38,-3278.21 4724,-3230.3 4833.12,-3210.54 4956.02,-3167.68 5023.27,-3142.36"/>
<polygon fill="#c70505" stroke="black" points="5024.67,-3145.58 5032.78,-3138.76 5022.19,-3139.03 5024.67,-3145.58"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_models_build_status -->
<g id="edge363" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_models_build_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4096,-3018.77C4114.72,-2958.9 4114.3,-2930.81 4167,-2896.79 4298.01,-2812.22 4384.94,-2945.28 4516,-2860.79 4554.53,-2835.95 4528.75,-2795.39 4568,-2771.7 4646.17,-2724.5 5298.02,-2743.45 5389,-2735.7 5719.77,-2707.52 5809.32,-2727.55 6130,-2641.71 6220.48,-2617.5 6319.91,-2571.22 6375.97,-2543.15"/>
<polygon fill="#c70505" stroke="black" points="6377.57,-2546.26 6384.92,-2538.64 6374.41,-2540.01 6377.57,-2546.26"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_models_counters -->
<g id="edge364" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_models_counters</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4067,-2924.78C4078.3,-2903.69 4090.43,-2904.75 4113,-2896.79 4228,-2856.23 4271.06,-2904.25 4385,-2860.79 4450.79,-2835.7 4449.82,-2795.75 4516,-2771.7 4666.71,-2716.92 4716.09,-2757.17 4875,-2735.7 5121.62,-2702.38 5184.05,-2695.64 5427,-2641.71 5734.78,-2573.4 5824.55,-2585.44 6111,-2453.75 6116.96,-2451.01 6122.99,-2447.63 6128.74,-2444.05"/>
<polygon fill="#c70505" stroke="black" points="6131.04,-2446.73 6137.5,-2438.33 6127.21,-2440.87 6131.04,-2446.73"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_models_package -->
<g id="edge365" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3678,-3018.77C3671.9,-3005.58 3752.91,-2781.09 3764,-2771.7 3780.35,-2757.86 4502.92,-2645.52 4524,-2641.71 4659.79,-2617.2 4692.2,-2601.73 4829,-2583.73 5138.97,-2542.95 5515.05,-2526.25 5646.7,-2521.37"/>
<polygon fill="#c70505" stroke="black" points="5646.99,-2524.87 5656.86,-2521 5646.74,-2517.87 5646.99,-2524.87"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_models_package_description -->
<g id="edge366" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_models_package_description</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4096,-3211.3C4203.06,-3117.32 4333.03,-3010.51 4396.83,-2958.55"/>
<polygon fill="#c70505" stroke="black" points="4399.1,-2961.22 4404.64,-2952.19 4394.68,-2955.79 4399.1,-2961.22"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_models_package_source -->
<g id="edge367" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_models_package_source</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4181,-2924.78C4223.65,-2878.98 4256.78,-2903.55 4319,-2896.79 4805.76,-2843.9 6035.41,-2915.16 6522,-2860.79 6791.85,-2830.64 6909.47,-2907.18 7120,-2735.7 7145.64,-2714.81 7159.18,-2679.13 7166.13,-2651.73"/>
<polygon fill="#c70505" stroke="black" points="7169.61,-2652.22 7168.48,-2641.69 7162.79,-2650.62 7169.61,-2652.22"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_web_views_index -->
<g id="edge368" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_web_views_index</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3754.61,-3288.4C3711.98,-3281.92 3640.15,-3271.71 3578,-3266.3 3212.81,-3234.49 3116.99,-3281.44 2754,-3230.3 2618.65,-3211.22 2582.64,-3207.2 2455,-3158.3 2308.76,-3102.27 2290.46,-3048.8 2145,-2990.77 2075.89,-2963.21 914.79,-2681.62 852,-2641.71 846.23,-2638.04 695.87,-2459.96 693,-2453.75 665.54,-2394.33 669,-2373.9 669,-2308.44 669,-2308.44 669,-2308.44 669,-1852.73 669,-1613.09 706,-1554.45 706,-1314.81 706,-1314.81 706,-1314.81 706,-1247.82 706,-1181.9 755.6,-1180.76 806,-1138.28 851.2,-1100.17 884.42,-1115.16 918,-1066.51"/>
<path fill="none" stroke="black" d="M918,-1064.51C955.71,-1002.54 1057.85,-843.53 1122,-809.66 1257.55,-738.1 1325.41,-836.99 1465,-773.66 1470.32,-771.25 1475.44,-767.99 1480.21,-764.34"/>
<polygon fill="#c70505" stroke="black" points="1482.48,-767 1487.89,-757.9 1477.98,-761.64 1482.48,-767"/>
</g>
<!-- ahriman_models -->
<g id="node98" class="node">
<title>ahriman_models</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f91010" stroke="black" cx="4123" cy="-3483.25" rx="50.75" ry="18"/>
<text text-anchor="middle" x="4123" y="-3480.75" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.models</text>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_ahriman -->
<g id="edge369" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4097.57,-3467.49C4087.2,-3462.25 4074.88,-3456.99 4063,-3454.26 3792.55,-3392.23 1841.39,-3452.23 1566,-3418.26 1512.08,-3411.61 1496.62,-3412.41 1447,-3390.27"/>
<path fill="none" stroke="black" d="M1447,-3388.27C1432.03,-3381.59 1435.77,-3370.55 1423,-3360.28 1396.66,-3339.09 1383.42,-3344.05 1356,-3324.28 1230.13,-3233.55 1231.49,-3170.24 1102,-3084.76 894.04,-2947.47 804.21,-2984.69 588,-2860.79 426.24,-2768.1 249,-2800.16 249,-2613.72 249,-2613.72 249,-2613.72 249,-2415.98 249,-2051.94 0,-1999.69 0,-1635.65 0,-1635.65 0,-1635.65 0,-1064.51 0,-907.49 82.31,-883.9 114,-730.11"/>
<path fill="none" stroke="black" d="M114,-728.11C129.62,-576.94 190.29,-517.77 333,-465.49 966.88,-233.27 1174.75,-404.7 1849,-371.5 1903.8,-368.81 2790.25,-365.79 2836,-335.5"/>
<path fill="none" stroke="black" d="M2836,-334.5C3373.91,22.98 8073,-423.91 8645,-123.97"/>
<path fill="none" stroke="black" d="M8645,-121.97C8658.31,-114.99 8654.81,-105.88 8664,-93.98 8672.19,-83.38 8681.61,-72.25 8690.36,-62.31"/>
<polygon fill="#f91010" stroke="black" points="8693.17,-64.42 8697.19,-54.62 8687.93,-59.77 8693.17,-64.42"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_application_application -->
<g id="edge370" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_application_application</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8391,-3120.53C8391.27,-3104.35 8494.42,-2563.7 8497,-2547.73 8503.73,-2506.1 8507.1,-2495.82 8510,-2453.75 8512.24,-2421.14 8510.15,-2412.89 8510,-2380.21 8509.52,-2274.71 8522.75,-2239.14 8474,-2145.57 8317.76,-1845.69 8162.14,-1850.52 7986,-1561.88 7841.81,-1325.6 7735.61,-1007.62 7699.47,-891.89"/>
<polygon fill="#f91010" stroke="black" points="7702.8,-890.81 7696.49,-882.29 7696.11,-892.88 7702.8,-890.81"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_application_packages -->
<g id="edge371" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_application_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8391,-3388.27C8424.64,-3365.04 8372.46,-3332.72 8391,-3296.29"/>
<path fill="none" stroke="black" d="M8391,-3294.29C8425.62,-3226.25 8391,-3198.86 8391,-3122.53"/>
<path fill="none" stroke="black" d="M8391,-3120.53C8378.83,-2949.72 8405.78,-2906.89 8410,-2735.7 8410.64,-2709.93 8410.34,-2703.48 8410,-2677.71 8408.89,-2594.15 8408.59,-2573.24 8405,-2489.75 8400.81,-2392.3 8402.98,-2367.59 8392,-2270.67 8385.65,-2214.65 8408.94,-2187.27 8371,-2145.57 8329.21,-2099.64 8291.16,-2138.09 8236,-2109.57 7967.61,-1970.84 7411.07,-1441.68 7215,-1211.82 7202.58,-1197.25 7203.98,-1190.12 7191,-1176.05"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_application_repository -->
<g id="edge372" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_application_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8391,-3294.29C8413.68,-3250.44 8450.01,-3259.64 8467,-3213.3"/>
<path fill="none" stroke="black" d="M8467,-3211.3C8488.77,-3151.94 8467,-2990.01 8467,-2926.78 8467,-2926.78 8467,-2926.78 8467,-2705.7 8467,-2456.49 8555.2,-2367.09 8441,-2145.57 8421.87,-2108.46 8193.54,-1920.97 8165,-1890.5 8036.56,-1753.35 7996.87,-1722.28 7899,-1561.88 7819.8,-1432.07 7845.02,-1375.55 7761,-1248.82"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_handler -->
<g id="edge373" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_handlers_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8771,-3211.3C8778.94,-3205.58 8777.86,-3200.99 8785,-3194.3 8804.98,-3175.57 8820.39,-3181.45 8835,-3158.3 8996.14,-2902.93 8765.04,-2723.65 8956,-2489.75 8983.25,-2456.38 9012.81,-2481.21 9046,-2453.75 9075.88,-2429.02 9060.3,-2401.07 9093,-2380.21 9194.32,-2315.58 9262.75,-2413.42 9361,-2344.21 9391.08,-2323.02 9376,-2299.38 9399,-2270.67 9414.58,-2251.22 9427.15,-2254.68 9442,-2234.67 9467.66,-2200.1 9450.86,-2177.26 9480,-2145.57 9503.15,-2120.4 9517.79,-2125.6 9548,-2109.57 9639.6,-2060.97 9680.73,-2073.42 9754,-2000.03 9844.56,-1909.33 9889,-1873.36 9889,-1745.19 9889,-1745.19 9889,-1745.19 9889,-1633.65 9889,-1314.92 9903.54,-1228.6 9827,-919.2 9802.64,-820.75 9750.95,-713.09 9720.92,-655.25"/>
<polygon fill="#f91010" stroke="black" points="9723.85,-653.3 9716.11,-646.06 9717.65,-656.55 9723.85,-653.3"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge374" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_handlers_patch</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8391,-3294.29C8398.53,-3279.73 8402.26,-3276.61 8415,-3266.3 8440.97,-3245.27 8458.49,-3254.99 8481,-3230.3 8504.47,-3204.54 8501.19,-3191.42 8512,-3158.3 8566.48,-2991.36 8701.9,-2316.9 8657,-2191.12"/>
<path fill="none" stroke="black" d="M8657,-2189.12C8424.75,-1602.43 8576.5,-1403.96 8547,-773.66 8542.87,-685.47 8505.86,-654.16 8545,-575.03 8554.78,-555.26 8572.9,-539.44 8590.65,-527.74"/>
<polygon fill="#f91010" stroke="black" points="8592.67,-530.61 8599.29,-522.33 8588.95,-524.67 8592.67,-530.61"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_report -->
<g id="edge375" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_handlers_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8391,-3294.29C8398.13,-3279.53 8401.66,-3275.81 8415,-3266.3 8450.42,-3241.05 8474.79,-3260.59 8506,-3230.3 8531,-3206.03 8524.85,-3190.95 8537,-3158.3 8645.64,-2866.27 8651.74,-2786.08 8748,-2489.75 8760.46,-2451.4 8833.81,-2173.39 8863,-2145.57 8905.78,-2104.81 8937.77,-2135.24 8991,-2109.57 9066.01,-2073.41 9091.67,-2065.61 9143,-2000.03 9264.51,-1844.8 9205.26,-1758.9 9212,-1561.88 9218.52,-1371.17 9211.53,-1315.98 9142,-1138.28 9135.17,-1120.82 9128.42,-1119.03 9120,-1102.28 9019.19,-901.61 8928.58,-648.18 8893.93,-547.45"/>
<polygon fill="#f91010" stroke="black" points="8897.21,-546.23 8890.66,-537.9 8890.59,-548.5 8897.21,-546.23"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_search -->
<g id="edge376" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_handlers_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8277,-3294.29C8235.47,-3261.74 8216.48,-3265.31 8177,-3230.3 8169.68,-3223.8 8169.93,-3220.21 8163,-3213.3"/>
<path fill="none" stroke="black" d="M8163,-3211.3C8061.47,-3110.07 8011,-3070.15 8011,-2926.78 8011,-2926.78 8011,-2926.78 8011,-2815.24 8011,-2553.26 7931.75,-2495.66 7909,-2234.67 7868.14,-1765.95 7913,-1646.55 7913,-1176.05 7913,-1176.05 7913,-1176.05 7913,-1064.51 7913,-986.9 8018.8,-994.32 7761,-809.66 7633.78,-718.54 7557.27,-801.48 7418,-730.11"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_setup -->
<g id="edge377" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_handlers_setup</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4919,-3120.53C4972.04,-2729.25 4613.6,-2718.22 4487,-2344.21 4458.39,-2259.7 4480.89,-2231.8 4458,-2145.57 4444.58,-2095.02 4439.95,-2082 4415,-2036.03 4377.08,-1966.16 4335.27,-1966.2 4311,-1890.5 4301.02,-1859.37 4294.58,-1845.22 4311,-1816.96 4333.22,-1778.72 5652.26,-1043.34 5694,-1028.74 5842.61,-976.73 6238.29,-942.5 6394,-919.2 6734.56,-868.24 6819.46,-853.52 7161,-809.66 7787.48,-729.2 7947.12,-733.55 8573,-648.57 8882.86,-606.49 8976.06,-651.08 9268,-539.03 9272.24,-537.4 9276.5,-535.41 9280.66,-533.21"/>
<polygon fill="#f91010" stroke="black" points="9282.63,-536.12 9289.58,-528.12 9279.16,-530.04 9282.63,-536.12"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_status -->
<g id="edge378" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_handlers_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8391,-3388.27C8402.45,-3380.37 8395.49,-3370.43 8405,-3360.28 8407.77,-3357.32 8654.47,-3216.46 8657,-3213.3"/>
<path fill="none" stroke="black" d="M8657,-3211.3C8690.06,-3164.76 8668.26,-3140.82 8679,-3084.76 8729.88,-2819.28 8684.54,-2731.74 8805,-2489.75 8833.46,-2432.58 8856.65,-2428.88 8898,-2380.21 8925.1,-2348.3 8953.49,-2349.94 8959,-2308.44"/>
<path fill="none" stroke="black" d="M8959,-2306.44C8967.09,-2264.77 8910.96,-2274.39 8896,-2234.67 8882.04,-2197.61 8871.07,-2176.34 8896,-2145.57 8944.63,-2085.57 8997.59,-2145.42 9066,-2109.57 9191.61,-2043.74 9241.86,-2020.73 9298,-1890.5 9430.35,-1583.48 9395.75,-1456.74 9294,-1138.28 9282.01,-1100.74 9103.72,-884.73 9091,-847.43"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_status_update -->
<g id="edge379" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_handlers_status_update</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4173.51,-3481.94C4647.49,-3478.88 8299.75,-3453.27 8391,-3390.27"/>
<path fill="none" stroke="black" d="M8391,-3388.27C8434.42,-3358.29 8326.29,-3363.5 8291,-3324.28 8281.7,-3313.94 8287.95,-3304.87 8277,-3296.29"/>
<path fill="none" stroke="black" d="M8277,-3294.29C8182.92,-3220.57 8115.31,-3254.95 8045,-3158.3 8015.09,-3117.18 8024.98,-3097.92 8012,-3048.76 7979.77,-2926.66 7986.2,-2892.38 7949,-2771.7 7862.51,-2491.07 7641.15,-2422.8 7738,-2145.57 7785.78,-2008.79 7859.46,-2010.26 7941,-1890.5 8200.26,-1509.72 8229.5,-1392.16 8459,-992.74 8565.56,-807.28 8575.1,-750.09 8698,-575.03 8705.86,-563.83 8715.1,-552.28 8723.98,-541.81"/>
<polygon fill="#f91010" stroke="black" points="8726.8,-543.9 8730.66,-534.04 8721.49,-539.34 8726.8,-543.9"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_user -->
<g id="edge380" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_handlers_user</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8657,-2189.12C8554.29,-1841.65 8407.22,-1800.83 8308,-1452.34 8264.38,-1299.13 8256.54,-1259.52 8231,-1102.28 8196.1,-887.46 8084.39,-785.37 8217,-612.8"/>
<path fill="none" stroke="black" d="M8217,-610.8C8225.79,-596.16 8220.2,-588.25 8231,-575.03 8247.58,-554.73 8271.45,-538.26 8292.81,-526.25"/>
<polygon fill="#f91010" stroke="black" points="8294.67,-529.22 8301.79,-521.37 8291.33,-523.07 8294.67,-529.22"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_lock -->
<g id="edge381" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_lock</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8163,-3120.53C8152.81,-2987.32 8141,-2653.34 8141,-2519.74 8141,-2519.74 8141,-2519.74 8141,-2415.98 8141,-2355.86 8174.96,-2188.62 8133,-2145.57 8082.36,-2093.62 7549.93,-2132.24 7481,-2109.57 7200.33,-2017.29 7155.43,-1930.1 6925,-1745.19"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_alpm_remote_aur -->
<g id="edge382" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_alpm_remote_aur</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3029,-3294.29C2990.7,-3277.81 2914.53,-2942.88 2953,-2926.78"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_alpm_remote_official -->
<g id="edge383" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_alpm_remote_official</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4134,-3388.27C4126.24,-3348.13 4137.81,-3336.99 4134,-3296.29"/>
<path fill="none" stroke="black" d="M4134,-3294.29C4124.5,-3192.7 3925,-2950.06 3844.37,-2855.7"/>
<polygon fill="#f91010" stroke="black" points="3847.03,-2853.42 3837.86,-2848.1 3841.71,-2857.97 3847.03,-2853.42"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_alpm_remote_remote -->
<g id="edge384" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_alpm_remote_remote</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4111.69,-3465.48C4091.96,-3437.81 4048.3,-3383.36 3996,-3360.28 3897.49,-3316.8 3129.74,-3334.31 3029,-3296.29"/>
<path fill="none" stroke="black" d="M3029,-3294.29C3024.81,-3292.71 2981.89,-3234.36 2980,-3230.3 2917.04,-3094.88 2841.44,-3009.86 2939,-2896.79 2974.66,-2855.46 3132.2,-2883.16 3182,-2860.79 3187.3,-2858.41 3192.49,-2855.33 3197.41,-2851.91"/>
<polygon fill="#f91010" stroke="black" points="3199.52,-2854.7 3205.41,-2845.89 3195.32,-2849.1 3199.52,-2854.7"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_alpm_repo -->
<g id="edge385" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_alpm_repo</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4134,-3388.27C4129.8,-3366.56 4153.61,-3308.58 4172,-3296.29"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_auth_auth -->
<g id="edge386" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_auth_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4097.54,-3467.62C4087.17,-3462.4 4074.85,-3457.11 4063,-3454.26 3842.26,-3401.21 3268.02,-3439.64 3042,-3418.26 3037.75,-3417.86 2438.04,-3325.67 2434,-3324.28 2398.15,-3311.97 2160.1,-3187.55 2136,-3158.3 2031.28,-3031.18 1940.71,-2614.75 1906,-2453.75 1885.44,-2358.37 1892.89,-2332.23 1892,-2234.67 1890.75,-2097.29 1812.12,-2016.39 1916,-1926.5 1957.45,-1890.63 2848.48,-1902.32 2902,-1890.5 2916.22,-1887.36 2931.06,-1881.93 2944.28,-1876.25"/>
<polygon fill="#f91010" stroke="black" points="2945.9,-1879.36 2953.6,-1872.09 2943.04,-1872.97 2945.9,-1879.36"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_auth_mapping -->
<g id="edge387" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_auth_mapping</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1941,-2815.24C1813.36,-2437.4 1482.59,-2143.83 1817,-1926.5 1940.35,-1846.33 2338.13,-1936.06 2478,-1890.5 2551.91,-1866.42 2625.11,-1811.53 2666.81,-1776.53"/>
<polygon fill="#f91010" stroke="black" points="2669.12,-1779.17 2674.47,-1770.03 2664.58,-1773.83 2669.12,-1779.17"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_auth_oauth -->
<g id="edge388" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_auth_oauth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4097.56,-3467.56C4087.19,-3462.33 4074.86,-3457.05 4063,-3454.26 3760.06,-3382.98 2971.01,-3462.82 2663,-3418.26 2503.17,-3395.14 2457.59,-3394.16 2312,-3324.28 2248.37,-3293.74 2238.46,-3275.19 2184,-3230.3 2165.8,-3215.29 2163.72,-3208.65 2145,-3194.3 2121.23,-3176.06 2107.47,-3181.07 2088,-3158.3 1980.76,-3032.82 2004.56,-2969.58 1941,-2817.24"/>
<path fill="none" stroke="black" d="M1941,-2815.24C1920.82,-2776.13 1905.41,-2772.97 1882,-2735.7 1806.73,-2615.85 1788.63,-2584.3 1734,-2453.75 1714.27,-2406.6 1713.74,-2393.15 1699,-2344.21 1684.41,-2295.76 1680.8,-2283.62 1668,-2234.67 1652.36,-2174.88 1553.35,-2001.06 1603,-1964.27"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge389" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_build_tools_task</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7783,-3294.29C7807.7,-3273.75 7859,-3127.38 7859,-3122.53 7859,-3122.53 7859,-3122.53 7859,-2924.78 7859,-2866.89 7216.14,-2176.18 7167,-2145.57 6856.64,-1952.25 6732.28,-1999.51 6374,-1926.5 6255.38,-1902.32 6221.6,-1919.23 6104,-1890.5 6087.83,-1886.54 6070.63,-1880.88 6055.18,-1875.21"/>
<polygon fill="#f91010" stroke="black" points="6056.41,-1871.93 6045.82,-1871.7 6053.95,-1878.49 6056.41,-1871.93"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_configuration -->
<g id="edge390" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_configuration</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4815,-3294.29C4828.15,-3284.51 4828.29,-3278.7 4839,-3266.3 4880.6,-3218.14 4894.63,-3209.06 4933,-3158.3 4956.53,-3127.16 4951.75,-3110.59 4981,-3084.76 4987.89,-3078.67 5029.18,-3058.87 5063.59,-3042.89"/>
<polygon fill="#f91010" stroke="black" points="5065.47,-3045.87 5073.08,-3038.5 5062.53,-3039.52 5065.47,-3045.87"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_database_data -->
<g id="edge391" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_database_data</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8163,-3211.3C8135.06,-3183.44 8170.01,-3161.35 8163,-3122.53"/>
<path fill="none" stroke="black" d="M8163,-3120.53C8159.97,-3103.73 8158.54,-3098.92 8149,-3084.76 8136,-3065.46 8121.28,-3069.63 8111,-3048.76 8065.27,-2955.97 8096.99,-2920.21 8087,-2817.24"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_database_data_package_statuses -->
<g id="edge392" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_database_data_package_statuses</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4173.46,-3481.13C4348.56,-3476.89 4923.24,-3459.91 4994,-3418.26 5020.55,-3402.63 5005.06,-3375.24 5032,-3360.28 5165.65,-3286.06 7683.3,-3412.18 7783,-3296.29"/>
<path fill="none" stroke="black" d="M7783,-3294.29C7822.3,-3248.6 7460,-2935.72 7414,-2896.79 7336.83,-2831.47 7317.85,-2809.3 7224,-2771.7 7140.97,-2738.43 7108.51,-2770.22 7026,-2735.7 6912.74,-2688.31 6534.05,-2534.07 6574,-2417.98"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_database_data_patches -->
<g id="edge393" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_database_data_patches</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4173.76,-3482.1C4656.11,-3480.53 8415.52,-3466.76 8519,-3418.26 8533.84,-3411.31 8527.27,-3394.86 8543,-3390.27"/>
<path fill="none" stroke="black" d="M8543,-3388.27C8557.2,-3384.13 8549.99,-3370.16 8561,-3360.28 8587.62,-3336.38 8604.99,-3346.54 8633,-3324.28 8659.19,-3303.47 8652.72,-3284.17 8681,-3266.3 8736.03,-3231.5 8765.03,-3259.94 8823,-3230.3 8845.19,-3218.95 8845.08,-3207.85 8866,-3194.3 8896.69,-3174.41 8914.76,-3184.77 8940,-3158.3 8985.9,-3110.16 8999,-3087.28 8999,-3020.77 8999,-3020.77 8999,-3020.77 8999,-2611.72 8999,-2547.85 9030.16,-2535.23 9075,-2489.75 9095.77,-2468.68 9110.52,-2475.11 9131,-2453.75 9157.2,-2426.42 9142.43,-2401.1 9174,-2380.21 9279,-2310.73 9335.24,-2383.08 9455,-2344.21 9544.6,-2315.12 9638.7,-2257.14 9691.79,-2221.48"/>
<polygon fill="#f91010" stroke="black" points="9693.95,-2224.24 9700.27,-2215.74 9690.03,-2218.44 9693.95,-2224.24"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_database_migrations -->
<g id="edge394" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_database_migrations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4127.56,-3465.29C4131.93,-3446.82 4137.4,-3416.43 4134,-3390.27"/>
<path fill="none" stroke="black" d="M4134,-3388.27C4114.83,-3240.84 4425.13,-3410.34 3745,-3324.28 3664.24,-3314.06 3642.76,-3316.84 3564,-3296.29"/>
<path fill="none" stroke="black" d="M3564,-3294.29C3353.24,-3239.3 3105,-3340.34 3105,-3122.53 3105,-3122.53 3105,-3122.53 3105,-3018.77 3105,-2879.73 3305.83,-2981.4 3375,-2860.79 3394.7,-2826.44 3376.32,-2811.27 3375,-2771.7 3371.66,-2671.99 3364.79,-2647.38 3360,-2547.73 3354.89,-2441.46 3357.6,-2414.74 3353,-2308.44"/>
<path fill="none" stroke="black" d="M3353,-2306.44C3349.08,-2283.02 3343.39,-2257.22 3338.34,-2235.97"/>
<polygon fill="#f91010" stroke="black" points="3341.74,-2235.15 3335.99,-2226.25 3334.93,-2236.79 3341.74,-2235.15"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_database_operations_auth_operations -->
<g id="edge395" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_database_operations_auth_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2744,-3211.3C2659.05,-3162.02 2676.54,-3073.15 2730,-2990.77 2762.16,-2941.22 2772.02,-2924.87 2824,-2896.79 2893.1,-2859.47 2938.88,-2913.62 2997,-2860.79 3104.79,-2762.81 3057.98,-2688.87 3094,-2547.73 3121.2,-2441.13 3144.72,-2314.5 3156.97,-2244.45"/>
<polygon fill="#f91010" stroke="black" points="3160.43,-2244.98 3158.7,-2234.53 3153.54,-2243.78 3160.43,-2244.98"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_database_operations_build_operations -->
<g id="edge396" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_database_operations_build_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2744,-3211.3C2617.19,-3120.73 2776.03,-2992.51 2899,-2896.79 2959.6,-2849.62 2998.62,-2893.72 3068,-2860.79 3080.55,-2854.83 3451.46,-2559.98 3458,-2547.73 3509.69,-2450.94 3504.83,-2318.03 3496.83,-2244.86"/>
<polygon fill="#f91010" stroke="black" points="3500.26,-2244.04 3495.63,-2234.51 3493.3,-2244.85 3500.26,-2244.04"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_database_operations_package_operations -->
<g id="edge397" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_database_operations_package_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4134,-3388.27C4079.63,-3107.12 3850.22,-3133.86 3764,-2860.79 3737.49,-2776.83 3736.71,-2584.14 3787,-2489.75 3811.06,-2444.59 3861.18,-2466.63 3877,-2417.98"/>
<path fill="none" stroke="black" d="M3877,-2415.98C3888.43,-2372.51 3794.25,-2284.62 3732.43,-2232.52"/>
<polygon fill="#f91010" stroke="black" points="3734.6,-2229.77 3724.68,-2226.04 3730.1,-2235.14 3734.6,-2229.77"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_aur_printer -->
<g id="edge398" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_formatters_aur_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8467,-3211.3C8544.94,-3010.78 8525.1,-2948.45 8557,-2735.7 8571.32,-2640.19 8562.48,-2614.52 8581,-2519.74"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_build_printer -->
<g id="edge399" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_formatters_build_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4919,-3120.53C4964.27,-2886.61 5261,-2945.96 5261,-2707.7 5261,-2707.7 5261,-2707.7 5261,-2611.72 5261,-2464.93 5344.32,-2305.73 5387.99,-2232.39"/>
<polygon fill="#f91010" stroke="black" points="5391.21,-2233.83 5393.37,-2223.45 5385.21,-2230.22 5391.21,-2233.83"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_configuration_printer -->
<g id="edge400" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_formatters_configuration_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4173.6,-3482.32C4640.96,-3482.87 8192.96,-3484.8 8405,-3418.26 8448.98,-3404.46 8449.76,-3380.88 8491,-3360.28 8534.76,-3338.42 8554.8,-3352.15 8595,-3324.28 8622.49,-3305.22 8614.72,-3284.17 8643,-3266.3 8698.03,-3231.5 8726.26,-3258.37 8785,-3230.3 8809.06,-3218.8 8810.57,-3208.72 8833,-3194.3 8861.1,-3176.23 8876.29,-3182.8 8899,-3158.3 8944.58,-3109.12 8961,-3087.81 8961,-3020.77 8961,-3020.77 8961,-3020.77 8961,-2611.72 8961,-2556.47 8948.5,-2531.22 8985,-2489.75 9018.43,-2451.76 9052.94,-2484.65 9093,-2453.75 9123.9,-2429.91 9108.05,-2401.12 9141,-2380.21 9238.75,-2318.16 9294.49,-2394.03 9399,-2344.21 9413.75,-2337.18 9479.62,-2273.6 9523.26,-2230.62"/>
<polygon fill="#f91010" stroke="black" points="9525.94,-2232.89 9530.6,-2223.38 9521.02,-2227.91 9525.94,-2232.89"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_package_printer -->
<g id="edge401" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_formatters_package_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8391,-3388.27C8468.2,-3334.96 8497.76,-3339.57 8581,-3296.29"/>
<path fill="none" stroke="black" d="M8581,-3294.29C8595.54,-3286.73 8592.26,-3276.61 8605,-3266.3 8630.97,-3245.27 8647.93,-3254.47 8671,-3230.3 8695.56,-3204.55 8693.92,-3191.76 8706,-3158.3 8731.98,-3086.36 8821.64,-2549 8870,-2489.75 8893.63,-2460.79 8915.22,-2474.95 8946,-2453.75 8959.13,-2444.7 9109.11,-2299.14 9181.44,-2228.71"/>
<polygon fill="#f91010" stroke="black" points="9183.89,-2231.22 9188.61,-2221.73 9179,-2226.2 9183.89,-2231.22"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_printer -->
<g id="edge402" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_formatters_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8543,-3388.27C8546.51,-3387.33 9010.82,-3161.2 9013,-3158.3 9050.27,-3108.69 9037,-3082.81 9037,-3020.77 9037,-3020.77 9037,-3020.77 9037,-2611.72 9037,-2569.29 9131.07,-2491.34 9187.52,-2448.38"/>
<polygon fill="#f91010" stroke="black" points="9189.69,-2451.13 9195.56,-2442.3 9185.47,-2445.54 9189.69,-2451.13"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_status_printer -->
<g id="edge403" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_formatters_status_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8959,-2306.44C8962.02,-2283.67 8962.34,-2258.15 8961.76,-2236.92"/>
<polygon fill="#f91010" stroke="black" points="8965.26,-2236.74 8961.42,-2226.87 8958.26,-2236.98 8965.26,-2236.74"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_update_printer -->
<g id="edge404" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_formatters_update_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8657,-3211.3C8714.87,-3152.53 8781.33,-2555.58 8831,-2489.75 8851.36,-2462.76 8872.61,-2476.07 8898,-2453.75 8971.59,-2389.03 9032.32,-2290.28 9063.46,-2234.12"/>
<polygon fill="#f91010" stroke="black" points="9066.64,-2235.6 9068.38,-2225.15 9060.5,-2232.23 9066.64,-2235.6"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_user_printer -->
<g id="edge405" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_formatters_user_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8581,-3294.29C8595.47,-3286.6 8591.34,-3275.35 8605,-3266.3 8669.55,-3223.5 8709.01,-3259.72 8771,-3213.3"/>
<path fill="none" stroke="black" d="M8771,-3211.3C8901.64,-3113.47 8804,-2615.53 8908,-2489.75 8935.71,-2456.23 8963.3,-2478.59 8999,-2453.75 9035.05,-2428.66 9026.44,-2401.23 9065,-2380.21 9153.92,-2331.74 9195.2,-2379.84 9290,-2344.21 9318,-2333.69 9323.23,-2326.59 9347,-2308.44"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_report_console -->
<g id="edge406" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_report_console</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4134,-3294.29C4136.3,-3269.21 4331.11,-2910.85 4352,-2896.79 4467.07,-2819.35 4534.81,-2916.12 4662,-2860.79 4740.67,-2826.57 4752.98,-2800.67 4809,-2735.7 5017.22,-2494.2 5164.41,-2131.84 5211.15,-2007.75"/>
<polygon fill="#f91010" stroke="black" points="5214.5,-2008.79 5214.73,-1998.2 5207.94,-2006.34 5214.5,-2008.79"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_report_email -->
<g id="edge407" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_report_email</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4919,-3120.53C4945.61,-2894.32 4995,-2841.49 4995,-2613.72 4995,-2613.72 4995,-2613.72 4995,-2306.44 4995,-2136.73 4949.41,-2074.19 5033,-1926.5 5088.19,-1828.99 5219.01,-1778.3 5289.34,-1757.27"/>
<polygon fill="#f91010" stroke="black" points="5290.64,-1760.54 5299.26,-1754.38 5288.68,-1753.82 5290.64,-1760.54"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_report_html -->
<g id="edge408" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_report_html</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3944,-3388.27C3547.15,-3270.82 3418.02,-3418.41 3015,-3324.28 2949.02,-3308.87 2936.71,-3291.97 2874,-3266.3 2816.26,-3242.65 2796.81,-3246.52 2744,-3213.3"/>
<path fill="none" stroke="black" d="M2744,-3211.3C2673.1,-3163.28 2633.31,-3183.31 2573,-3122.53"/>
<path fill="none" stroke="black" d="M2573,-3120.53C2426.44,-2972.82 2355.53,-2875.22 2421,-2677.71 2453.78,-2578.84 2477.64,-2552.21 2561,-2489.75 2597.8,-2462.18 2631.74,-2491.5 2658,-2453.75 2676.66,-2426.92 2660.56,-2412.79 2658,-2380.21 2649.8,-2275.75 2612.74,-2247.96 2635,-2145.57 2650.44,-2074.55 2771.27,-1832.67 2796,-1816.96 2852.35,-1781.17 3930.3,-1783.66 3997,-1780.96 4241.25,-1771.04 4533.34,-1754.58 4646.71,-1748.02"/>
<polygon fill="#f91010" stroke="black" points="4647.02,-1751.5 4656.8,-1747.43 4646.62,-1744.52 4647.02,-1751.5"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge409" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_report_jinja_template</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3564,-3294.29C3490.31,-3274.37 3564,-3198.86 3564,-3122.53 3564,-3122.53 3564,-3122.53 3564,-3018.77 3564,-2921.67 3531.5,-2216.32 3598,-2145.57 3652.46,-2087.64 3876.41,-2126.98 3954,-2109.57 4210.35,-2052.06 4501.15,-1930.65 4619.08,-1878.91"/>
<polygon fill="#f91010" stroke="black" points="4620.53,-1882.09 4628.28,-1874.86 4617.71,-1875.68 4620.53,-1882.09"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_report_report -->
<g id="edge410" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_report_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4134,-3294.29C4137.27,-3113.18 4089.68,-3018.32 4224,-2896.79 4278.69,-2847.31 4321.07,-2895.79 4386,-2860.79 4456.3,-2822.9 4464.04,-2797.19 4515,-2735.7 4610.78,-2620.1 4624.28,-2582.78 4701,-2453.75 4836.7,-2225.51 4776.04,-2094.09 4982,-1926.5 4997.55,-1913.84 5113.54,-1883.21 5180.2,-1866.35"/>
<polygon fill="#f91010" stroke="black" points="5181.21,-1869.7 5190.05,-1863.86 5179.5,-1862.91 5181.21,-1869.7"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_repository_executor -->
<g id="edge411" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_repository_executor</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8277,-3294.29C8091.61,-3116.83 8343.01,-2323.44 8158,-2145.57 8112.81,-2102.13 7654.26,-2129.99 7595,-2109.57 7377.14,-2034.52 7360.58,-1941.95 7167,-1816.96 7062.52,-1749.5 7010.27,-1764.69 6928,-1671.42 6904.3,-1644.55 6924.27,-1618.54 6895,-1597.88 6877.74,-1585.69 6245.93,-1542.46 6055.67,-1529.69"/>
<polygon fill="#f91010" stroke="black" points="6055.84,-1526.19 6045.62,-1529.01 6055.37,-1533.17 6055.84,-1526.19"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_repository_repository -->
<g id="edge412" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_repository_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8277,-3294.29C8201.16,-3226.72 8277.65,-2480.72 8263,-2380.21 8247.37,-2273.01 8280.62,-2214.44 8197,-2145.57 8120.93,-2082.93 7849.43,-2137.77 7755,-2109.57 7657.51,-2080.47 7632.89,-2064.27 7554,-2000.03 7421.8,-1892.4 7442.28,-1809.84 7306,-1707.42 7115.62,-1564.34 7043.01,-1563.38 6817,-1488.34 6724.79,-1457.72 6613.35,-1436.1 6548.98,-1425.04"/>
<polygon fill="#f91010" stroke="black" points="6549.51,-1421.58 6539.06,-1423.36 6548.33,-1428.48 6549.51,-1421.58"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_repository_update_handler -->
<g id="edge413" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_repository_update_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4173.61,-3481.63C4295.38,-3477.98 4610.79,-3455.56 4829,-3324.28 4912.19,-3274.23 4914.72,-3237.4 4971,-3158.3 4992.95,-3127.45 4981.68,-3104.48 5014,-3084.76 5127.98,-3015.2 7321.51,-3051.08 7414,-2954.77 7593.22,-2768.16 7312.03,-2031.23 7167,-1816.96 7087.33,-1699.24 7060.14,-1663.39 6934,-1597.88 6844.59,-1551.44 6727.63,-1535.05 6654.65,-1529.26"/>
<polygon fill="#f91010" stroke="black" points="6654.89,-1525.77 6644.66,-1528.51 6654.37,-1532.75 6654.89,-1525.77"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_sign_gpg -->
<g id="edge414" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_sign_gpg</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4134,-3388.27C4105.01,-3238.34 4693.14,-3388.31 4815,-3296.29"/>
<path fill="none" stroke="black" d="M4815,-3294.29C4835.07,-3279.13 4854.8,-3215.7 4868,-3194.3 4888.54,-3160.99 4909.4,-3160.46 4919,-3122.53"/>
<path fill="none" stroke="black" d="M4919,-3120.53C4924.59,-3069.67 4866.47,-3083.59 4829,-3048.76 4759.27,-2983.94 4685.5,-2900.32 4645.38,-2853.38"/>
<polygon fill="#f91010" stroke="black" points="4647.91,-2850.95 4638.76,-2845.61 4642.58,-2855.49 4647.91,-2850.95"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_spawn -->
<g id="edge415" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_spawn</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4094.2,-3468.29C4084.37,-3463.67 4073.27,-3458.6 4063,-3454.26 4021.4,-3436.7 4004.95,-3444.21 3968,-3418.26 3954.59,-3408.85 3959.71,-3394.92 3944,-3390.27"/>
<path fill="none" stroke="black" d="M3944,-3388.27C3915.01,-3379.69 3911.42,-3367.23 3882,-3360.28 3490.24,-3267.76 3371.38,-3404.91 2977,-3324.28 2781.16,-3284.24 2718.91,-3278.23 2559,-3158.3 2377.03,-3021.82 2327.95,-2898.42 2383,-2677.71 2405.9,-2585.9 2416.83,-2557.39 2483,-2489.75 2506.9,-2465.31 2540.91,-2446.77 2567.87,-2434.66"/>
<polygon fill="#f91010" stroke="black" points="2569.31,-2437.85 2577.08,-2430.65 2566.52,-2431.44 2569.31,-2437.85"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_status_client -->
<g id="edge416" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_status_client</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7783,-3294.29C7839.86,-3243.35 7783,-3198.86 7783,-3122.53 7783,-3122.53 7783,-3122.53 7783,-2924.78 7783,-2833.18 7719.87,-2824.48 7645,-2771.7 7555.42,-2708.54 7523.13,-2705.08 7417,-2677.71 7348.78,-2660.12 7157.91,-2684.59 7102,-2641.71 6913.86,-2497.44 7094.22,-2289.74 6906,-2145.57 6849.54,-2102.33 6655.72,-2131.29 6588,-2109.57 6502.98,-2082.31 6414.27,-2025.99 6365.29,-1992.04"/>
<polygon fill="#f91010" stroke="black" points="6367.1,-1989.04 6356.9,-1986.17 6363.09,-1994.77 6367.1,-1989.04"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_status_watcher -->
<g id="edge417" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_status_watcher</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1789,-2815.24C1670.08,-2489.47 1531.84,-2447.98 1456,-2109.57 1448.85,-2077.68 1441.53,-2065.34 1456,-2036.03 1467.65,-2012.44 1482.55,-2016.59 1503,-2000.03 1542.09,-1968.39 1542.37,-1945.34 1589,-1926.5 1711.61,-1876.95 2072.18,-1962.66 2183,-1890.5 2213.83,-1870.42 2194.54,-1842.52 2221,-1816.96 2247.88,-1790.99 2264.91,-1800.11 2297,-1780.96 2414.94,-1710.55 2432.35,-1675.03 2546,-1597.88 2671.77,-1512.51 2706.44,-1496.07 2836,-1416.57"/>
<path fill="none" stroke="black" d="M2836,-1414.57C2865.95,-1393.78 3461.63,-1284.05 3471,-1248.82"/>
<path fill="none" stroke="black" d="M3471,-1247.82C3474.09,-1228.75 3461.32,-1212.42 3446.2,-1200.18"/>
<polygon fill="#f91010" stroke="black" points="3448.26,-1197.35 3438.16,-1194.16 3444.06,-1202.95 3448.26,-1197.35"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_status_web_client -->
<g id="edge418" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_status_web_client</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2573,-3120.53C2514.46,-3057.38 2573,-3012.89 2573,-2926.78 2573,-2926.78 2573,-2926.78 2573,-2705.7 2573,-2609.13 2534.23,-2563.13 2597,-2489.75 2636.53,-2443.54 2692.09,-2502.07 2729,-2453.75 2748.84,-2427.77 2729.45,-2412.89 2729,-2380.21 2727.13,-2243.97 2664.09,-2187.62 2739,-2073.8"/>
<path fill="none" stroke="black" d="M2739,-2071.8C2767.25,-2008.14 2850.79,-2033.88 2853,-1964.27"/>
<path fill="none" stroke="black" d="M2853,-1962.27C2853.64,-1942.1 2853.03,-1919.81 2852.11,-1900.77"/>
<polygon fill="#f91010" stroke="black" points="2855.59,-1900.37 2851.57,-1890.57 2848.6,-1900.74 2855.59,-1900.37"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_tree -->
<g id="edge419" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_tree</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8163,-3120.53C8154.22,-3033.22 8125,-3014.53 8125,-2926.78 8125,-2926.78 8125,-2926.78 8125,-2815.24 8125,-2683.54 8103,-2651.44 8103,-2519.74 8103,-2519.74 8103,-2519.74 8103,-2415.98 8103,-2355.87 8151.66,-2188.91 8110,-2145.57 8074.82,-2108.98 7246.93,-2118.71 7197,-2109.57 7095.59,-2091.02 7077.75,-2057.9 6977,-2036.03 6827.64,-2003.62 6785.1,-2028.86 6635,-2000.03 6516.65,-1977.3 6492.98,-1945.67 6374,-1926.5 6022.62,-1869.86 5925.44,-1946.75 5574,-1890.5 5545.57,-1885.94 5514.43,-1877.33 5489.99,-1869.69"/>
<polygon fill="#f91010" stroke="black" points="5490.89,-1866.31 5480.29,-1866.61 5488.76,-1872.98 5490.89,-1866.31"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_upload_github -->
<g id="edge420" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_upload_github</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2131,-3018.77C2096.41,-2868.64 2097.9,-2829.04 2069,-2677.71 2068.65,-2675.91 2016.79,-2419.81 2017,-2417.98"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_upload_rsync -->
<g id="edge421" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_upload_rsync</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2283,-3018.77C2222.71,-2708.81 2369.73,-2615.71 2297,-2308.44"/>
<path fill="none" stroke="black" d="M2297,-2306.44C2285.31,-2256.15 2295.09,-2241.31 2283,-2191.12"/>
<path fill="none" stroke="black" d="M2283,-2189.12C2268.34,-2128.27 2261.09,-2056.2 2257.7,-2010.37"/>
<polygon fill="#f91010" stroke="black" points="2261.17,-2009.88 2256.97,-2000.15 2254.19,-2010.37 2261.17,-2009.88"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_upload_s3 -->
<g id="edge422" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_upload_s3</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2283,-3211.3C2213.63,-3162.73 2301.39,-3103.42 2283,-3020.77"/>
<path fill="none" stroke="black" d="M2283,-3018.77C2278.71,-2989.53 2271.48,-2983.6 2265,-2954.77 2215.46,-2734.41 2199.25,-2678.79 2180,-2453.75 2165.61,-2285.5 2197.98,-2241.6 2179,-2073.8"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_upload_upload -->
<g id="edge423" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_upload_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4096.86,-3467.7C4086.59,-3462.63 4074.53,-3457.42 4063,-3454.26 3492.71,-3298.16 3321.92,-3423.32 2739,-3324.28 2636.18,-3306.81 2372.17,-3267.39 2283,-3213.3"/>
<path fill="none" stroke="black" d="M2283,-3211.3C2272.07,-3204.12 2270.48,-3200.54 2259,-3194.3 2221.16,-3173.7 2197.73,-3190.4 2169,-3158.3 2126.71,-3111.04 2147.81,-3081.91 2131,-3020.77"/>
<path fill="none" stroke="black" d="M2131,-3018.77C2120.36,-2989.6 2112.65,-2984.28 2103,-2954.77 2089.69,-2914.1 2090.74,-2902.69 2082,-2860.79 2044.35,-2680.39 2035.11,-2635.21 2003,-2453.75 1982.4,-2337.35 1894.47,-2288.83 1961,-2191.12"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_util -->
<g id="edge424" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_util</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4134,-3388.27C4130.89,-3372.18 4124.14,-3368.57 4110,-3360.28 4064.73,-3333.73 3916.82,-3311.92 3839.72,-3302.02"/>
<polygon fill="#f91010" stroke="black" points="3840.14,-3298.55 3829.78,-3300.76 3839.26,-3305.49 3840.14,-3298.55"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge425" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_middlewares_auth_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4097.57,-3467.49C4087.2,-3462.25 4074.88,-3456.99 4063,-3454.26 3930.87,-3423.93 1745.17,-3477.03 1623,-3418.26 1595.28,-3404.93 1294.17,-3011.01 1271,-2990.77 1211.17,-2938.53 1193.06,-2925.48 1119,-2896.79 1038.04,-2865.43 1006.64,-2895.37 927,-2860.79 719.93,-2770.88 643.28,-2741.23 527,-2547.73 414.86,-2361.11 403,-2291.53 403,-2073.8 403,-2073.8 403,-2073.8 403,-1852.73 403,-1500.54 286.6,-1418.27 304,-1066.51"/>
<path fill="none" stroke="black" d="M304,-1064.51C300.19,-955.6 413.04,-956.29 418,-847.43"/>
<path fill="none" stroke="black" d="M418,-845.43C417.79,-822.55 417.77,-797.11 417.81,-775.96"/>
<polygon fill="#f91010" stroke="black" points="421.31,-775.96 417.83,-765.96 414.31,-775.95 421.31,-775.96"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_base -->
<g id="edge426" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_views_base</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1827,-3120.53C1780.38,-3064.6 1775.11,-3045.42 1727,-2990.77 1673.93,-2930.5 1517.78,-2800.97 1471,-2735.7 1326.5,-2534.06 1281.12,-2476.31 1225,-2234.67 1205.01,-2148.61 1182.7,-2108.67 1233,-2036.03 1254.74,-2004.65 1281.99,-2024.86 1311,-2000.03 1340.84,-1974.5 1328.79,-1950.34 1360,-1926.5 1400.21,-1895.78 1426.8,-1919.86 1468,-1890.5 1517.96,-1854.89 1516.35,-1830.88 1552,-1780.96 1676.68,-1606.36 1685.71,-1546.92 1819,-1378.8 1882.29,-1298.98 1912.52,-1291.49 1976,-1211.82 1987.93,-1196.84 1988.32,-1191.21 2000,-1176.05"/>
<path fill="none" stroke="black" d="M2000,-1174.05C2008.41,-1159.19 2005.18,-1152.9 2014,-1138.28 2035.77,-1102.18 2062.96,-1106.59 2076,-1066.51"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_index -->
<g id="edge427" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_views_index</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4097.57,-3467.51C4087.2,-3462.27 4074.87,-3457 4063,-3454.26 3835.83,-3401.83 2191.79,-3472.31 1965,-3418.26 1843.96,-3389.41 1797.6,-3387.53 1713,-3296.29"/>
<path fill="none" stroke="black" d="M1713,-3294.29C1588.89,-3181.58 1615.09,-3101.27 1489,-2990.77 1463.87,-2968.75 1451.03,-2972.96 1423,-2954.77 1387.36,-2931.65 1383.74,-2918.13 1347,-2896.79 1311.52,-2876.19 1293.03,-2887.63 1262,-2860.79 1101.94,-2722.38 1078.69,-2655.55 1015,-2453.75 944.36,-2229.92 952.74,-2158.98 985,-1926.5 1005.86,-1776.15 1017.09,-1736.91 1078,-1597.88 1151.02,-1431.2 1230.07,-1419.93 1292,-1248.82 1342.39,-1109.61 1271.83,-1050.61 1340,-919.2 1350.71,-898.55 1365,-902.5 1378,-883.2 1387.54,-869.04 1383.31,-862.12 1392,-847.43"/>
<path fill="none" stroke="black" d="M1392,-845.43C1401.21,-828.65 1402.75,-823.48 1416,-809.66 1434.7,-790.15 1444.17,-790.87 1465,-773.66 1469.18,-770.21 1473.47,-766.49 1477.68,-762.73"/>
<polygon fill="#f91010" stroke="black" points="1480.07,-765.29 1485.13,-755.98 1475.37,-760.1 1480.07,-765.29"/>
</g>
<!-- ahriman_web_views_service_add -->
<g id="node130" class="node">
<title>ahriman_web_views_service_add</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="309" cy="-729.11" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="309" y="-748.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="309" y="-737.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="309" y="-726.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="309" y="-715.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">service.</text>
<text text-anchor="middle" x="309" y="-704.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">add</text>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_service_add -->
<g id="edge428" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_views_service_add</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1447,-3388.27C1435.59,-3381.58 1317.89,-3204.09 1309,-3194.3 1173.33,-3044.91 1149.04,-2981.75 966,-2896.79 871.75,-2853.05 827.01,-2909.07 735,-2860.79 514.23,-2744.94 477.68,-2667.29 349,-2453.75 250.38,-2290.08 250,-1962.49 250,-1854.73 250,-1854.73 250,-1854.73 250,-1524.11 250,-1335.21 215.59,-1290.36 198,-1102.28 193.46,-1053.71 192.56,-1041.5 191,-992.74 189.96,-960.07 183.29,-950.96 191,-919.2 199.46,-884.32 209.94,-878.44 228,-847.43"/>
<path fill="none" stroke="black" d="M228,-845.43C241.03,-818.63 260.01,-791.22 276.31,-769.85"/>
<polygon fill="#f91010" stroke="black" points="279.29,-771.72 282.65,-761.68 273.76,-767.44 279.29,-771.72"/>
</g>
<!-- ahriman_web_views_service_remove -->
<g id="node131" class="node">
<title>ahriman_web_views_service_remove</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="1700" cy="-729.11" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="1700" y="-748.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1700" y="-737.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="1700" y="-726.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="1700" y="-715.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">service.</text>
<text text-anchor="middle" x="1700" y="-704.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">remove</text>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_service_remove -->
<g id="edge429" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_views_service_remove</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1713,-3294.29C1667.55,-3235.77 1630.46,-3039.91 1575,-2990.77 1535.23,-2955.54 1503.35,-2986.86 1461,-2954.77 1436.44,-2936.17 1446.57,-2916.64 1423,-2896.79 1392.24,-2870.89 1369.37,-2888.26 1340,-2860.79 1226.6,-2754.74 1240.36,-2692.78 1185,-2547.73 1169.36,-2506.77 1162.83,-2496.89 1155,-2453.75 1137.59,-2357.82 1146.83,-2332.12 1144,-2234.67 1141.43,-2146.42 1125.23,-2122.51 1143,-2036.03 1153.66,-1984.14 1166.97,-1974.2 1190,-1926.5 1280.44,-1739.14 1583.12,-1304.01 1634,-1102.28 1661.74,-992.29 1601.54,-959.35 1620,-847.43"/>
</g>
<!-- ahriman_web_views_service_request -->
<g id="node132" class="node">
<title>ahriman_web_views_service_request</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="966" cy="-729.11" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="966" y="-748.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="966" y="-737.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="966" y="-726.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="966" y="-715.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">service.</text>
<text text-anchor="middle" x="966" y="-704.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">request</text>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_service_request -->
<g id="edge430" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_views_service_request</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1637,-3388.27C1589.35,-3353.3 1610.44,-3319.16 1584,-3266.3 1543.29,-3184.9 1423.71,-2996.03 1418,-2990.77 1391.98,-2966.8 1375.55,-2975.66 1347,-2954.77 1317.83,-2933.44 1321.05,-2915.28 1290,-2896.79 1240.33,-2867.21 1217.7,-2884.55 1165,-2860.79 1097.76,-2830.48 1088.86,-2808.59 1025,-2771.7 924.33,-2713.54 886.13,-2717.54 798,-2641.71 720.81,-2575.3 700.8,-2549.8 667,-2453.75 513.58,-2017.78 592,-1878.74 592,-1416.57 592,-1416.57 592,-1416.57 592,-1312.81 592,-1182.45 600.18,-1141.84 665,-1028.74 732.79,-910.47 860.01,-807.04 925.21,-758.87"/>
<polygon fill="#f91010" stroke="black" points="927.6,-761.46 933.6,-752.72 923.47,-755.81 927.6,-761.46"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_service_search -->
<g id="edge431" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_views_service_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4097.56,-3467.53C4087.19,-3462.3 4074.87,-3457.03 4063,-3454.26 3881.92,-3412.05 2575.34,-3433.05 2390,-3418.26 2299.65,-3411.05 2270.97,-3426.75 2188,-3390.27"/>
<path fill="none" stroke="black" d="M2188,-3388.27C2123.31,-3359.83 1995.19,-3179.16 1978,-3158.3 1968.74,-3147.06 1820.73,-2967.11 1813,-2954.77 1765.23,-2878.62 1778.67,-2845.26 1727,-2771.7 1714,-2753.18 1704.12,-2754.13 1691,-2735.7 1578.84,-2578.13 1576.49,-2522.27 1501,-2344.21 1446.63,-2215.97 1409.94,-2171.1 1444,-2036.03 1457.52,-1982.42 1457.04,-1957.25 1503,-1926.5 1632.59,-1839.77 1716.28,-1967.27 1852,-1890.5 2268.86,-1654.69 2186.08,-1391.32 2499,-1028.74 2528.32,-994.77 2558.8,-1000.42 2570,-956.97"/>
<path fill="none" stroke="black" d="M2570,-954.97C2586.65,-882.93 2550.07,-851.34 2489,-809.66 2391.19,-742.9 2332.07,-824.25 2225,-773.66 2220.93,-771.74 2216.97,-769.33 2213.19,-766.65"/>
<polygon fill="#f91010" stroke="black" points="2215.26,-763.82 2205.23,-760.41 2210.94,-769.33 2215.26,-763.82"/>
</g>
<!-- ahriman_web_views_status_ahriman -->
<g id="node135" class="node">
<title>ahriman_web_views_status_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#822b2b" stroke="black" cx="1990" cy="-729.11" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="1990" y="-748.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1990" y="-737.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="1990" y="-726.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="1990" y="-715.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status.</text>
<text text-anchor="middle" x="1990" y="-704.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman</text>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_status_ahriman -->
<g id="edge432" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_views_status_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2188,-3388.27C2183.67,-3386.12 1791.03,-2821.63 1789,-2817.24"/>
<path fill="none" stroke="black" d="M1789,-2815.24C1776.85,-2796.26 1776.73,-2789.58 1763,-2771.7 1749.41,-2754 1741.75,-2753.27 1728,-2735.7 1687.58,-2684.05 1434.03,-2297.72 1416,-2234.67 1378.34,-2102.95 1343.12,-2037.8 1423,-1926.5 1448.12,-1891.5 1478.1,-1915.75 1513,-1890.5 1616.06,-1815.93 1988.87,-1352.57 2060,-1211.82 2118.96,-1095.14 2119.21,-1046.63 2090,-919.2 2077.48,-864.58 2044.97,-808.65 2020.39,-771.94"/>
<polygon fill="#f91010" stroke="black" points="2023.17,-769.79 2014.65,-763.49 2017.38,-773.72 2023.17,-769.79"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_status_package -->
<g id="edge433" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_views_status_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4097.57,-3467.52C4087.2,-3462.28 4074.87,-3457.01 4063,-3454.26 3858.5,-3406.86 2383.24,-3435.21 2174,-3418.26 2086.73,-3411.19 2059.11,-3425.61 1979,-3390.27"/>
<path fill="none" stroke="black" d="M1979,-3388.27C1759.28,-3291.35 1810.34,-3127.63 1613,-2990.77 1572.81,-2962.9 1549.2,-2982.65 1509,-2954.77 1481.51,-2935.71 1482.73,-2922.23 1461,-2896.79 1399.01,-2824.22 1369.16,-2816.9 1319,-2735.7 1175.56,-2503.49 1139.05,-2418.34 1149,-2145.57 1150.78,-2096.79 1137.66,-2080.85 1157,-2036.03 1165.6,-2016.11 1175.43,-2016.12 1190,-2000.03 1233.85,-1951.62 1249.02,-1942.91 1288,-1890.5 1413.03,-1722.36 1368.97,-1617.44 1534,-1488.34 1575.85,-1455.6 1609.77,-1489.24 1648,-1452.34 1748.11,-1355.69 1850.8,-931.9 1884.52,-782.48"/>
<polygon fill="#f91010" stroke="black" points="1887.96,-783.15 1886.73,-772.62 1881.13,-781.61 1887.96,-783.15"/>
</g>
<!-- ahriman_web_views_status_packages -->
<g id="node137" class="node">
<title>ahriman_web_views_status_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="1798" cy="-729.11" rx="41.94" ry="44.6"/>
<text text-anchor="middle" x="1798" y="-748.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1798" y="-737.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="1798" y="-726.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="1798" y="-715.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status.</text>
<text text-anchor="middle" x="1798" y="-704.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">packages</text>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_status_packages -->
<g id="edge434" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_views_status_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1219,-2415.98C1175.85,-2343.27 1164.6,-2113.27 1199,-2036.03 1208.73,-2014.19 1222.49,-2017.34 1239,-2000.03 1456.06,-1772.48 1515.85,-1716.17 1687,-1452.34 1750.58,-1354.34 1770.84,-1326.52 1793,-1211.82 1822.57,-1058.78 1811.73,-873.26 1803.65,-783.67"/>
<polygon fill="#f91010" stroke="black" points="1807.12,-783.12 1802.71,-773.49 1800.15,-783.77 1807.12,-783.12"/>
</g>
<!-- ahriman_web_views_status_status -->
<g id="node138" class="node">
<title>ahriman_web_views_status_status</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="2084" cy="-729.11" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="2084" y="-748.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2084" y="-737.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="2084" y="-726.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="2084" y="-715.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status.</text>
<text text-anchor="middle" x="2084" y="-704.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status</text>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_status_status -->
<g id="edge435" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_views_status_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1979,-3388.27C1924.71,-3360.88 1944.97,-3320.29 1917,-3266.3 1900.36,-3234.17 1898.11,-3225.02 1879,-3194.3 1858.2,-3160.85 1852.29,-3152.73 1827,-3122.53"/>
<path fill="none" stroke="black" d="M1827,-3120.53C1823.58,-3113.97 1598.09,-2648.43 1595,-2641.71 1534.64,-2510.65 1517.03,-2478.8 1465,-2344.21 1446.47,-2296.28 1436.33,-2285.38 1428,-2234.67 1413.68,-2147.56 1419.65,-2123.92 1428,-2036.03 1432.69,-1986.69 1413.11,-1960.69 1449,-1926.5 1531.56,-1847.86 1603.52,-1946.21 1703,-1890.5 1860.66,-1802.2 2159.65,-1228.65 2166,-1211.82 2212.33,-1089.13 2240.59,-1045.14 2204,-919.2 2187.21,-861.41 2146.85,-804.37 2117.56,-768.31"/>
<polygon fill="#f91010" stroke="black" points="2120.18,-765.98 2111.12,-760.49 2114.78,-770.44 2120.18,-765.98"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_user_login -->
<g id="edge436" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_views_user_login</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4097.57,-3467.5C4087.2,-3462.26 4074.87,-3456.99 4063,-3454.26 3816.52,-3397.55 2038.65,-3443.55 1787,-3418.26 1719.52,-3411.48 1692.5,-3429.24 1637,-3390.27"/>
<path fill="none" stroke="black" d="M1637,-3388.27C1553.65,-3329.75 1582.4,-3270.64 1515,-3194.3 1498.28,-3175.35 1486.88,-3177.95 1471,-3158.3 1418.4,-3093.2 1443.43,-3050.69 1385,-2990.77 1361.67,-2966.85 1347.55,-2972.13 1319,-2954.77 1279.61,-2930.83 1275.08,-2915.62 1233,-2896.79 1173.57,-2870.2 1151.23,-2885.52 1091,-2860.79 1046.54,-2842.53 755.22,-2672.12 718,-2641.71 614.48,-2557.15 517,-2551.65 517,-2417.98 517,-2417.98 517,-2417.98 517,-2189.12 517,-2032.1 631,-2011.75 631,-1854.73 631,-1854.73 631,-1854.73 631,-1633.65 631,-1410.7 576.31,-1316.69 710,-1138.28 732.17,-1108.69 763.32,-1132.23 785,-1102.28 823.2,-1049.52 766.48,-1010.21 804,-956.97"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge437" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_views_user_logout</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1979,-3388.27C1919.97,-3360.58 1864.3,-3249.12 1737,-3084.76 1704.28,-3042.51 1699.79,-3028.56 1662,-2990.77 1596.47,-2925.27 1560.84,-2929.79 1499,-2860.79 1343.59,-2687.39 1346.39,-2612.89 1219,-2417.98"/>
<path fill="none" stroke="black" d="M1219,-2415.98C1137.07,-2300.39 1145.56,-2250.51 1131,-2109.57 1114.27,-1947.61 1169,-1908.02 1169,-1745.19 1169,-1745.19 1169,-1745.19 1169,-1633.65 1169,-1584.34 1366.37,-1292.09 1390,-1248.82 1425.17,-1184.43 1448.13,-1173.43 1466,-1102.28 1481.74,-1039.64 1495.79,-1015.27 1468,-956.97"/>
</g>
<!-- ahriman_models_action -->
<g id="node99" class="node">
<title>ahriman_models_action</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#e72222" stroke="black" cx="8383" cy="-846.43" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="8383" y="-854.93" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8383" y="-843.93" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="8383" y="-832.93" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">action</text>
</g>
<!-- ahriman_models_action&#45;&gt;ahriman_application_ahriman -->
<g id="edge438" class="edge">
<title>ahriman_models_action&#45;&gt;ahriman_application_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8331,-728.11C8311.38,-662.1 8319.61,-634.11 8355,-575.03 8368.09,-553.16 8715.74,-323.44 8721,-298.5"/>
</g>
<!-- ahriman_models_action&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge439" class="edge">
<title>ahriman_models_action&#45;&gt;ahriman_application_handlers_patch</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8388.01,-817.28C8392.38,-793.81 8399.24,-759.58 8407,-730.11"/>
<path fill="none" stroke="black" d="M8407,-728.11C8420.74,-675.93 8349.66,-663.17 8369,-612.8"/>
<path fill="none" stroke="black" d="M8369,-610.8C8396.93,-538.04 8454.24,-561.06 8529,-539.03 8548.02,-533.42 8568.74,-526.82 8587.01,-520.82"/>
<polygon fill="#e72222" stroke="black" points="8588.2,-524.11 8596.6,-517.65 8586.01,-517.47 8588.2,-524.11"/>
</g>
<!-- ahriman_models_action&#45;&gt;ahriman_application_handlers_status_update -->
<g id="edge440" class="edge">
<title>ahriman_models_action&#45;&gt;ahriman_application_handlers_status_update</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8407,-728.11C8433.4,-627.86 8492.7,-625.95 8583,-575.03 8628.54,-549.34 8647.05,-559.88 8695,-539.03 8699.77,-536.95 8704.64,-534.63 8709.46,-532.19"/>
<polygon fill="#e72222" stroke="black" points="8711.4,-535.13 8718.64,-527.4 8708.16,-528.93 8711.4,-535.13"/>
</g>
<!-- ahriman_models_action&#45;&gt;ahriman_application_handlers_user -->
<g id="edge441" class="edge">
<title>ahriman_models_action&#45;&gt;ahriman_application_handlers_user</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8368.7,-819.19C8356.84,-796.31 8340.45,-761.9 8331,-730.11"/>
<path fill="none" stroke="black" d="M8331,-728.11C8315.63,-676.39 8293.85,-666.75 8293,-612.8"/>
<path fill="none" stroke="black" d="M8293,-610.8C8292.62,-586.96 8302.68,-562.6 8313.79,-543.11"/>
<polygon fill="#e72222" stroke="black" points="8316.8,-544.9 8318.93,-534.52 8310.79,-541.3 8316.8,-544.9"/>
</g>
<!-- ahriman_models_aur_package&#45;&gt;ahriman_application_handlers_search -->
<g id="edge442" class="edge">
<title>ahriman_models_aur_package&#45;&gt;ahriman_application_handlers_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7681,-2517.74C7552.07,-1996.21 7871.18,-1871.78 7965,-1342.8 8006.58,-1108.38 8050.23,-1004.21 7913,-809.66 7892.61,-780.75 7861.81,-802.98 7842,-773.66 7801.82,-714.19 7799.82,-678.8 7828,-612.8"/>
<path fill="none" stroke="black" d="M7828,-610.8C7834.76,-595.12 7829.31,-586.45 7842,-575.03 7898.58,-524.08 7988.09,-508.87 8046.18,-504.57"/>
<polygon fill="#db0505" stroke="black" points="8046.54,-508.06 8056.29,-503.91 8046.08,-501.07 8046.54,-508.06"/>
</g>
<!-- ahriman_models_aur_package&#45;&gt;ahriman_core_alpm_remote_aur -->
<g id="edge443" class="edge">
<title>ahriman_models_aur_package&#45;&gt;ahriman_core_alpm_remote_aur</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5029.65,-3107.18C5002.08,-3099.41 4965.77,-3090.11 4933,-3084.76 4724.06,-3050.6 4667.68,-3078.06 4458,-3048.76 4033.9,-2989.48 3529.87,-2867.7 3375.35,-2829.19"/>
<polygon fill="#db0505" stroke="black" points="3375.81,-2825.7 3365.26,-2826.67 3374.11,-2832.49 3375.81,-2825.7"/>
</g>
<!-- ahriman_models_aur_package&#45;&gt;ahriman_core_alpm_remote_official -->
<g id="edge444" class="edge">
<title>ahriman_models_aur_package&#45;&gt;ahriman_core_alpm_remote_official</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5028.88,-3107.75C5001.35,-3100.28 4965.34,-3091.11 4933,-3084.76 4820.26,-3062.6 4789.36,-3072.78 4677,-3048.76 4529.96,-3017.32 4494.84,-3001.74 4352,-2954.77 4281.34,-2931.54 4267.29,-2914.31 4195,-2896.79 4067.06,-2865.78 4027.29,-2897.96 3901,-2860.79 3885.15,-2856.13 3868.65,-2848.91 3854.17,-2841.69"/>
<polygon fill="#db0505" stroke="black" points="3855.47,-2838.42 3844.98,-2836.97 3852.28,-2844.65 3855.47,-2838.42"/>
</g>
<!-- ahriman_models_aur_package&#45;&gt;ahriman_core_alpm_remote_remote -->
<g id="edge445" class="edge">
<title>ahriman_models_aur_package&#45;&gt;ahriman_core_alpm_remote_remote</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5030.02,-3106.9C5002.44,-3098.98 4965.98,-3089.62 4933,-3084.76 4575.18,-3032.01 4478.94,-3093.25 4120,-3048.76 3913.78,-3023.2 3864.69,-3000.55 3662,-2954.77 3491.88,-2916.35 3434.51,-2943.57 3281,-2860.79 3277.09,-2858.69 3273.26,-2856.18 3269.58,-2853.45"/>
<polygon fill="#db0505" stroke="black" points="3271.77,-2850.71 3261.78,-2847.17 3267.38,-2856.17 3271.77,-2850.71"/>
</g>
<!-- ahriman_models_aur_package&#45;&gt;ahriman_core_formatters_aur_printer -->
<g id="edge446" class="edge">
<title>ahriman_models_aur_package&#45;&gt;ahriman_core_formatters_aur_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5124.97,-3120.06C5464.12,-3116.81 7388.93,-3096.35 7645,-3048.76 7768.27,-3025.84 7794.41,-3000.89 7911,-2954.77 8241.15,-2824.18 8452.34,-2850.65 8581,-2519.74"/>
<path fill="none" stroke="black" d="M8581,-2517.74C8589.43,-2489.87 8591.87,-2482.69 8595,-2453.75 8603.19,-2378.02 8595.6,-2289.43 8589.33,-2236.92"/>
<polygon fill="#db0505" stroke="black" points="8592.79,-2236.41 8588.1,-2226.91 8585.84,-2237.26 8592.79,-2236.41"/>
</g>
<!-- ahriman_models_aur_package&#45;&gt;ahriman_web_views_service_search -->
<g id="edge447" class="edge">
<title>ahriman_models_aur_package&#45;&gt;ahriman_web_views_service_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5125.25,-3119.62C5428.12,-3113.88 6986.12,-3078.67 7446,-2954.77 7540.44,-2929.33 7588.38,-2940.55 7645,-2860.79 7733.24,-2736.51 7719.49,-2667.22 7681,-2519.74"/>
<path fill="none" stroke="black" d="M7681,-2517.74C7617.91,-2355.21 7500.42,-2310.48 7557,-2145.57 7563.58,-2126.4 7575.33,-2127.39 7585,-2109.57 7609.59,-2064.29 7611.75,-2050.32 7623,-2000.03 7637.51,-1935.18 7788.84,-856.81 7742,-809.66 7687.99,-755.3 2296.25,-801.86 2225,-773.66 2220.81,-772 2216.78,-769.78 2212.95,-767.22"/>
<polygon fill="#db0505" stroke="black" points="2215,-764.38 2204.91,-761.14 2210.77,-769.96 2215,-764.38"/>
</g>
<!-- ahriman_models_auth_settings&#45;&gt;ahriman_core_auth_auth -->
<g id="edge448" class="edge">
<title>ahriman_models_auth_settings&#45;&gt;ahriman_core_auth_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3911.02,-2165.61C3899.81,-2157.82 3886.44,-2150 3873,-2145.57 3621.81,-2062.77 3533.99,-2179.79 3279,-2109.57 3146.1,-2072.98 3091.49,-2071.6 3005,-1964.27"/>
</g>
<!-- ahriman_models_auth_settings&#45;&gt;ahriman_core_auth_mapping -->
<g id="edge449" class="edge">
<title>ahriman_models_auth_settings&#45;&gt;ahriman_core_auth_mapping</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3911.06,-2165.5C3899.85,-2157.69 3886.47,-2149.9 3873,-2145.57 3703.77,-2091.24 3231.35,-2192.23 3074,-2109.57 3019.93,-2081.17 3026.48,-2049.76 2991,-2000.03 2979.88,-1984.45 2979.79,-1978.51 2967,-1964.27"/>
<path fill="none" stroke="black" d="M2967,-1962.27C2917.89,-1911.34 2956.63,-1861.91 2902,-1816.96 2847.05,-1771.75 2809.93,-1812.21 2746,-1780.96 2743.08,-1779.53 2740.18,-1777.88 2737.35,-1776.08"/>
<polygon fill="#c82323" stroke="black" points="2739.3,-1773.17 2729.09,-1770.33 2735.3,-1778.92 2739.3,-1773.17"/>
</g>
<!-- ahriman_models_auth_settings&#45;&gt;ahriman_core_auth_oauth -->
<g id="edge450" class="edge">
<title>ahriman_models_auth_settings&#45;&gt;ahriman_core_auth_oauth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3911.01,-2165.64C3899.8,-2157.85 3886.43,-2150.03 3873,-2145.57 3635.85,-2066.93 3548.76,-2189.37 3312,-2109.57 3291.15,-2102.55 3162.9,-2015.24 3147,-2000.03 3103.43,-1958.37 3097.28,-1942.62 3067,-1890.5 3049,-1859.52 3061.58,-1839.82 3034,-1816.96 2981.22,-1773.2 2944.9,-1812.45 2884,-1780.96 2839.93,-1758.16 2839.48,-1737.47 2800,-1707.42 2778.23,-1690.85 2752.75,-1673.94 2731.9,-1660.7"/>
<polygon fill="#c82323" stroke="black" points="2733.6,-1657.63 2723.27,-1655.26 2729.86,-1663.56 2733.6,-1657.63"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_application_ahriman -->
<g id="edge451" class="edge">
<title>ahriman_models_build_status&#45;&gt;ahriman_application_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6365,-2189.12C6403.14,-2054.04 6571.8,-2183.79 6659,-2073.8"/>
<path fill="none" stroke="black" d="M6659,-2071.8C6669.61,-2058.43 6652.14,-2051.54 6645,-2036.03 6552.61,-1835.53 6517.69,-1791.15 6411,-1597.88 6347.79,-1483.38 6158,-1197.29 6158,-1066.51 6158,-1066.51 6158,-1066.51 6158,-954.97 6158,-756.18 6211.59,-654.05 6394,-575.03 6853.6,-375.93 8215.76,-548.86 8626,-261.5 8640.74,-251.18 8633.03,-239.18 8645,-225.74"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_application_handlers_status -->
<g id="edge452" class="edge">
<title>ahriman_models_build_status&#45;&gt;ahriman_application_handlers_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6659,-2071.8C6677.8,-2052.12 6770.03,-1621.81 6783,-1597.88 6900.13,-1381.78 7333.75,-908.04 7559,-809.66 7680.59,-756.55 8024.35,-796.84 8155,-773.66 8345.94,-739.79 8389.02,-709.85 8573,-648.57 8662.85,-618.63 8682.13,-601.7 8773,-575.03 8843.77,-554.25 8867,-567.59 8935,-539.03 8939.13,-537.29 8943.29,-535.25 8947.37,-533.03"/>
<polygon fill="#e50505" stroke="black" points="8949.24,-535.99 8956.13,-527.94 8945.73,-529.93 8949.24,-535.99"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_application_lock -->
<g id="edge453" class="edge">
<title>ahriman_models_build_status&#45;&gt;ahriman_application_lock</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6421,-2306.44C6404.75,-2234.69 6406.18,-2195.73 6460,-2145.57 6530.24,-2080.12 6591.95,-2161.05 6673,-2109.57 6723.02,-2077.81 6724.15,-2053.83 6749,-2000.03 6800.74,-1888.01 6825.18,-1742.33 6834.4,-1674.09"/>
<polygon fill="#e50505" stroke="black" points="6837.92,-1674.19 6835.75,-1663.81 6830.98,-1673.27 6837.92,-1674.19"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_core_database_data_package_statuses -->
<g id="edge454" class="edge">
<title>ahriman_models_build_status&#45;&gt;ahriman_core_database_data_package_statuses</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6464.87,-2505.71C6504.26,-2492.02 6558.23,-2465.2 6574,-2417.98"/>
<path fill="none" stroke="black" d="M6574,-2415.98C6593.25,-2358.35 6576.08,-2288.94 6559.27,-2242.63"/>
<polygon fill="#e50505" stroke="black" points="6562.49,-2241.24 6555.7,-2233.11 6555.94,-2243.7 6562.49,-2241.24"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_core_database_operations_package_operations -->
<g id="edge455" class="edge">
<title>ahriman_models_build_status&#45;&gt;ahriman_core_database_operations_package_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6395.06,-2493.98C6357.77,-2461.51 6285.4,-2404.51 6212,-2380.21 6079.72,-2336.41 5703.31,-2419.4 5586,-2344.21 5570.84,-2334.49 5584.83,-2310.94 5567,-2308.44"/>
<path fill="none" stroke="black" d="M5567,-2306.44C5548.04,-2303.8 5559.79,-2279.86 5543,-2270.67 5461.84,-2226.25 3969.86,-2245.71 3878,-2234.67 3837.79,-2229.84 3793.71,-2220.49 3757.46,-2211.68"/>
<polygon fill="#e50505" stroke="black" points="3758.01,-2208.21 3747.46,-2209.22 3756.33,-2215.01 3758.01,-2208.21"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_core_formatters_package_printer -->
<g id="edge456" class="edge">
<title>ahriman_models_build_status&#45;&gt;ahriman_core_formatters_package_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6469.68,-2516.61C6634.01,-2512.51 7183.23,-2496.28 7635,-2453.75 7994.92,-2419.86 8083.24,-2396.15 8441,-2344.21 8756.54,-2298.4 8851.02,-2345.47 9150,-2234.67 9157.55,-2231.87 9165.16,-2228.2 9172.44,-2224.18"/>
<polygon fill="#e50505" stroke="black" points="9174.58,-2226.98 9181.46,-2218.93 9171.06,-2220.93 9174.58,-2226.98"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_core_formatters_status_printer -->
<g id="edge457" class="edge">
<title>ahriman_models_build_status&#45;&gt;ahriman_core_formatters_status_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6469.73,-2515.45C6720.35,-2502.95 7888.46,-2435.98 8820,-2234.67 8847.49,-2228.73 8877.34,-2219.73 8902.3,-2211.45"/>
<polygon fill="#e50505" stroke="black" points="8903.6,-2214.7 8911.97,-2208.2 8901.37,-2208.07 8903.6,-2214.7"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_core_status_client -->
<g id="edge458" class="edge">
<title>ahriman_models_build_status&#45;&gt;ahriman_core_status_client</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6424.51,-2489.79C6426.21,-2469.55 6426.8,-2441.7 6421,-2417.98"/>
<path fill="none" stroke="black" d="M6421,-2415.98C6404.83,-2349.86 6199.51,-2257.84 6213,-2191.12"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_core_status_watcher -->
<g id="edge459" class="edge">
<title>ahriman_models_build_status&#45;&gt;ahriman_core_status_watcher</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6421,-2415.98C6410.15,-2369.43 6431.77,-2355 6421,-2308.44"/>
<path fill="none" stroke="black" d="M6421,-2306.44C6410.96,-2263.03 6367.79,-2275.94 6351,-2234.67 6336.08,-2197.99 6334.25,-2181.45 6351,-2145.57 6361.55,-2122.99 6382.44,-2131.65 6394,-2109.57 6431.8,-2037.38 6415.04,-2007.23 6404,-1926.5 6399.51,-1893.69 6398.13,-1884.67 6384,-1854.73"/>
<path fill="none" stroke="black" d="M6384,-1852.73C6365.06,-1801.57 6102.99,-1514.27 6055,-1488.34 5902.65,-1406.03 4686.39,-1273.54 4515,-1248.82"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_core_status_web_client -->
<g id="edge460" class="edge">
<title>ahriman_models_build_status&#45;&gt;ahriman_core_status_web_client</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5567,-2306.44C5548.03,-2303.8 5518.99,-2158.66 5505,-2145.57 5465.57,-2108.7 5433.1,-2140.7 5389,-2109.57 5339.31,-2074.51 5337.86,-2052.44 5307,-2000.03 5288.82,-1969.17 5303.92,-1946.19 5274,-1926.5 5219.84,-1890.84 3003.61,-1903.06 2940,-1890.5 2925.25,-1887.58 2909.82,-1882.4 2895.93,-1876.88"/>
<polygon fill="#e50505" stroke="black" points="2897.18,-1873.6 2886.6,-1873.02 2894.5,-1880.07 2897.18,-1873.6"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_models_counters -->
<g id="edge461" class="edge">
<title>ahriman_models_build_status&#45;&gt;ahriman_models_counters</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6383.23,-2500.36C6374.97,-2496.72 6366.23,-2493.01 6358,-2489.75 6312.92,-2471.89 6300.46,-2470.62 6255,-2453.75 6239.46,-2447.98 6222.55,-2441.41 6207.56,-2435.49"/>
<polygon fill="#e50505" stroke="black" points="6208.61,-2432.14 6198.02,-2431.71 6206.02,-2438.65 6208.61,-2432.14"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_web_views_status_ahriman -->
<g id="edge462" class="edge">
<title>ahriman_models_build_status&#45;&gt;ahriman_web_views_status_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6421,-2306.44C6412.04,-2250.17 6347.3,-2245.28 6365,-2191.12"/>
<path fill="none" stroke="black" d="M6365,-2189.12C6371.86,-2168.12 6376.39,-2163.72 6389,-2145.57 6401.05,-2128.23 6412.29,-2129.23 6420,-2109.57 6485.35,-1942.93 6461.45,-1874.8 6398,-1707.42 6355.99,-1596.6 6333.65,-1568.1 6246,-1488.34 6221.86,-1466.37 6209.48,-1469.95 6182,-1452.34 6075.22,-1383.91 6067.59,-1334.73 5951,-1284.82 5538.09,-1108.03 5393.77,-1207.08 4957,-1102.28 4845.62,-1075.55 4822.67,-1049.33 4710,-1028.74 3828.05,-867.53 3588.3,-988.94 2698,-883.2 2661.04,-878.81 2070.42,-790.04 2037,-773.66 2033.12,-771.76 2029.34,-769.44 2025.72,-766.86"/>
<polygon fill="#e50505" stroke="black" points="2027.59,-763.88 2017.56,-760.47 2023.27,-769.39 2027.59,-763.88"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_web_views_status_package -->
<g id="edge463" class="edge">
<title>ahriman_models_build_status&#45;&gt;ahriman_web_views_status_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6384,-1852.73C6325.67,-1658.4 6286.43,-1586.74 6109,-1488.34 5921.81,-1384.52 5849.65,-1422 5640,-1378.8 4585.09,-1161.44 4315.94,-1110.87 3242,-1028.74 3079.17,-1016.29 2664.3,-1040.05 2508,-992.74 2447.04,-974.29 2441.9,-947.82 2385,-919.2 2271.52,-862.11 2242.49,-846.77 2121,-809.66 2043.81,-786.08 2014.84,-810.46 1943,-773.66 1939.16,-771.69 1935.4,-769.32 1931.79,-766.71"/>
<polygon fill="#e50505" stroke="black" points="1933.67,-763.74 1923.66,-760.27 1929.33,-769.23 1933.67,-763.74"/>
</g>
<!-- ahriman_models_internal_status -->
<g id="node104" class="node">
<title>ahriman_models_internal_status</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c82323" stroke="black" cx="6146" cy="-2307.44" rx="56.64" ry="28.98"/>
<text text-anchor="middle" x="6146" y="-2315.94" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6146" y="-2304.94" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="6146" y="-2293.94" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">internal_status</text>
</g>
<!-- ahriman_models_counters&#45;&gt;ahriman_models_internal_status -->
<g id="edge464" class="edge">
<title>ahriman_models_counters&#45;&gt;ahriman_models_internal_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6159.32,-2388C6157.21,-2375.41 6154.69,-2360.34 6152.41,-2346.71"/>
<polygon fill="#a32828" stroke="black" points="6155.82,-2345.93 6150.72,-2336.65 6148.92,-2347.09 6155.82,-2345.93"/>
</g>
<!-- ahriman_models_counters&#45;&gt;ahriman_web_views_status_status -->
<g id="edge465" class="edge">
<title>ahriman_models_counters&#45;&gt;ahriman_web_views_status_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6136.26,-2396.3C6114.2,-2379.97 6086.06,-2357.36 6080,-2344.21 6066.32,-2314.53 6077.78,-2303.28 6080,-2270.67 6097.09,-2019.59 6183.32,-1954.96 6138,-1707.42 6135.66,-1694.62 6064.52,-1497.21 6055,-1488.34 6000.34,-1437.42 4836.29,-1130.2 4767,-1102.28 4700.71,-1075.56 4693.31,-1046.16 4624,-1028.74 4512.56,-1000.73 2654.57,-1051.8 2556,-992.74 2492.58,-954.74 2527.42,-899.57 2475,-847.43"/>
</g>
<!-- ahriman_models_internal_status&#45;&gt;ahriman_core_status_client -->
<g id="edge466" class="edge">
<title>ahriman_models_internal_status&#45;&gt;ahriman_core_status_client</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6175,-2189.12C6186.42,-2170.2 6181.77,-2159.42 6199,-2145.57 6243.06,-2110.16 6275.43,-2143.03 6321,-2109.57 6336.43,-2098.24 6338.01,-2091.63 6345,-2073.8"/>
<path fill="none" stroke="black" d="M6345,-2071.8C6352.98,-2051.45 6350.1,-2027.58 6344.53,-2007.5"/>
<polygon fill="#c82323" stroke="black" points="6347.8,-2006.22 6341.52,-1997.68 6341.1,-2008.27 6347.8,-2006.22"/>
</g>
<!-- ahriman_models_internal_status&#45;&gt;ahriman_core_status_web_client -->
<g id="edge467" class="edge">
<title>ahriman_models_internal_status&#45;&gt;ahriman_core_status_web_client</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6099.03,-2291.08C6007.28,-2261.3 5797.56,-2194.35 5619,-2145.57 5553.28,-2127.62 5528.43,-2144.61 5470,-2109.57 5376.57,-2053.54 5406.06,-1971.84 5307,-1926.5 5187.42,-1871.76 3069.03,-1915.96 2940,-1890.5 2925.25,-1887.58 2909.82,-1882.41 2895.93,-1876.88"/>
<polygon fill="#c82323" stroke="black" points="2897.18,-1873.61 2886.6,-1873.02 2894.5,-1880.08 2897.18,-1873.61"/>
</g>
<!-- ahriman_models_internal_status&#45;&gt;ahriman_web_views_status_status -->
<g id="edge468" class="edge">
<title>ahriman_models_internal_status&#45;&gt;ahriman_web_views_status_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6148.44,-2278.11C6151.6,-2253.6 6158.78,-2217.98 6175,-2191.12"/>
<path fill="none" stroke="black" d="M6175,-2189.12C6230.47,-2097.26 6235.79,-1811.33 6209,-1707.42 6181.23,-1599.71 6164.63,-1568.97 6088,-1488.34 6067.1,-1466.35 6052.11,-1473.12 6030,-1452.34 5963.45,-1389.8 5984.94,-1338.42 5911,-1284.82 5856.01,-1244.95 5750.77,-1202.83 5380,-1138.28 5194.12,-1105.91 5141.19,-1143.2 4957,-1102.28 4864.55,-1081.74 4849.23,-1050.25 4757,-1028.74 3860.79,-819.67 3614.98,-887.52 2698,-809.66 2572.2,-798.98 2247.02,-823.45 2131,-773.66 2126.86,-771.89 2122.86,-769.58 2119.05,-766.97"/>
<polygon fill="#c82323" stroke="black" points="2121.11,-764.13 2111.05,-760.81 2116.84,-769.68 2121.11,-764.13"/>
</g>
<!-- ahriman_models_migration -->
<g id="node105" class="node">
<title>ahriman_models_migration</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c24747" stroke="black" cx="3409" cy="-2518.74" rx="39.7" ry="28.98"/>
<text text-anchor="middle" x="3409" y="-2527.24" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3409" y="-2516.24" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="3409" y="-2505.24" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">migration</text>
</g>
<!-- ahriman_models_migration&#45;&gt;ahriman_core_database_migrations -->
<g id="edge469" class="edge">
<title>ahriman_models_migration&#45;&gt;ahriman_core_database_migrations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3397.84,-2490.57C3382.58,-2451.21 3356.67,-2375.67 3353,-2308.44"/>
</g>
<!-- ahriman_models_migration_result&#45;&gt;ahriman_core_database_data -->
<g id="edge470" class="edge">
<title>ahriman_models_migration_result&#45;&gt;ahriman_core_database_data</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7859,-3294.29C7896.43,-3249 8079.02,-2875.45 8087,-2817.24"/>
<path fill="none" stroke="black" d="M8087,-2815.24C8079.84,-2722.07 8003.61,-2704.2 8027,-2613.72"/>
</g>
<!-- ahriman_models_migration_result&#45;&gt;ahriman_core_database_migrations -->
<g id="edge471" class="edge">
<title>ahriman_models_migration_result&#45;&gt;ahriman_core_database_migrations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5162.85,-3388.28C5538.3,-3388.13 7532.61,-3384.49 7797,-3324.28 7826.48,-3317.57 7844.28,-3322.7 7859,-3296.29"/>
<path fill="none" stroke="black" d="M7859,-3294.29C8015.24,-3013.95 5277.09,-3172.59 4981,-3048.76 4807.75,-2976.3 4817.77,-2876.58 4662,-2771.7 4585.5,-2720.19 4561.85,-2713.84 4477,-2677.71 4062.19,-2501.1 3915.87,-2558.11 3519,-2344.21 3458.91,-2311.82 3398.88,-2260.07 3362.34,-2225.83"/>
<polygon fill="#bc2f2f" stroke="black" points="3364.58,-2223.14 3354.91,-2218.81 3359.77,-2228.22 3364.58,-2223.14"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_application_application_packages -->
<g id="edge472" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_application_application_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5731.71,-2510.24C5765.39,-2501.68 5814.78,-2484.68 5847,-2453.75 5911.85,-2391.49 5881.46,-2344.33 5933,-2270.67 5990.86,-2187.99 6036.66,-2193.29 6093,-2109.57 6142.38,-2036.2 6120.99,-1999.45 6171,-1926.5 6183.97,-1907.57 6196.59,-1910.4 6208,-1890.5 6324.43,-1687.27 6210.62,-1577.88 6334,-1378.8 6368.05,-1323.86 6391.74,-1321.44 6445,-1284.82 6637.47,-1152.47 6888.37,-1029.16 6992.93,-979.75"/>
<polygon fill="#950303" stroke="black" points="6994.44,-982.91 7001.99,-975.48 6991.45,-976.57 6994.44,-982.91"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_application_application_repository -->
<g id="edge473" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_application_application_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5732.17,-2511.5C5790.26,-2500.38 5904.24,-2472.97 5985,-2417.98"/>
<path fill="none" stroke="black" d="M5985,-2415.98C6041.82,-2377.29 6008.41,-2332.72 6038,-2270.67 6068.25,-2207.23 6455.83,-1529.76 6518,-1488.34 6862.51,-1258.81 7043.66,-1468.76 7438,-1342.8 7551.2,-1306.64 7647.9,-1294.88 7647,-1176.05"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge474" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_application_handlers_patch</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5757,-2306.44C5769.77,-2256.8 5736.97,-2238.3 5757,-2191.12"/>
<path fill="none" stroke="black" d="M5757,-2189.12C5764.94,-2170.41 5758.61,-2161.69 5771,-2145.57 5789.03,-2122.11 5812.82,-2135.54 5827,-2109.57 5842.66,-2080.89 5831.36,-2068.43 5827,-2036.03 5800.35,-1838.08 5690.64,-1794.28 5727,-1597.88 5778.72,-1318.53 5793.83,-1203.26 6018,-1028.74 6135.29,-937.43 6190.84,-959.2 6334,-919.2 6812.93,-785.37 6935.97,-756.6 7428,-684.57 7627.4,-655.37 7685.94,-702.91 7880,-648.57 7949.96,-628.97 7956.2,-595.21 8026,-575.03 8185.57,-528.88 8233.13,-559.23 8398,-539.03 8461.69,-531.22 8534.53,-520.11 8583.31,-512.34"/>
<polygon fill="#950303" stroke="black" points="8584.02,-515.78 8593.34,-510.74 8582.91,-508.86 8584.02,-515.78"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_application_handlers_status -->
<g id="edge475" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_application_handlers_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5715.83,-2494.19C5726.1,-2482.29 5738.51,-2467.5 5749,-2453.75 5774.21,-2420.71 5933.59,-2176.81 5961,-2145.57 5976.78,-2127.6 5985.8,-2128.04 6001,-2109.57 6073.08,-2021.97 6098.82,-1998.98 6132,-1890.5 6244.21,-1523.62 5970.08,-1348.54 6182,-1028.74 6235.84,-947.49 6278.86,-947.93 6372,-919.2 6575.16,-856.54 6637.55,-905.32 6849,-883.2 7213.81,-845.04 7304.49,-829.58 7667,-773.66 7986.27,-724.41 8072.07,-736.21 8383,-648.57 8468.56,-624.45 8482.6,-595.92 8569,-575.03 8727.87,-536.61 8780.76,-593.12 8935,-539.03 8939.47,-537.46 8943.93,-535.46 8948.28,-533.21"/>
<polygon fill="#950303" stroke="black" points="8950.01,-536.25 8957,-528.29 8946.57,-530.15 8950.01,-536.25"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge476" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_build_tools_task</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5995,-1962.27C5988.38,-1942.42 5989.43,-1919.45 5992.72,-1899.85"/>
<polygon fill="#950303" stroke="black" points="5996.18,-1900.42 5994.62,-1889.94 5989.3,-1899.1 5996.18,-1900.42"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_database_data_package_statuses -->
<g id="edge477" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_database_data_package_statuses</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5732.39,-2511.64C5790.16,-2501.82 5904.37,-2480.83 5999,-2453.75 6043.58,-2440.99 6051.37,-2426.23 6097,-2417.98"/>
<path fill="none" stroke="black" d="M6097,-2415.98C6114.71,-2412.78 6101.97,-2391.49 6116,-2380.21 6162.38,-2342.9 6189.67,-2366.15 6245,-2344.21 6329.35,-2310.76 6421.2,-2260.04 6478.92,-2226.26"/>
<polygon fill="#950303" stroke="black" points="6481.03,-2229.07 6487.88,-2220.99 6477.49,-2223.04 6481.03,-2229.07"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_database_operations_build_operations -->
<g id="edge478" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_database_operations_build_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5656.56,-2516.48C5532.42,-2512.08 5131.23,-2495.37 4802,-2453.75 4667.1,-2436.69 3728.68,-2272.25 3598,-2234.67 3582.27,-2230.15 3565.68,-2224.17 3550.32,-2218.11"/>
<polygon fill="#950303" stroke="black" points="3551.51,-2214.81 3540.93,-2214.33 3548.9,-2221.31 3551.51,-2214.81"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_database_operations_package_operations -->
<g id="edge479" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_database_operations_package_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5657.36,-2513.71C5575.53,-2504.75 5375.38,-2481.74 5209,-2453.75 4892.23,-2400.46 4812.35,-2387.48 4501,-2308.44"/>
<path fill="none" stroke="black" d="M4501,-2306.44C4469.71,-2300.68 4469.5,-2279.72 4439,-2270.67 4153.12,-2185.83 4057.44,-2310.35 3769,-2234.67 3760.28,-2232.38 3751.41,-2229.18 3742.82,-2225.54"/>
<polygon fill="#950303" stroke="black" points="3744.19,-2222.32 3733.63,-2221.45 3741.34,-2228.72 3744.19,-2222.32"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_formatters_build_printer -->
<g id="edge480" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_formatters_build_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5678.06,-2492.41C5665.08,-2472.54 5647.05,-2443.99 5633,-2417.98"/>
<path fill="none" stroke="black" d="M5633,-2415.98C5610.3,-2373.95 5584.33,-2380.27 5553,-2344.21 5540.44,-2329.76 5539.57,-2324.4 5529,-2308.44"/>
<path fill="none" stroke="black" d="M5529,-2306.44C5508.44,-2275.38 5478.58,-2245.75 5454.45,-2224.3"/>
<polygon fill="#950303" stroke="black" points="5456.66,-2221.59 5446.83,-2217.63 5452.05,-2226.85 5456.66,-2221.59"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_formatters_package_printer -->
<g id="edge481" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_formatters_package_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7913,-2306.44C8050.26,-2295.81 9018.77,-2276.31 9150,-2234.67 9158.04,-2232.12 9166.09,-2228.43 9173.72,-2224.27"/>
<polygon fill="#950303" stroke="black" points="9175.55,-2227.25 9182.45,-2219.21 9172.04,-2221.2 9175.55,-2227.25"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_formatters_update_printer -->
<g id="edge482" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_formatters_update_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6097,-2415.98C6114.72,-2412.8 6100.73,-2389.75 6116,-2380.21 6165.55,-2349.26 7108.63,-2346.61 7167,-2344.21 7498.66,-2330.58 7582.05,-2334.07 7913,-2308.44"/>
<path fill="none" stroke="black" d="M7913,-2306.44C8159.22,-2287.37 8788.45,-2314.94 9022,-2234.67 9029.33,-2232.15 9036.6,-2228.56 9043.47,-2224.5"/>
<polygon fill="#950303" stroke="black" points="9045.35,-2227.46 9051.94,-2219.16 9041.61,-2221.54 9045.35,-2227.46"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_report_console -->
<g id="edge483" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_report_console</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5529,-2306.44C5499.21,-2261.44 5533.48,-2224.4 5491,-2191.12"/>
<path fill="none" stroke="black" d="M5491,-2189.12C5474.38,-2176.1 5488.69,-2158.5 5472,-2145.57 5391.94,-2083.56 5332.3,-2164.16 5247,-2109.57 5230.87,-2099.26 5231.78,-2090.82 5223,-2073.8"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_report_email -->
<g id="edge484" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_report_email</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5529,-2306.44C5489.1,-2246.16 5542.91,-2207.12 5505,-2145.57 5490.45,-2121.95 5470.11,-2132.17 5454,-2109.57 5385.53,-2013.54 5436.06,-1958.5 5380,-1854.73"/>
<path fill="none" stroke="black" d="M5380,-1852.73C5368.25,-1832.89 5358.22,-1809.33 5350.72,-1789.33"/>
<polygon fill="#950303" stroke="black" points="5353.96,-1788.01 5347.24,-1779.82 5347.39,-1790.42 5353.96,-1788.01"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_report_html -->
<g id="edge485" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_report_html</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5259,-2306.44C5183.67,-2215.26 5146.31,-2209.82 5047,-2145.57 5018.95,-2127.42 5006.09,-2131.65 4981,-2109.57 4860.43,-2003.49 4874.15,-1938.34 4769,-1816.96 4757.05,-1803.16 4742.88,-1788.97 4730.15,-1776.88"/>
<polygon fill="#950303" stroke="black" points="4732.54,-1774.32 4722.85,-1770.03 4727.74,-1779.42 4732.54,-1774.32"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_report_report -->
<g id="edge486" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_report_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5337,-2415.98C5292.01,-2373.83 5312.23,-2194.71 5275,-2145.57 5254.82,-2118.94 5236.29,-2128.86 5209,-2109.57 5130.02,-2053.75 5008.96,-2053.19 5047,-1964.27"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_repository_executor -->
<g id="edge487" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_repository_executor</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5757,-2306.44C5770.23,-2261.23 5803.21,-2269.43 5835,-2234.67 5929.24,-2131.62 6039.16,-2096.74 5995,-1964.27"/>
<path fill="none" stroke="black" d="M5995,-1962.27C5991.73,-1924.52 5961.87,-1926.13 5949,-1890.5 5926.89,-1829.29 5911.91,-1807.4 5931,-1745.19"/>
<path fill="none" stroke="black" d="M5931,-1743.19C5936.04,-1725.9 5936.31,-1719.1 5950,-1707.42 5998.44,-1666.08 6074.9,-1699.32 6074,-1635.65"/>
<path fill="none" stroke="black" d="M6074,-1633.65C6073.6,-1605.48 6056.33,-1579.12 6038.8,-1559.54"/>
<polygon fill="#950303" stroke="black" points="6041.24,-1557.02 6031.85,-1552.11 6036.13,-1561.8 6041.24,-1557.02"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_repository_repository -->
<g id="edge488" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_repository_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5757,-2189.12C5765.33,-2170.58 5756.31,-2159.62 5771,-2145.57 5814.95,-2103.55 5865.61,-2157.53 5903,-2109.57 5909.87,-2100.76 5910.63,-1718.58 5911,-1707.42 5912.6,-1658.71 5907.8,-1645.92 5916,-1597.88 5924.56,-1547.76 5909.33,-1520.15 5949,-1488.34 6034.01,-1420.18 6334.34,-1485.9 6438,-1452.34 6443.55,-1450.54 6449.12,-1448.11 6454.49,-1445.35"/>
<polygon fill="#950303" stroke="black" points="6456.25,-1448.38 6463.3,-1440.46 6452.85,-1442.26 6456.25,-1448.38"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_repository_update_handler -->
<g id="edge489" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_repository_update_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5985,-2415.98C6048.78,-2372.55 6032.66,-2331.6 6080,-2270.67 6093.32,-2253.53 6100.42,-2252.36 6113,-2234.67 6139.06,-2198.01 6127.81,-2175.93 6161,-2145.57 6190.97,-2118.16 6219.54,-2141.22 6245,-2109.57 6296.92,-2045.02 6238.44,-1998.16 6280,-1926.5 6292.33,-1905.23 6305.78,-1908.98 6322,-1890.5 6347.74,-1861.16 6341.33,-1843.44 6370,-1816.96 6394.54,-1794.28 6411.99,-1804.19 6436,-1780.96 6499.51,-1719.49 6545.44,-1625.43 6568.71,-1570.43"/>
<polygon fill="#950303" stroke="black" points="6572.04,-1571.53 6572.65,-1560.95 6565.58,-1568.84 6572.04,-1571.53"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_status_client -->
<g id="edge490" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_status_client</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5985,-2415.98C6023.33,-2389.88 6038.86,-2394.4 6083,-2380.21 6139.67,-2361.99 6165.62,-2381.51 6212,-2344.21 6226.03,-2332.93 6224.9,-2325.38 6231,-2308.44"/>
<path fill="none" stroke="black" d="M6231,-2306.44C6248.57,-2257.63 6203.25,-2242.07 6213,-2191.12"/>
<path fill="none" stroke="black" d="M6213,-2189.12C6217.15,-2167.42 6220.62,-2160.41 6237,-2145.57 6267.1,-2118.31 6289.74,-2135.5 6321,-2109.57 6335.74,-2097.35 6338.01,-2091.63 6345,-2073.8"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_status_watcher -->
<g id="edge491" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_status_watcher</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5656.65,-2516.98C5585.63,-2513.62 5432.18,-2497.02 5337,-2417.98"/>
<path fill="none" stroke="black" d="M5337,-2415.98C5291.58,-2378.26 5297.54,-2353.17 5259,-2308.44"/>
<path fill="none" stroke="black" d="M5259,-2306.44C5194.07,-2231.08 5132.76,-2285.08 5047,-2234.67 4975.63,-2192.72 4962.43,-2172.81 4909,-2109.57 4834.43,-2021.31 4823.91,-1992.17 4769,-1890.5 4751.98,-1858.98 4761.75,-1841.86 4736,-1816.96 4705.62,-1787.58 4682.66,-1805.13 4648,-1780.96 4576.19,-1730.88 4515,-1723.2 4515,-1635.65 4515,-1635.65 4515,-1635.65 4515,-1414.57 4515,-1377.74 4551.44,-1254.17 4515,-1248.82"/>
<path fill="none" stroke="black" d="M4515,-1247.82C4282.16,-1214.23 3680.43,-1285.43 3457,-1211.82 3451.99,-1210.17 3447.03,-1207.87 3442.27,-1205.23"/>
<polygon fill="#950303" stroke="black" points="3443.77,-1202.05 3433.41,-1199.82 3440.11,-1208.02 3443.77,-1202.05"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_status_web_client -->
<g id="edge492" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_status_web_client</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5223,-2415.98C4957.49,-2357.92 4897.98,-2309.65 4629,-2270.67 4546.32,-2258.69 3947.67,-2280.77 3878,-2234.67 3841.33,-2210.41 3871.72,-2169.76 3835,-2145.57 3758.37,-2095.11 3094.68,-2144.9 3010,-2109.57 2922.25,-2072.97 2849.26,-2059.27 2853,-1964.27"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_tree -->
<g id="edge493" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_tree</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5707.32,-2491.04C5724.33,-2451.94 5753.34,-2376.37 5757,-2308.44"/>
<path fill="none" stroke="black" d="M5757,-2306.44C5761.95,-2274.32 5748.14,-2266.76 5743,-2234.67 5735.96,-2190.74 5747.26,-2069.55 5718,-2036.03 5677.16,-1989.26 5633.97,-2035.5 5583,-2000.03 5550.14,-1977.17 5558.07,-1955.99 5531,-1926.5 5515.88,-1910.02 5497.04,-1893.76 5480.95,-1880.9"/>
<polygon fill="#950303" stroke="black" points="5482.84,-1877.93 5472.81,-1874.49 5478.51,-1883.43 5482.84,-1877.93"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_upload_github -->
<g id="edge494" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_upload_github</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5656.56,-2517.8C5463.62,-2517.81 4581.68,-2514.39 3863,-2453.75 3133.75,-2392.22 2952.06,-2359.84 2231,-2234.67 2176.78,-2225.26 2115.04,-2211.67 2073.82,-2202.19"/>
<polygon fill="#950303" stroke="black" points="2074.59,-2198.77 2064.06,-2199.93 2073.01,-2205.59 2074.59,-2198.77"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_upload_rsync -->
<g id="edge495" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_upload_rsync</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5657.32,-2513.45C5589.62,-2505.26 5443.26,-2485.35 5323,-2453.75 5277.35,-2441.75 5269.02,-2428.47 5223,-2417.98"/>
<path fill="none" stroke="black" d="M5223,-2415.98C5134.53,-2395.82 5111.77,-2393.45 5022,-2380.21 4886.09,-2360.16 4848.62,-2376.14 4715,-2344.21 4622.89,-2322.2 4607.76,-2289.76 4515,-2270.67 4441.98,-2255.64 3907.96,-2274.6 3845,-2234.67 3807.02,-2210.58 3835.14,-2169.42 3797,-2145.57 3713.83,-2093.58 3009.04,-2137.44 2915,-2109.57 2853.57,-2091.37 2851.79,-2056.29 2791,-2036.03 2650.19,-1989.11 2605.95,-2020.86 2459,-2000.03 2405.18,-1992.41 2343.77,-1981.31 2302.52,-1973.51"/>
<polygon fill="#950303" stroke="black" points="2302.96,-1970.03 2292.48,-1971.6 2301.65,-1976.9 2302.96,-1970.03"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_upload_s3 -->
<g id="edge496" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_upload_s3</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4501,-2306.44C4423.67,-2292.2 3859.17,-2282.8 3797,-2234.67 3763.61,-2208.82 3798.21,-2170.33 3764,-2145.57 3720.18,-2113.86 2844.76,-2115.58 2791,-2109.57 2528.99,-2080.28 2448.93,-2107.09 2208,-2000.03 2204.36,-1998.42 2200.75,-1996.47 2197.23,-1994.33"/>
<polygon fill="#950303" stroke="black" points="2199,-1991.3 2188.74,-1988.68 2195.12,-1997.13 2199,-1991.3"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_upload_upload -->
<g id="edge497" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_upload_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5656.81,-2517.72C5498.73,-2517.25 4880.22,-2511.6 4376,-2453.75 4105.82,-2422.75 4038.2,-2408.65 3774,-2344.21 3753.9,-2339.3 3433.38,-2248.52 3418,-2234.67 3386.01,-2205.86 3415.56,-2169.83 3380,-2145.57 3268.43,-2069.47 2293.37,-2151.56 2165,-2109.57 2159.99,-2107.93 2155.02,-2105.65 2150.26,-2103.01"/>
<polygon fill="#950303" stroke="black" points="2151.76,-2099.83 2141.4,-2097.6 2148.11,-2105.8 2151.76,-2099.83"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_models_counters -->
<g id="edge498" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_models_counters</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5733.15,-2517.39C5808.16,-2515.53 5979,-2505.43 6111,-2453.75 6117.32,-2451.27 6123.64,-2447.94 6129.61,-2444.3"/>
<polygon fill="#950303" stroke="black" points="6131.58,-2447.2 6138.05,-2438.81 6127.76,-2441.33 6131.58,-2447.2"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_models_result -->
<g id="edge499" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_models_result</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5633,-2415.98C5621.64,-2394.94 5621.64,-2368.05 5624.49,-2346.41"/>
<polygon fill="#950303" stroke="black" points="5627.99,-2346.69 5626.07,-2336.27 5621.07,-2345.61 5627.99,-2346.69"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_web_views_status_package -->
<g id="edge500" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_web_views_status_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5259,-2306.44C5197.82,-2238.95 5202.81,-2202.87 5132,-2145.57 5103.88,-2122.82 5085.74,-2133.93 5059,-2109.57 4726.58,-1806.79 4911.66,-1483.94 4529,-1247.82 4450.03,-1199.09 4205.23,-1221.99 4113,-1211.82 3931.03,-1191.75 2657.84,-1036.18 2480,-992.74 2410.24,-975.7 2241.68,-912.23 2176,-883.2 2112.08,-854.94 2100.64,-838.55 2037,-809.66 1996.26,-791.17 1980.99,-797.29 1943,-773.66 1939.23,-771.32 1935.5,-768.65 1931.88,-765.81"/>
<polygon fill="#950303" stroke="black" points="1934.09,-763.09 1924.16,-759.39 1929.61,-768.47 1934.09,-763.09"/>
</g>
<!-- ahriman_models_package_description&#45;&gt;ahriman_core_database_operations_package_operations -->
<g id="edge501" class="edge">
<title>ahriman_models_package_description&#45;&gt;ahriman_core_database_operations_package_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4369.49,-2912.36C4282.17,-2895.84 4138.75,-2867.89 4129,-2860.79 3945.96,-2727.48 3812.38,-2635 3877,-2417.98"/>
</g>
<!-- ahriman_models_package_description&#45;&gt;ahriman_models_package -->
<g id="edge502" class="edge">
<title>ahriman_models_package_description&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4490.11,-2905.71C4501.52,-2902.28 4513.56,-2899.07 4525,-2896.79 4703.54,-2861.28 4759.76,-2916.71 4933,-2860.79 5162.3,-2786.78 5174.76,-2671.91 5399,-2583.73 5483.01,-2550.7 5587.47,-2533.19 5647.17,-2525.24"/>
<polygon fill="#b42d2d" stroke="black" points="5647.96,-2528.67 5657.42,-2523.91 5647.06,-2521.73 5647.96,-2528.67"/>
</g>
<!-- ahriman_models_package_source&#45;&gt;ahriman_application_ahriman -->
<g id="edge503" class="edge">
<title>ahriman_models_package_source&#45;&gt;ahriman_application_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7153,-2189.12C7201.3,-1943.53 7387.66,-1978.77 7541,-1780.96 7874.75,-1350.4 7773.18,-1128.44 8089,-684.57 8164.91,-577.87 8178.11,-539.69 8286,-465.49 8328.66,-436.15 8708.99,-348.87 8721,-298.5"/>
<path fill="none" stroke="black" d="M8721,-297.5C8722.71,-251.08 8614.02,-260.36 8645,-225.74"/>
</g>
<!-- ahriman_models_package_source&#45;&gt;ahriman_application_application_packages -->
<g id="edge504" class="edge">
<title>ahriman_models_package_source&#45;&gt;ahriman_application_application_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7153,-1852.73C7106.34,-1657.87 7334.88,-1605.08 7267,-1416.57"/>
<path fill="none" stroke="black" d="M7267,-1414.57C7240.91,-1365.44 7226.79,-1218.64 7191,-1176.05"/>
<path fill="none" stroke="black" d="M7191,-1174.05C7151.67,-1131.39 7158.54,-1107.01 7117,-1066.51"/>
<path fill="none" stroke="black" d="M7117,-1064.51C7104.11,-1051.94 7107.8,-1043.84 7098,-1028.74 7090.67,-1017.43 7082.01,-1005.7 7073.72,-995.07"/>
<polygon fill="#e50505" stroke="black" points="7076.43,-992.86 7067.48,-987.19 7070.94,-997.2 7076.43,-992.86"/>
</g>
<!-- ahriman_models_package_source&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge505" class="edge">
<title>ahriman_models_package_source&#45;&gt;ahriman_application_handlers_patch</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7153,-2306.44C7200.28,-2031.53 7430.65,-2092.51 7623,-1890.5 7635.36,-1877.51 8424.06,-900.11 8430,-883.2 8440.72,-852.67 8424.94,-695.39 8421,-684.57 8407.51,-647.56 8354.88,-649.57 8369,-612.8"/>
</g>
<!-- ahriman_models_package_source&#45;&gt;ahriman_core_repository_repository -->
<g id="edge506" class="edge">
<title>ahriman_models_package_source&#45;&gt;ahriman_core_repository_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7167.5,-2583.59C7157.81,-2529.9 7139.91,-2409.17 7153,-2308.44"/>
<path fill="none" stroke="black" d="M7153,-2306.44C7161.69,-2255.93 7145.01,-2241.75 7153,-2191.12"/>
<path fill="none" stroke="black" d="M7153,-2189.12C7176.18,-2042.32 7197.39,-1996.56 7153,-1854.73"/>
<path fill="none" stroke="black" d="M7153,-1852.73C7093.91,-1715.57 7054.96,-1685.46 6934,-1597.88 6809.6,-1507.81 6633.83,-1452.71 6547.68,-1429.46"/>
<polygon fill="#e50505" stroke="black" points="6548.44,-1426.04 6537.87,-1426.85 6546.63,-1432.8 6548.44,-1426.04"/>
</g>
<!-- ahriman_models_package_source&#45;&gt;ahriman_core_repository_update_handler -->
<g id="edge507" class="edge">
<title>ahriman_models_package_source&#45;&gt;ahriman_core_repository_update_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7159.77,-2584.06C7154.74,-2572.93 7149.22,-2559.87 7145,-2547.73 7097.81,-2411.86 7097.69,-2374.26 7063,-2234.67 7027.7,-2092.64 7006.13,-1693.11 6895,-1597.88 6859.21,-1567.21 6733.12,-1545.46 6653.5,-1534.42"/>
<polygon fill="#e50505" stroke="black" points="6653.93,-1530.95 6643.55,-1533.06 6652.98,-1537.88 6653.93,-1530.95"/>
</g>
<!-- ahriman_models_package_source&#45;&gt;ahriman_core_spawn -->
<g id="edge508" class="edge">
<title>ahriman_models_package_source&#45;&gt;ahriman_core_spawn</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7111.46,-2607.91C7006.97,-2601.61 6788.19,-2589.2 6603,-2583.73 6502.96,-2580.78 3089.17,-2593.18 3000,-2547.73 2971.42,-2533.16 2984.73,-2505.89 2957,-2489.75 2843.24,-2423.51 2786.1,-2500.39 2663,-2453.75 2656.88,-2451.43 2650.79,-2448.25 2645.04,-2444.73"/>
<polygon fill="#e50505" stroke="black" points="2646.62,-2441.57 2636.34,-2439 2642.77,-2447.42 2646.62,-2441.57"/>
</g>
<!-- ahriman_models_package_source&#45;&gt;ahriman_models_package -->
<g id="edge509" class="edge">
<title>ahriman_models_package_source&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7111.83,-2606.69C7036.76,-2600.64 6905.59,-2590.46 6793,-2583.73 6444.81,-2562.92 6357.02,-2571.22 6009,-2547.73 5914.54,-2541.35 5804.36,-2530.81 5742.84,-2524.65"/>
<polygon fill="#e50505" stroke="black" points="5742.96,-2521.14 5732.66,-2523.62 5742.26,-2528.11 5742.96,-2521.14"/>
</g>
<!-- ahriman_models_property -->
<g id="node110" class="node">
<title>ahriman_models_property</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f91010" stroke="black" cx="9309" cy="-2706.7" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="9309" y="-2715.2" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9309" y="-2704.2" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="9309" y="-2693.2" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">property</text>
</g>
<!-- ahriman_models_property&#45;&gt;ahriman_core_formatters_aur_printer -->
<g id="edge510" class="edge">
<title>ahriman_models_property&#45;&gt;ahriman_core_formatters_aur_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9309,-2517.74C9299.13,-2474.51 9316.55,-2461.67 9309,-2417.98"/>
<path fill="none" stroke="black" d="M9309,-2415.98C9293.14,-2324.15 9199.65,-2375.85 9112,-2344.21 9046.26,-2320.47 9039.51,-2292.15 8973,-2270.67 8862.41,-2234.95 8827.17,-2261.11 8714,-2234.67 8687.03,-2228.37 8657.71,-2218.88 8633.66,-2210.37"/>
<polygon fill="#f91010" stroke="black" points="8634.63,-2207 8624.04,-2206.92 8632.27,-2213.59 8634.63,-2207"/>
</g>
<!-- ahriman_models_property&#45;&gt;ahriman_core_formatters_configuration_printer -->
<g id="edge511" class="edge">
<title>ahriman_models_property&#45;&gt;ahriman_core_formatters_configuration_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9309,-2415.98C9297.55,-2336.42 9415.03,-2397.73 9475,-2344.21 9508.1,-2314.67 9531.9,-2269.61 9546.33,-2236.01"/>
<polygon fill="#f91010" stroke="black" points="9549.71,-2237 9550.34,-2226.42 9543.25,-2234.3 9549.71,-2237"/>
</g>
<!-- ahriman_models_property&#45;&gt;ahriman_core_formatters_package_printer -->
<g id="edge512" class="edge">
<title>ahriman_models_property&#45;&gt;ahriman_core_formatters_package_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9309,-2415.98C9300.65,-2351.38 9316.9,-2329.98 9290,-2270.67 9283.01,-2255.27 9272.02,-2240.67 9260.8,-2228.29"/>
<polygon fill="#f91010" stroke="black" points="9263.22,-2225.75 9253.81,-2220.87 9258.12,-2230.55 9263.22,-2225.75"/>
</g>
<!-- ahriman_models_property&#45;&gt;ahriman_core_formatters_printer -->
<g id="edge513" class="edge">
<title>ahriman_models_property&#45;&gt;ahriman_core_formatters_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9312.22,-2677.68C9315.7,-2641.01 9319.46,-2574.93 9309,-2519.74"/>
<path fill="none" stroke="black" d="M9309,-2517.74C9303.12,-2491.98 9285.42,-2468.62 9268.16,-2450.98"/>
<polygon fill="#f91010" stroke="black" points="9270.41,-2448.29 9260.83,-2443.78 9265.51,-2453.29 9270.41,-2448.29"/>
</g>
<!-- ahriman_models_property&#45;&gt;ahriman_core_formatters_update_printer -->
<g id="edge514" class="edge">
<title>ahriman_models_property&#45;&gt;ahriman_core_formatters_update_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9309,-2415.98C9299.39,-2346.32 9222.23,-2388.97 9168,-2344.21 9134.03,-2316.17 9112.13,-2270.29 9099.58,-2236.05"/>
<polygon fill="#f91010" stroke="black" points="9102.76,-2234.55 9096.14,-2226.28 9096.16,-2236.87 9102.76,-2234.55"/>
</g>
<!-- ahriman_models_property&#45;&gt;ahriman_core_formatters_user_printer -->
<g id="edge515" class="edge">
<title>ahriman_models_property&#45;&gt;ahriman_core_formatters_user_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9309,-2415.98C9305.73,-2376.72 9345.98,-2380.62 9361,-2344.21 9375.1,-2310.02 9380.98,-2268.41 9383.4,-2237.21"/>
<polygon fill="#f91010" stroke="black" points="9386.9,-2237.26 9384.09,-2227.05 9379.92,-2236.78 9386.9,-2237.26"/>
</g>
<!-- ahriman_models_report_settings&#45;&gt;ahriman_core_report_report -->
<g id="edge516" class="edge">
<title>ahriman_models_report_settings&#45;&gt;ahriman_core_report_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8462.86,-3464.22C8472.08,-3460.7 8481.8,-3457.2 8491,-3454.26 8553.01,-3434.43 8571.93,-3440.82 8633,-3418.26 8721.37,-3385.62 8742.93,-3373.93 8823,-3324.28 8926.49,-3260.1 8955.33,-3244.84 9041,-3158.3 9225.42,-2971.98 9828.94,-2333.34 9646,-2145.57 9619.18,-2118.05 8301.36,-2111.93 8263,-2109.57 7421.1,-2057.88 7215.64,-1982.26 6374,-1926.5 5926.7,-1896.86 5809.66,-1954.73 5366,-1890.5 5334.51,-1885.94 5299.85,-1877.03 5273.02,-1869.24"/>
<polygon fill="#b03a3a" stroke="black" points="5273.73,-1865.8 5263.15,-1866.32 5271.74,-1872.51 5273.73,-1865.8"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_application_handlers_handler -->
<g id="edge517" class="edge">
<title>ahriman_models_repository_paths&#45;&gt;ahriman_application_handlers_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9076.92,-3480.74C9282.21,-3475.46 9924.16,-3456.06 10009,-3418.26 10160,-3351 10184.56,-3296.67 10275,-3158.3 10493.35,-2824.23 10565,-2707.54 10565,-2308.44 10565,-2308.44 10565,-2308.44 10565,-2189.12 10565,-2120.25 10565.86,-2100.26 10541,-2036.03 10513.03,-1963.77 10481.77,-1958.71 10445,-1890.5 10297.5,-1616.86 10327.05,-1515.5 10169,-1247.82 10158.69,-1230.36 10149.12,-1230.39 10141,-1211.82 10114.77,-1151.85 10139.89,-1127.83 10117,-1066.51"/>
<path fill="none" stroke="black" d="M10117,-1064.51C10112.11,-1055.17 9878.96,-782.36 9873,-773.66 9860.51,-755.43 9864.86,-745.5 9849,-730.11"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_application_handlers_setup -->
<g id="edge518" class="edge">
<title>ahriman_models_repository_paths&#45;&gt;ahriman_application_handlers_setup</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9077.05,-3481.15C9261.79,-3477.42 9792.84,-3462.88 9856,-3418.26 9959.19,-3345.36 9920.21,-3273.98 9971,-3158.3 10146.96,-2757.48 10261,-2669.31 10313,-2234.67 10317.7,-2195.35 10327.4,-2182.46 10313,-2145.57 10281.04,-2063.66 10233.97,-2068.66 10179,-2000.03 10141.96,-1953.79 10130.78,-1942.84 10103,-1890.5 9988.69,-1675.09 10021.72,-1592.9 9905,-1378.8 9819.67,-1222.27 9391.5,-903.49 9433,-730.11"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_alpm_repo -->
<g id="edge519" class="edge">
<title>ahriman_models_repository_paths&#45;&gt;ahriman_core_alpm_repo</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4891,-3388.27C4830.47,-3382.44 4873.09,-3308.18 4829,-3266.3 4787.02,-3226.42 4669.1,-3254.27 4710,-3213.3"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge520" class="edge">
<title>ahriman_models_repository_paths&#45;&gt;ahriman_core_build_tools_task</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9842,-3388.27C9901.43,-3332.92 9843,-3095.04 9843,-3020.77 9843,-3020.77 9843,-3020.77 9843,-2306.44 9843,-2234.15 9873.05,-2193.57 9819,-2145.57 9768.55,-2100.77 8671.91,-2118.31 8605,-2109.57 8462.87,-2091.01 8430.63,-2068.39 8291,-2036.03 8078.67,-1986.84 8029.3,-1953.27 7813,-1926.5 7436.02,-1879.83 6477.46,-1959.95 6104,-1890.5 6087.48,-1887.42 6070.07,-1881.95 6054.52,-1876.19"/>
<polygon fill="#e50505" stroke="black" points="6055.7,-1872.89 6045.11,-1872.58 6053.2,-1879.43 6055.7,-1872.89"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_configuration -->
<g id="edge521" class="edge">
<title>ahriman_models_repository_paths&#45;&gt;ahriman_core_configuration</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8968.4,-3463.07C8847.52,-3412.83 8508.03,-3275.65 8215,-3194.3 8014.16,-3138.54 7965.67,-3111.77 7759,-3084.76 7235.28,-3016.31 5518.86,-3019.18 5173.04,-3020.49"/>
<polygon fill="#e50505" stroke="black" points="5172.96,-3016.99 5162.97,-3020.53 5172.98,-3023.99 5172.96,-3016.99"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_database_data -->
<g id="edge522" class="edge">
<title>ahriman_models_repository_paths&#45;&gt;ahriman_core_database_data</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9075,-3294.29C8949.37,-2889.46 8648.83,-2979.36 8302,-2735.7 8185.4,-2653.78 8099.7,-2657.95 8065,-2519.74"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_database_data_package_statuses -->
<g id="edge523" class="edge">
<title>ahriman_models_repository_paths&#45;&gt;ahriman_core_database_data_package_statuses</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9034.28,-3455.53C9059.24,-3419.2 9095.92,-3352.31 9075,-3296.29"/>
<path fill="none" stroke="black" d="M9075,-3294.29C9051.17,-3222.39 9000.7,-3235.27 8937,-3194.3 8903.64,-3172.84 7730.64,-2507.17 7695,-2489.75 7466.74,-2378.17 7413.41,-2332.56 7167,-2270.67 7009.76,-2231.18 6964.75,-2255.73 6804,-2234.67 6739.03,-2226.16 6665.58,-2213.99 6612.19,-2204.68"/>
<polygon fill="#e50505" stroke="black" points="6612.57,-2201.19 6602.12,-2202.92 6611.37,-2208.09 6612.57,-2201.19"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_database_data_patches -->
<g id="edge524" class="edge">
<title>ahriman_models_repository_paths&#45;&gt;ahriman_core_database_data_patches</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9076.71,-3480C9260.96,-3472.75 9791,-3447.08 9842,-3390.27"/>
<path fill="none" stroke="black" d="M9842,-3388.27C9851.72,-3377.45 9763.26,-2476.5 9740.34,-2244.91"/>
<polygon fill="#e50505" stroke="black" points="9743.8,-2244.32 9739.33,-2234.71 9736.83,-2245.01 9743.8,-2244.32"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_util -->
<g id="edge525" class="edge">
<title>ahriman_models_repository_paths&#45;&gt;ahriman_core_util</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8968.7,-3462.91C8958.45,-3459.35 8947.5,-3456.16 8937,-3454.26 8827.19,-3434.41 5023.28,-3460.51 4920,-3418.26 4903.42,-3411.48 4908.83,-3391.99 4891,-3390.27"/>
<path fill="none" stroke="black" d="M4891,-3388.27C4548.74,-3355.28 4462.63,-3353.12 4120,-3324.28 4020.47,-3315.9 3903.96,-3305.92 3840.05,-3300.42"/>
<polygon fill="#e50505" stroke="black" points="3840.14,-3296.92 3829.88,-3299.55 3839.54,-3303.89 3840.14,-3296.92"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_models_package -->
<g id="edge526" class="edge">
<title>ahriman_models_repository_paths&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8985.11,-3457.43C8933,-3413.7 8818.48,-3322.25 8709,-3266.3 8486.54,-3152.6 8420.36,-3141.25 8177,-3084.76 7413.62,-2907.54 7171.22,-3109.35 6428,-2860.79 6192.2,-2781.93 6172.36,-2677.3 5942,-2583.73 5874.81,-2556.44 5792.53,-2537.88 5741.95,-2528.05"/>
<polygon fill="#e50505" stroke="black" points="5742.44,-2524.58 5731.96,-2526.14 5741.13,-2531.46 5742.44,-2524.58"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_application_application_application -->
<g id="edge527" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_application_application_application</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5767,-1962.27C5671.96,-1773.57 5719.36,-1681.92 5804,-1488.34 5909.95,-1246.01 5951.04,-1157.61 6182,-1028.74 6260.73,-984.81 6896.4,-929.22 6986,-919.2 7168.23,-898.82 7214.65,-902.46 7397,-883.2 7478.1,-874.63 7571.75,-862.66 7629.92,-854.97"/>
<polygon fill="#d10505" stroke="black" points="7630.56,-858.42 7640.01,-853.64 7629.64,-851.48 7630.56,-858.42"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_application_application_packages -->
<g id="edge528" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_application_application_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5813,-2071.8C5851.15,-2000.66 5804.45,-1971.19 5802,-1890.5 5798.06,-1760.5 5780.39,-1726.12 5802,-1597.88 5810.56,-1547.06 5809.58,-1529.93 5840,-1488.34 5961.19,-1322.63 6046.41,-1335.86 6210,-1211.82 6316.34,-1131.19 6324.47,-1079.23 6448,-1028.74 6544.66,-989.23 6855.88,-967.51 6985.02,-960.01"/>
<polygon fill="#d10505" stroke="black" points="6985.32,-963.5 6995.1,-959.43 6984.91,-956.51 6985.32,-963.5"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_application_application_repository -->
<g id="edge529" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_application_application_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5645.18,-2279.91C5662.45,-2244.89 5697.13,-2183.28 5743,-2145.57 5774.38,-2119.78 5802.29,-2141.81 5827,-2109.57 5996.71,-1888.22 5713.9,-1680.57 5916,-1488.34 5978.9,-1428.51 6221.83,-1477.24 6305,-1452.34 6371.58,-1432.4 6376.2,-1397.98 6443,-1378.8 6703.79,-1303.93 7624.95,-1446.47 7647,-1176.05"/>
<path fill="none" stroke="black" d="M7647,-1174.05C7646.62,-1123.36 7707.78,-1111.79 7685,-1066.51"/>
<path fill="none" stroke="black" d="M7685,-1064.51C7675.06,-1044.74 7666.73,-1021.67 7660.51,-1001.98"/>
<polygon fill="#d10505" stroke="black" points="7663.82,-1000.85 7657.53,-992.32 7657.13,-1002.91 7663.82,-1000.85"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_application_handlers_report -->
<g id="edge530" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_application_handlers_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5605,-2189.12C5576.42,-2087.36 5768.56,-2169.71 5813,-2073.8"/>
<path fill="none" stroke="black" d="M5813,-2071.8C5823.93,-2048.22 5779.19,-1987.22 5767,-1964.27"/>
<path fill="none" stroke="black" d="M5767,-1962.27C5758.56,-1946.36 5760.39,-1939.55 5748,-1926.5 5726.59,-1903.94 5705.59,-1916.14 5688,-1890.5 5595.1,-1755.01 5626,-1690.39 5626,-1526.11 5626,-1526.11 5626,-1526.11 5626,-1312.81 5626,-952.78 5983.68,-1002.23 6334,-919.2 6813,-805.67 6946.34,-854.04 7432,-773.66 7878.62,-699.74 7982.99,-639.96 8431,-575.03 8604.15,-549.93 8657.48,-595.72 8823,-539.03 8827.6,-537.45 8832.2,-535.42 8836.69,-533.14"/>
<polygon fill="#d10505" stroke="black" points="8838.63,-536.06 8845.67,-528.14 8835.23,-529.94 8838.63,-536.06"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_report_console -->
<g id="edge531" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_core_report_console</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5607.82,-2285.55C5579.6,-2262.23 5532.38,-2223.53 5491,-2191.12"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_report_email -->
<g id="edge532" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_core_report_email</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5483,-1962.27C5476.21,-1946.6 5480.44,-1939.17 5469,-1926.5 5445.55,-1900.53 5423.9,-1915.07 5399,-1890.5 5386.19,-1877.85 5388.56,-1870.56 5380,-1854.73"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_report_html -->
<g id="edge533" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_core_report_html</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5483,-1962.27C5476.21,-1946.6 5481.29,-1938.34 5469,-1926.5 5434.08,-1892.84 5408.43,-1913.97 5366,-1890.5 5320.2,-1865.16 5322.24,-1837.28 5274,-1816.96 5178.31,-1776.63 4864.52,-1754.86 4743.35,-1747.79"/>
<polygon fill="#d10505" stroke="black" points="4743.44,-1744.29 4733.25,-1747.21 4743.04,-1751.28 4743.44,-1744.29"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge534" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_core_report_jinja_template</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5628.42,-2278.28C5624.02,-2254.51 5616.36,-2219.86 5605,-2191.12"/>
<path fill="none" stroke="black" d="M5605,-2189.12C5596.87,-2168.57 5598.3,-2159.33 5581,-2145.57 5535.07,-2109.07 5502.9,-2141.98 5454,-2109.57 5367.02,-2051.93 5398.4,-1976.84 5307,-1926.5 5257.8,-1899.39 4888.54,-1870.18 4737.3,-1859.22"/>
<polygon fill="#d10505" stroke="black" points="4737.45,-1855.72 4727.23,-1858.49 4736.95,-1862.7 4737.45,-1855.72"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_report_report -->
<g id="edge535" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_core_report_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5605,-2189.12C5595.83,-2169.01 5598.04,-2159.65 5581,-2145.57 5541.01,-2112.55 5500.5,-2151.52 5470,-2109.57 5431.87,-2057.13 5496.54,-2027.68 5483,-1964.27"/>
<path fill="none" stroke="black" d="M5483,-1962.27C5476.21,-1946.6 5481.79,-1937.8 5469,-1926.5 5420.54,-1883.66 5389.88,-1909.31 5328,-1890.5 5309.55,-1884.89 5289.48,-1877.96 5272.13,-1871.69"/>
<polygon fill="#d10505" stroke="black" points="5272.86,-1868.23 5262.26,-1868.1 5270.46,-1874.81 5272.86,-1868.23"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_repository_executor -->
<g id="edge536" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_core_repository_executor</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5665.55,-2291.8C5722.61,-2264.45 5840.56,-2200.05 5903,-2109.57 5931.67,-2068.03 5926.27,-2050.06 5933,-2000.03 5937.36,-1967.64 5940.15,-1958.39 5933,-1926.5 5929.13,-1909.23 5919.87,-1907.76 5916,-1890.5 5913.45,-1879.13 5914.84,-1730.34 5917,-1707.42 5920.05,-1675.14 5904.12,-1655.17 5930,-1635.65"/>
</g>
<!-- ahriman_models_sign_settings&#45;&gt;ahriman_application_ahriman -->
<g id="edge537" class="edge">
<title>ahriman_models_sign_settings&#45;&gt;ahriman_application_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4542.71,-3092.54C4546.4,-3066.16 4552.58,-3025.59 4560,-2990.77 4566.14,-2961.99 4587.69,-2954.2 4577,-2926.78"/>
<path fill="none" stroke="black" d="M4577,-2924.78C4569.89,-2910.02 4567.52,-2904.39 4553,-2896.79 4483.13,-2860.25 4252.85,-2919.31 4200,-2860.79 4174.12,-2832.14 4137.24,-2982.07 4221,-2380.21 4235.52,-2275.91 4325.03,-2223.32 4254,-2145.57 4194.1,-2080.01 3915.9,-2175.14 3856,-2109.57 3697.28,-1935.85 3841.34,-1778.64 3992,-1597.88 4418.78,-1085.82 4644.23,-1044.7 5268,-809.66 5799.2,-609.5 5939.94,-569.46 6498,-465.49 6614.75,-443.73 8527.25,-327.49 8626,-261.5 8640.97,-251.5 8633,-239.15 8645,-225.74"/>
<path fill="none" stroke="black" d="M8645,-223.74C8661.3,-182.5 8605.73,-144.56 8645,-123.97"/>
</g>
<!-- ahriman_models_sign_settings&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge538" class="edge">
<title>ahriman_models_sign_settings&#45;&gt;ahriman_core_report_jinja_template</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4577,-2924.78C4466.4,-2665.23 4655.25,-2580.77 4729,-2308.44"/>
<path fill="none" stroke="black" d="M4729,-2306.44C4741.97,-2235.85 4779.63,-2207.29 4743,-2145.57 4725.94,-2116.84 4694.28,-2138.17 4677,-2109.57 4638.19,-2045.35 4649.04,-1954.39 4660.79,-1900.3"/>
<polygon fill="#c82323" stroke="black" points="4664.26,-1900.84 4663.06,-1890.31 4657.43,-1899.29 4664.26,-1900.84"/>
</g>
<!-- ahriman_models_sign_settings&#45;&gt;ahriman_core_sign_gpg -->
<g id="edge539" class="edge">
<title>ahriman_models_sign_settings&#45;&gt;ahriman_core_sign_gpg</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4548.87,-3092.98C4560.27,-3060.34 4579,-3004.16 4591,-2954.77 4598.38,-2924.39 4604.42,-2889.7 4608.59,-2862.76"/>
<polygon fill="#c82323" stroke="black" points="4612.06,-2863.25 4610.1,-2852.84 4605.14,-2862.2 4612.06,-2863.25"/>
</g>
<!-- ahriman_models_smtp_ssl_settings -->
<g id="node115" class="node">
<title>ahriman_models_smtp_ssl_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c24747" stroke="black" cx="5547" cy="-2072.8" rx="67.76" ry="28.98"/>
<text text-anchor="middle" x="5547" y="-2081.3" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5547" y="-2070.3" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="5547" y="-2059.3" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">smtp_ssl_settings</text>
</g>
<!-- ahriman_models_smtp_ssl_settings&#45;&gt;ahriman_core_report_email -->
<g id="edge540" class="edge">
<title>ahriman_models_smtp_ssl_settings&#45;&gt;ahriman_core_report_email</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5544.49,-2043.74C5540.17,-2011.4 5528.46,-1958.61 5497,-1926.5 5464.53,-1893.35 5433.97,-1921 5399,-1890.5 5385.43,-1878.66 5388.62,-1870.53 5380,-1854.73"/>
</g>
<!-- ahriman_models_upload_settings&#45;&gt;ahriman_core_upload_upload -->
<g id="edge541" class="edge">
<title>ahriman_models_upload_settings&#45;&gt;ahriman_core_upload_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3950.5,-3462.98C3940.66,-3459.42 3930.12,-3456.21 3920,-3454.26 3813.33,-3433.74 2062.6,-3465.96 1965,-3418.26 1844.75,-3359.49 1841.51,-3289.06 1813,-3158.3 1806.04,-3126.36 1807.83,-3117.03 1813,-3084.76 1824.7,-3011.77 1865,-3000.7 1865,-2926.78 1865,-2926.78 1865,-2926.78 1865,-2815.24 1865,-2668.74 1779.59,-2632.39 1813,-2489.75 1846.78,-2345.52 1860.34,-2299.79 1961,-2191.12"/>
<path fill="none" stroke="black" d="M1961,-2189.12C1972.88,-2171.67 1965.7,-2161.12 1980,-2145.57 2003.94,-2119.55 2039.53,-2101.04 2067.87,-2089.34"/>
<polygon fill="#b03a3a" stroke="black" points="2069.19,-2092.58 2077.18,-2085.63 2066.59,-2086.08 2069.19,-2092.58"/>
</g>
<!-- ahriman_models_user -->
<g id="node117" class="node">
<title>ahriman_models_user</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b80909" stroke="black" cx="3047" cy="-2518.74" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="3047" y="-2527.24" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3047" y="-2516.24" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="3047" y="-2505.24" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">user</text>
</g>
<!-- ahriman_models_user&#45;&gt;ahriman_application_handlers_user -->
<g id="edge542" class="edge">
<title>ahriman_models_user&#45;&gt;ahriman_application_handlers_user</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3050.34,-2489.53C3055.26,-2449.22 3065.19,-2372.89 3077,-2308.44"/>
<path fill="none" stroke="black" d="M3077,-2306.44C3095.39,-2236.83 3071.85,-2213.4 3096,-2145.57 3193.78,-1870.92 3223.07,-1771.87 3457,-1597.88 3859.05,-1298.84 4066.04,-1440.48 4529,-1248.82 4728.46,-1166.24 4766.37,-1120.02 4962,-1028.74 5507.44,-774.24 5645.01,-678.18 6238,-575.03 6658.65,-501.85 7734.43,-584.15 8159,-539.03 8202.7,-534.38 8251.5,-524.61 8287.72,-516.45"/>
<polygon fill="#b80909" stroke="black" points="8288.61,-519.83 8297.58,-514.19 8287.05,-513.01 8288.61,-519.83"/>
</g>
<!-- ahriman_models_user&#45;&gt;ahriman_core_auth_mapping -->
<g id="edge543" class="edge">
<title>ahriman_models_user&#45;&gt;ahriman_core_auth_mapping</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3016,-2501.2C2996.2,-2489.65 2970.81,-2472.9 2952,-2453.75 2911.34,-2412.36 2910.13,-2394.38 2881,-2344.21 2862.53,-2312.39 2871.26,-2294.23 2843,-2270.67 2800.89,-2235.56 2758.65,-2277.96 2725,-2234.67 2672.08,-2166.59 2688.55,-1899.42 2697.7,-1791.14"/>
<polygon fill="#b80909" stroke="black" points="2701.18,-1791.43 2698.56,-1781.17 2694.21,-1790.83 2701.18,-1791.43"/>
</g>
<!-- ahriman_models_user&#45;&gt;ahriman_core_database_operations_auth_operations -->
<g id="edge544" class="edge">
<title>ahriman_models_user&#45;&gt;ahriman_core_database_operations_auth_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3077,-2306.44C3082.22,-2277.99 3100.54,-2251.94 3119.22,-2231.82"/>
<polygon fill="#b80909" stroke="black" points="3121.94,-2234.04 3126.36,-2224.41 3116.9,-2229.18 3121.94,-2234.04"/>
</g>
<!-- ahriman_models_user&#45;&gt;ahriman_core_formatters_user_printer -->
<g id="edge545" class="edge">
<title>ahriman_models_user&#45;&gt;ahriman_core_formatters_user_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3085.02,-2513.75C3143.88,-2507.72 3260.65,-2496.27 3360,-2489.75 4518.97,-2413.66 4809.94,-2410.85 5971,-2380.21 6063.17,-2377.78 9201.54,-2370.19 9290,-2344.21 9318.7,-2335.78 9323.31,-2326.7 9347,-2308.44"/>
<path fill="none" stroke="black" d="M9347,-2306.44C9358.54,-2297.63 9368.66,-2264.91 9375.55,-2236.56"/>
<polygon fill="#b80909" stroke="black" points="9378.98,-2237.3 9377.85,-2226.76 9372.16,-2235.7 9378.98,-2237.3"/>
</g>
<!-- ahriman_models_user&#45;&gt;ahriman_core_status_web_client -->
<g id="edge546" class="edge">
<title>ahriman_models_user&#45;&gt;ahriman_core_status_web_client</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3026.97,-2493.92C3017.29,-2482.09 3005.7,-2467.42 2996,-2453.75 2940.41,-2375.37 2953.47,-2333.77 2881,-2270.67 2851.59,-2245.07 2827.8,-2262.99 2801,-2234.67 2748.33,-2179.02 2693.93,-2135.77 2739,-2073.8"/>
</g>
<!-- ahriman_models_user_access -->
<g id="node118" class="node">
<title>ahriman_models_user_access</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f91010" stroke="black" cx="912" cy="-2612.72" rx="50.82" ry="28.98"/>
<text text-anchor="middle" x="912" y="-2621.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="912" y="-2610.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="912" y="-2599.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">user_access</text>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_application_ahriman -->
<g id="edge547" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_application_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M875.78,-2592.12C807.82,-2553.55 660.69,-2461.27 579,-2344.21 361.74,-2032.87 346.06,-1925.23 236,-1561.88 199.75,-1442.2 233.74,-1400.8 187,-1284.82 172.39,-1248.57 152.4,-1248.14 138,-1211.82 113.88,-1150.97 114,-1131.97 114,-1066.51 114,-1066.51 114,-1066.51 114,-954.97 114,-855.03 94.9,-828.21 114,-730.11"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_core_auth_auth -->
<g id="edge548" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_core_auth_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1150,-2517.74C1316.77,-2399.45 1662.4,-1995.13 1855,-1926.5 2074.3,-1848.35 2674.62,-1940.47 2902,-1890.5 2916.22,-1887.37 2931.06,-1881.95 2944.29,-1876.27"/>
<polygon fill="#f91010" stroke="black" points="2945.9,-1879.38 2953.6,-1872.1 2943.05,-1872.99 2945.9,-1879.38"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_core_auth_mapping -->
<g id="edge549" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_core_auth_mapping</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M960.48,-2603.28C1012.57,-2592.07 1095.22,-2567.79 1150,-2519.74"/>
<path fill="none" stroke="black" d="M1150,-2517.74C1199.49,-2474.33 1167.68,-2434.44 1205,-2380.21 1292.12,-2253.6 1329.71,-2228.65 1459,-2145.57 1493.86,-2123.17 1513.12,-2136.04 1545,-2109.57 1589.83,-2072.36 1585.08,-2048.77 1617,-2000.03 1638.39,-1967.39 1631.15,-1945.92 1665,-1926.5 1805.29,-1845.98 2235.78,-1932.43 2392,-1890.5 2461.02,-1871.97 2469.29,-1845.06 2535,-1816.96 2579.97,-1797.72 2594.43,-1801.12 2639,-1780.96 2646.33,-1777.64 2653.93,-1773.75 2661.21,-1769.77"/>
<polygon fill="#f91010" stroke="black" points="2663.2,-1772.67 2670.22,-1764.73 2659.78,-1766.56 2663.2,-1772.67"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_core_database_operations_auth_operations -->
<g id="edge550" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_core_database_operations_auth_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M962.5,-2609.02C1144.37,-2598.66 1782.34,-2556.71 2298,-2453.75 2341.09,-2445.14 3016.46,-2248.99 3058,-2234.67 3073.13,-2229.45 3089.23,-2223.3 3104.25,-2217.29"/>
<polygon fill="#f91010" stroke="black" points="3105.99,-2220.36 3113.95,-2213.37 3103.37,-2213.87 3105.99,-2220.36"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_models_user -->
<g id="edge551" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_models_user</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M963.27,-2611.36C1236.52,-2609.25 2523.96,-2596.8 2919,-2547.73 2946.65,-2544.3 2977.15,-2537.74 3001.44,-2531.83"/>
<polygon fill="#f91010" stroke="black" points="3002.58,-2535.16 3011.44,-2529.35 3000.89,-2528.36 3002.58,-2535.16"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge552" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_web_middlewares_auth_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M707,-2415.98C690.85,-2397.05 549.69,-2023.35 541,-2000.03 523,-1951.75 513.3,-1940.99 503,-1890.5 470.56,-1731.44 478,-1688.44 478,-1526.11 478,-1526.11 478,-1526.11 478,-1414.57 478,-1335.34 449.84,-1318.97 415,-1247.82 373.45,-1162.96 295.9,-1160.64 304,-1066.51"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_base -->
<g id="edge553" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_web_views_base</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M897,-2306.44C877.64,-2183.82 903.47,-2142.69 967,-2036.03 1062.87,-1875.08 1077.07,-1814.2 1231,-1707.42 1272.92,-1678.34 1300.09,-1703.19 1340,-1671.42 1414.44,-1612.15 1373.79,-1543.95 1451,-1488.34 1509.79,-1445.99 1550.81,-1494.12 1610,-1452.34 1619,-1445.99 1707.96,-1292.34 1716,-1284.82 1716.97,-1283.91 2051.02,-1103.17 2052,-1102.28 2066.15,-1089.39 2069.51,-1084.52 2076,-1066.51"/>
<path fill="none" stroke="black" d="M2076,-1064.51C2090.78,-1019.06 2104.82,-995.1 2076,-956.97"/>
<path fill="none" stroke="black" d="M2076,-954.97C2057.8,-930.89 2036.64,-904.41 2019.86,-883.75"/>
<polygon fill="#f91010" stroke="black" points="2022.46,-881.4 2013.43,-875.85 2017.03,-885.82 2022.46,-881.4"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_index -->
<g id="edge554" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_web_views_index</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M858,-1312.81C853.15,-1200.25 854.17,-1159.35 918,-1066.51"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_service_add -->
<g id="edge555" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_web_views_service_add</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M911.6,-2583.48C910.35,-2564.6 906.73,-2539.65 897,-2519.74"/>
<path fill="none" stroke="black" d="M897,-2517.74C855.11,-2432.05 775.11,-2484.75 707,-2417.98"/>
<path fill="none" stroke="black" d="M707,-2415.98C676.9,-2386.47 667.89,-2379.6 645,-2344.21 615.83,-2299.12 614.5,-2284.31 594,-2234.67 551.66,-2132.15 544.53,-2105.1 509,-2000.03 465.33,-1870.89 458.98,-1837.12 417,-1707.42 345.52,-1486.54 296.66,-1439.63 252,-1211.82 220.78,-1052.55 154.63,-992.2 228,-847.43"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_service_remove -->
<g id="edge556" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_web_views_service_remove</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M821,-2189.12C807.17,-2135.7 847.88,-2125.57 867,-2073.8"/>
<path fill="none" stroke="black" d="M867,-2071.8C883.56,-2026.97 859.06,-2011.4 867,-1964.27"/>
<path fill="none" stroke="black" d="M867,-1962.27C874.94,-1915.13 868.74,-1902.49 867,-1854.73"/>
<path fill="none" stroke="black" d="M867,-1852.73C865.78,-1819.39 849.94,-1813.95 845,-1780.96 840.16,-1748.63 831.62,-1737.24 845,-1707.42 859.98,-1674.02 940.49,-1622.02 968,-1597.88 1163.04,-1426.72 1244.31,-1414.77 1406,-1211.82 1435.26,-1175.09 1613.81,-893.97 1620,-847.43"/>
<path fill="none" stroke="black" d="M1620,-845.43C1625.05,-814.81 1644.88,-786.12 1663.53,-765.01"/>
<polygon fill="#f91010" stroke="black" points="1666.15,-767.33 1670.31,-757.59 1660.98,-762.6 1666.15,-767.33"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_service_request -->
<g id="edge557" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_web_views_service_request</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M897,-2517.74C877.53,-2477.91 901.45,-2462.09 897,-2417.98"/>
<path fill="none" stroke="black" d="M897,-2415.98C890.26,-2349.15 808.1,-2394.87 764,-2344.21 716.34,-2289.44 729.37,-2260.19 707,-2191.12"/>
<path fill="none" stroke="black" d="M707,-2189.12C658.04,-2039.93 593,-2011.75 593,-1854.73 593,-1854.73 593,-1854.73 593,-1743.19 593,-1559.89 432.91,-1055.01 556,-919.2 656.03,-808.83 833.46,-758.13 918.27,-739.32"/>
<polygon fill="#f91010" stroke="black" points="919.11,-742.72 928.15,-737.19 917.63,-735.88 919.11,-742.72"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_service_search -->
<g id="edge558" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_web_views_service_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M982,-2306.44C1036.5,-2183.23 1031.09,-2138.13 1119,-2036.03 1237.66,-1898.23 1644.22,-1675.76 1786,-1561.88 1815.67,-1538.05 2269.24,-1131.18 2294,-1102.28 2331.91,-1058.04 2349.3,-1048.55 2366,-992.74 2384.76,-930.03 2378.85,-901.53 2342,-847.43"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_status_ahriman -->
<g id="edge559" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_web_views_status_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M867,-2071.8C927.64,-1907.63 1239.43,-1566.55 1396,-1488.34 1459.27,-1456.74 1493.17,-1493.04 1551,-1452.34 1577,-1434.04 1689.3,-1238.87 1706,-1211.82 1795.06,-1067.48 1814.08,-1029.43 1900,-883.2 1919.18,-850.56 1923.81,-842.3 1943,-809.66 1949.61,-798.42 1956.75,-786.3 1963.44,-774.99"/>
<polygon fill="#f91010" stroke="black" points="1966.6,-776.52 1968.67,-766.13 1960.57,-772.96 1966.6,-776.52"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_status_package -->
<g id="edge560" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_web_views_status_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M867,-1962.27C890,-1825.78 950.95,-1808.03 1046,-1707.42 1171.38,-1574.7 1217.92,-1556.31 1368,-1452.34 1438.24,-1403.68 1459.51,-1396.47 1526,-1342.8 1592.3,-1289.28 1612.61,-1278.23 1666,-1211.82 1789.27,-1058.48 1765.07,-986.64 1851,-809.66 1856.58,-798.17 1863.1,-786.05 1869.41,-774.82"/>
<polygon fill="#f91010" stroke="black" points="1872.51,-776.46 1874.41,-766.03 1866.42,-772.99 1872.51,-776.46"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_status_packages -->
<g id="edge561" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_web_views_status_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M867,-1852.73C867.74,-1788.11 956.8,-1638.56 1007,-1597.88 1049.93,-1563.09 1075.95,-1585.28 1126,-1561.88 1179.94,-1536.66 1188.11,-1520.85 1238,-1488.34 1502.79,-1315.77 1634.02,-1287.53 1748,-992.74 1777.39,-916.73 1737.03,-888.41 1758,-809.66 1761.01,-798.34 1765.75,-786.75 1770.92,-776.04"/>
<polygon fill="#f91010" stroke="black" points="1774.16,-777.39 1775.55,-766.89 1767.92,-774.23 1774.16,-777.39"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_status_status -->
<g id="edge562" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_web_views_status_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M897,-2415.98C890.97,-2355.35 964.48,-2366.79 982,-2308.44"/>
<path fill="none" stroke="black" d="M982,-2306.44C1002.65,-2237.67 979.56,-2215.23 997,-2145.57 1009.82,-2094.35 1013.98,-2080.15 1043,-2036.03 1092.32,-1961.05 1121.96,-1956.29 1183,-1890.5 1271.86,-1794.72 1293.23,-1769.97 1379,-1671.42 1448.99,-1591 1445.24,-1547.4 1534,-1488.34 1578.24,-1458.91 1600.01,-1475.15 1648,-1452.34 1823.81,-1368.79 1874.64,-1347.71 2014,-1211.82 2056.42,-1170.45 2072.3,-1158.83 2090,-1102.28 2114.3,-1024.62 2091.29,-1000.56 2090,-919.2 2089.28,-873.57 2087.57,-821.78 2086.16,-783.95"/>
<polygon fill="#f91010" stroke="black" points="2089.65,-783.52 2085.77,-773.66 2082.65,-783.79 2089.65,-783.52"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_user_login -->
<g id="edge563" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_web_views_user_login</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M707,-2189.12C680.59,-2092.74 707,-2064.2 707,-1964.27 707,-1964.27 707,-1964.27 707,-1852.73 707,-1667.21 772.61,-1630.31 825,-1452.34 842.75,-1392.04 870.75,-1376.36 858,-1314.81"/>
<path fill="none" stroke="black" d="M858,-1312.81C849.19,-1263.1 817.89,-1260.88 806,-1211.82 798.3,-1180.05 797.04,-1169.71 806,-1138.28 831.16,-1050.04 975.08,-852.91 1056,-809.66 1158.77,-754.73 1297.29,-737.71 1369.55,-732.45"/>
<polygon fill="#f91010" stroke="black" points="1369.98,-735.93 1379.72,-731.76 1369.51,-728.95 1369.98,-735.93"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge564" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_web_views_user_logout</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M897,-2415.98C892.27,-2368.42 904.18,-2355.69 897,-2308.44"/>
<path fill="none" stroke="black" d="M897,-2306.44C891.08,-2267.5 866.1,-2267.93 845,-2234.67 833.16,-2216.01 826.72,-2212.47 821,-2191.12"/>
<path fill="none" stroke="black" d="M821,-2189.12C765.55,-1982.24 739.36,-1910.64 807,-1707.42 826.21,-1649.72 849.66,-1644.26 889,-1597.88 976.24,-1495.02 986.01,-1452.45 1099,-1378.8 1138.22,-1353.23 1156.97,-1365.35 1198,-1342.8 1281.58,-1296.85 1310.72,-1288.09 1368,-1211.82 1404.53,-1163.17 1500.81,-1008.2 1468,-956.97"/>
<path fill="none" stroke="black" d="M1468,-954.97C1446.19,-909.21 1402.33,-889.91 1430,-847.43"/>
</g>
<!-- ahriman_models_user_identity -->
<g id="node119" class="node">
<title>ahriman_models_user_identity</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#ce3b3b" stroke="black" cx="725" cy="-1065.51" rx="50.82" ry="28.98"/>
<text text-anchor="middle" x="725" y="-1074.01" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="725" y="-1063.01" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="725" y="-1052.01" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">user_identity</text>
</g>
<!-- ahriman_models_user_identity&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge565" class="edge">
<title>ahriman_models_user_identity&#45;&gt;ahriman_web_middlewares_auth_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M678.04,-1054.17C592.94,-1032.33 421.62,-972.87 418,-847.43"/>
</g>
<!-- ahriman_models_user_identity&#45;&gt;ahriman_web_views_user_login -->
<g id="edge566" class="edge">
<title>ahriman_models_user_identity&#45;&gt;ahriman_web_views_user_login</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M745.35,-1038.59C761.85,-1017.18 785.33,-985.73 804,-956.97"/>
<path fill="none" stroke="black" d="M804,-954.97C831.85,-912.06 854.55,-915.78 894,-883.2 932.78,-851.18 934.58,-831.24 980,-809.66 1111.21,-747.32 1285.86,-733.64 1369.43,-730.77"/>
<polygon fill="#ce3b3b" stroke="black" points="1369.76,-734.26 1379.65,-730.46 1369.54,-727.27 1369.76,-734.26"/>
</g>
<!-- ahriman_version -->
<g id="node120" class="node">
<title>ahriman_version</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#e72222" stroke="black" cx="2103" cy="-1853.73" rx="38.37" ry="21.43"/>
<text text-anchor="middle" x="2103" y="-1856.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2103" y="-1845.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">version</text>
</g>
<!-- ahriman_version&#45;&gt;ahriman_application_ahriman -->
<g id="edge567" class="edge">
<title>ahriman_version&#45;&gt;ahriman_application_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2380,-1524.11C2423.53,-1296.03 2421.11,-1224.49 2546,-1028.74 2558.51,-1009.13 2568.94,-1010.47 2584,-992.74 2647.6,-917.82 2650.25,-889.17 2708,-809.66 2719.91,-793.26 2726.51,-791.57 2736,-773.66 2787.31,-676.8 2788.58,-646.11 2812,-539.03 2821.73,-494.54 2798.04,-360.66 2836,-335.5"/>
</g>
<!-- ahriman_version&#45;&gt;ahriman_application_lock -->
<g id="edge568" class="edge">
<title>ahriman_version&#45;&gt;ahriman_application_lock</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2134.49,-1841.49C2217.97,-1812.35 2452.44,-1734.71 2655,-1707.42 3033.05,-1656.48 5706.7,-1682.49 6088,-1671.42 6347.52,-1663.88 6657.14,-1646.46 6782.33,-1639.07"/>
<polygon fill="#e72222" stroke="black" points="6782.67,-1642.55 6792.44,-1638.47 6782.25,-1635.57 6782.67,-1642.55"/>
</g>
<!-- ahriman_version&#45;&gt;ahriman_web_views_index -->
<g id="edge569" class="edge">
<title>ahriman_version&#45;&gt;ahriman_web_views_index</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2093.07,-1832.8C2059.22,-1765.72 1943.58,-1543.15 1819,-1378.8 1727.49,-1258.08 1320.3,-980.87 1392,-847.43"/>
</g>
<!-- ahriman_version&#45;&gt;ahriman_web_views_status_status -->
<g id="edge570" class="edge">
<title>ahriman_version&#45;&gt;ahriman_web_views_status_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2122.09,-1835.15C2182.22,-1779.13 2364.59,-1603.97 2380,-1526.11"/>
<path fill="none" stroke="black" d="M2380,-1524.11C2385.31,-1474.91 2304,-1364.29 2304,-1314.81 2304,-1314.81 2304,-1314.81 2304,-1247.82 2304,-1191.88 2334.97,-1184.82 2366,-1138.28 2377.24,-1121.41 2384.56,-1120.22 2394,-1102.28 2449.34,-997.1 2545.94,-942.78 2475,-847.43"/>
<path fill="none" stroke="black" d="M2475,-845.43C2364.27,-735.29 2269.78,-845.29 2131,-773.66 2127.16,-771.68 2123.41,-769.3 2119.8,-766.69"/>
<polygon fill="#e72222" stroke="black" points="2121.69,-763.71 2111.68,-760.24 2117.34,-769.2 2121.69,-763.71"/>
</g>
<!-- ahriman_web -->
<g id="node121" class="node">
<title>ahriman_web</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f91010" stroke="black" cx="2982" cy="-400.5" rx="41.59" ry="18"/>
<text text-anchor="middle" x="2982" y="-398" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.web</text>
</g>
<!-- ahriman_web&#45;&gt;ahriman_application_handlers_web -->
<g id="edge571" class="edge">
<title>ahriman_web&#45;&gt;ahriman_application_handlers_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2958.93,-385.26C2935.37,-369.86 2903.37,-346.11 2912,-335.5"/>
</g>
<!-- ahriman_web_middlewares -->
<g id="node122" class="node">
<title>ahriman_web_middlewares</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c82323" stroke="black" cx="859" cy="-502.26" rx="50.41" ry="28.98"/>
<text text-anchor="middle" x="859" y="-510.76" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="859" y="-499.76" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="859" y="-488.76" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">middlewares</text>
</g>
<!-- ahriman_web_middlewares&#45;&gt;ahriman_web_web -->
<g id="edge572" class="edge">
<title>ahriman_web_middlewares&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M890.97,-479.74C900.84,-474.12 912.01,-468.74 923,-465.49 1099.2,-413.36 1676.21,-403.62 1847.59,-401.87"/>
<polygon fill="#c82323" stroke="black" points="1847.85,-405.37 1857.81,-401.77 1847.78,-398.37 1847.85,-405.37"/>
</g>
<!-- ahriman_web_middlewares_auth_handler&#45;&gt;ahriman_web_web -->
<g id="edge573" class="edge">
<title>ahriman_web_middlewares_auth_handler&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M391.66,-697.33C350.23,-645.56 281.01,-542.85 347,-503.26"/>
</g>
<!-- ahriman_web_middlewares_exception_handler -->
<g id="node124" class="node">
<title>ahriman_web_middlewares_exception_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#913030" stroke="black" cx="937" cy="-611.8" rx="67.35" ry="36.54"/>
<text text-anchor="middle" x="937" y="-625.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="937" y="-614.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="937" y="-603.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">middlewares.</text>
<text text-anchor="middle" x="937" y="-592.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">exception_handler</text>
</g>
<!-- ahriman_web_middlewares_exception_handler&#45;&gt;ahriman_web_web -->
<g id="edge574" class="edge">
<title>ahriman_web_middlewares_exception_handler&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M924.28,-575.48C917.79,-550.47 915.24,-518.72 937,-503.26"/>
</g>
<!-- ahriman_web_routes -->
<g id="node125" class="node">
<title>ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="1896" cy="-502.26" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="1896" y="-510.76" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1896" y="-499.76" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="1896" y="-488.76" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">routes</text>
</g>
<!-- ahriman_web_routes&#45;&gt;ahriman_web_web -->
<g id="edge575" class="edge">
<title>ahriman_web_routes&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1896,-473.2C1896,-462.9 1896,-451.04 1896,-439.98"/>
<polygon fill="#732626" stroke="black" points="1899.5,-439.69 1896,-429.69 1892.5,-439.69 1899.5,-439.69"/>
</g>
<!-- ahriman_web_views -->
<g id="node126" class="node">
<title>ahriman_web_views</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f91010" stroke="black" cx="1962" cy="-611.8" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="1962" y="-620.3" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1962" y="-609.3" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="1962" y="-598.3" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views</text>
</g>
<!-- ahriman_web_views&#45;&gt;ahriman_web_routes -->
<g id="edge576" class="edge">
<title>ahriman_web_views&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1946.36,-585.31C1937.63,-571.08 1926.63,-553.17 1917.14,-537.7"/>
<polygon fill="#f91010" stroke="black" points="1919.97,-535.62 1911.76,-528.93 1914.01,-539.29 1919.97,-535.62"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_index -->
<g id="edge577" class="edge">
<title>ahriman_web_views_base&#45;&gt;ahriman_web_views_index</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1951.77,-846.24C1873.75,-846.41 1692.31,-839.07 1559,-773.66 1553.75,-771.09 1548.68,-767.74 1543.93,-764.03"/>
<polygon fill="#950303" stroke="black" points="1546.17,-761.34 1536.27,-757.55 1541.64,-766.68 1546.17,-761.34"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_service_add -->
<g id="edge578" class="edge">
<title>ahriman_web_views_base&#45;&gt;ahriman_web_views_service_add</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1951.79,-845.3C1720.15,-844.3 508.8,-836.12 357,-773.66 352.55,-771.83 348.25,-769.4 344.17,-766.61"/>
<polygon fill="#950303" stroke="black" points="346.21,-763.77 336.13,-760.49 341.97,-769.33 346.21,-763.77"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_service_remove -->
<g id="edge579" class="edge">
<title>ahriman_web_views_base&#45;&gt;ahriman_web_views_service_remove</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1952.08,-839.78C1902.39,-831.18 1813.72,-811.62 1747,-773.66 1743.14,-771.47 1739.35,-768.9 1735.69,-766.13"/>
<polygon fill="#950303" stroke="black" points="1737.88,-763.4 1727.92,-759.8 1733.46,-768.83 1737.88,-763.4"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_service_request -->
<g id="edge580" class="edge">
<title>ahriman_web_views_base&#45;&gt;ahriman_web_views_service_request</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1952.03,-841.16C1794.11,-823.37 1189.3,-755.26 1013.92,-735.51"/>
<polygon fill="#950303" stroke="black" points="1014.29,-732.03 1003.96,-734.39 1013.51,-738.99 1014.29,-732.03"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_service_search -->
<g id="edge581" class="edge">
<title>ahriman_web_views_base&#45;&gt;ahriman_web_views_service_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2024.83,-830.96C2054.32,-817.96 2097.09,-797.31 2131,-773.66 2134.64,-771.12 2138.29,-768.32 2141.85,-765.39"/>
<polygon fill="#950303" stroke="black" points="2144.17,-768.01 2149.48,-758.85 2139.61,-762.7 2144.17,-768.01"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_status_ahriman -->
<g id="edge582" class="edge">
<title>ahriman_web_views_base&#45;&gt;ahriman_web_views_status_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1990,-809.58C1990,-801.5 1990,-792.75 1990,-784.11"/>
<polygon fill="#950303" stroke="black" points="1993.5,-784.07 1990,-774.07 1986.5,-784.07 1993.5,-784.07"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_status_package -->
<g id="edge583" class="edge">
<title>ahriman_web_views_base&#45;&gt;ahriman_web_views_status_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1966.76,-816.93C1955.19,-802.73 1941.01,-785.33 1928.38,-769.84"/>
<polygon fill="#950303" stroke="black" points="1930.98,-767.49 1921.95,-761.95 1925.55,-771.91 1930.98,-767.49"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_status_packages -->
<g id="edge584" class="edge">
<title>ahriman_web_views_base&#45;&gt;ahriman_web_views_status_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1955.41,-830.61C1926.07,-817.39 1883.38,-796.62 1849,-773.66 1845.03,-771.01 1841.03,-768.1 1837.1,-765.07"/>
<polygon fill="#950303" stroke="black" points="1839.18,-762.25 1829.19,-758.73 1834.81,-767.71 1839.18,-762.25"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_status_status -->
<g id="edge585" class="edge">
<title>ahriman_web_views_base&#45;&gt;ahriman_web_views_status_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2013.24,-816.93C2024.81,-802.73 2038.99,-785.33 2051.62,-769.84"/>
<polygon fill="#950303" stroke="black" points="2054.45,-771.91 2058.05,-761.95 2049.02,-767.49 2054.45,-771.91"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_user_login -->
<g id="edge586" class="edge">
<title>ahriman_web_views_base&#45;&gt;ahriman_web_views_user_login</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1951.82,-843.19C1846.13,-836.53 1551.81,-814.7 1465,-773.66 1460.93,-771.74 1456.97,-769.33 1453.19,-766.65"/>
<polygon fill="#950303" stroke="black" points="1455.26,-763.82 1445.23,-760.4 1450.94,-769.33 1455.26,-763.82"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge587" class="edge">
<title>ahriman_web_views_base&#45;&gt;ahriman_web_views_user_logout</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1951.65,-843.84C1886.7,-839.76 1752.43,-825.24 1653,-773.66 1649.17,-771.67 1645.42,-769.29 1641.81,-766.67"/>
<polygon fill="#950303" stroke="black" points="1643.7,-763.7 1633.69,-760.22 1639.34,-769.18 1643.7,-763.7"/>
</g>
<!-- ahriman_web_views_index&#45;&gt;ahriman_web_routes -->
<g id="edge588" class="edge">
<title>ahriman_web_views_index&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1536.9,-700.48C1543.55,-694.45 1551.1,-688.66 1559,-684.57 1694.93,-614.05 1842.76,-756.38 1896,-612.8"/>
</g>
<!-- ahriman_web_views_service -->
<g id="node129" class="node">
<title>ahriman_web_views_service</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c24747" stroke="black" cx="2272" cy="-729.11" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="2272" y="-743.11" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2272" y="-732.11" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="2272" y="-721.11" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="2272" y="-710.11" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">service</text>
</g>
<!-- ahriman_web_views_service&#45;&gt;ahriman_web_routes -->
<g id="edge589" class="edge">
<title>ahriman_web_views_service&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2247.86,-700.39C2241.09,-694.22 2233.29,-688.38 2225,-684.57 2089.05,-621.98 1843.97,-753.12 1896,-612.8"/>
</g>
<!-- ahriman_web_views_service_add&#45;&gt;ahriman_web_routes -->
<g id="edge590" class="edge">
<title>ahriman_web_views_service_add&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M336.84,-698.49C343.04,-693.2 349.9,-688.22 357,-684.57 560.81,-579.65 634.07,-607.38 861,-575.03 1238.44,-521.21 1699.3,-507.32 1847.6,-504.13"/>
<polygon fill="#8a2e2e" stroke="black" points="1847.8,-507.62 1857.73,-503.91 1847.66,-500.62 1847.8,-507.62"/>
</g>
<!-- ahriman_web_views_service_remove&#45;&gt;ahriman_web_routes -->
<g id="edge591" class="edge">
<title>ahriman_web_views_service_remove&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1728.44,-699.27C1734.32,-694.04 1740.66,-688.89 1747,-684.57 1807.74,-643.18 1870.45,-681.72 1896,-612.8"/>
</g>
<!-- ahriman_web_views_service_request&#45;&gt;ahriman_web_routes -->
<g id="edge592" class="edge">
<title>ahriman_web_views_service_request&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1004.01,-723.86C1178.22,-704.29 1892.03,-623.51 1896,-612.8"/>
</g>
<!-- ahriman_web_views_service_search&#45;&gt;ahriman_web_routes -->
<g id="edge593" class="edge">
<title>ahriman_web_views_service_search&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2150.43,-697.76C2144.48,-692.67 2137.89,-687.95 2131,-684.57 2032.96,-636.45 1858.04,-715.19 1896,-612.8"/>
</g>
<!-- ahriman_web_views_status -->
<g id="node134" class="node">
<title>ahriman_web_views_status</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c24747" stroke="black" cx="2366" cy="-729.11" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="2366" y="-743.11" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2366" y="-732.11" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="2366" y="-721.11" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="2366" y="-710.11" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status</text>
</g>
<!-- ahriman_web_views_status&#45;&gt;ahriman_web_routes -->
<g id="edge594" class="edge">
<title>ahriman_web_views_status&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2341.93,-700.24C2335.15,-694.07 2327.34,-688.27 2319,-684.57 2231.87,-645.86 1862.86,-702.19 1896,-612.8"/>
</g>
<!-- ahriman_web_views_status_ahriman&#45;&gt;ahriman_web_routes -->
<g id="edge595" class="edge">
<title>ahriman_web_views_status_ahriman&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1960.59,-700.65C1945.87,-686.02 1928.38,-667.23 1915,-648.57 1904.51,-633.94 1889.74,-629.67 1896,-612.8"/>
</g>
<!-- ahriman_web_views_status_package&#45;&gt;ahriman_web_routes -->
<g id="edge596" class="edge">
<title>ahriman_web_views_status_package&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1889.02,-685.23C1887.11,-662.96 1887.51,-635.7 1896,-612.8"/>
</g>
<!-- ahriman_web_views_status_packages&#45;&gt;ahriman_web_routes -->
<g id="edge597" class="edge">
<title>ahriman_web_views_status_packages&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1830.79,-701.13C1853.89,-679.88 1882.94,-648.02 1896,-612.8"/>
</g>
<!-- ahriman_web_views_status_status&#45;&gt;ahriman_web_routes -->
<g id="edge598" class="edge">
<title>ahriman_web_views_status_status&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2056.08,-698.43C2050.16,-693.27 2043.67,-688.36 2037,-684.57 1975.88,-649.8 1871.56,-678.73 1896,-612.8"/>
</g>
<!-- ahriman_web_views_user -->
<g id="node139" class="node">
<title>ahriman_web_views_user</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c24747" stroke="black" cx="2460" cy="-729.11" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="2460" y="-743.11" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2460" y="-732.11" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="2460" y="-721.11" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="2460" y="-710.11" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">user</text>
</g>
<!-- ahriman_web_views_user&#45;&gt;ahriman_web_routes -->
<g id="edge599" class="edge">
<title>ahriman_web_views_user&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2435.97,-700.14C2429.2,-693.97 2421.37,-688.2 2413,-684.57 2306.61,-638.36 1855.68,-721.55 1896,-612.8"/>
</g>
<!-- ahriman_web_views_user_login&#45;&gt;ahriman_web_routes -->
<g id="edge600" class="edge">
<title>ahriman_web_views_user_login&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1445.57,-697.76C1451.52,-692.67 1458.11,-687.95 1465,-684.57 1552.17,-641.8 1862.25,-703.84 1896,-612.8"/>
</g>
<!-- ahriman_web_views_user_logout&#45;&gt;ahriman_web_routes -->
<g id="edge601" class="edge">
<title>ahriman_web_views_user_logout&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1633.92,-698.43C1639.84,-693.27 1646.33,-688.36 1653,-684.57 1750.88,-628.88 1856.85,-718.38 1896,-612.8"/>
</g>
<!-- ahriman_web_web&#45;&gt;ahriman_application_handlers_web -->
<g id="edge602" class="edge">
<title>ahriman_web_web&#45;&gt;ahriman_application_handlers_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1934.19,-398.64C2115.33,-394.39 2880.54,-374.17 2912,-335.5"/>
<path fill="none" stroke="black" d="M2912,-334.5C2935.33,-305.83 7919.65,-234.88 8512.56,-226.54"/>
<polygon fill="#732626" stroke="black" points="8513.04,-230.03 8522.99,-226.39 8512.94,-223.03 8513.04,-230.03"/>
</g>
<!-- aioauthclient -->
<g id="node143" class="node">
<title>aioauthclient</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#b67b53" stroke="black" points="1536.5,-2090.8 1533.5,-2094.8 1512.5,-2094.8 1509.5,-2090.8 1465.5,-2090.8 1465.5,-2054.8 1536.5,-2054.8 1536.5,-2090.8"/>
<text text-anchor="middle" x="1501" y="-2070.3" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">aioauthclient</text>
</g>
<!-- aioauthclient&#45;&gt;ahriman_core_auth_oauth -->
<g id="edge603" class="edge">
<title>aioauthclient&#45;&gt;ahriman_core_auth_oauth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1522.14,-2054.73C1538.6,-2040.9 1561.51,-2020.43 1579,-2000.03 1591.46,-1985.5 1587.6,-1975.64 1603,-1964.27"/>
<path fill="none" stroke="black" d="M1603,-1962.27C1618.4,-1950.89 1610.34,-1935.93 1627,-1926.5 1764.08,-1848.86 2188.65,-1948.8 2335,-1890.5 2381.72,-1871.88 2377.43,-1842.07 2421,-1816.96 2504.27,-1768.96 2557.41,-1813.52 2625,-1745.19"/>
</g>
<!-- aiohttp -->
<g id="node144" class="node">
<title>aiohttp</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#f9c806" stroke="black" points="1160,-1331.81 1157,-1335.81 1136,-1335.81 1133,-1331.81 1106,-1331.81 1106,-1295.81 1160,-1295.81 1160,-1331.81"/>
<text text-anchor="middle" x="1133" y="-1311.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">aiohttp</text>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_middlewares -->
<g id="edge604" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_middlewares</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M820,-1174.05C773.05,-1155.24 634.52,-1142.61 604,-1102.28 491.97,-954.24 544.56,-860.78 603,-684.57 621.19,-629.73 628.27,-611.59 673,-575.03 710.55,-544.33 762.72,-525.74 802.26,-515.19"/>
<polygon fill="#f9c806" stroke="black" points="803.21,-518.56 812.02,-512.68 801.46,-511.78 803.21,-518.56"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge605" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_middlewares_auth_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1105.83,-1308.37C1073.6,-1301.57 1020.86,-1285.29 994,-1248.82"/>
<path fill="none" stroke="black" d="M994,-1247.82C964.75,-1208.09 934.36,-1231.22 889,-1211.82 857.24,-1198.23 852.07,-1188.89 820,-1176.05"/>
<path fill="none" stroke="black" d="M820,-1174.05C802.23,-1166.93 812.18,-1148.52 796,-1138.28 704.87,-1080.59 657.83,-1137.85 556,-1102.28 525.97,-1091.79 518.26,-1087.09 494,-1066.51"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_middlewares_exception_handler -->
<g id="edge606" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_middlewares_exception_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M994,-1247.82C975.09,-1222.13 1006.95,-1205.2 994,-1176.05"/>
<path fill="none" stroke="black" d="M994,-1174.05C986.69,-1157.6 989.87,-1148.43 975,-1138.28 917.72,-1099.17 711.12,-1154.07 665,-1102.28 599.2,-1028.4 750.98,-756.41 819,-684.57 835.44,-667.2 856.98,-652.47 877.16,-640.96"/>
<polygon fill="#f9c806" stroke="black" points="878.95,-643.97 886,-636.06 875.56,-637.84 878.95,-643.97"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_routes -->
<g id="edge607" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M842,-1064.51C790.54,-995.42 854.35,-741.51 919,-684.57 1000.68,-612.62 1858.16,-714.86 1896,-612.8"/>
<path fill="none" stroke="black" d="M1896,-610.8C1904.13,-588.77 1904.27,-562.43 1902.31,-541.34"/>
<polygon fill="#f9c806" stroke="black" points="1905.76,-540.69 1901.17,-531.14 1898.81,-541.47 1905.76,-540.69"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_base -->
<g id="edge608" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_views_base</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1160.05,-1308.62C1232.03,-1297.11 1433.83,-1262.46 1596,-1211.82 1626.51,-1202.29 1838.57,-1124.02 1862,-1102.28 1924.83,-1043.98 1961.22,-948 1978.19,-891.95"/>
<polygon fill="#f9c806" stroke="black" points="1981.57,-892.89 1981.04,-882.3 1974.85,-890.9 1981.57,-892.89"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_service_add -->
<g id="edge609" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_views_service_add</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1105.99,-1306.6C996.36,-1281.02 585.36,-1181.41 480,-1102.28 375.35,-1023.67 332.78,-865.7 317.13,-783.13"/>
<polygon fill="#f9c806" stroke="black" points="320.55,-782.4 315.31,-773.2 313.67,-783.67 320.55,-782.4"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_service_remove -->
<g id="edge610" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_views_service_remove</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1160.21,-1300.66C1189.3,-1287.69 1236.83,-1266.61 1278,-1248.82"/>
<path fill="none" stroke="black" d="M1278,-1247.82C1320.64,-1229.38 1320.53,-1208.26 1354,-1176.05"/>
<path fill="none" stroke="black" d="M1354,-1174.05C1425.07,-1105.65 1440.38,-1082.17 1482,-992.74 1517.49,-916.48 1471.37,-869.98 1530,-809.66 1569.7,-768.82 1603.46,-801.77 1653,-773.66 1656.86,-771.47 1660.66,-768.91 1664.32,-766.14"/>
<polygon fill="#f9c806" stroke="black" points="1666.54,-768.84 1672.09,-759.81 1662.12,-763.41 1666.54,-768.84"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_service_request -->
<g id="edge611" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_views_service_request</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M994,-1174.05C940.49,-1041.8 949.63,-869.24 958.86,-783.41"/>
<polygon fill="#f9c806" stroke="black" points="962.35,-783.71 959.98,-773.39 955.39,-782.94 962.35,-783.71"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_service_search -->
<g id="edge612" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_views_service_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1160.09,-1312.26C1291.15,-1309.21 1859.37,-1291.54 2014,-1211.82 2207.67,-1111.97 2441.64,-1041.21 2342,-847.43"/>
<path fill="none" stroke="black" d="M2342,-845.43C2307.66,-795.01 2273.61,-810.52 2225,-773.66 2221.46,-770.98 2217.89,-768.08 2214.37,-765.09"/>
<polygon fill="#f9c806" stroke="black" points="2216.63,-762.41 2206.81,-758.45 2212.02,-767.68 2216.63,-762.41"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_status_ahriman -->
<g id="edge613" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_views_status_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1278,-1247.82C1342.82,-1218.46 1371.06,-1245.02 1434,-1211.82 1656.97,-1094.2 1620.72,-944.07 1834,-809.66 1877.16,-782.46 1899.06,-799.59 1943,-773.66 1946.82,-771.41 1950.59,-768.8 1954.24,-766"/>
<polygon fill="#f9c806" stroke="black" points="1956.48,-768.68 1961.98,-759.63 1952.04,-763.28 1956.48,-768.68"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_status_package -->
<g id="edge614" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_views_status_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1278,-1247.82C1317.54,-1230.72 1331.06,-1233.98 1368,-1211.82 1488.51,-1139.52 1509.55,-1103.53 1596,-992.74 1656.46,-915.26 1640.23,-867.07 1720,-809.66 1768.31,-774.89 1797.04,-802.7 1849,-773.66 1852.87,-771.5 1856.68,-768.95 1860.35,-766.19"/>
<polygon fill="#f9c806" stroke="black" points="1862.57,-768.9 1868.13,-759.88 1858.16,-763.46 1862.57,-768.9"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_status_packages -->
<g id="edge615" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_views_status_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1354,-1174.05C1394.73,-1135.92 1418.34,-1142.51 1457,-1102.28 1563.94,-990.99 1522.95,-905.41 1644,-809.66 1682.03,-779.58 1704.95,-797.82 1747,-773.66 1751.14,-771.28 1755.25,-768.55 1759.25,-765.64"/>
<polygon fill="#f9c806" stroke="black" points="1761.48,-768.34 1767.27,-759.47 1757.21,-762.8 1761.48,-768.34"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_status_status -->
<g id="edge616" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_views_status_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1160.42,-1309.69C1223.75,-1301.58 1383.61,-1275.83 1500,-1211.82 1616.5,-1147.74 1829.75,-879.32 1943,-809.66 1981.11,-786.22 1999.01,-797.29 2037,-773.66 2040.77,-771.32 2044.5,-768.65 2048.12,-765.81"/>
<polygon fill="#f9c806" stroke="black" points="2050.39,-768.47 2055.84,-759.39 2045.91,-763.09 2050.39,-768.47"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_user_login -->
<g id="edge617" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_views_user_login</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M994,-1174.05C951.46,-1073.72 1098.65,-1065.54 1108,-956.97"/>
<path fill="none" stroke="black" d="M1108,-954.97C1118.81,-885.59 1118.1,-856.95 1170,-809.66 1225.89,-758.74 1314.58,-740.4 1369.38,-733.8"/>
<polygon fill="#f9c806" stroke="black" points="1369.98,-737.26 1379.53,-732.67 1369.2,-730.3 1369.98,-737.26"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge618" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_views_user_logout</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M994,-1247.82C953.52,-1199.6 1074.14,-1238.85 1131,-1211.82 1205.55,-1176.37 1227.64,-1165.27 1281,-1102.28 1327.71,-1047.13 1324.97,-1023.16 1354,-956.97"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_web -->
<g id="edge619" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M994,-1174.05C986.79,-1157.56 987.85,-1150.89 975,-1138.28 927.06,-1091.24 883.81,-1119.07 842,-1066.51"/>
<path fill="none" stroke="black" d="M842,-1064.51C817.48,-1033.68 802.15,-1030.21 790,-992.74 756.44,-889.22 860.22,-688.09 864,-684.57 923.34,-629.15 1031.66,-693.99 1032,-612.8"/>
<path fill="none" stroke="black" d="M1032,-610.8C1031.83,-592.8 1023.91,-589.34 1013,-575.03 984.84,-538.07 899.13,-530.17 937,-503.26"/>
</g>
<!-- aiohttpjinja2 -->
<g id="node146" class="node">
<title>aiohttpjinja2</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#69b03a" stroke="black" points="966,-1193.05 963,-1197.05 942,-1197.05 939,-1193.05 898,-1193.05 898,-1157.05 966,-1157.05 966,-1193.05"/>
<text text-anchor="middle" x="932" y="-1172.55" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">aiohttpjinja2</text>
</g>
<!-- aiohttp&#45;&gt;aiohttpjinja2 -->
<g id="edge620" class="edge">
<title>aiohttp&#45;&gt;aiohttpjinja2</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M994,-1247.82C980.81,-1232.11 965.78,-1214.7 953.82,-1200.96"/>
<polygon fill="#f9c806" stroke="black" points="956.38,-1198.57 947.17,-1193.33 951.11,-1203.17 956.38,-1198.57"/>
</g>
<!-- aiohttpsession -->
<g id="node148" class="node">
<title>aiohttpsession</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#3db86e" stroke="black" points="488,-1193.05 485,-1197.05 464,-1197.05 461,-1193.05 408,-1193.05 408,-1157.05 488,-1157.05 488,-1193.05"/>
<text text-anchor="middle" x="448" y="-1172.55" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">aiohttpsession</text>
</g>
<!-- aiohttp&#45;&gt;aiohttpsession -->
<g id="edge621" class="edge">
<title>aiohttp&#45;&gt;aiohttpsession</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1105.86,-1307.57C1049.8,-1296.72 917.19,-1271 806,-1248.82 696.26,-1226.93 567.73,-1200.64 498.44,-1186.42"/>
<polygon fill="#f9c806" stroke="black" points="498.75,-1182.91 488.25,-1184.33 497.34,-1189.77 498.75,-1182.91"/>
</g>
<!-- aiohttpdebugtoolbar -->
<g id="node145" class="node">
<title>aiohttpdebugtoolbar</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#a2b653" stroke="black" points="737.5,-747.11 734.5,-751.11 713.5,-751.11 710.5,-747.11 636.5,-747.11 636.5,-711.11 737.5,-711.11 737.5,-747.11"/>
<text text-anchor="middle" x="687" y="-726.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">aiohttpdebugtoolbar</text>
</g>
<!-- aiohttpdebugtoolbar&#45;&gt;ahriman_web_web -->
<g id="edge622" class="edge">
<title>aiohttpdebugtoolbar&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M680.7,-711.1C672.66,-686.1 662.53,-639.52 687,-612.8"/>
</g>
<!-- aiohttpjinja2&#45;&gt;ahriman_web_views_index -->
<g id="edge623" class="edge">
<title>aiohttpjinja2&#45;&gt;ahriman_web_views_index</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M939.24,-1156.94C965.92,-1096.38 1065.28,-891.38 1220,-809.66 1317.32,-758.26 1365.74,-821.19 1465,-773.66 1470.27,-771.14 1475.36,-767.82 1480.11,-764.13"/>
<polygon fill="#69b03a" stroke="black" points="1482.39,-766.78 1487.78,-757.66 1477.88,-761.43 1482.39,-766.78"/>
</g>
<!-- aiohttpjinja2&#45;&gt;ahriman_web_web -->
<g id="edge624" class="edge">
<title>aiohttpjinja2&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M897.97,-1160.09C879.32,-1152.83 855.65,-1144.25 834,-1138.28 751.57,-1115.54 707.28,-1160.87 645,-1102.28 596.46,-1056.62 608,-1023.61 608,-956.97 608,-956.97 608,-956.97 608,-845.43 608,-773.44 598.51,-750.68 627,-684.57 643.46,-646.38 658.93,-643.46 687,-612.8"/>
<path fill="none" stroke="black" d="M687,-610.8C758.2,-530.25 835.21,-607.61 918,-539.03 931.86,-527.54 922.33,-513.69 937,-503.26"/>
<path fill="none" stroke="black" d="M937,-501.26C1011.87,-448.05 1663.32,-412.74 1847.61,-403.76"/>
<polygon fill="#69b03a" stroke="black" points="1847.99,-407.24 1857.81,-403.26 1847.65,-400.25 1847.99,-407.24"/>
</g>
<!-- aiohttpsecurity -->
<g id="node147" class="node">
<title>aiohttpsecurity</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#47c247" stroke="black" points="816,-1433.57 813,-1437.57 792,-1437.57 789,-1433.57 736,-1433.57 736,-1397.57 816,-1397.57 816,-1433.57"/>
<text text-anchor="middle" x="776" y="-1413.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">aiohttpsecurity</text>
</g>
<!-- aiohttpsecurity&#45;&gt;ahriman_core_auth_helpers -->
<g id="edge625" class="edge">
<title>aiohttpsecurity&#45;&gt;ahriman_core_auth_helpers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M816.28,-1408.61C914.19,-1393.94 1157.54,-1356.3 1169,-1342.8 1224.05,-1277.99 1205.27,-1170.48 1188.5,-1110.46"/>
<polygon fill="#47c247" stroke="black" points="1191.77,-1109.17 1185.63,-1100.54 1185.05,-1111.12 1191.77,-1109.17"/>
</g>
<!-- aiohttpsecurity&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge626" class="edge">
<title>aiohttpsecurity&#45;&gt;ahriman_web_middlewares_auth_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M768.82,-1397.56C748.71,-1351.39 687.88,-1221.67 606,-1138.28 564.58,-1096.09 539.08,-1104.75 494,-1066.51"/>
<path fill="none" stroke="black" d="M494,-1064.51C449.26,-1026.78 423.28,-1015.26 418,-956.97"/>
</g>
<!-- aiohttpsession&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge627" class="edge">
<title>aiohttpsession&#45;&gt;ahriman_web_middlewares_auth_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M433.6,-1156.77C423.11,-1142.99 409.75,-1122.67 404,-1102.28 395.13,-1070.82 400.86,-1061.27 404,-1028.74 407.13,-996.39 418,-989.47 418,-956.97"/>
<path fill="none" stroke="black" d="M418,-954.97C413.69,-907.37 415.83,-895.18 418,-847.43"/>
</g>
<!-- boto3 -->
<g id="node149" class="node">
<title>boto3</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#40c0a6" stroke="black" points="2289,-2434.98 2286,-2438.98 2265,-2438.98 2262,-2434.98 2235,-2434.98 2235,-2398.98 2289,-2398.98 2289,-2434.98"/>
<text text-anchor="middle" x="2262" y="-2414.48" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">boto3</text>
</g>
<!-- boto3&#45;&gt;ahriman_core_upload_s3 -->
<g id="edge628" class="edge">
<title>boto3&#45;&gt;ahriman_core_upload_s3</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2264.66,-2398.87C2269.9,-2359.85 2278.39,-2262.16 2245,-2191.12"/>
<path fill="none" stroke="black" d="M2245,-2189.12C2234.75,-2169.54 2231.92,-2164.79 2221,-2145.57 2202.75,-2113.44 2180.44,-2110.73 2179,-2073.8"/>
</g>
<!-- cryptography -->
<g id="node150" class="node">
<title>cryptography</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#19bde6" stroke="black" points="886,-3667.24 883,-3671.24 862,-3671.24 859,-3667.24 812,-3667.24 812,-3631.24 886,-3631.24 886,-3667.24"/>
<text text-anchor="middle" x="849" y="-3646.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">cryptography</text>
</g>
<!-- cryptography&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge629" class="edge">
<title>cryptography&#45;&gt;ahriman_web_middlewares_auth_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M811.78,-3647.05C700.58,-3642.89 373.24,-3625.81 287,-3567.24"/>
<path fill="none" stroke="black" d="M287,-3565.24C259.7,-3546.71 248.54,-3542.34 235,-3512.24 169.29,-3366.13 135,-2234.02 135,-2073.8 135,-2073.8 135,-2073.8 135,-1414.57 135,-1151.61 315.59,-872 388.25,-770.14"/>
<polygon fill="#19bde6" stroke="black" points="391.12,-772.14 394.12,-761.98 385.44,-768.06 391.12,-772.14"/>
</g>
<!-- cryptography&#45;&gt;aiohttpsession -->
<g id="edge630" class="edge">
<title>cryptography&#45;&gt;aiohttpsession</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M287,-3565.24C224.81,-3518.55 287,-3468.04 287,-3390.27 287,-3390.27 287,-3390.27 287,-2611.72 287,-2370.15 365,-2315.38 365,-2073.8 365,-2073.8 365,-2073.8 365,-1852.73 365,-1706.63 402,-1672.2 402,-1526.11 402,-1526.11 402,-1526.11 402,-1414.57 402,-1336.48 426.06,-1246.58 439.38,-1202.8"/>
<polygon fill="#19bde6" stroke="black" points="442.74,-1203.77 442.36,-1193.19 436.06,-1201.7 442.74,-1203.77"/>
</g>
<!-- requests -->
<g id="node155" class="node">
<title>requests</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#ef06c0" stroke="black" points="1436,-3584.24 1433,-3588.24 1412,-3588.24 1409,-3584.24 1382,-3584.24 1382,-3548.24 1436,-3548.24 1436,-3584.24"/>
<text text-anchor="middle" x="1409" y="-3563.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">requests</text>
</g>
<!-- cryptography&#45;&gt;requests -->
<g id="edge631" class="edge">
<title>cryptography&#45;&gt;requests</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M886.16,-3646.07C970.8,-3640.61 1184.08,-3623.76 1358,-3584.24 1362.65,-3583.19 1367.47,-3581.88 1372.21,-3580.46"/>
<polygon fill="#19bde6" stroke="black" points="1373.28,-3583.79 1381.75,-3577.43 1371.16,-3577.12 1373.28,-3583.79"/>
</g>
<!-- inflection -->
<g id="node151" class="node">
<title>inflection</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#537bb6" stroke="black" points="4985,-3407.27 4982,-3411.27 4961,-3411.27 4958,-3407.27 4929,-3407.27 4929,-3371.27 4985,-3371.27 4985,-3407.27"/>
<text text-anchor="middle" x="4957" y="-3386.77" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">inflection</text>
</g>
<!-- inflection&#45;&gt;ahriman_models_aur_package -->
<g id="edge632" class="edge">
<title>inflection&#45;&gt;ahriman_models_aur_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4964.5,-3371.24C4983.23,-3328.7 5032.39,-3217.05 5057.99,-3158.9"/>
<polygon fill="#537bb6" stroke="black" points="5061.21,-3160.27 5062.03,-3149.71 5054.8,-3157.45 5061.21,-3160.27"/>
</g>
<!-- jinja2 -->
<g id="node152" class="node">
<title>jinja2</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#3b3bce" stroke="black" points="827,-2325.44 824,-2329.44 803,-2329.44 800,-2325.44 773,-2325.44 773,-2289.44 827,-2289.44 827,-2325.44"/>
<text text-anchor="middle" x="800" y="-2304.94" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">jinja2</text>
</g>
<!-- jinja2&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge633" class="edge">
<title>jinja2&#45;&gt;ahriman_core_report_jinja_template</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M827.21,-2293.33C843.2,-2285.98 863.95,-2277.04 883,-2270.67 1170.17,-2174.61 1261.76,-2216.67 1545,-2109.57 1708.47,-2047.76 1723.65,-1969.65 1893,-1926.5 2024.7,-1892.94 4203.35,-1898.74 4339,-1890.5 4433.68,-1884.74 4542.88,-1871.86 4609.92,-1863.23"/>
<polygon fill="#3b3bce" stroke="black" points="4610.44,-1866.69 4619.91,-1861.94 4609.54,-1859.75 4610.44,-1866.69"/>
</g>
<!-- jinja2&#45;&gt;ahriman_web_web -->
<g id="edge634" class="edge">
<title>jinja2&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M791.05,-2289.21C784.01,-2274.96 774.51,-2253.99 769,-2234.67 749.17,-2165.16 771.05,-2141.23 745,-2073.8"/>
<path fill="none" stroke="black" d="M745,-2071.8C679.84,-1937.99 644.09,-1914.81 579,-1780.96 474.88,-1566.85 497.16,-1490.35 377,-1284.82 356.09,-1249.04 338.96,-1248.13 319,-1211.82 264.43,-1112.53 105.25,-833.31 152,-730.11"/>
</g>
<!-- jinja2&#45;&gt;aiohttpjinja2 -->
<g id="edge635" class="edge">
<title>jinja2&#45;&gt;aiohttpjinja2</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M745,-2071.8C716.62,-1995.78 752.54,-1786.88 769,-1707.42 793.41,-1589.55 824.57,-1567.37 860,-1452.34 887.8,-1362.08 914.1,-1253.14 925.73,-1203.31"/>
<polygon fill="#3b3bce" stroke="black" points="929.2,-1203.86 928.05,-1193.33 922.38,-1202.28 929.2,-1203.86"/>
</g>
<!-- passlib -->
<g id="node153" class="node">
<title>passlib</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#763bce" stroke="black" points="2988,-2834.24 2985,-2838.24 2964,-2838.24 2961,-2834.24 2934,-2834.24 2934,-2798.24 2988,-2798.24 2988,-2834.24"/>
<text text-anchor="middle" x="2961" y="-2813.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">passlib</text>
</g>
<!-- passlib&#45;&gt;ahriman_models_user -->
<g id="edge636" class="edge">
<title>passlib&#45;&gt;ahriman_models_user</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2964.1,-2798.09C2971.36,-2759.26 2990.9,-2661.96 3018,-2583.73 3021.26,-2574.32 3025.39,-2564.4 3029.5,-2555.26"/>
<polygon fill="#763bce" stroke="black" points="3032.73,-2556.61 3033.75,-2546.07 3026.38,-2553.68 3032.73,-2556.61"/>
</g>
<!-- pyalpm -->
<g id="node154" class="node">
<title>pyalpm</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#b13bce" stroke="black" points="4606,-3230.3 4603,-3234.3 4582,-3234.3 4579,-3230.3 4552,-3230.3 4552,-3194.3 4606,-3194.3 4606,-3230.3"/>
<text text-anchor="middle" x="4579" y="-3209.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">pyalpm</text>
</g>
<!-- pyalpm&#45;&gt;ahriman_core_alpm_pacman -->
<g id="edge637" class="edge">
<title>pyalpm&#45;&gt;ahriman_core_alpm_pacman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4648,-3120.53C4662.63,-3108.18 4656.31,-3095.72 4672,-3084.76 4727.13,-3046.22 4754.17,-3066.68 4819,-3048.76 4955.51,-3011.01 5305.32,-2931.57 5428,-2860.79 5432.82,-2858.01 5437.55,-2854.66 5442.04,-2851.06"/>
<polygon fill="#b13bce" stroke="black" points="5444.51,-2853.55 5449.83,-2844.38 5439.96,-2848.23 5444.51,-2853.55"/>
</g>
<!-- pyalpm&#45;&gt;ahriman_models_package -->
<g id="edge638" class="edge">
<title>pyalpm&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4589.02,-3193.99C4600.99,-3174.53 4622.62,-3142.98 4648,-3122.53"/>
<path fill="none" stroke="black" d="M4648,-3120.53C4661.29,-3109.81 4650.97,-3097.79 4662,-3084.76 4787.13,-2936.84 4871.83,-2963.68 5036,-2860.79 5205.75,-2754.4 5257.42,-2739.92 5413,-2613.72"/>
<path fill="none" stroke="black" d="M5413,-2611.72C5486.36,-2562.38 5588.17,-2537.85 5647.26,-2527.04"/>
<polygon fill="#b13bce" stroke="black" points="5648.19,-2530.43 5657.43,-2525.24 5646.97,-2523.54 5648.19,-2530.43"/>
</g>
<!-- pyalpm&#45;&gt;ahriman_models_package_description -->
<g id="edge639" class="edge">
<title>pyalpm&#45;&gt;ahriman_models_package_description</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4551.82,-3204.32C4528.51,-3196.88 4495.94,-3182.71 4478,-3158.3 4435.98,-3101.09 4431.65,-3014.89 4433.21,-2965.41"/>
<polygon fill="#b13bce" stroke="black" points="4436.72,-2965.27 4433.63,-2955.13 4429.72,-2964.98 4436.72,-2965.27"/>
</g>
<!-- requests&#45;&gt;ahriman_application_application_packages -->
<g id="edge640" class="edge">
<title>requests&#45;&gt;ahriman_application_application_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1394.77,-3548.14C1349.7,-3493.55 1207.36,-3317.65 1110,-3158.3 976.2,-2939.3 916.27,-2890.17 852,-2641.71 810.66,-2481.91 894.24,-2425.11 836,-2270.67 828.75,-2251.45 813.83,-2254.05 807,-2234.67 776.86,-2149.21 788.78,-2099.96 853,-2036.03 1213.42,-1677.27 1440,-1792.07 1910,-1597.88 2534.03,-1340.05 2690.69,-1241.17 3358,-1138.28 4100.77,-1023.76 6578.62,-966.82 6985.3,-958.15"/>
<polygon fill="#ef06c0" stroke="black" points="6985.43,-961.64 6995.35,-957.93 6985.28,-954.64 6985.43,-961.64"/>
</g>
<!-- requests&#45;&gt;ahriman_core_alpm_remote_aur -->
<g id="edge641" class="edge">
<title>requests&#45;&gt;ahriman_core_alpm_remote_aur</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1409,-3482.25C1433.22,-3323.39 1554.46,-3336.52 1699,-3266.3 1763.92,-3234.76 2885.95,-2953.48 2953,-2926.78"/>
<path fill="none" stroke="black" d="M2953,-2924.78C2967.99,-2918.15 2962.54,-2904.5 2977,-2896.79 3097.05,-2832.77 3157.48,-2917.83 3281,-2860.79 3285.09,-2858.9 3289.06,-2856.53 3292.84,-2853.86"/>
<polygon fill="#ef06c0" stroke="black" points="3295.09,-2856.55 3300.82,-2847.63 3290.78,-2851.03 3295.09,-2856.55"/>
</g>
<!-- requests&#45;&gt;ahriman_core_alpm_remote_official -->
<g id="edge642" class="edge">
<title>requests&#45;&gt;ahriman_core_alpm_remote_official</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1436.15,-3550.66C1535.28,-3497.78 1887.78,-3313.04 2193,-3194.3 2528.59,-3063.74 2625.4,-3068.7 2967,-2954.77 3039.54,-2930.58 3054.54,-2914.22 3129,-2896.79 3190.49,-2882.4 3617.51,-2837.33 3762.76,-2822.23"/>
<polygon fill="#ef06c0" stroke="black" points="3763.14,-2825.71 3772.72,-2821.19 3762.41,-2818.75 3763.14,-2825.71"/>
</g>
<!-- requests&#45;&gt;ahriman_core_sign_gpg -->
<g id="edge643" class="edge">
<title>requests&#45;&gt;ahriman_core_sign_gpg</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1436.43,-3564.6C1580.34,-3561.02 2249.06,-3541.52 2447,-3484.25"/>
<path fill="none" stroke="black" d="M2447,-3482.25C2566.71,-3447.62 2251.42,-3515.92 2174,-3418.26 2113.82,-3342.34 2209.96,-3235.55 2269,-3194.3 2309.33,-3166.12 3966.32,-2903.89 4015,-2896.79 4146.58,-2877.62 4180.19,-2878.25 4312,-2860.79 4402.21,-2848.84 4507.29,-2833.4 4567,-2824.48"/>
<polygon fill="#ef06c0" stroke="black" points="4567.88,-2827.88 4577.25,-2822.94 4566.84,-2820.96 4567.88,-2827.88"/>
</g>
<!-- requests&#45;&gt;ahriman_core_status_web_client -->
<g id="edge644" class="edge">
<title>requests&#45;&gt;ahriman_core_status_web_client</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1410.02,-3548.13C1410.76,-3531.7 1411.27,-3506.21 1409,-3484.25"/>
<path fill="none" stroke="black" d="M1409,-3482.25C1405.15,-3445.09 1324.05,-3195.31 1319,-3158.3 1308.94,-3084.52 1308.87,-3064.54 1319,-2990.77 1344.57,-2804.65 1361.26,-2757.36 1433,-2583.73 1520.53,-2371.89 1550.51,-2314.89 1705,-2145.57 1739.02,-2108.29 1763.96,-2115.08 1793,-2073.8"/>
<path fill="none" stroke="black" d="M1793,-2071.8C1829.07,-2009.85 1803.05,-1965.8 1863,-1926.5 1949.3,-1869.92 2692.29,-1920.57 2791,-1890.5 2796.65,-1888.77 2802.31,-1886.36 2807.76,-1883.59"/>
<polygon fill="#ef06c0" stroke="black" points="2809.62,-1886.56 2816.67,-1878.66 2806.23,-1880.44 2809.62,-1886.56"/>
</g>
<!-- requests&#45;&gt;ahriman_core_upload_github -->
<g id="edge645" class="edge">
<title>requests&#45;&gt;ahriman_core_upload_github</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1409,-3388.27C1446.35,-3196.28 1581.07,-3211.87 1689,-3048.76 1863.37,-2785.24 1971.64,-2730.69 2017,-2417.98"/>
<path fill="none" stroke="black" d="M2017,-2415.98C2016.77,-2365.29 2063.77,-2358.37 2055,-2308.44"/>
<path fill="none" stroke="black" d="M2055,-2306.44C2050.86,-2282.88 2044.72,-2256.97 2039.24,-2235.69"/>
<polygon fill="#ef06c0" stroke="black" points="2042.61,-2234.74 2036.69,-2225.95 2035.83,-2236.51 2042.61,-2234.74"/>
</g>
<!-- requests&#45;&gt;ahriman_core_upload_http_upload -->
<g id="edge646" class="edge">
<title>requests&#45;&gt;ahriman_core_upload_http_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1409,-3482.25C1404.79,-3441.59 1405.14,-3430.97 1409,-3390.27"/>
<path fill="none" stroke="black" d="M1409,-3388.27C1414.16,-3333.9 1412.43,-3319.68 1424,-3266.3 1448.57,-3152.97 1670,-2365.32 1737,-2270.67 1752.41,-2248.9 1765.01,-2252.32 1785,-2234.67 1826.26,-2198.24 1829.39,-2181.6 1871,-2145.57 1891.7,-2127.65 1901.96,-2129.25 1921,-2109.57 1934.31,-2095.81 1934.48,-2089.8 1945,-2073.8"/>
<path fill="none" stroke="black" d="M1945,-2071.8C1959.19,-2048.73 1976.4,-2023.87 1990.75,-2003.87"/>
<polygon fill="#ef06c0" stroke="black" points="1993.69,-2005.78 1996.7,-1995.62 1988.01,-2001.68 1993.69,-2005.78"/>
</g>
<!-- requests&#45;&gt;ahriman_core_util -->
<g id="edge647" class="edge">
<title>requests&#45;&gt;ahriman_core_util</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2447,-3482.25C2451.71,-3475.34 3505.6,-3334.47 3744.31,-3302.64"/>
<polygon fill="#ef06c0" stroke="black" points="3744.96,-3306.08 3754.41,-3301.29 3744.04,-3299.15 3744.96,-3306.08"/>
</g>
<!-- srcinfo -->
<g id="node156" class="node">
<title>srcinfo</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#b6537b" stroke="black" points="5419,-2834.24 5416,-2838.24 5395,-2838.24 5392,-2834.24 5365,-2834.24 5365,-2798.24 5419,-2798.24 5419,-2834.24"/>
<text text-anchor="middle" x="5392" y="-2813.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">srcinfo</text>
</g>
<!-- srcinfo&#45;&gt;ahriman_models_package -->
<g id="edge648" class="edge">
<title>srcinfo&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5387.36,-2798.04C5377.91,-2758.75 5361.47,-2662.13 5413,-2613.72"/>
</g>
</g>
</svg>