ahriman/docs/ahriman-architecture.svg
2023-04-09 13:06:54 +03:00

7551 lines
750 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 7.1.0 (0)
-->
<!-- Title: G Pages: 1 -->
<svg width="15920pt" height="4893pt"
viewBox="0.00 0.00 15920.40 4892.51" 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 4888.51)">
<title>G</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="white" stroke="none" points="-4,4 -4,-4888.51 15916.4,-4888.51 15916.4,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="#6b3e2e" stroke="black" cx="2588" cy="-28.99" rx="46.84" ry="28.98"/>
<text text-anchor="middle" x="2588" y="-37.49" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2588" y="-26.49" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2588" 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="#db4005" stroke="black" cx="2399" cy="-874.19" rx="46.84" ry="28.98"/>
<text text-anchor="middle" x="2399" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2399" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2399" y="-860.69" 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="#994f33" stroke="black" cx="2588" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="2588" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2588" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2588" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="2588" y="-628.34" 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="M2439,-755.87C2441.03,-749.73 2500.32,-708.19 2543.49,-678.58"/>
<polygon fill="#db4005" stroke="black" points="2545.45,-681.48 2551.73,-672.94 2541.5,-675.7 2545.45,-681.48"/>
</g>
<!-- ahriman_application_handlers_clean -->
<g id="node10" class="node">
<title>ahriman_application_handlers_clean</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#994f33" stroke="black" cx="2477" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="2477" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2477" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2477" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="2477" y="-628.34" 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="M2439,-755.87C2445.83,-735.19 2453.81,-712.42 2460.69,-693.18"/>
<polygon fill="#db4005" stroke="black" points="2463.89,-694.62 2463.97,-684.02 2457.3,-692.25 2463.89,-694.62"/>
</g>
<!-- ahriman_application_handlers_key_import -->
<g id="node15" class="node">
<title>ahriman_application_handlers_key_import</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#994f33" stroke="black" cx="2237" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="2237" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2237" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2237" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="2237" y="-628.34" 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="M2380.42,-847.4C2352.43,-808.55 2299.2,-734.67 2266.05,-688.66"/>
<polygon fill="#db4005" stroke="black" points="2269.07,-686.87 2260.39,-680.8 2263.39,-690.96 2269.07,-686.87"/>
</g>
<!-- ahriman_application_handlers_patch -->
<g id="node16" class="node">
<title>ahriman_application_handlers_patch</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#733b26" stroke="black" cx="5795" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="5795" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5795" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="5795" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="5795" y="-628.34" 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="M2445.77,-870.52C2588.41,-862.14 3030.4,-834.5 3395,-793.64 3622.15,-768.19 3676.37,-740.81 3904,-720.1 4624.32,-654.58 5504.26,-648.68 5736.54,-648.31"/>
<polygon fill="#db4005" stroke="black" points="5736.23,-651.81 5746.23,-648.3 5736.23,-644.81 5736.23,-651.81"/>
</g>
<!-- ahriman_application_handlers_rebuild -->
<g id="node17" class="node">
<title>ahriman_application_handlers_rebuild</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#82432b" stroke="black" cx="3181" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="3181" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3181" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="3181" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="3181" y="-628.34" 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="M2445.68,-869.87C2566.51,-860.79 2886.93,-833.55 2985,-793.64 3047.38,-768.26 3107.87,-718.37 3144.76,-684.19"/>
<polygon fill="#db4005" stroke="black" points="3146.71,-687.16 3151.61,-677.76 3141.92,-682.05 3146.71,-687.16"/>
</g>
<!-- ahriman_application_handlers_remove -->
<g id="node18" class="node">
<title>ahriman_application_handlers_remove</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#994f33" stroke="black" cx="1503" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="1503" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1503" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="1503" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="1503" y="-628.34" 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="M1540,-755.87C1517.64,-745.41 1508.3,-719.51 1504.59,-695.75"/>
<polygon fill="#db4005" stroke="black" points="1508.06,-695.34 1503.37,-685.84 1501.12,-696.19 1508.06,-695.34"/>
</g>
<!-- ahriman_application_handlers_remove_unknown -->
<g id="node19" class="node">
<title>ahriman_application_handlers_remove_unknown</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#914b30" stroke="black" cx="2940" cy="-647.34" rx="65.11" ry="36.54"/>
<text text-anchor="middle" x="2940" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2940" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2940" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="2940" y="-628.34" 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="M2446.08,-871.76C2556.38,-867.48 2827.27,-851.21 2894,-793.64 2922.23,-769.29 2933.32,-727.73 2937.58,-695.28"/>
<polygon fill="#db4005" stroke="black" points="2941.02,-696.06 2938.66,-685.73 2934.06,-695.28 2941.02,-696.06"/>
</g>
<!-- ahriman_application_handlers_search -->
<g id="node21" class="node">
<title>ahriman_application_handlers_search</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#733b26" stroke="black" cx="2699" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="2699" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2699" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2699" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="2699" y="-628.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">search</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_search -->
<g id="edge8" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2423.52,-849.04C2456.61,-817.19 2518.2,-760.48 2577,-720.1 2604.87,-700.97 2614.92,-701.33 2644,-684.1 2647.33,-682.13 2650.76,-680.05 2654.18,-677.92"/>
<polygon fill="#db4005" stroke="black" points="2655.9,-680.97 2662.49,-672.67 2652.17,-675.05 2655.9,-680.97"/>
</g>
<!-- ahriman_application_handlers_service_updates -->
<g id="node22" class="node">
<title>ahriman_application_handlers_service_updates</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a3f28" stroke="black" cx="1337" cy="-647.34" rx="62.87" ry="36.54"/>
<text text-anchor="middle" x="1337" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1337" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="1337" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="1337" y="-628.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">service_updates</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_service_updates -->
<g id="edge9" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_service_updates</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2355.83,-862.65C2313.19,-852.64 2245.98,-837.92 2187,-829.64 1900.49,-789.43 1802.03,-880.53 1540,-757.87"/>
<path fill="none" stroke="black" d="M1540,-755.87C1488.72,-731.87 1431.88,-701.42 1391.43,-679.05"/>
<polygon fill="#db4005" stroke="black" points="1393.27,-676.07 1382.83,-674.28 1389.88,-682.19 1393.27,-676.07"/>
</g>
<!-- ahriman_application_handlers_setup -->
<g id="node23" class="node">
<title>ahriman_application_handlers_setup</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a472e" stroke="black" cx="1059" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="1059" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1059" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="1059" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="1059" y="-628.34" 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="edge10" 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="M2351.96,-872.28C2171.82,-868.4 1526.11,-850.72 1330,-793.64 1243.8,-768.56 1153.91,-713.73 1102.38,-679.06"/>
<polygon fill="#db4005" stroke="black" points="1104.39,-676.19 1094.15,-673.47 1100.46,-681.98 1104.39,-676.19"/>
</g>
<!-- ahriman_application_handlers_shell -->
<g id="node24" class="node">
<title>ahriman_application_handlers_shell</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#914b30" stroke="black" cx="3070" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="3070" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3070" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="3070" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="3070" y="-628.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">shell</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_shell -->
<g id="edge11" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_shell</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2445.49,-869.96C2558.19,-861.54 2842.86,-836.54 2927,-793.64 2974.7,-769.32 3015.96,-723.01 3041.74,-689.18"/>
<polygon fill="#db4005" stroke="black" points="3044.51,-691.32 3047.68,-681.21 3038.9,-687.13 3044.51,-691.32"/>
</g>
<!-- ahriman_application_handlers_sign -->
<g id="node25" class="node">
<title>ahriman_application_handlers_sign</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#994f33" stroke="black" cx="2126" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="2126" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2126" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2126" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="2126" y="-628.34" 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="edge12" 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="M2126,-755.87C2109.66,-740.53 2108.64,-715.92 2112.18,-694.12"/>
<polygon fill="#db4005" stroke="black" points="2115.57,-695.01 2114.09,-684.52 2108.7,-693.64 2115.57,-695.01"/>
</g>
<!-- ahriman_application_handlers_status -->
<g id="node26" class="node">
<title>ahriman_application_handlers_status</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a3f28" stroke="black" cx="2810" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="2810" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2810" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2810" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="2810" y="-628.34" 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="edge13" 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="M2435.2,-855.3C2500.2,-822.88 2640.59,-751.51 2755,-684.1 2758.34,-682.14 2761.76,-680.06 2765.19,-677.94"/>
<polygon fill="#db4005" stroke="black" points="2766.91,-680.99 2773.51,-672.7 2763.18,-675.07 2766.91,-680.99"/>
</g>
<!-- ahriman_application_handlers_status_update -->
<g id="node27" class="node">
<title>ahriman_application_handlers_status_update</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a472e" stroke="black" cx="2357" cy="-647.34" rx="55.31" ry="36.54"/>
<text text-anchor="middle" x="2357" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2357" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2357" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="2357" y="-628.34" 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="edge14" 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="M2408.77,-845.78C2417.01,-822.46 2429.03,-788.06 2439,-757.87"/>
<path fill="none" stroke="black" d="M2439,-755.87C2448.43,-727.31 2427.88,-700.4 2405,-680.64"/>
<polygon fill="#db4005" stroke="black" points="2407.3,-678 2397.34,-674.39 2402.87,-683.43 2407.3,-678"/>
</g>
<!-- ahriman_application_handlers_structure -->
<g id="node28" class="node">
<title>ahriman_application_handlers_structure</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a472e" stroke="black" cx="8638" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="8638" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8638" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="8638" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="8638" y="-628.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">structure</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_structure -->
<g id="edge15" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_structure</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2446.07,-871.49C2985.08,-852.07 7982.48,-671.96 8579.72,-650.44"/>
<polygon fill="#db4005" stroke="black" points="8579.65,-653.94 8589.51,-650.08 8579.39,-646.95 8579.65,-653.94"/>
</g>
<!-- ahriman_application_handlers_triggers -->
<g id="node29" class="node">
<title>ahriman_application_handlers_triggers</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a472e" stroke="black" cx="1209" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="1209" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1209" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="1209" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="1209" y="-628.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">triggers</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_triggers -->
<g id="edge16" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_triggers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2351.79,-873.91C2219.35,-874.87 1833.91,-870.34 1526,-793.64 1403.93,-763.24 1376.42,-742.52 1265,-684.1 1261.31,-682.17 1257.54,-680.07 1253.8,-677.89"/>
<polygon fill="#db4005" stroke="black" points="1255.67,-674.93 1245.3,-672.76 1252.06,-680.92 1255.67,-674.93"/>
</g>
<!-- ahriman_application_handlers_update -->
<g id="node31" class="node">
<title>ahriman_application_handlers_update</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#994f33" stroke="black" cx="2015" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="2015" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2015" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2015" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="2015" y="-628.34" 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="edge17" 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="M2354.52,-864.49C2295.7,-850.94 2191.83,-819.68 2126,-757.87"/>
<path fill="none" stroke="black" d="M2126,-755.87C2100.96,-732.37 2073.21,-705.48 2051.72,-684.47"/>
<polygon fill="#db4005" stroke="black" points="2054.19,-681.99 2044.59,-677.5 2049.29,-686.99 2054.19,-681.99"/>
</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="#8a472e" stroke="black" cx="2361" cy="-991.51" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="2361" y="-1005.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2361" y="-994.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2361" y="-983.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2361" y="-972.51" 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="edge18" 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="M2372.5,-955.6C2376.84,-942.44 2381.79,-927.41 2386.24,-913.92"/>
<polygon fill="#8a472e" stroke="black" points="2389.54,-915.07 2389.35,-904.48 2382.9,-912.88 2389.54,-915.07"/>
</g>
<!-- ahriman_application_application_application_packages -->
<g id="node4" class="node">
<title>ahriman_application_application_application_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#733b26" stroke="black" cx="2406" cy="-1101.05" rx="77.56" ry="36.54"/>
<text text-anchor="middle" x="2406" y="-1115.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2406" y="-1104.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2406" y="-1093.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2406" y="-1082.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application_packages</text>
</g>
<!-- ahriman_application_application_application_packages&#45;&gt;ahriman_application_application_application -->
<g id="edge19" class="edge">
<title>ahriman_application_application_application_packages&#45;&gt;ahriman_application_application_application</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2391.27,-1064.84C2387.58,-1056.03 2383.58,-1046.47 2379.73,-1037.27"/>
<polygon fill="#733b26" stroke="black" points="2382.98,-1035.97 2375.89,-1028.1 2376.52,-1038.67 2382.98,-1035.97"/>
</g>
<!-- ahriman_application_application_application_properties -->
<g id="node5" class="node">
<title>ahriman_application_application_application_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a34a28" stroke="black" cx="2813" cy="-1210.59" rx="79.39" ry="36.54"/>
<text text-anchor="middle" x="2813" y="-1224.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2813" y="-1213.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2813" y="-1202.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2813" y="-1191.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application_properties</text>
</g>
<!-- ahriman_application_application_application_properties&#45;&gt;ahriman_application_application_application_packages -->
<g id="edge20" class="edge">
<title>ahriman_application_application_application_properties&#45;&gt;ahriman_application_application_application_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2744.88,-1191.59C2672.84,-1172.55 2559.37,-1142.57 2483.85,-1122.62"/>
<polygon fill="#a34a28" stroke="black" points="2485.02,-1119.31 2474.45,-1120.14 2483.23,-1126.07 2485.02,-1119.31"/>
</g>
<!-- ahriman_application_application_application_repository -->
<g id="node6" class="node">
<title>ahriman_application_application_application_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#733b26" stroke="black" cx="2193" cy="-1101.05" rx="79.39" ry="36.54"/>
<text text-anchor="middle" x="2193" y="-1115.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2193" y="-1104.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2193" y="-1093.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2193" y="-1082.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application_repository</text>
</g>
<!-- ahriman_application_application_application_properties&#45;&gt;ahriman_application_application_application_repository -->
<g id="edge21" class="edge">
<title>ahriman_application_application_application_properties&#45;&gt;ahriman_application_application_application_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2734.22,-1204.58C2630.23,-1196.67 2442.07,-1177.88 2286,-1137.82 2277.84,-1135.72 2269.43,-1133.13 2261.15,-1130.31"/>
<polygon fill="#a34a28" stroke="black" points="2262.39,-1127.04 2251.79,-1126.99 2260.05,-1133.64 2262.39,-1127.04"/>
</g>
<!-- ahriman_application_application_application_repository&#45;&gt;ahriman_application_application_application -->
<g id="edge22" class="edge">
<title>ahriman_application_application_application_repository&#45;&gt;ahriman_application_application_application</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2238.46,-1070.95C2262.38,-1055.64 2291.61,-1036.92 2315.53,-1021.62"/>
<polygon fill="#733b26" stroke="black" points="2317.27,-1024.66 2323.81,-1016.32 2313.5,-1018.76 2317.27,-1024.66"/>
</g>
<!-- ahriman_application_handlers -->
<g id="node7" class="node">
<title>ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#952b03" stroke="black" cx="2588" cy="-122.97" rx="46.84" ry="28.98"/>
<text text-anchor="middle" x="2588" y="-131.47" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2588" y="-120.47" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2588" 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="edge23" 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="M2588,-93.63C2588,-86.11 2588,-77.85 2588,-69.84"/>
<polygon fill="#952b03" stroke="black" points="2591.5,-69.92 2588,-59.92 2584.5,-69.92 2591.5,-69.92"/>
</g>
<!-- ahriman_application_handlers_add&#45;&gt;ahriman_application_handlers -->
<g id="edge24" 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="M2588.25,-610.32C2588.32,-591.35 2588.3,-567.7 2588,-546.57"/>
</g>
<!-- ahriman_application_handlers_backup -->
<g id="node9" class="node">
<title>ahriman_application_handlers_backup</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#994f33" stroke="black" cx="8943" cy="-1501.67" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="8943" y="-1515.67" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8943" y="-1504.67" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="8943" y="-1493.67" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="8943" y="-1482.67" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">backup</text>
</g>
<!-- ahriman_application_handlers_backup&#45;&gt;ahriman_application_handlers -->
<g id="edge25" class="edge">
<title>ahriman_application_handlers_backup&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8942.34,-1464.89C8941.83,-1428.64 8941.44,-1370.97 8943,-1321.13"/>
</g>
<!-- ahriman_application_handlers_clean&#45;&gt;ahriman_application_handlers -->
<g id="edge26" 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="M2512.55,-623.3C2545.13,-600.88 2588.3,-567.24 2588,-546.57"/>
</g>
<!-- ahriman_application_handlers_daemon -->
<g id="node11" class="node">
<title>ahriman_application_handlers_daemon</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a15335" stroke="black" cx="2663" cy="-224.74" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="2663" y="-238.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2663" y="-227.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2663" y="-216.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="2663" y="-205.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">daemon</text>
</g>
<!-- ahriman_application_handlers_daemon&#45;&gt;ahriman_application_handlers -->
<g id="edge27" class="edge">
<title>ahriman_application_handlers_daemon&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2639.68,-192.72C2631.55,-181.9 2622.38,-169.7 2614.04,-158.61"/>
<polygon fill="#a15335" stroke="black" points="2616.99,-156.71 2608.19,-150.82 2611.4,-160.92 2616.99,-156.71"/>
</g>
<!-- ahriman_application_handlers_dump -->
<g id="node12" class="node">
<title>ahriman_application_handlers_dump</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#994f33" stroke="black" cx="6021" cy="-443.81" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="6021" y="-457.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6021" y="-446.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="6021" y="-435.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="6021" y="-424.81" 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="edge28" 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="M6012.39,-407.53C6008.95,-385.31 6008.36,-356.86 6021,-335.27"/>
</g>
<!-- ahriman_application_handlers_handler -->
<g id="node13" class="node">
<title>ahriman_application_handlers_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#82432b" stroke="black" cx="8977" cy="-2158.9" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="8977" y="-2172.9" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8977" y="-2161.9" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="8977" y="-2150.9" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="8977" y="-2139.9" 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="edge29" 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="M8950.65,-2128.32C8918.11,-2088.63 8867,-2014.55 8867,-1940.82 8867,-1940.82 8867,-1940.82 8867,-1500.67 8867,-1414.02 8939.89,-1407.72 8943,-1321.13"/>
<path fill="none" stroke="black" d="M8943,-1319.13C8935.06,-1170.3 8851.64,-1140.76 8867,-992.51"/>
</g>
<!-- ahriman_application_handlers_help -->
<g id="node14" class="node">
<title>ahriman_application_handlers_help</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a15335" stroke="black" cx="2513" cy="-224.74" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="2513" y="-238.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2513" y="-227.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2513" y="-216.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="2513" y="-205.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">help</text>
</g>
<!-- ahriman_application_handlers_help&#45;&gt;ahriman_application_handlers -->
<g id="edge30" 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="M2536.32,-192.72C2544.45,-181.9 2553.62,-169.7 2561.96,-158.61"/>
<polygon fill="#a15335" stroke="black" points="2564.6,-160.92 2567.81,-150.82 2559.01,-156.71 2564.6,-160.92"/>
</g>
<!-- ahriman_application_handlers_key_import&#45;&gt;ahriman_application_handlers -->
<g id="edge31" 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="M2271.21,-621.82C2278.18,-617.6 2285.64,-613.6 2293,-610.57 2355.02,-585 2588.96,-613.65 2588,-546.57"/>
</g>
<!-- ahriman_application_handlers_patch&#45;&gt;ahriman_application_handlers -->
<g id="edge32" 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="M5818.65,-615.32C5859.93,-561.13 5941.2,-454.05 5946,-444.81"/>
<path fill="none" stroke="black" d="M5946,-442.81C5954.29,-426.84 5955.2,-422.15 5965,-407.04 5987.02,-373.1 6000.55,-370.19 6021,-335.27"/>
<path fill="none" stroke="black" d="M6021,-333.27C6030.1,-317.74 6028.95,-311.72 6040,-297.5 6069.11,-260.05 6152.06,-259.76 6119,-225.74"/>
<path fill="none" stroke="black" d="M6119,-223.74C6055.89,-158.78 3101.32,-128.74 2646.51,-124.5"/>
<polygon fill="#733b26" stroke="black" points="2646.55,-121 2636.51,-124.41 2646.48,-128 2646.55,-121"/>
</g>
<!-- ahriman_application_handlers_rebuild&#45;&gt;ahriman_application_handlers -->
<g id="edge33" 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="M3147.66,-621.24C3140.79,-617.07 3133.39,-613.24 3126,-610.57 3012.8,-569.56 2590.31,-666.95 2588,-546.57"/>
</g>
<!-- ahriman_application_handlers_remove&#45;&gt;ahriman_application_handlers -->
<g id="edge34" 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="M1493.91,-611.07C1473.74,-532.58 1427,-349.22 1427,-335.27"/>
</g>
<!-- ahriman_application_handlers_remove_unknown&#45;&gt;ahriman_application_handlers -->
<g id="edge35" 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="M2892.9,-621.64C2884.11,-617.58 2874.88,-613.69 2866,-610.57 2806.2,-589.53 2588.91,-609.96 2588,-546.57"/>
</g>
<!-- ahriman_application_handlers_restore -->
<g id="node20" class="node">
<title>ahriman_application_handlers_restore</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a15335" stroke="black" cx="1352" cy="-224.74" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="1352" y="-238.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1352" y="-227.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="1352" y="-216.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="1352" y="-205.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">restore</text>
</g>
<!-- ahriman_application_handlers_restore&#45;&gt;ahriman_application_handlers -->
<g id="edge36" class="edge">
<title>ahriman_application_handlers_restore&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1386.49,-199.72C1394.82,-195.01 1403.95,-190.69 1413,-187.97 1625.29,-124.07 2322.17,-122.52 2529.38,-123.53"/>
<polygon fill="#a15335" stroke="black" points="2529.36,-127.03 2539.38,-123.58 2529.39,-120.03 2529.36,-127.03"/>
</g>
<!-- ahriman_application_handlers_search&#45;&gt;ahriman_application_handlers -->
<g id="edge37" 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="M2663.39,-623.09C2631.04,-600.67 2588.29,-567.17 2588,-546.57"/>
</g>
<!-- ahriman_application_handlers_service_updates&#45;&gt;ahriman_application_handlers -->
<g id="edge38" class="edge">
<title>ahriman_application_handlers_service_updates&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1352.08,-611.76C1375.56,-555.24 1419,-438.97 1427,-335.27"/>
</g>
<!-- ahriman_application_handlers_setup&#45;&gt;ahriman_application_handlers -->
<g id="edge39" 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="M1086.51,-617.58C1118.8,-580.68 1168,-513.23 1168,-444.81 1168,-444.81 1168,-444.81 1168,-333.27 1168,-247.21 1218.47,-225.33 1296,-187.97 1407.91,-134.03 2291.55,-125.53 2529.28,-124.21"/>
<polygon fill="#8a472e" stroke="black" points="2529.26,-127.71 2539.24,-124.16 2529.23,-120.71 2529.26,-127.71"/>
</g>
<!-- ahriman_application_handlers_shell&#45;&gt;ahriman_application_handlers -->
<g id="edge40" class="edge">
<title>ahriman_application_handlers_shell&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3036.25,-621.62C3029.17,-617.36 3021.56,-613.4 3014,-610.57 2924.37,-576.95 2589.37,-642.29 2588,-546.57"/>
</g>
<!-- ahriman_application_handlers_sign&#45;&gt;ahriman_application_handlers -->
<g id="edge41" 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="M2159.42,-621.47C2166.28,-617.28 2173.66,-613.38 2181,-610.57 2266.48,-577.77 2589.31,-638.12 2588,-546.57"/>
</g>
<!-- ahriman_application_handlers_status&#45;&gt;ahriman_application_handlers -->
<g id="edge42" 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="M2775.45,-622.3C2768.81,-618.13 2761.8,-614.03 2755,-610.57 2684.18,-574.48 2589.14,-626.05 2588,-546.57"/>
</g>
<!-- ahriman_application_handlers_status_update&#45;&gt;ahriman_application_handlers -->
<g id="edge43" 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="M2397.86,-622.36C2405.45,-618.23 2413.39,-614.13 2421,-610.57 2492.99,-576.87 2589.14,-626.05 2588,-546.57"/>
</g>
<!-- ahriman_application_handlers_structure&#45;&gt;ahriman_application_handlers -->
<g id="edge44" class="edge">
<title>ahriman_application_handlers_structure&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8654.09,-612.62C8679.13,-559.12 8723.6,-459.31 8714,-444.81"/>
<path fill="none" stroke="black" d="M8714,-442.81C8693.5,-417.99 8681.88,-416.16 8651,-407.04 8114.52,-248.63 6608.89,-563.45 6138,-261.5 6122.85,-251.79 6131.54,-238.65 6119,-225.74"/>
</g>
<!-- ahriman_application_handlers_triggers&#45;&gt;ahriman_application_handlers -->
<g id="edge45" class="edge">
<title>ahriman_application_handlers_triggers&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1233.13,-615.61C1289.13,-543.78 1423.5,-368.48 1427,-335.27"/>
<path fill="none" stroke="black" d="M1427,-333.27C1436.88,-220.41 2297,-146.29 2530.22,-128.25"/>
<polygon fill="#8a472e" stroke="black" points="2530.28,-131.76 2539.98,-127.51 2529.74,-124.78 2530.28,-131.76"/>
</g>
<!-- ahriman_application_handlers_unsafe_commands -->
<g id="node30" class="node">
<title>ahriman_application_handlers_unsafe_commands</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#994f33" stroke="black" cx="6119" cy="-334.27" rx="70.01" ry="36.54"/>
<text text-anchor="middle" x="6119" y="-348.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6119" y="-337.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="6119" y="-326.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="6119" y="-315.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">unsafe_commands</text>
</g>
<!-- ahriman_application_handlers_unsafe_commands&#45;&gt;ahriman_application_handlers -->
<g id="edge46" 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="M6130.39,-297.83C6135.54,-274.24 6137.02,-244.28 6119,-225.74"/>
</g>
<!-- ahriman_application_handlers_update&#45;&gt;ahriman_application_handlers -->
<g id="edge47" 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="M2048.35,-621.27C2055.22,-617.1 2062.62,-613.26 2070,-610.57 2178.96,-570.82 2589.66,-662.55 2588,-546.57"/>
<path fill="none" stroke="black" d="M2588,-544.57C2585.99,-404.23 2587,-237.52 2587.63,-163.16"/>
<polygon fill="#994f33" stroke="black" points="2591.12,-163.58 2587.71,-153.55 2584.12,-163.52 2591.12,-163.58"/>
</g>
<!-- ahriman_application_handlers_users -->
<g id="node32" class="node">
<title>ahriman_application_handlers_users</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#733b26" stroke="black" cx="15393" cy="-1830.28" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="15393" y="-1844.28" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="15393" y="-1833.28" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="15393" y="-1822.28" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="15393" y="-1811.28" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">users</text>
</g>
<!-- ahriman_application_handlers_users&#45;&gt;ahriman_application_handlers -->
<g id="edge48" class="edge">
<title>ahriman_application_handlers_users&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M15426.42,-1804.27C15440.94,-1791.75 15456.9,-1775.45 15467,-1757.51 15564.65,-1584.15 15567,-1520.1 15567,-1321.13 15567,-1321.13 15567,-1321.13 15567,-333.27 15567,-160.07 3587.57,-126.49 2646.5,-124.12"/>
<polygon fill="#733b26" stroke="black" points="2646.52,-120.62 2636.51,-124.09 2646.5,-127.62 2646.52,-120.62"/>
</g>
<!-- ahriman_application_handlers_validate -->
<g id="node33" class="node">
<title>ahriman_application_handlers_validate</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a3f28" stroke="black" cx="5946" cy="-1939.82" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="5946" y="-1953.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5946" y="-1942.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="5946" y="-1931.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="5946" y="-1920.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">validate</text>
</g>
<!-- ahriman_application_handlers_validate&#45;&gt;ahriman_application_handlers -->
<g id="edge49" class="edge">
<title>ahriman_application_handlers_validate&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5946,-1903.1C5946,-1860.08 5946,-1785.62 5946,-1721.74 5946,-1721.74 5946,-1721.74 5946,-646.34 5946,-556.77 5904.73,-524.3 5946,-444.81"/>
</g>
<!-- ahriman_application_handlers_versions -->
<g id="node34" class="node">
<title>ahriman_application_handlers_versions</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a472e" stroke="black" cx="8866" cy="-2158.9" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="8866" y="-2172.9" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8866" y="-2161.9" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="8866" y="-2150.9" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="8866" y="-2139.9" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">versions</text>
</g>
<!-- ahriman_application_handlers_versions&#45;&gt;ahriman_application_handlers -->
<g id="edge50" class="edge">
<title>ahriman_application_handlers_versions&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8847.07,-2125.27C8824.86,-2083.82 8791,-2009.4 8791,-1940.82 8791,-1940.82 8791,-1940.82 8791,-1209.59 8791,-1107.37 8856.03,-1094.14 8867,-992.51"/>
<path fill="none" stroke="black" d="M8867,-990.51C8875.89,-738.78 8870.98,-641.8 8714,-444.81"/>
</g>
<!-- ahriman_application_handlers_web -->
<g id="node35" class="node">
<title>ahriman_application_handlers_web</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a472e" stroke="black" cx="6194" cy="-224.74" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="6194" y="-238.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6194" y="-227.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="6194" y="-216.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="6194" y="-205.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web</text>
</g>
<!-- ahriman_application_handlers_web&#45;&gt;ahriman_application_handlers -->
<g id="edge51" 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="M6159.58,-199.48C6151.24,-194.78 6142.1,-190.53 6133,-187.97 5958.22,-138.8 3093.68,-125.9 2646.5,-124.19"/>
<polygon fill="#8a472e" stroke="black" points="2646.7,-120.69 2636.69,-124.15 2646.68,-127.69 2646.7,-120.69"/>
</g>
<!-- ahriman_application_lock -->
<g id="node36" class="node">
<title>ahriman_application_lock</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#733b26" stroke="black" cx="9088" cy="-2401.31" rx="46.84" ry="28.98"/>
<text text-anchor="middle" x="9088" y="-2409.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9088" y="-2398.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="9088" y="-2387.81" 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="edge52" 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="M9117.27,-2378.4C9146.06,-2354.04 9182.99,-2313.35 9163,-2277.22"/>
<path fill="none" stroke="black" d="M9163,-2275.22C9135.22,-2225 9075.47,-2193.9 9031.15,-2176.83"/>
<polygon fill="#733b26" stroke="black" points="9032.54,-2173.62 9021.94,-2173.42 9030.1,-2180.18 9032.54,-2173.62"/>
</g>
<!-- ahriman_core -->
<g id="node37" class="node">
<title>ahriman_core</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#e54205" stroke="black" cx="4839" cy="-4689.53" rx="42.94" ry="18"/>
<text text-anchor="middle" x="4839" y="-4687.03" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.core</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_ahriman -->
<g id="edge53" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4795.8,-4688.19C4561.9,-4686.17 3423.29,-4674.1 2494,-4624.54 2398.72,-4619.46 2375,-4616.34 2280,-4607.54"/>
<path fill="none" stroke="black" d="M2280,-4605.54C2266.98,-4604.33 2268.34,-4592.85 2256,-4588.54 2120.26,-4541.14 1752.93,-4568.18 1610,-4552.54 1353.03,-4524.42 1289.37,-4509.83 1036,-4458.56 902.45,-4431.53 856.84,-4453.21 738,-4386.56 629.85,-4325.89 76,-3612.04 76,-3488.03 76,-3488.03 76,-3488.03 76,-3298.07 76,-3180.47 38,-3153.81 38,-3036.21 38,-3036.21 38,-3036.21 38,-2400.31 38,-2243.86 0,-2206.81 0,-2050.36 0,-2050.36 0,-2050.36 0,-223.74 0,-92.46 2145.43,-39.62 2529.51,-31.22"/>
<polygon fill="#e54205" stroke="black" points="2529.44,-34.72 2539.36,-31 2529.28,-27.72 2529.44,-34.72"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_application_application_packages -->
<g id="edge54" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_application_application_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4795.75,-4688.29C4553.38,-4686.77 3369.26,-4676.67 3216,-4624.54 3203.62,-4620.33 3204.84,-4610 3192,-4607.54"/>
<path fill="none" stroke="black" d="M3192,-4605.54C3163.94,-4600.16 3157.8,-4595.12 3130,-4588.54 3050.61,-4569.74 3028.62,-4574.34 2950,-4552.54 2876.31,-4532.1 2863.08,-4509.08 2788,-4494.56 2583.2,-4454.95 2046.24,-4529.3 1850,-4458.56 1850,-4458.56 1756,-4386.56 1756,-4386.56 1747.14,-4375.83 1749.56,-4370.24 1742,-4358.57"/>
<path fill="none" stroke="black" d="M1742,-4356.57C1733.06,-4342.83 1729.3,-4340.45 1718,-4328.57 1701.96,-4311.72 1693.98,-4311.17 1680,-4292.57 1657.89,-4263.17 1664.91,-4247.82 1642,-4219.04 1546.2,-4098.63 1446.5,-4132.85 1378,-3995.07 1240.38,-3718.25 1406,-3609.21 1406,-3300.07 1406,-3300.07 1406,-3300.07 1406,-3188.53 1406,-2874.39 1367.13,-2795.01 1392,-2481.86 1396.46,-2425.73 1398.66,-2411.47 1412,-2356.76 1450.18,-2200.21 1462.18,-2160.55 1526,-2012.59 1536.01,-1989.38 1935.85,-1223.76 1958,-1211.59"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_application_application_properties -->
<g id="edge55" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_application_application_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4795.77,-4688.29C4567.73,-4686.81 3502.93,-4677.15 3178,-4624.54 3121.35,-4615.37 3109.96,-4601.24 3054,-4588.54 2958.23,-4566.81 2929.8,-4581.61 2836,-4552.54 2777.89,-4534.53 2771.11,-4508.94 2712,-4494.56 2517.51,-4447.23 1998.3,-4531.74 1812,-4458.56 1789.12,-4449.57 1745.13,-4404.19 1728,-4386.56 1690.56,-4348.03 1683.61,-4336.01 1652,-4292.57 1629.03,-4261.02 1633.83,-4244.21 1604,-4219.04 1573.27,-4193.1 1556.07,-4202.71 1521,-4183.04 1418.63,-4125.61 1408.97,-4085.54 1305,-4031.07 1263.9,-4009.54 1237.35,-4030.17 1207,-3995.07 1112.23,-3885.45 1140,-3820.9 1140,-3676 1140,-3676 1140,-3676 1140,-3392.05 1140,-3100.18 2634.68,-1586.58 2756,-1321.13"/>
<path fill="none" stroke="black" d="M2756,-1319.13C2764.61,-1297.69 2776.27,-1274.94 2786.79,-1255.92"/>
<polygon fill="#e54205" stroke="black" points="2789.75,-1257.8 2791.59,-1247.37 2783.64,-1254.38 2789.75,-1257.8"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_application_application_repository -->
<g id="edge56" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_application_application_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4795.82,-4688.03C4539.95,-4684.91 3227.89,-4666.93 3054,-4624.54 3017.69,-4615.69 3013.83,-4599.17 2978,-4588.54 2863.63,-4554.6 2822.2,-4598.24 2712,-4552.54 2672.76,-4536.26 2675.96,-4508.99 2636,-4494.56 2453.58,-4428.69 1942.65,-4534.05 1764,-4458.56 1742.57,-4449.5 1743.99,-4437.3 1726,-4422.56 1704.54,-4404.97 1694.93,-4405.86 1675,-4386.56 1637.39,-4350.14 1631.89,-4336.87 1604,-4292.57 1584.4,-4261.44 1594.63,-4242.14 1566,-4219.04 1518.35,-4180.57 1488.2,-4209.56 1433,-4183.04 1305.45,-4121.75 1271.3,-4099.68 1176,-3995.07 1150.9,-3967.52 1146.62,-3957.76 1133,-3923.07 1078.79,-3784.97 1027.77,-3414.54 994,-3270.08 899.2,-2864.5 683.89,-2761.06 784,-2356.76 791.55,-2326.26 827.66,-2253.78 850,-2231.67 874.87,-2207.06 890.2,-2213.99 920,-2195.67 990.63,-2152.24 1011.85,-2144.22 1071,-2086.13 1230.67,-1929.33 1229.43,-1854.8 1374,-1683.97 1532.54,-1496.65 1569.2,-1444.83 1754,-1283.36 1816.71,-1228.57 1830.48,-1208.89 1906,-1173.82 1970,-1144.1 2047.97,-1125.6 2106.48,-1114.85"/>
<polygon fill="#e54205" stroke="black" points="2106.83,-1118.34 2116.06,-1113.13 2105.6,-1111.45 2106.83,-1118.34"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_add -->
<g id="edge57" 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="M1742,-4356.57C1704.28,-4300 1713.09,-4275.36 1675,-4219.04 1575.6,-4072.04 1470.83,-4088.65 1407,-3923.07 1392.76,-3886.12 1400.77,-3873.08 1407,-3833.97 1432.43,-3674.24 1520,-3649.78 1520,-3488.03 1520,-3488.03 1520,-3488.03 1520,-3298.07 1520,-3123.02 1512.54,-3079.39 1506,-2904.46 1498.37,-2700.62 1492,-2649.8 1488,-2445.86 1487.22,-2406.27 1483.41,-2396.1 1488,-2356.76 1508.14,-2184.3 1557.86,-2149.06 1578,-1976.59 1602.43,-1767.38 1578,-1713.3 1578,-1502.67 1578,-1502.67 1578,-1502.67 1578,-1319.13 1578,-1138.41 2130.77,-1002.7 2305,-954.74 2371.1,-936.54 2401.62,-961.76 2455,-918.74 2489.23,-891.15 2478.67,-869.14 2498,-829.64 2521.16,-782.33 2548.06,-728.26 2566.37,-691.56"/>
<polygon fill="#e54205" stroke="black" points="2569.29,-693.56 2570.62,-683.05 2563.03,-690.43 2569.29,-693.56"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_backup -->
<g id="edge58" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_backup</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7597,-4522.55C7954.68,-4505.96 8861.72,-4553.36 9207,-4458.56 9271.82,-4440.76 9293.04,-4434.65 9340,-4386.56 9463.32,-4260.25 9401.37,-4171.5 9407,-3995.07 9415.94,-3714.76 9454.17,-3640.51 9407,-3364.06 9389.64,-3262.32 9370.53,-3239.9 9330,-3144.98 9315.72,-3111.53 9302.83,-3107 9293,-3071.98 9242.11,-2890.59 9269.65,-2837.53 9260,-2649.38 9255.37,-2559.02 9256.11,-2536.33 9255,-2445.86 9254.51,-2406.27 9248.77,-2395.87 9255,-2356.76 9262.65,-2308.75 9391.15,-1989.45 9391,-1940.82"/>
<path fill="none" stroke="black" d="M9391,-1938.82C9388.01,-1720.16 9112.28,-1575.54 8994.93,-1523.84"/>
<polygon fill="#e54205" stroke="black" points="8996.37,-1520.65 8985.8,-1519.88 8993.58,-1527.07 8996.37,-1520.65"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_clean -->
<g id="edge59" 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="M1064,-4059.06C1006.31,-3794.49 1020.16,-3722.95 964,-3458.04 887.02,-3094.9 801.82,-3017.63 755,-2649.38 731.48,-2464.41 696.69,-2390.72 794,-2231.67 813.36,-2200.02 887.75,-2140.48 920,-2122.13 964.34,-2096.9 989.5,-2118.43 1029,-2086.13 1058.14,-2062.3 1050.87,-2044.4 1071,-2012.59 1208.43,-1795.41 1265.99,-1756.5 1402,-1538.43 1500.04,-1381.24 1480.14,-1311.59 1604,-1173.82 1660.64,-1110.82 1688.54,-1109.79 1760,-1064.28 2045.86,-882.23 2131.23,-859.85 2421,-684.1 2424.51,-681.98 2428.13,-679.75 2431.75,-677.49"/>
<polygon fill="#e54205" stroke="black" points="2433.42,-680.57 2440.02,-672.29 2429.7,-674.65 2433.42,-680.57"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_daemon -->
<g id="edge60" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_daemon</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4795.82,-4688.56C4621.05,-4688.28 3966.19,-4683.26 3769,-4624.54 3695.72,-4602.72 3637.59,-4600.53 3629,-4524.55"/>
<path fill="none" stroke="black" d="M3629,-4522.55C3384.03,-4094.58 3207.81,-4072.38 2880,-3703.99 2845.2,-3664.88 2835.02,-3655.43 2809,-3610.01 2705,-3428.44 2580.07,-2888.34 2631,-2685.38 2671.32,-2524.68 2723.05,-2499.6 2807,-2356.76 3045.74,-1950.59 3105.32,-1847.68 3380,-1464.9 3396.92,-1441.31 4018.71,-674.14 4032,-648.34"/>
<path fill="none" stroke="black" d="M4032,-646.34C4090.89,-373.01 2989.66,-255.31 2721.29,-230.75"/>
<polygon fill="#e54205" stroke="black" points="2721.66,-227.27 2711.38,-229.85 2721.03,-234.24 2721.66,-227.27"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_dump -->
<g id="edge61" 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="M4644,-4439.56C4607.94,-4366.78 4644,-4338.03 4644,-4256.8 4644,-4256.8 4644,-4256.8 4644,-3877.52 4644,-3729.16 4796.23,-3350.35 4921,-3270.08 4981.83,-3230.94 5501.03,-3252.42 5571,-3234.08 5657.73,-3211.34 5669.6,-3180.34 5752,-3144.98 5838.19,-3108 5869.29,-3119.76 5950,-3071.98 6068.61,-3001.76 6084.04,-2963.36 6184,-2868.46 6216.95,-2837.18 6218.8,-2822.37 6255,-2794.92 6363.63,-2712.56 6455.12,-2766.43 6525,-2649.38 6541.75,-2621.32 6526.86,-2608.47 6525,-2575.84 6519.44,-2478 6514.64,-2453.67 6500,-2356.76 6481.72,-2235.74 6460.38,-2208 6449,-2086.13 6445.96,-2053.59 6434.75,-2042.01 6449,-2012.59 6551.72,-1800.54 6657.03,-1794.71 6865,-1683.97 7146.76,-1533.95 7238.76,-1540.03 7549,-1464.9 7737.74,-1419.18 8297.22,-1478.5 8411,-1321.13"/>
<path fill="none" stroke="black" d="M8411,-1319.13C8453.62,-1232.57 8411,-1198.53 8411,-1102.05 8411,-1102.05 8411,-1102.05 8411,-646.34 8411,-525.52 6446.35,-458.12 6079.58,-446.6"/>
<polygon fill="#e54205" stroke="black" points="6079.82,-443.1 6069.72,-446.29 6079.6,-450.1 6079.82,-443.1"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_handler -->
<g id="edge62" 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="M5320,-4605.54C5382.3,-4598.64 5397.51,-4593.41 5460,-4588.54 5920.66,-4552.66 6037.44,-4573.86 6499,-4552.54 6860.77,-4535.83 7764.85,-4485.61 8126,-4458.56 8344.73,-4442.17 8982.24,-4478.26 9099,-4292.57 9138.63,-4229.54 9104.28,-4199.39 9100,-4125.05 9082.86,-3827.13 9059.01,-3754.28 9023,-3458.04 9017.92,-3416.24 9019.51,-3405.3 9011,-3364.06 9002.22,-3321.5 8996.2,-3311.79 8984,-3270.08 8958.21,-3181.91 8938.25,-3162.89 8925,-3071.98 8920.29,-3039.64 8922.61,-3031.04 8925,-2998.44 8944.61,-2731.34 9037.65,-2668.99 9013,-2402.31"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_help -->
<g id="edge63" 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="M1064,-4153.04C1036.37,-4122.91 1074.24,-4100.64 1064,-4061.06"/>
<path fill="none" stroke="black" d="M1064,-4059.06C1040.33,-3967.55 985.31,-3967.2 950,-3879.52"/>
<path fill="none" stroke="black" d="M950,-3877.52C860.87,-3716 824.03,-3683.2 746,-3516.03 625.56,-3257.97 418,-2561.99 418,-2277.22 418,-2277.22 418,-2277.22 418,-2157.9 418,-1531.84 486.37,-1310.73 887,-829.64 943.56,-761.72 977.86,-766.66 1053,-720.1 1080.09,-703.32 1093.03,-707.18 1115,-684.1 1140.37,-657.46 1128.29,-637.82 1153,-610.57 1304.16,-443.84 1388.43,-456.58 1578,-335.27"/>
<path fill="none" stroke="black" d="M1578,-333.27C1734.3,-257.78 2275.17,-233.52 2454.63,-227.46"/>
<polygon fill="#e54205" stroke="black" points="2454.52,-230.96 2464.4,-227.13 2454.29,-223.97 2454.52,-230.96"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_key_import -->
<g id="edge64" 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="M950,-3877.52C918.66,-3791.93 951.55,-3758.12 912,-3676"/>
<path fill="none" stroke="black" d="M912,-3674C899.55,-3642.07 885.52,-3640.03 869,-3610.01 803.01,-3490.07 791.89,-3456.67 745,-3328.06 689.01,-3174.49 570,-2777.07 570,-2613.61 570,-2613.61 570,-2613.61 570,-2509.85 570,-2381.68 594.02,-2348.82 646,-2231.67 699.61,-2110.83 731.22,-2090.09 799,-1976.59 953.73,-1717.47 982.77,-1646.74 1146,-1392.9 1210.1,-1293.22 1230.44,-1271.19 1298,-1173.82 1331.78,-1125.13 1329.92,-1103.87 1374,-1064.28 1398.86,-1041.95 1413.81,-1049.02 1440,-1028.28 1584.13,-914.12 1551.14,-801.53 1716,-720.1 1902.25,-628.12 1985.27,-750.8 2182,-684.1 2185.95,-682.76 2189.9,-681.07 2193.77,-679.16"/>
<polygon fill="#e54205" stroke="black" points="2195.35,-682.29 2202.42,-674.4 2191.97,-676.16 2195.35,-682.29"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge65" 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="M3629,-4522.55C3624.85,-4485.81 3647.25,-4478.52 3648,-4441.56"/>
<path fill="none" stroke="black" d="M3648,-4439.56C3652.94,-4195.3 3528.33,-4153.95 3381,-3959.07 3339.39,-3904.03 3222.37,-3771.52 3161,-3739.99 3074.82,-3695.72 3020.37,-3766.09 2946,-3703.99 2717.59,-3513.26 2771,-3365.98 2725,-3071.98 2695.91,-2886.05 2681.8,-2778.78 2793,-2481.86 2823.74,-2399.79 3032.46,-2155.36 3086,-2086.13 3484.56,-1570.79 3451.66,-1276.75 4018,-954.74 4324.35,-780.55 5466.27,-675.76 5737.12,-653.03"/>
<polygon fill="#e54205" stroke="black" points="5737.06,-656.54 5746.74,-652.22 5736.48,-649.57 5737.06,-656.54"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_rebuild -->
<g id="edge66" 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="M4795.84,-4688.48C4590.74,-4687.95 3720.23,-4682.28 3615,-4624.54 3518.35,-4571.51 3543.95,-4505.22 3471,-4422.56 3389.96,-4330.72 2660,-3798.48 2660,-3676 2660,-3676 2660,-3676 2660,-3392.05 2660,-3192.82 2560.75,-3159.59 2532,-2962.44 2514.23,-2840.59 2511.54,-2806.81 2532,-2685.38 2548.15,-2589.54 2569.75,-2569.39 2612,-2481.86 2666.48,-2369.01 2674.37,-2337.16 2742,-2231.67 2752.94,-2214.61 2757.85,-2211.89 2770,-2195.67 2913.95,-2003.51 2977.79,-1971.84 3086,-1757.51 3187.37,-1556.72 3360.25,-1015.87 3395,-793.64 3400.05,-761.35 3414.09,-746.64 3395,-720.1 3359.86,-671.26 3289.9,-655.19 3239.52,-650.15"/>
<polygon fill="#e54205" stroke="black" points="3239.9,-646.67 3229.63,-649.29 3239.29,-653.64 3239.9,-646.67"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_remove -->
<g id="edge67" 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="M4796,-4688.19C4530.72,-4685.91 3121.63,-4671.67 2936,-4624.54 2901.32,-4615.74 2898.25,-4598.86 2864,-4588.54 2737.96,-4550.55 2686.03,-4614.72 2570,-4552.54 2555.56,-4544.8 2562.18,-4527.15 2546,-4524.55"/>
<path fill="none" stroke="black" d="M2546,-4522.55C2516.13,-4517.86 2513.43,-4501.49 2484,-4494.56 2283.34,-4447.27 1760.21,-4493.28 1557,-4458.56 1450.16,-4440.3 1419.34,-4438.11 1324,-4386.56 1288.47,-4367.34 1290.72,-4345.41 1254,-4328.57 1167.13,-4288.73 1124.27,-4341.21 1042,-4292.57 980.81,-4256.4 874.97,-4219.95 651,-3797.97 576.68,-3657.95 617.4,-3598.02 543,-3458.04 521.99,-3418.51 418,-3344.84 418,-3300.07 418,-3300.07 418,-3300.07 418,-3188.53 418,-2932.45 380,-2869.69 380,-2613.61 380,-2613.61 380,-2613.61 380,-2509.85 380,-2323.09 460.66,-2290.24 542,-2122.13 554.59,-2096.11 1046,-1240.5 1046,-1211.59 1046,-1211.59 1046,-1211.59 1046,-1100.05 1046,-874.27 1331.64,-723.15 1451.27,-669.76"/>
<polygon fill="#e54205" stroke="black" points="1452.51,-673.04 1460.25,-665.81 1449.69,-666.63 1452.51,-673.04"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_remove_unknown -->
<g id="edge68" 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="M4795.9,-4688.04C4580.71,-4685.39 3627.99,-4671.1 3505,-4624.54 3284.34,-4541 2851.91,-4110.04 2708,-3923.07 2578.22,-3754.46 2549.56,-3707.12 2456,-3516.03 2340.56,-3280.25 2296.51,-3220.81 2250,-2962.44 2241.15,-2913.26 2207.93,-2462.02 2281,-2356.76 2303.7,-2324.07 2331.15,-2344.63 2363,-2320.76 2467.53,-2242.43 2473.89,-2198.79 2540,-2086.13 2727.51,-1766.57 2920.07,-1371.83 2971,-1137.82 3005.74,-978.16 2970.99,-782.84 2951.4,-695.02"/>
<polygon fill="#e54205" stroke="black" points="2954.82,-694.31 2949.19,-685.33 2948,-695.86 2954.82,-694.31"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_restore -->
<g id="edge69" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_restore</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2698,-4605.54C2685.12,-4603.32 2685.87,-4594.02 2674,-4588.54 2614.88,-4561.26 2593.32,-4574.43 2532,-4552.54 2474.7,-4532.09 2467.15,-4508.81 2408,-4494.56 2189.23,-4441.84 1615.95,-4506.11 1396,-4458.56 1247.57,-4426.47 1224.34,-4375.77 1080,-4328.57 1016.48,-4307.81 990.75,-4327.87 934,-4292.57 869.54,-4252.49 494,-3845.89 494,-3769.98 494,-3769.98 494,-3769.98 494,-3674 494,-3428.75 228,-3435.78 228,-3190.53 228,-3190.53 228,-3190.53 228,-3107.98 228,-2885.68 152,-2835.91 152,-2613.61 152,-2613.61 152,-2613.61 152,-2509.85 152,-2353.4 114,-2316.35 114,-2159.9 114,-2159.9 114,-2159.9 114,-1719.74 114,-1489.3 217,-1442.03 217,-1211.59 217,-1211.59 217,-1211.59 217,-1100.05 217,-928.1 178.01,-850.58 290,-720.1 622.15,-333.12 1122.04,-780.36 1371,-335.27"/>
<path fill="none" stroke="black" d="M1371,-333.27C1373.58,-312.93 1370.59,-290.58 1366.28,-271.55"/>
<polygon fill="#e54205" stroke="black" points="1369.7,-270.81 1363.9,-261.94 1362.9,-272.49 1369.7,-270.81"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_search -->
<g id="edge70" 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="M3192,-4605.54C3163.96,-4600.05 3157.68,-4595.61 3130,-4588.54 3062.74,-4571.36 3042.2,-4578.95 2978,-4552.54 2932.25,-4533.72 2930.31,-4509 2883,-4494.56 2665,-4428 1996.15,-4571.56 1863,-4386.56 1768.23,-4254.87 2053.62,-4152.48 1946,-4031.07 1901.75,-3981.15 1701.41,-4035.02 1648,-3995.07 1620.1,-3974.2 1628.61,-3955.92 1617,-3923.07 1597.76,-3868.64 1589.85,-3855.17 1582,-3797.97 1578.5,-3772.44 1580.78,-3765.73 1582,-3739.99 1593.57,-3494.97 1634,-3435.83 1634,-3190.53 1634,-3190.53 1634,-3190.53 1634,-3034.21 1634,-2977.44 2261.32,-1143.6 2300,-1102.05"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_service_updates -->
<g id="edge71" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_service_updates</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4796.01,-4688.46C4531.54,-4687.77 3122.53,-4680.67 2698,-4607.54"/>
<path fill="none" stroke="black" d="M2698,-4605.54C2685.12,-4603.32 2686.09,-4593.51 2674,-4588.54 2583.17,-4551.21 2549.8,-4581.61 2456,-4552.54 2397.89,-4534.53 2391.15,-4508.79 2332,-4494.56 2108.68,-4440.83 1522.97,-4509.51 1299,-4458.56 1158.5,-4426.59 1139.44,-4371.84 1002,-4328.57 924.18,-4304.08 886.32,-4342.77 822,-4292.57 720.6,-4213.44 760.18,-4143.67 698,-4031.07 631.53,-3910.7 532,-3907.49 532,-3769.98 532,-3769.98 532,-3769.98 532,-3674 532,-3511.55 454.14,-3485.47 414,-3328.06 335.75,-3021.2 287.54,-2197.14 405,-1903.05 608.07,-1394.6 756.88,-1314.22 1084,-875.19"/>
<path fill="none" stroke="black" d="M1084,-873.19C1115.66,-820.61 1124.47,-807.93 1160,-757.87"/>
<path fill="none" stroke="black" d="M1160,-755.87C1175.67,-733.8 1234.17,-700.47 1279.67,-676.78"/>
<polygon fill="#e54205" stroke="black" points="1281.13,-679.97 1288.41,-672.27 1277.92,-673.75 1281.13,-679.97"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_setup -->
<g id="edge72" 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="M2280,-4605.54C2267.05,-4603.78 2268.14,-4593.39 2256,-4588.54 1986.6,-4480.82 1898.49,-4525.41 1610,-4494.56 1493.94,-4482.15 1194.97,-4500.36 1086,-4458.56 1061.76,-4449.26 1063.69,-4433.18 1040,-4422.56 957.99,-4385.78 924.18,-4420.6 841,-4386.56 772.32,-4358.45 756.42,-4344.07 703,-4292.57 693.82,-4283.73 437.3,-3934.15 431,-3923.07 356.39,-3791.79 356.64,-3749.58 299,-3610.01 264.61,-3526.72 253.2,-3506.94 223,-3422.04 212.52,-3392.59 152,-3194.79 152,-3190.53 152,-3190.53 152,-3190.53 152,-2932.45 152,-2789.74 190,-2756.32 190,-2613.61 190,-2613.61 190,-2613.61 190,-1500.67 190,-1406.14 276.61,-1411.59 304,-1321.13"/>
<path fill="none" stroke="black" d="M304,-1319.13C322.78,-1224.49 304,-1198.53 304,-1102.05 304,-1102.05 304,-1102.05 304,-990.51 304,-938.81 268.28,-795.24 304,-757.87"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_shell -->
<g id="edge73" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_shell</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4795.95,-4688.21C4586.29,-4686.4 3677.57,-4675.66 3563,-4624.54 3488.67,-4591.38 3492.54,-4551.1 3434,-4494.56 3107.72,-4179.41 2933.14,-4179.66 2688,-3797.97 2339.05,-3254.64 2293.36,-2967.18 2504,-2356.76 2551.37,-2219.51 2621.83,-2215.88 2687,-2086.13 2725.69,-2009.1 2713.64,-1980.73 2751,-1903.05 2809,-1782.45 2853.41,-1768.77 2911,-1647.97 2991.98,-1478.11 2987.2,-1425.44 3048,-1247.36 3125.4,-1020.64 3263.94,-935.94 3160,-720.1 3154.8,-709.3 3134.7,-692.86 3114.81,-678.43"/>
<polygon fill="#e54205" stroke="black" points="3116.85,-675.59 3106.67,-672.64 3112.79,-681.29 3116.85,-675.59"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_sign -->
<g id="edge74" 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="M4796.16,-4687.92C4525.78,-4683.93 3064.58,-4660.77 2978,-4624.54 2956.54,-4615.56 2961.07,-4598.41 2940,-4588.54 2816.8,-4530.82 2751.69,-4624.15 2636,-4552.54 2609.8,-4536.32 2624.8,-4509.76 2598,-4494.56 2429.3,-4398.87 1904.65,-4534.05 1726,-4458.56 1704.57,-4449.5 1707.16,-4435.75 1688,-4422.56 1648.21,-4395.17 1536.18,-4348.1 1492,-4328.57 1304.26,-4245.6 1226.88,-4279.95 1064,-4155.04"/>
<path fill="none" stroke="black" d="M1064,-4153.04C980.08,-4071.56 984.33,-4029.6 936,-3923.07 810.19,-3645.75 532,-2918.14 532,-2613.61 532,-2613.61 532,-2613.61 532,-2509.85 532,-2381.92 559.84,-2350.99 606,-2231.67 625.51,-2181.23 633.4,-2169.77 659,-2122.13 865.19,-1738.42 925.8,-1646.74 1166,-1283.36 1231.21,-1184.7 1225.34,-1139 1317,-1064.28 1348.8,-1038.35 1373.25,-1057.55 1402,-1028.28 1453.72,-975.61 1466.23,-763.42 1526,-720.1 1624.28,-648.88 1955.84,-722.43 2071,-684.1 2075.14,-682.73 2079.27,-680.96 2083.3,-678.96"/>
<polygon fill="#e54205" stroke="black" points="2084.69,-682.19 2091.74,-674.29 2081.3,-676.06 2084.69,-682.19"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_status -->
<g id="edge75" 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="M4795.78,-4687.68C4573.24,-4683.14 3561.89,-4660.66 3427,-4624.54 3103.04,-4537.8 2815.85,-4258.22 2614,-3995.07 2126.84,-3359.96 2090.75,-3016.51 2248,-2231.67 2336.02,-1792.36 2391.1,-1684.83 2590,-1283.36 2658.33,-1145.44 2778,-1146.43 2778,-992.51 2778,-992.51 2778,-992.51 2778,-873.19 2778,-810.98 2790.15,-740.05 2799.48,-694.77"/>
<polygon fill="#e54205" stroke="black" points="2802.9,-695.54 2801.53,-685.04 2796.05,-694.1 2802.9,-695.54"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_status_update -->
<g id="edge76" 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="M912,-3674C889.03,-3617.18 608,-2674.9 608,-2613.61 608,-2613.61 608,-2613.61 608,-2509.85 608,-2313.03 685.96,-2264.37 822,-2122.13 895.77,-2045 940.44,-2054.86 1013,-1976.59 1200.26,-1774.59 1536.25,-1165.32 1659,-918.74 1693.83,-848.78 1670.13,-808.11 1730,-757.87"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_structure -->
<g id="edge77" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_structure</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7521,-4439.56C7548.78,-4432.86 7554.9,-4427.74 7583,-4422.56 7656.23,-4409.05 8866.97,-4347.72 8917,-4292.57 8938.96,-4268.37 8927.92,-4249.84 8917,-4219.04 8860.41,-4059.41 8779.84,-4057.62 8677,-3923.07 8532.82,-3734.45 8367,-3725.45 8367,-3488.03 8367,-3488.03 8367,-3488.03 8367,-3392.05 8367,-2917.45 8726.48,-2900.7 8862,-2445.86 8873.31,-2407.91 8868.16,-2395.88 8862,-2356.76 8850.3,-2282.44 8829.79,-2268.26 8810,-2195.67 8779.47,-2083.69 8753,-2056.89 8753,-1940.82 8753,-1940.82 8753,-1940.82 8753,-1500.67 8753,-1367.82 8649.87,-1341.63 8677,-1211.59"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_triggers -->
<g id="edge78" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_triggers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4795.81,-4688.36C4530.07,-4687.15 3114.14,-4678.23 2684,-4624.54 2610.81,-4615.4 2594.24,-4603.41 2522,-4588.54 2437.82,-4571.22 2403.47,-4600.28 2332,-4552.54 2306.38,-4535.42 2320.87,-4509.64 2294,-4494.56 2187.28,-4434.63 1313.04,-4482.46 1193,-4458.56 1156.96,-4451.38 767.36,-4300.95 758,-4292.57 660.33,-4205.27 721.16,-4116.68 622,-4031.07 584.98,-3999.1 555.12,-4026.92 518,-3995.07 490.54,-3971.51 496.35,-3955.35 480,-3923.07 410.12,-3785.09 390.8,-3751.36 328,-3610.01 300.56,-3548.25 232.58,-3393.04 214,-3328.06 196.94,-3268.4 190,-3252.58 190,-3190.53 190,-3190.53 190,-3190.53 190,-3107.98 190,-2984.47 228,-2956.2 228,-2832.69 228,-2832.69 228,-2832.69 228,-2509.85 228,-2256.39 266,-2194.29 266,-1940.82 266,-1940.82 266,-1940.82 266,-1500.67 266,-1425.28 331.48,-1428.18 356,-1356.9 377.76,-1293.62 366.72,-800.86 418,-757.87"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_unsafe_commands -->
<g id="edge79" 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="M4875.79,-4679.92C4954.46,-4661.67 5144.98,-4618.34 5306,-4588.54 5571.84,-4539.33 5637.84,-4519.93 5907,-4494.56 6621.55,-4427.21 6806.9,-4513.57 7521,-4441.56"/>
<path fill="none" stroke="black" d="M7521,-4439.56C7549.42,-4436.63 7555.2,-4429.16 7583,-4422.56 7600.81,-4418.33 8216.23,-4305.68 8229,-4292.57 8272.31,-4248.14 8253,-4217.09 8253,-4155.04 8253,-4155.04 8253,-4155.04 8253,-3976.07 8253,-3756.55 8329,-3707.55 8329,-3488.03 8329,-3488.03 8329,-3488.03 8329,-3188.53 8329,-3059.3 8305.94,-3001.74 8391,-2904.46 8421.82,-2869.21 8460.94,-2905.17 8490,-2868.46 8584.76,-2748.77 8639,-1655.32 8639,-1502.67 8639,-1502.67 8639,-1502.67 8639,-1409.9 8639,-1334.05 8673.22,-1321.09 8691,-1247.36 8706.35,-1183.72 8715,-1167.5 8715,-1102.05 8715,-1102.05 8715,-1102.05 8715,-873.19 8715,-679.67 8777.19,-578.22 8637,-444.81"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_update -->
<g id="edge80" 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="M2546,-4522.55C2516.16,-4517.72 2513.41,-4501.59 2484,-4494.56 2139.56,-4412.22 2035.49,-4526.86 1688,-4458.56 1519.44,-4425.42 1489.05,-4376.18 1324,-4328.57 1253.13,-4308.13 1227.78,-4325.94 1162,-4292.57 1039.67,-4230.53 1015.6,-4196.22 930,-4089.05 778.81,-3899.77 764.69,-3832.98 670,-3610.01 642.31,-3544.81 655.55,-3520.42 622,-3458.04 579.2,-3378.46 494,-3390.43 494,-3300.07 494,-3300.07 494,-3300.07 494,-3188.53 494,-2963.72 424.71,-2909.53 442,-2685.38 453.37,-2538.02 460.63,-2500.98 493,-2356.76 517.53,-2247.47 530.21,-2219.83 585,-2122.13 601.94,-2091.92 1225.34,-1092.79 1245,-1064.28 1330.64,-940.04 1375.31,-924.76 1450,-793.64 1467.47,-762.97 1452.08,-741.7 1480,-720.1 1553.42,-663.31 1833.6,-651.44 1956.56,-648.97"/>
<polygon fill="#e54205" stroke="black" points="1956.51,-652.47 1966.45,-648.79 1956.38,-645.47 1956.51,-652.47"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_users -->
<g id="edge81" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_users</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4880.51,-4684.24C4946.43,-4677.64 5079.14,-4665.29 5192,-4660.54 5390.69,-4652.17 12158.44,-4674.21 12351,-4624.54 12467.7,-4594.43 12483.06,-4552.02 12589,-4494.56 13317.64,-4099.33 13524.81,-4044.09 14231,-3610.01 14355.57,-3533.44 14394.52,-3522.25 14501,-3422.04 14615.31,-3314.48 14619.36,-3265.43 14720,-3144.98 14786.53,-3065.36 14938.2,-2845.15 15029,-2794.92 15115.31,-2747.18 15170.8,-2820.33 15248,-2758.92 15289.19,-2726.16 15281.78,-2700.8 15293,-2649.38 15307.21,-2584.3 15289.59,-2111.07 15317,-2050.36"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_validate -->
<g id="edge82" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_validate</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3648,-4439.56C3640.02,-4361.75 3839.41,-4243.52 3889,-4183.04 3952.15,-4106.02 3961.74,-4081.63 4011,-3995.07 4145.89,-3758.01 4096.91,-3630.76 4308,-3458.04 4349.12,-3424.4 4375.31,-3447.41 4422,-3422.04 4479.7,-3390.7 4491.32,-3376.18 4536,-3328.06 4557.48,-3304.93 4549.5,-3285.57 4577,-3270.08 4675.8,-3214.43 4993.65,-3299.88 5086,-3234.08 5121.06,-3209.1 5089.71,-3171 5124,-3144.98 5173.64,-3107.32 5623.01,-3097.17 5680,-3071.98 5726.31,-3051.52 5724.17,-3025.44 5767,-2998.44 5799.99,-2977.66 5818.48,-2989.03 5847,-2962.44 5908.82,-2904.81 5877.82,-2855.26 5937,-2794.92 5959.85,-2771.62 5973.3,-2776.18 6001,-2758.92 6049.97,-2728.4 6058.93,-2715.74 6108,-2685.38 6136.08,-2668.01 6156.23,-2677.83 6173,-2649.38 6242.91,-2530.75 6038.94,-2118.29 5968.78,-1983.68"/>
<polygon fill="#e54205" stroke="black" points="5972.01,-1982.31 5964.28,-1975.07 5965.81,-1985.55 5972.01,-1982.31"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_versions -->
<g id="edge83" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_versions</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4880.32,-4683.84C4955.82,-4674.9 5120.89,-4653.71 5258,-4624.54 5285.95,-4618.6 5291.58,-4610.53 5320,-4607.54"/>
<path fill="none" stroke="black" d="M5320,-4605.54C5382.34,-4598.98 5397.58,-4594.28 5460,-4588.54 6380.15,-4503.93 6614.54,-4539.73 7535,-4458.56 7859.83,-4429.91 8775.85,-4535.85 8993,-4292.57 9014.76,-4268.19 9000.62,-4250.82 8993,-4219.04 8922.16,-3923.69 8797.08,-3891.49 8683,-3610.01 8650.16,-3528.98 8648.71,-3506.19 8625,-3422.04 8601.76,-3339.56 8591.89,-3319.2 8582,-3234.08 8569.91,-3130.04 8543.28,-3097.26 8578,-2998.44 8637.12,-2830.19 8716.02,-2823.37 8829,-2685.38 8855.34,-2653.21 8880.24,-2654.26 8889,-2613.61"/>
<path fill="none" stroke="black" d="M8889,-2611.61C8917.3,-2498.53 8974.59,-2470.92 8951,-2356.76 8939.45,-2300.88 8911.25,-2241.33 8890.49,-2202.54"/>
<polygon fill="#e54205" stroke="black" points="8893.69,-2201.11 8885.84,-2193.99 8887.54,-2204.45 8893.69,-2201.11"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_web -->
<g id="edge84" 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="M4880.52,-4684.46C4946.45,-4678.17 5079.18,-4666.23 5192,-4660.54 5928.13,-4623.39 6113.4,-4650.62 6850,-4624.54 7175.97,-4613 7257.01,-4599.36 7583,-4588.54 7814.35,-4580.86 9437.91,-4591.99 9666,-4552.54 9704.36,-4545.9 9718.63,-4548.9 9749,-4524.55"/>
<path fill="none" stroke="black" d="M9749,-4522.55C9821.66,-4464.38 9795.77,-3389.32 9796,-3328.06 9796.37,-3230.13 9818.87,-3199.88 9785,-3107.98 9688.39,-2845.84 9577.27,-2812.42 9516,-2539.84 9510.35,-2514.7 9504.04,-2504.69 9516,-2481.86 9529.05,-2456.96 9553.88,-2470.16 9568,-2445.86 9596.05,-2397.61 9576.55,-2376.52 9579,-2320.76 9597.08,-1908.66 9587.14,-1804.3 9557,-1392.9 9543.96,-1214.92 9527,-1170.96 9527,-992.51 9527,-992.51 9527,-992.51 9527,-646.34 9527,-588.05 9513.55,-565 9546,-516.58 9580.81,-464.64 9666.54,-507.34 9667,-444.81"/>
<path fill="none" stroke="black" d="M9667,-442.81C9666.56,-264.34 6706.93,-230.38 6252.31,-226.22"/>
<polygon fill="#e54205" stroke="black" points="6252.66,-222.72 6242.63,-226.13 6252.59,-229.72 6252.66,-222.72"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_lock -->
<g id="edge85" 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="M4880.04,-4683.62C5021.79,-4666.87 5504.01,-4611.78 5904,-4588.54 6259.71,-4567.87 7155.35,-4610.01 7507,-4552.54 7548.34,-4545.78 7555.15,-4526.37 7597,-4524.55"/>
<path fill="none" stroke="black" d="M7597,-4522.55C7685.09,-4518.47 9121.17,-4521.43 9183,-4458.56 9285.37,-4354.47 9298.27,-3262.75 9212,-3144.98 9179.77,-3100.99 9147.57,-3122.5 9095,-3107.98 9028.08,-3089.5 8986.06,-3126.44 8943,-3071.98 8922.73,-3046.35 8928.68,-3027.83 8943,-2998.44 8954.37,-2975.1 8974.52,-2983.99 8989,-2962.44 9003.52,-2940.84 9115.72,-2537.84 9117,-2511.85"/>
<path fill="none" stroke="black" d="M9117,-2509.85C9115.39,-2486.25 9108.69,-2460.65 9102.14,-2440.34"/>
<polygon fill="#e54205" stroke="black" points="9105.53,-2439.46 9099.03,-2431.09 9098.9,-2441.68 9105.53,-2439.46"/>
</g>
<!-- ahriman_models_aur_package -->
<g id="node128" class="node">
<title>ahriman_models_aur_package</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#d13d05" stroke="black" cx="2087" cy="-4154.04" rx="50.82" ry="28.98"/>
<text text-anchor="middle" x="2087" y="-4162.54" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2087" y="-4151.54" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="2087" y="-4140.54" 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="edge86" 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="M3192,-4605.54C3086.99,-4584.28 3081.54,-4522.1 2978,-4494.56 2884.82,-4469.77 2184.94,-4520.43 2111,-4458.56 2034.55,-4394.58 2057.72,-4260.15 2075.21,-4193.79"/>
<polygon fill="#e54205" stroke="black" points="2078.51,-4195.01 2077.77,-4184.44 2071.76,-4193.16 2078.51,-4195.01"/>
</g>
<!-- ahriman_models_build_status -->
<g id="node130" class="node">
<title>ahriman_models_build_status</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#e54205" stroke="black" cx="10247" cy="-3487.03" rx="48.58" ry="28.98"/>
<text text-anchor="middle" x="10247" y="-3495.53" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10247" y="-3484.53" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="10247" y="-3473.53" 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="edge87" 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="M4880.51,-4684.28C4946.43,-4677.75 5079.14,-4665.49 5192,-4660.54 5426.73,-4650.25 9189.09,-4662.22 9421,-4624.54 9472.19,-4616.22 9481.1,-4598.49 9532,-4588.54 9640.68,-4567.3 9930.86,-4603.83 10029,-4552.54 10401.67,-4357.79 10290.64,-3695.15 10255.7,-3527.05"/>
<polygon fill="#e54205" stroke="black" points="10259.13,-3526.36 10253.64,-3517.3 10252.28,-3527.81 10259.13,-3526.36"/>
</g>
<!-- ahriman_models_counters -->
<g id="node132" class="node">
<title>ahriman_models_counters</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a34a28" stroke="black" cx="10065" cy="-3393.05" rx="38.78" ry="28.98"/>
<text text-anchor="middle" x="10065" y="-3401.55" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10065" y="-3390.55" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="10065" y="-3379.55" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">counters</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_models_counters -->
<g id="edge88" 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="M4880.51,-4684.29C4946.43,-4677.76 5079.14,-4665.5 5192,-4660.54 5420.12,-4650.51 9076.27,-4658.95 9302,-4624.54 9356.63,-4616.21 9366.68,-4598.69 9421,-4588.54 9525.06,-4569.1 9804.79,-4606.27 9896,-4552.54 10110.93,-4425.94 10167,-4310.5 10167,-4061.06 10167,-4061.06 10167,-4061.06 10167,-3767.98 10167,-3640.5 10111.14,-3496.91 10082.09,-3430.87"/>
<polygon fill="#e54205" stroke="black" points="10085.39,-3429.67 10078.12,-3421.97 10079,-3432.52 10085.39,-3429.67"/>
</g>
<!-- ahriman_models_migration -->
<g id="node135" class="node">
<title>ahriman_models_migration</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b05a3a" stroke="black" cx="9385" cy="-3035.21" rx="39.7" ry="28.98"/>
<text text-anchor="middle" x="9385" y="-3043.71" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9385" y="-3032.71" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="9385" y="-3021.71" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">migration</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_models_migration -->
<g id="edge89" class="edge">
<title>ahriman_core&#45;&gt;ahriman_models_migration</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4880.8,-4684.56C4946.83,-4678.44 5079.36,-4666.76 5192,-4660.54 5704.36,-4632.25 5833.16,-4641.95 6346,-4624.54 6782.04,-4609.74 6890.86,-4599.93 7327,-4588.54 7391.29,-4586.86 9594.5,-4595.9 9642,-4552.54 9701.51,-4498.22 9822.5,-3169.94 9771,-3107.98 9729.02,-3057.47 9531.5,-3042.34 9436.41,-3037.94"/>
<polygon fill="#e54205" stroke="black" points="9436.72,-3034.45 9426.58,-3037.51 9436.42,-3041.45 9436.72,-3034.45"/>
</g>
<!-- ahriman_models_migration_result -->
<g id="node136" class="node">
<title>ahriman_models_migration_result</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b05a3a" stroke="black" cx="9572" cy="-4523.55" rx="60.62" ry="28.98"/>
<text text-anchor="middle" x="9572" y="-4532.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9572" y="-4521.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="9572" y="-4510.05" 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="edge90" 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="M4880.8,-4684.62C4946.84,-4678.56 5079.37,-4666.97 5192,-4660.54 6939.21,-4560.77 9082.97,-4530.5 9499.88,-4525.38"/>
<polygon fill="#e54205" stroke="black" points="9499.67,-4528.89 9509.62,-4525.26 9499.58,-4521.89 9499.67,-4528.89"/>
</g>
<!-- ahriman_models_package -->
<g id="node137" class="node">
<title>ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#952b03" stroke="black" cx="6389" cy="-3487.03" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="6389" y="-3495.53" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6389" y="-3484.53" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="6389" y="-3473.53" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">package</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_models_package -->
<g id="edge91" 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="M4796,-4605.54C4781.11,-4572.77 4804.36,-4559.56 4796,-4524.55"/>
<path fill="none" stroke="black" d="M4796,-4522.55C4708.56,-4156.12 4856.17,-3951.99 5186,-3769.98"/>
<path fill="none" stroke="black" d="M5186,-3767.98C5287.02,-3702.33 5425.98,-3795.54 5441,-3676"/>
<path fill="none" stroke="black" d="M5441,-3674C5452.51,-3582.37 6145.93,-3510.76 6339.38,-3492.54"/>
<polygon fill="#e54205" stroke="black" points="6339.46,-3496.05 6349.09,-3491.63 6338.81,-3489.08 6339.46,-3496.05"/>
</g>
<!-- ahriman_models_package_description -->
<g id="node138" class="node">
<title>ahriman_models_package_description</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#ae451e" stroke="black" cx="5441" cy="-4060.06" rx="74.91" ry="28.98"/>
<text text-anchor="middle" x="5441" y="-4068.56" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5441" y="-4057.56" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="5441" y="-4046.56" 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="edge92" 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="M4796,-4605.54C4796,-4605.54 5048,-4219.04 5048,-4219.04 5120.26,-4155.52 5153.69,-4160.81 5243,-4125.05 5284.51,-4108.43 5332.17,-4092.92 5370.33,-4081.34"/>
<polygon fill="#e54205" stroke="black" points="5371.32,-4084.69 5379.89,-4078.46 5369.3,-4077.99 5371.32,-4084.69"/>
</g>
<!-- ahriman_models_package_source -->
<g id="node139" class="node">
<title>ahriman_models_package_source</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#e54205" stroke="black" cx="6453" cy="-3675" rx="62.45" ry="28.98"/>
<text text-anchor="middle" x="6453" y="-3683.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6453" y="-3672.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="6453" y="-3661.5" 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="edge93" 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="M4796,-4522.55C4751.44,-4318.18 4898.36,-4271.21 5048,-4125.05 5239.42,-3938.09 5321.02,-3918.19 5575,-3833.97 5864.35,-3738.03 6227.77,-3696.24 6380.33,-3682.04"/>
<polygon fill="#e54205" stroke="black" points="6380.24,-3685.56 6389.87,-3681.16 6379.6,-3678.59 6380.24,-3685.56"/>
</g>
<!-- ahriman_models_remote_source -->
<g id="node142" class="node">
<title>ahriman_models_remote_source</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b83909" stroke="black" cx="4949" cy="-3581.02" rx="57.05" ry="28.98"/>
<text text-anchor="middle" x="4949" y="-3589.52" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4949" y="-3578.52" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="4949" y="-3567.52" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">remote_source</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_models_remote_source -->
<g id="edge94" class="edge">
<title>ahriman_core&#45;&gt;ahriman_models_remote_source</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4644,-4439.56C4639.01,-4429.73 4874.41,-3785.61 4934.95,-3620.33"/>
<polygon fill="#e54205" stroke="black" points="4938.17,-3621.72 4938.32,-3611.13 4931.6,-3619.31 4938.17,-3621.72"/>
</g>
<!-- ahriman_models_repository_paths -->
<g id="node144" class="node">
<title>ahriman_models_repository_paths</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#e54205" stroke="black" cx="5381" cy="-4523.55" rx="62.87" ry="28.98"/>
<text text-anchor="middle" x="5381" y="-4532.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5381" y="-4521.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="5381" y="-4510.05" 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="edge95" 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="M4872.9,-4678.27C4961.92,-4651.34 5203.34,-4578.3 5318.39,-4543.49"/>
<polygon fill="#e54205" stroke="black" points="5319.12,-4546.93 5327.68,-4540.68 5317.09,-4540.23 5319.12,-4546.93"/>
</g>
<!-- ahriman_models_result -->
<g id="node145" class="node">
<title>ahriman_models_result</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#d13d05" stroke="black" cx="6597" cy="-2722.15" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="6597" y="-2730.65" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6597" y="-2719.65" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="6597" y="-2708.65" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">result</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_models_result -->
<g id="edge96" 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="M4829.32,-4671.77C4820.17,-4655.6 4806.34,-4630.29 4796,-4607.54"/>
<path fill="none" stroke="black" d="M4796,-4605.54C4754.89,-4515.07 4691.86,-4528.65 4644,-4441.56"/>
<path fill="none" stroke="black" d="M4644,-4439.56C4472.87,-4298.91 4333.97,-3632.87 4470,-3458.04 4509.98,-3406.66 4552.24,-3447.89 4612,-3422.04 4727.19,-3372.22 4730.73,-3309.13 4850,-3270.08 5085.76,-3192.89 5163.15,-3279.65 5407,-3234.08 5642.88,-3190 5703.43,-3171.02 5922,-3071.98 5949,-3059.75 6350.8,-2806.71 6378,-2794.92 6432.61,-2771.25 6450.6,-2777.94 6507,-2758.92 6522.38,-2753.73 6538.97,-2747.37 6553.66,-2741.46"/>
<polygon fill="#e54205" stroke="black" points="6554.63,-2744.84 6562.57,-2737.82 6551.99,-2738.36 6554.63,-2744.84"/>
</g>
<!-- ahriman_web_apispec -->
<g id="node153" class="node">
<title>ahriman_web_apispec</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#914b30" stroke="black" cx="15273" cy="-991.51" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="15273" y="-1000.01" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="15273" y="-989.01" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="15273" y="-978.01" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">apispec</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_web_apispec -->
<g id="edge97" class="edge">
<title>ahriman_core&#45;&gt;ahriman_web_apispec</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4880.51,-4684.24C4946.43,-4677.65 5079.14,-4665.31 5192,-4660.54 5381.2,-4652.55 11827.24,-4677.65 12009,-4624.54 12066.52,-4607.73 12073.49,-4586.3 12123,-4552.54 12568.63,-4248.66 12655.28,-4137.72 13101,-3833.97 13295.1,-3701.7 13337.79,-3656.83 13548,-3552.03 13904.87,-3374.11 14054.03,-3453.5 14387,-3234.08 14432.96,-3203.79 14431.76,-3181.42 14473,-3144.98 14667.12,-2973.46 14710.11,-2916.21 14939,-2794.92 14982.59,-2771.82 14999.47,-2780.15 15044,-2758.92 15126.83,-2719.44 15159.09,-2718.88 15219,-2649.38 15262.54,-2598.87 15279,-2578.54 15279,-2511.85 15279,-2511.85 15279,-2511.85 15279,-2157.9 15279,-1971.95 15232.61,-1500.12 15283,-1321.13"/>
</g>
<!-- ahriman_web_middlewares_auth_handler -->
<g id="node156" class="node">
<title>ahriman_web_middlewares_auth_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#733b26" stroke="black" cx="15419" cy="-991.51" rx="52.15" ry="36.54"/>
<text text-anchor="middle" x="15419" y="-1005.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="15419" y="-994.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="15419" y="-983.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">middlewares.</text>
<text text-anchor="middle" x="15419" y="-972.51" 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="edge98" 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="M4880.51,-4684.24C4946.43,-4677.65 5079.14,-4665.3 5192,-4660.54 5382.5,-4652.5 11872.2,-4675.25 12056,-4624.54 12187.08,-4588.38 12201.91,-4536.96 12313,-4458.56 12416.58,-4385.45 12442.25,-4366.84 12545,-4292.57 12770.68,-4129.45 12839.52,-4104.23 13051,-3923.07 13093.51,-3886.66 13093.82,-3865.6 13140,-3833.97 13197.5,-3794.59 14225.36,-3358.62 14288,-3328.06 14367.34,-3289.34 14386.72,-3278.53 14463,-3234.08 14553.79,-3181.17 14572.82,-3161.93 14663,-3107.98 14820.4,-3013.82 14862.27,-2994.61 15022,-2904.46 15136.99,-2839.56 15192.26,-2856.69 15281,-2758.92 15573.7,-2436.43 15521.18,-2223.01 15449,-1793.51 15434.13,-1705.02 15283.58,-1495.18 15317,-1411.9"/>
</g>
<!-- ahriman_web_views_api_swagger -->
<g id="node182" class="node">
<title>ahriman_web_views_api_swagger</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a3f28" stroke="black" cx="14895" cy="-874.19" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="14895" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="14895" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="14895" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="14895" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">api.</text>
<text text-anchor="middle" x="14895" y="-849.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">swagger</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_web_views_api_swagger -->
<g id="edge99" class="edge">
<title>ahriman_core&#45;&gt;ahriman_web_views_api_swagger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11995,-4605.54C12003.85,-4601.35 12001.24,-4594.5 12009,-4588.54 12039.61,-4565.04 12059.19,-4578.2 12088,-4552.54 12110.48,-4532.52 12104.41,-4518.23 12123,-4494.56 12303.39,-4264.8 12359.87,-4212.25 12589,-4031.07 13295.54,-3472.4 13630.96,-3553.08 14311,-2962.44 14591.55,-2718.78 14665.46,-2645 14847,-2320.76 14934.05,-2165.29 14975,-2119.01 14975,-1940.82 14975,-1940.82 14975,-1940.82 14975,-1829.28 14975,-1630.31 14786.78,-1571.25 14875,-1392.9 14898.3,-1345.78 14931.26,-1357.71 14969,-1321.13"/>
<path fill="none" stroke="black" d="M14969,-1319.13C14980.69,-1305.44 14978.22,-1298.47 14988,-1283.36 14999.02,-1266.34 15004.99,-1264.38 15016,-1247.36 15055.7,-1185.99 15100.76,-1174.72 15093,-1102.05"/>
</g>
<!-- ahriman_web_views_base -->
<g id="node183" class="node">
<title>ahriman_web_views_base</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#952b03" stroke="black" cx="13733" cy="-991.51" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="13733" y="-1005.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="13733" y="-994.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="13733" y="-983.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="13733" y="-972.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">base</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_web_views_base -->
<g id="edge100" 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="M4880.51,-4684.25C4946.43,-4677.67 5079.14,-4665.34 5192,-4660.54 5363.46,-4653.25 11205.26,-4672.62 11370,-4624.54 11635.73,-4546.98 11728.41,-4512.13 11897,-4292.57 11944.48,-4230.74 11917.78,-4196.49 11949,-4125.05 12028.1,-3944.04 12047.42,-3894.11 12171,-3739.99 12550.3,-3266.94 12933.38,-3336.15 13119,-2758.92 13182.98,-2559.96 13274,-2040.28 13274,-1831.28 13274,-1831.28 13274,-1831.28 13274,-1610.2 13274,-1539.99 13286.66,-1514.86 13336,-1464.9 13376.97,-1423.41 13416.61,-1454.88 13456,-1411.9"/>
<path fill="none" stroke="black" d="M13456,-1409.9C13548.01,-1298.16 13568.48,-1266.37 13635,-1137.82 13642.85,-1122.66 13639.29,-1116.09 13649,-1102.05"/>
<path fill="none" stroke="black" d="M13649,-1100.05C13663.05,-1074.09 13683.31,-1047.94 13700.42,-1027.92"/>
<polygon fill="#e54205" stroke="black" points="13702.86,-1030.44 13706.78,-1020.6 13697.58,-1025.85 13702.86,-1030.44"/>
</g>
<!-- ahriman_web_views_index -->
<g id="node184" class="node">
<title>ahriman_web_views_index</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a3f28" stroke="black" cx="14763" cy="-874.19" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="14763" y="-888.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="14763" y="-877.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="14763" y="-866.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="14763" y="-855.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">index</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_web_views_index -->
<g id="edge101" 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="M12109,-4439.56C12133.34,-4389.5 12363.47,-4073.92 12399,-4031.07 12476.66,-3937.4 12494.99,-3911.22 12589,-3833.97 13211.99,-3322.06 13482.39,-3355.52 14125,-2868.46 14186.03,-2822.2 14204.43,-2813.64 14258,-2758.92 14287.12,-2729.18 14284.28,-2712.34 14316,-2685.38 14341.16,-2664 14354.91,-2669.63 14381,-2649.38 14430.11,-2611.25 14538.31,-2497.46 14573,-2445.86 14640.87,-2344.91 14655.77,-2314 14684,-2195.67 14704.74,-2108.75 14679.64,-1464.58 14733,-1392.9 14760.71,-1355.67 14797.64,-1389.15 14831,-1356.9 14846.71,-1341.71 14993.14,-1009.17 14979,-992.51"/>
<path fill="none" stroke="black" d="M14979,-990.51C14976.15,-986.62 14868.88,-930.34 14806.61,-897.87"/>
<polygon fill="#e54205" stroke="black" points="14808.48,-894.9 14797.99,-893.38 14805.24,-901.11 14808.48,-894.9"/>
</g>
<!-- ahriman_web_views_service_search -->
<g id="node191" class="node">
<title>ahriman_web_views_service_search</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#733b26" stroke="black" cx="11973" cy="-874.19" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="11973" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="11973" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="11973" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="11973" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">service.</text>
<text text-anchor="middle" x="11973" y="-849.69" 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="edge102" 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="M4880.52,-4684.39C4946.44,-4678.01 5079.17,-4665.95 5192,-4660.54 5318.86,-4654.46 9649.21,-4608.96 9763,-4552.54 9906.08,-4481.59 10015,-4039.22 10015,-3879.52 10015,-3879.52 10015,-3879.52 10015,-3674 10015,-3536.25 10013.13,-3501.76 10017,-3364.06 10022.02,-3185.41 10032.55,-3141.11 10037,-2962.44 10044.09,-2677.34 10033.98,-2605.96 10033,-2320.76 10032.53,-2183.42 10016,-2143.99 10056,-2012.59 10066.02,-1979.68 10081.35,-1975.03 10085,-1940.82"/>
<path fill="none" stroke="black" d="M10085,-1938.82C10076.07,-1743.1 10021,-1698.59 10021,-1502.67 10021,-1502.67 10021,-1502.67 10021,-1409.9 10021,-1350.06 9996.77,-1339.1 9975,-1283.36 9962.42,-1251.15 9952.85,-1245.26 9945,-1211.59"/>
</g>
<!-- ahriman_web_views_status_logs -->
<g id="node194" class="node">
<title>ahriman_web_views_status_logs</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#733b26" stroke="black" cx="12293" cy="-874.19" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="12293" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="12293" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="12293" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="12293" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status.</text>
<text text-anchor="middle" x="12293" y="-849.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">logs</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_web_views_status_logs -->
<g id="edge103" class="edge">
<title>ahriman_core&#45;&gt;ahriman_web_views_status_logs</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11523,-4439.56C11970.32,-4005.07 12039.68,-3824.29 12241,-3234.08 12349.2,-2916.88 12327.94,-2815.29 12294,-2481.86 12277.47,-2319.47 12288.67,-2270.21 12220,-2122.13 12193.96,-2065.98 12181.53,-2052.24 12134,-2012.59 11902.49,-1819.47 11713.26,-1908.76 11562,-1647.97 11455.53,-1464.42 11653.68,-1326.2 11506,-1173.82 11430.94,-1096.36 11336.38,-1219.55 11266,-1137.82 11244.67,-1113.05 11249.28,-1092.36 11266,-1064.28 11318.24,-976.52 11369.61,-982.13 11468,-954.74 11634.73,-908.31 12086.37,-985.62 12246,-918.74 12249.65,-917.21 12253.19,-915.26 12256.59,-913.05"/>
<polygon fill="#e54205" stroke="black" points="12258.61,-915.91 12264.52,-907.11 12254.42,-910.3 12258.61,-915.91"/>
</g>
<!-- ahriman_web_views_status_package -->
<g id="node195" class="node">
<title>ahriman_web_views_status_package</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#733b26" stroke="black" cx="12199" cy="-874.19" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="12199" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="12199" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="12199" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="12199" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status.</text>
<text text-anchor="middle" x="12199" y="-849.69" 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="edge104" 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="M4880.51,-4684.27C4946.43,-4677.71 5079.14,-4665.41 5192,-4660.54 6304.55,-4612.5 9091.64,-4694.88 10203,-4624.54 10498.55,-4605.83 11316.96,-4654.26 11523,-4441.56"/>
<path fill="none" stroke="black" d="M11523,-4439.56C11557.41,-4402.64 11530.94,-4376.42 11547,-4328.57 11647.75,-4028.4 12147,-3352.85 12147,-3036.21 12147,-3036.21 12147,-3036.21 12147,-2830.69 12147,-2489.23 12115.49,-2336.86 11850,-2122.13 11766,-2054.19 11736.81,-2042.51 11633,-2012.59 11468.71,-1965.24 11404.61,-2049.58 11250,-1976.59 11146.25,-1927.61 11150.99,-1872.73 11068,-1793.51 10806.45,-1543.84 10686.23,-1533.37 10465,-1247.36 10420.41,-1189.71 10342.86,-1158.47 10389,-1102.05"/>
</g>
<!-- ahriman_web_views_user_login -->
<g id="node199" class="node">
<title>ahriman_web_views_user_login</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#733b26" stroke="black" cx="13733" cy="-874.19" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="13733" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="13733" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="13733" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="13733" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">user.</text>
<text text-anchor="middle" x="13733" y="-849.69" 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="edge105" 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="M11995,-4605.54C12073.13,-4563.42 12076.84,-4524.29 12109,-4441.56"/>
<path fill="none" stroke="black" d="M12109,-4439.56C12119,-4390.09 12113.78,-4375.24 12133,-4328.57 12192.74,-4183.51 12221.55,-4150.74 12323,-4031.07 12522.86,-3795.31 13113.22,-3271.95 13395,-3144.98 13609.92,-3048.14 13739.51,-3141.36 13893,-2962.44 14104.47,-2715.93 13865.71,-2555.14 13895,-2231.67 13908.74,-2079.88 13923.81,-2038.85 13993,-1903.05 14019.78,-1850.48 14029.41,-1838.15 14068,-1793.51 14083.43,-1775.67 14090.81,-1774.67 14107,-1757.51 14150.25,-1711.69 14163.48,-1701.33 14197,-1647.97 14323.18,-1447.11 14253.87,-1318.29 14442,-1173.82 14479.46,-1145.05 14507.35,-1169.92 14542,-1137.82 14568.28,-1113.47 14549.93,-1089.87 14575,-1064.28 14623.38,-1014.89 14739.75,-1056.26 14713,-992.51"/>
</g>
<!-- ahriman_web_views_user_logout -->
<g id="node200" class="node">
<title>ahriman_web_views_user_logout</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#733b26" stroke="black" cx="13615" cy="-874.19" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="13615" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="13615" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="13615" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="13615" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">user.</text>
<text text-anchor="middle" x="13615" y="-849.69" 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="edge106" 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="M4880.51,-4684.25C4946.43,-4677.67 5079.14,-4665.33 5192,-4660.54 5286.4,-4656.53 11915.78,-4659.05 11995,-4607.54"/>
<path fill="none" stroke="black" d="M11995,-4605.54C12020.9,-4588.7 12012.56,-4358.78 12019,-4328.57 12072.83,-4076.23 12139.81,-4015.68 12323,-3833.97 12704.31,-3455.76 12771.57,-3251.89 13289,-3107.98 13370.93,-3085.19 13607.57,-3129.74 13670,-3071.98 13863.53,-2892.94 13743.17,-2132.52 13873,-1903.05 13958.35,-1752.2 14072.5,-1792.62 14168,-1647.97 14248.32,-1526.33 14257.56,-1082.64 14143,-992.51"/>
</g>
<!-- ahriman_web_web -->
<g id="node201" class="node">
<title>ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#733b26" stroke="black" cx="9872" cy="-545.57" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="9872" y="-554.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9872" y="-543.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="9872" y="-532.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_web_web -->
<g id="edge107" 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="M9749,-4522.55C9776.64,-4504.13 9798.97,-4417.51 9811,-4386.56 9927.24,-4087.46 9939,-3996.89 9939,-3676 9939,-3676 9939,-3676 9939,-3486.03 9939,-3252.68 9969.33,-3195.63 9978,-2962.44 9989.35,-2657.2 9925,-2582.67 9925,-2277.22 9925,-2277.22 9925,-2277.22 9925,-2048.36 9925,-1788.34 9910.98,-1723.3 9882,-1464.9 9874.62,-1399.04 9773.92,-938.65 9793,-875.19"/>
</g>
<!-- ahriman_core_alpm -->
<g id="node38" class="node">
<title>ahriman_core_alpm</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f95010" stroke="black" cx="6681" cy="-3768.98" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="6681" y="-3777.48" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6681" y="-3766.48" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6681" y="-3755.48" 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="edge108" 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="M6642.32,-3766.91C6496.74,-3762.9 5967.91,-3748.58 5532,-3739.99 5465.59,-3738.68 3200.84,-3732.83 3141,-3703.99 3092.98,-3680.84 2562.82,-3005.94 2532,-2962.44 2437.89,-2829.65 2408.12,-2798.1 2342,-2649.38 2303.64,-2563.1 2294.7,-2539.29 2281,-2445.86 2275.25,-2406.68 2266.69,-2393.69 2281,-2356.76 2316.04,-2266.39 2373.14,-2275.58 2428,-2195.67 2551.21,-2016.18 2588.36,-1967.17 2647,-1757.51 2752.86,-1379.05 2614.92,-1257.72 2705,-875.19"/>
</g>
<!-- ahriman_core_repository_repository -->
<g id="node104" class="node">
<title>ahriman_core_repository_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#733b26" stroke="black" cx="7600" cy="-1611.2" rx="43.68" ry="36.54"/>
<text text-anchor="middle" x="7600" y="-1625.2" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7600" y="-1614.2" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7600" y="-1603.2" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository.</text>
<text text-anchor="middle" x="7600" y="-1592.2" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository</text>
</g>
<!-- ahriman_core_alpm&#45;&gt;ahriman_core_repository_repository -->
<g id="edge109" class="edge">
<title>ahriman_core_alpm&#45;&gt;ahriman_core_repository_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6809,-3674C6987.17,-3444.83 7949,-3326.5 7949,-3036.21 7949,-3036.21 7949,-3036.21 7949,-2932.45 7949,-2845.86 8023.08,-2853.33 8087,-2794.92 8105.4,-2778.11 8119.45,-2781.5 8130,-2758.92 8270.63,-2457.78 7979.34,-2328.37 8083,-2012.59 8108.03,-1936.35 8336.53,-1791.57 8297,-1721.74"/>
<path fill="none" stroke="black" d="M8297,-1719.74C8210.74,-1626.01 7804.23,-1613.6 7655.06,-1612.24"/>
<polygon fill="#f95010" stroke="black" points="7655.47,-1608.75 7645.45,-1612.17 7655.42,-1615.75 7655.47,-1608.75"/>
</g>
<!-- ahriman_core_repository_repository_properties -->
<g id="node105" class="node">
<title>ahriman_core_repository_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#733b26" stroke="black" cx="7671" cy="-1939.82" rx="77.15" ry="36.54"/>
<text text-anchor="middle" x="7671" y="-1953.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7671" y="-1942.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7671" y="-1931.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository.</text>
<text text-anchor="middle" x="7671" y="-1920.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository_properties</text>
</g>
<!-- ahriman_core_alpm&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge110" class="edge">
<title>ahriman_core_alpm&#45;&gt;ahriman_core_repository_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6809,-3580.02C6764.05,-3510.66 6809,-3476.7 6809,-3394.05 6809,-3394.05 6809,-3394.05 6809,-3298.07 6809,-3157.68 6836.13,-3118.44 6909,-2998.44 7021.08,-2813.86 7122.7,-2825.98 7247,-2649.38 7330.43,-2530.85 7318.36,-2482.2 7391,-2356.76 7472.89,-2215.35 7585.24,-2057.68 7639.35,-1983.63"/>
<polygon fill="#f95010" stroke="black" points="7641.98,-1985.95 7645.07,-1975.81 7636.34,-1981.81 7641.98,-1985.95"/>
</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="M6712.62,-3752.12C6741.27,-3736.31 6782.88,-3709.59 6809,-3676"/>
<path fill="none" stroke="black" d="M6809,-3674C6834.09,-3641.73 6831.23,-3616.32 6809,-3582.02"/>
<path fill="none" stroke="black" d="M6809,-3580.02C6768.93,-3518.19 6540.95,-3497.02 6438.66,-3490.57"/>
<polygon fill="#f95010" stroke="black" points="6439.12,-3487.09 6428.92,-3489.98 6438.69,-3494.08 6439.12,-3487.09"/>
</g>
<!-- ahriman_core_alpm&#45;&gt;ahriman_models_remote_source -->
<g id="edge112" class="edge">
<title>ahriman_core_alpm&#45;&gt;ahriman_models_remote_source</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6642.33,-3768.27C6458.37,-3768.84 5654.52,-3762.05 5020,-3610.01 5014.04,-3608.58 5007.92,-3606.76 5001.88,-3604.72"/>
<polygon fill="#f95010" stroke="black" points="5003.19,-3601.47 4992.6,-3601.39 5000.83,-3608.06 5003.19,-3601.47"/>
</g>
<!-- ahriman_core_alpm&#45;&gt;ahriman_web_views_service_search -->
<g id="edge113" 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="M6718.88,-3763.31C6961.15,-3733.4 8289.02,-3569.73 8470,-3552.03 8576.46,-3541.61 8848.8,-3550.66 8950,-3516.03 9034.23,-3487.2 9562.19,-3142.14 9617,-3071.98 9675.89,-2996.6 9664.77,-2961.5 9687,-2868.46 9744.61,-2627.4 9754.11,-2565.7 9792,-2320.76 9803.01,-2249.62 9811,-2231.89 9811,-2159.9 9811,-2159.9 9811,-2159.9 9811,-1829.28 9811,-1683.85 9831,-1648.1 9831,-1502.67 9831,-1502.67 9831,-1502.67 9831,-1209.59 9831,-1158.48 9866.21,-1023.31 9907,-992.51"/>
<path fill="none" stroke="black" d="M9907,-990.51C9939.22,-963.87 9953.06,-963.22 9994,-954.74 10204.24,-911.17 11726.85,-998.97 11926,-918.74 11929.67,-917.26 11933.23,-915.35 11936.64,-913.16"/>
<polygon fill="#f95010" stroke="black" points="11938.64,-916.03 11944.58,-907.26 11934.47,-910.41 11938.64,-916.03"/>
</g>
<!-- ahriman_core_alpm_pacman -->
<g id="node39" class="node">
<title>ahriman_core_alpm_pacman</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b33404" stroke="black" cx="1284" cy="-2401.31" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="1284" y="-2415.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1284" y="-2404.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="1284" y="-2393.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">alpm.</text>
<text text-anchor="middle" x="1284" y="-2382.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">pacman</text>
</g>
<!-- ahriman_core_alpm_remote_aur -->
<g id="node41" class="node">
<title>ahriman_core_alpm_remote_aur</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a3f28" stroke="black" cx="1454" cy="-3878.52" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="1454" y="-3898.02" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1454" y="-3887.02" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="1454" y="-3876.02" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">alpm.</text>
<text text-anchor="middle" x="1454" y="-3865.02" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">remote.</text>
<text text-anchor="middle" x="1454" y="-3854.02" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">aur</text>
</g>
<!-- ahriman_core_alpm_pacman&#45;&gt;ahriman_core_alpm_remote_aur -->
<g id="edge114" class="edge">
<title>ahriman_core_alpm_pacman&#45;&gt;ahriman_core_alpm_remote_aur</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1262.79,-2432.13C1253.88,-2446.45 1244.54,-2464.29 1240,-2481.86 1178.37,-2720.61 1292,-2787.64 1292,-3034.21 1292,-3108.98 1292,-3108.98 1292,-3108.98 1292,-3321.04 1368,-3367.96 1368,-3580.02 1368,-3676 1368,-3676 1368,-3676 1368,-3734.21 1398.73,-3794.84 1423.45,-3834.19"/>
<polygon fill="#b33404" stroke="black" points="1420.41,-3835.94 1428.77,-3842.45 1426.3,-3832.15 1420.41,-3835.94"/>
</g>
<!-- ahriman_core_alpm_remote_official -->
<g id="node42" class="node">
<title>ahriman_core_alpm_remote_official</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a3f28" stroke="black" cx="1303" cy="-2276.22" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="1303" y="-2295.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1303" y="-2284.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="1303" y="-2273.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">alpm.</text>
<text text-anchor="middle" x="1303" y="-2262.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">remote.</text>
<text text-anchor="middle" x="1303" y="-2251.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">official</text>
</g>
<!-- ahriman_core_alpm_pacman&#45;&gt;ahriman_core_alpm_remote_official -->
<g id="edge115" class="edge">
<title>ahriman_core_alpm_pacman&#45;&gt;ahriman_core_alpm_remote_official</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1289.5,-2364.71C1291.09,-2354.38 1292.87,-2342.85 1294.6,-2331.65"/>
<polygon fill="#b33404" stroke="black" points="1298.01,-2332.52 1296.07,-2322.1 1291.09,-2331.45 1298.01,-2332.52"/>
</g>
<!-- ahriman_core_alpm_remote_official_syncdb -->
<g id="node43" class="node">
<title>ahriman_core_alpm_remote_official_syncdb</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a472e" stroke="black" cx="950" cy="-2276.22" rx="56.64" ry="44.6"/>
<text text-anchor="middle" x="950" y="-2295.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="950" y="-2284.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="950" y="-2273.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">alpm.</text>
<text text-anchor="middle" x="950" y="-2262.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">remote.</text>
<text text-anchor="middle" x="950" y="-2251.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">official_syncdb</text>
</g>
<!-- ahriman_core_alpm_pacman&#45;&gt;ahriman_core_alpm_remote_official_syncdb -->
<g id="edge116" class="edge">
<title>ahriman_core_alpm_pacman&#45;&gt;ahriman_core_alpm_remote_official_syncdb</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1247.67,-2388.43C1202.31,-2373.42 1122.46,-2346.44 1055,-2320.76 1040.31,-2315.17 1024.59,-2308.84 1009.91,-2302.78"/>
<polygon fill="#b33404" stroke="black" points="1011.41,-2299.61 1000.83,-2299 1008.72,-2306.07 1011.41,-2299.61"/>
</g>
<!-- ahriman_core_alpm_remote_remote -->
<g id="node44" class="node">
<title>ahriman_core_alpm_remote_remote</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#914b30" stroke="black" cx="1102" cy="-2276.22" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="1102" y="-2295.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1102" y="-2284.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="1102" y="-2273.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">alpm.</text>
<text text-anchor="middle" x="1102" y="-2262.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">remote.</text>
<text text-anchor="middle" x="1102" y="-2251.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">remote</text>
</g>
<!-- ahriman_core_alpm_pacman&#45;&gt;ahriman_core_alpm_remote_remote -->
<g id="edge117" class="edge">
<title>ahriman_core_alpm_pacman&#45;&gt;ahriman_core_alpm_remote_remote</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1253.13,-2379.43C1223.31,-2359.27 1177.91,-2328.56 1144.65,-2306.07"/>
<polygon fill="#b33404" stroke="black" points="1146.68,-2303.21 1136.44,-2300.51 1142.76,-2309.01 1146.68,-2303.21"/>
</g>
<!-- ahriman_core_alpm_pacman&#45;&gt;ahriman_core_repository_repository -->
<g id="edge118" class="edge">
<title>ahriman_core_alpm_pacman&#45;&gt;ahriman_core_repository_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1320.04,-2388.24C1563.45,-2307.38 2993.84,-1842.89 4200,-1683.97 4544.61,-1638.57 7132.16,-1615.97 7544.64,-1612.64"/>
<polygon fill="#b33404" stroke="black" points="7544.45,-1616.14 7554.42,-1612.56 7544.39,-1609.14 7544.45,-1616.14"/>
</g>
<!-- ahriman_core_alpm_pacman&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge119" class="edge">
<title>ahriman_core_alpm_pacman&#45;&gt;ahriman_core_repository_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1322.21,-2396.39C1430.25,-2385.25 1747.18,-2352.15 2010,-2320.76 2043.14,-2316.81 4359.71,-2014.94 4393,-2012.59 5703.18,-1920.21 6037.03,-2056.97 7348,-1976.59 7428.88,-1971.63 7520.68,-1960.98 7585.68,-1952.58"/>
<polygon fill="#b33404" stroke="black" points="7586.13,-1956.05 7595.59,-1951.29 7585.22,-1949.11 7586.13,-1956.05"/>
</g>
<!-- ahriman_core_alpm_pacman&#45;&gt;ahriman_models_package -->
<g id="edge120" 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="M1311.79,-2426.75C1319.47,-2433.18 1327.91,-2439.96 1336,-2445.86 1630.17,-2660.53 1702.37,-2727.12 2038,-2868.46 2490.1,-3058.85 3807.29,-3388.83 4052,-3422.04 4516.11,-3485.04 6042.81,-3486.46 6338.98,-3486.13"/>
<polygon fill="#b33404" stroke="black" points="6338.68,-3489.63 6348.67,-3486.12 6338.67,-3482.63 6338.68,-3489.63"/>
</g>
<!-- ahriman_core_alpm_remote -->
<g id="node40" class="node">
<title>ahriman_core_alpm_remote</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b33404" stroke="black" cx="1928" cy="-3878.52" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="1928" y="-3892.52" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1928" y="-3881.52" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="1928" y="-3870.52" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">alpm.</text>
<text text-anchor="middle" x="1928" y="-3859.52" 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="edge121" 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="M1930.84,-3841.87C1933.8,-3801.62 1938,-3734.15 1938,-3676 1938,-3676 1938,-3676 1938,-3392.05 1938,-3029.24 1806.25,-2919.02 1924,-2575.84 1930.58,-2556.67 1943.89,-2558.42 1952,-2539.84 1985,-2464.28 1962.57,-2436.9 1982,-2356.76 2007.83,-2250.23 2000.13,-2215.23 2058,-2122.13 2070.11,-2102.64 2082.3,-2105.24 2095,-2086.13 2172.37,-1969.77 2154.07,-1921.57 2210,-1793.51 2339.48,-1497.06 2414.24,-1441.4 2526,-1137.82 2555.06,-1058.88 2539.56,-1031.49 2574,-954.74 2617.02,-858.85 2680.5,-860.08 2705,-757.87"/>
<path fill="none" stroke="black" d="M2705,-755.87C2707.42,-736.05 2706.78,-714.04 2705.2,-695.13"/>
<polygon fill="#b33404" stroke="black" points="2708.7,-694.93 2704.27,-685.3 2701.73,-695.59 2708.7,-694.93"/>
</g>
<!-- ahriman_core_alpm_remote&#45;&gt;ahriman_models_package -->
<g id="edge122" 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="M1965.68,-3869.86C2081.48,-3846.59 2442.58,-3776.16 2745,-3739.99 2967.98,-3713.32 3025.39,-3724.78 3249,-3703.99 3474.39,-3683.04 3529.77,-3668.57 3755,-3646.01 4241.02,-3597.31 4362.53,-3583.06 4850,-3552.03 5434.89,-3514.78 6146.28,-3494.41 6338.9,-3489.31"/>
<polygon fill="#b33404" stroke="black" points="6338.89,-3492.82 6348.8,-3489.05 6338.71,-3485.82 6338.89,-3492.82"/>
</g>
<!-- ahriman_core_alpm_remote&#45;&gt;ahriman_models_remote_source -->
<g id="edge123" class="edge">
<title>ahriman_core_alpm_remote&#45;&gt;ahriman_models_remote_source</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1966.47,-3873.76C2283.83,-3842.72 4467.79,-3629.09 4881.46,-3588.62"/>
<polygon fill="#b33404" stroke="black" points="4881.77,-3592.11 4891.39,-3587.65 4881.09,-3585.14 4881.77,-3592.11"/>
</g>
<!-- ahriman_core_alpm_remote&#45;&gt;ahriman_web_views_service_search -->
<g id="edge124" 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="M1966.55,-3877C2406.94,-3871.03 6476.36,-3815.5 6728,-3797.97 7750.98,-3726.72 8041.12,-3827.91 9018,-3516.03 9380.41,-3400.32 9561.13,-3426.29 9771,-3108.98 9822.21,-3031.56 9849,-2370.04 9849,-2277.22 9849,-2277.22 9849,-2277.22 9849,-2048.36 9849,-1805.67 9869,-1745.36 9869,-1502.67 9869,-1502.67 9869,-1502.67 9869,-1409.9 9869,-1362.7 9952.84,-1258.12 9945,-1211.59"/>
<path fill="none" stroke="black" d="M9945,-1209.59C9934.24,-1161.81 9869.25,-1023.71 9907,-992.51"/>
</g>
<!-- ahriman_core_alpm_remote_aur&#45;&gt;ahriman_core_alpm_remote -->
<g id="edge125" class="edge">
<title>ahriman_core_alpm_remote_aur&#45;&gt;ahriman_core_alpm_remote</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1492.42,-3878.52C1620.96,-3878.52 1749.51,-3878.52 1878.05,-3878.52"/>
<polygon fill="#7a3f28" stroke="black" points="1877.78,-3882.02 1887.78,-3878.52 1877.78,-3875.02 1877.78,-3882.02"/>
</g>
<!-- ahriman_core_alpm_remote_official&#45;&gt;ahriman_core_alpm_remote -->
<g id="edge126" class="edge">
<title>ahriman_core_alpm_remote_official&#45;&gt;ahriman_core_alpm_remote</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1329.21,-2309.29C1361.08,-2348.86 1415.84,-2418.64 1458,-2481.86 1605.81,-2703.49 1661.33,-2751.8 1762,-2998.44 1860.97,-3240.92 1849.63,-3317.1 1897.88,-3569.05"/>
<polygon fill="#7a3f28" stroke="black" points="1894.38,-3569.38 1899.71,-3578.53 1901.25,-3568.05 1894.38,-3569.38"/>
</g>
<!-- ahriman_core_alpm_remote_official_syncdb&#45;&gt;ahriman_core_alpm_remote -->
<g id="edge127" class="edge">
<title>ahriman_core_alpm_remote_official_syncdb&#45;&gt;ahriman_core_alpm_remote</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M951.13,-2321.02C954.29,-2392.36 966.34,-2536.96 1012,-2649.38 1203.77,-3121.51 1416.9,-3141.65 1719,-3552.03 1791.56,-3650.59 1866.73,-3773.78 1904.02,-3836.59"/>
<polygon fill="#8a472e" stroke="black" points="1900.8,-3838.01 1908.91,-3844.83 1906.82,-3834.44 1900.8,-3838.01"/>
</g>
<!-- ahriman_core_alpm_remote_remote&#45;&gt;ahriman_core_alpm_remote -->
<g id="edge128" class="edge">
<title>ahriman_core_alpm_remote_remote&#45;&gt;ahriman_core_alpm_remote</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1099.25,-2320.92C1096.7,-2394.33 1100.52,-2544.63 1164,-2649.38 1335.04,-2931.62 1748,-2777.96 1748,-3107.98 1748,-3190.53 1748,-3190.53 1748,-3190.53 1748,-3279.9 1863.54,-3475.5 1896.49,-3569.36"/>
<polygon fill="#914b30" stroke="black" points="1893.07,-3570.18 1899.53,-3578.58 1899.72,-3567.99 1893.07,-3570.18"/>
<path fill="none" stroke="black" d="M1900,-3582.02C1911.23,-3630.53 1921.46,-3774.19 1925.8,-3841.71"/>
</g>
<!-- ahriman_core_alpm_repo -->
<g id="node45" class="node">
<title>ahriman_core_alpm_repo</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#914b30" stroke="black" cx="7661" cy="-2401.31" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="7661" y="-2415.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7661" y="-2404.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7661" y="-2393.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">alpm.</text>
<text text-anchor="middle" x="7661" y="-2382.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repo</text>
</g>
<!-- ahriman_core_alpm_repo&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge129" class="edge">
<title>ahriman_core_alpm_repo&#45;&gt;ahriman_core_repository_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7662.7,-2364.55C7665.55,-2301.24 7671,-2165.24 7671,-2050.36"/>
</g>
<!-- ahriman_core_auth -->
<g id="node46" class="node">
<title>ahriman_core_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#db4005" stroke="black" cx="14521" cy="-1320.13" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="14521" y="-1328.63" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="14521" y="-1317.63" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="14521" y="-1306.63" 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="edge130" 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="M14559.48,-1317.14C14641.08,-1312.1 14836.78,-1295.58 14993,-1247.36 15100.42,-1214.2 15124.6,-1195.66 15221,-1137.82 15277.36,-1104 15337.63,-1058.22 15376.67,-1027.15"/>
<polygon fill="#db4005" stroke="black" points="15378.84,-1029.9 15384.46,-1020.92 15374.46,-1024.44 15378.84,-1029.9"/>
</g>
<!-- ahriman_core_auth&#45;&gt;ahriman_web_views_base -->
<g id="edge131" 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="M14482.53,-1317.05C14329.73,-1308.41 13771.64,-1272.8 13725,-1211.59"/>
</g>
<!-- ahriman_core_auth&#45;&gt;ahriman_web_views_index -->
<g id="edge132" 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="M14713,-1209.59C14728.33,-1198.12 14722.86,-1186.72 14737,-1173.82 14761.68,-1151.3 14780.53,-1162.55 14803,-1137.82 14850.21,-1085.84 14885.77,-1059.58 14865,-992.51"/>
</g>
<!-- ahriman_core_auth&#45;&gt;ahriman_web_views_user_login -->
<g id="edge133" 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="M14558.08,-1311.54C14596.1,-1302.12 14655.02,-1282.79 14694,-1247.36 14707.32,-1235.25 14699.01,-1222.92 14713,-1211.59"/>
<path fill="none" stroke="black" d="M14713,-1209.59C14727.87,-1197.53 14725.78,-1189.33 14737,-1173.82 14760.08,-1141.9 14783.65,-1141.07 14789,-1102.05"/>
<path fill="none" stroke="black" d="M14789,-1100.05C14796.95,-1042.06 14736.37,-1046.17 14713,-992.51"/>
</g>
<!-- ahriman_core_auth&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge134" 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="M14536.28,-1293.51C14576.17,-1225.07 14677.59,-1039.95 14637,-992.51"/>
<path fill="none" stroke="black" d="M14637,-990.51C14562.77,-914.88 13786.83,-951.34 13686,-918.74 13676,-915.5 13665.95,-910.59 13656.69,-905.22"/>
<polygon fill="#db4005" stroke="black" points="13658.63,-902.31 13648.28,-900.06 13654.97,-908.27 13658.63,-902.31"/>
</g>
<!-- ahriman_core_auth&#45;&gt;ahriman_web_web -->
<g id="edge135" 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="M14789,-1100.05C14805.92,-976.72 14649.42,-934.82 14716,-829.64 14728.59,-809.75 15111.82,-668.08 15099,-648.34"/>
<path fill="none" stroke="black" d="M15099,-646.34C15014.19,-539.04 10452.92,-545.36 9922.21,-546.46"/>
<polygon fill="#db4005" stroke="black" points="9922.28,-542.96 9912.28,-546.48 9922.29,-549.96 9922.28,-542.96"/>
</g>
<!-- ahriman_core_auth_auth -->
<g id="node47" class="node">
<title>ahriman_core_auth_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#733b26" stroke="black" cx="14441" cy="-1720.74" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="14441" y="-1734.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="14441" y="-1723.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="14441" y="-1712.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">auth.</text>
<text text-anchor="middle" x="14441" y="-1701.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">auth</text>
</g>
<!-- ahriman_core_auth_auth&#45;&gt;ahriman_core_auth -->
<g id="edge136" class="edge">
<title>ahriman_core_auth_auth&#45;&gt;ahriman_core_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M14448.1,-1684.37C14463.03,-1609.97 14497.59,-1437.79 14513.15,-1360.24"/>
<polygon fill="#733b26" stroke="black" points="14516.56,-1361.05 14515.09,-1350.55 14509.69,-1359.67 14516.56,-1361.05"/>
</g>
<!-- ahriman_core_auth_helpers -->
<g id="node48" class="node">
<title>ahriman_core_auth_helpers</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#d95726" stroke="black" cx="14647" cy="-1210.59" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="14647" y="-1224.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="14647" y="-1213.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="14647" y="-1202.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">auth.</text>
<text text-anchor="middle" x="14647" y="-1191.59" 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="edge137" 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="M14751,-1100.05C14760.95,-1083.69 14762.03,-1078.36 14775,-1064.28 14809.66,-1026.65 14880.13,-1041.38 14865,-992.51"/>
<path fill="none" stroke="black" d="M14865,-990.51C14859.09,-971.42 14825.28,-935.29 14798.19,-908.53"/>
<polygon fill="#d95726" stroke="black" points="14800.71,-906.11 14791.11,-901.62 14795.82,-911.11 14800.71,-906.11"/>
</g>
<!-- ahriman_core_auth_helpers&#45;&gt;ahriman_web_views_user_login -->
<g id="edge138" 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="M14676.01,-1186.59C14691.96,-1173.23 14711.58,-1155.57 14727,-1137.82 14739.56,-1123.37 14741.05,-1118.4 14751,-1102.05"/>
<path fill="none" stroke="black" d="M14751,-1100.05C14777.35,-1056.74 14733.24,-1038.98 14713,-992.51"/>
</g>
<!-- ahriman_core_auth_helpers&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge139" 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="M14657.33,-1174.97C14669.14,-1127.52 14681.57,-1042.49 14637,-992.51"/>
</g>
<!-- ahriman_core_auth_mapping -->
<g id="node49" class="node">
<title>ahriman_core_auth_mapping</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8b3f22" stroke="black" cx="14149" cy="-1939.82" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="14149" y="-1953.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="14149" y="-1942.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="14149" y="-1931.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">auth.</text>
<text text-anchor="middle" x="14149" y="-1920.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">mapping</text>
</g>
<!-- ahriman_core_auth_mapping&#45;&gt;ahriman_core_auth_auth -->
<g id="edge140" class="edge">
<title>ahriman_core_auth_mapping&#45;&gt;ahriman_core_auth_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M14185.01,-1926.54C14241.68,-1906.37 14347.28,-1865.1 14367,-1831.28"/>
<path fill="none" stroke="black" d="M14367,-1829.28C14380.8,-1805.62 14398.06,-1780.33 14412.44,-1760.23"/>
<polygon fill="#8b3f22" stroke="black" points="14415.13,-1762.48 14418.15,-1752.32 14409.46,-1758.38 14415.13,-1762.48"/>
</g>
<!-- ahriman_core_auth_oauth -->
<g id="node50" class="node">
<title>ahriman_core_auth_oauth</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#833b20" stroke="black" cx="14149" cy="-1830.28" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="14149" y="-1844.28" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="14149" y="-1833.28" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="14149" y="-1822.28" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">auth.</text>
<text text-anchor="middle" x="14149" y="-1811.28" 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="edge141" 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="M14149,-1903.01C14149,-1895.21 14149,-1886.83 14149,-1878.65"/>
<polygon fill="#8b3f22" stroke="black" points="14152.5,-1878.82 14149,-1868.82 14145.5,-1878.82 14152.5,-1878.82"/>
</g>
<!-- ahriman_core_auth_oauth&#45;&gt;ahriman_core_auth_auth -->
<g id="edge142" 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="M14184.9,-1816.97C14225.41,-1802.99 14293.18,-1779.27 14351,-1757.51 14365.55,-1752.04 14381.32,-1745.86 14395.54,-1740.19"/>
<polygon fill="#833b20" stroke="black" points="14396.68,-1743.5 14404.66,-1736.54 14394.08,-1737 14396.68,-1743.5"/>
</g>
<!-- ahriman_core_auth_oauth&#45;&gt;ahriman_web_views_user_login -->
<g id="edge143" 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="M14186.6,-1821.99C14222.31,-1813.05 14274.76,-1794.31 14304,-1757.51 14437.94,-1588.97 14292.84,-1468.32 14403,-1283.36 14409.41,-1272.6 14565.9,-1146.41 14575,-1137.82 14639.76,-1076.67 14748.57,-1074.16 14713,-992.51"/>
</g>
<!-- ahriman_core_build_tools -->
<g id="node51" class="node">
<title>ahriman_core_build_tools</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f95010" stroke="black" cx="3195" cy="-3675" rx="44.6" ry="28.98"/>
<text text-anchor="middle" x="3195" y="-3683.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3195" y="-3672.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="3195" y="-3661.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">build_tools</text>
</g>
<!-- ahriman_core_build_tools&#45;&gt;ahriman_application_application_application_packages -->
<g id="edge144" class="edge">
<title>ahriman_core_build_tools&#45;&gt;ahriman_application_application_application_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3200.97,-3645.79C3203.5,-3626.44 3203.61,-3600.95 3192,-3582.02"/>
<path fill="none" stroke="black" d="M3192,-3580.02C3083.34,-3402.83 2966.56,-3449.68 2798,-3328.06 2534.94,-3138.25 2414.01,-3136.3 2231,-2868.46 2119.76,-2705.66 2126.36,-2640.68 2096,-2445.86 2070.37,-2281.42 2161.8,-2248.11 2200,-2086.13 2271.06,-1784.86 2194.99,-1693.94 2267,-1392.9 2287.13,-1308.73 2312.38,-1294.25 2338,-1211.59"/>
<path fill="none" stroke="black" d="M2338,-1209.59C2344.03,-1186.16 2357.34,-1163.1 2370.6,-1144.38"/>
<polygon fill="#f95010" stroke="black" points="2373.29,-1146.63 2376.39,-1136.5 2367.65,-1142.49 2373.29,-1146.63"/>
</g>
<!-- ahriman_core_build_tools&#45;&gt;ahriman_application_application_application_repository -->
<g id="edge145" class="edge">
<title>ahriman_core_build_tools&#45;&gt;ahriman_application_application_application_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3161.15,-3655.75C3058.28,-3599.58 2742.11,-3421.7 2509,-3234.08 2222.63,-3003.6 2114.99,-2963.47 1924,-2649.38 1878.92,-2575.25 1806,-2363.98 1806,-2277.22 1806,-2277.22 1806,-2277.22 1806,-2048.36 1806,-1853.78 1844,-1806.79 1844,-1612.2 1844,-1612.2 1844,-1612.2 1844,-1409.9 1844,-1315.51 1854.45,-1279.5 1920,-1211.59"/>
</g>
<!-- ahriman_core_build_tools&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge146" 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="M3192,-3580.02C3182.75,-3540.2 3206.41,-3526.29 3192,-3488.03"/>
<path fill="none" stroke="black" d="M3192,-3486.03C3154.37,-3386.14 3040,-3406.82 3040,-3300.07 3040,-3300.07 3040,-3300.07 3040,-3188.53 3040,-2910.35 2833.02,-2842.58 2912,-2575.84 2987.32,-2321.46 3368.5,-1755.94 3562,-1574.43 3874.68,-1281.14 3989.67,-1215.84 4403,-1102.05"/>
<path fill="none" stroke="black" d="M4403,-1100.05C4546.07,-1052.02 5662.89,-1110.49 5757,-992.51"/>
<path fill="none" stroke="black" d="M5757,-990.51C5825.28,-904.91 5815.29,-766.59 5804.09,-694.84"/>
<polygon fill="#f95010" stroke="black" points="5807.62,-694.71 5802.54,-685.41 5800.71,-695.85 5807.62,-694.71"/>
</g>
<!-- ahriman_core_gitremote_remote_pull -->
<g id="node84" class="node">
<title>ahriman_core_gitremote_remote_pull</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#733b26" stroke="black" cx="4373" cy="-2158.9" rx="47.25" ry="36.54"/>
<text text-anchor="middle" x="4373" y="-2172.9" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4373" y="-2161.9" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4373" y="-2150.9" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">gitremote.</text>
<text text-anchor="middle" x="4373" y="-2139.9" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">remote_pull</text>
</g>
<!-- ahriman_core_build_tools&#45;&gt;ahriman_core_gitremote_remote_pull -->
<g id="edge147" class="edge">
<title>ahriman_core_build_tools&#45;&gt;ahriman_core_gitremote_remote_pull</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3192,-3188.53C3166.79,-3075.36 3254.62,-2773.47 3330,-2685.38 3477.3,-2513.24 3580.7,-2553.62 3780,-2445.86 3953.95,-2351.8 3989.52,-2312.49 4170,-2231.67 4218.91,-2209.77 4276.7,-2189.89 4318.09,-2176.64"/>
<polygon fill="#f95010" stroke="black" points="4319.12,-2179.98 4327.59,-2173.62 4317,-2173.31 4319.12,-2179.98"/>
</g>
<!-- ahriman_core_gitremote_remote_push -->
<g id="node86" class="node">
<title>ahriman_core_gitremote_remote_push</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#733b26" stroke="black" cx="3846" cy="-1939.82" rx="51.74" ry="36.54"/>
<text text-anchor="middle" x="3846" y="-1953.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3846" y="-1942.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="3846" y="-1931.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">gitremote.</text>
<text text-anchor="middle" x="3846" y="-1920.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">remote_push</text>
</g>
<!-- ahriman_core_build_tools&#45;&gt;ahriman_core_gitremote_remote_push -->
<g id="edge148" class="edge">
<title>ahriman_core_build_tools&#45;&gt;ahriman_core_gitremote_remote_push</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3192,-3486.03C3148.2,-3362.22 3221.84,-3318.43 3192,-3190.53"/>
<path fill="none" stroke="black" d="M3192,-3188.53C3138.36,-2967.78 3172.23,-2884.27 3282,-2685.38 3310.88,-2633.06 3317.24,-2617.6 3360,-2575.84 3433.72,-2503.84 3482.57,-2522.01 3552,-2445.86 3582.45,-2412.46 3577.61,-2395.43 3601,-2356.76 3685.54,-2216.99 3775.14,-2211.15 3804,-2050.36"/>
</g>
<!-- ahriman_core_repository_executor -->
<g id="node103" class="node">
<title>ahriman_core_repository_executor</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#733b26" stroke="black" cx="7479" cy="-1720.74" rx="43.68" ry="36.54"/>
<text text-anchor="middle" x="7479" y="-1734.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7479" y="-1723.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7479" y="-1712.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository.</text>
<text text-anchor="middle" x="7479" y="-1701.74" 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="edge149" 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="M3227.78,-3654.89C3233.46,-3651.8 3239.35,-3648.73 3245,-3646.01 3660.91,-3445.93 3774.17,-3413.03 4213,-3270.08 4444.38,-3194.7 4499.27,-3164.36 4736,-3107.98 4759.65,-3102.35 5576.13,-2970.68 5599,-2962.44 5631.67,-2950.67 6116.36,-2674.81 6140,-2649.38 6447.87,-2318.23 6276.09,-1975.51 6690,-1793.51 6756.85,-1764.12 7255.84,-1734.1 7423.92,-1724.72"/>
<polygon fill="#f95010" stroke="black" points="7423.91,-1728.23 7433.7,-1724.18 7423.52,-1721.24 7423.91,-1728.23"/>
</g>
<!-- ahriman_core_repository_update_handler -->
<g id="node106" class="node">
<title>ahriman_core_repository_update_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#82432b" stroke="black" cx="7600" cy="-1720.74" rx="58.88" ry="36.54"/>
<text text-anchor="middle" x="7600" y="-1734.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7600" y="-1723.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7600" y="-1712.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository.</text>
<text text-anchor="middle" x="7600" y="-1701.74" 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="edge150" 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="M3226.8,-3654.15C3232.69,-3651.07 3238.91,-3648.19 3245,-3646.01 3339.05,-3612.31 4917.17,-3348.3 5015,-3328.06 5503.16,-3227.05 5632.85,-3225.88 6107,-3071.98 6327.01,-3000.57 6389.47,-2990.45 6586,-2868.46 6920.81,-2660.64 7119,-2553.97 7119,-2159.9 7119,-2159.9 7119,-2159.9 7119,-1938.82 7119,-1738.36 7344.12,-1827.42 7532,-1757.51 7536.97,-1755.66 7542.04,-1753.52 7547.06,-1751.23"/>
<polygon fill="#f95010" stroke="black" points="7548.37,-1754.49 7555.87,-1747 7545.34,-1748.17 7548.37,-1754.49"/>
</g>
<!-- ahriman_core_build_tools&#45;&gt;ahriman_models_package -->
<g id="edge151" 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="M3238.97,-3669.11C3426.66,-3648.32 4161.61,-3567.55 4394,-3552.03 5167.63,-3500.33 6112.91,-3490.12 6338.82,-3488.36"/>
<polygon fill="#f95010" stroke="black" points="6338.76,-3491.86 6348.73,-3488.29 6338.71,-3484.86 6338.76,-3491.86"/>
</g>
<!-- ahriman_core_build_tools_sources -->
<g id="node52" class="node">
<title>ahriman_core_build_tools_sources</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a93104" stroke="black" cx="4297" cy="-2401.31" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="4297" y="-2415.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4297" y="-2404.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4297" y="-2393.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">build_tools.</text>
<text text-anchor="middle" x="4297" y="-2382.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">sources</text>
</g>
<!-- ahriman_core_build_tools_sources&#45;&gt;ahriman_application_application_application_packages -->
<g id="edge152" class="edge">
<title>ahriman_core_build_tools_sources&#45;&gt;ahriman_application_application_application_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4184,-2157.9C4106.23,-1993.09 4117.6,-1929.25 3996,-1793.51 3948.29,-1740.26 3136.68,-1252.67 2901,-1173.82 2827.21,-1149.13 2614.13,-1123.83 2492.96,-1110.88"/>
<polygon fill="#a93104" stroke="black" points="2493.35,-1107.4 2483.03,-1109.83 2492.61,-1114.36 2493.35,-1107.4"/>
</g>
<!-- ahriman_core_build_tools_sources&#45;&gt;ahriman_application_application_application_repository -->
<g id="edge153" class="edge">
<title>ahriman_core_build_tools_sources&#45;&gt;ahriman_application_application_application_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4184,-2275.22C4158.36,-2230.84 4204.49,-2206.88 4184,-2159.9"/>
<path fill="none" stroke="black" d="M4184,-2157.9C4157.93,-2098.12 4106.16,-2127.82 4056,-2086.13 3975.32,-2019.07 3991.14,-1965.72 3907,-1903.05 3887.91,-1888.84 2343.44,-1261.09 2324,-1247.36 2284.23,-1219.27 2247.92,-1177.07 2223.67,-1145.38"/>
<polygon fill="#a93104" stroke="black" points="2226.57,-1143.41 2217.76,-1137.53 2220.98,-1147.63 2226.57,-1143.41"/>
</g>
<!-- ahriman_core_build_tools_sources&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge154" 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="M4294.47,-2364.52C4293.41,-2339.83 4293.34,-2306.34 4298,-2277.22"/>
<path fill="none" stroke="black" d="M4298,-2275.22C4306.1,-2224.61 4304.94,-2210.68 4298,-2159.9"/>
<path fill="none" stroke="black" d="M4298,-2157.9C4289.24,-2093.82 4298.74,-2076.86 4306,-2012.59 4313.37,-1947.38 4321.15,-1931.94 4331,-1867.05 4367.72,-1625.09 4306.78,-1546.15 4403,-1321.13"/>
</g>
<!-- ahriman_core_build_tools_task -->
<g id="node53" class="node">
<title>ahriman_core_build_tools_task</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#733b26" stroke="black" cx="7292" cy="-1939.82" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="7292" y="-1953.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7292" y="-1942.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7292" y="-1931.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">build_tools.</text>
<text text-anchor="middle" x="7292" y="-1920.82" 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="edge155" 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="M4298,-2157.9C4289.14,-2121.68 4300.55,-2061.78 4393,-2012.59 4458.07,-1977.98 6972.53,-1982.41 7046,-1976.59 7111.26,-1971.43 7185.55,-1959.82 7235.26,-1951.23"/>
<polygon fill="#a93104" stroke="black" points="7235.67,-1954.71 7244.92,-1949.54 7234.46,-1947.81 7235.67,-1954.71"/>
</g>
<!-- ahriman_core_build_tools_sources&#45;&gt;ahriman_core_gitremote_remote_pull -->
<g id="edge156" class="edge">
<title>ahriman_core_build_tools_sources&#45;&gt;ahriman_core_gitremote_remote_pull</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4298,-2275.22C4302.69,-2245.92 4320.49,-2217.89 4337.58,-2196.81"/>
<polygon fill="#a93104" stroke="black" points="4340.08,-2199.28 4343.84,-2189.37 4334.72,-2194.77 4340.08,-2199.28"/>
</g>
<!-- ahriman_core_build_tools_sources&#45;&gt;ahriman_core_gitremote_remote_push -->
<g id="edge157" class="edge">
<title>ahriman_core_build_tools_sources&#45;&gt;ahriman_core_gitremote_remote_push</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4265.87,-2373.62C4240.59,-2350.44 4205.7,-2314.77 4184,-2277.22"/>
<path fill="none" stroke="black" d="M4184,-2275.22C4153.29,-2222.07 4150.69,-2204 4108,-2159.9"/>
</g>
<!-- ahriman_core_build_tools_sources&#45;&gt;ahriman_core_repository_update_handler -->
<g id="edge158" 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="M4338.6,-2383.69C4519.5,-2312.18 5257,-2028.73 5890,-1903.05 6421.81,-1797.46 6564.86,-1840.63 7105,-1793.51 7294.73,-1776.96 7349.19,-1810.91 7532,-1757.51 7537.38,-1755.94 7542.83,-1753.92 7548.18,-1751.64"/>
<polygon fill="#a93104" stroke="black" points="7549.3,-1754.98 7556.92,-1747.62 7546.38,-1748.62 7549.3,-1754.98"/>
</g>
<!-- ahriman_core_build_tools_task&#45;&gt;ahriman_core_repository_executor -->
<g id="edge160" 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="M7314.76,-1907.81C7330.04,-1886.6 7350.35,-1857.65 7367,-1831.28"/>
<path fill="none" stroke="black" d="M7367,-1829.28C7377.22,-1813.09 7378.11,-1807.67 7391,-1793.51 7404.76,-1778.41 7421.81,-1763.77 7437.22,-1751.69"/>
<polygon fill="#733b26" stroke="black" points="7439.07,-1754.68 7444.87,-1745.82 7434.81,-1749.13 7439.07,-1754.68"/>
</g>
<!-- ahriman_core_configuration -->
<g id="node54" class="node">
<title>ahriman_core_configuration</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#db4005" stroke="black" cx="8136" cy="-3189.53" rx="50.82" ry="28.98"/>
<text text-anchor="middle" x="8136" y="-3198.03" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8136" y="-3187.03" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="8136" y="-3176.03" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">configuration</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_application_application_properties -->
<g id="edge161" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_application_application_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8084.88,-3187.1C7887.76,-3181.58 7158.04,-3161.2 6557,-3144.98 5950.34,-3128.62 5797.23,-3153.69 5192,-3108.98 5056.26,-3098.95 5021.11,-3100.41 4888,-3071.98 4779.73,-3048.86 4759.1,-3017.25 4650,-2998.44 4460.63,-2965.81 3968.57,-3022.42 3786,-2962.44 3742.2,-2948.05 3739.39,-2928.41 3700,-2904.46 3671.45,-2887.1 3659.69,-2889.82 3634,-2868.46 3505.1,-2761.28 3509.93,-2698.82 3396,-2575.84 3338.96,-2514.27 3308.8,-2513.42 3259,-2445.86 3024.34,-2127.5 3015.47,-2013.73 2865,-1647.97 2835.87,-1577.17 2723.52,-1390.46 2756,-1321.13"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_add -->
<g id="edge162" 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="M8084.86,-3187.15C7772.02,-3178.69 6113.29,-3133.32 5605,-3108.98 5477.1,-3102.86 5151.6,-3112.09 5030,-3071.98 4972.74,-3053.1 4973.54,-3016.47 4916,-2998.44 4805.14,-2963.7 3969.38,-3024.25 3871,-2962.44 3868.09,-2960.62 3412.37,-2089.28 3411,-2086.13 3335.7,-1912.5 3345.39,-1858 3271,-1683.97 3170.9,-1449.79 3150.75,-1386.08 3010,-1173.82 2888.11,-989.99 2825.78,-968.25 2691,-793.64 2664.4,-759.19 2635.91,-718.69 2615.65,-689.21"/>
<polygon fill="#db4005" stroke="black" points="2618.77,-687.57 2610.23,-681.3 2613,-691.53 2618.77,-687.57"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_backup -->
<g id="edge163" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_backup</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9527,-2400.31C9559.43,-2278.34 9508.08,-2242.45 9470,-2122.13 9443.48,-2038.33 9391,-2028.72 9391,-1940.82"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_clean -->
<g id="edge164" 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="M8085,-3187.12C7770.3,-3178.41 6089.02,-3131.45 5574,-3108.98 5427.69,-3102.6 5056.72,-3112.54 4916,-3071.98 4851.1,-3053.27 4848.07,-3016.56 4783,-2998.44 4681.56,-2970.2 3928.65,-3012.48 3836,-2962.44 3690.65,-2883.95 3508.75,-2485.31 3405,-2356.76 3344.12,-2281.34 3308.13,-2278.63 3258,-2195.67 3097.33,-1929.78 3121.4,-1832.09 3020,-1538.43 3003.27,-1490 2999.93,-1477.6 2984,-1428.9 2946.94,-1315.58 2958.33,-1278.35 2901,-1173.82 2830.38,-1045.07 2783.24,-1033 2691,-918.74 2625.2,-837.22 2549.36,-740.8 2507.96,-687.94"/>
<polygon fill="#db4005" stroke="black" points="2510.73,-685.81 2501.81,-680.09 2505.22,-690.12 2510.73,-685.81"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_daemon -->
<g id="edge165" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_daemon</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8084.91,-3187.74C7928.13,-3184.32 7440.92,-3166.27 7051,-3071.98 6962.58,-3050.6 6949.32,-3015.64 6860,-2998.44 6784.3,-2983.87 4147.46,-3007.63 4085,-2962.44 4046.25,-2934.41 4025.87,-2805.5 4015,-2758.92 3932.37,-2404.75 4032,-2304.5 4032,-1940.82 4032,-1940.82 4032,-1940.82 4032,-873.19 4032,-773.26 3987.31,-737.72 4032,-648.34"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_dump -->
<g id="edge166" 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="M8349,-2400.31C8365.33,-2257.58 8407.99,-2228.78 8425,-2086.13 8428.87,-2053.68 8425.57,-2045.27 8425,-2012.59 8421.89,-1834.56 8411,-1790.26 8411,-1612.2 8411,-1612.2 8411,-1612.2 8411,-1500.67 8411,-1420.87 8364.54,-1386 8411,-1321.13"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_handler -->
<g id="edge167" 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="M9127,-3034.21C9150.3,-3011.56 9135.67,-2994.5 9141,-2962.44 9155.97,-2872.37 9162.76,-2850.01 9169,-2758.92 9174.43,-2679.58 9188.91,-2324.05 9163,-2277.22"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_help -->
<g id="edge168" 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="M4598,-3034.21C4560.14,-3023.47 4555.33,-3007.38 4517,-2998.44 4331.79,-2955.28 3835.79,-3039.64 3662,-2962.44 3628.97,-2947.77 3636.28,-2922.56 3605,-2904.46 3550.14,-2872.71 3520.85,-2901.9 3467,-2868.46 3395.12,-2823.82 3390.61,-2793.77 3344,-2723.15"/>
<path fill="none" stroke="black" d="M3344,-2721.15C3301.41,-2674.85 3273.57,-2685.41 3222,-2649.38 3173.73,-2615.66 2446.05,-2016.77 2403,-1976.59 2126.11,-1718.15 2068.37,-1641.1 1818,-1356.9 1776.35,-1309.62 1757.9,-1302.82 1728,-1247.36 1654.34,-1110.69 1578,-923.76 1578,-648.34 1578,-648.34 1578,-648.34 1578,-544.57 1578,-451.55 1501.52,-388.23 1578,-335.27"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_key_import -->
<g id="edge169" 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="M3344,-2721.15C3321.73,-2686.38 3310.92,-2681.52 3285,-2649.38 3212.6,-2559.6 3194.84,-2536.88 3124,-2445.86 3050.36,-2351.24 3040.54,-2320.49 2960,-2231.67 2529.46,-1756.84 2273.93,-1772.19 1906,-1247.36 1865.69,-1189.86 1844,-1172.26 1844,-1102.05 1844,-1102.05 1844,-1102.05 1844,-873.19 1844,-736.02 1991.42,-785.51 2112,-720.1 2142.75,-703.42 2151.74,-701.66 2182,-684.1 2185.35,-682.16 2188.79,-680.1 2192.22,-677.99"/>
<polygon fill="#db4005" stroke="black" points="2193.93,-681.05 2200.54,-672.77 2190.21,-675.11 2193.93,-681.05"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge170" 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="M8092.22,-3174.19C8036.34,-3156.36 7936.42,-3126.07 7849,-3107.98 7732.18,-3083.81 7694.11,-3115.43 7583,-3071.98 7529.94,-3051.23 7531.2,-3018.84 7478,-2998.44 7354.67,-2951.15 7313.04,-2985.58 7183,-2962.44 7003.21,-2930.45 6959.87,-2913.93 6783,-2868.46 6607.8,-2823.42 6531.46,-2872.91 6391,-2758.92 6348.39,-2724.34 6356.57,-2699.41 6334,-2649.38 6252.17,-2468.02 6280.3,-2399.22 6173,-2231.67 6099.76,-2117.31 6069.15,-2093.39 5960,-2012.59 5931.88,-1991.78 5910.12,-2005.21 5890,-1976.59 5852.53,-1923.31 5871,-1896.41 5871,-1831.28 5871,-1831.28 5871,-1831.28 5871,-1500.67 5871,-1497.05 5754.78,-995.37 5757,-992.51"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_rebuild -->
<g id="edge171" 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="M8085.17,-3186.55C7899.82,-3179.06 7260.66,-3150.74 7061,-3108.98 6916.18,-3078.69 6892.67,-3024.34 6747,-2998.44 6673.29,-2985.34 4113.22,-3005.54 4052,-2962.44 3991.46,-2919.82 3950.89,-2722.29 3938,-2649.38 3890.1,-2378.55 3918,-1686.93 3918,-1411.9 3918,-1411.9 3918,-1411.9 3918,-1100.05 3918,-925.43 3950.1,-834.3 3818,-720.1 3774.61,-682.6 3388.1,-658.96 3239.16,-651.17"/>
<polygon fill="#db4005" stroke="black" points="3239.7,-647.7 3229.53,-650.68 3239.33,-654.69 3239.7,-647.7"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_remove -->
<g id="edge172" 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="M4750,-3107.98C4604.38,-3090.62 4554.74,-3134.33 4422,-3071.98 4379.46,-3052 4389.18,-3017.01 4346,-2998.44 4260.58,-2961.72 3601.96,-2976.14 3510,-2962.44 3344.74,-2937.83 3295.79,-2942.49 3146,-2868.46 2980.89,-2786.85 2639.77,-2469.34 2494,-2356.76 2400.34,-2284.43 2373.24,-2271.04 2282,-2195.67 2244.26,-2164.49 2237.88,-2153.13 2200,-2122.13 1927.15,-1898.83 1764.15,-1938.23 1564,-1647.97 1328.13,-1305.93 1320.07,-1114.75 1450,-720.1 1453.97,-708.05 1460.82,-696.36 1468.31,-686.04"/>
<polygon fill="#db4005" stroke="black" points="1471.05,-688.23 1474.38,-678.17 1465.5,-683.95 1471.05,-688.23"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_remove_unknown -->
<g id="edge173" 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="M8085.37,-3185.8C7886.09,-3175.1 7136.42,-3135.25 6519,-3107.98 6311.27,-3098.81 5788.55,-3109.32 5584,-3071.98 5482.58,-3053.47 5465.54,-3016.31 5364,-2998.44 5287.7,-2985.02 4033.05,-3007.46 3970,-2962.44 3956.81,-2953.02 3566,-1929.08 3566,-1612.2 3566,-1612.2 3566,-1612.2 3566,-1500.67 3566,-1381.04 3506.6,-1362.73 3475,-1247.36 3467.69,-1220.65 3403.39,-774.16 3381,-757.87"/>
<path fill="none" stroke="black" d="M3381,-755.87C3362.44,-743.57 3017.3,-685.18 3014,-684.1 3008.32,-682.25 3002.52,-680.05 2996.78,-677.66"/>
<polygon fill="#db4005" stroke="black" points="2998.53,-674.61 2987.97,-673.8 2995.73,-681.02 2998.53,-674.61"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_restore -->
<g id="edge174" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_restore</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4750,-3107.98C4570.97,-3086.9 4516.49,-3130.55 4346,-3071.98 4288.98,-3052.39 4289.52,-3016.51 4232,-2998.44 4017.73,-2931.16 3436.29,-3029.67 3222,-2962.44 3176.6,-2948.2 3174.85,-2925.15 3132,-2904.46 3087.2,-2882.83 3069.89,-2891.9 3026,-2868.46 2955.38,-2830.74 2945.97,-2808.36 2883,-2758.92 2708.46,-2621.87 2650.55,-2603.16 2494,-2445.86 2458.28,-2409.97 2464.16,-2386.26 2423,-2356.76 2384.6,-2329.25 2364.86,-2342.66 2323,-2320.76 2089.1,-2198.44 2054.1,-2129.57 1839,-1976.59 1770.55,-1927.91 1747.61,-1923.04 1685,-1867.05 1636.3,-1823.51 1627.15,-1809.04 1587,-1757.51 1415.08,-1536.91 1274,-1491.27 1274,-1211.59 1274,-1211.59 1274,-1211.59 1274,-873.19 1274,-769.93 1377.5,-782.44 1409,-684.1 1456.58,-535.59 1296.16,-472.1 1371,-335.27"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_search -->
<g id="edge175" 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="M8084.93,-3187.31C7701.93,-3178.06 5290,-3118.09 5144,-3071.98 5086.51,-3053.82 5087.56,-3016.4 5030,-2998.44 4910.72,-2961.22 4009.11,-3033.02 3906,-2962.44 3868.54,-2936.8 3883.15,-2910.49 3866,-2868.46 3819.87,-2755.42 3717.83,-2467.3 3666,-2356.76 3552.76,-2115.24 3376,-2098.03 3376,-1831.28 3376,-1831.28 3376,-1831.28 3376,-1719.74 3376,-1495.02 3041.8,-1000.66 2896,-829.64 2847.54,-772.8 2782.29,-715.87 2740.42,-681.37"/>
<polygon fill="#db4005" stroke="black" points="2742.73,-678.73 2732.77,-675.1 2738.29,-684.15 2742.73,-678.73"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_service_updates -->
<g id="edge176" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_service_updates</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4218,-3034.21C4198.97,-3032.1 4210.73,-3007.75 4194,-2998.44 4095.28,-2943.53 3287.65,-2989.6 3178,-2962.44 3120.5,-2948.2 3114.2,-2923.19 3058,-2904.46 2978.95,-2878.12 2951.05,-2900.18 2874,-2868.46 2630.5,-2768.21 2595.93,-2691.99 2381,-2539.84 2330.19,-2503.88 1527.76,-1912.29 1485,-1867.05 1444.81,-1824.54 1438.77,-1809.53 1412,-1757.51 1324.87,-1588.18 1309.02,-1540.92 1260,-1356.9 1198.93,-1127.6 1220.5,-1062.72 1176,-829.64 1169.87,-797.54 1141.86,-785.06 1160,-757.87"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_setup -->
<g id="edge177" 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="M8084.88,-3186.97C7887.77,-3180.99 7158.1,-3159.14 6557,-3144.98 5240.96,-3114 4908.6,-3171.87 3596,-3071.98 2984.4,-3025.44 2792.79,-3114.67 2231,-2868.46 1846.69,-2700.03 1797.19,-2573.17 1462,-2320.76 1411.19,-2282.5 1405.79,-2262.23 1350,-2231.67 1306.73,-2207.97 1283.99,-2225.89 1245,-2195.67 707.88,-1779.38 770.3,-1491.12 404,-918.74 381.31,-883.29 275.48,-788.83 304,-757.87"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_shell -->
<g id="edge178" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_shell</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8085.52,-3184.85C7931.02,-3173.6 7450.87,-3138.56 7053,-3108.98 6400.07,-3060.44 6237.95,-3030.48 5584,-2998.44 5496.36,-2994.15 4077.41,-3012 4005,-2962.44 3925.6,-2908.11 3607.46,-1375.86 3581,-1283.36 3508.5,-1029.89 3597.95,-888.36 3395,-720.1 3301.8,-642.84 3238.53,-726.14 3125,-684.1 3121.08,-682.66 3117.16,-680.89 3113.32,-678.92"/>
<polygon fill="#db4005" stroke="black" points="3115.12,-675.92 3104.69,-674.08 3111.7,-682.03 3115.12,-675.92"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_sign -->
<g id="edge179" 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="M4750,-3107.98C4687.05,-3100.55 4659.38,-3114.08 4612,-3071.98 4599.24,-3060.64 4614.43,-3040.86 4598,-3036.21"/>
<path fill="none" stroke="black" d="M4598,-3034.21C4552.58,-3021.35 4544.33,-3007.48 4498,-2998.44 4309.39,-2961.66 3816.57,-3022.42 3634,-2962.44 3590.2,-2948.05 3590.54,-2922.21 3548,-2904.46 3472.71,-2873.04 3440.6,-2905.68 3368,-2868.46 3198.25,-2781.43 3198.76,-2700.07 3054,-2575.84 2866.65,-2415.07 2819.86,-2373.8 2618,-2231.67 2443.14,-2108.55 2364.79,-2124.15 2210,-1976.59 1992.84,-1769.58 1514.84,-942.7 1716,-720.1 1769.17,-661.28 1996.22,-710.46 2071,-684.1 2074.94,-682.72 2078.88,-680.99 2082.73,-679.06"/>
<polygon fill="#db4005" stroke="black" points="2084.33,-682.17 2091.37,-674.26 2080.93,-676.05 2084.33,-682.17"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_status -->
<g id="edge180" 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="M8085.23,-3185.75C7882.85,-3174.76 7114.07,-3133.59 6481,-3107.98 6232.85,-3097.95 5608.45,-3115.81 5364,-3071.98 5262.52,-3053.79 5245.5,-3016.52 5144,-2998.44 5078.12,-2986.71 3995.43,-2999.93 3940,-2962.44 3918.92,-2948.19 3867.38,-2783.18 3819,-2649.38 3769.34,-2512.04 3376,-1557.94 3376,-1411.9 3376,-1411.9 3376,-1411.9 3376,-1209.59 3376,-926.94 3202.35,-881.05 2970,-720.1 2929.79,-692.25 2910.03,-705.42 2866,-684.1 2862.25,-682.29 2858.44,-680.27 2854.67,-678.15"/>
<polygon fill="#db4005" stroke="black" points="2856.52,-675.18 2846.13,-673.11 2852.96,-681.21 2856.52,-675.18"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_status_update -->
<g id="edge181" 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="M8084.88,-3187.09C7887.76,-3181.55 7158.05,-3161.1 6557,-3144.98 5942.79,-3128.51 5788.72,-3138.59 5175,-3108.98 5058.18,-3103.35 4747.69,-3136.28 4650,-3071.98 4619.27,-3051.76 4643.04,-3018.19 4612,-2998.44 4526.44,-2944 3788.26,-3012.4 3700,-2962.44 3673.19,-2947.27 3686.41,-2923.26 3662,-2904.46 3621.91,-2873.59 3595.98,-2896.7 3554,-2868.46 3451.4,-2799.45 3265.71,-2545.14 3192,-2445.86 3026.81,-2223.37 2756,-1829.31 2756,-1721.74 2756,-1721.74 2756,-1721.74 2756,-1610.2 2756,-1340.88 2645.84,-1286.03 2493,-1064.28 2459.37,-1015.49 2461.99,-993.3 2417,-954.74 2389.23,-930.94 2362.4,-949.75 2343,-918.74 2299.99,-849.99 2321.3,-751.12 2339.78,-693.93"/>
<polygon fill="#db4005" stroke="black" points="2343.08,-695.1 2342.93,-684.51 2336.44,-692.88 2343.08,-695.1"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_structure -->
<g id="edge182" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_structure</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8139,-2932.45C8136.04,-2896.05 8200.41,-2817.65 8229,-2794.92 8265.32,-2766.05 8292.67,-2790.14 8327,-2758.92 8441.14,-2655.12 8430.09,-2592.84 8477,-2445.86 8526.64,-2290.33 8601,-1885 8601,-1721.74 8601,-1721.74 8601,-1721.74 8601,-1409.9 8601,-1352.65 8602.33,-1335.92 8625,-1283.36 8640.6,-1247.19 8670.45,-1250.43 8677,-1211.59"/>
<path fill="none" stroke="black" d="M8677,-1209.59C8690.66,-1114.08 8708.03,-1083.86 8677,-992.51"/>
<path fill="none" stroke="black" d="M8677,-990.51C8640.52,-892.22 8623.88,-861.75 8638,-757.87"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_triggers -->
<g id="edge183" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_triggers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8084.88,-3186.98C7887.77,-3181.01 7158.09,-3159.21 6557,-3144.98 5511.01,-3120.22 5246.75,-3157.89 4204,-3071.98 3692.31,-3029.83 3558.77,-3056.31 3054,-2962.44 2774.26,-2910.42 2690.48,-2906.16 2447,-2758.92 1931.7,-2447.31 1811.35,-2330.63 1427,-1867.05 1231.78,-1631.59 1008,-1626.99 1008,-1321.13 1008,-1321.13 1008,-1321.13 1008,-873.19 1008,-825.5 1109.76,-731.84 1168.47,-681.77"/>
<polygon fill="#db4005" stroke="black" points="1170.63,-684.53 1176,-675.39 1166.1,-679.19 1170.63,-684.53"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_unsafe_commands -->
<g id="edge184" 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="M8319,-2611.61C8334.8,-2510.31 8563,-1824.27 8563,-1721.74 8563,-1721.74 8563,-1721.74 8563,-990.51 8563,-887.12 8549.74,-860.41 8563,-757.87"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_update -->
<g id="edge185" 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="M4750,-3107.98C4675.03,-3099.13 4655.66,-3095.72 4584,-3071.98 4508.94,-3047.12 4498.92,-3016.75 4422,-2998.44 4327.45,-2975.94 3632.54,-3010.39 3548,-2962.44 3521.2,-2947.24 3536.02,-2920.96 3510,-2904.46 3412.58,-2842.72 3357.87,-2916.48 3253,-2868.46 3169.05,-2830.02 2685.53,-2392.98 2628,-2320.76 2599.97,-2285.58 2615.8,-2258.9 2580,-2231.67 2522.68,-2188.06 2488.57,-2223.16 2422,-2195.67 2275.31,-2135.09 2247.79,-2093.08 2140,-1976.59 1920.17,-1739.02 1868.24,-1676.69 1660,-1428.9 1583.18,-1337.48 1502,-1331 1502,-1211.59 1502,-1211.59 1502,-1211.59 1502,-1100.05 1502,-914.69 1529.47,-836.16 1674,-720.1 1716.96,-685.61 1871.39,-663.87 1956.94,-654.2"/>
<polygon fill="#db4005" stroke="black" points="1957.22,-657.69 1966.77,-653.11 1956.45,-650.73 1957.22,-657.69"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_users -->
<g id="edge186" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_users</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8186.78,-3185.42C8324.79,-3177.13 8718.34,-3154.46 9046,-3144.98 9323.64,-3136.96 13779.47,-3153.46 14045,-3071.98 14103,-3054.19 14103.63,-3020.87 14160,-2998.44 14239.46,-2966.84 14267.64,-2988.76 14349,-2962.44 14406.89,-2943.72 14414.89,-2922.47 14473,-2904.46 14566.8,-2875.39 14596.98,-2896.81 14691,-2868.46 14719.45,-2859.88 15157.97,-2670.38 15179,-2649.38 15226.45,-2602.01 15241,-2578.9 15241,-2511.85 15241,-2511.85 15241,-2511.85 15241,-2275.22 15241,-2169.73 15269.2,-2144.4 15317,-2050.36"/>
<path fill="none" stroke="black" d="M15317,-2048.36C15324.88,-2030.91 15330.05,-2028.29 15341,-2012.59 15363.53,-1980.28 15393,-1980.21 15393,-1940.82"/>
<path fill="none" stroke="black" d="M15393,-1938.82C15393,-1919.03 15393,-1897.19 15393,-1878.39"/>
<polygon fill="#db4005" stroke="black" points="15396.5,-1878.64 15393,-1868.64 15389.5,-1878.64 15396.5,-1878.64"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_validate -->
<g id="edge187" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_validate</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8096.76,-3170.72C8054.99,-3152.43 7986.56,-3124.4 7925,-3107.98 7825.88,-3081.55 7792.84,-3108.58 7697,-3071.98 7640.67,-3050.47 7638.85,-3021.16 7583,-2998.44 7508.23,-2968.04 7483.56,-2980.95 7405,-2962.44 7126.33,-2896.81 7063.11,-2854.1 6783,-2794.92 6680.48,-2773.26 6648.52,-2794.61 6550,-2758.92 6461.23,-2726.77 6419.14,-2728.74 6368,-2649.38 6308.68,-2557.33 6286.45,-2266.62 6311,-2159.9"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_versions -->
<g id="edge188" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_versions</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8139,-3034.21C8150.95,-2977.74 8217,-2890.26 8229,-2868.46 8246.74,-2836.23 8238.19,-2817.8 8267,-2794.92 8317.99,-2754.44 8358.78,-2800.36 8409,-2758.92 8417.67,-2751.77 8489.98,-2585.9 8495,-2575.84 8511.76,-2542.25 8620.86,-2296.61 8653,-2277.22"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_web -->
<g id="edge189" 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="M8185.58,-3182.1C8256.82,-3173.01 8392.32,-3156.24 8508,-3144.98 8521.05,-3143.71 9439.82,-3081.34 9449,-3071.98 9540.96,-2978.18 9415.87,-2594.77 9483,-2481.86 9498.51,-2455.78 9524.42,-2471.27 9541,-2445.86 9582.38,-2382.46 9565,-2352.92 9565,-2277.22 9565,-2277.22 9565,-2277.22 9565,-1829.28 9565,-1619.08 9547.11,-1567.03 9542,-1356.9 9536.28,-1121.7 9505,-1049.4 9589,-829.64 9603.06,-792.85 9632.06,-796.24 9641,-757.87"/>
<path fill="none" stroke="black" d="M9641,-755.87C9670.43,-620.3 9666.15,-583.54 9667,-444.81"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_lock -->
<g id="edge190" 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="M8184.62,-3180.79C8277.49,-3166.1 8486.57,-3133.44 8663,-3108.98"/>
<path fill="none" stroke="black" d="M8663,-3107.98C8761.27,-3094.36 9025.1,-3126.49 9108,-3071.98 9123.04,-3062.09 9114.09,-3048.76 9127,-3036.21"/>
<path fill="none" stroke="black" d="M9127,-3034.21C9161.02,-3001.14 9076.41,-2980.2 9089,-2934.45"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_alpm_pacman -->
<g id="edge191" 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="M8084.88,-3186.98C7887.77,-3181.02 7158.09,-3159.26 6557,-3144.98 6155.48,-3135.45 5148.87,-3156.06 4750,-3108.98"/>
<path fill="none" stroke="black" d="M4750,-3107.98C4558.66,-3085.4 4506.3,-3112.77 4318,-3071.98 4271.87,-3061.99 4264.94,-3041.16 4218,-3036.21"/>
<path fill="none" stroke="black" d="M4218,-3034.21C3280.12,-2935.32 3012.52,-3045.39 2114,-2758.92 1827.22,-2667.49 1781.59,-2576.94 1496,-2481.86 1426.84,-2458.84 1401.34,-2478.17 1336,-2445.86 1330.18,-2442.98 1324.46,-2439.33 1319.07,-2435.36"/>
<polygon fill="#db4005" stroke="black" points="1321.54,-2432.86 1311.52,-2429.42 1317.21,-2438.35 1321.54,-2432.86"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_auth_auth -->
<g id="edge192" 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="M8186.79,-3185.46C8324.79,-3177.27 8718.35,-3154.83 9046,-3144.98 9176.9,-3141.05 13634.37,-3108.96 13760,-3071.98 13849.11,-3045.76 13862.09,-3015.98 13938,-2962.44 14106.61,-2843.54 14529.5,-2511.15 14609,-2320.76 14635.02,-2258.45 14637.69,-1938.11 14557,-1831.28"/>
<path fill="none" stroke="black" d="M14557,-1829.28C14532.81,-1801.59 14502.19,-1773.45 14478.49,-1752.9"/>
<polygon fill="#db4005" stroke="black" points="14480.78,-1750.26 14470.92,-1746.4 14476.22,-1755.57 14480.78,-1750.26"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_auth_mapping -->
<g id="edge193" 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="M8186.79,-3185.5C8324.8,-3177.39 8718.36,-3155.14 9046,-3144.98 9110.66,-3142.98 13642.52,-3094.92 13703,-3071.98 13750.02,-3054.15 13745.37,-3023.45 13789,-2998.44 13831.44,-2974.12 13856.1,-2994.54 13893,-2962.44 14151.02,-2738.01 14324.67,-2609.29 14243,-2277.22"/>
<path fill="none" stroke="black" d="M14243,-2275.22C14216.13,-2178.9 14261.6,-2146.76 14235,-2050.36"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_auth_oauth -->
<g id="edge194" 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="M8186.79,-3185.53C8324.8,-3177.49 8718.36,-3155.41 9046,-3144.98 9078.1,-3143.96 13643.49,-3090.11 13670,-3071.98 13675.04,-3068.54 13751,-2874.23 13753,-2868.46 13817.11,-2683.78 13847.62,-2639.43 13875,-2445.86 13880.55,-2406.65 13891.11,-2392.94 13875,-2356.76 13865.27,-2334.92 13844.73,-2342.61 13835,-2320.76 13818.89,-2284.59 13825.18,-2270.03 13835,-2231.67 13877.16,-2066.92 13907.19,-2019.63 14031,-1903.05 14052.67,-1882.65 14081.07,-1865.16 14104.57,-1852.55"/>
<polygon fill="#db4005" stroke="black" points="14106.07,-1855.72 14113.31,-1847.98 14102.83,-1849.52 14106.07,-1855.72"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge195" 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="M7873,-2932.45C7816.56,-2847.14 7815.12,-2577.56 7779,-2481.86 7693.16,-2254.46 7622.17,-2214.61 7443,-2050.36"/>
</g>
<!-- ahriman_core_database_migrations -->
<g id="node59" class="node">
<title>ahriman_core_database_migrations</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#884f3a" stroke="black" cx="9455" cy="-2401.31" rx="43.68" ry="36.54"/>
<text text-anchor="middle" x="9455" y="-2415.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9455" y="-2404.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="9455" y="-2393.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="9455" y="-2382.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">migrations</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_database_migrations -->
<g id="edge196" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_database_migrations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8185.36,-3182.41C8304.24,-3167.83 8615.94,-3130.6 8877,-3107.98 8938.79,-3102.63 9391.58,-3117.23 9434,-3071.98 9455.37,-3049.19 9371.14,-2540.76 9383,-2511.85"/>
<path fill="none" stroke="black" d="M9383,-2509.85C9392.42,-2484.8 9408.67,-2459.77 9423.34,-2440.18"/>
<polygon fill="#db4005" stroke="black" points="9425.93,-2442.56 9429.24,-2432.5 9420.38,-2438.29 9425.93,-2442.56"/>
</g>
<!-- ahriman_core_database_sqlite -->
<g id="node67" class="node">
<title>ahriman_core_database_sqlite</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#994f33" stroke="black" cx="9421" cy="-2276.22" rx="41.94" ry="36.54"/>
<text text-anchor="middle" x="9421" y="-2290.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9421" y="-2279.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="9421" y="-2268.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="9421" y="-2257.22" 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="edge197" 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="M9383,-2509.85C9404.97,-2451.43 9462.37,-2488.44 9508,-2445.86 9523.44,-2431.45 9521.57,-2422.72 9527,-2402.31"/>
<path fill="none" stroke="black" d="M9527,-2400.31C9537.9,-2359.33 9499.42,-2324.02 9465.82,-2301.86"/>
<polygon fill="#db4005" stroke="black" points="9468.11,-2299.17 9457.79,-2296.78 9464.37,-2305.09 9468.11,-2299.17"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_gitremote_remote_pull -->
<g id="edge198" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_gitremote_remote_pull</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8091.15,-3175.47C8032.57,-3158.69 7926.69,-3129.32 7835,-3108.98"/>
<path fill="none" stroke="black" d="M7835,-3107.98C7663.33,-3069.9 7610.99,-3116.95 7441,-3071.98 7364.56,-3051.76 7356.12,-3015.92 7279,-2998.44 6880.15,-2908.06 5837.34,-3055.07 5439,-2962.44 5379.74,-2948.66 5372.31,-2924.86 5315,-2904.46 5253.26,-2882.48 5234.33,-2888.72 5172,-2868.46 4964.3,-2800.96 4926.04,-2745.19 4716,-2685.38 4626.61,-2659.93 4582.29,-2707.8 4510,-2649.38 4417.86,-2574.93 4385.23,-2518.16 4410,-2402.31"/>
</g>
<!-- ahriman_core_gitremote_remote_pull_trigger -->
<g id="node85" class="node">
<title>ahriman_core_gitremote_remote_pull_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#994f33" stroke="black" cx="4472" cy="-2049.36" rx="70.01" ry="36.54"/>
<text text-anchor="middle" x="4472" y="-2063.36" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4472" y="-2052.36" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4472" y="-2041.36" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">gitremote.</text>
<text text-anchor="middle" x="4472" y="-2030.36" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">remote_pull_trigger</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_gitremote_remote_pull_trigger -->
<g id="edge199" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_gitremote_remote_pull_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7835,-3107.98C7712.46,-3081.04 7676.35,-3103.86 7555,-3071.98 7471.02,-3049.92 7459.06,-3015.9 7374,-2998.44 7166.94,-2955.95 5672.63,-3028.95 5472,-2962.44 5429.98,-2948.51 5429.93,-2925.54 5391,-2904.46 5154.88,-2776.63 5087.23,-2755.32 4828,-2685.38 4778.26,-2671.96 4633.32,-2687.8 4599,-2649.38 4442.72,-2474.48 4689.52,-2327.39 4576,-2122.13 4566.41,-2104.8 4550.66,-2090.77 4534.27,-2079.86"/>
<polygon fill="#db4005" stroke="black" points="4536.21,-2076.94 4525.87,-2074.6 4532.49,-2082.88 4536.21,-2076.94"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_gitremote_remote_push -->
<g id="edge200" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_gitremote_remote_push</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8087.81,-3179.6C8005.11,-3164.38 7830.82,-3132.75 7683,-3108.98"/>
<path fill="none" stroke="black" d="M7683,-3107.98C7492.78,-3077.39 7439.12,-3113.6 7251,-3071.98 7158.53,-3051.52 7144.07,-3015.99 7051,-2998.44 6665.71,-2925.79 5675.28,-3016.92 5287,-2962.44 4936.46,-2913.26 4855.42,-2862.69 4517,-2758.92 4376.09,-2715.72 4300.51,-2760.78 4204,-2649.38 4058.84,-2481.83 4262.18,-2319.19 4108,-2159.9"/>
<path fill="none" stroke="black" d="M4108,-2157.9C4080.72,-2134.67 3799.92,-2085.96 3804,-2050.36"/>
</g>
<!-- ahriman_core_gitremote_remote_push_trigger -->
<g id="node87" class="node">
<title>ahriman_core_gitremote_remote_push_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#733b26" stroke="black" cx="4248" cy="-1830.28" rx="74.49" ry="36.54"/>
<text text-anchor="middle" x="4248" y="-1844.28" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4248" y="-1833.28" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4248" y="-1822.28" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">gitremote.</text>
<text text-anchor="middle" x="4248" y="-1811.28" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">remote_push_trigger</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_gitremote_remote_push_trigger -->
<g id="edge201" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_gitremote_remote_push_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7683,-3107.98C7505.18,-3078.37 7449.49,-3130.55 7279,-3071.98 7221.98,-3052.39 7222.67,-3016.04 7165,-2998.44 6968.36,-2938.44 5516.24,-3004.54 5315,-2962.44 5083.78,-2914.08 5031.83,-2871.21 4824,-2758.92 4772.91,-2731.32 4769.81,-2707.21 4716,-2685.38 4629.87,-2650.44 4575.04,-2715.78 4510,-2649.38 4344.09,-2480.02 4588.12,-2297.88 4429,-2122.13 4385.88,-2074.5 4333.17,-2132.78 4289,-2086.13 4243.72,-2038.31 4275.37,-2004.86 4260,-1940.82"/>
<path fill="none" stroke="black" d="M4260,-1938.82C4254.71,-1919.46 4251.74,-1897.53 4250.09,-1878.55"/>
<polygon fill="#db4005" stroke="black" points="4253.58,-1878.37 4249.33,-1868.67 4246.6,-1878.91 4253.58,-1878.37"/>
</g>
<!-- ahriman_core_log_http_log_handler -->
<g id="node90" class="node">
<title>ahriman_core_log_http_log_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a15335" stroke="black" cx="8419" cy="-2831.69" rx="62.45" ry="36.54"/>
<text text-anchor="middle" x="8419" y="-2845.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8419" y="-2834.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="8419" y="-2823.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">log.</text>
<text text-anchor="middle" x="8419" y="-2812.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">http_log_handler</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_log_http_log_handler -->
<g id="edge202" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_log_http_log_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8156.96,-3162.82C8175.99,-3139.34 8204.7,-3103.59 8229,-3071.98 8285.45,-2998.54 8294.01,-2975.88 8353,-2904.46 8361.84,-2893.75 8371.8,-2882.54 8381.24,-2872.24"/>
<polygon fill="#db4005" stroke="black" points="8383.76,-2874.67 8387.99,-2864.95 8378.63,-2869.91 8383.76,-2874.67"/>
</g>
<!-- ahriman_core_log_log -->
<g id="node92" class="node">
<title>ahriman_core_log_log</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a15335" stroke="black" cx="8253" cy="-2722.15" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="8253" y="-2736.15" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8253" y="-2725.15" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="8253" y="-2714.15" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">log.</text>
<text text-anchor="middle" x="8253" y="-2703.15" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">log</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_log_log -->
<g id="edge203" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_log_log</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8139,-2932.45C8136.26,-2888.2 8119.11,-2872.32 8139,-2832.69"/>
<path fill="none" stroke="black" d="M8139,-2830.69C8147.59,-2813.58 8150.03,-2809 8163,-2794.92 8177.96,-2778.67 8196.78,-2763.08 8213.34,-2750.6"/>
<polygon fill="#db4005" stroke="black" points="8215.09,-2753.66 8221.05,-2744.9 8210.93,-2748.03 8215.09,-2753.66"/>
</g>
<!-- ahriman_core_report_console -->
<g id="node94" class="node">
<title>ahriman_core_report_console</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#82432b" stroke="black" cx="9745" cy="-2276.22" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="9745" y="-2290.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9745" y="-2279.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="9745" y="-2268.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report.</text>
<text text-anchor="middle" x="9745" y="-2257.22" 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="edge204" 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="M8186.01,-3183.21C8268.32,-3174.56 8437.52,-3157.17 8581,-3144.98 8803,-3126.13 8859.65,-3134.34 9081,-3108.98"/>
<path fill="none" stroke="black" d="M9081,-3107.98C9130.17,-3102.35 9486.22,-3102.73 9525,-3071.98 9550.61,-3051.68 9706.39,-2544.51 9705,-2511.85"/>
<path fill="none" stroke="black" d="M9705,-2509.85C9699.56,-2462.07 9721.07,-2450.23 9717,-2402.31"/>
<path fill="none" stroke="black" d="M9717,-2400.31C9714.75,-2373.85 9720.9,-2344.86 9728.01,-2321.67"/>
<polygon fill="#db4005" stroke="black" points="9731.32,-2322.81 9731.07,-2312.22 9724.66,-2320.65 9731.32,-2322.81"/>
</g>
<!-- ahriman_core_report_email -->
<g id="node95" class="node">
<title>ahriman_core_report_email</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#733b26" stroke="black" cx="11101" cy="-2049.36" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="11101" y="-2063.36" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="11101" y="-2052.36" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="11101" y="-2041.36" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report.</text>
<text text-anchor="middle" x="11101" y="-2030.36" 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="edge205" 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="M9537,-3107.98C9634.63,-3091.13 9666.68,-3112.71 9757,-3071.98 9804.09,-3050.75 9803.89,-3026.9 9847,-2998.44 10009.83,-2890.93 10054.71,-2867.06 10236,-2794.92 10457,-2706.98 10532.42,-2743.18 10751,-2649.38 10809.88,-2624.11 10817.04,-2603.16 10875,-2575.84 10917.73,-2555.7 10943.06,-2574.64 10975,-2539.84 11004.23,-2508 10994.4,-2488.72 11000,-2445.86 11005.13,-2406.6 11001.9,-2396.32 11000,-2356.76 10995.77,-2268.96 10924.79,-2227.48 10981,-2159.9"/>
</g>
<!-- ahriman_core_report_html -->
<g id="node96" class="node">
<title>ahriman_core_report_html</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#82432b" stroke="black" cx="7851" cy="-2049.36" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="7851" y="-2063.36" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7851" y="-2052.36" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7851" y="-2041.36" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report.</text>
<text text-anchor="middle" x="7851" y="-2030.36" 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="edge206" 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="M8095,-3107.98C8070.11,-3080.05 8132.89,-3073.13 8139,-3036.21"/>
<path fill="none" stroke="black" d="M8139,-3034.21C8153.09,-2949.06 7897.94,-2838.7 7865,-2758.92 7852.53,-2728.71 7854.39,-2716.3 7865,-2685.38 7871.58,-2666.21 7886.42,-2668.55 7893,-2649.38 7928.69,-2545.35 7897.28,-2510.77 7879,-2402.31"/>
</g>
<!-- ahriman_core_report_jinja_template -->
<g id="node97" class="node">
<title>ahriman_core_report_jinja_template</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8b3718" stroke="black" cx="11101" cy="-2158.9" rx="54.39" ry="36.54"/>
<text text-anchor="middle" x="11101" y="-2172.9" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="11101" y="-2161.9" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="11101" y="-2150.9" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report.</text>
<text text-anchor="middle" x="11101" y="-2139.9" 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="edge207" 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="M9757,-3107.98C9890.64,-3090.86 9927.62,-3105.94 10058,-3071.98 10247.3,-3022.69 10283.83,-2978.22 10465,-2904.46 10585.7,-2855.32 10609.87,-2823.58 10737,-2794.92 10801.39,-2780.4 11282.98,-2805.25 11330,-2758.92 11376.14,-2713.47 11331.83,-2677.73 11341,-2613.61"/>
</g>
<!-- ahriman_core_report_report -->
<g id="node98" class="node">
<title>ahriman_core_report_report</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#912d07" stroke="black" cx="10457" cy="-2158.9" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="10457" y="-2172.9" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10457" y="-2161.9" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="10457" y="-2150.9" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report.</text>
<text text-anchor="middle" x="10457" y="-2139.9" 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="edge208" 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="M8186.01,-3183.17C8268.31,-3174.46 8437.51,-3156.99 8581,-3144.98 8813.86,-3125.49 9420.43,-3175.35 9630,-3071.98 9669.12,-3052.69 9663.51,-3028.63 9695,-2998.44 9798.69,-2899.07 9825.87,-2873.64 9946,-2794.92 10034.38,-2737.01 10055.55,-2714.92 10157,-2685.38 10244.6,-2659.88 10487.98,-2696.68 10566,-2649.38 10599.17,-2629.27 10588.29,-2605.75 10613,-2575.84 10627.82,-2557.91 10641.81,-2561.21 10651,-2539.84 10661.18,-2516.17 10657.9,-2506.69 10651,-2481.86 10619.14,-2367.27 10534.32,-2252.66 10488.09,-2196.14"/>
<polygon fill="#db4005" stroke="black" points="10491.05,-2194.22 10481.98,-2188.74 10485.65,-2198.68 10491.05,-2194.22"/>
</g>
<!-- ahriman_core_report_report_trigger -->
<g id="node99" class="node">
<title>ahriman_core_report_report_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#82432b" stroke="black" cx="6723" cy="-2049.36" rx="52.15" ry="36.54"/>
<text text-anchor="middle" x="6723" y="-2063.36" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6723" y="-2052.36" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6723" y="-2041.36" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report.</text>
<text text-anchor="middle" x="6723" y="-2030.36" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report_trigger</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_report_report_trigger -->
<g id="edge209" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_report_report_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8095,-3107.98C8056.66,-3064.95 8036.43,-3065.85 7987,-3036.21"/>
<path fill="none" stroke="black" d="M7987,-3034.21C7890.78,-2976.52 7846.02,-3011.23 7745,-2962.44 7640.03,-2911.75 7001.14,-2399.3 6915,-2320.76 6842.76,-2254.91 6796.68,-2252.38 6765,-2159.9"/>
</g>
<!-- ahriman_core_report_telegram -->
<g id="node100" class="node">
<title>ahriman_core_report_telegram</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#733b26" stroke="black" cx="11195" cy="-2049.36" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="11195" y="-2063.36" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="11195" y="-2052.36" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="11195" y="-2041.36" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report.</text>
<text text-anchor="middle" x="11195" y="-2030.36" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">telegram</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_report_telegram -->
<g id="edge210" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_report_telegram</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8186.81,-3186.03C8324.87,-3179.24 8718.54,-3159.99 9046,-3144.98 9411.3,-3128.24 9503.21,-3134.53 9868,-3108.98 10039.04,-3097 10083.51,-3103.76 10252,-3071.98 10252,-3071.98 11354,-2758.92 11354,-2758.92 11500.86,-2576.31 11451.3,-2443.46 11351,-2231.67 11322.45,-2171.39 11268.31,-2115.38 11231.94,-2082.01"/>
<polygon fill="#db4005" stroke="black" points="11234.44,-2079.55 11224.68,-2075.44 11229.75,-2084.74 11234.44,-2079.55"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_repository_repository -->
<g id="edge211" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_repository_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8139,-2830.69C8147.59,-2813.58 8147.4,-2806.02 8163,-2794.92 8214.3,-2758.42 8258.4,-2806.17 8300,-2758.92 8343.04,-2710.04 8319.96,-2678.74 8319,-2613.61"/>
<path fill="none" stroke="black" d="M8319,-2611.61C8319.73,-2553.94 8310.85,-2538.63 8321,-2481.86 8327.6,-2444.96 8338.35,-2438.25 8349,-2402.31"/>
<path fill="none" stroke="black" d="M8349,-2400.31C8352.08,-2362.96 8328.47,-2357.49 8321,-2320.76 8287.26,-2154.96 8296.49,-2110.02 8297,-1940.82"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge212" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_repository_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8139,-3034.21C8149.23,-2991.07 8141.74,-2978.7 8139,-2934.45"/>
<path fill="none" stroke="black" d="M8139,-2932.45C8136.07,-2885.26 8088.9,-2900.37 8054,-2868.46 8005.57,-2824.18 7978.57,-2820.16 7955,-2758.92 7898.06,-2611.01 8005.2,-2552.65 7955,-2402.31"/>
<path fill="none" stroke="black" d="M7955,-2400.31C7932.47,-2325.88 8011.31,-2104 7955,-2050.36"/>
<path fill="none" stroke="black" d="M7955,-2048.36C7939.51,-2034.56 7942.74,-2023.35 7925,-2012.59 7861.56,-1974.12 7832.97,-1998.23 7762,-1976.59 7754.3,-1974.24 7746.32,-1971.54 7738.45,-1968.69"/>
<polygon fill="#db4005" stroke="black" points="7739.81,-1965.46 7729.22,-1965.26 7737.37,-1972.02 7739.81,-1965.46"/>
</g>
<!-- ahriman_core_sign_gpg -->
<g id="node108" class="node">
<title>ahriman_core_sign_gpg</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#933b1a" stroke="black" cx="8795" cy="-2401.31" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="8795" y="-2415.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8795" y="-2404.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="8795" y="-2393.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">sign.</text>
<text text-anchor="middle" x="8795" y="-2382.31" 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="edge213" 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="M8095,-3107.98C8075.35,-3084.86 8131.01,-3092.88 8153,-3071.98 8195.96,-3031.17 8198.51,-3013.25 8229,-2962.44 8250.53,-2926.56 8282.5,-2821.28 8315,-2794.92 8362.23,-2756.62 8397.54,-2794.3 8447,-2758.92 8526.93,-2701.75 8508.82,-2651.95 8571,-2575.84 8607.98,-2530.58 8617.16,-2518.12 8663,-2481.86 8671.08,-2475.47 8717.22,-2447.97 8752.69,-2427.08"/>
<polygon fill="#db4005" stroke="black" points="8754.23,-2430.24 8761.07,-2422.16 8750.68,-2424.21 8754.23,-2430.24"/>
</g>
<!-- ahriman_core_spawn -->
<g id="node109" class="node">
<title>ahriman_core_spawn</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#ae451e" stroke="black" cx="9563" cy="-2510.85" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="9563" y="-2519.35" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9563" y="-2508.35" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="9563" y="-2497.35" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">spawn</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_spawn -->
<g id="edge214" 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="M8186.02,-3183.33C8268.35,-3174.83 8437.56,-3157.67 8581,-3144.98 8584.21,-3144.7 9502.82,-3074.35 9505,-3071.98 9541.11,-3032.91 9486.62,-2884.87 9497,-2832.69"/>
<path fill="none" stroke="black" d="M9497,-2830.69C9509.62,-2728.44 9537.73,-2610.18 9552.87,-2550.53"/>
<polygon fill="#db4005" stroke="black" points="9556.16,-2551.77 9555.25,-2541.21 9549.38,-2550.03 9556.16,-2551.77"/>
</g>
<!-- ahriman_core_status_client -->
<g id="node111" class="node">
<title>ahriman_core_status_client</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#9c3711" stroke="black" cx="8625" cy="-3035.21" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="8625" y="-3049.21" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8625" y="-3038.21" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="8625" y="-3027.21" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status.</text>
<text text-anchor="middle" x="8625" y="-3016.21" 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="edge215" 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="M8184.66,-3180.23C8246.34,-3168.74 8355.21,-3145.23 8443,-3108.98"/>
<path fill="none" stroke="black" d="M8443,-3107.98C8489.15,-3088.93 8542.3,-3068.1 8579.21,-3053.81"/>
<polygon fill="#db4005" stroke="black" points="8580.16,-3057.19 8588.22,-3050.32 8577.63,-3050.66 8580.16,-3057.19"/>
</g>
<!-- ahriman_core_status_watcher -->
<g id="node112" class="node">
<title>ahriman_core_status_watcher</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a371e" stroke="black" cx="11024" cy="-1320.13" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="11024" y="-1334.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="11024" y="-1323.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="11024" y="-1312.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status.</text>
<text text-anchor="middle" x="11024" y="-1301.13" 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="edge216" 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="M8186.81,-3186.01C8324.86,-3179.17 8718.53,-3159.82 9046,-3144.98 9549.25,-3122.18 10856.95,-3115.46 11296,-2868.46 11335.6,-2846.19 11330.95,-2822.57 11367,-2794.92 11393.2,-2774.82 11404.25,-2776.83 11432,-2758.92 11500.46,-2714.74 11529.86,-2714.37 11579,-2649.38 11685.78,-2508.17 11721,-2454.25 11721,-2277.22 11721,-2277.22 11721,-2277.22 11721,-2157.9 11721,-1935.43 11455.41,-2075.44 11242,-2012.59 11186.13,-1996.14 11159.67,-2015.12 11116,-1976.59 11063.35,-1930.14 11054,-1901.5 11054,-1831.28 11054,-1831.28 11054,-1831.28 11054,-1719.74 11054,-1623.26 11047.63,-1598.93 11054,-1502.67"/>
</g>
<!-- ahriman_core_status_web_client -->
<g id="node113" class="node">
<title>ahriman_core_status_web_client</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#733b26" stroke="black" cx="10233" cy="-2401.31" rx="43.68" ry="36.54"/>
<text text-anchor="middle" x="10233" y="-2415.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10233" y="-2404.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="10233" y="-2393.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status.</text>
<text text-anchor="middle" x="10233" y="-2382.31" 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="edge217" 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="M9081,-3107.98C9191.7,-3095.5 9483.38,-3125.66 9581,-3071.98 9662.17,-3027.35 9649.69,-2978.77 9705,-2904.46 9741.31,-2855.68 9740.09,-2833.62 9787,-2794.92 9929.49,-2677.37 10096.86,-2786.84 10161,-2613.61"/>
<path fill="none" stroke="black" d="M10161,-2611.61C10179.63,-2554.8 10202.21,-2489.73 10217.06,-2447.43"/>
<polygon fill="#db4005" stroke="black" points="10220.33,-2448.68 10220.34,-2438.08 10213.73,-2446.36 10220.33,-2448.68"/>
</g>
<!-- ahriman_core_triggers_trigger -->
<g id="node116" class="node">
<title>ahriman_core_triggers_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a472e" stroke="black" cx="6453" cy="-2401.31" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="6453" y="-2415.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6453" y="-2404.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6453" y="-2393.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">triggers.</text>
<text text-anchor="middle" x="6453" y="-2382.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">trigger</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_triggers_trigger -->
<g id="edge218" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_triggers_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8125.98,-3160.96C8119.06,-3144.57 8108.64,-3124.09 8095,-3108.98"/>
<path fill="none" stroke="black" d="M8095,-3107.98C8047.34,-3055.19 7841.7,-3101.5 7777,-3071.98 7733.06,-3051.94 7739.05,-3022.19 7697,-2998.44 7647.4,-2970.44 7627.71,-2981.41 7574,-2962.44 7162.23,-2817.06 7029.19,-2811.13 6687,-2539.84 6660.78,-2519.06 6666.4,-2501.05 6639,-2481.86 6599.96,-2454.53 6581.74,-2464.77 6538,-2445.86 6524.05,-2439.83 6509.2,-2432.54 6495.87,-2425.66"/>
<polygon fill="#db4005" stroke="black" points="6497.85,-2422.74 6487.36,-2421.21 6494.6,-2428.95 6497.85,-2422.74"/>
</g>
<!-- ahriman_core_triggers_trigger_loader -->
<g id="node117" class="node">
<title>ahriman_core_triggers_trigger_loader</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#82432b" stroke="black" cx="6600" cy="-2401.31" rx="53.07" ry="36.54"/>
<text text-anchor="middle" x="6600" y="-2415.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6600" y="-2404.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6600" y="-2393.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">triggers.</text>
<text text-anchor="middle" x="6600" y="-2382.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">trigger_loader</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_triggers_trigger_loader -->
<g id="edge219" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_triggers_trigger_loader</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8095,-3107.98C8057.71,-3065.49 8026.4,-3090.53 7973,-3071.98 7849.5,-3029.09 7819.04,-3016.5 7700,-2962.44 7287.1,-2774.93 6805.23,-2514.71 6650.52,-2430.09"/>
<polygon fill="#db4005" stroke="black" points="6652.59,-2427.23 6642.13,-2425.5 6649.23,-2433.37 6652.59,-2427.23"/>
</g>
<!-- ahriman_core_upload_github -->
<g id="node119" class="node">
<title>ahriman_core_upload_github</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#82432b" stroke="black" cx="11498" cy="-2158.9" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="11498" y="-2172.9" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="11498" y="-2161.9" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="11498" y="-2150.9" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload.</text>
<text text-anchor="middle" x="11498" y="-2139.9" 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="edge220" 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="M8186.7,-3186.09C8458.31,-3173.04 9730.49,-3111.83 9771,-3108.98 9949.98,-3096.4 10001.77,-3125.57 10173,-3071.98 10236.35,-3052.16 10241.44,-3023.27 10303,-2998.44 10387.17,-2964.5 11004.96,-2812.48 11094,-2794.92 11151.23,-2783.64 11308.22,-2795.07 11354,-2758.92 11387.38,-2732.57 11493,-2444.84 11493,-2402.31"/>
<path fill="none" stroke="black" d="M11493,-2400.31C11491.78,-2333.22 11494.06,-2255.59 11495.93,-2207.12"/>
<polygon fill="#db4005" stroke="black" points="11499.42,-2207.39 11496.32,-2197.25 11492.43,-2207.11 11499.42,-2207.39"/>
</g>
<!-- ahriman_core_upload_http_upload -->
<g id="node120" class="node">
<title>ahriman_core_upload_http_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#914b30" stroke="black" cx="11568" cy="-2276.22" rx="47.25" ry="36.54"/>
<text text-anchor="middle" x="11568" y="-2290.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="11568" y="-2279.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="11568" y="-2268.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload.</text>
<text text-anchor="middle" x="11568" y="-2257.22" 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="edge221" 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="M8186.81,-3186.05C8324.87,-3179.31 8718.55,-3160.18 9046,-3144.98 9401.98,-3128.47 9491.35,-3131.4 9847,-3108.98 10049.93,-3096.19 10102.93,-3108.26 10303,-3071.98 10427.83,-3049.35 11298.17,-2833.22 11401,-2758.92 11508.63,-2681.15 11623.42,-2632.98 11569,-2511.85"/>
<path fill="none" stroke="black" d="M11569,-2509.85C11548.58,-2463.46 11539.05,-2452.36 11531,-2402.31"/>
<path fill="none" stroke="black" d="M11531,-2400.31C11526.64,-2373.18 11535.03,-2343.67 11544.92,-2320.35"/>
<polygon fill="#db4005" stroke="black" points="11548,-2322.03 11548.91,-2311.48 11541.62,-2319.16 11548,-2322.03"/>
</g>
<!-- ahriman_core_upload_rsync -->
<g id="node121" class="node">
<title>ahriman_core_upload_rsync</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a472e" stroke="black" cx="10761" cy="-2276.22" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="10761" y="-2290.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10761" y="-2279.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="10761" y="-2268.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload.</text>
<text text-anchor="middle" x="10761" y="-2257.22" 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="edge222" 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="M8185.64,-3182.69C8267.76,-3173.25 8437.14,-3154.72 8581,-3144.98 9005.22,-3116.26 9117.74,-3179.76 9537,-3108.98"/>
<path fill="none" stroke="black" d="M9537,-3107.98C9608.02,-3095.99 9630.49,-3104 9695,-3071.98 9798.87,-3020.44 9799.53,-2970.26 9895,-2904.46 9977.17,-2847.83 10002.43,-2840.89 10091,-2794.92 10140.89,-2769.03 10265.04,-2701.13 10319,-2685.38 10447.06,-2648 10509.02,-2727.72 10617,-2649.38 10722.96,-2572.51 10750.95,-2406.36 10758.35,-2324.61"/>
<polygon fill="#db4005" stroke="black" points="10761.83,-2324.94 10759.17,-2314.68 10754.85,-2324.36 10761.83,-2324.94"/>
</g>
<!-- ahriman_core_upload_s3 -->
<g id="node122" class="node">
<title>ahriman_core_upload_s3</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#82432b" stroke="black" cx="11265" cy="-2276.22" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="11265" y="-2290.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="11265" y="-2279.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="11265" y="-2268.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload.</text>
<text text-anchor="middle" x="11265" y="-2257.22" 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="edge223" 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="M8186.96,-3186.08C8459.87,-3172.94 9737.01,-3111.4 9757,-3108.98"/>
<path fill="none" stroke="black" d="M9757,-3107.98C9843.19,-3097.57 9866.35,-3098.55 9949,-3071.98 10152.59,-3006.53 10195.91,-2968.35 10385,-2868.46 10441.65,-2838.53 10447.72,-2813.64 10509,-2794.92 10641.62,-2754.4 11015.26,-2833.77 11132,-2758.92 11147.15,-2749.21 11140.38,-2737.69 11151,-2723.15"/>
<path fill="none" stroke="black" d="M11151,-2721.15C11179.19,-2682.56 11129.69,-2656.39 11151,-2613.61"/>
</g>
<!-- ahriman_core_upload_upload -->
<g id="node123" class="node">
<title>ahriman_core_upload_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a300f" stroke="black" cx="11199" cy="-2401.31" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="11199" y="-2415.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="11199" y="-2404.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="11199" y="-2393.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload.</text>
<text text-anchor="middle" x="11199" y="-2382.31" 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="edge224" 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="M8186.86,-3186.14C8406.85,-3175.72 9277.77,-3133.71 9551,-3108.98 9683.04,-3097.03 9719.74,-3109.17 9847,-3071.98 10123.53,-2991.18 10153.83,-2866.04 10433,-2794.92 10560.07,-2762.55 10911.73,-2829.88 11022,-2758.92 11037.14,-2749.18 11033.92,-2739.7 11041,-2723.15"/>
<path fill="none" stroke="black" d="M11041,-2721.15C11059.7,-2677.17 11010.16,-2650.12 11041,-2613.61"/>
</g>
<!-- ahriman_core_upload_upload_trigger -->
<g id="node124" class="node">
<title>ahriman_core_upload_upload_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#82432b" stroke="black" cx="6999" cy="-2049.36" rx="54.39" ry="36.54"/>
<text text-anchor="middle" x="6999" y="-2063.36" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6999" y="-2052.36" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6999" y="-2041.36" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload.</text>
<text text-anchor="middle" x="6999" y="-2030.36" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload_trigger</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_upload_upload_trigger -->
<g id="edge225" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_upload_upload_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7987,-3034.21C7929.26,-2999.59 7912.4,-2989.05 7873,-2934.45"/>
<path fill="none" stroke="black" d="M7873,-2932.45C7728.97,-2732.85 7721.22,-2659.66 7551,-2481.86 7533.05,-2463.11 7525.41,-2461.9 7505,-2445.86 7322.47,-2302.37 7279.11,-2263.59 7095,-2122.13 7078.59,-2109.52 7060.43,-2095.87 7044.37,-2083.9"/>
<polygon fill="#db4005" stroke="black" points="7046.51,-2081.13 7036.4,-2077.96 7042.33,-2086.74 7046.51,-2081.13"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_models_migration -->
<g id="edge226" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_models_migration</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8663,-3107.98C8874.03,-3078.72 8929.25,-3095.45 9141,-3071.98 9208.37,-3064.52 9285.72,-3052.61 9334.95,-3044.6"/>
<polygon fill="#db4005" stroke="black" points="9335.43,-3048.07 9344.74,-3043 9334.3,-3041.16 9335.43,-3048.07"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_web_apispec -->
<g id="edge227" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_web_apispec</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8186.78,-3185.43C8324.79,-3177.13 8718.34,-3154.46 9046,-3144.98 10640.97,-3098.84 11041.4,-3166.37 12636,-3108.98"/>
<path fill="none" stroke="black" d="M12636,-3107.98C12903.28,-3098.36 13577.47,-3127.96 13839,-3071.98 13922.7,-3054.07 13937.6,-3030.42 14017,-2998.44 14370.41,-2856.13 14446.99,-2783.94 14815,-2685.38 14866.88,-2671.49 15016.05,-2687.39 15054,-2649.38 15131.71,-2571.56 15127,-2269.88 15127,-2159.9 15127,-2159.9 15127,-2159.9 15127,-2048.36 15127,-1863.58 15208.77,-1830.26 15239,-1647.97 15244.35,-1615.73 15253.9,-1603.52 15239,-1574.43 15226.52,-1550.06 15201.48,-1562.81 15189,-1538.43 15174.1,-1509.35 15181.14,-1496.62 15189,-1464.9 15197.7,-1429.77 15207.35,-1423.28 15227,-1392.9 15248.97,-1358.92 15268.7,-1358.97 15283,-1321.13"/>
<path fill="none" stroke="black" d="M15283,-1319.13C15295.95,-1273.12 15266.5,-1256.44 15283,-1211.59"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge228" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_web_middlewares_auth_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12636,-3107.98C12781.07,-3102.72 13804.38,-3118.17 13942,-3071.98 13995.33,-3054.09 13994.05,-3022.28 14045,-2998.44 14102.41,-2971.58 14122.47,-2981.27 14183,-2962.44 14355.45,-2908.81 14772.74,-2732.8 14947,-2685.38 15031.62,-2662.36 15080.46,-2712.82 15141,-2649.38 15204.04,-2583.33 15157.84,-2536.48 15169,-2445.86 15198.65,-2205.01 15193.23,-2143.22 15228,-1903.05 15243.89,-1793.27 15272.6,-1513.54 15317,-1411.9"/>
<path fill="none" stroke="black" d="M15317,-1409.9C15338.88,-1355.35 15403.88,-1378.83 15415,-1321.13"/>
<path fill="none" stroke="black" d="M15415,-1319.13C15424.04,-1272.19 15417.6,-1259.31 15415,-1211.59"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_web_views_base -->
<g id="edge229" 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="M8186.8,-3185.96C8324.86,-3178.99 8718.51,-3159.35 9046,-3144.98 9481.81,-3125.87 12666.19,-3087.61 12953,-2758.92 12974.49,-2734.29 12957.22,-2717.79 12953,-2685.38 12946.5,-2635.44 12938.53,-2624.06 12924,-2575.84 12906.41,-2517.45 12889.91,-2506.04 12880,-2445.86 12873.57,-2406.79 12872.06,-2395.56 12880,-2356.76 12938.07,-2073.03 13022.61,-2024.01 13136,-1757.51 13191.3,-1627.54 13185.41,-1584.85 13260,-1464.9 13274.06,-1442.29 13552.35,-1118.85 13573,-1102.05"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_web_web -->
<g id="edge230" 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="M9497,-2830.69C9502.42,-2796.37 9515.02,-2791.15 9528,-2758.92 9566.85,-2662.49 9575.96,-2638.08 9610,-2539.84 9624.36,-2498.41 9629.02,-2488.31 9640,-2445.86 9654.2,-2390.97 9654.97,-2376.57 9665,-2320.76 9713.3,-2052.11 9793,-1663.22 9793,-1502.67 9793,-1502.67 9793,-1502.67 9793,-1209.59 9793,-1144.13 9792.41,-1124.94 9817,-1064.28 9839.26,-1009.36 9854.11,-999.44 9893,-954.74 9908.48,-936.94 9918.32,-937.96 9932,-918.74 9944.24,-901.53 9962.08,-893.17 9951,-875.19"/>
</g>
<!-- ahriman_core_configuration_configuration -->
<g id="node55" class="node">
<title>ahriman_core_configuration_configuration</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a15335" stroke="black" cx="9326" cy="-4255.8" rx="53.07" ry="36.54"/>
<text text-anchor="middle" x="9326" y="-4269.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9326" y="-4258.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="9326" y="-4247.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">configuration.</text>
<text text-anchor="middle" x="9326" y="-4236.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">configuration</text>
</g>
<!-- ahriman_core_configuration_configuration&#45;&gt;ahriman_core_configuration -->
<g id="edge231" class="edge">
<title>ahriman_core_configuration_configuration&#45;&gt;ahriman_core_configuration</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9286.69,-4230.89C9097.64,-4115.24 8291,-3614.38 8291,-3488.03 8291,-3488.03 8291,-3488.03 8291,-3392.05 8291,-3317.52 8223.56,-3253.63 8177.65,-3218.77"/>
<polygon fill="#a15335" stroke="black" points="8179.83,-3216.03 8169.71,-3212.89 8175.66,-3221.65 8179.83,-3216.03"/>
</g>
<!-- ahriman_core_configuration_schema -->
<g id="node56" class="node">
<title>ahriman_core_configuration_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#ce633b" stroke="black" cx="6430" cy="-2612.61" rx="53.07" ry="36.54"/>
<text text-anchor="middle" x="6430" y="-2626.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6430" y="-2615.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6430" y="-2604.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">configuration.</text>
<text text-anchor="middle" x="6430" y="-2593.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">schema</text>
</g>
<!-- ahriman_core_configuration_schema&#45;&gt;ahriman_application_handlers_validate -->
<g id="edge232" class="edge">
<title>ahriman_core_configuration_schema&#45;&gt;ahriman_application_handlers_validate</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6413.69,-2577.41C6405.99,-2558.55 6398.21,-2534.44 6397,-2511.85"/>
<path fill="none" stroke="black" d="M6397,-2509.85C6391.49,-2406.51 6387,-2380.71 6387,-2277.22 6387,-2277.22 6387,-2277.22 6387,-2157.9 6387,-2087.69 6379.71,-2056.6 6325,-2012.59 6276.34,-1973.46 6097.48,-1953.26 6003.92,-1945.17"/>
<polygon fill="#ce633b" stroke="black" points="6004.44,-1941.7 5994.18,-1944.35 6003.85,-1948.68 6004.44,-1941.7"/>
</g>
<!-- ahriman_core_configuration_schema&#45;&gt;ahriman_core_triggers_trigger -->
<g id="edge233" class="edge">
<title>ahriman_core_configuration_schema&#45;&gt;ahriman_core_triggers_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6397,-2509.85C6395.63,-2484.2 6408.29,-2458.57 6421.92,-2438.77"/>
<polygon fill="#ce633b" stroke="black" points="6424.69,-2440.91 6427.74,-2430.76 6419.03,-2436.79 6424.69,-2440.91"/>
</g>
<!-- ahriman_core_configuration_validator -->
<g id="node57" class="node">
<title>ahriman_core_configuration_validator</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a85738" stroke="black" cx="6122" cy="-2831.69" rx="53.07" ry="36.54"/>
<text text-anchor="middle" x="6122" y="-2845.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6122" y="-2834.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6122" y="-2823.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">configuration.</text>
<text text-anchor="middle" x="6122" y="-2812.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">validator</text>
</g>
<!-- ahriman_core_configuration_validator&#45;&gt;ahriman_application_handlers_validate -->
<g id="edge234" class="edge">
<title>ahriman_core_configuration_validator&#45;&gt;ahriman_application_handlers_validate</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6110.59,-2795.62C6105.29,-2771.89 6103.64,-2741.62 6122,-2723.15"/>
</g>
<!-- ahriman_core_database -->
<g id="node58" class="node">
<title>ahriman_core_database</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#db4005" stroke="black" cx="9421" cy="-2158.9" rx="39.7" ry="28.98"/>
<text text-anchor="middle" x="9421" y="-2167.4" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9421" y="-2156.4" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="9421" y="-2145.4" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database</text>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_application_application_application_properties -->
<g id="edge235" class="edge">
<title>ahriman_core_database&#45;&gt;ahriman_application_application_application_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9391,-2048.36C9226.92,-1658.14 8920.11,-1792.71 8511,-1683.97 8139.47,-1585.23 8036.5,-1601.11 7653,-1574.43 6983.24,-1527.85 5300.04,-1605.32 4632,-1538.43 4201.67,-1495.35 4099.39,-1445.11 3676,-1356.9 3531.44,-1326.77 3497.34,-1309.47 3352,-1283.36 3194.22,-1255.01 3008.6,-1232.69 2901.49,-1220.87"/>
<polygon fill="#db4005" stroke="black" points="2901.93,-1217.4 2891.61,-1219.79 2901.17,-1224.36 2901.93,-1217.4"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_application_handlers_backup -->
<g id="edge236" class="edge">
<title>ahriman_core_database&#45;&gt;ahriman_application_handlers_backup</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9391,-2048.36C9372.47,-2004.3 9391,-1988.62 9391,-1940.82"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_application_handlers_users -->
<g id="edge237" class="edge">
<title>ahriman_core_database&#45;&gt;ahriman_application_handlers_users</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9460.43,-2153.7C9642.09,-2134.47 10416.72,-2054.11 11054,-2012.59 11834.57,-1961.74 13789.48,-1900.23 14571,-1867.05 14857.71,-1854.88 15200.64,-1839.78 15334.99,-1833.85"/>
<polygon fill="#db4005" stroke="black" points="15334.85,-1837.36 15344.69,-1833.42 15334.54,-1830.37 15334.85,-1837.36"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_core_auth_auth -->
<g id="edge238" 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="M9450.54,-2139.01C9502.62,-2106.76 9615.19,-2041.76 9720,-2012.59 9736.2,-2008.08 10909.22,-1904.25 10926,-1903.05 12339.42,-1802.45 14076.37,-1735.34 14390.96,-1723.59"/>
<polygon fill="#db4005" stroke="black" points="14391.01,-1727.09 14400.88,-1723.22 14390.75,-1720.09 14391.01,-1727.09"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_core_auth_mapping -->
<g id="edge239" 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="M9460.4,-2153.27C9641.96,-2132.16 10416.18,-2044.74 11054,-2012.59 11220.74,-2004.19 13895.21,-2008.96 14059,-1976.59 14074.38,-1973.55 14090.49,-1967.98 14104.77,-1962.13"/>
<polygon fill="#db4005" stroke="black" points="14106.07,-1965.38 14113.89,-1958.23 14103.32,-1958.94 14106.07,-1965.38"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_core_auth_oauth -->
<g id="edge240" 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="M9458.1,-2147.98C9561.69,-2120.75 9863.25,-2044.75 10119,-2012.59 10144.96,-2009.33 13638.68,-1853.97 14099.12,-1833.5"/>
<polygon fill="#db4005" stroke="black" points="14099,-1837.01 14108.84,-1833.07 14098.69,-1830.02 14099,-1837.01"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge241" 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="M9388.17,-2142.04C9370.97,-2134.54 9349.31,-2126.32 9329,-2122.13 8889.94,-2031.64 8764.38,-2152.26 8321,-2086.13 8195.44,-2067.4 8170.13,-2033.97 8045,-2012.59 7842.86,-1978.05 7789.05,-1997.02 7585,-1976.59 7503.14,-1968.39 7408.71,-1956.41 7349.68,-1948.61"/>
<polygon fill="#db4005" stroke="black" points="7350.24,-1945.16 7339.86,-1947.31 7349.32,-1952.1 7350.24,-1945.16"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_core_gitremote_remote_push -->
<g id="edge242" class="edge">
<title>ahriman_core_database&#45;&gt;ahriman_core_gitremote_remote_push</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9388.19,-2141.98C9370.99,-2134.45 9349.32,-2126.24 9329,-2122.13 9049.21,-2065.58 8321.86,-2155.63 8045,-2086.13 7974.15,-2068.34 7969.01,-2029.73 7898,-2012.59 7700.77,-1964.98 4448.65,-1986.64 4246,-1976.59 4126.2,-1970.65 3986.77,-1956.54 3908.2,-1947.92"/>
<polygon fill="#db4005" stroke="black" points="3908.88,-1944.48 3898.56,-1946.86 3908.12,-1951.44 3908.88,-1944.48"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_core_gitremote_remote_push_trigger -->
<g id="edge243" class="edge">
<title>ahriman_core_database&#45;&gt;ahriman_core_gitremote_remote_push_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8335,-2048.36C8272.71,-2036.74 8258.41,-2028.19 8197,-2012.59 8001.68,-1962.97 7956.77,-1929.62 7757,-1903.05 7408.67,-1856.73 4838.93,-1835.61 4333.98,-1831.89"/>
<polygon fill="#db4005" stroke="black" points="4334.33,-1828.39 4324.3,-1831.82 4334.28,-1835.39 4334.33,-1828.39"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_core_repository_repository -->
<g id="edge244" class="edge">
<title>ahriman_core_database&#45;&gt;ahriman_core_repository_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9418.97,-2129.69C9416.02,-2106.33 9408.78,-2073.37 9391,-2050.36"/>
<path fill="none" stroke="black" d="M9391,-2048.36C9354.72,-2001.41 8444.91,-1696.9 8387,-1683.97 8117.29,-1623.79 7784.8,-1613.88 7655.28,-1612.39"/>
<polygon fill="#db4005" stroke="black" points="7655.67,-1608.9 7645.63,-1612.3 7655.6,-1615.9 7655.67,-1608.9"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge245" class="edge">
<title>ahriman_core_database&#45;&gt;ahriman_core_repository_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9388.11,-2142.35C9370.89,-2134.92 9349.23,-2126.68 9329,-2122.13 8896.89,-2024.85 8770.42,-2131.57 8335,-2050.36"/>
<path fill="none" stroke="black" d="M8335,-2048.36C8272.71,-2036.74 8259.16,-2024.84 8197,-2012.59 8043.6,-1982.36 7862.53,-1960.68 7757.82,-1949.49"/>
<polygon fill="#db4005" stroke="black" points="7758.19,-1946.01 7747.88,-1948.44 7757.45,-1952.97 7758.19,-1946.01"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_core_status_watcher -->
<g id="edge246" 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="M9441.94,-2133.73C9472.83,-2095.52 9527,-2017.57 9527,-1940.82 9527,-1940.82 9527,-1940.82 9527,-1829.28 9527,-1516.23 10715.68,-1357.6 10974.6,-1326.76"/>
<polygon fill="#db4005" stroke="black" points="10974.85,-1330.25 10984.37,-1325.6 10974.02,-1323.3 10974.85,-1330.25"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_web_web -->
<g id="edge247" 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="M9391,-2048.36C9377.81,-2018.66 9400.29,-2008.75 9405,-1976.59 9456.93,-1621.86 9399.25,-1522.17 9484,-1173.82 9517.77,-1034.99 9496.53,-970.47 9603,-875.19"/>
<path fill="none" stroke="black" d="M9603,-873.19C9690.92,-777.32 9838.53,-883.57 9872,-757.87"/>
<path fill="none" stroke="black" d="M9872,-755.87C9887.34,-698.26 9883.02,-628.52 9877.93,-585.87"/>
<polygon fill="#db4005" stroke="black" points="9881.42,-585.57 9876.69,-576.09 9874.48,-586.45 9881.42,-585.57"/>
</g>
<!-- ahriman_core_database_migrations&#45;&gt;ahriman_core_database_sqlite -->
<g id="edge248" 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="M9445.35,-2365.37C9441.72,-2352.24 9437.55,-2337.12 9433.69,-2323.15"/>
<polygon fill="#884f3a" stroke="black" points="9437.12,-2322.42 9431.08,-2313.71 9430.37,-2324.28 9437.12,-2322.42"/>
</g>
<!-- ahriman_core_database_operations -->
<g id="node60" class="node">
<title>ahriman_core_database_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#9f2e04" stroke="black" cx="9349" cy="-2401.31" rx="43.68" ry="36.54"/>
<text text-anchor="middle" x="9349" y="-2415.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9349" y="-2404.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="9349" y="-2393.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="9349" y="-2382.31" 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="edge249" 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="M9367.92,-2367.97C9376.68,-2352.99 9387.2,-2335 9396.56,-2319"/>
<polygon fill="#9f2e04" stroke="black" points="9399.42,-2321.05 9401.45,-2310.65 9393.37,-2317.51 9399.42,-2321.05"/>
</g>
<!-- ahriman_core_database_operations_auth_operations -->
<g id="node61" class="node">
<title>ahriman_core_database_operations_auth_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#914b30" stroke="black" cx="13354" cy="-2401.31" rx="60.62" ry="44.6"/>
<text text-anchor="middle" x="13354" y="-2420.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="13354" y="-2409.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="13354" y="-2398.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="13354" y="-2387.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">operations.</text>
<text text-anchor="middle" x="13354" y="-2376.81" 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_operations -->
<g id="edge250" class="edge">
<title>ahriman_core_database_operations_auth_operations&#45;&gt;ahriman_core_database_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13316.83,-2436.97C13303.19,-2447.77 13286.91,-2458.25 13270,-2463.86 13219.12,-2480.72 9460.47,-2484.48 9411,-2463.86 9398.99,-2458.86 9388.12,-2450.27 9378.95,-2441.03"/>
<polygon fill="#914b30" stroke="black" points="9381.74,-2438.89 9372.38,-2433.94 9376.6,-2443.65 9381.74,-2438.89"/>
</g>
<!-- ahriman_core_database_operations_build_operations -->
<g id="node62" class="node">
<title>ahriman_core_database_operations_build_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#994f33" stroke="black" cx="2352" cy="-2401.31" rx="61.54" ry="44.6"/>
<text text-anchor="middle" x="2352" y="-2420.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2352" y="-2409.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="2352" y="-2398.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="2352" y="-2387.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">operations.</text>
<text text-anchor="middle" x="2352" y="-2376.81" 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_operations -->
<g id="edge251" class="edge">
<title>ahriman_core_database_operations_build_operations&#45;&gt;ahriman_core_database_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2413.3,-2406.95C2560.5,-2420.17 2945.61,-2452.87 3268,-2463.86 3351.48,-2466.71 9204.29,-2494.49 9282,-2463.86 9294.95,-2458.75 9306.88,-2449.83 9316.97,-2440.3"/>
<polygon fill="#994f33" stroke="black" points="9319.36,-2442.85 9323.92,-2433.29 9314.39,-2437.92 9319.36,-2442.85"/>
</g>
<!-- ahriman_core_database_operations_logs_operations -->
<g id="node63" class="node">
<title>ahriman_core_database_operations_logs_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#914b30" stroke="black" cx="12949" cy="-2401.31" rx="60.21" ry="44.6"/>
<text text-anchor="middle" x="12949" y="-2420.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="12949" y="-2409.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="12949" y="-2398.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="12949" y="-2387.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">operations.</text>
<text text-anchor="middle" x="12949" y="-2376.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">logs_operations</text>
</g>
<!-- ahriman_core_database_operations_logs_operations&#45;&gt;ahriman_core_database_operations -->
<g id="edge252" class="edge">
<title>ahriman_core_database_operations_logs_operations&#45;&gt;ahriman_core_database_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12912.34,-2436.97C12898.86,-2447.77 12882.77,-2458.25 12866,-2463.86 12820.49,-2479.09 9455.29,-2482.32 9411,-2463.86 9398.99,-2458.86 9388.12,-2450.27 9378.95,-2441.03"/>
<polygon fill="#914b30" stroke="black" points="9381.74,-2438.89 9372.38,-2433.94 9376.6,-2443.65 9381.74,-2438.89"/>
</g>
<!-- ahriman_core_database_operations_operations -->
<g id="node64" class="node">
<title>ahriman_core_database_operations_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b05a3a" stroke="black" cx="8029" cy="-2401.31" rx="45.92" ry="44.6"/>
<text text-anchor="middle" x="8029" y="-2420.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8029" y="-2409.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="8029" y="-2398.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="8029" y="-2387.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">operations.</text>
<text text-anchor="middle" x="8029" y="-2376.81" 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 -->
<g id="edge253" class="edge">
<title>ahriman_core_database_operations_operations&#45;&gt;ahriman_core_database_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8070.72,-2420.51C8106.13,-2435.68 8158.73,-2455.63 8207,-2463.86 8265.87,-2473.9 9226.44,-2485.76 9282,-2463.86 9294.95,-2458.75 9306.88,-2449.83 9316.97,-2440.3"/>
<polygon fill="#b05a3a" stroke="black" points="9319.36,-2442.85 9323.92,-2433.29 9314.39,-2437.92 9319.36,-2442.85"/>
</g>
<!-- ahriman_core_database_operations_package_operations -->
<g id="node65" class="node">
<title>ahriman_core_database_operations_package_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#82432b" stroke="black" cx="9129" cy="-3189.53" rx="73.58" ry="44.6"/>
<text text-anchor="middle" x="9129" y="-3209.03" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9129" y="-3198.03" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="9129" y="-3187.03" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="9129" y="-3176.03" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">operations.</text>
<text text-anchor="middle" x="9129" y="-3165.03" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">package_operations</text>
</g>
<!-- ahriman_core_database_operations_package_operations&#45;&gt;ahriman_core_database_operations -->
<g id="edge254" class="edge">
<title>ahriman_core_database_operations_package_operations&#45;&gt;ahriman_core_database_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9155.84,-3147.86C9184.13,-3103.65 9228.59,-3030.23 9258,-2962.44 9295.69,-2875.58 9305.15,-2852.27 9321,-2758.92 9341.62,-2637.44 9315.11,-2604.05 9331,-2481.86 9332.42,-2470.92 9334.65,-2459.27 9337.05,-2448.35"/>
<polygon fill="#82432b" stroke="black" points="9340.42,-2449.31 9339.26,-2438.78 9333.6,-2447.74 9340.42,-2449.31"/>
</g>
<!-- ahriman_core_database_operations_patch_operations -->
<g id="node66" class="node">
<title>ahriman_core_database_operations_patch_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#994f33" stroke="black" cx="3332" cy="-2401.31" rx="64.19" ry="44.6"/>
<text text-anchor="middle" x="3332" y="-2420.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3332" y="-2409.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="3332" y="-2398.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="3332" y="-2387.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">operations.</text>
<text text-anchor="middle" x="3332" y="-2376.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">patch_operations</text>
</g>
<!-- ahriman_core_database_operations_patch_operations&#45;&gt;ahriman_core_database_operations -->
<g id="edge255" class="edge">
<title>ahriman_core_database_operations_patch_operations&#45;&gt;ahriman_core_database_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3396.05,-2407.4C3541.69,-2420.89 3908.94,-2452.99 4217,-2463.86 4287.3,-2466.34 9216.55,-2489.66 9282,-2463.86 9294.95,-2458.75 9306.88,-2449.83 9316.97,-2440.3"/>
<polygon fill="#994f33" stroke="black" points="9319.36,-2442.85 9323.92,-2433.29 9314.39,-2437.92 9319.36,-2442.85"/>
</g>
<!-- ahriman_core_database_sqlite&#45;&gt;ahriman_core_database -->
<g id="edge256" class="edge">
<title>ahriman_core_database_sqlite&#45;&gt;ahriman_core_database</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9421,-2239.36C9421,-2226.71 9421,-2212.41 9421,-2199.46"/>
<polygon fill="#994f33" stroke="black" points="9424.5,-2199.56 9421,-2189.56 9417.5,-2199.56 9424.5,-2199.56"/>
</g>
<!-- ahriman_core_exceptions -->
<g id="node68" class="node">
<title>ahriman_core_exceptions</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f95010" stroke="black" cx="7469" cy="-4689.53" rx="44.6" ry="28.98"/>
<text text-anchor="middle" x="7469" y="-4698.03" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7469" y="-4687.03" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7469" y="-4676.03" 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="edge257" 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="M9559,-4439.56C9603.79,-4253.56 9635,-3773.33 9635,-3582.02 9635,-3582.02 9635,-3582.02 9635,-3486.03 9635,-3313.8 9580.2,-3258.88 9451,-3144.98 9401,-3100.91 9356.47,-3127.77 9320,-3071.98 9272.78,-2999.74 9298.93,-2770.2 9283,-2685.38 9248.11,-2499.55 9257.39,-2441.06 9163,-2277.22"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_application_handlers_search -->
<g id="edge258" 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="M7424.2,-4688.07C7113.58,-4684.76 5285.57,-4663.75 5042,-4624.54 4010.91,-4458.56 3744.67,-4289.68 2880,-3703.99 2332.95,-3333.44 2123,-3105.67 2088,-2445.86 2082.95,-2350.69 2076.49,-2324.51 2098,-2231.67 2157.07,-1976.76 2208.98,-1923.64 2314,-1683.97 2354.06,-1592.55 2678.63,-971.46 2705,-875.19"/>
<path fill="none" stroke="black" d="M2705,-873.19C2712.6,-822.51 2698.79,-808.75 2705,-757.87"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_application_handlers_users -->
<g id="edge259" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_application_handlers_users</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7513.7,-4688.35C8026.62,-4686.18 12783.55,-4664.99 12921,-4624.54 13111.81,-4568.39 13142.51,-4508.04 13300,-4386.56 13482.86,-4245.5 13480.36,-4148.87 13679,-4031.07 13811.37,-3952.57 13865.15,-3980.34 14008,-3923.07 14127.77,-3875.05 14164.98,-3872.95 14270,-3797.97 14335.83,-3750.97 15237.86,-2820.76 15290,-2758.92 15341.03,-2698.4 15393,-2692.77 15393,-2613.61 15393,-2613.61 15393,-2613.61 15393,-2400.31 15393,-2196.09 15393,-2145.04 15393,-1940.82"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_application_handlers_validate -->
<g id="edge260" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_application_handlers_validate</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7424.05,-4688.14C7134.83,-4685.49 5541.44,-4668.98 5330,-4624.54 5309.12,-4620.15 5170.83,-4562.57 5152,-4552.54 5086.18,-4517.48 5060.55,-4516 5013,-4458.56 4953.73,-4386.95 4932.86,-4537.38 4754,-3610.01 4725.38,-3461.61 4646.11,-3365.89 4763,-3270.08 4838.36,-3208.31 5105.45,-3257.65 5200,-3234.08 5297.19,-3209.85 5311.13,-3173.98 5407,-3144.98 5579.56,-3092.79 5654.87,-3170.26 5806,-3071.98 5930.96,-2990.72 5882.46,-2892.66 5995,-2794.92 6022.31,-2771.2 6036.64,-2776.95 6068,-2758.92 6092.96,-2744.58 6101.7,-2743.57 6122,-2723.15"/>
<path fill="none" stroke="black" d="M6122,-2721.15C6153.86,-2689.11 6171.91,-2688.8 6194,-2649.38 6303.35,-2454.26 6257.16,-2377 6311,-2159.9"/>
<path fill="none" stroke="black" d="M6311,-2157.9C6320.92,-2016.12 6108.93,-1964.77 6003.61,-1948.06"/>
<polygon fill="#f95010" stroke="black" points="6004.14,-1944.6 5993.73,-1946.55 6003.09,-1951.52 6004.14,-1944.6"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_application_lock -->
<g id="edge261" 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="M7513.77,-4688.7C7810.35,-4689.6 9481.84,-4690.93 9546,-4607.54"/>
<path fill="none" stroke="black" d="M9546,-4605.54C9564.67,-4581.27 9512.4,-4581.34 9502,-4552.54 9493.25,-4528.3 9491.71,-4518.18 9502,-4494.56 9515.82,-4462.84 9553.62,-4475.73 9559,-4441.56"/>
<path fill="none" stroke="black" d="M9559,-4439.56C9561.12,-4418.93 9437,-4108.89 9431,-4089.05 9376.29,-3908.27 9331,-3864.88 9331,-3676 9331,-3676 9331,-3676 9331,-3486.03 9331,-3446.95 9271.62,-3173.59 9245,-3144.98 9171.66,-3066.15 9097.17,-3140.36 9014,-3071.98 9000.1,-3060.55 9000.45,-3053.37 8995,-3036.21"/>
<path fill="none" stroke="black" d="M8995,-3034.21C8976.41,-2976.2 9072.84,-2993.19 9089,-2934.45"/>
<path fill="none" stroke="black" d="M9089,-2932.45C9126.74,-2795.3 9107.96,-2755.58 9117,-2613.61"/>
<path fill="none" stroke="black" d="M9117,-2611.61C9116.29,-2567.28 9114.82,-2556.14 9117,-2511.85"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_alpm_remote_aur -->
<g id="edge262" 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="M7424.05,-4688.1C7168.74,-4685.52 5875.34,-4670.62 4820,-4624.54 4566.63,-4613.48 3900.22,-4680.07 3681,-4552.54 3654.37,-4537.05 3669.94,-4509.51 3643,-4494.56 3490.93,-4410.13 2226.84,-4548.56 2078,-4458.56 1949.91,-4381.1 1965.31,-4300.98 1932,-4155.04"/>
<path fill="none" stroke="black" d="M1932,-4153.04C1921.38,-4113.57 1954.76,-4095.02 1932,-4061.06"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_alpm_remote_official -->
<g id="edge263" 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="M7424.1,-4688.01C7016.03,-4683.2 3959.56,-4646.58 3769,-4624.54 3497.52,-4593.14 3439.26,-4527.8 3168,-4494.56 2910.69,-4463.03 2250.99,-4530.7 2002,-4458.56 1941.53,-4441.04 1928.74,-4426.42 1880,-4386.56 1715.45,-4251.98 1737.67,-4147.78 1560,-4031.07 1518.06,-4003.52 1497.99,-4017.27 1453,-3995.07 1401.6,-3969.7 1381.06,-3968.41 1346,-3923.07 1256.14,-3806.86 1277.7,-3751.99 1240,-3610.01 1229.01,-3568.64 1226.62,-3558.14 1219,-3516.03 1207.87,-3454.56 1023.22,-2449.64 1064,-2402.31"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_alpm_remote_official_syncdb -->
<g id="edge264" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_core_alpm_remote_official_syncdb</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7423.97,-4688C7002.93,-4683.04 3766.81,-4644.36 3565,-4624.54 3386.54,-4607.01 3344.3,-4585.34 3168,-4552.54 3032.77,-4527.38 3000.66,-4510.11 2864,-4494.56 2655.64,-4470.85 2120.37,-4523.57 1921,-4458.56 1814.71,-4423.9 1801.11,-4380.45 1732,-4292.57 1707.25,-4261.11 1709.76,-4245.81 1680,-4219.04 1552.8,-4104.58 1501.55,-4097.82 1344,-4031.07 1292.73,-4009.35 1262.16,-4035.62 1224,-3995.07 1193.7,-3962.88 865.09,-2489.77 860,-2445.86 855.44,-2406.53 843.73,-2392.86 860,-2356.76 868.02,-2338.97 882.22,-2323.55 896.99,-2311.15"/>
<polygon fill="#f95010" stroke="black" points="898.89,-2314.11 904.53,-2305.14 894.53,-2308.63 898.89,-2314.11"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_alpm_repo -->
<g id="edge265" 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="M7597,-4605.54C7631.8,-4541.5 7625.64,-4508.57 7597,-4441.56"/>
<path fill="none" stroke="black" d="M7597,-4439.56C7587.3,-4409.6 7563.28,-4415.1 7550,-4386.56 7525.42,-4333.71 7531,-4315.09 7531,-4256.8 7531,-4256.8 7531,-4256.8 7531,-3107.98 7531,-2914.34 7519.39,-2839.21 7637,-2685.38 7676.61,-2633.57 7735.28,-2671.67 7765,-2613.61"/>
<path fill="none" stroke="black" d="M7765,-2611.61C7790.03,-2558.58 7768.65,-2533.58 7741,-2481.86 7730.18,-2461.63 7720.28,-2462.02 7704,-2445.86 7701.04,-2442.92 7697.97,-2439.85 7694.9,-2436.77"/>
<polygon fill="#f95010" stroke="black" points="7697.43,-2434.36 7687.9,-2429.72 7692.46,-2439.29 7697.43,-2434.36"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_auth_oauth -->
<g id="edge266" 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="M7513.82,-4688.4C7997.34,-4686.93 12232.52,-4672.65 12351,-4624.54 12457.62,-4581.24 12434.45,-4506.66 12513,-4422.56 12577.92,-4353.05 12609.54,-4352.98 12683,-4292.57 12739.8,-4245.87 12754.02,-4234.03 12807,-4183.04 12961.49,-4034.35 12990.75,-3987.91 13140,-3833.97 13344.09,-3623.47 13391.53,-3567.15 13603,-3364.06 13794.44,-3180.21 13912.95,-3192.69 14045,-2962.44 14107,-2854.35 14106.17,-2808.66 14088,-2685.38 14065.76,-2534.48 14089.06,-2471.89 13989,-2356.76 13963.95,-2327.95 13931.58,-2352.93 13911,-2320.76 13889.66,-2287.41 13902.52,-2270.35 13911,-2231.67 13941.49,-2092.65 13971.01,-2062.4 14045,-1940.82"/>
<path fill="none" stroke="black" d="M14045,-1938.82C14054.61,-1922.27 14056.44,-1917.5 14069,-1903.05 14081.77,-1888.35 14097.42,-1873.71 14111.48,-1861.53"/>
<polygon fill="#f95010" stroke="black" points="14113.5,-1864.41 14118.84,-1855.26 14108.96,-1859.08 14113.5,-1864.41"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge267" 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="M7464.19,-4660.22C7453.19,-4595.26 7425.38,-4430.5 7403,-4292.57 7355.07,-3997.19 7216.41,-3260.77 7193,-2962.44 7190.98,-2936.75 7187.38,-2929.61 7193,-2904.46 7204.73,-2851.96 7256.05,-2721.41 7296,-2685.38 7332.01,-2652.91 7370.93,-2688.93 7399,-2649.38 7468.37,-2551.66 7294.33,-2522.11 7291,-2402.31"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_configuration_configuration -->
<g id="edge268" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_core_configuration_configuration</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7514.06,-4688.94C7815.57,-4690.75 9522.2,-4686.67 9326,-4358.57"/>
<path fill="none" stroke="black" d="M9326,-4356.57C9316.52,-4340.88 9314.88,-4321.12 9316.21,-4303.33"/>
<polygon fill="#f95010" stroke="black" points="9319.68,-4303.81 9317.3,-4293.49 9312.72,-4303.04 9319.68,-4303.81"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_gitremote_remote_pull -->
<g id="edge269" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_core_gitremote_remote_pull</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7424.12,-4688.38C7130.09,-4687.26 5484.02,-4678.58 5268,-4624.54 4873.58,-4525.87 3914,-3800.63 3914,-3394.05 3914,-3394.05 3914,-3394.05 3914,-3298.07 3914,-3147.31 3952.24,-3088.69 4073,-2998.44 4137.3,-2950.39 4199.21,-3024.61 4250,-2962.44 4266.31,-2942.49 4254.07,-2929.91 4250,-2904.46 4241.9,-2853.86 4230.7,-2843.37 4214,-2794.92 4208.45,-2778.84 4204.54,-2775.56 4201,-2758.92 4190.84,-2711.18 4194.78,-2698.16 4193,-2649.38 4190.72,-2586.95 4175.81,-2553.91 4222,-2511.85"/>
<path fill="none" stroke="black" d="M4222,-2509.85C4258.82,-2456.53 4316.32,-2499.28 4353,-2445.86 4402.22,-2374.17 4393.57,-2267.12 4383.11,-2206.38"/>
<polygon fill="#f95010" stroke="black" points="4386.59,-2205.93 4381.35,-2196.72 4379.7,-2207.19 4386.59,-2205.93"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_gitremote_remote_push -->
<g id="edge270" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_core_gitremote_remote_push</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7424.43,-4688.19C7123.18,-4685.8 5389.74,-4670.12 5160,-4624.54 5008.57,-4594.5 5088.02,-4590.68 3451,-3833.97 3358.92,-3791.41 3337.14,-3777.79 3243,-3739.99 3198.39,-3722.08 3184.74,-3723.93 3141,-3703.99 3041.03,-3658.43 2926,-3691.88 2926,-3582.02 2926,-3582.02 2926,-3582.02 2926,-3107.98 2926,-2925.38 3136.15,-2491.87 3259,-2356.76 3305.74,-2305.37 3793.73,-2119.07 3804,-2050.36"/>
<path fill="none" stroke="black" d="M3804,-2048.36C3805.88,-2026.29 3813.96,-2003.23 3822.55,-1984.15"/>
<polygon fill="#f95010" stroke="black" points="3825.59,-1985.9 3826.68,-1975.36 3819.26,-1982.91 3825.59,-1985.9"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_report_report -->
<g id="edge271" 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="M7513.71,-4688.5C7773.19,-4688.08 9111.97,-4683.05 10203,-4624.54 10468.22,-4610.32 11394,-4790.15 11394,-4524.55 11394,-4524.55 11394,-4524.55 11394,-4254.8 11394,-4087.98 11387,-4046.34 11387,-3879.52 11387,-3879.52 11387,-3879.52 11387,-3486.03 11387,-3301.2 11258.39,-3293.97 11149,-3144.98 11020.72,-2970.26 10920.97,-2964.07 10851,-2758.92 10840.45,-2727.99 10844.97,-2717.51 10851,-2685.38 10854.17,-2668.51 10861.83,-2666.26 10865,-2649.38 10878.74,-2576.14 10874.48,-2554.53 10858,-2481.86 10855.9,-2472.61 10831.91,-2410.43 10827,-2402.31"/>
<path fill="none" stroke="black" d="M10827,-2400.31C10792.73,-2333.12 10858.9,-2287.34 10808,-2231.67 10768.13,-2188.06 10594.07,-2169.65 10506.99,-2163.05"/>
<polygon fill="#f95010" stroke="black" points="10507.29,-2159.57 10497.06,-2162.33 10506.78,-2166.55 10507.29,-2159.57"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge272" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_core_repository_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7509.14,-4676.19C7540.03,-4664.23 7580.19,-4642.64 7597,-4607.54"/>
<path fill="none" stroke="black" d="M7597,-4605.54C7634.1,-4528.1 7566.14,-4502.58 7535,-4422.56 7487.88,-4301.45 7417,-4284.99 7417,-4155.04 7417,-4155.04 7417,-4155.04 7417,-3298.07 7417,-3262.7 7668.07,-2085.61 7671,-2050.36"/>
<path fill="none" stroke="black" d="M7671,-2048.36C7671.03,-2028.57 7671.04,-2006.73 7671.03,-1987.93"/>
<polygon fill="#f95010" stroke="black" points="7674.53,-1988.18 7671.03,-1978.18 7667.53,-1988.18 7674.53,-1988.18"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_sign_gpg -->
<g id="edge273" 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="M7513.81,-4688.92C7692.36,-4689.99 8370.26,-4689.29 8923,-4624.54 9157.61,-4597.05 9445,-4760.77 9445,-4524.55 9445,-4524.55 9445,-4524.55 9445,-4439.56 9445,-4338.33 9425.91,-4312.9 9388,-4219.04 9382.27,-4204.86 9128.55,-3750.01 9117,-3739.99 9030.47,-3664.92 8986.41,-3679.94 8877,-3646.01 8809.45,-3625.06 8776.97,-3654.51 8722,-3610.01 8686.15,-3580.99 8692.93,-3559.66 8678,-3516.03 8612.51,-3324.63 8600.36,-3273.04 8578,-3071.98 8554.41,-2859.86 8656.23,-2551.01 8677,-2511.85"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_status_watcher -->
<g id="edge274" 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="M7513.9,-4688.38C7980.95,-4686.7 11936.77,-4671.1 12047,-4624.54 12104.9,-4600.08 12147,-4587.4 12147,-4524.55 12147,-4524.55 12147,-4524.55 12147,-3767.98 12147,-3597.25 12258.39,-3583.46 12314,-3422.04 12365.86,-3271.52 12373.01,-3230.28 12390,-3071.98 12413.87,-2849.54 12369.26,-2790.13 12305,-2575.84 12292.06,-2532.69 12289.49,-2520.9 12267,-2481.86 12256.88,-2464.3 12248.49,-2463.77 12239,-2445.86 12168.17,-2312.21 12201.58,-2257.45 12134,-2122.13 12107.41,-2068.89 12108.3,-2042.75 12057,-2012.59 11925.24,-1935.13 11862.94,-2014.98 11715,-1976.59 11699.98,-1972.69 11466.56,-1880 11458,-1867.05 11422.23,-1812.92 11469.56,-1786.58 11472,-1721.74"/>
<path fill="none" stroke="black" d="M11472,-1719.74C11470.6,-1702.57 11446.09,-1424.17 11434,-1411.9"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_triggers_trigger_loader -->
<g id="edge275" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_core_triggers_trigger_loader</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7424.27,-4687.98C7129.72,-4684.24 5477.12,-4661.64 5378,-4624.54 5354.34,-4615.68 5356.5,-4600.03 5334,-4588.54 5278.32,-4560.1 5250.32,-4586.78 5198,-4552.54 5170.47,-4534.53 5175.08,-4518 5152,-4494.56 5085.09,-4426.59 4986,-4453.94 4986,-4358.57 4986,-4358.57 4986,-4358.57 4986,-3976.07 4986,-3862.12 4935.34,-3842.7 4886,-3739.99 4830.9,-3625.29 4750,-3615.29 4750,-3488.03 4750,-3488.03 4750,-3488.03 4750,-3392.05 4750,-3321.95 4787.64,-3302.09 4850,-3270.08 4960.34,-3213.43 5285.34,-3258.24 5407,-3234.08 5516.81,-3212.27 5786.3,-3126.65 5884,-3071.98 5950.53,-3034.76 5975.02,-3026.73 6016,-2962.44 6057.38,-2897.53 6002.46,-2846.06 6060,-2794.92 6103.11,-2756.61 6261.56,-2774.81 6317,-2758.92 6345.76,-2750.68 6544.6,-2672.98 6563,-2649.38 6601.16,-2600.45 6591.8,-2573.71 6587,-2511.85"/>
<path fill="none" stroke="black" d="M6587,-2509.85C6585.91,-2489.79 6587.99,-2467.75 6590.79,-2448.87"/>
<polygon fill="#f95010" stroke="black" points="6594.23,-2449.49 6592.36,-2439.06 6587.32,-2448.38 6594.23,-2449.49"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_upload_upload -->
<g id="edge276" 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="M7513.87,-4688.52C7936.87,-4688.28 11212.29,-4684.55 11408,-4624.54 11485.66,-4600.72 11561,-4605.78 11561,-4524.55 11561,-4524.55 11561,-4524.55 11561,-3486.03 11561,-3346.05 11426.15,-3363.17 11372,-3234.08 11350.25,-3182.22 11353,-3165.22 11353,-3108.98 11353,-3108.98 11353,-3108.98 11353,-3034.21 11353,-2838.4 10964.4,-2903.36 11041,-2723.15"/>
</g>
<!-- ahriman_core_util -->
<g id="node125" class="node">
<title>ahriman_core_util</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c73a05" stroke="black" cx="7597" cy="-4357.57" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="7597" y="-4366.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7597" y="-4355.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7597" y="-4344.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">util</text>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_util -->
<g id="edge277" 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="M7597,-4439.56C7591.47,-4426.63 7590.26,-4411.44 7590.84,-4397.73"/>
<polygon fill="#f95010" stroke="black" points="7594.3,-4398.4 7591.58,-4388.16 7587.32,-4397.86 7594.3,-4398.4"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_models_migration_result -->
<g id="edge278" 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="M9546,-4605.54C9555.31,-4593.44 9561.34,-4577.91 9565.22,-4563.69"/>
<polygon fill="#f95010" stroke="black" points="9568.58,-4564.67 9567.54,-4554.12 9561.78,-4563.02 9568.58,-4564.67"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_models_package -->
<g id="edge279" 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="M7424.48,-4686.99C7123.89,-4676.42 5400.36,-4613.32 5309,-4552.54 5262.83,-4521.83 5252,-4497.01 5252,-4441.56 5252,-4441.56 5252,-4441.56 5252,-4356.57 5252,-4294.52 5239.38,-4269.13 5276,-4219.04 5349.67,-4118.25 5459.02,-4195.03 5525,-4089.05 5607.01,-3957.33 5603.51,-3877.7 5532,-3739.99 5509.21,-3696.11 5435.2,-3725.1 5441,-3676"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_models_repository_paths -->
<g id="edge280" 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="M7424.91,-4685.07C7160.79,-4664.33 5788.49,-4556.55 5454.39,-4530.31"/>
<polygon fill="#f95010" stroke="black" points="5454.7,-4526.83 5444.45,-4529.53 5454.15,-4533.8 5454.7,-4526.83"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_models_result -->
<g id="edge281" 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="M7424.26,-4688.36C7171.38,-4687.2 5918.69,-4678.76 5537,-4624.54 5520.94,-4622.26 5266.86,-4562.43 5254,-4552.54 5179.48,-4495.22 5071.65,-4274.02 5048,-4183.04 5041.52,-4158.09 5045.78,-4150.73 5048,-4125.05 5061.83,-3965.45 5110,-3930.18 5110,-3769.98 5110,-3769.98 5110,-3769.98 5110,-3674 5110,-3503.56 5608.08,-3343.28 5762,-3270.08 5806.17,-3249.07 5822.23,-3255.91 5866,-3234.08 5981.51,-3176.46 6003.87,-3149.62 6107,-3071.98 6239.14,-2972.51 6274.11,-2948.7 6392,-2832.69"/>
<path fill="none" stroke="black" d="M6392,-2830.69C6406.78,-2817.74 6401.92,-2806.22 6418,-2794.92 6464.96,-2761.93 6489.83,-2782.82 6542,-2758.92 6548.1,-2756.13 6554.31,-2752.72 6560.25,-2749.14"/>
<polygon fill="#f95010" stroke="black" points="6562.08,-2752.12 6568.65,-2743.82 6558.33,-2746.21 6562.08,-2752.12"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_web_views_status_logs -->
<g id="edge282" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_web_views_status_logs</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7513.95,-4688.27C7981.52,-4685.54 11941.89,-4661.35 12056,-4624.54 12279.61,-4552.41 12299,-4390 12299,-4155.04 12299,-4155.04 12299,-4155.04 12299,-4059.06 12299,-3830.84 12489,-3810.23 12489,-3582.02 12489,-3582.02 12489,-3582.02 12489,-3298.07 12489,-2891.82 12671,-2808.56 12671,-2402.31 12671,-2402.31 12671,-2402.31 12671,-1938.82 12671,-1817.31 12667.94,-1758.55 12572,-1683.97 12511.02,-1636.58 12465.07,-1692.55 12402,-1647.97 12340.09,-1604.21 12261.2,-1422.96 12224,-1356.9 12205.95,-1324.84 12215.71,-1305.05 12186,-1283.36 12108.46,-1226.74 12049.14,-1305.84 11973,-1247.36 11930.56,-1214.76 11943.87,-1187.1 11923,-1137.82 11916.34,-1122.1 11921.65,-1113.51 11909,-1102.05"/>
<path fill="none" stroke="black" d="M11909,-1100.05C11895.37,-1088.29 11901.3,-1078.29 11890,-1064.28 11858.95,-1025.8 11790.93,-1039.91 11805,-992.51"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_web_views_status_package -->
<g id="edge283" 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="M7513.87,-4688.33C7982.63,-4686.2 11967.33,-4666.8 12009,-4624.54 12020.23,-4613.15 12009.12,-4604.54 12009,-4588.54 12007.67,-4408.3 12004.33,-4363.27 12003,-4183.04 12002.81,-4157.27 12000.29,-4150.68 12003,-4125.05 12056.64,-3617.27 12257.5,-3508.19 12228,-2998.44 12218.06,-2826.62 12196.6,-2385.29 12119,-2231.67 12062.31,-2119.44 12050.5,-2072.58 11940,-2012.59 11810.73,-1942.41 11754.63,-2008.33 11611,-1976.59 11462.57,-1943.79 11404.22,-1963.82 11287,-1867.05 11214.83,-1807.48 11230.8,-1764.43 11183,-1683.97 11153.73,-1634.71 11155.06,-1615.41 11115,-1574.43 10984.31,-1440.74 10317.43,-1200.02 10446,-1064.28 10496.73,-1010.72 11038.41,-1049.71 11109,-1028.28 11170.31,-1009.66 11171.57,-972.94 11233,-954.74 11420.87,-899.07 11924.5,-968.57 12114,-918.74 12128.17,-915.01 12142.69,-908.67 12155.62,-901.96"/>
<polygon fill="#f95010" stroke="black" points="12157.16,-905.11 12164.29,-897.26 12153.83,-898.95 12157.16,-905.11"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_web_web -->
<g id="edge284" 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="M7513.8,-4688.43C7992.86,-4687.31 12157.44,-4676.13 12411,-4624.54 12877.22,-4529.69 13976.09,-4039.5 14386,-3797.97 14548.55,-3702.2 14576.53,-3658.91 14732,-3552.03 15122.07,-3283.85 15319.81,-3329.27 15619,-2962.44 15648.96,-2925.71 15713.37,-2735.88 15733,-2649.38 15810.99,-2305.78 15942.17,-1372.25 15771,-1064.28 15598.43,-753.79 15459.27,-689.82 15113,-610.57 14845.88,-549.42 10440.06,-546.69 9921.68,-546.58"/>
<polygon fill="#f95010" stroke="black" points="9922.02,-543.08 9912.02,-546.58 9922.02,-550.08 9922.02,-543.08"/>
</g>
<!-- ahriman_core_formatters -->
<g id="node69" class="node">
<title>ahriman_core_formatters</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#952b03" stroke="black" cx="5416" cy="-2510.85" rx="43.68" ry="28.98"/>
<text text-anchor="middle" x="5416" y="-2519.35" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5416" y="-2508.35" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5416" y="-2497.35" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters</text>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_application_application_repository -->
<g id="edge285" class="edge">
<title>ahriman_core_formatters&#45;&gt;ahriman_application_application_application_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4222,-2400.31C4116.79,-2374.46 4133.66,-2295.33 4046,-2231.67 3952.35,-2163.66 2275.12,-1343.03 2210,-1247.36 2190.55,-1218.78 2186.98,-1179.51 2187.9,-1149"/>
<polygon fill="#952b03" stroke="black" points="2191.38,-1149.45 2188.37,-1139.29 2184.39,-1149.11 2191.38,-1149.45"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_dump -->
<g id="edge286" 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="M5416,-2400.31C5315.8,-2136.42 5857.17,-2318.29 5946,-2050.36"/>
<path fill="none" stroke="black" d="M5946,-2048.36C5952.99,-1998.03 5881.06,-2021.35 5857,-1976.59 5718.45,-1718.85 5795,-1613.74 5795,-1321.13 5795,-1321.13 5795,-1321.13 5795,-1209.59 5795,-924.29 5941.44,-602.76 5998.56,-488.19"/>
<polygon fill="#952b03" stroke="black" points="6001.6,-489.93 6002.96,-479.42 5995.35,-486.79 6001.6,-489.93"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge287" 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="M4608,-1719.74C4608,-1669.05 4641.65,-1662.71 4646,-1612.2"/>
<path fill="none" stroke="black" d="M4646,-1610.2C4650.1,-1562.59 4611.73,-1535.98 4646,-1502.67"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_rebuild -->
<g id="edge288" 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="M4608,-1829.28C4600.06,-1782.15 4608,-1769.54 4608,-1721.74"/>
<path fill="none" stroke="black" d="M4608,-1719.74C4608,-1695.62 4593.58,-1640.24 4546,-1574.43 4482.65,-1486.82 4365,-1520.02 4365,-1411.9 4365,-1411.9 4365,-1411.9 4365,-1319.13 4365,-980.45 4190.82,-883.19 3894,-720.1 3781.75,-658.43 3388.88,-649.54 3239.37,-648.42"/>
<polygon fill="#952b03" stroke="black" points="3239.72,-644.92 3229.7,-648.36 3239.68,-651.92 3239.72,-644.92"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_remove_unknown -->
<g id="edge289" 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="M4608,-1938.82C4558.16,-1794.62 4483.72,-1793.99 4378,-1683.97 4056.74,-1349.66 3980.71,-1260.31 3632,-954.74 3525.37,-861.3 3484.69,-854.57 3381,-757.87"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_search -->
<g id="edge290" 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="M5421.2,-2481.96C5424.15,-2459.68 5425.57,-2428.04 5416,-2402.31"/>
<path fill="none" stroke="black" d="M5416,-2400.31C5381.89,-2308.61 4692.98,-2098.84 4608,-2050.36"/>
<path fill="none" stroke="black" d="M4608,-2048.36C4508.63,-1980.54 4485.2,-1958.48 4407,-1867.05 4381.63,-1837.39 4381.39,-1825.48 4359,-1793.51 4347.53,-1777.13 4342.25,-1774.68 4332,-1757.51 4313.54,-1726.6 4325.43,-1707.31 4298,-1683.97 4252.66,-1645.4 4224.44,-1669.64 4169,-1647.97 3904.42,-1544.59 3813.13,-1544.69 3600,-1356.9 3479.9,-1251.07 3508.03,-1172.42 3390,-1064.28 3181.81,-873.54 3109.52,-844.42 2856,-720.1 2812.84,-698.94 2797.12,-705.36 2754,-684.1 2750.47,-682.36 2746.89,-680.44 2743.34,-678.42"/>
<polygon fill="#952b03" stroke="black" points="2745.15,-675.43 2734.78,-673.3 2741.56,-681.43 2745.15,-675.43"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_service_updates -->
<g id="edge291" class="edge">
<title>ahriman_core_formatters&#45;&gt;ahriman_application_handlers_service_updates</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5372.35,-2508.1C5162.3,-2499.59 4264.7,-2462.32 4241,-2445.86 4223.65,-2433.82 4242.59,-2407.01 4222,-2402.31"/>
<path fill="none" stroke="black" d="M4222,-2400.31C3514.85,-2239.07 3383.87,-2054.15 2722,-1757.51 2407.64,-1616.62 2305.65,-1621.46 2020,-1428.9 1847.99,-1312.94 1418.91,-983.8 1336,-793.64 1322.56,-762.82 1323.39,-724.69 1327.27,-695.23"/>
<polygon fill="#952b03" stroke="black" points="1330.71,-695.9 1328.73,-685.49 1323.78,-694.86 1330.71,-695.9"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_shell -->
<g id="edge292" class="edge">
<title>ahriman_core_formatters&#45;&gt;ahriman_application_handlers_shell</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4608,-1938.82C4592.39,-1893.65 4615.94,-1878.41 4608,-1831.28"/>
<path fill="none" stroke="black" d="M4608,-1829.28C4604.82,-1810.4 4595.38,-1808.91 4584,-1793.51 4497.24,-1676.09 4456.53,-1660.87 4377,-1538.43 4337.47,-1477.58 4344.61,-1452.34 4303,-1392.9 4150.24,-1174.65 4106.83,-1114.96 3894,-954.74 3710.33,-816.47 3653.06,-786.63 3433,-720.1 3301.08,-680.22 3254.63,-730.91 3125,-684.1 3121.07,-682.69 3117.14,-680.94 3113.29,-678.99"/>
<polygon fill="#952b03" stroke="black" points="3115.09,-675.99 3104.66,-674.17 3111.68,-682.1 3115.09,-675.99"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_status -->
<g id="edge293" 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="M4608,-2048.36C4566.48,-2024.68 4623.23,-1986.13 4608,-1940.82"/>
<path fill="none" stroke="black" d="M4608,-1938.82C4589.99,-1885.24 4547.67,-1901.69 4503,-1867.05 4444.63,-1821.79 4425.87,-1813.77 4378,-1757.51 4353.01,-1728.15 4359.7,-1710.78 4332,-1683.97 4309.1,-1661.82 4295.85,-1666.6 4270,-1647.97 3892.1,-1375.66 3855.11,-1236.23 3484,-954.74 3331.24,-838.87 3301.61,-787.18 3122,-720.1 3014.36,-679.91 2973.77,-723.94 2866,-684.1 2861.86,-682.57 2857.7,-680.7 2853.63,-678.62"/>
<polygon fill="#952b03" stroke="black" points="2855.49,-675.65 2845.06,-673.85 2852.09,-681.77 2855.49,-675.65"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_structure -->
<g id="edge294" class="edge">
<title>ahriman_core_formatters&#45;&gt;ahriman_application_handlers_structure</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8259,-2275.22C8222.03,-1959.87 8525,-1929.71 8525,-1612.2 8525,-1612.2 8525,-1612.2 8525,-990.51 8525,-875.56 8612.42,-869.94 8638,-757.87"/>
<path fill="none" stroke="black" d="M8638,-755.87C8640.69,-736.11 8641.13,-714.12 8640.74,-695.19"/>
<polygon fill="#952b03" stroke="black" points="8644.24,-695.26 8640.44,-685.37 8637.24,-695.47 8644.24,-695.26"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_unsafe_commands -->
<g id="edge295" 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="M5459.85,-2508.42C5596.47,-2504.01 6026.62,-2490.38 6383,-2481.86 6436.02,-2480.59 8247.9,-2475.33 8292,-2445.86 8309.56,-2434.13 8291.35,-2410.04 8311,-2402.31"/>
<path fill="none" stroke="black" d="M8311,-2400.31C8366.27,-2378.57 8274.78,-2334.47 8259,-2277.22"/>
<path fill="none" stroke="black" d="M8259,-2275.22C8240.9,-2209.56 8238.96,-2188.98 8252,-2122.13 8265.36,-2053.62 8291.09,-2043.49 8311,-1976.59 8344,-1865.7 8487.68,-1068.06 8511,-954.74 8522.46,-899.03 8522.62,-884.4 8538,-829.64 8547.14,-797.13 8557.54,-791.21 8563,-757.87"/>
<path fill="none" stroke="black" d="M8563,-755.87C8567.82,-690.92 8567.46,-674.05 8582,-610.57 8599.33,-534.91 8688.3,-503.06 8637,-444.81"/>
<path fill="none" stroke="black" d="M8637,-442.81C8540.04,-350.55 6360.86,-393.96 6229,-371.04 6214.65,-368.55 6199.61,-364.6 6185.41,-360.22"/>
<polygon fill="#952b03" stroke="black" points="6186.78,-356.98 6176.19,-357.26 6184.64,-363.65 6186.78,-356.98"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_users -->
<g id="edge296" class="edge">
<title>ahriman_core_formatters&#45;&gt;ahriman_application_handlers_users</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5459.85,-2508.24C5596.45,-2503.29 6026.58,-2488.26 6383,-2481.86 7529.95,-2461.26 10398.64,-2488.07 11545,-2445.86 12139.25,-2423.98 12285.96,-2383.68 12880,-2356.76 13047.21,-2349.19 14222.68,-2357.43 14386,-2320.76 14792.13,-2229.6 14904.32,-2184.18 15242,-1940.82"/>
<path fill="none" stroke="black" d="M15242,-1938.82C15273.26,-1907.38 15314.6,-1878.64 15346.12,-1858.8"/>
<polygon fill="#952b03" stroke="black" points="15347.63,-1861.98 15354.28,-1853.73 15343.94,-1856.03 15347.63,-1861.98"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_validate -->
<g id="edge297" class="edge">
<title>ahriman_core_formatters&#45;&gt;ahriman_application_handlers_validate</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5946,-2048.36C5952.36,-2029.19 5953.34,-2007.02 5952.36,-1987.81"/>
<polygon fill="#952b03" stroke="black" points="5955.87,-1987.82 5951.66,-1978.1 5948.89,-1988.32 5955.87,-1987.82"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_versions -->
<g id="edge298" class="edge">
<title>ahriman_core_formatters&#45;&gt;ahriman_application_handlers_versions</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8311,-2400.31C8331.56,-2392.22 8317.49,-2370.25 8335,-2356.76 8450.44,-2267.89 8528.26,-2352.48 8653,-2277.22"/>
<path fill="none" stroke="black" d="M8653,-2275.22C8708,-2242.04 8773.2,-2207.39 8816.85,-2184.85"/>
<polygon fill="#952b03" stroke="black" points="8818.28,-2188.05 8825.57,-2180.36 8815.07,-2181.83 8818.28,-2188.05"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_core_report_console -->
<g id="edge299" 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="M5459.85,-2508.42C5596.47,-2503.99 6026.62,-2490.32 6383,-2481.86 6814.51,-2471.62 7896.56,-2498.2 8325,-2445.86 8501.49,-2424.3 8538.84,-2380.88 8715,-2356.76 9048.71,-2311.08 9136.96,-2355.35 9472,-2320.76 9550.89,-2312.62 9641.68,-2296.85 9696.14,-2286.69"/>
<polygon fill="#952b03" stroke="black" points="9696.53,-2290.17 9705.71,-2284.89 9695.23,-2283.3 9696.53,-2290.17"/>
</g>
<!-- ahriman_core_formatters_aur_printer -->
<g id="node70" class="node">
<title>ahriman_core_formatters_aur_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#914b30" stroke="black" cx="4917" cy="-2612.61" rx="45.92" ry="36.54"/>
<text text-anchor="middle" x="4917" y="-2626.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4917" y="-2615.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4917" y="-2604.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="4917" y="-2593.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">aur_printer</text>
</g>
<!-- ahriman_core_formatters_aur_printer&#45;&gt;ahriman_core_formatters -->
<g id="edge300" class="edge">
<title>ahriman_core_formatters_aur_printer&#45;&gt;ahriman_core_formatters</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4950.09,-2586.85C4957.04,-2582.6 4964.54,-2578.65 4972,-2575.84 5105.28,-2525.7 5274.67,-2514.54 5360.6,-2512.26"/>
<polygon fill="#914b30" stroke="black" points="5360.48,-2515.76 5370.4,-2512.03 5360.32,-2508.76 5360.48,-2515.76"/>
</g>
<!-- ahriman_core_formatters_build_printer -->
<g id="node71" class="node">
<title>ahriman_core_formatters_build_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a15335" stroke="black" cx="4333" cy="-2612.61" rx="48.58" ry="36.54"/>
<text text-anchor="middle" x="4333" y="-2626.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4333" y="-2615.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4333" y="-2604.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="4333" y="-2593.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">build_printer</text>
</g>
<!-- ahriman_core_formatters_build_printer&#45;&gt;ahriman_core_formatters -->
<g id="edge301" class="edge">
<title>ahriman_core_formatters_build_printer&#45;&gt;ahriman_core_formatters</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4368.72,-2587.66C4377.32,-2582.95 4386.72,-2578.61 4396,-2575.84 4488.58,-2548.26 5161.86,-2521.3 5360.79,-2513.86"/>
<polygon fill="#a15335" stroke="black" points="5360.73,-2517.36 5370.59,-2513.5 5360.47,-2510.37 5360.73,-2517.36"/>
</g>
<!-- ahriman_core_formatters_configuration_printer -->
<g id="node72" class="node">
<title>ahriman_core_formatters_configuration_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a15335" stroke="black" cx="5690" cy="-2612.61" rx="73.58" ry="36.54"/>
<text text-anchor="middle" x="5690" y="-2626.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5690" y="-2615.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5690" y="-2604.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="5690" y="-2593.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">configuration_printer</text>
</g>
<!-- ahriman_core_formatters_configuration_printer&#45;&gt;ahriman_core_formatters -->
<g id="edge302" class="edge">
<title>ahriman_core_formatters_configuration_printer&#45;&gt;ahriman_core_formatters</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5636.03,-2587.25C5626.74,-2583.3 5617.13,-2579.35 5608,-2575.84 5560.43,-2557.58 5505.14,-2539.47 5466.14,-2527.21"/>
<polygon fill="#a15335" stroke="black" points="5467.38,-2523.93 5456.79,-2524.28 5465.29,-2530.61 5467.38,-2523.93"/>
</g>
<!-- ahriman_core_formatters_package_printer -->
<g id="node73" class="node">
<title>ahriman_core_formatters_package_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#914b30" stroke="black" cx="5168" cy="-2612.61" rx="60.62" ry="36.54"/>
<text text-anchor="middle" x="5168" y="-2626.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5168" y="-2615.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5168" y="-2604.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="5168" y="-2593.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">package_printer</text>
</g>
<!-- ahriman_core_formatters_package_printer&#45;&gt;ahriman_core_formatters -->
<g id="edge303" class="edge">
<title>ahriman_core_formatters_package_printer&#45;&gt;ahriman_core_formatters</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5212.78,-2587.67C5221.08,-2583.53 5229.73,-2579.42 5238,-2575.84 5280.46,-2557.45 5330.12,-2539.92 5366.17,-2527.87"/>
<polygon fill="#914b30" stroke="black" points="5367.08,-2531.26 5375.47,-2524.79 5364.88,-2524.61 5367.08,-2531.26"/>
</g>
<!-- ahriman_core_formatters_patch_printer -->
<g id="node74" class="node">
<title>ahriman_core_formatters_patch_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#994f33" stroke="black" cx="4801" cy="-2612.61" rx="51.74" ry="36.54"/>
<text text-anchor="middle" x="4801" y="-2626.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4801" y="-2615.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4801" y="-2604.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="4801" y="-2593.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">patch_printer</text>
</g>
<!-- ahriman_core_formatters_patch_printer&#45;&gt;ahriman_core_formatters -->
<g id="edge304" class="edge">
<title>ahriman_core_formatters_patch_printer&#45;&gt;ahriman_core_formatters</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4837.9,-2586.72C4845.6,-2582.48 4853.85,-2578.57 4862,-2575.84 4953.84,-2545.13 5240.44,-2523.34 5361.34,-2515.29"/>
<polygon fill="#994f33" stroke="black" points="5361.25,-2518.8 5371,-2514.65 5360.79,-2511.81 5361.25,-2518.8"/>
</g>
<!-- ahriman_core_formatters_printer -->
<g id="node75" class="node">
<title>ahriman_core_formatters_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b05a3a" stroke="black" cx="5971" cy="-2612.61" rx="45.92" ry="36.54"/>
<text text-anchor="middle" x="5971" y="-2626.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5971" y="-2615.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5971" y="-2604.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="5971" y="-2593.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">printer</text>
</g>
<!-- ahriman_core_formatters_printer&#45;&gt;ahriman_core_formatters -->
<g id="edge305" class="edge">
<title>ahriman_core_formatters_printer&#45;&gt;ahriman_core_formatters</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5937.96,-2586.7C5931.01,-2582.46 5923.5,-2578.56 5916,-2575.84 5788.07,-2529.54 5746.91,-2557.46 5612,-2539.84 5563.76,-2533.54 5508.95,-2525.65 5469.59,-2519.86"/>
<polygon fill="#b05a3a" stroke="black" points="5470.3,-2516.43 5459.9,-2518.43 5469.28,-2523.35 5470.3,-2516.43"/>
</g>
<!-- ahriman_core_formatters_status_printer -->
<g id="node76" class="node">
<title>ahriman_core_formatters_status_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a15335" stroke="black" cx="5035" cy="-2612.61" rx="53.98" ry="36.54"/>
<text text-anchor="middle" x="5035" y="-2626.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5035" y="-2615.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5035" y="-2604.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="5035" y="-2593.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status_printer</text>
</g>
<!-- ahriman_core_formatters_status_printer&#45;&gt;ahriman_core_formatters -->
<g id="edge306" class="edge">
<title>ahriman_core_formatters_status_printer&#45;&gt;ahriman_core_formatters</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5074.06,-2586.92C5081.79,-2582.76 5089.99,-2578.84 5098,-2575.84 5187.08,-2542.57 5297,-2525.35 5361.51,-2517.48"/>
<polygon fill="#a15335" stroke="black" points="5361.61,-2520.99 5371.13,-2516.34 5360.78,-2514.04 5361.61,-2520.99"/>
</g>
<!-- ahriman_core_formatters_string_printer -->
<g id="node77" class="node">
<title>ahriman_core_formatters_string_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b05a3a" stroke="black" cx="4680" cy="-2612.61" rx="51.74" ry="36.54"/>
<text text-anchor="middle" x="4680" y="-2626.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4680" y="-2615.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4680" y="-2604.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="4680" y="-2593.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">string_printer</text>
</g>
<!-- ahriman_core_formatters_string_printer&#45;&gt;ahriman_core_formatters -->
<g id="edge307" class="edge">
<title>ahriman_core_formatters_string_printer&#45;&gt;ahriman_core_formatters</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4716.54,-2586.4C4724.02,-2582.24 4732.05,-2578.44 4740,-2575.84 4855.12,-2538.21 5220.93,-2519.76 5360.85,-2513.95"/>
<polygon fill="#b05a3a" stroke="black" points="5360.74,-2517.46 5370.59,-2513.55 5360.45,-2510.46 5360.74,-2517.46"/>
</g>
<!-- ahriman_core_formatters_tree_printer -->
<g id="node78" class="node">
<title>ahriman_core_formatters_tree_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#994f33" stroke="black" cx="5421" cy="-2612.61" rx="45.92" ry="36.54"/>
<text text-anchor="middle" x="5421" y="-2626.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5421" y="-2615.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5421" y="-2604.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="5421" y="-2593.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">tree_printer</text>
</g>
<!-- ahriman_core_formatters_tree_printer&#45;&gt;ahriman_core_formatters -->
<g id="edge308" class="edge">
<title>ahriman_core_formatters_tree_printer&#45;&gt;ahriman_core_formatters</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5419.21,-2575.88C5418.81,-2567.99 5418.39,-2559.59 5417.99,-2551.55"/>
<polygon fill="#994f33" stroke="black" points="5421.49,-2551.47 5417.49,-2541.66 5414.5,-2551.82 5421.49,-2551.47"/>
</g>
<!-- ahriman_core_formatters_update_printer -->
<g id="node79" class="node">
<title>ahriman_core_formatters_update_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#994f33" stroke="black" cx="5302" cy="-2612.61" rx="55.31" ry="36.54"/>
<text text-anchor="middle" x="5302" y="-2626.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5302" y="-2615.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5302" y="-2604.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="5302" y="-2593.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">update_printer</text>
</g>
<!-- ahriman_core_formatters_update_printer&#45;&gt;ahriman_core_formatters -->
<g id="edge309" class="edge">
<title>ahriman_core_formatters_update_printer&#45;&gt;ahriman_core_formatters</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5334.97,-2582.76C5349.6,-2569.96 5366.8,-2554.91 5381.59,-2541.97"/>
<polygon fill="#994f33" stroke="black" points="5383.61,-2544.84 5388.83,-2535.62 5379,-2539.58 5383.61,-2544.84"/>
</g>
<!-- ahriman_core_formatters_user_printer -->
<g id="node80" class="node">
<title>ahriman_core_formatters_user_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#994f33" stroke="black" cx="6083" cy="-2612.61" rx="48.17" ry="36.54"/>
<text text-anchor="middle" x="6083" y="-2626.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6083" y="-2615.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6083" y="-2604.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="6083" y="-2593.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">user_printer</text>
</g>
<!-- ahriman_core_formatters_user_printer&#45;&gt;ahriman_core_formatters -->
<g id="edge310" class="edge">
<title>ahriman_core_formatters_user_printer&#45;&gt;ahriman_core_formatters</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6048.73,-2586.52C6041.53,-2582.3 6033.75,-2578.44 6026,-2575.84 5850.89,-2517.12 5795.49,-2560.91 5612,-2539.84 5563.67,-2534.29 5508.87,-2526.33 5469.53,-2520.31"/>
<polygon fill="#994f33" stroke="black" points="5470.26,-2516.88 5459.85,-2518.82 5469.2,-2523.8 5470.26,-2516.88"/>
</g>
<!-- ahriman_core_formatters_validation_printer -->
<g id="node81" class="node">
<title>ahriman_core_formatters_validation_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a15335" stroke="black" cx="5844" cy="-2612.61" rx="62.87" ry="36.54"/>
<text text-anchor="middle" x="5844" y="-2626.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5844" y="-2615.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5844" y="-2604.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="5844" y="-2593.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">validation_printer</text>
</g>
<!-- ahriman_core_formatters_validation_printer&#45;&gt;ahriman_core_formatters -->
<g id="edge311" class="edge">
<title>ahriman_core_formatters_validation_printer&#45;&gt;ahriman_core_formatters</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5799.39,-2586.7C5790.82,-2582.61 5781.77,-2578.77 5773,-2575.84 5717.68,-2557.39 5555.5,-2532.14 5470.07,-2519.59"/>
<polygon fill="#a15335" stroke="black" points="5470.7,-2516.14 5460.29,-2518.16 5469.68,-2523.07 5470.7,-2516.14"/>
</g>
<!-- ahriman_core_formatters_version_printer -->
<g id="node82" class="node">
<title>ahriman_core_formatters_version_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a15335" stroke="black" cx="5542" cy="-2612.61" rx="56.64" ry="36.54"/>
<text text-anchor="middle" x="5542" y="-2626.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5542" y="-2615.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5542" y="-2604.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="5542" y="-2593.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">version_printer</text>
</g>
<!-- ahriman_core_formatters_version_printer&#45;&gt;ahriman_core_formatters -->
<g id="edge312" class="edge">
<title>ahriman_core_formatters_version_printer&#45;&gt;ahriman_core_formatters</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5506.57,-2583.56C5489.58,-2570.11 5469.27,-2554.03 5452.19,-2540.5"/>
<polygon fill="#a15335" stroke="black" points="5454.79,-2538.1 5444.77,-2534.63 5450.44,-2543.58 5454.79,-2538.1"/>
</g>
<!-- ahriman_core_gitremote -->
<g id="node83" class="node">
<title>ahriman_core_gitremote</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b64920" stroke="black" cx="4249" cy="-1720.74" rx="40.11" ry="28.98"/>
<text text-anchor="middle" x="4249" y="-1729.24" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4249" y="-1718.24" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4249" y="-1707.24" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">gitremote</text>
</g>
<!-- ahriman_core_gitremote_remote_pull&#45;&gt;ahriman_core_gitremote_remote_pull_trigger -->
<g id="edge313" class="edge">
<title>ahriman_core_gitremote_remote_pull&#45;&gt;ahriman_core_gitremote_remote_pull_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4400.05,-2128.51C4410.66,-2116.99 4423.01,-2103.58 4434.45,-2091.15"/>
<polygon fill="#733b26" stroke="black" points="4436.97,-2093.58 4441.17,-2083.85 4431.82,-2088.84 4436.97,-2093.58"/>
</g>
<!-- ahriman_core_gitremote_remote_pull_trigger&#45;&gt;ahriman_core_gitremote -->
<g id="edge314" class="edge">
<title>ahriman_core_gitremote_remote_pull_trigger&#45;&gt;ahriman_core_gitremote</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4432.28,-2019.2C4418.29,-2007.29 4403.46,-1992.56 4393,-1976.59 4345.93,-1904.73 4378.74,-1864.94 4331,-1793.51 4319.31,-1776.03 4302.31,-1760.19 4286.81,-1747.87"/>
<polygon fill="#994f33" stroke="black" points="4289.18,-1745.28 4279.12,-1741.96 4284.92,-1750.83 4289.18,-1745.28"/>
</g>
<!-- ahriman_core_gitremote_remote_push&#45;&gt;ahriman_core_gitremote_remote_push_trigger -->
<g id="edge315" class="edge">
<title>ahriman_core_gitremote_remote_push&#45;&gt;ahriman_core_gitremote_remote_push_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3894.09,-1925.96C3963.03,-1907.51 4090.62,-1873.38 4172.29,-1851.53"/>
<polygon fill="#733b26" stroke="black" points="4173.04,-1854.96 4181.79,-1848.99 4171.23,-1848.2 4173.04,-1854.96"/>
</g>
<!-- ahriman_core_gitremote_remote_push_trigger&#45;&gt;ahriman_core_gitremote -->
<g id="edge316" class="edge">
<title>ahriman_core_gitremote_remote_push_trigger&#45;&gt;ahriman_core_gitremote</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4248.33,-1793.47C4248.43,-1783.17 4248.53,-1771.88 4248.63,-1761.37"/>
<polygon fill="#733b26" stroke="black" points="4252.13,-1761.46 4248.72,-1751.43 4245.13,-1761.4 4252.13,-1761.46"/>
</g>
<!-- ahriman_core_log -->
<g id="node88" class="node">
<title>ahriman_core_log</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#d13d05" stroke="black" cx="8083" cy="-2612.61" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="8083" y="-2621.11" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8083" y="-2610.11" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="8083" y="-2599.11" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">log</text>
</g>
<!-- ahriman_core_log&#45;&gt;ahriman_application_application_application_properties -->
<g id="edge317" class="edge">
<title>ahriman_core_log&#45;&gt;ahriman_application_application_application_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8044.17,-2611.48C7922.92,-2609.49 7543.47,-2591.3 7277,-2445.86 7202.94,-2405.44 6821.71,-1940.3 6746,-1903.05 5881.78,-1477.9 5542.58,-1814.81 4594,-1647.97 4035.61,-1549.77 3903.61,-1487.93 3352,-1356.9 3149.63,-1308.82 3094.48,-1312.67 2897,-1247.36 2891.26,-1245.46 2885.37,-1243.33 2879.5,-1241.09"/>
<polygon fill="#d13d05" stroke="black" points="2880.98,-1237.91 2870.39,-1237.5 2878.41,-1244.42 2880.98,-1237.91"/>
</g>
<!-- ahriman_core_log&#45;&gt;ahriman_application_handlers_handler -->
<g id="edge318" class="edge">
<title>ahriman_core_log&#45;&gt;ahriman_application_handlers_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8102.72,-2587.24C8121.51,-2565.25 8151.54,-2533.18 8183,-2511.85"/>
<path fill="none" stroke="black" d="M8183,-2509.85C8240.3,-2471.01 8263.07,-2476.78 8325,-2445.86 8398.52,-2409.15 8409.81,-2384.95 8487,-2356.76 8563.64,-2328.78 8589.73,-2346.95 8667,-2320.76 8786.56,-2280.25 8812.22,-2257.99 8922,-2195.67 8925.37,-2193.76 8928.82,-2191.72 8932.26,-2189.62"/>
<polygon fill="#d13d05" stroke="black" points="8933.96,-2192.69 8940.6,-2184.43 8930.26,-2186.75 8933.96,-2192.69"/>
</g>
<!-- ahriman_core_log&#45;&gt;ahriman_application_lock -->
<g id="edge319" class="edge">
<title>ahriman_core_log&#45;&gt;ahriman_application_lock</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8117.77,-2599.67C8141.09,-2592 8172.62,-2582.31 8201,-2575.84 8563.33,-2493.24 8683.06,-2586.62 9027,-2445.86 9035.65,-2442.32 9044.24,-2437.34 9052.13,-2432.01"/>
<polygon fill="#d13d05" stroke="black" points="9054.04,-2434.95 9060.14,-2426.28 9049.97,-2429.25 9054.04,-2434.95"/>
</g>
<!-- ahriman_core_log&#45;&gt;ahriman_core_alpm_pacman -->
<g id="edge320" class="edge">
<title>ahriman_core_log&#45;&gt;ahriman_core_alpm_pacman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8044.38,-2610.42C7882.38,-2605.44 7241.74,-2586.15 6715,-2575.84 5482.69,-2551.73 5174.18,-2570.06 3942,-2539.84 3797.17,-2536.29 1471.24,-2497.79 1336,-2445.86 1329.8,-2443.48 1323.81,-2440.04 1318.24,-2436.11"/>
<polygon fill="#d13d05" stroke="black" points="1320.53,-2433.46 1310.49,-2430.09 1316.24,-2438.99 1320.53,-2433.46"/>
</g>
<!-- ahriman_core_log&#45;&gt;ahriman_core_alpm_remote_remote -->
<g id="edge321" class="edge">
<title>ahriman_core_log&#45;&gt;ahriman_core_alpm_remote_remote</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8044.38,-2610.44C7882.38,-2605.54 7241.73,-2586.51 6715,-2575.84 6436.47,-2570.2 4484.94,-2570.1 4208,-2539.84 4002.3,-2517.37 3953.6,-2492.49 3752,-2445.86 3596.87,-2409.98 3562.8,-2378.04 3405,-2356.76 2931.66,-2292.94 1728.53,-2390.33 1256,-2320.76 1219.52,-2315.39 1179.48,-2303.89 1149.37,-2294.05"/>
<polygon fill="#d13d05" stroke="black" points="1150.78,-2290.84 1140.19,-2291 1148.57,-2297.48 1150.78,-2290.84"/>
</g>
<!-- ahriman_core_log&#45;&gt;ahriman_core_alpm_repo -->
<g id="edge322" class="edge">
<title>ahriman_core_log&#45;&gt;ahriman_core_alpm_repo</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8054,-2593.27C8021.18,-2572.73 7965.89,-2538.77 7917,-2511.85"/>
<path fill="none" stroke="black" d="M7917,-2509.85C7833.76,-2464.02 7796.36,-2491.46 7713,-2445.86 7707.31,-2442.75 7701.66,-2438.96 7696.3,-2434.92"/>
<polygon fill="#d13d05" stroke="black" points="7698.77,-2432.42 7688.77,-2428.93 7694.41,-2437.9 7698.77,-2432.42"/>
</g>
<!-- ahriman_core_log&#45;&gt;ahriman_core_auth_auth -->
<g id="edge323" class="edge">
<title>ahriman_core_log&#45;&gt;ahriman_core_auth_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8117,-2598.53C8140.26,-2590.27 8172.02,-2580.35 8201,-2575.84 8765.61,-2488.1 10203.75,-2599.65 10772,-2539.84 10985.59,-2517.36 11036.58,-2493.47 11246,-2445.86 11401.26,-2410.56 11435.16,-2377.74 11593,-2356.76 11669.91,-2346.54 14331.49,-2375.98 14386,-2320.76 14413.82,-2292.59 14404.97,-2266.43 14386,-2231.67 14371.82,-2205.7 14344.18,-2221.64 14330,-2195.67 14309.42,-2157.98 14311.69,-1926.13 14367,-1831.28"/>
</g>
<!-- ahriman_core_log&#45;&gt;ahriman_core_build_tools_sources -->
<g id="edge324" class="edge">
<title>ahriman_core_log&#45;&gt;ahriman_core_build_tools_sources</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8044.49,-2609.85C7872.69,-2601.99 7158.84,-2569.15 6573,-2539.84 6082.27,-2515.29 5959.89,-2502.98 5469,-2481.86 5230.64,-2471.6 4628.62,-2498.85 4396,-2445.86 4378.73,-2441.93 4360.74,-2434.98 4344.92,-2427.77"/>
<polygon fill="#d13d05" stroke="black" points="4346.76,-2424.77 4336.22,-2423.67 4343.78,-2431.1 4346.76,-2424.77"/>
</g>
<!-- ahriman_core_log&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge325" class="edge">
<title>ahriman_core_log&#45;&gt;ahriman_core_build_tools_task</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8031,-2509.85C7997.18,-2474.28 7966.53,-2487.78 7941,-2445.86 7901.62,-2381.2 7917,-2352.92 7917,-2277.22 7917,-2277.22 7917,-2277.22 7917,-2157.9 7917,-2092.77 7944.41,-2058.29 7898,-2012.59 7848.11,-1963.47 7654.53,-1984.83 7585,-1976.59 7503.3,-1966.91 7408.84,-1955.3 7349.75,-1947.99"/>
<polygon fill="#d13d05" stroke="black" points="7350.28,-1944.53 7339.92,-1946.78 7349.42,-1951.48 7350.28,-1944.53"/>
</g>
<!-- ahriman_core_log&#45;&gt;ahriman_core_database_migrations -->
<g id="edge326" class="edge">
<title>ahriman_core_log&#45;&gt;ahriman_core_database_migrations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8117.35,-2599C8140.63,-2591 8172.27,-2581.18 8201,-2575.84 8728.85,-2477.7 8909.52,-2659.68 9402,-2445.86 9407.6,-2443.43 9413.08,-2440.23 9418.27,-2436.66"/>
<polygon fill="#d13d05" stroke="black" points="9420.13,-2439.63 9426.03,-2430.84 9415.93,-2434.03 9420.13,-2439.63"/>
</g>
<!-- ahriman_core_log&#45;&gt;ahriman_core_database_operations_operations -->
<g id="edge327" class="edge">
<title>ahriman_core_log&#45;&gt;ahriman_core_database_operations_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8107,-2509.85C8099.62,-2485.04 8083.72,-2461.32 8068.19,-2442.49"/>
<polygon fill="#d13d05" stroke="black" points="8071.02,-2440.41 8061.86,-2435.09 8065.7,-2444.96 8071.02,-2440.41"/>
</g>
<!-- ahriman_core_log&#45;&gt;ahriman_core_gitremote_remote_pull -->
<g id="edge328" class="edge">
<title>ahriman_core_log&#45;&gt;ahriman_core_gitremote_remote_pull</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7917,-2509.85C7847.73,-2471.72 7809.15,-2499.44 7751,-2445.86 7718.67,-2416.07 7744.95,-2380.59 7708,-2356.76 7638.55,-2311.99 6303.51,-2325.34 6221,-2320.76 5578.25,-2285.16 5419.29,-2251.79 4778,-2195.67 4654.51,-2184.86 4509.86,-2172.05 4431.19,-2165.07"/>
<polygon fill="#d13d05" stroke="black" points="4431.85,-2161.61 4421.58,-2164.22 4431.24,-2168.59 4431.85,-2161.61"/>
</g>
<!-- ahriman_core_log&#45;&gt;ahriman_core_gitremote_remote_push -->
<g id="edge329" class="edge">
<title>ahriman_core_log&#45;&gt;ahriman_core_gitremote_remote_push</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8073.44,-2584.14C8064.89,-2562.56 8050.66,-2532.77 8031,-2511.85"/>
<path fill="none" stroke="black" d="M8031,-2509.85C7976.85,-2452.23 7934.41,-2483.72 7865,-2445.86 7806.06,-2413.71 7806.51,-2378.55 7743,-2356.76 7617.88,-2313.84 6684.98,-2329.73 6553,-2320.76 6177.55,-2295.26 6085.78,-2265.6 5711,-2231.67 5498.82,-2212.46 5444.93,-2217.45 5233,-2195.67 4858.48,-2157.18 4762.38,-2158.96 4393,-2086.13 4212.45,-2050.53 4003.32,-1989.25 3904.05,-1958.92"/>
<polygon fill="#d13d05" stroke="black" points="3905.11,-1955.58 3894.52,-1955.99 3903.06,-1962.27 3905.11,-1955.58"/>
</g>
<!-- ahriman_core_log&#45;&gt;ahriman_core_report_report -->
<g id="edge330" class="edge">
<title>ahriman_core_log&#45;&gt;ahriman_core_report_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8117,-2598.54C8140.27,-2590.29 8172.02,-2580.36 8201,-2575.84 8331.6,-2555.47 10463.67,-2602.61 10580,-2539.84 10593.23,-2532.7 10591.46,-2524.86 10599,-2511.85"/>
<path fill="none" stroke="black" d="M10599,-2509.85C10606.54,-2496.84 10591.29,-2491.8 10580,-2481.86 10538.67,-2445.47 10479.39,-2457.1 10485,-2402.31"/>
</g>
<!-- ahriman_core_log&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge331" class="edge">
<title>ahriman_core_log&#45;&gt;ahriman_core_repository_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8096.96,-2585.15C8105.8,-2564.93 8114.31,-2536.44 8107,-2511.85"/>
<path fill="none" stroke="black" d="M8107,-2509.85C8088.3,-2446.98 8022.48,-2490.05 7974,-2445.86 7958.39,-2431.63 7962.7,-2421.98 7955,-2402.31"/>
</g>
<!-- ahriman_core_log&#45;&gt;ahriman_core_sign_gpg -->
<g id="edge332" class="edge">
<title>ahriman_core_log&#45;&gt;ahriman_core_sign_gpg</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8118.34,-2600.8C8141.77,-2593.65 8173.2,-2584.12 8201,-2575.84 8403.76,-2515.5 8646.04,-2445.32 8747.08,-2416.13"/>
<polygon fill="#d13d05" stroke="black" points="8748.03,-2419.5 8756.67,-2413.37 8746.09,-2412.78 8748.03,-2419.5"/>
</g>
<!-- ahriman_core_log&#45;&gt;ahriman_core_spawn -->
<g id="edge333" class="edge">
<title>ahriman_core_log&#45;&gt;ahriman_core_spawn</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8117.03,-2598.68C8140.3,-2590.49 8172.06,-2580.58 8201,-2575.84 8725.82,-2489.96 8867.79,-2592.18 9397,-2539.84 9436.94,-2535.89 9481.79,-2528.13 9514.79,-2521.78"/>
<polygon fill="#d13d05" stroke="black" points="9515.32,-2525.24 9524.46,-2519.89 9513.97,-2518.37 9515.32,-2525.24"/>
</g>
<!-- ahriman_core_log&#45;&gt;ahriman_core_status_watcher -->
<g id="edge334" class="edge">
<title>ahriman_core_log&#45;&gt;ahriman_core_status_watcher</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10599,-2509.85C10630.3,-2455.84 10608.01,-2286.41 10638,-2231.67 10733.55,-2057.27 10978,-2139.68 10978,-1940.82 10978,-1940.82 10978,-1940.82 10978,-1719.74 10978,-1617.52 11037.01,-1603.47 11054,-1502.67"/>
<path fill="none" stroke="black" d="M11054,-1500.67C11058.59,-1454.5 11048.05,-1402.23 11038.22,-1366.05"/>
<polygon fill="#d13d05" stroke="black" points="11041.7,-1365.5 11035.62,-1356.82 11034.96,-1367.39 11041.7,-1365.5"/>
</g>
<!-- ahriman_core_log&#45;&gt;ahriman_core_status_web_client -->
<g id="edge335" class="edge">
<title>ahriman_core_log&#45;&gt;ahriman_core_status_web_client</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8117.02,-2598.62C8140.28,-2590.4 8172.04,-2580.49 8201,-2575.84 8534.17,-2522.41 9385,-2587.79 9719,-2539.84 9892.36,-2514.96 10090.86,-2451.5 10182.18,-2420.25"/>
<polygon fill="#d13d05" stroke="black" points="10183.29,-2423.57 10191.6,-2417.01 10181.01,-2416.95 10183.29,-2423.57"/>
</g>
<!-- ahriman_core_log&#45;&gt;ahriman_core_triggers_trigger -->
<g id="edge336" class="edge">
<title>ahriman_core_log&#45;&gt;ahriman_core_triggers_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8044.57,-2609.51C7835.4,-2597.79 6832.77,-2537.6 6538,-2445.86 6523.37,-2441.31 6508.22,-2434.36 6494.83,-2427.35"/>
<polygon fill="#d13d05" stroke="black" points="6496.77,-2424.42 6486.31,-2422.73 6493.44,-2430.57 6496.77,-2424.42"/>
</g>
<!-- ahriman_core_log&#45;&gt;ahriman_core_triggers_trigger_loader -->
<g id="edge337" class="edge">
<title>ahriman_core_log&#45;&gt;ahriman_core_triggers_trigger_loader</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8044.87,-2608.58C7941.96,-2600.18 7650.05,-2574.88 7409,-2539.84 7268.56,-2519.43 7234.85,-2506.01 7095,-2481.86 6940,-2455.1 6757.17,-2426.48 6663.04,-2411.96"/>
<polygon fill="#d13d05" stroke="black" points="6663.64,-2408.51 6653.23,-2410.45 6662.58,-2415.43 6663.64,-2408.51"/>
</g>
<!-- ahriman_core_log&#45;&gt;ahriman_core_upload_upload -->
<g id="edge338" class="edge">
<title>ahriman_core_log&#45;&gt;ahriman_core_upload_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8117,-2598.54C8140.27,-2590.29 8172.02,-2580.36 8201,-2575.84 8730.66,-2493.28 10080.97,-2605.46 10613,-2539.84 10816.73,-2514.71 11052.82,-2447.18 11151.67,-2417.11"/>
<polygon fill="#d13d05" stroke="black" points="11152.49,-2420.51 11161.03,-2414.24 11150.44,-2413.82 11152.49,-2420.51"/>
</g>
<!-- ahriman_core_log&#45;&gt;ahriman_models_package -->
<g id="edge339" class="edge">
<title>ahriman_core_log&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8059.89,-2636.17C8045.81,-2650.12 8027.58,-2668.52 8012,-2685.38 7901.64,-2804.83 7892.9,-2852.58 7773,-2962.44 7356.06,-3344.48 6632.84,-3456.64 6438.35,-3480.58"/>
<polygon fill="#d13d05" stroke="black" points="6438.11,-3477.08 6428.6,-3481.75 6438.95,-3484.03 6438.11,-3477.08"/>
</g>
<!-- ahriman_core_log&#45;&gt;ahriman_web_web -->
<g id="edge340" class="edge">
<title>ahriman_core_log&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8183,-2509.85C8273.69,-2449.2 8324.7,-2498.98 8420,-2445.86 8470.56,-2417.68 8462.76,-2381.69 8515,-2356.76 8620.68,-2306.34 8666.86,-2363.19 8776,-2320.76 8840.94,-2295.52 8839.17,-2254.51 8905,-2231.67 8964.43,-2211.05 9424.07,-2238.65 9470,-2195.67 9517.56,-2151.17 9489,-2115.49 9489,-2050.36 9489,-2050.36 9489,-2050.36 9489,-1829.28 9489,-1519.37 9544.89,-1445.84 9579,-1137.82 9582.22,-1108.69 9583.2,-896.79 9603,-875.19"/>
</g>
<!-- ahriman_core_log_filtered_access_logger -->
<g id="node89" class="node">
<title>ahriman_core_log_filtered_access_logger</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b85e3d" stroke="black" cx="10168" cy="-991.51" rx="80.72" ry="36.54"/>
<text text-anchor="middle" x="10168" y="-1005.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10168" y="-994.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="10168" y="-983.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">log.</text>
<text text-anchor="middle" x="10168" y="-972.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">filtered_access_logger</text>
</g>
<!-- ahriman_core_log_filtered_access_logger&#45;&gt;ahriman_web_web -->
<g id="edge341" class="edge">
<title>ahriman_core_log_filtered_access_logger&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10096.52,-973.94C10045.77,-957.97 9981.45,-928.18 9951,-875.19"/>
</g>
<!-- ahriman_core_log_http_log_handler&#45;&gt;ahriman_core_log_log -->
<g id="edge342" class="edge">
<title>ahriman_core_log_http_log_handler&#45;&gt;ahriman_core_log_log</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8377.54,-2803.83C8351.99,-2787.28 8319.37,-2766.15 8293.93,-2749.67"/>
<polygon fill="#a15335" stroke="black" points="8296.12,-2746.92 8285.83,-2744.42 8292.32,-2752.79 8296.12,-2746.92"/>
</g>
<!-- ahriman_core_log_lazy_logging -->
<g id="node91" class="node">
<title>ahriman_core_log_lazy_logging</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c26947" stroke="black" cx="8071" cy="-2722.15" rx="50.41" ry="36.54"/>
<text text-anchor="middle" x="8071" y="-2736.15" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="8071" y="-2725.15" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">core.</text>
<text text-anchor="middle" x="8071" y="-2714.15" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">log.</text>
<text text-anchor="middle" x="8071" y="-2703.15" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">lazy_logging</text>
</g>
<!-- ahriman_core_log_lazy_logging&#45;&gt;ahriman_core_log -->
<g id="edge343" class="edge">
<title>ahriman_core_log_lazy_logging&#45;&gt;ahriman_core_log</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8075,-2685.34C8076.16,-2674.93 8077.43,-2663.51 8078.62,-2652.9"/>
<polygon fill="#c26947" stroke="black" points="8082.06,-2653.62 8079.69,-2643.29 8075.1,-2652.84 8082.06,-2653.62"/>
</g>
<!-- ahriman_core_log_log&#45;&gt;ahriman_core_log -->
<g id="edge344" class="edge">
<title>ahriman_core_log_log&#45;&gt;ahriman_core_log</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8221.42,-2701.18C8193.18,-2683.31 8151.69,-2657.07 8121.51,-2637.97"/>
<polygon fill="#a15335" stroke="black" points="8123.74,-2635.24 8113.42,-2632.85 8120,-2641.16 8123.74,-2635.24"/>
</g>
<!-- ahriman_core_report -->
<g id="node93" class="node">
<title>ahriman_core_report</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#db4005" stroke="black" cx="6699" cy="-1939.82" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="6699" y="-1948.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6699" y="-1937.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6699" y="-1926.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report</text>
</g>
<!-- ahriman_core_report_console&#45;&gt;ahriman_core_report_report -->
<g id="edge345" 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="M9793.87,-2267.3C9923.88,-2246.25 10277.17,-2189.02 10407.69,-2167.89"/>
<polygon fill="#82432b" stroke="black" points="9793.58,-2263.8 9784.27,-2268.86 9794.7,-2270.71 9793.58,-2263.8"/>
<polygon fill="#82432b" stroke="black" points="10408.08,-2171.37 10417.39,-2166.32 10406.96,-2164.46 10408.08,-2171.37"/>
</g>
<!-- ahriman_core_report_jinja_template&#45;&gt;ahriman_core_report_email -->
<g id="edge348" 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="M11101,-2122.09C11101,-2114.28 11101,-2105.91 11101,-2097.73"/>
<polygon fill="#8b3718" stroke="black" points="11104.5,-2097.89 11101,-2087.89 11097.5,-2097.89 11104.5,-2097.89"/>
</g>
<!-- ahriman_core_report_jinja_template&#45;&gt;ahriman_core_report_html -->
<g id="edge349" 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="M11046.71,-2153.81C10941.88,-2146.1 10704.26,-2129.53 10504,-2122.13 10219.39,-2111.61 8220.34,-2141.64 7941,-2086.13 7925.62,-2083.07 7909.51,-2077.5 7895.24,-2071.65"/>
<polygon fill="#8b3718" stroke="black" points="7896.68,-2068.46 7886.11,-2067.75 7893.93,-2074.9 7896.68,-2068.46"/>
</g>
<!-- ahriman_core_report_jinja_template&#45;&gt;ahriman_core_report_telegram -->
<g id="edge350" class="edge">
<title>ahriman_core_report_jinja_template&#45;&gt;ahriman_core_report_telegram</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11128.19,-2126.8C11139.22,-2114.18 11152.03,-2099.52 11163.47,-2086.43"/>
<polygon fill="#8b3718" stroke="black" points="11165.81,-2089.07 11169.76,-2079.24 11160.54,-2084.46 11165.81,-2089.07"/>
</g>
<!-- ahriman_core_report_report&#45;&gt;ahriman_core_report_email -->
<g id="edge352" 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="M10506.41,-2152.35C10596.04,-2141.92 10791.23,-2117.61 10954,-2086.13 10987.35,-2079.68 11024.52,-2070.62 11053.14,-2063.23"/>
<polygon fill="#912d07" stroke="black" points="10506.28,-2148.84 10496.75,-2153.46 10507.08,-2155.79 10506.28,-2148.84"/>
<polygon fill="#912d07" stroke="black" points="11053.8,-2066.67 11062.59,-2060.77 11052.04,-2059.9 11053.8,-2066.67"/>
</g>
<!-- ahriman_core_report_report&#45;&gt;ahriman_core_report_html -->
<g id="edge353" 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="M10407.34,-2155.88C10262.76,-2150.04 9829.61,-2132.88 9470,-2122.13 9300.14,-2117.05 8107.52,-2120.04 7941,-2086.13 7925.64,-2083 7909.53,-2077.41 7895.25,-2071.56"/>
<polygon fill="#912d07" stroke="black" points="10406.79,-2159.36 10416.93,-2156.27 10407.08,-2152.36 10406.79,-2159.36"/>
<polygon fill="#912d07" stroke="black" points="7896.7,-2068.37 7886.13,-2067.67 7893.95,-2074.81 7896.7,-2068.37"/>
</g>
<!-- ahriman_core_report_report&#45;&gt;ahriman_core_report_report_trigger -->
<g id="edge354" class="edge">
<title>ahriman_core_report_report&#45;&gt;ahriman_core_report_report_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10418.44,-2156.2C10286.29,-2150.43 9839.39,-2131.45 9470,-2122.13 8907.01,-2107.93 7496.87,-2136.91 6936,-2086.13 6884.35,-2081.45 6826.33,-2071.39 6783.9,-2063.12"/>
<polygon fill="#912d07" stroke="black" points="6784.62,-2059.7 6774.13,-2061.19 6783.26,-2066.56 6784.62,-2059.7"/>
</g>
<!-- ahriman_core_report_report&#45;&gt;ahriman_core_report_telegram -->
<g id="edge355" class="edge">
<title>ahriman_core_report_report&#45;&gt;ahriman_core_report_telegram</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10507.13,-2156.2C10645.63,-2150.95 11031,-2132.46 11148,-2086.13 11151.38,-2084.79 11154.73,-2083.13 11157.99,-2081.27"/>
<polygon fill="#912d07" stroke="black" points="10507.04,-2152.7 10497.17,-2156.57 10507.3,-2159.69 10507.04,-2152.7"/>
<polygon fill="#912d07" stroke="black" points="11159.65,-2084.37 11166.17,-2076.02 11155.87,-2078.48 11159.65,-2084.37"/>
</g>
<!-- ahriman_core_report_report_trigger&#45;&gt;ahriman_core_report -->
<g id="edge356" class="edge">
<title>ahriman_core_report_report_trigger&#45;&gt;ahriman_core_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6715.07,-2012.85C6712.73,-2002.34 6710.15,-1990.77 6707.75,-1980.03"/>
<polygon fill="#82432b" stroke="black" points="6711.17,-1979.28 6705.57,-1970.28 6704.34,-1980.8 6711.17,-1979.28"/>
</g>
<!-- ahriman_core_repository -->
<g id="node101" class="node">
<title>ahriman_core_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#db4005" stroke="black" cx="7600" cy="-1501.67" rx="42.35" ry="28.98"/>
<text text-anchor="middle" x="7600" y="-1510.17" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7600" y="-1499.17" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7600" y="-1488.17" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository</text>
</g>
<!-- ahriman_core_repository&#45;&gt;ahriman_application_application_application_properties -->
<g id="edge358" class="edge">
<title>ahriman_core_repository&#45;&gt;ahriman_application_application_application_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7557.42,-1499.52C7278.6,-1491.85 5684.77,-1445.59 4389,-1356.9 4379.62,-1356.25 3233.45,-1250.42 2901.88,-1219.8"/>
<polygon fill="#db4005" stroke="black" points="2902.69,-1216.36 2892.41,-1218.92 2902.05,-1223.33 2902.69,-1216.36"/>
</g>
<!-- ahriman_core_repository&#45;&gt;ahriman_core_status_watcher -->
<g id="edge359" 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="M7642.36,-1498.44C8004.94,-1479.43 10582,-1344.3 10974.05,-1323.75"/>
<polygon fill="#db4005" stroke="black" points="10973.96,-1327.26 10983.76,-1323.24 10973.59,-1320.26 10973.96,-1327.26"/>
</g>
<!-- ahriman_core_repository_cleaner -->
<g id="node102" class="node">
<title>ahriman_core_repository_cleaner</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b4512d" stroke="black" cx="7600" cy="-1830.28" rx="43.68" ry="36.54"/>
<text text-anchor="middle" x="7600" y="-1844.28" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7600" y="-1833.28" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7600" y="-1822.28" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository.</text>
<text text-anchor="middle" x="7600" y="-1811.28" 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="edge360" 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="M7570.4,-1802.98C7554.29,-1788.65 7534.18,-1770.78 7516.92,-1755.45"/>
<polygon fill="#b4512d" stroke="black" points="7519.64,-1753.18 7509.85,-1749.16 7514.99,-1758.42 7519.64,-1753.18"/>
</g>
<!-- ahriman_core_repository_cleaner&#45;&gt;ahriman_core_repository_update_handler -->
<g id="edge361" 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="M7600,-1793.47C7600,-1785.67 7600,-1777.29 7600,-1769.11"/>
<polygon fill="#b4512d" stroke="black" points="7603.5,-1769.28 7600,-1759.28 7596.5,-1769.28 7603.5,-1769.28"/>
</g>
<!-- ahriman_core_repository_executor&#45;&gt;ahriman_core_repository_repository -->
<g id="edge362" 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="M7508.6,-1693.44C7524.71,-1679.12 7544.82,-1661.24 7562.08,-1645.91"/>
<polygon fill="#733b26" stroke="black" points="7564.01,-1648.88 7569.15,-1639.62 7559.36,-1643.64 7564.01,-1648.88"/>
</g>
<!-- ahriman_core_repository_repository&#45;&gt;ahriman_core_repository -->
<g id="edge363" 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="M7600,-1574.4C7600,-1564.1 7600,-1552.8 7600,-1542.29"/>
<polygon fill="#733b26" stroke="black" points="7603.5,-1542.35 7600,-1532.35 7596.5,-1542.35 7603.5,-1542.35"/>
</g>
<!-- ahriman_core_repository_repository_properties&#45;&gt;ahriman_core_repository_cleaner -->
<g id="edge364" class="edge">
<title>ahriman_core_repository_repository_properties&#45;&gt;ahriman_core_repository_cleaner</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7648.34,-1904.5C7641.57,-1894.24 7634.07,-1882.89 7627.05,-1872.25"/>
<polygon fill="#733b26" stroke="black" points="7630.03,-1870.41 7621.59,-1863.99 7624.18,-1874.26 7630.03,-1870.41"/>
</g>
<!-- ahriman_core_repository_update_handler&#45;&gt;ahriman_core_repository_repository -->
<g id="edge365" 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="M7600,-1683.93C7600,-1676.13 7600,-1667.75 7600,-1659.57"/>
<polygon fill="#82432b" stroke="black" points="7603.5,-1659.74 7600,-1649.74 7596.5,-1659.74 7603.5,-1659.74"/>
</g>
<!-- ahriman_core_sign -->
<g id="node107" class="node">
<title>ahriman_core_sign</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#db5e2f" stroke="black" cx="8245" cy="-2401.31" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="8245" y="-2409.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8245" y="-2398.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="8245" y="-2387.81" 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="edge366" 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="M8266.79,-2377.04C8275.42,-2369.27 8285.92,-2361.41 8297,-2356.76 8449.37,-2292.87 8503.3,-2343.11 8667,-2320.76 8893.25,-2289.89 8945.73,-2253.79 9173,-2231.67 9576.06,-2192.44 10596.05,-2265.22 10995,-2195.67 11011.32,-2192.82 11028.54,-2187.9 11044.24,-2182.6"/>
<polygon fill="#db5e2f" stroke="black" points="11045.13,-2186 11053.41,-2179.4 11042.81,-2179.4 11045.13,-2186"/>
</g>
<!-- ahriman_core_sign&#45;&gt;ahriman_core_repository_repository -->
<g id="edge367" class="edge">
<title>ahriman_core_sign&#45;&gt;ahriman_core_repository_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8183,-2275.22C8127.12,-2169.1 8189.57,-2118.94 8245,-2012.59 8263.21,-1977.66 8299.27,-1980.15 8297,-1940.82"/>
<path fill="none" stroke="black" d="M8297,-1938.82C8291.16,-1842.52 8348.8,-1803.14 8297,-1721.74"/>
</g>
<!-- ahriman_core_sign&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge368" class="edge">
<title>ahriman_core_sign&#45;&gt;ahriman_core_repository_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8232.46,-2373.49C8220.45,-2348.27 8201.47,-2309.66 8183,-2277.22"/>
<path fill="none" stroke="black" d="M8183,-2275.22C8120.21,-2164.92 8041.72,-2190.15 7969,-2086.13 7959.22,-2072.14 7966.86,-2062.64 7955,-2050.36"/>
</g>
<!-- ahriman_core_sign_gpg&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge369" 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="M8832.92,-2393.55C8916.19,-2378.52 9112.75,-2341.98 9177,-2320.76 9266.71,-2291.14 9277.95,-2252.96 9370,-2231.67 9721.91,-2150.27 10639.24,-2258.13 10995,-2195.67 11011.32,-2192.8 11028.53,-2187.88 11044.24,-2182.58"/>
<polygon fill="#933b1a" stroke="black" points="11045.12,-2185.98 11053.4,-2179.37 11042.81,-2179.37 11045.12,-2185.98"/>
</g>
<!-- ahriman_core_sign_gpg&#45;&gt;ahriman_core_repository_repository -->
<g id="edge370" class="edge">
<title>ahriman_core_sign_gpg&#45;&gt;ahriman_core_repository_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8760.99,-2383.59C8716.58,-2361.66 8643.87,-2325.41 8639,-2320.76 8638.57,-2320.35 8297.33,-1722.24 8297,-1721.74"/>
</g>
<!-- ahriman_core_sign_gpg&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge371" class="edge">
<title>ahriman_core_sign_gpg&#45;&gt;ahriman_core_repository_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8759.66,-2386.62C8720.56,-2371.28 8655.81,-2345.33 8601,-2320.76 8315.84,-2192.94 8266.66,-2107.75 7969,-2012.59 7876.3,-1982.96 7846.31,-2004.26 7753,-1976.59 7747.14,-1974.85 7741.14,-1972.8 7735.18,-1970.58"/>
<polygon fill="#933b1a" stroke="black" points="7736.55,-1967.35 7725.96,-1966.97 7733.99,-1973.87 7736.55,-1967.35"/>
</g>
<!-- ahriman_core_spawn&#45;&gt;ahriman_application_handlers_web -->
<g id="edge372" 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="M9586.91,-2487.7C9597.8,-2476.26 9609.83,-2461.44 9617,-2445.86 9631.46,-2414.43 9723.16,-1865.32 9717,-1831.28"/>
<path fill="none" stroke="black" d="M9717,-1829.28C9704.3,-1727.85 9641,-1714.43 9641,-1612.2 9641,-1612.2 9641,-1612.2 9641,-990.51 9641,-887.12 9618.87,-858.87 9641,-757.87"/>
</g>
<!-- ahriman_core_spawn&#45;&gt;ahriman_web_views_base -->
<g id="edge373" 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="M9597.43,-2497.66C9631.62,-2485.34 9685.38,-2465.39 9731,-2445.86 10038.35,-2314.31 10091.81,-2224.74 10410,-2122.13 11276.17,-1842.8 11564.35,-2053.43 12425,-1757.51 12540.34,-1717.85 13306.24,-1328.84 13397,-1247.36 13411.25,-1234.57 13405.73,-1223.14 13421,-1211.59"/>
<path fill="none" stroke="black" d="M13421,-1209.59C13432.65,-1197.11 13423.2,-1186.16 13435,-1173.82 13462.22,-1145.34 13481.23,-1156.33 13516,-1137.82 13542.4,-1123.76 13549.8,-1120.92 13573,-1102.05"/>
<path fill="none" stroke="black" d="M13573,-1100.05C13586.24,-1089.27 13574.88,-1076.31 13587,-1064.28 13618.75,-1032.76 13641.4,-1049.1 13681,-1028.28 13685.15,-1026.1 13689.36,-1023.65 13693.5,-1021.08"/>
<polygon fill="#ae451e" stroke="black" points="13695.2,-1024.14 13701.69,-1015.77 13691.4,-1018.27 13695.2,-1024.14"/>
</g>
<!-- ahriman_core_spawn&#45;&gt;ahriman_web_web -->
<g id="edge374" 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="M9717,-1829.28C9700.97,-1734.14 9717,-1708.68 9717,-1612.2 9717,-1612.2 9717,-1612.2 9717,-1100.05 9717,-1034.59 9717.25,-1015.73 9741,-954.74 9756.33,-915.38 9780.09,-915.41 9793,-875.19"/>
<path fill="none" stroke="black" d="M9793,-873.19C9799.13,-852.8 9801.7,-847.7 9813,-829.64 9834.91,-794.64 9859.75,-797.31 9872,-757.87"/>
</g>
<!-- ahriman_core_status -->
<g id="node110" class="node">
<title>ahriman_core_status</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f95010" stroke="black" cx="9061" cy="-3035.21" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="9061" y="-3043.71" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9061" y="-3032.71" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="9061" y="-3021.71" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status</text>
</g>
<!-- ahriman_core_status&#45;&gt;ahriman_application_lock -->
<g id="edge375" 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="M9068.8,-3006.71C9074.46,-2986.69 9082.27,-2958.91 9089,-2934.45"/>
</g>
<!-- ahriman_core_status&#45;&gt;ahriman_core_log_http_log_handler -->
<g id="edge376" class="edge">
<title>ahriman_core_status&#45;&gt;ahriman_core_log_http_log_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9025.57,-3023.09C8922.02,-2990.59 8618.75,-2895.39 8484.38,-2853.21"/>
<polygon fill="#f95010" stroke="black" points="8485.49,-2849.89 8474.9,-2850.24 8483.39,-2856.57 8485.49,-2849.89"/>
</g>
<!-- ahriman_core_status&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge377" class="edge">
<title>ahriman_core_status&#45;&gt;ahriman_core_repository_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9027.87,-3020.12C8971.61,-2996.23 8853.81,-2946.26 8754,-2904.46 8636.83,-2855.39 8613.56,-2824.41 8490,-2794.92 8438.19,-2782.56 8050.68,-2795.54 8012,-2758.92 7964.7,-2714.15 7983.47,-2678.04 7993,-2613.61"/>
</g>
<!-- ahriman_core_status&#45;&gt;ahriman_web_views_base -->
<g id="edge378" 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="M9086.26,-3012.99C9094.33,-3007.3 9103.61,-3001.81 9113,-2998.44 9170,-2977.99 10138.59,-2908.68 10199,-2904.46 10274.89,-2899.16 12881.65,-2814.13 12934,-2758.92 12956.49,-2735.2 12939.66,-2717.57 12934,-2685.38 12914.37,-2573.84 12866.63,-2557.41 12847,-2445.86 12808.23,-2225.55 12877.71,-1999.12 12964,-1793.51 13032.02,-1631.45 13070.32,-1598.94 13184,-1464.9 13229.35,-1411.42 13250.02,-1407.07 13299,-1356.9 13344.63,-1310.15 13356.93,-1298.95 13397,-1247.36 13408.74,-1232.24 13407.94,-1225.58 13421,-1211.59"/>
</g>
<!-- ahriman_core_status&#45;&gt;ahriman_web_web -->
<g id="edge379" 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="M9077.79,-3008.7C9086.12,-2995.31 9095.89,-2978.4 9103,-2962.44 9217.94,-2704.35 9180.45,-2614.58 9296,-2356.76 9322.42,-2297.82 9318.83,-2271.09 9370,-2231.67 9416.48,-2195.87 9453.68,-2235.24 9497,-2195.67 9663.59,-2043.5 9679,-1947.37 9679,-1721.74 9679,-1721.74 9679,-1721.74 9679,-1610.2 9679,-1477.36 9755,-1453.97 9755,-1321.13 9755,-1321.13 9755,-1321.13 9755,-1100.05 9755,-1029.83 9764.93,-1001.85 9817,-954.74 9856.71,-918.81 9892.14,-954.51 9932,-918.74 9947.72,-904.64 9961.55,-893.48 9951,-875.19"/>
<path fill="none" stroke="black" d="M9951,-873.19C9939.92,-855.22 9943.11,-847.6 9932,-829.64 9910.13,-794.28 9859.66,-797.58 9872,-757.87"/>
</g>
<!-- ahriman_core_status_client&#45;&gt;ahriman_application_lock -->
<g id="edge380" 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="M8647.52,-3005.03C8672.89,-2972.05 8715.26,-2916.66 8751,-2868.46 8869.35,-2708.83 9007.33,-2515.72 9062.91,-2437.62"/>
<polygon fill="#9c3711" stroke="black" points="9065.76,-2439.65 9068.71,-2429.48 9060.06,-2435.6 9065.76,-2439.65"/>
</g>
<!-- ahriman_core_status_client&#45;&gt;ahriman_core_log_http_log_handler -->
<g id="edge381" class="edge">
<title>ahriman_core_status_client&#45;&gt;ahriman_core_log_http_log_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8405,-2932.45C8386.17,-2922.3 8388.53,-2899.07 8396.13,-2877.58"/>
<polygon fill="#9c3711" stroke="black" points="8399.37,-2878.9 8399.8,-2868.32 8392.86,-2876.33 8399.37,-2878.9"/>
</g>
<!-- ahriman_core_status_client&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge382" class="edge">
<title>ahriman_core_status_client&#45;&gt;ahriman_core_repository_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8589.61,-3019.93C8545.53,-3001.75 8468.31,-2968.57 8405,-2934.45"/>
<path fill="none" stroke="black" d="M8405,-2932.45C8382.5,-2920.33 7993.26,-2780.13 7979,-2758.92 7942.8,-2705.08 7962.6,-2670.93 7993,-2613.61"/>
<path fill="none" stroke="black" d="M7993,-2611.61C8014.26,-2557.65 8028.03,-2535.92 8007,-2481.86 7999.13,-2461.63 7985.83,-2464.06 7974,-2445.86 7962.49,-2428.16 7962.7,-2421.98 7955,-2402.31"/>
</g>
<!-- ahriman_core_status_client&#45;&gt;ahriman_core_status_web_client -->
<g id="edge383" 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="M8671.04,-3016.12C8902.98,-2924.97 9941.87,-2516.72 10182.93,-2421.99"/>
<polygon fill="#9c3711" stroke="black" points="8669.9,-3012.81 8661.87,-3019.72 8672.46,-3019.32 8669.9,-3012.81"/>
<polygon fill="#9c3711" stroke="black" points="10184.04,-2425.31 10192.07,-2418.4 10181.48,-2418.8 10184.04,-2425.31"/>
</g>
<!-- ahriman_core_status_watcher&#45;&gt;ahriman_web_views_base -->
<g id="edge384" 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="M11052.79,-1295.46C11059.98,-1290.67 11067.95,-1286.23 11076,-1283.36 11256.61,-1218.85 11323.33,-1305.75 11506,-1247.36 11567.03,-1227.85 11568.38,-1191.39 11630,-1173.82 11819.38,-1119.81 13210.22,-1182.56 13402,-1137.82 13477.04,-1120.31 13486.95,-1091.6 13559,-1064.28 13611.86,-1044.23 13629.97,-1052.6 13681,-1028.28 13685.28,-1026.24 13689.61,-1023.86 13693.83,-1021.33"/>
<polygon fill="#7a371e" stroke="black" points="13695.63,-1024.33 13702.18,-1016.01 13691.86,-1018.43 13695.63,-1024.33"/>
</g>
<!-- ahriman_core_status_watcher&#45;&gt;ahriman_web_web -->
<g id="edge385" 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="M10985.8,-1314.85C10903.72,-1305.37 10704.63,-1280.73 10540,-1247.36 10242.46,-1187.04 10125.53,-1223.46 9893,-1028.28 9861.88,-1002.15 9781.13,-914.05 9793,-875.19"/>
</g>
<!-- ahriman_core_tree -->
<g id="node114" class="node">
<title>ahriman_core_tree</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#ac4e2b" stroke="black" cx="4968" cy="-3299.07" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="4968" y="-3307.57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4968" y="-3296.57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4968" y="-3285.57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">tree</text>
</g>
<!-- ahriman_core_tree&#45;&gt;ahriman_application_application_application_repository -->
<g id="edge387" class="edge">
<title>ahriman_core_tree&#45;&gt;ahriman_application_application_application_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4932.36,-3287.6C4844.91,-3262.02 4612.54,-3194.83 4417,-3144.98 4138.01,-3073.87 4070.36,-3043.47 3786,-2998.44 3601.83,-2969.28 3550.26,-3001.82 3368,-2962.44 3245.44,-2935.97 3202.15,-2943.9 3102,-2868.46 3015.62,-2803.39 2036.6,-1370.09 1972,-1283.36 1948.47,-1251.77 1897.93,-1244.22 1920,-1211.59"/>
</g>
<!-- ahriman_core_tree&#45;&gt;ahriman_application_handlers_structure -->
<g id="edge388" class="edge">
<title>ahriman_core_tree&#45;&gt;ahriman_application_handlers_structure</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4996.68,-3279.48C5004,-3275.63 5012.06,-3272.13 5020,-3270.08 5190.86,-3225.98 8037.47,-3311.57 8196,-3234.08 8241.49,-3211.84 8235.03,-3184.25 8267,-3144.98 8354.77,-3037.16 8362.87,-2996.57 8467,-2904.46 8489.16,-2884.86 8502.78,-2890.06 8523,-2868.46 8590.26,-2796.62 8663.27,-2544.71 8739,-2481.86 8776.31,-2450.89 8813.93,-2485.4 8842,-2445.86 8864.92,-2413.57 8853.19,-2394.75 8842,-2356.76 8812.58,-2256.89 8715,-2264.02 8715,-2159.9 8715,-2159.9 8715,-2159.9 8715,-1409.9 8715,-1256.22 8735.6,-1214.87 8705,-1064.28 8704.89,-1063.75 8677.18,-993.01 8677,-992.51"/>
</g>
<!-- ahriman_core_triggers -->
<g id="node115" class="node">
<title>ahriman_core_triggers</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#d13d05" stroke="black" cx="6600" cy="-2276.22" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="6600" y="-2284.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6600" y="-2273.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6600" y="-2262.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">triggers</text>
</g>
<!-- ahriman_core_triggers&#45;&gt;ahriman_application_handlers_validate -->
<g id="edge389" class="edge">
<title>ahriman_core_triggers&#45;&gt;ahriman_application_handlers_validate</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6615.31,-2249.21C6627.3,-2226.48 6642.1,-2192.15 6643,-2159.9"/>
<path fill="none" stroke="black" d="M6643,-2157.9C6645.61,-2064.75 6545.93,-2092.88 6463,-2050.36"/>
<path fill="none" stroke="black" d="M6463,-2048.36C6434.69,-2033.85 6430.99,-2023.2 6401,-2012.59 6264.08,-1964.18 6092.46,-1948.34 6004.27,-1943.22"/>
<polygon fill="#d13d05" stroke="black" points="6004.59,-1939.73 5994.41,-1942.67 6004.2,-1946.72 6004.59,-1939.73"/>
</g>
<!-- ahriman_core_triggers&#45;&gt;ahriman_core_gitremote_remote_pull_trigger -->
<g id="edge390" class="edge">
<title>ahriman_core_triggers&#45;&gt;ahriman_core_gitremote_remote_pull_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6562.12,-2270.24C6497.8,-2261.86 6363.1,-2244.57 6249,-2231.67 5594.24,-2157.66 4802.18,-2081.6 4551.82,-2057.88"/>
<polygon fill="#d13d05" stroke="black" points="4552.46,-2054.43 4542.17,-2056.97 4551.8,-2061.39 4552.46,-2054.43"/>
</g>
<!-- ahriman_core_triggers&#45;&gt;ahriman_core_gitremote_remote_push_trigger -->
<g id="edge391" class="edge">
<title>ahriman_core_triggers&#45;&gt;ahriman_core_gitremote_remote_push_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6463,-2048.36C6434.69,-2033.85 6430.36,-2024.85 6401,-2012.59 6231.31,-1941.72 6183.91,-1930.02 6002,-1903.05 5702.06,-1858.59 4940.69,-1884.91 4638,-1867.05 4532.23,-1860.81 4410.71,-1848.91 4331.82,-1840.56"/>
<polygon fill="#d13d05" stroke="black" points="4332.31,-1837.09 4322,-1839.51 4331.57,-1844.05 4332.31,-1837.09"/>
</g>
<!-- ahriman_core_triggers&#45;&gt;ahriman_core_report_report_trigger -->
<g id="edge392" class="edge">
<title>ahriman_core_triggers&#45;&gt;ahriman_core_report_report_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6643,-2157.9C6643.79,-2129.61 6661.89,-2103.93 6680.67,-2084.76"/>
<polygon fill="#d13d05" stroke="black" points="6682.89,-2087.49 6687.62,-2078.01 6678.01,-2082.46 6682.89,-2087.49"/>
</g>
<!-- ahriman_core_triggers&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge393" class="edge">
<title>ahriman_core_triggers&#45;&gt;ahriman_core_repository_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6643,-2157.9C6644.82,-2092.79 6614.19,-2056.83 6662,-2012.59 6718.02,-1960.75 7271.93,-1982.79 7348,-1976.59 7428.63,-1970.02 7520.27,-1959.58 7585.29,-1951.68"/>
<polygon fill="#d13d05" stroke="black" points="7585.71,-1955.16 7595.21,-1950.47 7584.86,-1948.21 7585.71,-1955.16"/>
</g>
<!-- ahriman_core_triggers&#45;&gt;ahriman_core_upload_upload_trigger -->
<g id="edge394" class="edge">
<title>ahriman_core_triggers&#45;&gt;ahriman_core_upload_upload_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6638.7,-2275.1C6712.72,-2272.6 6874.18,-2255.77 6955,-2159.9"/>
<path fill="none" stroke="black" d="M6955,-2157.9C6969.81,-2140.33 6980.15,-2117.11 6987.07,-2096.74"/>
<polygon fill="#d13d05" stroke="black" points="6990.4,-2097.8 6990.11,-2087.21 6983.73,-2095.67 6990.4,-2097.8"/>
</g>
<!-- ahriman_core_triggers_trigger&#45;&gt;ahriman_core_triggers -->
<g id="edge395" class="edge">
<title>ahriman_core_triggers_trigger&#45;&gt;ahriman_core_triggers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6481.34,-2376.58C6505.52,-2356.33 6540.35,-2327.17 6566.02,-2305.67"/>
<polygon fill="#8a472e" stroke="black" points="6568.11,-2308.49 6573.53,-2299.38 6563.61,-2303.12 6568.11,-2308.49"/>
</g>
<!-- ahriman_core_triggers_trigger_loader&#45;&gt;ahriman_core_triggers -->
<g id="edge396" class="edge">
<title>ahriman_core_triggers_trigger_loader&#45;&gt;ahriman_core_triggers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6600,-2364.38C6600,-2349.45 6600,-2332.07 6600,-2316.78"/>
<polygon fill="#82432b" stroke="black" points="6603.5,-2317.08 6600,-2307.08 6596.5,-2317.08 6603.5,-2317.08"/>
</g>
<!-- ahriman_core_upload -->
<g id="node118" class="node">
<title>ahriman_core_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#db4005" stroke="black" cx="6999" cy="-1939.82" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="6999" y="-1948.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6999" y="-1937.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6999" y="-1926.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload</text>
</g>
<!-- ahriman_core_upload_github&#45;&gt;ahriman_core_upload_upload -->
<g id="edge397" 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="M11459.64,-2164.37C11390.57,-2173.24 11249.54,-2195.42 11218,-2231.67 11189.17,-2264.81 11187.47,-2316.54 11191.09,-2353.97"/>
<polygon fill="#82432b" stroke="black" points="11187.57,-2354.05 11192.18,-2363.59 11194.53,-2353.26 11187.57,-2354.05"/>
</g>
<!-- ahriman_core_upload_http_upload&#45;&gt;ahriman_core_upload_github -->
<g id="edge398" 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="M11548.31,-2242.79C11540.38,-2229.71 11531.13,-2214.47 11522.74,-2200.65"/>
<polygon fill="#914b30" stroke="black" points="11525.78,-2198.92 11517.6,-2192.19 11519.8,-2202.55 11525.78,-2198.92"/>
</g>
<!-- ahriman_core_upload_upload&#45;&gt;ahriman_core_upload_http_upload -->
<g id="edge401" 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="M11232.16,-2382.57C11248.89,-2374.05 11269.7,-2364.12 11289,-2356.76 11364.45,-2328 11454.81,-2304.07 11511.82,-2290.19"/>
<polygon fill="#8a300f" stroke="black" points="11512.4,-2293.66 11521.3,-2287.91 11510.75,-2286.85 11512.4,-2293.66"/>
</g>
<!-- ahriman_core_upload_upload&#45;&gt;ahriman_core_upload_rsync -->
<g id="edge402" 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="M11150.33,-2389.83C11061.39,-2370.57 10879.11,-2330.64 10851,-2320.76 10835.32,-2315.26 10818.77,-2307.78 10804.21,-2300.57"/>
<polygon fill="#8a300f" stroke="black" points="11149.48,-2393.22 11159.99,-2391.92 11150.96,-2386.38 11149.48,-2393.22"/>
<polygon fill="#8a300f" stroke="black" points="10805.85,-2297.48 10795.34,-2296.09 10802.69,-2303.72 10805.85,-2297.48"/>
</g>
<!-- ahriman_core_upload_upload&#45;&gt;ahriman_core_upload_s3 -->
<g id="edge403" 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="M11221.4,-2358.53C11228.24,-2345.77 11235.76,-2331.75 11242.6,-2318.99"/>
<polygon fill="#8a300f" stroke="black" points="11218.52,-2356.49 11216.88,-2366.96 11224.69,-2359.8 11218.52,-2356.49"/>
<polygon fill="#8a300f" stroke="black" points="11245.56,-2320.88 11247.2,-2310.41 11239.39,-2317.57 11245.56,-2320.88"/>
</g>
<!-- ahriman_core_upload_upload&#45;&gt;ahriman_core_upload_upload_trigger -->
<g id="edge404" class="edge">
<title>ahriman_core_upload_upload&#45;&gt;ahriman_core_upload_upload_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11166.46,-2381.13C11101.18,-2343.83 10948.44,-2262.51 10808,-2231.67 10496.22,-2163.21 9688.94,-2233.67 9372,-2195.67 9218.93,-2177.31 9186.1,-2140.28 9033,-2122.13 8678.95,-2080.15 7785.04,-2104.92 7429,-2086.13 7299.5,-2079.3 7148.52,-2065.35 7064.32,-2057.03"/>
<polygon fill="#8a300f" stroke="black" points="7064.7,-2053.55 7054.4,-2056.05 7064.01,-2060.52 7064.7,-2053.55"/>
</g>
<!-- ahriman_core_upload_upload_trigger&#45;&gt;ahriman_core_upload -->
<g id="edge405" class="edge">
<title>ahriman_core_upload_upload_trigger&#45;&gt;ahriman_core_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6999,-2012.55C6999,-2002.25 6999,-1990.96 6999,-1980.44"/>
<polygon fill="#82432b" stroke="black" points="7002.5,-1980.51 6999,-1970.51 6995.5,-1980.51 7002.5,-1980.51"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_application_ahriman -->
<g id="edge406" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_application_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7632.56,-4345.73C7654.86,-4339.47 7684.34,-4332.14 7711,-4328.57 7871.07,-4307.2 9011.19,-4344.82 9164,-4292.57 9216.2,-4274.73 9211.89,-4237.14 9264,-4219.04 9373.12,-4181.13 10187.93,-4193.13 10303,-4183.04 10600.35,-4156.95 10673.83,-4139.69 10968,-4089.05 11608.05,-3978.88 11795.92,-4036.48 12400,-3797.97 12519.88,-3750.64 12532.34,-3704.89 12647,-3646.01 12935.12,-3498.05 13008.86,-3457.42 13319,-3364.06 13901.19,-3188.8 14070.17,-3243.95 14663,-3108.98 14911.68,-3052.37 14969.74,-3006.79 15184,-2868.46 15250.96,-2825.23 15271.09,-2816.7 15326,-2758.92 15522.93,-2551.7 15861.49,-1894.1 15909,-1612.2"/>
<path fill="none" stroke="black" d="M15909,-1610.2C15917.16,-1481.98 15898.15,-1449.15 15909,-1321.13"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_application_application_application_packages -->
<g id="edge407" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_application_application_application_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7558.52,-4356.19C7299.36,-4353.57 5805.08,-4336.69 5352,-4292.57 5256.02,-4283.23 5231.5,-4280.4 5138,-4256.8"/>
<path fill="none" stroke="black" d="M5138,-4254.8C4308.95,-4045.55 4089.39,-4026.5 3237,-3959.07 3161.87,-3953.13 1936.81,-3973.71 1881,-3923.07 1830.23,-3877 1862,-3838.54 1862,-3769.98 1862,-3769.98 1862,-3769.98 1862,-3034.21 1862,-2674.31 1694.19,-2586.57 1754,-2231.67 1795.48,-1985.55 2008.95,-1338.28 2224,-1211.59"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_application_lock -->
<g id="edge408" 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="M8215,-3976.07C8200.15,-3946.74 9248.64,-3470.64 9279,-3458.04 9324.18,-3439.3 9354.63,-3461.89 9383,-3422.04 9440.04,-3341.94 9375.87,-3262.37 9283,-3144.98 9250.18,-3103.5 9215.88,-3117.54 9189,-3071.98 9162.8,-3027.58 9117,-2665.17 9117,-2613.61"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_alpm_pacman -->
<g id="edge409" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_alpm_pacman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7558.42,-4356.2C7190.14,-4352.64 4305.7,-4323.81 4128,-4292.57 4028.53,-4275.09 4009.93,-4247.38 3913,-4219.04 3743.94,-4169.6 3701.34,-4156.28 3528,-4125.05 3176.11,-4061.65 3084.17,-4072.32 2729,-4031.07 2449.94,-3998.66 2380.19,-3990.35 2101,-3959.07 2027.91,-3950.88 1828.61,-3970.02 1772,-3923.07 1727.28,-3885.97 1749.45,-3853.99 1734,-3797.97 1654.52,-3509.71 1660.78,-3430.51 1572,-3144.98 1552.51,-3082.29 1487.91,-2931.02 1468,-2868.46 1442.49,-2788.3 1457.25,-2760.8 1420,-2685.38 1411.02,-2667.21 1402.36,-2666.8 1392,-2649.38 1352.09,-2582.29 1318.35,-2497.76 1299.67,-2446.99"/>
<polygon fill="#c73a05" stroke="black" points="1303.04,-2446 1296.33,-2437.8 1296.46,-2448.39 1303.04,-2446"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_alpm_remote_aur -->
<g id="edge410" 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="M7558.46,-4356.13C7185.98,-4351.85 4234.87,-4317.23 4052,-4292.57 3753.79,-4252.36 3692.81,-4174.56 3396,-4125.05 3199.84,-4092.33 3147.71,-4110.51 2950,-4089.05 2379.55,-4027.14 1691.43,-3918.01 1503.46,-3887.59"/>
<polygon fill="#c73a05" stroke="black" points="1504.25,-3884.17 1493.82,-3886.03 1503.13,-3891.08 1504.25,-3884.17"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_alpm_remote_official -->
<g id="edge411" 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="M7558.21,-4356.28C7283.27,-4354.15 5625.38,-4339.49 5124,-4292.57 4201.87,-4206.29 3988.97,-4047.04 3067,-3959.07 2999.55,-3952.63 1900.85,-3965.47 1848,-3923.07 1781.65,-3869.84 1775.11,-3634.42 1754,-3552.03 1728.49,-3452.42 1717.74,-3428.56 1696,-3328.06 1682.88,-3267.42 1672,-3252.58 1672,-3190.53 1672,-3190.53 1672,-3190.53 1672,-3107.98 1672,-2783.43 1492.59,-2743.86 1364,-2445.86 1355.95,-2427.19 1355.25,-2421.95 1350,-2402.31"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_alpm_repo -->
<g id="edge412" 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="M7759,-3767.98C7693.36,-3717.76 7759,-3664.67 7759,-3582.02 7759,-3582.02 7759,-3582.02 7759,-3107.98 7759,-3030.86 7769.42,-3010.87 7759,-2934.45"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_build_tools_sources -->
<g id="edge413" 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="M5138,-4254.8C5119.44,-4250.12 5125.38,-4234.43 5114,-4219.04 5092.21,-4189.57 5087.87,-4181 5062,-4155.04"/>
<path fill="none" stroke="black" d="M5062,-4153.04C4573.43,-3662.9 3838,-3882.58 3838,-3190.53 3838,-3190.53 3838,-3190.53 3838,-3107.98 3838,-3029.68 3904.17,-3029.63 3976,-2998.44 4085.16,-2951.05 4182,-3040.5 4236,-2934.45"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge414" 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="M8215,-4254.8C8232.22,-4195.77 8242.39,-4033.13 8215,-3978.07"/>
<path fill="none" stroke="black" d="M8215,-3976.07C8185.77,-3928.49 7793.3,-3826 7745,-3797.97 7607.99,-3718.46 7569,-3646.45 7569,-3488.03 7569,-3488.03 7569,-3488.03 7569,-3392.05 7569,-3153.11 7474.29,-3105.84 7447,-2868.46 7443.27,-2835.99 7440.09,-2826.87 7447,-2794.92 7462.01,-2725.5 7497.99,-2718.8 7513,-2649.38 7519.91,-2617.44 7515.16,-2608.46 7513,-2575.84 7509.1,-2517.07 7481.86,-2094.63 7443,-2050.36"/>
<path fill="none" stroke="black" d="M7443,-2048.36C7412.18,-2016.49 7370.81,-1987.78 7339.16,-1968.06"/>
<polygon fill="#c73a05" stroke="black" points="7341.32,-1965.28 7330.97,-1963.03 7337.66,-1971.24 7341.32,-1965.28"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_database_operations_logs_operations -->
<g id="edge415" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_database_operations_logs_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7632.56,-4345.75C7654.86,-4339.49 7684.34,-4332.16 7711,-4328.57 8010.19,-4288.35 8774.81,-4360.31 9069,-4292.57 9146.05,-4274.83 9154.26,-4238.08 9231,-4219.04 9345.3,-4190.67 10172.17,-4169.88 10289,-4155.04"/>
<path fill="none" stroke="black" d="M10289,-4153.04C10737.77,-4095.72 10832.28,-3987.67 11243,-3797.97 11632.06,-3618.28 11715.57,-3545.27 12085,-3328.06 12299.78,-3201.78 12967.22,-2964.52 13029,-2723.15"/>
<path fill="none" stroke="black" d="M13029,-2721.15C13036.26,-2673.91 13016.92,-2659.86 13029,-2613.61"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_formatters_aur_printer -->
<g id="edge416" 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="M5338,-3976.07C5204.73,-3451.88 4992.32,-2830.13 4932.9,-2659.08"/>
<polygon fill="#c73a05" stroke="black" points="4936.22,-2657.97 4929.63,-2649.67 4929.61,-2660.27 4936.22,-2657.97"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_gitremote_remote_pull -->
<g id="edge417" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_gitremote_remote_pull</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7558.58,-4356.1C7283.64,-4352.71 5623.48,-4330.7 5525,-4292.57 5238.35,-4181.61 5072,-4077.36 5072,-3769.98 5072,-3769.98 5072,-3769.98 5072,-3674 5072,-3535.34 4970.74,-3533.32 4888,-3422.04 4720.26,-3196.45 4696.95,-3125.01 4582,-2868.46 4554.01,-2806 4562.04,-2784.15 4531,-2723.15"/>
<path fill="none" stroke="black" d="M4531,-2721.15C4480.23,-2678.71 4282.76,-2701.51 4242,-2649.38 4160.2,-2544.78 4381.74,-2532.06 4410,-2402.31"/>
<path fill="none" stroke="black" d="M4410,-2400.31C4424.29,-2332.86 4405.3,-2253.65 4389.67,-2205.12"/>
<polygon fill="#c73a05" stroke="black" points="4393.04,-2204.18 4386.57,-2195.79 4386.4,-2206.39 4393.04,-2204.18"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_report_email -->
<g id="edge418" 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="M8979,-4254.8C9009.23,-4244.88 9012.95,-4234.04 9041,-4219.04 9124.07,-4174.59 9143.65,-4160.34 9231,-4125.05 9279.87,-4105.31 9294.63,-4107.51 9344,-4089.05 9442.83,-4052.11 9465.4,-4037.49 9562,-3995.07 9633.77,-3963.55 9653.88,-3960.05 9723,-3923.07 9926.77,-3814.06 9953.57,-3743.7 10163,-3646.01 10210.38,-3623.9 10228.36,-3633.65 10275,-3610.01 10314.17,-3590.16 10314.06,-3567.9 10355,-3552.03 10488.03,-3500.46 10534.48,-3545.89 10674,-3516.03 10808.14,-3487.31 10838.8,-3468.15 10968,-3422.04 10974.69,-3419.65 11439.94,-3239.91 11444,-3234.08 11634.85,-2959.52 11525.11,-2809.43 11458,-2481.86 11433.73,-2363.38 11426.71,-2325.98 11351,-2231.67 11281.5,-2145.1 11237.29,-2152.09 11148,-2086.13 11145.28,-2084.12 11142.49,-2082.04 11139.68,-2079.94"/>
<polygon fill="#c73a05" stroke="black" points="11142.04,-2077.33 11131.95,-2074.11 11137.83,-2082.92 11142.04,-2077.33"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge419" 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="M9065,-4153.04C9135.97,-4104.18 9167.46,-4119.66 9248,-4089.05 9429.46,-4020.11 9484.11,-4020.5 9652,-3923.07 9766.51,-3856.61 9772.05,-3805.69 9887,-3739.99 9924.76,-3718.41 9938.9,-3723.04 9978,-3703.99 10023.84,-3681.66 10029.96,-3665.68 10077,-3646.01 10133.89,-3622.21 10154.01,-3633.56 10211,-3610.01 10258.84,-3590.24 10263.42,-3569.89 10312,-3552.03 10394.31,-3521.77 10420.16,-3533.94 10506,-3516.03 10686.89,-3478.27 10741.58,-3495.8 10911,-3422.04 10953.27,-3403.64 10957.61,-3388.01 10997,-3364.06 11025.55,-3346.7 11039.69,-3352 11063,-3328.06 11261.19,-3124.51 11286.22,-3034.82 11354,-2758.92 11373.41,-2679.9 11363.75,-2656.74 11355,-2575.84 11351.87,-2546.9 11343.83,-2540.83 11341,-2511.85"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_report_telegram -->
<g id="edge420" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_report_telegram</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9055,-4254.8C9071.9,-4252.39 9055.3,-4229.21 9069,-4219.04 9149.36,-4159.35 9419.82,-4202.55 9518,-4183.04 9899.64,-4107.18 10193.47,-4099.21 11177,-3610.01 11513.12,-3442.83 11642.34,-3416.95 11857,-3108.98 12080.99,-2787.64 12018.97,-2536.51 11773,-2231.67 11720.71,-2166.86 11697.84,-2154.23 11621,-2122.13 11586.61,-2107.76 11348.74,-2072.43 11244.15,-2057.36"/>
<polygon fill="#c73a05" stroke="black" points="11244.86,-2053.92 11234.47,-2055.97 11243.87,-2060.85 11244.86,-2053.92"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_repository_executor -->
<g id="edge421" 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="M8215,-3976.07C8156.61,-3761.47 7940.74,-3898.17 7759,-3769.98"/>
<path fill="none" stroke="black" d="M7759,-3767.98C7681.26,-3710.06 7645,-3678.96 7645,-3582.02 7645,-3582.02 7645,-3582.02 7645,-3392.05 7645,-2745.57 7520.34,-1965.22 7487.08,-1768.49"/>
<polygon fill="#c73a05" stroke="black" points="7490.53,-1767.93 7485.41,-1758.66 7483.63,-1769.11 7490.53,-1767.93"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_repository_repository -->
<g id="edge422" 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="M8215,-3877.52C8200.12,-3789.2 8215,-3765.57 8215,-3676 8215,-3676 8215,-3676 8215,-3298.07 8215,-3073.3 8144.84,-2984.23 8266,-2794.92 8282.97,-2768.41 8309.85,-2785.32 8327,-2758.92 8403.29,-2641.47 8354.99,-2585.69 8363,-2445.86 8365.27,-2406.33 8366.08,-2396.24 8363,-2356.76 8350.96,-2202.4 8333.77,-2165.43 8309,-2012.59 8303.83,-1980.67 8296.81,-1973.16 8297,-1940.82"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge423" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_repository_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8215,-3976.07C8195.89,-3937.65 8222.13,-3921.84 8215,-3879.52"/>
<path fill="none" stroke="black" d="M8215,-3877.52C8205.27,-3819.81 8172.33,-3818.09 8139,-3769.98"/>
<path fill="none" stroke="black" d="M8139,-3767.98C8087.38,-3693.47 8055.26,-3688.55 8010,-3610.01 7891.18,-3403.8 7886.55,-3337.77 7821,-3108.98 7799.15,-3032.72 7758.82,-2837.87 7751,-2758.92 7747.78,-2726.4 7740.39,-2716.3 7751,-2685.38 7757.58,-2666.21 7772.42,-2668.55 7779,-2649.38 7803.16,-2578.96 7788.11,-2555.76 7779,-2481.86 7772.95,-2432.81 7670.85,-2099.78 7671,-2050.36"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_sign_gpg -->
<g id="edge424" 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="M8139,-3767.98C8093.86,-3698.75 8139,-3664.67 8139,-3582.02 8139,-3582.02 8139,-3582.02 8139,-3392.05 8139,-3249.25 8291,-3251.78 8291,-3108.98 8291,-3108.98 8291,-3108.98 8291,-3034.21 8291,-2979.55 8309.56,-2833.79 8348,-2794.92 8394.39,-2748.01 8438.45,-2797.44 8492,-2758.92 8570.39,-2702.53 8541.38,-2644.78 8609,-2575.84 8629.2,-2555.25 8643.91,-2561.47 8663,-2539.84 8672.21,-2529.42 8670.46,-2524.13 8677,-2511.85"/>
<path fill="none" stroke="black" d="M8677,-2509.85C8694.83,-2476.23 8727.48,-2447.74 8753.93,-2428.54"/>
<polygon fill="#c73a05" stroke="black" points="8755.6,-2431.65 8761.75,-2423.02 8751.56,-2425.93 8755.6,-2431.65"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_status_web_client -->
<g id="edge425" 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="M8903,-4254.8C8943.95,-4232.19 8947.92,-4217.09 8980,-4183.04 9068.52,-4089.05 9064.51,-4040.13 9165,-3959.07 9499.16,-3689.54 9627.25,-3666.55 10041,-3552.03 10155.13,-3520.44 10194.6,-3558.86 10305,-3516.03 10435.6,-3465.36 10490.19,-3450.64 10558,-3328.06 10629.09,-3199.56 10596.75,-3131.68 10535,-2998.44 10513.32,-2951.67 10503.17,-2941.2 10467,-2904.46 10429.63,-2866.5 10403.57,-2874.85 10371,-2832.69"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_tree -->
<g id="edge426" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_tree</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7558.52,-4354.67C7437.78,-4348.51 7055.75,-4327.44 6741,-4292.57 6123.05,-4224.13 5801.77,-4523.47 5357,-4089.05 5321.2,-4054.09 5347.16,-4027.27 5338,-3978.07"/>
<path fill="none" stroke="black" d="M5338,-3976.07C5312.49,-3870.91 5227.94,-3890.6 5172,-3797.97 5112.13,-3698.85 5129.72,-3659.25 5086,-3552.03 5054.14,-3473.9 5010.82,-3385.08 4986.51,-3336.54"/>
<polygon fill="#c73a05" stroke="black" points="4989.78,-3335.24 4982.16,-3327.87 4983.52,-3338.38 4989.78,-3335.24"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_upload_github -->
<g id="edge427" 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="M9055,-4254.8C9071.9,-4252.36 9055.51,-4229.5 9069,-4219.04 9121.19,-4178.57 9299.05,-4195.01 9364,-4183.04 9534.67,-4151.58 9582.38,-4154.77 9743,-4089.05 9848.11,-4046.05 9861.66,-4010.33 9963,-3959.07 10506.21,-3684.32 10665.6,-3666.72 11223,-3422.04 11394.44,-3346.79 11462.89,-3361.57 11600,-3234.08 11710.32,-3131.5 11937.38,-2749.8 11873,-2613.61"/>
<path fill="none" stroke="black" d="M11873,-2611.61C11853.71,-2577.27 11837.4,-2575.66 11821,-2539.84 11796.03,-2485.32 11798.61,-2322.23 11759,-2277.22"/>
<path fill="none" stroke="black" d="M11759,-2275.22C11742.88,-2259.02 11614.39,-2206.26 11543.9,-2178.06"/>
<polygon fill="#c73a05" stroke="black" points="11545.52,-2174.94 11534.93,-2174.48 11542.93,-2181.44 11545.52,-2174.94"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_upload_http_upload -->
<g id="edge428" 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="M7631.08,-4343.54C7647.69,-4337.83 7668.11,-4331.71 7687,-4328.57 7973.41,-4281.02 8713.61,-4371.53 8993,-4292.57 9023.61,-4283.92 9023.52,-4261.41 9055,-4256.8"/>
<path fill="none" stroke="black" d="M9055,-4254.8C9071.89,-4252.33 9056.03,-4230.14 9069,-4219.04 9125.02,-4171.06 9159.17,-4199.77 9231,-4183.04 9337.03,-4158.34 9362.33,-4146.82 9469,-4125.05 9565.22,-4105.42 9596.42,-4126.97 9687,-4089.05 9715.9,-4076.95 9889.98,-3941.93 9915,-3923.07 10074.81,-3802.59 10088.74,-3730.87 10270,-3646.01 10517.51,-3530.14 10611.21,-3600.84 10871,-3516.03 11071.7,-3450.5 11691,-3247.34 11691,-3036.21 11691,-3036.21 11691,-3036.21 11691,-2830.69 11691,-2765.23 11688.76,-2747.12 11667,-2685.38 11637.55,-2601.85 11604.69,-2592.92 11569,-2511.85"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_upload_rsync -->
<g id="edge429" 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="M7631.08,-4343.56C7647.69,-4337.84 7668.12,-4331.73 7687,-4328.57 7956.72,-4283.55 8653.92,-4367.16 8917,-4292.57 8947.61,-4283.9 8948.77,-4266.73 8979,-4256.8"/>
<path fill="none" stroke="black" d="M8979,-4254.8C9034.62,-4236.55 9016.38,-4187.64 9065,-4155.04"/>
<path fill="none" stroke="black" d="M9065,-4153.04C9171.62,-4081.56 9174.47,-4033.58 9279,-3959.07 9443.74,-3841.65 9497.61,-3831.57 9678,-3739.99 9699.98,-3728.83 10056.29,-3558.77 10080,-3552.03 10211.71,-3514.55 10257.56,-3563.52 10386,-3516.03 10456.29,-3490.04 10470.31,-3472.19 10526,-3422.04 10606.89,-3349.21 10644.4,-3335.85 10683,-3234.08 10726.26,-3120.02 10628.24,-2784.74 10699,-2685.38 10725.19,-2648.6 10753.57,-2669.48 10794,-2649.38 10820.78,-2636.07 10828.16,-2632.92 10851,-2613.61"/>
<path fill="none" stroke="black" d="M10851,-2611.61C10872.49,-2592.1 10845.73,-2509.21 10836,-2481.86 10829.64,-2463.97 10822.7,-2462.18 10813,-2445.86 10801.71,-2426.86 10798.83,-2422.11 10789,-2402.31"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_upload_s3 -->
<g id="edge430" 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="M9065,-4153.04C9114.5,-4119.74 9130.7,-4117.77 9183,-4089.05 9462.91,-3935.37 9523.34,-3878.64 9811,-3739.99 9909.73,-3692.4 9937.48,-3687.32 10039,-3646.01 10142.81,-3603.77 10165.65,-3584.21 10273,-3552.03 10349.9,-3528.97 10376.92,-3549.24 10450,-3516.03 10512.63,-3487.56 10521.85,-3468.05 10573,-3422.04 10615.77,-3383.57 10623.88,-3371.15 10662,-3328.06 10879.35,-3082.35 10949.68,-3031.65 11132,-2758.92 11142,-2743.96 11140.38,-2737.69 11151,-2723.15"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_models_aur_package -->
<g id="edge431" 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="M7558.4,-4356.23C7212.13,-4353.13 4634.92,-4329.11 3862,-4292.57 3189.07,-4260.77 2375.33,-4183.43 2148.35,-4161.14"/>
<polygon fill="#c73a05" stroke="black" points="2148.85,-4157.68 2138.56,-4160.18 2148.17,-4164.64 2148.85,-4157.68"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_models_build_status -->
<g id="edge432" 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="M8903,-4254.8C8994.21,-4191.88 8947.3,-4120.3 9013,-4031.07 9085.67,-3932.37 9292.55,-3780.76 9370,-3739.99 9655.93,-3589.47 10042.99,-3518.85 10188.49,-3496.37"/>
<polygon fill="#c73a05" stroke="black" points="10188.92,-3499.85 10198.28,-3494.88 10187.86,-3492.93 10188.92,-3499.85"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_models_counters -->
<g id="edge433" 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="M7631.13,-4343.81C7647.75,-4338.15 7668.17,-4332.01 7687,-4328.57 7820.15,-4304.31 8790.1,-4331.45 8903,-4256.8"/>
<path fill="none" stroke="black" d="M8903,-4254.8C8924.9,-4240.32 8969.16,-4055.41 8979,-4031.07 8992.27,-3998.26 8994.12,-3989 9013,-3959.07 9051.26,-3898.39 9060.55,-3880.68 9115,-3833.97 9408.13,-3582.57 9869.06,-3445.45 10017.35,-3406.08"/>
<polygon fill="#c73a05" stroke="black" points="10018.05,-3409.52 10026.84,-3403.59 10016.27,-3402.75 10018.05,-3409.52"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_models_package -->
<g id="edge434" 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="M6325,-4153.04C6248.53,-4138.92 6325,-4055.84 6325,-3978.07 6325,-3978.07 6325,-3978.07 6325,-3767.98 6325,-3680.57 6389,-3669.43 6389,-3582.02"/>
<path fill="none" stroke="black" d="M6389,-3580.02C6387.55,-3562.86 6387.32,-3543.84 6387.54,-3527.56"/>
<polygon fill="#c73a05" stroke="black" points="6391.04,-3527.85 6387.74,-3517.78 6384.04,-3527.71 6391.04,-3527.85"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_models_package_description -->
<g id="edge435" 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="M7559.32,-4350.34C7405.93,-4325.07 6813.44,-4227.97 6325,-4155.04"/>
<path fill="none" stroke="black" d="M6325,-4153.04C6034.76,-4099.44 5684.71,-4074.59 5526.27,-4065.45"/>
<polygon fill="#c73a05" stroke="black" points="5526.89,-4061.98 5516.71,-4064.9 5526.49,-4068.96 5526.89,-4061.98"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_models_package_source -->
<g id="edge436" 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="M7626.41,-4338.32C7633.58,-4334.57 7641.38,-4331.01 7649,-4328.57 7769.74,-4289.9 8207.93,-4383.39 8215,-4256.8"/>
<path fill="none" stroke="black" d="M8215,-4254.8C8220.1,-4163.52 6716.83,-3836.68 6634,-3797.97 6581.69,-3773.53 6527.52,-3734.97 6492.24,-3707.76"/>
<polygon fill="#c73a05" stroke="black" points="6494.49,-3705.07 6484.45,-3701.68 6490.18,-3710.59 6494.49,-3705.07"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_models_remote_source -->
<g id="edge437" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_models_remote_source</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5062,-4153.04C4965.78,-4045.29 5028.11,-3975.67 5000,-3833.97 4985.09,-3758.8 4967.23,-3671.1 4957.09,-3621.51"/>
<polygon fill="#c73a05" stroke="black" points="4960.54,-3620.92 4955.11,-3611.82 4953.69,-3622.32 4960.54,-3620.92"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_web_views_api_swagger -->
<g id="edge438" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_web_views_api_swagger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10289,-4153.04C10706.85,-4101.6 10817.88,-4109.63 11223,-3995.07 12220.52,-3712.98 12395.37,-3419.49 13395,-3144.98 13587.84,-3092.02 13652.69,-3144.65 13839,-3071.98 14075.25,-2979.84 14110.22,-2907.11 14316,-2758.92 14404.92,-2694.88 14639.31,-2539.03 14697,-2445.86 14967.75,-2008.61 14602.6,-1682.02 14969,-1321.13"/>
</g>
<!-- ahriman_models -->
<g id="node126" class="node">
<title>ahriman_models</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f95010" stroke="black" cx="5062" cy="-4772.52" rx="50.75" ry="18"/>
<text text-anchor="middle" x="5062" y="-4770.02" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.models</text>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_ahriman -->
<g id="edge439" 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="M15909,-1719.74C15905.01,-1672.12 15905.96,-1659.9 15909,-1612.2"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_application_application -->
<g id="edge440" 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="M342,-4153.04C286.7,-4098.37 342,-4055.84 342,-3978.07 342,-3978.07 342,-3978.07 342,-3486.03 342,-3387.64 494,-2712.01 494,-2613.61 494,-2613.61 494,-2613.61 494,-2509.85 494,-2440.98 497.62,-2422.55 518,-2356.76 535.1,-2301.58 597.06,-2169.6 630,-2122.13 797.06,-1881.43 896.19,-1869.46 1088,-1647.97 1115.07,-1616.71 1117.3,-1605.14 1145,-1574.43 1270.52,-1435.31 1293.92,-1387.05 1450,-1283.36 1653.1,-1148.42 1719.51,-1134.58 1953,-1064.28 2074.76,-1027.62 2222.95,-1007.36 2302.98,-998.34"/>
<polygon fill="#f95010" stroke="black" points="2303.22,-1001.83 2312.78,-997.26 2302.45,-994.88 2303.22,-1001.83"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_application_application_packages -->
<g id="edge441" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_application_application_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1026,-4522.55C991.38,-4512.67 1033.67,-4476.73 1026,-4441.56"/>
<path fill="none" stroke="black" d="M1026,-4439.56C1020.81,-4415.75 1017.12,-4410.38 1012,-4386.56 865.4,-3705.02 798,-3529.82 798,-2832.69 798,-2832.69 798,-2832.69 798,-2509.85 798,-2477.5 861.44,-2254.86 884,-2231.67 918.69,-2196.01 946.67,-2220.12 990,-2195.67 1055.8,-2158.54 1063.73,-2136.55 1120,-2086.13 1172.57,-2039.02 1184.63,-2026.04 1235,-1976.59 1430.37,-1784.79 1486.77,-1743.65 1668,-1538.43 1763.54,-1430.25 1759.04,-1376.85 1869,-1283.36 1894.16,-1261.97 1909.68,-1269.69 1934,-1247.36 1948.1,-1234.41 1941.34,-1221.02 1958,-1211.59"/>
<path fill="none" stroke="black" d="M1958,-1209.59C2095.65,-1125.31 2159.1,-1183.18 2314,-1137.82 2321.8,-1135.53 2329.87,-1132.87 2337.84,-1130.04"/>
<polygon fill="#f95010" stroke="black" points="2339,-1133.34 2347.19,-1126.62 2336.6,-1126.77 2339,-1133.34"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_application_application_repository -->
<g id="edge442" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_application_application_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M713,-4439.56C596.21,-4348.84 684,-3256.86 684,-3108.98 684,-3108.98 684,-3108.98 684,-2830.69 684,-2559.85 628.41,-2444.44 796,-2231.67 881.57,-2123.04 970.22,-2180.81 1071,-2086.13 1098.93,-2059.89 1092.65,-2042.98 1116,-2012.59 1211.4,-1888.43 1252.03,-1871.86 1359,-1757.51 1524.17,-1580.95 1563.81,-1535.28 1727,-1356.9 1756.84,-1324.27 1758.09,-1309.15 1794,-1283.36 1826.33,-1260.14 1842.03,-1268.1 1876,-1247.36 1897.51,-1234.22 1902.72,-1229.93 1920,-1211.59"/>
<path fill="none" stroke="black" d="M1920,-1209.59C1933.22,-1195.74 1928.53,-1185.1 1944,-1173.82 1958.01,-1163.6 2045.45,-1139.66 2112.8,-1122.23"/>
<polygon fill="#f95010" stroke="black" points="2113.57,-1125.65 2122.38,-1119.76 2111.82,-1118.87 2113.57,-1125.65"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_handler -->
<g id="edge443" 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="M9977,-4356.57C9885.27,-4029.71 9753.34,-3995.89 9580,-3703.99 9490.84,-3553.85 9474.53,-3512.76 9383,-3364.06 9322.05,-3265.04 9333.62,-3213.94 9240,-3144.98 9191.63,-3109.35 9167.82,-3124.28 9110,-3107.98 9052.71,-3091.84 9016.99,-3119.39 8981,-3071.98 8961.24,-3045.95 8969.38,-3028.99 8981,-2998.44 8988.61,-2978.43 9002.23,-2980.94 9013,-2962.44 9035.21,-2924.31 9037.79,-2911.99 9045,-2868.46 9057.43,-2793.41 9061.4,-2723.51 9030,-2481.86 9025.34,-2446.01 9017.03,-2438.24 9013,-2402.31"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge444" 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="M3002,-4688.53C2894.79,-4658.82 3145.97,-4677.15 3244,-4624.54 3328.57,-4579.15 3457.5,-4416.85 3565,-4292.57 3584.52,-4270.01 4216.99,-3475.74 4241,-3458.04 4275.68,-3432.48 4292.67,-3441.7 4331,-3422.04 4373.67,-3400.16 4380.78,-3388.57 4422,-3364.06 4450.38,-3347.18 4461.48,-3349.02 4487,-3328.06 4513.08,-3306.65 4506.01,-3285.54 4536,-3270.08 4707.64,-3181.58 4788.74,-3303.35 4969,-3234.08 5030.01,-3210.63 5025.83,-3170.51 5086,-3144.98 5184.92,-3103.02 5463.37,-3109.66 5564,-3071.98 5621.17,-3050.58 5627.93,-3030.3 5680,-2998.44 5706.85,-2982.01 5716.62,-2982.36 5741,-2962.44 5818.61,-2899.01 5818.7,-2863.29 5892,-2794.92 5910.98,-2777.21 5919.24,-2776.87 5938,-2758.92 5969.1,-2729.17 5964.49,-2708.17 6001,-2685.38 6055.14,-2651.6 6100.94,-2699.85 6140,-2649.38 6387.38,-2329.77 4611.34,-2014.88 4646,-1612.2"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_rebuild -->
<g id="edge445" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_handlers_rebuild</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2242,-4605.54C2198.17,-4598.56 2356,-4485.94 2356,-4441.56 2356,-4441.56 2356,-4441.56 2356,-3486.03 2356,-3227.43 2314.96,-3156.23 2374,-2904.46 2600.46,-1938.69 3076.08,-1858.71 3393,-918.74 3421.35,-834.66 3465.66,-791.52 3413,-720.1 3392.09,-691.75 3299.63,-669.84 3237.94,-658.03"/>
<polygon fill="#f95010" stroke="black" points="3238.76,-654.63 3228.29,-656.23 3237.47,-661.51 3238.76,-654.63"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_search -->
<g id="edge446" 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="M1026,-4439.56C1021.13,-4358.48 1026,-4338.03 1026,-4256.8 1026,-4256.8 1026,-4256.8 1026,-3877.52 1026,-3618.78 1100,-3558.81 1100,-3300.07 1100,-3300.07 1100,-3300.07 1100,-3107.98 1100,-3096.19 1961.3,-1658.3 1967,-1647.97 2081.51,-1440.7 2042.2,-1340.9 2210,-1173.82 2235.07,-1148.85 2255.75,-1162.6 2281,-1137.82 2293.85,-1125.21 2286.93,-1114.43 2300,-1102.05"/>
<path fill="none" stroke="black" d="M2300,-1100.05C2312.56,-1087.15 2305.43,-1076.11 2319,-1064.28 2353.97,-1033.78 2380.47,-1056.89 2417,-1028.28 2480.04,-978.91 2474.67,-946.03 2512,-875.19"/>
<path fill="none" stroke="black" d="M2512,-873.19C2549.95,-797.44 2617.88,-724.9 2660.59,-683.57"/>
<polygon fill="#f95010" stroke="black" points="2662.88,-686.23 2667.68,-676.78 2658.04,-681.17 2662.88,-686.23"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_service_updates -->
<g id="edge447" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_handlers_service_updates</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M114,-3674C72.07,-3602.78 114,-3570.69 114,-3488.03 114,-3488.03 114,-3488.03 114,-2509.85 114,-2250.72 314.17,-1614.19 449,-1392.9 561.01,-1209.06 960.34,-829.07 1146,-720.1 1193.65,-692.14 1213.63,-704.47 1265,-684.1 1270.22,-682.04 1275.57,-679.73 1280.9,-677.32"/>
<polygon fill="#f95010" stroke="black" points="1282.09,-680.63 1289.67,-673.23 1279.13,-674.29 1282.09,-680.63"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_setup -->
<g id="edge448" 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="M5013.49,-4766.72C4971.17,-4762.74 4908.08,-4757.29 4853,-4754.52 4025,-4712.9 3816.71,-4741.91 2988,-4718.52 2821.95,-4713.84 0,-4773.65 0,-4607.54 0,-4607.54 0,-4607.54 0,-2400.31 0,-2243.86 38,-2206.81 38,-2050.36 38,-2050.36 38,-2050.36 38,-1938.82 38,-1400.81 -73.74,-1140.98 304,-757.87"/>
<path fill="none" stroke="black" d="M304,-755.87C337.23,-722.36 358,-730.7 404,-720.1 517.17,-694.04 862.86,-664.18 1001.04,-652.93"/>
<polygon fill="#f95010" stroke="black" points="1000.99,-656.45 1010.68,-652.15 1000.43,-649.47 1000.99,-656.45"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_status -->
<g id="edge449" 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="M2242,-4605.54C2205.04,-4599.79 2275.61,-4478.71 2280,-4441.56"/>
<path fill="none" stroke="black" d="M2280,-4439.56C2291.16,-4282.47 2244.25,-4245.7 2228,-4089.05 2168.59,-3516.19 2093.41,-3366.88 2161,-2794.92 2191.21,-2539.28 2217.41,-2476.8 2296,-2231.67 2450.89,-1748.55 2464.15,-1608.97 2725,-1173.82 2735.71,-1155.95 2744.9,-1156.03 2755,-1137.82 2841.21,-982.35 2935.64,-926.71 2880,-757.87"/>
<path fill="none" stroke="black" d="M2880,-755.87C2869.57,-732.23 2854.22,-707.93 2840.54,-688.42"/>
<polygon fill="#f95010" stroke="black" points="2843.54,-686.59 2834.88,-680.49 2837.84,-690.66 2843.54,-686.59"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_status_update -->
<g id="edge450" 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="M190,-3767.98C149.77,-3561.17 266,-3510.76 266,-3300.07 266,-3300.07 266,-3300.07 266,-2611.61 266,-2370.68 346.59,-2308.74 499,-2122.13 765.59,-1795.71 863.42,-1741.57 1146,-1428.9 1174.51,-1397.35 1181.18,-1389.05 1209,-1356.9 1334.72,-1211.56 1365.29,-1174.49 1490,-1028.28 1542.14,-967.15 1663.68,-803.22 1730,-757.87"/>
<path fill="none" stroke="black" d="M1730,-755.87C1943.93,-622.23 2053.42,-763.03 2293,-684.1 2297.82,-682.52 2302.7,-680.55 2307.49,-678.37"/>
<polygon fill="#f95010" stroke="black" points="2309,-681.53 2316.44,-673.98 2305.92,-675.25 2309,-681.53"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_triggers -->
<g id="edge451" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_handlers_triggers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5013.48,-4766.93C4971.15,-4763.08 4908.06,-4757.71 4853,-4754.52 4442.11,-4730.72 3399.06,-4798.9 3002,-4690.53"/>
<path fill="none" stroke="black" d="M3002,-4688.53C2788.19,-4630.18 1230.05,-4592.21 1012,-4552.54 751.18,-4505.09 600.79,-4499.44 494,-4256.8"/>
<path fill="none" stroke="black" d="M494,-4254.8C449.38,-4187.44 400.93,-4210.33 342,-4155.04"/>
<path fill="none" stroke="black" d="M342,-4153.04C306.21,-4119.46 279.26,-4129.87 252,-4089.05 171.76,-3968.92 219.82,-3911.33 190,-3769.98"/>
<path fill="none" stroke="black" d="M190,-3767.98C176.47,-3716.71 142.22,-3720.9 114,-3676"/>
<path fill="none" stroke="black" d="M114,-3674C94.5,-3642.97 77.55,-3643.19 62,-3610.01 38.55,-3559.98 38,-3543.28 38,-3488.03 38,-3488.03 38,-3488.03 38,-3298.07 38,-3180.47 76,-3153.81 76,-3036.21 76,-3036.21 76,-3036.21 76,-1938.82 76,-1714.13 153.85,-1667.01 252,-1464.9 258.14,-1452.25 313.1,-1370.08 318,-1356.9 340.82,-1295.55 342,-1277.04 342,-1211.59 342,-1211.59 342,-1211.59 342,-990.51 342,-881.74 331,-823.16 418,-757.87"/>
<path fill="none" stroke="black" d="M418,-755.87C541.35,-660.85 963.5,-720.07 1115,-684.1 1129.21,-680.73 1144.17,-675.74 1157.87,-670.56"/>
<polygon fill="#f95010" stroke="black" points="1159.1,-673.83 1167.14,-666.93 1156.55,-667.31 1159.1,-673.83"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_users -->
<g id="edge452" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_handlers_users</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5113.07,-4771.4C5802.51,-4769.79 13256.45,-4751.59 14227,-4718.52 14562.12,-4707.11 15476.27,-4840.24 15733,-4624.54 15767.99,-4595.14 15766.74,-4569.2 15757,-4524.55"/>
<path fill="none" stroke="black" d="M15757,-4522.55C15745.09,-4443.11 15681,-4438.89 15681,-4358.57 15681,-4358.57 15681,-4358.57 15681,-3188.53 15681,-3074.35 15643,-3048.63 15643,-2934.45 15643,-2934.45 15643,-2934.45 15643,-2830.69 15643,-2635.18 15543,-2597.82 15543,-2402.31 15543,-2402.31 15543,-2402.31 15543,-2275.22 15543,-2193.77 15393,-2022.27 15393,-1940.82"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_lock -->
<g id="edge453" 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="M10083,-4605.54C10045.45,-4588.1 10110.33,-4561.5 10129,-4524.55"/>
<path fill="none" stroke="black" d="M10129,-4522.55C10161.86,-4457.5 10129,-4431.45 10129,-4358.57 10129,-4358.57 10129,-4358.57 10129,-3877.52 10129,-3715.44 9733.49,-3470.2 9611,-3364.06 9488.92,-3258.28 9458.26,-3230.14 9321,-3144.98 9289.75,-3125.6 9282.04,-3119.15 9247,-3107.98 9136.04,-3072.63 9030.54,-3147.11 8995,-3036.21"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core -->
<g id="edge454" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5027.64,-4759.05C4988.39,-4744.79 4924.12,-4721.45 4881.68,-4706.03"/>
<polygon fill="#f95010" stroke="black" points="4882.88,-4702.74 4872.29,-4702.62 4880.49,-4709.32 4882.88,-4702.74"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_alpm_pacman -->
<g id="edge455" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_alpm_pacman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M713,-4439.56C651.25,-4390.82 804.04,-3816.58 822,-3739.99 836.98,-3676.1 1165.54,-2678.05 1178,-2613.61"/>
<path fill="none" stroke="black" d="M1178,-2611.61C1183.92,-2550.72 1195.02,-2535.75 1224,-2481.86 1232.06,-2466.88 1242.77,-2451.68 1252.92,-2438.63"/>
<polygon fill="#f95010" stroke="black" points="1255.38,-2441.15 1258.87,-2431.15 1249.9,-2436.8 1255.38,-2441.15"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_alpm_remote_aur -->
<g id="edge456" 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="M2242,-4605.54C1996.14,-4557.82 1850.26,-4657.41 1698,-4458.56 1655.34,-4402.84 1772.43,-4160.17 1804,-4125.05 1846.52,-4077.76 1967.41,-4113.9 1932,-4061.06"/>
<path fill="none" stroke="black" d="M1932,-4059.06C1897.75,-4016.88 1866.16,-4042.27 1813,-4031.07 1727.62,-4013.08 1701.23,-4026.94 1620,-3995.07 1571.89,-3976.2 1524.24,-3940.84 1492.41,-3914.18"/>
<polygon fill="#f95010" stroke="black" points="1494.91,-3911.71 1485.02,-3907.9 1490.37,-3917.04 1494.91,-3911.71"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_alpm_remote_official -->
<g id="edge457" 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="M3002,-4688.53C2843.79,-4644.69 2420.13,-4681.07 2266,-4624.54 2253.73,-4620.04 2254.91,-4609.6 2242,-4607.54"/>
<path fill="none" stroke="black" d="M2242,-4605.54C1974.55,-4562.93 1286.43,-4598.84 1026,-4524.55"/>
<path fill="none" stroke="black" d="M1026,-4522.55C887.82,-4483.13 831.96,-4522.15 713,-4441.56"/>
<path fill="none" stroke="black" d="M713,-4439.56C595.83,-4360.18 570,-4296.57 570,-4155.04 570,-4155.04 570,-4155.04 570,-3580.02 570,-3544.54 1040.73,-2429.09 1064,-2402.31"/>
<path fill="none" stroke="black" d="M1064,-2400.31C1112.11,-2338.71 1199.55,-2305.03 1254.27,-2289.1"/>
<polygon fill="#f95010" stroke="black" points="1254.96,-2292.54 1263.64,-2286.47 1253.06,-2285.8 1254.96,-2292.54"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_alpm_remote_official_syncdb -->
<g id="edge458" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_alpm_remote_official_syncdb</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M494,-4254.8C459.44,-4175.94 522.98,-4142.15 494,-4061.06"/>
<path fill="none" stroke="black" d="M494,-4059.06C483.59,-4029.43 473.13,-4025.12 464,-3995.07 454.59,-3964.1 456.26,-3955.28 453,-3923.07 443.18,-3826.07 444.45,-3801.45 442,-3703.99 437.49,-3524.42 456,-3479.7 456,-3300.07 456,-3300.07 456,-3300.07 456,-3034.21 456,-2686.35 619.54,-2619.09 848,-2356.76 862.44,-2340.18 880.76,-2324.64 897.88,-2311.78"/>
<polygon fill="#f95010" stroke="black" points="899.49,-2314.94 905.47,-2306.2 895.34,-2309.3 899.49,-2314.94"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_alpm_remote_remote -->
<g id="edge459" 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="M494,-4059.06C455.59,-3935.3 456,-3899.57 456,-3769.98 456,-3769.98 456,-3769.98 456,-3674 456,-3504.41 532,-3469.66 532,-3300.07 532,-3300.07 532,-3300.07 532,-3188.53 532,-2973.78 893.2,-2527.09 1024,-2356.76 1035.9,-2341.27 1050.56,-2325.61 1063.94,-2312.34"/>
<polygon fill="#f95010" stroke="black" points="1066.28,-2314.95 1070.99,-2305.46 1061.39,-2309.94 1066.28,-2314.95"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_alpm_repo -->
<g id="edge460" 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="M5206,-4688.53C5441.11,-4599.53 7455,-4692.95 7455,-4441.56 7455,-4441.56 7455,-4441.56 7455,-4254.8 7455,-3939.08 7683,-3897.74 7683,-3582.02 7683,-3582.02 7683,-3582.02 7683,-3486.03 7683,-3401.97 7649.08,-3189.66 7669,-3107.98 7689.59,-3023.58 7771.06,-3020.49 7759,-2934.45"/>
<path fill="none" stroke="black" d="M7759,-2932.45C7718.92,-2796.51 7710.86,-2744.6 7765,-2613.61"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_auth_auth -->
<g id="edge461" 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="M14734,-3767.98C14733.95,-3727.1 14741.81,-3716.13 14734,-3676"/>
<path fill="none" stroke="black" d="M14734,-3674C14728.44,-3645.42 14723.72,-3638.88 14720,-3610.01 14713.06,-3556.2 14710.64,-3542.12 14715,-3488.03"/>
<path fill="none" stroke="black" d="M14715,-3486.03C14697.49,-3398.48 14639,-3389.36 14639,-3300.07 14639,-3300.07 14639,-3300.07 14639,-2830.69 14639,-2532.22 14671,-2458.37 14671,-2159.9 14671,-2159.9 14671,-2159.9 14671,-2048.36 14671,-1939.39 14628.69,-1913.36 14557,-1831.28"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_auth_mapping -->
<g id="edge462" 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="M14563,-3580.02C14534.79,-3502.33 14563,-3476.7 14563,-3394.05 14563,-3394.05 14563,-3394.05 14563,-3188.53 14563,-3061.83 14567.05,-3028.02 14539,-2904.46 14515.95,-2802.92 14498.98,-2780.22 14456,-2685.38 14413.76,-2592.2 14268.81,-2376.22 14243,-2277.22"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_auth_oauth -->
<g id="edge463" 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="M14449,-4059.06C14535.98,-3900.99 14792.78,-3940.56 14734,-3769.98"/>
<path fill="none" stroke="black" d="M14734,-3767.98C14718.23,-3656.81 14603.55,-3686.72 14563,-3582.02"/>
<path fill="none" stroke="black" d="M14563,-3580.02C14482.79,-3472.25 14449,-3434.41 14449,-3300.07 14449,-3300.07 14449,-3300.07 14449,-2932.45 14449,-2716.85 14111.27,-2255.53 14045,-2050.36"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_build_tools_sources -->
<g id="edge464" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_build_tools_sources</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2584,-4522.55C2574.16,-4486.95 2615.15,-4488.33 2637,-4458.56 2836.83,-4186.23 2822.34,-4063.66 3070,-3833.97 3151.04,-3758.82 3213.86,-3791.01 3282,-3703.99 3485.87,-3443.66 3302.24,-3157.13 3610,-3036.21"/>
<path fill="none" stroke="black" d="M3610,-3034.21C3627.8,-3024.68 3620.13,-3007.84 3638,-2998.44 3752.09,-2938.41 4105.01,-3026.31 4217,-2962.44 4230.06,-2954.99 4229.27,-2947.9 4236,-2934.45"/>
<path fill="none" stroke="black" d="M4236,-2932.45C4266.77,-2870.93 4214.34,-2842.85 4165,-2794.92 4138.48,-2769.16 4115.56,-2785.64 4090,-2758.92 4077.87,-2746.24 4024.68,-2630.85 4028,-2613.61"/>
<path fill="none" stroke="black" d="M4028,-2611.61C4031.47,-2592.79 4037.7,-2588.57 4052,-2575.84 4078.13,-2552.58 4092.56,-2558.74 4122,-2539.84 4171.32,-2508.19 4223.62,-2465.78 4258.06,-2436.46"/>
<polygon fill="#f95010" stroke="black" points="4259.95,-2439.45 4265.27,-2430.29 4255.39,-2434.13 4259.95,-2439.45"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge465" 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="M5206,-4688.53C5321.99,-4641.09 5372.02,-4648.18 5453,-4552.54 5551.57,-4436.13 5422.67,-4323.3 5534,-4219.04 5543.99,-4209.68 6497.97,-4093.25 6511,-4089.05 6653.47,-4043.2 6698.16,-4028.89 6804,-3923.07 6881.19,-3845.89 6880.15,-3807.43 6915,-3703.99 7050.14,-3302.86 7050.72,-3191.39 7199,-2794.92 7217.62,-2745.14 7220.21,-2731.29 7247,-2685.38 7257.08,-2668.11 7267.68,-2668.36 7274,-2649.38 7293.33,-2591.38 7279.77,-2572.36 7271,-2511.85"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_configuration_configuration -->
<g id="edge466" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_configuration_configuration</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9661,-4522.55C9646.78,-4517.65 9651.46,-4506.25 9642,-4494.56 9614.12,-4460.1 9611.24,-4444.97 9573,-4422.56 9475.16,-4365.22 9384.65,-4455.62 9326,-4358.57"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_database_migrations -->
<g id="edge467" 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="M10129,-4522.55C10135.6,-4510.3 10135.2,-4506.07 10143,-4494.56 10155,-4476.83 10161.53,-4475.19 10175,-4458.56 10200,-4427.68 10208.31,-4421.07 10228,-4386.56 10250.5,-4347.13 10252.19,-4335.13 10268,-4292.57 10339.3,-4100.72 10351.16,-4034.47 10310,-3833.97 10287.23,-3723.06 10161.06,-3466.58 10113,-3364.06 10066.41,-3264.68 10064.79,-3232.85 9999,-3144.98 9808.42,-2890.44 9623.94,-2934.42 9483,-2649.38 9451.4,-2585.48 9448.92,-2501.21 9451.14,-2449.44"/>
<polygon fill="#f95010" stroke="black" points="9454.63,-2449.64 9451.65,-2439.47 9447.64,-2449.28 9454.63,-2449.64"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_database_operations_auth_operations -->
<g id="edge468" 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="M13409,-4522.55C13372.4,-4354.71 13691.4,-4516.49 13759,-4358.57"/>
<path fill="none" stroke="black" d="M13759,-4356.57C13773.02,-4315.45 13686.24,-4222.91 13669,-4183.04 13633.86,-4101.76 13625.23,-4080.77 13603,-3995.07 13511.92,-3643.89 13465,-3553.33 13465,-3190.53 13465,-3190.53 13465,-3190.53 13465,-3034.21 13465,-2944.63 13444.58,-2920.76 13461,-2832.69"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_database_operations_build_operations -->
<g id="edge469" 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="M2280,-4439.56C2315.97,-4088.65 2281.32,-3998.42 2266,-3646.01 2259.31,-3492.03 2242,-3454.19 2242,-3300.07 2242,-3300.07 2242,-3300.07 2242,-3107.98 2242,-2987.66 2290.89,-2684.77 2342,-2575.84 2357.69,-2542.41 2406.9,-2546.81 2395,-2511.85"/>
<path fill="none" stroke="black" d="M2395,-2509.85C2388.35,-2491.9 2380.69,-2472.42 2373.7,-2455.03"/>
<polygon fill="#f95010" stroke="black" points="2377.01,-2453.88 2370.02,-2445.92 2370.52,-2456.5 2377.01,-2453.88"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_database_operations_logs_operations -->
<g id="edge470" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_database_operations_logs_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12945,-4522.55C12917.39,-4395.92 13137.11,-4106.57 13154,-3978.07"/>
<path fill="none" stroke="black" d="M13154,-3976.07C13151.18,-3878.63 13055.88,-3890.76 13026,-3797.97 12952.78,-3570.63 12992.7,-2959.23 13029,-2723.15"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_database_operations_package_operations -->
<g id="edge471" 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="M10083,-4605.54C10016.39,-4573.09 10053,-4515.65 10053,-4441.56 10053,-4441.56 10053,-4441.56 10053,-4254.8 10053,-4013 10069.68,-3886.09 9877,-3739.99 9838.02,-3710.44 9817.55,-3724.19 9773,-3703.99 9673.29,-3658.79 9559,-3691.49 9559,-3582.02 9559,-3582.02 9559,-3582.02 9559,-3486.03 9559,-3442.04 9311.33,-3294.62 9191.92,-3226.1"/>
<polygon fill="#f95010" stroke="black" points="9193.89,-3223.19 9183.47,-3221.26 9190.41,-3229.27 9193.89,-3223.19"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_database_operations_patch_operations -->
<g id="edge472" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_database_operations_patch_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2280,-4439.56C2300.4,-4346.02 2394,-4352.54 2394,-4256.8 2394,-4256.8 2394,-4256.8 2394,-4059.06 2394,-3844.37 2470,-3796.71 2470,-3582.02 2470,-3582.02 2470,-3582.02 2470,-3486.03 2470,-3328.67 2775.87,-3027.48 2874,-2904.46 3015.7,-2726.81 3203.4,-2532.26 3287.7,-2446.78"/>
<polygon fill="#f95010" stroke="black" points="3290.17,-2449.26 3294.71,-2439.69 3285.19,-2444.34 3290.17,-2449.26"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_aur_printer -->
<g id="edge473" 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="M3306,-4153.04C3306.76,-4136.67 3317.59,-4135.75 3330,-4125.05 3412.29,-4054.13 3455.21,-4066.57 3537,-3995.07 3568.36,-3967.65 3572.35,-3956.65 3597,-3923.07 3665.53,-3829.73 3687.21,-3808.05 3738,-3703.99 3788.8,-3599.93 3763.17,-3556.58 3824,-3458.04 3866.27,-3389.58 3897.36,-3388.91 3950,-3328.06 4071,-3188.19 4044.69,-3092.39 4204,-2998.44 4295.39,-2944.55 4349.81,-3018.34 4440,-2962.44 4533.97,-2904.2 4520.42,-2850.05 4583,-2758.92 4593.84,-2743.14 4592.2,-2735.3 4607,-2723.15"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_build_printer -->
<g id="edge474" 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="M2660,-4605.54C2627.19,-4566.94 2666.09,-4541.14 2686,-4494.56 2758.02,-4326 3022.34,-3927.48 3180,-3833.97 3231.2,-3803.61 3263.37,-3836.2 3309,-3797.97 3426.15,-3699.81 3458,-3640.88 3458,-3488.03 3458,-3488.03 3458,-3488.03 3458,-3298.07 3458,-3253.4 3685.87,-3018.07 3726,-2998.44 3830.85,-2947.17 4160.95,-3037.89 4250,-2962.44 4295.64,-2923.78 4319.53,-2746.6 4328.6,-2660.65"/>
<polygon fill="#f95010" stroke="black" points="4332.07,-2661.21 4329.61,-2650.9 4325.1,-2660.49 4332.07,-2661.21"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_configuration_printer -->
<g id="edge475" 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="M3002,-4688.53C2933.93,-4667.94 3125.38,-4468.11 3180,-4422.56 3210.88,-4396.8 3228.94,-4407.93 3263,-4386.56 3417.84,-4289.4 3429.22,-4228.85 3547,-4089.05 3608.63,-4015.9 3628.01,-4000.62 3684,-3923.07 3826.86,-3725.21 3792.67,-3619.12 3976,-3458.04 4115.69,-3335.31 4562.69,-3175.36 4736,-3107.98 4810.38,-3079.06 4999.63,-3013.49 5078,-2998.44 5134.66,-2987.57 5551.45,-2999.1 5596,-2962.44 5642.54,-2924.15 5672.17,-2746.79 5684.06,-2660.72"/>
<polygon fill="#f95010" stroke="black" points="5687.51,-2661.33 5685.38,-2650.95 5680.57,-2660.39 5687.51,-2661.33"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_package_printer -->
<g id="edge476" 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="M2660,-4605.54C2643.08,-4584.02 2803,-4438.84 2825,-4422.56 2855.36,-4400.08 2876.01,-4413.97 2902,-4386.56 3017.14,-4265.14 2924.76,-4164.3 3026,-4031.07 3054.21,-3993.94 3343.93,-3832.75 3375,-3797.97 3549.12,-3603.09 3435.14,-3439.64 3634,-3270.08 3724.09,-3193.26 4512.34,-2915.49 4621,-2868.46 4835.1,-2775.79 4888.08,-2751.17 5098,-2649.38 5102.74,-2647.08 5107.64,-2644.67 5112.55,-2642.22"/>
<polygon fill="#f95010" stroke="black" points="5113.86,-2645.47 5121.22,-2637.85 5110.72,-2639.22 5113.86,-2645.47"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_patch_printer -->
<g id="edge477" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_formatters_patch_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2850,-4605.54C2789.23,-4439.83 3040,-4433.31 3040,-4256.8 3040,-4256.8 3040,-4256.8 3040,-4153.04 3040,-4086.71 3079.87,-4078.73 3126,-4031.07 3181.39,-3973.84 3209.23,-3975.71 3269,-3923.07 3310.53,-3886.49 3313.26,-3869.14 3356,-3833.97 3378.56,-3815.41 3388.29,-3816.35 3411,-3797.97 3470.85,-3749.54 3534,-3752.99 3534,-3676 3534,-3676 3534,-3676 3534,-3580.02 3534,-3452.18 3637.55,-3458.24 3724,-3364.06 3883.36,-3190.46 3895.07,-3099.41 4108,-2998.44 4211.82,-2949.21 4262.72,-3016.7 4364,-2962.44 4417.35,-2933.86 4508.25,-2807.01 4545,-2758.92 4568.7,-2727.91 4561.13,-2707.92 4593,-2685.38 4648.27,-2646.29 4678.34,-2675 4741,-2649.38 4745.11,-2647.7 4749.28,-2645.77 4753.4,-2643.69"/>
<polygon fill="#f95010" stroke="black" points="4754.98,-2646.81 4762.14,-2639 4751.68,-2640.64 4754.98,-2646.81"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_printer -->
<g id="edge478" 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="M3002,-4688.53C2910.59,-4662.58 3120.86,-4666.74 3206,-4624.54 3217.71,-4618.74 3220.39,-4616.4 3230,-4607.54"/>
<path fill="none" stroke="black" d="M3230,-4605.54C3271.52,-4567.22 3258.98,-4540.41 3292,-4494.56 3362.97,-4396.02 3396.54,-4384.4 3476,-4292.57 3552.2,-4204.52 3569.65,-4181.08 3641,-4089.05 3697.58,-4016.07 3711.82,-3997.85 3766,-3923.07 3913.79,-3719.09 3896.02,-3618.74 4090,-3458.04 4096.8,-3452.41 4372.24,-3332.27 4380,-3328.06 4421.83,-3305.38 4425.57,-3287.1 4470,-3270.08 4564.16,-3234.01 4595.81,-3257.02 4694,-3234.08 4878.82,-3190.89 4919.38,-3159.69 5102,-3107.98 5226.75,-3072.66 5565.13,-3042.65 5667,-2962.44 5720.58,-2920.25 5747.91,-2730.56 5799,-2685.38 5839.76,-2649.34 5866.72,-2672.44 5916,-2649.38 5919.78,-2647.61 5923.61,-2645.62 5927.39,-2643.5"/>
<polygon fill="#f95010" stroke="black" points="5929.11,-2646.54 5935.93,-2638.43 5925.54,-2640.52 5929.11,-2646.54"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_status_printer -->
<g id="edge479" 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="M2926,-4605.54C2917.65,-4552.47 3040.64,-4454.28 3084,-4422.56 3116.78,-4398.57 3137.44,-4413.31 3168,-4386.56 3258.13,-4307.65 3312.38,-4274.66 3306,-4155.04"/>
<path fill="none" stroke="black" d="M3306,-4153.04C3301.08,-4098.7 3256.79,-4072.76 3292,-4031.07 3353.66,-3958.05 3421.56,-4043.42 3504,-3995.07 3539.44,-3974.28 3541.55,-3958.71 3562,-3923.07 3672.06,-3731.26 3610.05,-3637.7 3739,-3458.04 3777.29,-3404.7 3801.12,-3404.31 3853,-3364.06 4005.57,-3245.68 4042.04,-3213.13 4204,-3107.98 4383.26,-2991.6 4455.33,-3003.5 4621,-2868.46 4705.22,-2799.81 4688.57,-2739.11 4783,-2685.38 4857.32,-2643.09 4891.74,-2678.89 4972,-2649.38 4976.64,-2647.68 4981.34,-2645.65 4985.98,-2643.44"/>
<polygon fill="#f95010" stroke="black" points="4987.28,-2646.71 4994.61,-2639.06 4984.11,-2640.47 4987.28,-2646.71"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_tree_printer -->
<g id="edge480" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_formatters_tree_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3002,-4688.53C2954.82,-4674.01 2937.65,-4655.51 2926,-4607.54"/>
<path fill="none" stroke="black" d="M2926,-4605.54C2914.25,-4557.17 2922.6,-4540.8 2941,-4494.56 3034.77,-4258.88 3088.69,-4204.27 3274,-4031.07 3340.5,-3968.92 3375.83,-3978.52 3448,-3923.07 3512.35,-3873.63 3527.59,-3859.07 3581,-3797.97 3703.22,-3658.15 3689.6,-3586.21 3824,-3458.04 4009.67,-3280.98 4084.12,-3268.48 4309,-3144.98 4437.86,-3074.22 4776.96,-2931.02 4910,-2868.46 5113.47,-2772.78 5170.02,-2759.59 5366,-2649.38 5369.59,-2647.37 5373.26,-2645.21 5376.91,-2642.98"/>
<polygon fill="#f95010" stroke="black" points="5378.58,-2646.07 5385.22,-2637.81 5374.88,-2640.13 5378.58,-2646.07"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_update_printer -->
<g id="edge481" 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="M3002,-4688.53C2928.84,-4666.02 2889.06,-4673.37 2850,-4607.54"/>
<path fill="none" stroke="black" d="M2850,-4605.54C2831.26,-4573.95 3076.26,-4133.29 3178,-4031.07 3210.64,-3998.28 3316.83,-3947.7 3356,-3923.07 3442.21,-3868.85 3482.04,-3875.58 3548,-3797.97 3654.94,-3672.15 3592.81,-3585.34 3698,-3458.04 3872.19,-3247.24 3954.7,-3220.36 4204,-3107.98 4264.93,-3080.52 4287.06,-3094.46 4350,-3071.98 4708.5,-2943.97 5111.35,-2722.3 5251.08,-2642.93"/>
<polygon fill="#f95010" stroke="black" points="5252.4,-2646.2 5259.36,-2638.21 5248.94,-2640.12 5252.4,-2646.2"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_user_printer -->
<g id="edge482" 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="M3230,-4605.54C3259.1,-4583.92 3268.05,-4579.75 3292,-4552.54 3312.36,-4529.41 3310.9,-4518.73 3330,-4494.56 3406.61,-4397.62 3439.34,-4385.29 3521,-4292.57 3679.57,-4112.52 4021.49,-3611.4 4206,-3458.04 4297.19,-3382.25 4341.39,-3395.39 4439,-3328.06 4471.97,-3305.32 4471.13,-3285.73 4508,-3270.08 4649.5,-3209.99 4703.3,-3273.04 4852,-3234.08 4948.49,-3208.8 4963,-3175.42 5058,-3144.98 5132.46,-3121.13 5153.15,-3122.41 5230,-3107.98 5329.1,-3089.37 5357.37,-3100.81 5454,-3071.98 5568.3,-3037.89 5604.12,-3034.73 5699,-2962.44 5775.73,-2903.98 5768.42,-2862.75 5837,-2794.92 5892.18,-2740.34 5910.2,-2730.99 5973,-2685.38 5984.81,-2676.81 6012.31,-2658.86 6036.86,-2643.06"/>
<polygon fill="#f95010" stroke="black" points="6038.64,-2646.08 6045.16,-2637.73 6034.86,-2640.19 6038.64,-2646.08"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_validation_printer -->
<g id="edge483" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_formatters_validation_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3002,-4688.53C2970.96,-4679.4 3406.95,-4316.24 3429,-4292.57 3572.63,-4138.42 3604.3,-4095.07 3726,-3923.07 3796.21,-3823.84 3922.57,-3538.14 4014,-3458.04 4023.58,-3449.65 4420.11,-3274.62 4432,-3270.08 4487.75,-3248.8 4886.5,-3123.94 4944,-3107.98 5145.68,-3052.02 5196.74,-3039.35 5402,-2998.44 5501.32,-2978.65 5545.74,-3022.88 5627,-2962.44 5736.76,-2880.81 5677.77,-2793.93 5761,-2685.38 5771.17,-2672.12 5784.12,-2659.51 5796.75,-2648.68"/>
<polygon fill="#f95010" stroke="black" points="5798.8,-2651.53 5804.24,-2642.44 5794.32,-2646.15 5798.8,-2651.53"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_version_printer -->
<g id="edge484" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_formatters_version_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3002,-4688.53C2878.05,-4650.39 3028,-4511.9 3122,-4422.56 3153.83,-4392.31 3177.72,-4411.3 3214,-4386.56 3329.95,-4307.49 3559.13,-4035.6 3643,-3923.07 3681.6,-3871.27 3686.33,-3854.83 3717,-3797.97 3739.08,-3757.04 3744.08,-3746.48 3763,-3703.99 3786.97,-3650.17 3822.67,-3501.91 3862,-3458.04 3891.53,-3425.1 4172.59,-3288.09 4213,-3270.08 4537.19,-3125.56 4616.38,-3070.14 4964,-2998.44 5029.63,-2984.91 5520.05,-3011.22 5566,-2962.44 5643.76,-2879.9 5595.25,-2732.07 5563.35,-2658.19"/>
<polygon fill="#f95010" stroke="black" points="5566.63,-2656.96 5559.39,-2649.23 5560.23,-2659.79 5566.63,-2656.96"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_gitremote_remote_pull -->
<g id="edge485" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_gitremote_remote_pull</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3002,-4688.53C2851.47,-4646.82 2759,-4728.37 2660,-4607.54"/>
<path fill="none" stroke="black" d="M2660,-4605.54C2628.71,-4567.36 2598.12,-4571.85 2584,-4524.55"/>
<path fill="none" stroke="black" d="M2584,-4522.55C2571.06,-4479.2 2551.38,-4465.69 2565,-4422.56 2661.25,-4117.83 2750.46,-4058.36 2978,-3833.97 3030.84,-3781.87 3048.58,-3771 3116,-3739.99 3171.64,-3714.4 3208.14,-3749.6 3249,-3703.99 3285.61,-3663.13 3268,-3636.88 3268,-3582.02 3268,-3582.02 3268,-3582.02 3268,-3298.07 3268,-2987.49 4125.73,-2340.7 4329.8,-2191.21"/>
<polygon fill="#f95010" stroke="black" points="4331.79,-2194.09 4337.8,-2185.36 4327.66,-2188.44 4331.79,-2194.09"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_gitremote_remote_push -->
<g id="edge486" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_gitremote_remote_push</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2508,-4605.54C2424.33,-4541.41 2698,-3781.42 2698,-3676 2698,-3676 2698,-3676 2698,-3580.02 2698,-3341.74 2968.31,-2789.4 3074,-2575.84 3122.78,-2477.29 3124.02,-2445.48 3189,-2356.76 3235.26,-2293.61 3248,-2275.29 3313,-2231.67 3347.75,-2208.35 3362.42,-2214.09 3400,-2195.67 3549.48,-2122.4 3718.09,-2020.49 3798.46,-1970.66"/>
<polygon fill="#f95010" stroke="black" points="3799.89,-1973.89 3806.54,-1965.64 3796.19,-1967.95 3799.89,-1973.89"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_gitremote_remote_push_trigger -->
<g id="edge487" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_gitremote_remote_push_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3002,-4688.53C2798.84,-4632.23 2728.1,-4701.91 2532,-4624.54 2519.84,-4619.74 2518.64,-4615.14 2508,-4607.54"/>
<path fill="none" stroke="black" d="M2508,-4605.54C2467.28,-4576.46 2486.41,-4544.53 2489,-4494.56 2510.14,-4087.34 2584,-3989.78 2584,-3582.02 2584,-3582.02 2584,-3582.02 2584,-3392.05 2584,-3206.23 2643.68,-3165.53 2725,-2998.44 2813.28,-2817.05 3067.48,-2373.44 3211,-2231.67 3212.51,-2230.18 3724.01,-1903.78 3726,-1903.05 3872.84,-1849.07 4056.44,-1835.18 4162.16,-1831.91"/>
<polygon fill="#f95010" stroke="black" points="4161.99,-1835.42 4171.89,-1831.64 4161.8,-1828.42 4161.99,-1835.42"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_report_console -->
<g id="edge488" 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="M10083,-4605.54C10035.23,-4583.36 10143.83,-4579.63 10189,-4552.54 10512.82,-4358.32 10791.33,-4427.61 10882,-4061.06"/>
<path fill="none" stroke="black" d="M10882,-4059.06C10880.53,-4029.99 10873.89,-4023.58 10868,-3995.07 10838.78,-3853.59 10853.96,-3812.27 10806,-3676"/>
<path fill="none" stroke="black" d="M10806,-3674C10757.99,-3580.25 10615.44,-3358.37 10558,-3270.08 10478.07,-3147.22 10467.35,-3108.9 10371,-2998.44 10112.47,-2702.06 9750.31,-2794.2 9717,-2402.31"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_report_email -->
<g id="edge489" 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="M12527,-4439.56C12491.45,-4377.83 12479.83,-4194.73 12465,-4125.05 12457.11,-4087.98 12176.24,-2829.62 12161,-2794.92 12099.87,-2655.77 11898.44,-2317.5 11773,-2231.67 11715.7,-2192.47 11681.9,-2229 11621,-2195.67 11579.77,-2173.1 11587.73,-2141.71 11545,-2122.13 11383.94,-2048.32 11313.15,-2150.28 11148,-2086.13 11144.61,-2084.81 11141.25,-2083.17 11137.99,-2081.32"/>
<polygon fill="#f95010" stroke="black" points="11140.11,-2078.53 11129.8,-2076.09 11136.34,-2084.43 11140.11,-2078.53"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_report_html -->
<g id="edge490" 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="M10083,-4605.54C9958.34,-4550.2 9897.91,-4603.93 9787,-4524.55"/>
<path fill="none" stroke="black" d="M9787,-4522.55C9773.67,-4513.01 9775.52,-4505.13 9763,-4494.56 9691.72,-4434.37 9658.65,-4441.15 9583,-4386.56 9490.35,-4319.7 9485.28,-4278.96 9388,-4219.04 9096.57,-4039.52 8974.9,-4091.63 8677,-3923.07 8411.7,-3772.96 8319.42,-3750.79 8125,-3516.03 7950.9,-3305.79 7924.19,-3227.51 7859,-2962.44 7799.51,-2720.55 7892.02,-2651.08 7879,-2402.31"/>
<path fill="none" stroke="black" d="M7879,-2400.31C7873.81,-2291.77 7862.27,-2164.67 7855.74,-2097.51"/>
<polygon fill="#f95010" stroke="black" points="7859.22,-2097.2 7854.77,-2087.59 7852.26,-2097.88 7859.22,-2097.2"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge491" 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="M12489,-4522.55C12446.04,-4474.16 12458.13,-4447.72 12437,-4386.56 12338.79,-4102.25 12342.97,-4021.5 12237,-3739.99 12182.48,-3595.15 12157.24,-3563.74 12095,-3422.04 12049.92,-3319.42 11995,-3302.61 11995,-3190.53 11995,-3190.53 11995,-3190.53 11995,-3107.98 11995,-3002.25 11707.96,-2295.94 11624,-2231.67 11605.95,-2217.85 11301.68,-2182.34 11165.73,-2167.06"/>
<polygon fill="#f95010" stroke="black" points="11166.5,-2163.63 11156.18,-2165.99 11165.73,-2170.58 11166.5,-2163.63"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_report_report -->
<g id="edge492" 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="M12489,-4688.53C12489.17,-4687.48 12215.89,-4553.12 12215,-4552.54 12063.43,-4453.91 11991.61,-4449.65 11902,-4292.57 11764.47,-4051.5 11803,-3953.54 11803,-3676 11803,-3676 11803,-3676 11803,-3580.02 11803,-3488.52 11727.93,-3493.67 11671,-3422.04 11638.43,-3381.06 11629.39,-3371.38 11600,-3328.06 11546.58,-3249.31 11551.57,-3216.67 11489,-3144.98 11420.94,-3067.01 11393.58,-3056.66 11308,-2998.44 11218.53,-2937.57 10938.8,-2852.24 10884,-2758.92 10882.71,-2756.73 10883.09,-2578.38 10883,-2575.84 10881.55,-2534.01 10892.81,-2520.61 10877,-2481.86 10869.02,-2462.31 10857.24,-2463.74 10846,-2445.86 10834.76,-2427.98 10837.26,-2420.77 10827,-2402.31"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_report_report_trigger -->
<g id="edge493" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_report_report_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5085.68,-4756.2C5113.6,-4738.61 5161.8,-4709.73 5206,-4690.53"/>
<path fill="none" stroke="black" d="M5206,-4688.53C5357.69,-4622.66 4872,-4689.92 4872,-4524.55 4872,-4524.55 4872,-4524.55 4872,-4439.56 4872,-4296.19 4720,-4298.41 4720,-4155.04 4720,-4155.04 4720,-4155.04 4720,-3767.98 4720,-3647.73 4786.86,-3624.26 4883,-3552.03 5164.05,-3340.86 5288.01,-3379.76 5622,-3270.08 5678.96,-3251.37 5698.46,-3261.06 5752,-3234.08 5809.43,-3205.14 5811.8,-3179.59 5866,-3144.98 5979.63,-3072.42 6287.74,-2933.19 6406,-2868.46 6462.88,-2837.33 6472.79,-2821.34 6532,-2794.92 6579.75,-2773.62 6605.04,-2793.79 6644,-2758.92 6670.7,-2735.03 6656.27,-2714.6 6677,-2685.38 6690.46,-2666.41 6705.81,-2670.75 6715,-2649.38 6739.28,-2592.94 6704.9,-2573.17 6701,-2511.85"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_report_telegram -->
<g id="edge494" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_report_telegram</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12603,-4522.55C12587.47,-4451.34 12603,-4431.45 12603,-4358.57 12603,-4358.57 12603,-4358.57 12603,-4254.8 12603,-4168.7 12621.35,-4145.19 12603,-4061.06"/>
<path fill="none" stroke="black" d="M12603,-4059.06C12571.46,-3933.74 12513.69,-3921.28 12475,-3797.97 12420.62,-3624.68 12413,-3575.68 12413,-3394.05 12413,-3394.05 12413,-3394.05 12413,-3298.07 12413,-3081.14 12165.9,-2567.25 12025,-2402.31"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_repository_executor -->
<g id="edge495" 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="M5206,-4688.53C5362.83,-4626.73 5548,-4693.12 5548,-4524.55 5548,-4524.55 5548,-4524.55 5548,-4356.57 5548,-4169.54 7038.63,-4102.11 7192,-3995.07 7223.14,-3973.34 7224.78,-3958.67 7238,-3923.07 7437.11,-3386.95 7380.23,-3219.82 7421,-2649.38 7423.33,-2616.78 7422.18,-2608.51 7421,-2575.84 7418,-2492.95 7322.72,-1901.42 7367,-1831.28"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_repository_repository -->
<g id="edge496" 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="M9977,-4439.56C9968.64,-4404.54 9988.67,-4392.62 9977,-4358.57"/>
<path fill="none" stroke="black" d="M9977,-4356.57C9961.17,-4310.35 9387.81,-3770.93 9350,-3739.99 9292.29,-3692.77 9277.63,-3679.5 9211,-3646.01 9054.89,-3567.54 8944.26,-3656.23 8840,-3516.03 8781.06,-3436.76 8822.22,-3170.73 8820,-3071.98 8818.32,-2997.55 8817.55,-2978.84 8821,-2904.46 8830.47,-2700.04 8852.65,-2650.28 8862,-2445.86 8863.81,-2406.3 8875.32,-2394.05 8862,-2356.76 8845.75,-2311.27 8353.57,-1706.82 8311,-1683.97 8197.78,-1623.21 7802.28,-1613.79 7655.44,-1612.41"/>
<polygon fill="#f95010" stroke="black" points="7655.61,-1608.91 7645.58,-1612.33 7655.55,-1615.91 7655.61,-1608.91"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_repository_update_handler -->
<g id="edge497" 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="M9787,-4522.55C9773.75,-4512.9 9773.9,-4506.79 9763,-4494.56 9652.01,-4369.97 9634.18,-4328.21 9508,-4219.04 9471.49,-4187.45 8098.47,-3276.81 8076,-3234.08 8032.77,-3151.87 8060.7,-2933.98 8125,-2794.92 8133.99,-2775.49 8143.98,-2775.91 8157,-2758.92 8159.22,-2756.03 8227.96,-2652.87 8229,-2649.38 8238.37,-2618.07 8234.34,-2608.09 8229,-2575.84 8221.79,-2532.31 8220.82,-2519 8197,-2481.86 8184.44,-2462.28 8172.38,-2464.89 8159,-2445.86 8038.06,-2273.86 8100.15,-2176.95 7969,-2012.59 7884.51,-1906.71 7749.47,-1964.33 7724,-1831.28"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_sign_gpg -->
<g id="edge498" 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="M9977,-4522.55C9953.76,-4495.06 9985.27,-4476.59 9977,-4441.56"/>
<path fill="none" stroke="black" d="M9977,-4439.56C9976.55,-4437.64 9169.77,-3646.86 9168,-3646.01 9051.03,-3589.56 8990.03,-3675.72 8878,-3610.01 8833.3,-3583.79 8830.32,-3563.26 8809,-3516.03 8686.39,-3244.42 8654.09,-2551.93 8677,-2511.85"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_spawn -->
<g id="edge499" 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="M10083,-4605.54C10050.95,-4590.09 10117.15,-4576.99 10143,-4552.54 10262.41,-4439.62 10365,-4421.16 10365,-4256.8 10365,-4256.8 10365,-4256.8 10365,-3392.05 10365,-3192.93 10277.55,-3152.17 10151,-2998.44 10061.1,-2889.24 9712.19,-2623.75 9598.81,-2538.6"/>
<polygon fill="#f95010" stroke="black" points="9601.12,-2535.97 9591.03,-2532.77 9596.92,-2541.57 9601.12,-2535.97"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_status_client -->
<g id="edge500" 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="M10083,-4605.54C10029.6,-4579.79 10017.59,-4567.76 9977,-4524.55"/>
<path fill="none" stroke="black" d="M9977,-4522.55C9866.74,-4405.18 9815.39,-4401.74 9697,-4292.57 9620.86,-4222.36 9609.11,-4197.41 9535,-4125.05 9474.02,-4065.51 9453.48,-4056.11 9394,-3995.07 9364.33,-3964.62 9358.01,-3955.91 9331,-3923.07 9232.17,-3802.9 9252.6,-3722.31 9117,-3646.01 8992.27,-3575.82 8920.1,-3683.01 8797,-3610.01 8675.97,-3538.23 8689.2,-3464.03 8653,-3328.06 8627.74,-3233.21 8687.14,-3184.97 8625,-3108.98"/>
<path fill="none" stroke="black" d="M8625,-3107.98C8619.1,-3100.79 8616.64,-3091.7 8616.11,-3082.41"/>
<polygon fill="#f95010" stroke="black" points="8619.61,-3082.69 8616.31,-3072.63 8612.61,-3082.55 8619.61,-3082.69"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_status_watcher -->
<g id="edge501" 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="M12489,-4688.53C12508.62,-4587.5 12912.96,-4705.34 12945,-4607.54"/>
<path fill="none" stroke="black" d="M12945,-4605.54C12964.01,-4547.51 12803.35,-4442.56 12779,-4386.56 12774.53,-4376.27 12505.81,-2805.78 12503,-2794.92 12490.11,-2745.03 12482.14,-2733.98 12465,-2685.38 12442.88,-2622.68 12300.85,-2176.79 12263,-2122.13 12220.19,-2060.29 12197.77,-2052.48 12134,-2012.59 11997.77,-1927.38 11472.36,-1882.43 11472,-1721.74"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_status_web_client -->
<g id="edge502" 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="M10806,-3674C10735.33,-3443.18 10784.21,-3364.13 10683,-3144.98 10585.23,-2933.28 10550,-2872.6 10371,-2723.15"/>
<path fill="none" stroke="black" d="M10371,-2721.15C10318.91,-2677.85 10291.04,-2675.27 10263,-2613.61"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_tree -->
<g id="edge503" 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="M3002,-4688.53C2864.51,-4645.18 3183.05,-4669.59 3320,-4624.54 3419.72,-4591.73 3443.43,-4577.63 3534,-4524.55"/>
<path fill="none" stroke="black" d="M3534,-4522.55C3730.11,-4428.47 3801.29,-4434.64 3966,-4292.57 3966.75,-4291.93 4304.38,-3834.75 4305,-3833.97 4339.1,-3791.01 4345.09,-3777.62 4385,-3739.99 4573.64,-3562.12 4832.88,-3387.73 4929.58,-3324.74"/>
<polygon fill="#f95010" stroke="black" points="4931.21,-3327.86 4937.69,-3319.47 4927.4,-3321.98 4931.21,-3327.86"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_triggers_trigger -->
<g id="edge504" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_triggers_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3534,-4522.55C3614.62,-4468.62 3569.31,-4400.84 3634,-4328.57 3711.95,-4241.5 3770.02,-4265.33 3853,-4183.04 3913.11,-4123.43 4223.17,-3614.77 4280,-3552.03 4323.85,-3503.61 4334.77,-3487.64 4393,-3458.04 4451.43,-3428.35 4483.87,-3461.77 4536,-3422.04 4597.72,-3375 4556.4,-3311.54 4622,-3270.08 4716.54,-3210.32 5018.84,-3272.15 5124,-3234.08 5187.81,-3210.98 5185.97,-3172.5 5248,-3144.98 5319.48,-3113.28 5342.78,-3120.26 5420,-3107.98 5496.56,-3095.81 5700.26,-3111.43 5767,-3071.98 5801.24,-3051.74 5787.67,-3024.17 5818,-2998.44 5846.5,-2974.27 5866.62,-2987.88 5894,-2962.44 5956.71,-2904.18 5920.73,-2846.55 5989,-2794.92 6042.65,-2754.35 6072.68,-2781.61 6136,-2758.92 6207.02,-2733.47 6217.19,-2708.53 6289,-2685.38 6387.7,-2653.57 6493.01,-2715.73 6511,-2613.61"/>
<path fill="none" stroke="black" d="M6511,-2611.61C6519.1,-2573.06 6474.08,-2576.23 6459,-2539.84 6447.19,-2511.35 6445.77,-2476.63 6447.25,-2449.2"/>
<polygon fill="#f95010" stroke="black" points="6450.73,-2449.67 6447.94,-2439.44 6443.75,-2449.17 6450.73,-2449.67"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_triggers_trigger_loader -->
<g id="edge505" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_triggers_trigger_loader</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3002,-4688.53C2837.25,-4641.75 3217.79,-4673.19 3382,-4624.54 3459.11,-4601.7 3486.38,-4604.21 3548,-4552.54 3601.08,-4508.03 3587.21,-4473.64 3634,-4422.56 3749.48,-4296.49 3818.31,-4307.99 3935,-4183.04 4068.57,-4040 4275.23,-3571.07 4435,-3458.04 4484.99,-3422.68 4515.56,-3453.67 4568,-3422.04 4598.16,-3403.86 4595.17,-3386.87 4622,-3364.06 4679.39,-3315.29 4691.88,-3294.84 4763,-3270.08 4947.04,-3206 5011.08,-3281.89 5200,-3234.08 5295.52,-3209.9 5308.77,-3173.76 5403,-3144.98 5577.09,-3091.82 5643.51,-3154.03 5806,-3071.98 5848.53,-3050.51 5843.7,-3023.86 5884,-2998.44 5921.49,-2974.8 5946.93,-2995 5977,-2962.44 6029.72,-2905.37 5969.09,-2846.73 6027,-2794.92 6093.98,-2734.99 6144.28,-2796.33 6226,-2758.92 6273.28,-2737.28 6269.64,-2706.85 6317,-2685.38 6402.45,-2646.65 6455.19,-2712.06 6525,-2649.38 6582.63,-2597.64 6549.88,-2555.78 6573,-2481.86 6576.46,-2470.79 6580.38,-2458.93 6584.13,-2447.83"/>
<polygon fill="#f95010" stroke="black" points="6587.41,-2449.07 6587.32,-2438.48 6580.78,-2446.81 6587.41,-2449.07"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_upload_github -->
<g id="edge506" 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="M12603,-4605.54C12609.08,-4570.06 12610.67,-4559.72 12603,-4524.55"/>
<path fill="none" stroke="black" d="M12603,-4522.55C12592.48,-4474.32 12554.28,-4482.7 12527,-4441.56"/>
<path fill="none" stroke="black" d="M12527,-4439.56C12478.39,-4366.24 12451,-4344.77 12451,-4256.8 12451,-4256.8 12451,-4256.8 12451,-4153.04 12451,-4140.28 12109,-3312.83 12109,-3300.07 12109,-3300.07 12109,-3300.07 12109,-3034.21 12109,-2750.1 12004.63,-2689.81 11859,-2445.86 11835.61,-2406.68 11832.37,-2395.34 11808,-2356.76 11797.6,-2340.3 11793.27,-2337.32 11783,-2320.76 11771.35,-2301.99 11774.59,-2292.88 11759,-2277.22"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_upload_rsync -->
<g id="edge507" 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="M12489,-4688.53C12499.16,-4627.22 12423.32,-4646.63 12375,-4607.54"/>
<path fill="none" stroke="black" d="M12375,-4605.54C12337.11,-4574.88 12314.67,-4585.75 12279,-4552.54 11986.32,-4280.08 11991.49,-4142.78 11789,-3797.97 11705.89,-3656.46 11555.68,-3265.24 11444,-3144.98 11203.19,-2885.66 10701.14,-2934.2 10851,-2613.61"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_upload_s3 -->
<g id="edge508" 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="M12489,-4688.53C12499.16,-4627.22 12592.49,-4668.8 12603,-4607.54"/>
<path fill="none" stroke="black" d="M12603,-4605.54C12613.51,-4544.28 12532.34,-4569.1 12489,-4524.55"/>
<path fill="none" stroke="black" d="M12489,-4522.55C12348.4,-4378.03 12223,-4356.67 12223,-4155.04 12223,-4155.04 12223,-4155.04 12223,-3767.98 12223,-3587.67 11653,-3370.84 11653,-3190.53 11653,-3190.53 11653,-3190.53 11653,-3034.21 11653,-2801.65 11321.21,-2962.07 11208,-2758.92 11173.59,-2697.16 11254.41,-2590.66 11274,-2445.86 11279.56,-2404.75 11276.22,-2357.56 11272.13,-2323.57"/>
<polygon fill="#f95010" stroke="black" points="11275.65,-2323.56 11270.91,-2314.08 11268.71,-2324.44 11275.65,-2323.56"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_upload_upload -->
<g id="edge509" 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="M12375,-4605.54C12224.1,-4450.44 12230.16,-4376.4 12133,-4183.04 11975.19,-3868.95 12036.8,-3732.34 11817,-3458.04 11755.74,-3381.6 11698.77,-3405.67 11639,-3328.06 11574.92,-3244.86 11601.21,-3201.28 11553,-3107.98 11526.25,-3056.23 11523.5,-3038.29 11481,-2998.44 11441.74,-2961.63 11097.5,-2797.52 11060,-2758.92 11047.46,-2746.01 11034.48,-2739.93 11041,-2723.15"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_upload_upload_trigger -->
<g id="edge510" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_upload_upload_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5206,-4688.53C5232.79,-4677.13 5195.13,-4653.48 5192,-4624.54 5190.28,-4608.63 5191.49,-4604.53 5192,-4588.54 5195.74,-4471.26 5199.72,-4439.49 5238,-4328.57 5255.46,-4277.99 5251.89,-4258.53 5288,-4219.04 5344.95,-4156.75 5374.35,-4155.65 5453,-4125.05 6046.67,-3894.14 6536.19,-4272.77 6823,-3703.99 6965.68,-3421.03 6810.55,-3293.57 6926,-2998.44 6959.98,-2911.59 7132.26,-2738.73 7159,-2649.38 7168.37,-2618.07 7163.01,-2608.28 7159,-2575.84 7136.29,-2392.09 7056,-2184.81 7018.53,-2095.38"/>
<polygon fill="#f95010" stroke="black" points="7021.77,-2094.06 7014.66,-2086.21 7015.32,-2096.78 7021.77,-2094.06"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_util -->
<g id="edge511" 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="M5113.08,-4771.31C5767.08,-4768.54 12480.98,-4738.94 12489,-4690.53"/>
<path fill="none" stroke="black" d="M12489,-4688.53C12499.71,-4623.89 10195.42,-4636.51 10131,-4624.54 10108.75,-4620.4 10103.35,-4617.45 10083,-4607.54"/>
<path fill="none" stroke="black" d="M10083,-4605.54C9942.35,-4537.02 9886.34,-4592.21 9735,-4552.54 9700.99,-4543.62 9695.14,-4532.98 9661,-4524.55"/>
<path fill="none" stroke="black" d="M9661,-4522.55C9646.4,-4518.94 9655.05,-4502.03 9642,-4494.56 9463.79,-4392.42 7943.21,-4363.89 7646.92,-4359.28"/>
<polygon fill="#f95010" stroke="black" points="7647.28,-4355.79 7637.22,-4359.14 7647.17,-4362.79 7647.28,-4355.79"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge512" 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="M15757,-4522.55C15752.36,-4449.81 15757,-4431.45 15757,-4358.57 15757,-4358.57 15757,-4358.57 15757,-3976.07 15757,-3219.33 15989.04,-3024.7 15871,-2277.22"/>
<path fill="none" stroke="black" d="M15871,-2275.22C15847.96,-2172.27 15795,-2155.85 15795,-2050.36 15795,-2050.36 15795,-2050.36 15795,-1719.74 15795,-1425.97 15549.9,-1132.51 15455.48,-1030.36"/>
<polygon fill="#f95010" stroke="black" points="15458.29,-1028.24 15448.91,-1023.31 15453.17,-1033.01 15458.29,-1028.24"/>
</g>
<!-- ahriman_web_schemas_package_status_schema -->
<g id="node173" class="node">
<title>ahriman_web_schemas_package_status_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8b3f22" stroke="black" cx="11677" cy="-1101.05" rx="88.28" ry="36.54"/>
<text text-anchor="middle" x="11677" y="-1115.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="11677" y="-1104.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="11677" y="-1093.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">schemas.</text>
<text text-anchor="middle" x="11677" y="-1082.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">package_status_schema</text>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_schemas_package_status_schema -->
<g id="edge513" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_schemas_package_status_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12869,-4439.56C12847.22,-4391.39 12869,-3540.9 12869,-3488.03 12869,-3488.03 12869,-3488.03 12869,-3298.07 12869,-3178.15 12729.09,-2348.71 12703,-2231.67 12675.27,-2107.28 12631.14,-1765.27 12533,-1683.97 12463.78,-1626.64 12405.85,-1701.97 12334,-1647.97 12315.92,-1634.39 12171.35,-1296.57 12153,-1283.36 12058.69,-1215.45 11999.27,-1296.61 11894,-1247.36 11849.96,-1226.75 11852.82,-1201.73 11813,-1173.82 11792.05,-1159.13 11767.73,-1145.39 11745.5,-1133.93"/>
<polygon fill="#f95010" stroke="black" points="11747.3,-1130.92 11736.8,-1129.52 11744.13,-1137.17 11747.3,-1130.92"/>
</g>
<!-- ahriman_web_schemas_remote_schema -->
<g id="node176" class="node">
<title>ahriman_web_schemas_remote_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a15335" stroke="black" cx="12083" cy="-1320.13" rx="60.62" ry="36.54"/>
<text text-anchor="middle" x="12083" y="-1334.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="12083" y="-1323.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="12083" y="-1312.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">schemas.</text>
<text text-anchor="middle" x="12083" y="-1301.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">remote_schema</text>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_schemas_remote_schema -->
<g id="edge514" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_schemas_remote_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12869,-4439.56C12794.44,-4247.74 12831,-4183.87 12831,-3978.07 12831,-3978.07 12831,-3978.07 12831,-3298.07 12831,-3051.79 12755.47,-2999.55 12703,-2758.92 12648.62,-2509.55 12635.07,-2447.07 12591,-2195.67 12554.22,-1985.82 12618.13,-1910.33 12519,-1721.74"/>
</g>
<!-- ahriman_web_schemas_status_schema -->
<g id="node178" class="node">
<title>ahriman_web_schemas_status_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c14415" stroke="black" cx="11405" cy="-1210.59" rx="58.88" ry="36.54"/>
<text text-anchor="middle" x="11405" y="-1224.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="11405" y="-1213.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="11405" y="-1202.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">schemas.</text>
<text text-anchor="middle" x="11405" y="-1191.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status_schema</text>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_schemas_status_schema -->
<g id="edge515" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_schemas_status_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12603,-3877.52C12561.87,-3709.37 12603,-3661.14 12603,-3488.03 12603,-3488.03 12603,-3488.03 12603,-3392.05 12603,-3264.08 12669.59,-3234.44 12650,-3107.98 12632.4,-2994.41 12402.4,-2216.63 12337,-2122.13 12292.24,-2057.45 12261.56,-2058.92 12198,-2012.59 12033.93,-1892.99 11972.09,-1890.89 11819,-1757.51 11769.75,-1714.6 11762.78,-1698.19 11721,-1647.97 11616.42,-1522.28 11589.51,-1491.03 11496,-1356.9 11472.68,-1323.44 11448.25,-1284.17 11430.59,-1254.9"/>
<polygon fill="#f95010" stroke="black" points="11433.8,-1253.44 11425.65,-1246.67 11427.8,-1257.05 11433.8,-1253.44"/>
</g>
<!-- ahriman_web_views_api_docs -->
<g id="node181" class="node">
<title>ahriman_web_views_api_docs</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#914b30" stroke="black" cx="14989" cy="-874.19" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="14989" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="14989" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="14989" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="14989" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">api.</text>
<text text-anchor="middle" x="14989" y="-849.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">docs</text>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_api_docs -->
<g id="edge516" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_views_api_docs</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M15871,-2275.22C15830.62,-2031.98 15930.15,-1967.4 15909,-1721.74"/>
<path fill="none" stroke="black" d="M15909,-1719.74C15900.87,-1625.29 15757,-1415.93 15757,-1321.13 15757,-1321.13 15757,-1321.13 15757,-1100.05 15757,-869.27 15081.31,-935.29 15041,-918.74 15036.08,-916.72 15031.29,-914.06 15026.72,-911.05"/>
<polygon fill="#f95010" stroke="black" points="15029.06,-908.42 15018.92,-905.36 15024.93,-914.08 15029.06,-908.42"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_api_swagger -->
<g id="edge517" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_views_api_swagger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M14943,-3188.53C14963.68,-2949.62 14926.67,-2889.14 14922,-2649.38 14921.36,-2616.7 14919.68,-2608.44 14922,-2575.84 14942.27,-2291.45 15013,-2225.94 15013,-1940.82 15013,-1940.82 15013,-1940.82 15013,-1829.28 15013,-1602.59 14843.58,-1509.96 14969,-1321.13"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_base -->
<g id="edge518" 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="M13759,-4356.57C13779.73,-4317.37 13766.88,-4300.44 13759,-4256.8"/>
<path fill="none" stroke="black" d="M13759,-4254.8C13742.83,-4165.29 13707.64,-4150.84 13693,-4061.06"/>
<path fill="none" stroke="black" d="M13693,-4059.06C13661.73,-3978.25 13617,-3966.17 13617,-3879.52 13617,-3879.52 13617,-3879.52 13617,-3298.07 13617,-3193.27 13569.82,-3174.89 13550,-3071.98 13508.12,-2854.53 13526.92,-2796.11 13504,-2575.84 13484.74,-2390.75 13456,-2345.99 13456,-2159.9 13456,-2159.9 13456,-2159.9 13456,-1610.2 13456,-1522.07 13401.35,-1481.05 13456,-1411.9"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_index -->
<g id="edge519" 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="M14734,-3674C14722.83,-3440.17 14923.34,-3423.8 14943,-3190.53"/>
<path fill="none" stroke="black" d="M14943,-3188.53C14939.78,-3152.78 14933.67,-3144.57 14929,-3108.98 14902.32,-2905.69 14901.77,-2854.02 14889,-2649.38 14856.2,-2123.63 14810.68,-1990.41 14847,-1464.9 14849.23,-1432.67 14845.38,-1423.04 14857,-1392.9 14885.12,-1319.94 15059.12,-1180.13 15055,-1102.05"/>
<path fill="none" stroke="black" d="M15055,-1100.05C15048.6,-1061.18 15025.53,-1060.59 15003,-1028.28 14992.05,-1012.58 14990.33,-1007.94 14979,-992.51"/>
</g>
<!-- ahriman_web_views_service_add -->
<g id="node186" class="node">
<title>ahriman_web_views_service_add</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#733b26" stroke="black" cx="12489" cy="-874.19" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="12489" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="12489" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="12489" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="12489" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">service.</text>
<text text-anchor="middle" x="12489" y="-849.69" 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="edge520" 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="M12489,-4688.53C12508.56,-4587.8 13361.57,-4698.54 13409,-4607.54"/>
<path fill="none" stroke="black" d="M13409,-4605.54C13426.7,-4571.58 13331.04,-4494.91 13319,-4458.56 13105.14,-3812.9 13181,-3614.6 13181,-2934.45 13181,-2934.45 13181,-2934.45 13181,-2830.69 13181,-2672.65 13147.51,-2635.86 13112,-2481.86 13099.08,-2425.83 13098.58,-2410.83 13079,-2356.76 12879.19,-1804.9 12889.77,-1605.4 12492,-1173.82 12471.95,-1152.06 12456.92,-1158.74 12436,-1137.82 12422.63,-1124.45 12428.96,-1112.18 12413,-1102.05"/>
<path fill="none" stroke="black" d="M12413,-1100.05C12398.34,-1089.6 12407.17,-1076.55 12394,-1064.28 12365.18,-1037.41 12340.22,-1056.76 12313,-1028.28 12301.2,-1015.94 12295.39,-1009.19 12299,-992.51"/>
</g>
<!-- ahriman_web_views_service_pgp -->
<g id="node187" class="node">
<title>ahriman_web_views_service_pgp</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#733b26" stroke="black" cx="12641" cy="-874.19" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="12641" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="12641" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="12641" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="12641" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">service.</text>
<text text-anchor="middle" x="12641" y="-849.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">pgp</text>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_service_pgp -->
<g id="edge521" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_views_service_pgp</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13409,-4605.54C13429.73,-4576.11 13401.96,-4559.85 13409,-4524.55"/>
<path fill="none" stroke="black" d="M13409,-4522.55C13424.72,-4443.77 13333,-4438.89 13333,-4358.57 13333,-4358.57 13333,-4358.57 13333,-3580.02 13333,-3497.37 13352.5,-3474.37 13333,-3394.05"/>
<path fill="none" stroke="black" d="M13333,-3392.05C13209.41,-2945.64 13311.66,-2809.34 13213,-2356.76 13113.26,-1899.27 12955.74,-1819.14 12881,-1356.9 12875.78,-1324.63 12866.82,-1312.8 12881,-1283.36 12903.2,-1237.26 12939.49,-1251.89 12971,-1211.59"/>
<path fill="none" stroke="black" d="M12971,-1209.59C12981.2,-1193.38 12981.39,-1187.28 12995,-1173.82 13015.78,-1153.28 13036.11,-1163.52 13050,-1137.82 13065.54,-1109.07 13070.14,-1090.02 13050,-1064.28 13009.09,-1011.97 12964.45,-1057.85 12905,-1028.28 12858.44,-1005.12 12858.19,-982.15 12814,-954.74 12773.52,-929.63 12723.8,-907.58 12688.07,-893.11"/>
<polygon fill="#f95010" stroke="black" points="12689.44,-889.89 12678.86,-889.42 12686.85,-896.39 12689.44,-889.89"/>
</g>
<!-- ahriman_web_views_service_rebuild -->
<g id="node188" class="node">
<title>ahriman_web_views_service_rebuild</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#733b26" stroke="black" cx="13229" cy="-874.19" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="13229" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="13229" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="13229" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="13229" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">service.</text>
<text text-anchor="middle" x="13229" y="-849.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">rebuild</text>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_service_rebuild -->
<g id="edge522" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_views_service_rebuild</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13759,-4254.8C13731.15,-3937.5 14233.8,-4295.9 14449,-4061.06"/>
<path fill="none" stroke="black" d="M14449,-4059.06C14480.52,-4021.07 14399,-4020.03 14373,-3978.07"/>
<path fill="none" stroke="black" d="M14373,-3976.07C14344.24,-3929.65 14323.35,-3927.35 14297,-3879.52"/>
<path fill="none" stroke="black" d="M14297,-3877.52C14250.5,-3793.12 14217,-3772.36 14217,-3676 14217,-3676 14217,-3676 14217,-3107.98 14217,-3013.18 13906.64,-2413.71 13888,-2320.76 13841.6,-2089.42 13850.53,-2007.47 13950,-1793.51 13976.8,-1735.86 13996.05,-1727.91 14042,-1683.97 14061.02,-1665.79 14077.35,-1671.57 14089,-1647.97 14158.99,-1506.21 14056.39,-1048.38 13929,-954.74 13847.28,-894.66 13574.6,-931.63 13474,-918.74 13405.62,-909.98 13327.3,-895.22 13277.99,-885.34"/>
<polygon fill="#f95010" stroke="black" points="13279,-881.98 13268.5,-883.43 13277.61,-888.84 13279,-881.98"/>
</g>
<!-- ahriman_web_views_service_remove -->
<g id="node189" class="node">
<title>ahriman_web_views_service_remove</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#733b26" stroke="black" cx="12945" cy="-874.19" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="12945" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="12945" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="12945" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="12945" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">service.</text>
<text text-anchor="middle" x="12945" y="-849.69" 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="edge523" 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="M13333,-3392.05C13298.34,-3029.73 13303.95,-2937.84 13266,-2575.84 13255.75,-2478.04 13250.4,-2453.89 13235,-2356.76 13187.67,-2058.25 13127.92,-1986.1 13136,-1683.97 13140.11,-1530.15 13225.06,-1137.31 13173,-992.51"/>
</g>
<!-- ahriman_web_views_service_request -->
<g id="node190" class="node">
<title>ahriman_web_views_service_request</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#733b26" stroke="black" cx="13135" cy="-874.19" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="13135" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="13135" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="13135" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="13135" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">service.</text>
<text text-anchor="middle" x="13135" y="-849.69" 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="edge524" 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="M13693,-4059.06C13544.24,-3559.96 13959.84,-3420.95 13893,-2904.46 13882.02,-2819.62 13697,-2245.45 13697,-2159.9 13697,-2159.9 13697,-2159.9 13697,-2048.36 13697,-1843.37 13847,-1817.2 13847,-1612.2 13847,-1612.2 13847,-1612.2 13847,-1500.67 13847,-1444.12 13910.13,-1036.82 13875,-992.51"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_service_search -->
<g id="edge525" 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="M10882,-4059.06C10915.96,-3751.77 11002.51,-3659.36 10911,-3364.06 10797,-2996.2 10611.23,-2984.24 10421,-2649.38 10350.25,-2524.85 10347.16,-2486.27 10286,-2356.76 10198.32,-2171.11 10079.04,-2146.05 10085,-1940.82"/>
</g>
<!-- ahriman_web_views_service_update -->
<g id="node192" class="node">
<title>ahriman_web_views_service_update</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#733b26" stroke="black" cx="13521" cy="-874.19" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="13521" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="13521" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="13521" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="13521" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">service.</text>
<text text-anchor="middle" x="13521" y="-849.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">update</text>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_service_update -->
<g id="edge526" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_views_service_update</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M14373,-3976.07C14324.76,-3898.21 14373,-3861.58 14373,-3769.98 14373,-3769.98 14373,-3769.98 14373,-3298.07 14373,-2973.11 14419.93,-2858.16 14259,-2575.84 14189.56,-2454.03 14139.18,-2447.16 14032,-2356.76 14011.34,-2339.34 13995.2,-2344.88 13983,-2320.76 13958.4,-2272.18 13916.78,-2223.57 13993,-1903.05 14021.94,-1781.35 14077.66,-1768.27 14112,-1647.97 14147.77,-1522.68 14139.21,-1486.96 14147,-1356.9 14156.93,-1191.19 14171.23,-1120.07 14065,-992.51"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_status_logs -->
<g id="edge527" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_views_status_logs</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13154,-3976.07C13154.11,-3933.16 13164.2,-3921.2 13154,-3879.52"/>
<path fill="none" stroke="black" d="M13154,-3877.52C13093.75,-3631.2 13067,-3552.97 13067,-3108.98 13067,-3108.98 13067,-3108.98 13067,-2611.61 13067,-2553.94 13054.54,-2401.38 13018,-2356.76 12991.23,-2324.07 12962.68,-2347.55 12930,-2320.76 12878.4,-2278.47 12875.15,-2256.16 12847,-2195.67 12796.97,-2088.18 12783.23,-1764.27 12696,-1683.97 12639.5,-1631.96 12592.25,-1688.47 12527,-1647.97 12465.56,-1609.85 12371.57,-1448.21 12325,-1392.9 12282.93,-1342.93 12275.07,-1327.59 12227,-1283.36 12197.29,-1256.01 12118.63,-1190.83 12082,-1173.82 12016.29,-1143.3 11977.94,-1185.06 11923,-1137.82 11910.06,-1126.69 11921.93,-1113.2 11909,-1102.05"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_status_package -->
<g id="edge528" 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="M12945,-4605.54C12964.47,-4575.26 12952.14,-4559.83 12945,-4524.55"/>
<path fill="none" stroke="black" d="M12945,-4522.55C12935.21,-4474.17 12896.07,-4482.84 12869,-4441.56"/>
<path fill="none" stroke="black" d="M12869,-4439.56C12852.96,-4415.1 12842.88,-4412.81 12830,-4386.56 12803.59,-4332.72 12793,-4316.77 12793,-4256.8 12793,-4256.8 12793,-4256.8 12793,-3877.52 12793,-3534.28 12717,-3452.22 12717,-3108.98 12717,-3108.98 12717,-3108.98 12717,-3034.21 12717,-2631.72 12481,-2562.39 12481,-2159.9 12481,-2159.9 12481,-2159.9 12481,-2048.36 12481,-1970.71 12437.09,-1959.71 12384,-1903.05 12329.26,-1844.63 12311.19,-1832.03 12241,-1793.51 12116.56,-1725.23 12075.49,-1729.37 11941,-1683.97 11889.85,-1666.71 11869.25,-1678.9 11825,-1647.97 11725.01,-1578.1 11598,-1271.95 11492,-1211.59"/>
<path fill="none" stroke="black" d="M11492,-1209.59C11475.66,-1202.03 11487.65,-1184.28 11473,-1173.82 11390.23,-1114.7 11313.02,-1215.19 11247,-1137.82 11225.78,-1112.95 11229.87,-1092.11 11247,-1064.28 11303.62,-972.27 11359.63,-982.66 11464,-954.74 11743.5,-879.97 11834.72,-994.35 12114,-918.74 12128.14,-914.91 12142.65,-908.53 12155.59,-901.83"/>
<polygon fill="#f95010" stroke="black" points="12157.13,-904.98 12164.26,-897.14 12153.8,-898.82 12157.13,-904.98"/>
</g>
<!-- ahriman_web_views_status_packages -->
<g id="node196" class="node">
<title>ahriman_web_views_status_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#733b26" stroke="black" cx="12391" cy="-874.19" rx="41.94" ry="44.6"/>
<text text-anchor="middle" x="12391" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="12391" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="12391" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="12391" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status.</text>
<text text-anchor="middle" x="12391" y="-849.69" 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="edge529" 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="M13154,-3877.52C13143.39,-3704.67 13143,-3661.21 13143,-3488.03 13143,-3488.03 13143,-3488.03 13143,-3188.53 13143,-3029.48 13105,-2991.74 13105,-2832.69 13105,-2832.69 13105,-2832.69 13105,-2611.61 13105,-2495.55 13093.77,-2463.43 13048,-2356.76 13014.01,-2277.55 12980.48,-2271.77 12940,-2195.67 12824.62,-1978.79 12855.92,-1895.5 12731,-1683.97 12688.8,-1612.51 12656.46,-1609.75 12614,-1538.43 12542.24,-1417.91 12544.68,-1377.36 12492,-1247.36 12485.59,-1231.53 12492.65,-1220.35 12478,-1211.59"/>
<path fill="none" stroke="black" d="M12478,-1209.59C12438.58,-1183.62 12423.86,-1184.99 12378,-1173.82 12320.05,-1159.7 12154.59,-1179.58 12112,-1137.82 12053.66,-1080.6 12041.58,-1016.58 12095,-954.74 12130.97,-913.1 12289.9,-941.49 12340,-918.74 12344,-916.92 12347.93,-914.7 12351.72,-912.22"/>
<polygon fill="#f95010" stroke="black" points="12353.55,-915.22 12359.6,-906.52 12349.45,-909.54 12353.55,-915.22"/>
</g>
<!-- ahriman_web_views_status_status -->
<g id="node197" class="node">
<title>ahriman_web_views_status_status</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#733b26" stroke="black" cx="12067" cy="-874.19" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="12067" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="12067" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="12067" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="12067" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status.</text>
<text text-anchor="middle" x="12067" y="-849.69" 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="edge530" 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="M12603,-4059.06C12592.88,-3979.91 12624.24,-3956.44 12603,-3879.52"/>
<path fill="none" stroke="black" d="M12603,-3877.52C12565.58,-3747.18 12527,-3717.63 12527,-3582.02 12527,-3582.02 12527,-3582.02 12527,-3298.07 12527,-3050 12326.36,-2443.33 12197,-2231.67 12129.02,-2120.45 12114.43,-2078.55 12002,-2012.59 11969.71,-1993.65 11374.79,-1888.35 11344,-1867.05 11280.13,-1822.88 11204.24,-1632.78 11153,-1574.43 11103.59,-1518.17 11087.34,-1506.37 11025,-1464.9 10755.74,-1285.77 10594.99,-1374.87 10375,-1137.82 10327.47,-1086.6 10255.15,-1028.56 10315,-992.51"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_user_login -->
<g id="edge531" 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="M14715,-3486.03C14690.92,-3286.85 14753,-3236.85 14753,-3036.21 14753,-3036.21 14753,-3036.21 14753,-2830.69 14753,-2526.96 14671.88,-1767.23 14701,-1464.9 14715.6,-1313.32 14777.82,-1287.99 14803,-1137.82 14808.4,-1105.58 14817.18,-1093.73 14803,-1064.28 14780.8,-1018.18 14732.74,-1039.71 14713,-992.51"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge532" 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="M14297,-3877.52C14256.9,-3797.44 14297,-3765.57 14297,-3676 14297,-3676 14297,-3676 14297,-2932.45 14297,-2650.78 14210.05,-2575.02 14032,-2356.76 14014.92,-2335.83 13995.2,-2344.88 13983,-2320.76 13942.41,-2240.57 13949.41,-2119.78 14031,-1903.05 14031.64,-1901.36 14100.74,-1794.82 14102,-1793.51 14121.23,-1773.51 14133.4,-1777.15 14153,-1757.51 14195.04,-1715.39 14204.25,-1701.62 14230,-1647.97 14332.16,-1435.14 14344.78,-1371.55 14378,-1137.82 14382.6,-1105.46 14397.45,-1090.55 14378,-1064.28 14313.03,-976.5 14230.03,-1058.47 14143,-992.51"/>
</g>
<!-- ahriman_models_action -->
<g id="node127" class="node">
<title>ahriman_models_action</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#e75822" stroke="black" cx="14377" cy="-2158.9" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="14377" y="-2167.4" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="14377" y="-2156.4" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="14377" y="-2145.4" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">action</text>
</g>
<!-- ahriman_models_action&#45;&gt;ahriman_application_ahriman -->
<g id="edge533" 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="M14393.36,-2132.47C14435.96,-2067.98 14556.66,-1895.93 14695,-1793.51 14842.18,-1684.56 15324.73,-1575.84 15434,-1428.9 15481.65,-1364.81 15539.06,-798.74 15553,-720.1 15569.06,-629.5 15573.75,-606.97 15591,-516.58 15597.09,-484.66 15599.15,-476.78 15605,-444.81"/>
<path fill="none" stroke="black" d="M15605,-442.81C15608.2,-377.44 15629.92,-341 15581,-297.5 15188.13,51.76 13743.43,-204.04 13218,-187.97 8769.26,-51.83 3269.48,-31.99 2646.27,-30.15"/>
<polygon fill="#e75822" stroke="black" points="2646.45,-26.65 2636.44,-30.12 2646.43,-33.65 2646.45,-26.65"/>
</g>
<!-- ahriman_models_action&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge534" 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="M14329,-2048.36C14285.64,-1937.7 14343.26,-1864.58 14248,-1793.51 14205.33,-1761.68 12384.98,-1762.73 12332,-1757.51 12057.44,-1730.49 11992.11,-1699.06 11721,-1647.97 10405.87,-1400.17 10086.64,-1286.82 8767,-1064.28 7596.58,-866.9 6155.61,-691.41 5852.56,-655.17"/>
<polygon fill="#e75822" stroke="black" points="5853.28,-651.73 5842.94,-654.02 5852.45,-658.68 5853.28,-651.73"/>
</g>
<!-- ahriman_models_action&#45;&gt;ahriman_application_handlers_status_update -->
<g id="edge535" 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="M14364.87,-2130.99C14355.1,-2109.26 14341.06,-2077.89 14329,-2050.36"/>
<path fill="none" stroke="black" d="M14329,-2048.36C14316.18,-2019.11 14223.18,-1810.28 14196,-1793.51 14141.55,-1759.92 11956.85,-1761.61 11893,-1757.51 11417.3,-1726.98 3840.59,-847.83 3367,-793.64 2946.49,-745.53 2823.76,-814.21 2421,-684.1 2416.17,-682.54 2411.29,-680.6 2406.49,-678.43"/>
<polygon fill="#e75822" stroke="black" points="2408.06,-675.3 2397.54,-674.05 2404.98,-681.59 2408.06,-675.3"/>
</g>
<!-- ahriman_models_action&#45;&gt;ahriman_application_handlers_users -->
<g id="edge536" class="edge">
<title>ahriman_models_action&#45;&gt;ahriman_application_handlers_users</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M14412.27,-2146.56C14563.23,-2098.03 15155.59,-1907.61 15338.74,-1848.73"/>
<polygon fill="#e75822" stroke="black" points="15339.81,-1852.06 15348.26,-1845.67 15337.67,-1845.39 15339.81,-1852.06"/>
</g>
<!-- ahriman_models_aur_package&#45;&gt;ahriman_application_handlers_search -->
<g id="edge537" 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="M1710,-3976.07C1623.09,-3917.25 1705.84,-3844.54 1715,-3739.99 1742.63,-3424.68 1824,-3352.73 1824,-3036.21 1824,-3036.21 1824,-3036.21 1824,-2932.45 1824,-2770.58 1861.28,-2733.49 1898,-2575.84 1933.84,-2421.96 1946.35,-2384.35 1987,-2231.67 1999.99,-2182.89 1999.53,-2169.49 2017,-2122.13 2110.13,-1869.68 2157.2,-1816.35 2275,-1574.43 2298.74,-1525.68 2478.66,-1190.11 2493,-1137.82 2523.95,-1024.96 2460.79,-980.42 2512,-875.19"/>
</g>
<!-- ahriman_models_aur_package&#45;&gt;ahriman_core_alpm_remote_aur -->
<g id="edge538" 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="M2043.08,-4138.99C2007.18,-4125.1 1958.22,-4100.18 1932,-4061.06"/>
</g>
<!-- ahriman_models_aur_package&#45;&gt;ahriman_core_alpm_remote_official -->
<g id="edge539" 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="M1596,-3767.98C1502.74,-3519.52 1444,-3455.92 1444,-3190.53 1444,-3190.53 1444,-3190.53 1444,-3107.98 1444,-2850.04 1140,-2871.55 1140,-2613.61 1140,-2613.61 1140,-2613.61 1140,-2509.85 1140,-2424.89 1213.82,-2348.93 1262.1,-2308.33"/>
<polygon fill="#d13d05" stroke="black" points="1264.14,-2311.19 1269.63,-2302.13 1259.68,-2305.78 1264.14,-2311.19"/>
</g>
<!-- ahriman_models_aur_package&#45;&gt;ahriman_core_alpm_remote_official_syncdb -->
<g id="edge540" class="edge">
<title>ahriman_models_aur_package&#45;&gt;ahriman_core_alpm_remote_official_syncdb</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2079.9,-4124.98C2071.18,-4096.61 2053.53,-4053.8 2022,-4031.07 1907.91,-3948.81 1827.56,-4055.29 1710,-3978.07"/>
<path fill="none" stroke="black" d="M1710,-3976.07C1670.26,-3949.92 1653.66,-3953.39 1617,-3923.07 1518.36,-3841.47 1499.32,-3811.61 1430,-3703.99 1182.46,-3319.66 1182.37,-3187.76 1024,-2758.92 1006.05,-2710.3 997.59,-2699.4 984,-2649.38 971.02,-2601.63 972.09,-2588.67 964,-2539.84 957.1,-2498.18 953.12,-2487.98 950,-2445.86 947.19,-2407.99 947.23,-2365.2 947.95,-2332.2"/>
<polygon fill="#d13d05" stroke="black" points="951.44,-2332.56 948.19,-2322.47 944.45,-2332.38 951.44,-2332.56"/>
</g>
<!-- ahriman_models_aur_package&#45;&gt;ahriman_core_alpm_remote_remote -->
<g id="edge541" 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="M1710,-3976.07C1622.33,-3918.88 1640.17,-3864.88 1596,-3769.98"/>
<path fill="none" stroke="black" d="M1596,-3767.98C1580.25,-3735.2 1566.55,-3733.29 1545,-3703.99 1455.32,-3582.06 1430.46,-3552.67 1354,-3422.04 1319.76,-3363.54 1163.03,-3051.37 1088,-2868.46 1043.76,-2760.61 1026,-2730.18 1026,-2613.61 1026,-2613.61 1026,-2613.61 1026,-2509.85 1026,-2440.98 1025.27,-2421.04 1050,-2356.76 1055,-2343.77 1062.35,-2330.7 1069.96,-2319.02"/>
<polygon fill="#d13d05" stroke="black" points="1072.81,-2321.06 1075.52,-2310.81 1067.01,-2317.13 1072.81,-2321.06"/>
</g>
<!-- ahriman_models_aur_package&#45;&gt;ahriman_core_formatters_aur_printer -->
<g id="edge542" 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="M2132.88,-4141.09C2367.28,-4078.72 3420,-3782.22 3420,-3488.03 3420,-3488.03 3420,-3488.03 3420,-3392.05 3420,-3266.28 3459.8,-3223.57 3558,-3144.98 3647.4,-3073.44 3940.25,-3023.42 4052,-2998.44 4155.55,-2975.3 4190.17,-3003.51 4288,-2962.44 4451.42,-2893.84 4460.52,-2822.93 4607,-2723.15"/>
<path fill="none" stroke="black" d="M4607,-2721.15C4697.99,-2646.44 4753.67,-2695.49 4862,-2649.38 4865.84,-2647.75 4869.71,-2645.85 4873.52,-2643.79"/>
<polygon fill="#d13d05" stroke="black" points="4875.2,-2646.86 4882.1,-2638.82 4871.69,-2640.81 4875.2,-2646.86"/>
</g>
<!-- ahriman_models_aur_package&#45;&gt;ahriman_models_package_description -->
<g id="edge543" class="edge">
<title>ahriman_models_aur_package&#45;&gt;ahriman_models_package_description</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2138.01,-4151.64C2515.36,-4141.3 4872.17,-4076.66 5354.73,-4063.43"/>
<polygon fill="#d13d05" stroke="black" points="5354.71,-4066.93 5364.61,-4063.16 5354.52,-4059.93 5354.71,-4066.93"/>
</g>
<!-- ahriman_models_aur_package&#45;&gt;ahriman_web_views_service_search -->
<g id="edge544" 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="M2137.62,-4150.01C2699.77,-4116.21 7767.64,-3809.71 8426,-3703.99 8960.52,-3618.15 9147.23,-3701.32 9611,-3422.04 9830.95,-3289.59 9918.33,-3215.63 9961,-2962.44 9965.28,-2937.03 9973.7,-2926.89 9961,-2904.46 9945.68,-2877.4 9917.14,-2895.04 9901,-2868.46 9832.8,-2756.12 9887,-2408.64 9887,-2277.22 9887,-2277.22 9887,-2277.22 9887,-2048.36 9887,-1675.57 10020.9,-1576.57 9945,-1211.59"/>
</g>
<!-- ahriman_models_auth_settings -->
<g id="node129" class="node">
<title>ahriman_models_auth_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#db5e2f" stroke="black" cx="14324" cy="-2276.22" rx="53.07" ry="28.98"/>
<text text-anchor="middle" x="14324" y="-2284.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="14324" y="-2273.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="14324" y="-2262.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">auth_settings</text>
</g>
<!-- ahriman_models_auth_settings&#45;&gt;ahriman_core_auth_auth -->
<g id="edge545" 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="M14273,-2048.36C14241.21,-1948.15 14314.04,-1922.11 14367,-1831.28"/>
</g>
<!-- ahriman_models_auth_settings&#45;&gt;ahriman_core_auth_mapping -->
<g id="edge546" 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="M14313.37,-2247.57C14307.87,-2232.42 14301.39,-2213.21 14297,-2195.67 14281.09,-2132.17 14288.01,-2114.07 14273,-2050.36"/>
<path fill="none" stroke="black" d="M14273,-2048.36C14267.19,-2030.12 14262.32,-2026.34 14249,-2012.59 14243.82,-2007.24 14214.63,-1986.44 14189.12,-1968.6"/>
<polygon fill="#db5e2f" stroke="black" points="14191.39,-1965.91 14181.18,-1963.06 14187.38,-1971.66 14191.39,-1965.91"/>
</g>
<!-- ahriman_models_auth_settings&#45;&gt;ahriman_core_auth_oauth -->
<g id="edge547" 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="M14273,-2048.36C14261.91,-2013.54 14214.59,-1934.52 14196,-1903.05 14189.74,-1892.46 14182.63,-1881.23 14175.87,-1870.88"/>
<polygon fill="#db5e2f" stroke="black" points="14178.79,-1868.95 14170.36,-1862.53 14172.95,-1872.81 14178.79,-1868.95"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_application_ahriman -->
<g id="edge548" 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="M10295.66,-3483.24C10428.75,-3475.45 10809.93,-3452.04 11126,-3422.04 11292.5,-3406.24 13952.25,-3105.98 14116,-3071.98 14192.7,-3056.06 14717.67,-2896.02 14791,-2868.46 14865.02,-2840.64 14880.21,-2825.82 14953,-2794.92 14993.04,-2777.93 15003.86,-2775.68 15044,-2758.92 15099.78,-2735.63 15251.4,-2693.25 15293,-2649.38 15347.28,-2592.14 15795,-1400.01 15795,-1321.13 15795,-1321.13 15795,-1321.13 15795,-1209.59 15795,-1113.11 15789.74,-1088.84 15795,-992.51"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_application_handlers_status -->
<g id="edge549" 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="M10198.07,-3485.16C9905.54,-3479.87 8385.07,-3451.33 7919,-3422.04 6500.31,-3332.89 6147.04,-3281.03 4736,-3108.98 4397.61,-3067.72 4315.69,-3037.15 3977,-2998.44 3652.19,-2961.32 3527.73,-3045.67 3253,-2868.46 3142.46,-2797.16 3103.45,-2771.27 3054,-2649.38 2953.86,-2402.54 3034,-2316.74 3034,-2050.36 3034,-2050.36 3034,-2050.36 3034,-1610.2 3034,-1496.23 3065.08,-1470.52 3074,-1356.9 3092.86,-1116.49 3032.23,-1054.84 2946,-829.64 2926.73,-779.32 2926.76,-762.89 2894,-720.1 2882.51,-705.1 2867.42,-691.01 2853.2,-679.35"/>
<polygon fill="#e54205" stroke="black" points="2855.69,-676.86 2845.68,-673.37 2851.33,-682.34 2855.69,-676.86"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_application_lock -->
<g id="edge550" 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="M10228.8,-3459.89C10218.26,-3442.11 10207.2,-3417.63 10208,-3394.05"/>
<path fill="none" stroke="black" d="M10208,-3392.05C10208.24,-3385.08 9861.33,-3182.83 9551,-3107.98 9434.73,-3079.94 9114.39,-3137 9014,-3071.98 8998.89,-3062.2 9000.55,-3053.34 8995,-3036.21"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_core_database_operations_package_operations -->
<g id="edge551" 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="M10222.37,-3462.05C10200.25,-3441.61 10166.11,-3412.68 10132,-3394.05"/>
<path fill="none" stroke="black" d="M10132,-3392.05C10118.8,-3384.85 10125.66,-3372.17 10113,-3364.06 10075.91,-3340.31 9374.26,-3242.33 9331,-3234.08 9290.43,-3226.34 9245.49,-3216.75 9208.32,-3208.54"/>
<polygon fill="#e54205" stroke="black" points="9209.55,-3205.23 9199.03,-3206.48 9208.04,-3212.07 9209.55,-3205.23"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_core_formatters_package_printer -->
<g id="edge552" 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="M10198.09,-3485.15C10003.14,-3481.39 9262.73,-3464.93 8655,-3422.04 7942.1,-3371.74 6134.17,-3231.29 5472,-2962.44 5400.15,-2933.27 5377.56,-2925.47 5325,-2868.46 5299.92,-2841.26 5304.78,-2826.8 5286,-2794.92 5257.39,-2746.35 5221.77,-2692.41 5197.19,-2656.09"/>
<polygon fill="#e54205" stroke="black" points="5200.24,-2654.36 5191.73,-2648.05 5194.45,-2658.29 5200.24,-2654.36"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_core_formatters_status_printer -->
<g id="edge553" 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="M10198.29,-3485.41C10017.9,-3482.76 9370.88,-3470.24 8840,-3422.04 8792.98,-3417.77 5516.31,-2978.73 5472,-2962.44 5295.22,-2897.46 5135.38,-2730.61 5068.35,-2653.62"/>
<polygon fill="#e54205" stroke="black" points="5071.2,-2651.56 5062.01,-2646.28 5065.9,-2656.14 5071.2,-2651.56"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_core_status_client -->
<g id="edge554" 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="M10132,-3392.05C10118.87,-3384.73 10125.24,-3372.79 10113,-3364.06 10048.15,-3317.78 9844.33,-3289.28 9767,-3270.08 9521.6,-3209.12 9462.33,-3180.63 9212,-3144.98 9147.31,-3135.77 8665.88,-3159.96 8625,-3108.98"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_core_status_watcher -->
<g id="edge555" 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="M10897,-3392.05C11041.04,-3366.2 11080.04,-3370.81 11220,-3328.06 11482.13,-3248 11538.91,-3200.49 11781,-3071.98 11867.09,-3026.28 11902.5,-3031.79 11971,-2962.44 12114.71,-2816.95 12122.34,-2742.03 12153,-2539.84 12156.86,-2514.36 12156.79,-2507.35 12153,-2481.86 12136.64,-2371.69 12067.04,-2078.14 11977,-2012.59 11921.11,-1971.9 11735.14,-1993.08 11668,-1976.59 11520.23,-1940.29 11312.56,-1976.5 11358,-1831.28"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_core_status_web_client -->
<g id="edge556" 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="M10284.15,-3468.02C10366.07,-3427.72 10555,-3331.38 10555,-3300.07 10555,-3300.07 10555,-3300.07 10555,-3188.53 10555,-3010.49 10477.95,-2975.03 10371,-2832.69"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_models_counters -->
<g id="edge557" 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="M10209.9,-3467.94C10184.05,-3455.26 10148.82,-3437.82 10118,-3422.04 10114.26,-3420.13 10110.38,-3418.12 10106.5,-3416.1"/>
<polygon fill="#e54205" stroke="black" points="10108.14,-3413.01 10097.66,-3411.46 10104.89,-3419.21 10108.14,-3413.01"/>
</g>
<!-- ahriman_models_internal_status -->
<g id="node133" class="node">
<title>ahriman_models_internal_status</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#bf4c21" stroke="black" cx="10204" cy="-3299.07" rx="56.64" ry="28.98"/>
<text text-anchor="middle" x="10204" y="-3307.57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10204" y="-3296.57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="10204" y="-3285.57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">internal_status</text>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_models_internal_status -->
<g id="edge558" class="edge">
<title>ahriman_models_build_status&#45;&gt;ahriman_models_internal_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10208,-3392.05C10208.58,-3374.83 10207.96,-3355.79 10207.05,-3339.53"/>
<polygon fill="#e54205" stroke="black" points="10210.56,-3339.52 10206.45,-3329.75 10203.57,-3339.95 10210.56,-3339.52"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_web_schemas_package_status_schema -->
<g id="edge559" class="edge">
<title>ahriman_models_build_status&#45;&gt;ahriman_web_schemas_package_status_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10283.2,-3467.32C10291.78,-3463.63 10301.05,-3460.22 10310,-3458.04 10569.99,-3394.7 10646.16,-3460.28 10911,-3422.04 11482.75,-3339.5 11765.33,-3348.3 12087,-2868.46 12256.85,-2615.09 12396.13,-2532.04 12343,-2231.67 12282.74,-1891 12008.57,-1943.07 11828,-1647.97 11766.26,-1547.07 11808.05,-1497.07 11752,-1392.9 11732,-1355.73 11644.42,-1287.02 11630,-1247.36 11618.83,-1216.64 11620.66,-1205.14 11630,-1173.82 11632.88,-1164.17 11637.51,-1154.62 11642.77,-1145.78"/>
<polygon fill="#e54205" stroke="black" points="11645.68,-1147.73 11648.1,-1137.42 11639.78,-1143.97 11645.68,-1147.73"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_web_schemas_status_schema -->
<g id="edge560" class="edge">
<title>ahriman_models_build_status&#45;&gt;ahriman_web_schemas_status_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10283.23,-3467.45C10291.81,-3463.75 10301.07,-3460.31 10310,-3458.04 10504.02,-3408.7 10560.76,-3449.99 10759,-3422.04 10820.97,-3413.31 10835.67,-3406.49 10897,-3394.05"/>
<path fill="none" stroke="black" d="M10897,-3392.05C10974.49,-3376.33 10991.85,-3362.55 11063,-3328.06 11206.64,-3258.43 11233.79,-3224.85 11372,-3144.98 11515.11,-3062.29 11554.06,-3047.12 11696,-2962.44 11763.24,-2922.33 11786.86,-2920.9 11845,-2868.46 11968.97,-2756.63 11989.53,-2702.54 12027,-2539.84 12081.52,-2303.12 12082.76,-2150.81 11883,-2012.59 11782.28,-1942.9 11443.52,-2029.39 11333,-1976.59 11273.25,-1948.05 11267.32,-1923.07 11232,-1867.05 11157.29,-1748.58 11178.79,-1699.13 11115,-1574.43 11062.86,-1472.5 11008.93,-1466.85 10977,-1356.9 10967.88,-1325.51 10955.07,-1307.59 10977,-1283.36 11030.95,-1223.74 11260,-1270.5 11337,-1247.36 11342.37,-1245.74 11347.81,-1243.69 11353.16,-1241.4"/>
<polygon fill="#e54205" stroke="black" points="11354.29,-1244.73 11361.89,-1237.36 11351.35,-1238.38 11354.29,-1244.73"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_web_views_status_package -->
<g id="edge561" 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="M10292.97,-3476.95C10393.33,-3456.41 10638.77,-3402.35 10835,-3328.06 11142.76,-3211.55 11196.91,-3131.23 11498,-2998.44 11538.55,-2980.56 11556.54,-2990.31 11591,-2962.44 11614.96,-2943.07 11609.49,-2928.31 11629,-2904.46 11680.05,-2842.06 11855.93,-2723.78 11887,-2649.38 11958.53,-2478.07 11971.6,-2396.92 11887,-2231.67 11794.45,-2050.9 11682.48,-2063.96 11486,-2012.59 11406.08,-1991.7 11187.02,-2018.8 11116,-1976.59 11031.52,-1926.38 11063.44,-1861 10992,-1793.51 10751.53,-1566.36 10353,-1742.69 10353,-1411.9 10353,-1411.9 10353,-1411.9 10353,-1319.13 10353,-1221.33 10330.32,-1180.28 10389,-1102.05"/>
<path fill="none" stroke="black" d="M10389,-1100.05C10400.59,-1084.81 10396.58,-1074.13 10413,-1064.28 10480.99,-1023.48 10689.64,-1040.43 10768,-1028.28 10925.51,-1003.86 10960.78,-974.03 11119,-954.74 11338.63,-927.96 11899.89,-974.51 12114,-918.74 12128.18,-915.05 12142.7,-908.71 12155.63,-902"/>
<polygon fill="#e54205" stroke="black" points="12157.18,-905.15 12164.3,-897.3 12153.84,-898.99 12157.18,-905.15"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_web_views_status_status -->
<g id="edge562" class="edge">
<title>ahriman_models_build_status&#45;&gt;ahriman_web_views_status_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10208,-3392.05C10209.52,-3340.43 10267.1,-3363.14 10305,-3328.06 10343.81,-3292.13 10360.85,-3284.11 10378,-3234.08 10390.84,-3196.62 10383.45,-3184.2 10378,-3144.98 10333.58,-2825.11 10224.42,-2765.73 10180,-2445.86 10162.42,-2319.24 10211,-2287.74 10211,-2159.9 10211,-2159.9 10211,-2159.9 10211,-1829.28 10211,-1674.18 10126.58,-1292.56 10116,-1137.82 10113.77,-1105.21 10095.93,-1090.07 10116,-1064.28 10155.98,-1012.89 10198.14,-1053.89 10258,-1028.28 10285.5,-1016.51 10289.15,-1007.55 10315,-992.51"/>
<path fill="none" stroke="black" d="M10315,-990.51C10331.4,-980.63 10322.2,-963.93 10339,-954.74 10502.9,-865.07 11846.81,-988.79 12020,-918.74 12023.67,-917.26 12027.23,-915.34 12030.63,-913.15"/>
<polygon fill="#e54205" stroke="black" points="12032.64,-916.02 12038.58,-907.25 12028.46,-910.4 12032.64,-916.02"/>
</g>
<!-- ahriman_models_context_key -->
<g id="node131" class="node">
<title>ahriman_models_context_key</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#db5e2f" stroke="black" cx="4839" cy="-4855.51" rx="48.58" ry="28.98"/>
<text text-anchor="middle" x="4839" y="-4864.01" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4839" y="-4853.01" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="4839" y="-4842.01" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">context_key</text>
</g>
<!-- ahriman_models_context_key&#45;&gt;ahriman_core -->
<g id="edge563" class="edge">
<title>ahriman_models_context_key&#45;&gt;ahriman_core</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4839,-4771.52C4826.52,-4757.54 4827.04,-4736.17 4830.4,-4718.9"/>
<polygon fill="#db5e2f" stroke="black" points="4833.79,-4719.74 4832.7,-4709.2 4826.98,-4718.12 4833.79,-4719.74"/>
</g>
<!-- ahriman_models_context_key&#45;&gt;ahriman_core_gitremote_remote_push_trigger -->
<g id="edge564" class="edge">
<title>ahriman_models_context_key&#45;&gt;ahriman_core_gitremote_remote_push_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4847.47,-4826.83C4850.95,-4809.43 4851.64,-4787.68 4839,-4773.52"/>
<path fill="none" stroke="black" d="M4839,-4771.52C4804.75,-4733.15 3039.29,-4722.42 2988,-4718.52 2648.63,-4692.74 2453.41,-4879.54 2228,-4624.54 2189.74,-4581.26 2226.81,-4552.31 2228,-4494.56 2231.11,-4343.57 2242,-4306.07 2242,-4155.04 2242,-4155.04 2242,-4155.04 2242,-3877.52 2242,-3774.08 2236.12,-3745.04 2266,-3646.01 2453.93,-3023.22 2525.83,-2842.1 2959,-2356.76 3072.88,-2229.17 3123.96,-2220.3 3264,-2122.13 3412.42,-2018.08 3437.08,-1963.39 3608,-1903.05 3708.18,-1867.68 4012.34,-1845.27 4162.4,-1836.08"/>
<polygon fill="#db5e2f" stroke="black" points="4162.53,-1839.57 4172.3,-1835.48 4162.11,-1832.59 4162.53,-1839.57"/>
</g>
<!-- ahriman_models_context_key&#45;&gt;ahriman_core_repository_repository -->
<g id="edge565" class="edge">
<title>ahriman_models_context_key&#45;&gt;ahriman_core_repository_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4839,-4771.52C4817.05,-4746.88 4872.2,-4745.64 4891,-4718.52 5030.56,-4517.21 4951.54,-4393 5124,-4219.04 5141.07,-4201.81 5297.9,-4132.45 5321,-4125.05 5408.68,-4096.97 5436.3,-4113.72 5525,-4089.05 6010.53,-3954.01 6581,-4179.96 6581,-3676 6581,-3676 6581,-3676 6581,-3188.53 6581,-3123.08 6637.99,-3128.49 6671,-3071.98 6720.53,-2987.19 6730.58,-2963.04 6757,-2868.46 6783.48,-2773.69 6777.13,-2747.07 6789,-2649.38 6792.12,-2623.68 6859.37,-1738.62 6879,-1721.74"/>
</g>
<!-- ahriman_models_counters&#45;&gt;ahriman_models_internal_status -->
<g id="edge566" 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="M10093.46,-3373.22C10112.77,-3360.44 10138.65,-3343.31 10160.52,-3328.84"/>
<polygon fill="#a34a28" stroke="black" points="10162.26,-3331.89 10168.67,-3323.45 10158.39,-3326.05 10162.26,-3331.89"/>
</g>
<!-- ahriman_models_counters&#45;&gt;ahriman_web_views_status_status -->
<g id="edge567" 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="M10077.93,-3365.45C10083.37,-3354.01 10089.66,-3340.46 10095,-3328.06 10112.76,-3286.83 10120.33,-3277.43 10132,-3234.08 10146.61,-3179.77 10146.77,-3165.06 10151,-3108.98 10174.9,-2792.42 10047,-2719.77 10047,-2402.31 10047,-2402.31 10047,-2402.31 10047,-2157.9 10047,-2074.07 10087.33,-2059.61 10099,-1976.59 10103.55,-1944.23 10100.63,-1935.7 10099,-1903.05 10090.1,-1724.44 10059,-1681.5 10059,-1502.67 10059,-1502.67 10059,-1502.67 10059,-1409.9 10059,-1352.65 10057.14,-1336.14 10035,-1283.36 10027.46,-1265.39 10015.82,-1265.95 10010,-1247.36 9987.03,-1174.01 9983.56,-995.67 10027,-954.74 10107.6,-878.79 11917.27,-960.09 12020,-918.74 12023.67,-917.26 12027.23,-915.35 12030.64,-913.16"/>
<polygon fill="#a34a28" stroke="black" points="12032.64,-916.04 12038.58,-907.27 12028.47,-910.41 12032.64,-916.04"/>
</g>
<!-- ahriman_models_internal_status&#45;&gt;ahriman_core_status_client -->
<g id="edge568" 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="M10151.21,-3287.9C10018.38,-3262.43 9659.47,-3194.45 9359,-3144.98 9101.9,-3102.65 8792.87,-3059.31 8674.46,-3042.98"/>
<polygon fill="#bf4c21" stroke="black" points="8675.16,-3039.55 8664.77,-3041.65 8674.2,-3046.48 8675.16,-3039.55"/>
</g>
<!-- ahriman_models_internal_status&#45;&gt;ahriman_core_status_web_client -->
<g id="edge569" 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="M10213,-2932.45C10167.2,-2877.17 10127.97,-2677.35 10161,-2613.61"/>
</g>
<!-- ahriman_models_internal_status&#45;&gt;ahriman_web_views_status_status -->
<g id="edge570" 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="M10219.06,-3270.94C10246.66,-3217.52 10299.46,-3095.49 10265,-2998.44 10252.74,-2963.91 10239.11,-2960.17 10213,-2934.45"/>
<path fill="none" stroke="black" d="M10213,-2932.45C10205.02,-2918.14 10199.78,-2916.81 10189,-2904.46 10174.92,-2888.33 10165.78,-2887.99 10157,-2868.46 10136.9,-2823.74 10147.09,-2807.85 10144,-2758.92 10143,-2743.03 10135,-1628.13 10135,-1612.2 10135,-1612.2 10135,-1612.2 10135,-1409.9 10135,-1206.02 9935.18,-1100.23 10078,-954.74 10153.59,-877.73 11919.91,-959.06 12020,-918.74 12023.67,-917.26 12027.23,-915.35 12030.64,-913.16"/>
<polygon fill="#bf4c21" stroke="black" points="12032.64,-916.03 12038.58,-907.26 12028.47,-910.41 12032.64,-916.03"/>
</g>
<!-- ahriman_models_log_record_id -->
<g id="node134" class="node">
<title>ahriman_models_log_record_id</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#db5e2f" stroke="black" cx="12873" cy="-2722.15" rx="52.15" ry="28.98"/>
<text text-anchor="middle" x="12873" y="-2730.65" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="12873" y="-2719.65" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="12873" y="-2708.65" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">log_record_id</text>
</g>
<!-- ahriman_models_log_record_id&#45;&gt;ahriman_core_database_operations_logs_operations -->
<g id="edge571" class="edge">
<title>ahriman_models_log_record_id&#45;&gt;ahriman_core_database_operations_logs_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12918.28,-2707.27C12958.51,-2691.92 13013.33,-2662.65 13029,-2613.61"/>
<path fill="none" stroke="black" d="M13029,-2611.61C13047.11,-2554.95 13015.04,-2491.29 12986.27,-2449.22"/>
<polygon fill="#db5e2f" stroke="black" points="12989.31,-2447.46 12980.69,-2441.29 12983.58,-2451.48 12989.31,-2447.46"/>
</g>
<!-- ahriman_models_log_record_id&#45;&gt;ahriman_core_status_watcher -->
<g id="edge572" class="edge">
<title>ahriman_models_log_record_id&#45;&gt;ahriman_core_status_watcher</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12862.39,-2693.71C12853.96,-2671.96 12841.82,-2640.8 12831,-2613.61"/>
<path fill="none" stroke="black" d="M12831,-2611.61C12718.12,-2328 12701.34,-2237.54 12495,-2012.59 12436.5,-1948.81 12409.96,-1944.53 12334,-1903.05 12115.69,-1783.84 12050.26,-1775.57 11819,-1683.97 11775.86,-1666.89 11761.42,-1670.76 11721,-1647.97 11577.12,-1566.88 11537.4,-1540.69 11434,-1411.9"/>
</g>
<!-- ahriman_models_log_record_id&#45;&gt;ahriman_web_views_status_logs -->
<g id="edge573" class="edge">
<title>ahriman_models_log_record_id&#45;&gt;ahriman_web_views_status_logs</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12831,-2611.61C12802.06,-2511 12741.16,-1756.85 12666,-1683.97 12602.72,-1622.63 12545.04,-1695.78 12471,-1647.97 12388.79,-1594.88 12297.88,-1347.54 12224,-1283.36 12167.91,-1234.63 11973.47,-1192.34 11923,-1137.82 11911.4,-1125.29 11921.6,-1113.57 11909,-1102.05"/>
</g>
<!-- ahriman_models_migration&#45;&gt;ahriman_core_database_migrations -->
<g id="edge574" 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="M9379.25,-3006.13C9376,-2986.07 9373.26,-2958.49 9377,-2934.45"/>
</g>
<!-- ahriman_models_migration_result&#45;&gt;ahriman_core_database_migrations -->
<g id="edge575" 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="M9575.62,-4494.34C9588.83,-4389.85 9634.41,-4014.82 9649,-3703.99 9660.74,-3453.77 9756.19,-3320.03 9577,-3144.98 9556.99,-3125.43 9352.67,-3094.45 9336,-3071.98 9316.52,-3045.73 9326.81,-3029.81 9336,-2998.44 9345.49,-2966.03 9371.8,-2967.83 9377,-2934.45"/>
<path fill="none" stroke="black" d="M9377,-2932.45C9401.8,-2733.7 9288.76,-2665.38 9369,-2481.86 9371.72,-2475.65 9394.92,-2454.34 9416.54,-2435.34"/>
<polygon fill="#b05a3a" stroke="black" points="9418.65,-2438.14 9423.88,-2428.93 9414.04,-2432.87 9418.65,-2438.14"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_application_application_application -->
<g id="edge576" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_application_application_application</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6350.28,-3485.59C6045.04,-3481.99 4031.25,-3457.02 3764,-3422.04 3586.78,-3398.85 3541.81,-3386.77 3373,-3328.06 3258.17,-3288.13 2486.07,-2927.89 2380,-2868.46 2109.74,-2717.04 2072.4,-2629.41 1800,-2481.86 1764.29,-2462.52 1743.71,-2475.56 1716,-2445.86 1588.99,-2309.74 1578,-2236.53 1578,-2050.36 1578,-2050.36 1578,-2050.36 1578,-1938.82 1578,-1568.89 1608.03,-1393.05 1906,-1173.82 1987.32,-1113.99 2011.56,-1102.5 2105,-1064.28 2171.67,-1037.01 2252.18,-1016.32 2304.89,-1004.32"/>
<polygon fill="#952b03" stroke="black" points="2305.56,-1007.75 2314.55,-1002.15 2304.03,-1000.92 2305.56,-1007.75"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_application_application_application_packages -->
<g id="edge577" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_application_application_application_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6350.32,-3485.27C6145.24,-3481.11 5183.26,-3459.86 4888,-3422.04 4155.2,-3328.18 3973.98,-3272.78 3263,-3071.98 3168.24,-3045.22 3147.24,-3030.1 3054,-2998.44 3005.29,-2981.91 2991.7,-2981.7 2944,-2962.44 2855.16,-2926.58 2830.85,-2919.87 2750,-2868.46 2513.23,-2717.9 2388.21,-2705.15 2281,-2445.86 2265.87,-2409.27 2279.1,-2396.32 2281,-2356.76 2285.23,-2268.96 2300,-2247.8 2300,-2159.9 2300,-2159.9 2300,-2159.9 2300,-1938.82 2300,-1858 2309.11,-1838.19 2314,-1757.51 2321.34,-1636.3 2304.7,-1328.37 2338,-1211.59"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_application_application_application_repository -->
<g id="edge578" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_application_application_application_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6350.19,-3485.59C6112.79,-3482.75 4854.15,-3465.81 4471,-3422.04 4255.89,-3397.47 4205.43,-3369.92 3993,-3328.06 3781.43,-3286.37 3725.06,-3290.73 3517,-3234.08 3411.82,-3205.44 3146.77,-3129.23 3054,-3071.98 3014,-3047.3 3019.98,-3019.57 2978,-2998.44 2890.28,-2954.29 2855.06,-2987.09 2760,-2962.44 2685.97,-2943.25 2670.13,-2929.85 2598,-2904.46 2551.86,-2888.22 2535.07,-2895.03 2494,-2868.46 2277.39,-2728.3 2212.8,-2675.92 2096,-2445.86 2028.66,-2313.22 1869.03,-1269.73 1920,-1211.59"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge579" 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="M6350.43,-3483.77C6227.03,-3475.54 5832.23,-3441.42 5529,-3328.06 5476.01,-3308.25 5053.49,-3045.01 4795,-2868.46 4738.14,-2829.62 4608.89,-2711.07 4545,-2685.38 4488.84,-2662.8 4314.87,-2694.92 4275,-2649.38 4253.47,-2624.79 4259.11,-2604.41 4275,-2575.84 4289.75,-2549.33 4309.38,-2558.89 4333,-2539.84 4378.26,-2503.35 4393.4,-2495.3 4424,-2445.86 4513.25,-2301.7 4513.51,-2251.48 4551,-2086.13 4609.09,-1829.9 4457.63,-1685.82 4646,-1502.67"/>
<path fill="none" stroke="black" d="M4646,-1500.67C4979.37,-1072.07 5422.18,-1419.97 5757,-992.51"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_application_handlers_rebuild -->
<g id="edge580" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_application_handlers_rebuild</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5186,-3392.05C5109.98,-3370.69 5102.17,-3339.92 5034,-3300.07"/>
<path fill="none" stroke="black" d="M5034,-3298.07C5021.02,-3290.48 5027.62,-3278.25 5015,-3270.08 4938.1,-3220.25 4900.02,-3259.55 4812,-3234.08 4711.46,-3204.98 4693.66,-3176.97 4594,-3144.98 4526.91,-3123.45 4046.4,-3010.63 3977,-2998.44 3839.08,-2974.22 3800.92,-2991.77 3664,-2962.44 3529.03,-2933.54 3466.88,-2964.76 3368,-2868.46 3232.93,-2736.92 3358.21,-2628.5 3405,-2445.86 3466.07,-2207.5 3441.84,-2138.3 3514,-1903.05 3611.73,-1584.45 3804,-1544.84 3804,-1211.59 3804,-1211.59 3804,-1211.59 3804,-873.19 3804,-753.58 3392.55,-679.87 3238.4,-656.46"/>
<polygon fill="#952b03" stroke="black" points="3239.22,-653.04 3228.81,-655.02 3238.18,-659.97 3239.22,-653.04"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_application_handlers_service_updates -->
<g id="edge581" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_application_handlers_service_updates</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6350.28,-3485.54C6015.82,-3481.24 3623.99,-3449.6 3476,-3422.04 3111.1,-3354.09 2238.09,-2984.06 1943,-2758.92 1789.05,-2641.47 1758.24,-2599.2 1640,-2445.86 1383.92,-2113.76 1198,-2031.57 1198,-1612.2 1198,-1612.2 1198,-1612.2 1198,-1500.67 1198,-1218.1 928.61,-1111.2 1084,-875.19"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_application_handlers_status -->
<g id="edge582" 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="M6350.3,-3485.26C6129.86,-3480.66 5037.7,-3454.91 4902,-3394.05"/>
<path fill="none" stroke="black" d="M4902,-3392.05C4887.56,-3385.58 4893.35,-3372.55 4880,-3364.06 4713.68,-3258.27 3329.27,-3048.63 3152,-2962.44 3092.02,-2933.28 3081.35,-2916.42 3035,-2868.46 2488.91,-2303.4 2958,-1887.87 2958,-1102.05 2958,-1102.05 2958,-1102.05 2958,-990.51 2958,-881.46 2919.73,-859.43 2880,-757.87"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_build_tools_sources -->
<g id="edge583" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_build_tools_sources</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6339.23,-3485.41C6145.48,-3482.66 5448.09,-3469.51 5362,-3422.04 5229.01,-3348.72 5280.26,-3240.26 5162,-3144.98 5082.91,-3081.26 4833.62,-3008.31 4743,-2962.44 4619.41,-2899.89 4273.1,-2769.43 4204,-2649.38 4163.99,-2579.87 4222.13,-2489.94 4262.94,-2439.99"/>
<polygon fill="#952b03" stroke="black" points="6338.9,-3488.91 6348.95,-3485.55 6339,-3481.91 6338.9,-3488.91"/>
<polygon fill="#952b03" stroke="black" points="4265.39,-2442.52 4269.11,-2432.6 4260.01,-2438.04 4265.39,-2442.52"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge584" 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="M6733,-3034.21C6744.69,-3019.06 6744.57,-3013 6757,-2998.44 6905.07,-2825.04 6986.85,-2824.41 7133,-2649.38 7153.89,-2624.37 7289.91,-2434.88 7291,-2402.31"/>
<path fill="none" stroke="black" d="M7291,-2400.31C7288.02,-2249.64 7289.98,-2071.13 7291.22,-1987.91"/>
<polygon fill="#952b03" stroke="black" points="7294.71,-1988.14 7291.37,-1978.09 7287.71,-1988.03 7294.71,-1988.14"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_database_operations_build_operations -->
<g id="edge585" 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="M4902,-3392.05C4842.03,-3355.75 4862.71,-3305.12 4802,-3270.08 4684.39,-3202.2 3729.11,-3098.86 3596,-3071.98 3391.69,-3030.72 3339.87,-3021.58 3140,-2962.44 3019.77,-2926.87 2984.53,-2927.65 2874,-2868.46 2682.97,-2766.16 2658.65,-2704.13 2484,-2575.84 2444.74,-2547 2408.21,-2558.75 2395,-2511.85"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_database_operations_package_operations -->
<g id="edge586" 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="M6427.66,-3485.25C6681.66,-3479.82 8114.02,-3444.34 8533,-3328.06 8590.08,-3312.22 8596.55,-3288.03 8653,-3270.08 8786.31,-3227.69 8948.21,-3206.76 9044.69,-3197.32"/>
<polygon fill="#952b03" stroke="black" points="9045,-3200.81 9054.62,-3196.37 9044.33,-3193.84 9045,-3200.81"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_formatters_build_printer -->
<g id="edge587" 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="M6426.5,-3480.57C6473.16,-3471.46 6546.36,-3448.45 6543,-3394.05"/>
<path fill="none" stroke="black" d="M6543,-3392.05C6537.64,-3305.15 5847.43,-3344.86 5762,-3328.06 5626.15,-3301.35 5584.01,-3304.83 5465,-3234.08 5395.54,-3192.78 5398.3,-3156.93 5334,-3107.98 5091.88,-2923.67 4992.44,-2936.03 4745,-2758.92 4704.1,-2729.65 4704.88,-2705.97 4659,-2685.38 4551.36,-2637.09 4507.76,-2687.19 4396,-2649.38 4390.34,-2647.47 4384.61,-2645.03 4379.04,-2642.33"/>
<polygon fill="#952b03" stroke="black" points="4381.04,-2639.43 4370.55,-2637.95 4377.83,-2645.65 4381.04,-2639.43"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_formatters_package_printer -->
<g id="edge588" 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="M6543,-3392.05C6537.71,-3306.38 5848.89,-3345.4 5776,-3300.07"/>
<path fill="none" stroke="black" d="M5776,-3298.07C5697.11,-3249 5653.76,-3286.41 5577,-3234.08 5407.66,-3118.63 5403.95,-3042.67 5296,-2868.46 5265.94,-2819.95 5255.01,-2809.72 5229,-2758.92 5212.36,-2726.42 5196.49,-2688.32 5185.11,-2659.29"/>
<polygon fill="#952b03" stroke="black" points="5188.41,-2658.1 5181.53,-2650.04 5181.88,-2660.63 5188.41,-2658.1"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_formatters_tree_printer -->
<g id="edge589" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_formatters_tree_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5776,-3298.07C5718.02,-3253.04 5758.68,-3203.23 5714,-3144.98 5648.23,-3059.25 5606.33,-3063.42 5520,-2998.44 5498.69,-2982.41 5485.62,-2985.37 5472,-2962.44 5415.2,-2866.88 5413.33,-2731.31 5417.03,-2660.62"/>
<polygon fill="#952b03" stroke="black" points="5420.51,-2661.14 5417.61,-2650.95 5413.52,-2660.72 5420.51,-2661.14"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_formatters_update_printer -->
<g id="edge590" 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="M5776,-3298.07C5651.9,-3210.65 5613.33,-3191.7 5520,-3071.98 5497.38,-3042.97 5505.08,-3027.09 5482,-2998.44 5453.59,-2963.17 5346.1,-2908.54 5325,-2868.46 5290.39,-2802.72 5291.18,-2714.12 5295.89,-2660.58"/>
<polygon fill="#952b03" stroke="black" points="5299.35,-2661.18 5296.84,-2650.89 5292.38,-2660.5 5299.35,-2661.18"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_gitremote_remote_push -->
<g id="edge591" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_gitremote_remote_push</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6350.48,-3485.15C6167.41,-3480.78 5389.97,-3460.1 5289,-3422.04 5195.36,-3386.75 5025.32,-3185.9 4934,-3144.98 4852.38,-3108.41 4821.95,-3133.73 4736,-3108.98 4609.02,-3072.41 4588.81,-3027.91 4460,-2998.44 4346.65,-2972.51 4044.08,-3010.05 3938,-2962.44 3883.52,-2938 3866.02,-2923.12 3842,-2868.46 3708.47,-2564.63 3855.22,-2451.91 3818,-2122.13 3814.35,-2089.84 3800.3,-2082.65 3804,-2050.36"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_gitremote_remote_push_trigger -->
<g id="edge592" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_gitremote_remote_push_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5034,-3298.07C5021.23,-3290.13 5026.54,-3279.72 5015,-3270.08 4984.78,-3244.81 4968.1,-3253.81 4934,-3234.08 4875.88,-3200.45 4872.26,-3174.6 4812,-3144.98 4759.66,-3119.26 4365.36,-3008.95 4308,-2998.44 4109.77,-2962.12 4051.75,-3010.34 3856,-2962.44 3751.93,-2936.98 3700.62,-2952.37 3634,-2868.46 3572.55,-2791.07 3604.48,-2747.84 3596,-2649.38 3581.33,-2478.93 3656.98,-2016.55 3785,-1903.05 3839.47,-1854.76 4044.08,-1838.91 4162.27,-1833.75"/>
<polygon fill="#952b03" stroke="black" points="4162.08,-1837.26 4171.92,-1833.35 4161.78,-1830.27 4162.08,-1837.26"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_report_console -->
<g id="edge593" 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="M6427.29,-3484.54C6557.5,-3479.23 6995.17,-3459.57 7355,-3422.04 7649.26,-3391.36 7721.86,-3374.79 8014,-3328.06 8473.98,-3254.48 8583.71,-3202.31 9046,-3144.98 9101.83,-3138.06 9506.77,-3143.74 9551,-3108.98 9658.75,-3024.31 9720.49,-2648.01 9705,-2511.85"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_report_email -->
<g id="edge594" 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="M6427.53,-3485.65C6706.06,-3482.81 8415.05,-3463.85 8932,-3422.04 9121.14,-3406.75 9165.94,-3380.38 9355,-3364.06 9465.88,-3354.49 10257.81,-3380.46 10356,-3328.06 10401.49,-3303.79 10400.39,-3279.91 10424,-3234.08 10541.87,-3005.31 10451.58,-2888.97 10609,-2685.38 10626.87,-2662.27 10649.05,-2674.48 10664,-2649.38 10706.47,-2578.08 10651.84,-2348.1 10695,-2277.22"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_report_html -->
<g id="edge595" 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="M6543,-3392.05C6538.62,-3313.1 6642.06,-3370.14 6709,-3328.06 6909.88,-3201.79 6929.82,-3129.81 7098,-2962.44 7170.76,-2890.04 7181.59,-2864.57 7257,-2794.92 7332.58,-2725.12 7369.36,-2726.9 7437,-2649.38 7536.93,-2534.86 7528.03,-2482.11 7614,-2356.76 7683.14,-2255.95 7773.59,-2143.82 7820.22,-2087.27"/>
<polygon fill="#952b03" stroke="black" points="7822.68,-2089.79 7826.35,-2079.85 7817.29,-2085.33 7822.68,-2089.79"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_report_report -->
<g id="edge596" 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="M6427.56,-3486.27C6632.07,-3487.19 7610.52,-3487.83 8407,-3422.04 8600.5,-3406.06 8646.44,-3379.35 8840,-3364.06 8921.16,-3357.65 10232.32,-3364.75 10305,-3328.06 10418.41,-3270.81 10411.66,-3197.38 10432,-3071.98 10474.01,-2812.95 10318.64,-2726.72 10413,-2481.86 10430.15,-2437.36 10480.14,-2449.75 10485,-2402.31"/>
<path fill="none" stroke="black" d="M10485,-2400.31C10478.89,-2332.85 10469.37,-2255.02 10463.16,-2206.63"/>
<polygon fill="#952b03" stroke="black" points="10466.64,-2206.25 10461.89,-2196.78 10459.7,-2207.15 10466.64,-2206.25"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_report_report_trigger -->
<g id="edge597" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_report_report_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6467,-3107.98C6385.67,-2978.86 6503.25,-2905.89 6608,-2794.92 6631.74,-2769.77 6651.38,-2782.16 6677,-2758.92 6705.91,-2732.7 6702.33,-2717.16 6725,-2685.38 6736.77,-2668.88 6746.42,-2668.55 6753,-2649.38 6763.61,-2618.47 6763.94,-2606.64 6753,-2575.84 6740.74,-2541.31 6706.3,-2548.11 6701,-2511.85"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_report_telegram -->
<g id="edge598" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_report_telegram</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6427.69,-3485.83C6763.49,-3483.97 9179.16,-3469.03 9497,-3422.04 9542.66,-3415.29 9550.91,-3396.55 9597,-3394.05"/>
<path fill="none" stroke="black" d="M9597,-3392.05C9726.3,-3385.04 9757.85,-3373.47 9887,-3364.06 10049.21,-3352.24 10462.84,-3376.82 10618,-3328.06 10693.05,-3304.48 10703.49,-3279.11 10768,-3234.08 10821.02,-3197.07 10825.31,-3174.18 10883,-3144.98 10988.57,-3091.56 11035.36,-3129.04 11139,-3071.98 11257.99,-3006.47 11269.04,-2962.56 11367,-2868.46 11464.72,-2774.6 11519.76,-2771.24 11579,-2649.38 11681.67,-2438.2 11742.17,-2249.66 11545,-2122.13 11495.88,-2090.36 11329.12,-2066.44 11244.76,-2056.06"/>
<polygon fill="#952b03" stroke="black" points="11245.27,-2052.59 11234.92,-2054.86 11244.43,-2059.54 11245.27,-2052.59"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_repository_executor -->
<g id="edge599" 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="M6543,-3392.05C6540.37,-3347.31 6707.78,-3073.27 6733,-3036.21"/>
<path fill="none" stroke="black" d="M6733,-3034.21C6762.29,-2977.41 6762.38,-2959.42 6795,-2904.46 6805.07,-2887.49 6810.69,-2885.29 6821,-2868.46 6844.9,-2829.47 6880.46,-2715.36 6915,-2685.38 6951.94,-2653.32 6989.13,-2688.12 7019,-2649.38 7172.31,-2450.56 7043.11,-2336.48 7062,-2086.13 7064.14,-2057.82 7057.73,-1847.56 7081,-1831.28"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_repository_repository -->
<g id="edge600" 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="M6543,-3188.53C6534.88,-3152.07 6546.11,-3138.95 6567,-3107.98 6595.62,-3065.57 6639.15,-3084.16 6657,-3036.21"/>
<path fill="none" stroke="black" d="M6657,-3034.21C6674.08,-2979.09 6649.74,-2960.85 6662,-2904.46 6673.19,-2853.03 6686.41,-2843.36 6707,-2794.92 6734.65,-2729.89 6754.63,-2718.12 6771,-2649.38 6786.44,-2584.54 6803,-2117.01 6803,-2050.36 6803,-2050.36 6803,-2050.36 6803,-1938.82 6803,-1836.6 6800.41,-1787.11 6879,-1721.74"/>
<path fill="none" stroke="black" d="M6879,-1719.74C6978.94,-1633.79 7393.68,-1616.51 7544.69,-1613.06"/>
<polygon fill="#952b03" stroke="black" points="7544.51,-1616.57 7554.43,-1612.85 7544.36,-1609.57 7544.51,-1616.57"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_repository_update_handler -->
<g id="edge601" 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="M6543,-3392.05C6540.65,-3355.76 6571.99,-3357.01 6594,-3328.06 6703.53,-3184.02 6719.2,-3139.13 6833,-2998.44 6881.88,-2938.01 6899.08,-2927.18 6950,-2868.46 6955.19,-2862.47 7129.79,-2656.63 7133,-2649.38 7268.47,-2343.17 7012.13,-2152.06 7236,-1903.05 7280.39,-1853.67 7320.22,-1893.8 7381,-1867.05 7446.37,-1838.28 7513.67,-1790.38 7556.1,-1757.49"/>
<polygon fill="#952b03" stroke="black" points="7558.12,-1760.35 7563.84,-1751.44 7553.8,-1754.84 7558.12,-1760.35"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_status_client -->
<g id="edge602" 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="M6427.75,-3484.76C6545.08,-3480.51 6906.59,-3464.65 7203,-3422.04 7327.07,-3404.21 7355.8,-3387.15 7479,-3364.06 7827.88,-3298.67 7938.79,-3369.26 8267,-3234.08 8355.74,-3197.53 8354.29,-3145.61 8443,-3108.98"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_status_watcher -->
<g id="edge603" 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="M6427.67,-3485.92C6746.79,-3484.86 8949.48,-3475.65 9611,-3422.04 9792.68,-3407.32 9835.51,-3380.97 10017,-3364.06 10198.17,-3347.18 10659.08,-3374.55 10835,-3328.06 11007.78,-3282.4 11030.9,-3220.23 11193,-3144.98 11383.55,-3056.53 11447.2,-3067.7 11629,-2962.44 11757.82,-2887.86 11811.87,-2882.4 11895,-2758.92 12081.14,-2482.41 12104.65,-2187.66 11821,-2012.59 11732.99,-1958.27 11427.24,-2052.5 11357,-1976.59 11313.13,-1929.19 11358.59,-1895.86 11358,-1831.28"/>
<path fill="none" stroke="black" d="M11358,-1829.28C11310.66,-1671.97 11385.21,-1625.45 11420,-1464.9 11425.16,-1441.08 11449.39,-1430.78 11434,-1411.9"/>
<path fill="none" stroke="black" d="M11434,-1409.9C11321.12,-1295.31 11225.68,-1415.77 11076,-1356.9 11071.4,-1355.09 11066.81,-1352.81 11062.37,-1350.27"/>
<polygon fill="#952b03" stroke="black" points="11064.55,-1347.51 11054.21,-1345.22 11060.86,-1353.46 11064.55,-1347.51"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_status_web_client -->
<g id="edge604" 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="M6427.74,-3485.42C6613.03,-3482.32 7427.29,-3466.67 8093,-3422.04 8360.31,-3404.12 8425.57,-3380.01 8693,-3364.06 8780.48,-3358.84 10192.18,-3368.35 10270,-3328.06 10298.49,-3313.31 10293.59,-3295.63 10313,-3270.08 10325.26,-3253.94 10330.41,-3251.36 10341,-3234.08 10361.79,-3200.16 10408.35,-3110.81 10417,-3071.98 10428.78,-3019.13 10404.03,-2875.6 10371,-2832.69"/>
<path fill="none" stroke="black" d="M10371,-2830.69C10302.13,-2747.81 10305.89,-2712.47 10263,-2613.61"/>
<path fill="none" stroke="black" d="M10263,-2611.61C10244.03,-2569.9 10250.49,-2555.64 10237,-2511.85"/>
<path fill="none" stroke="black" d="M10237,-2509.85C10231.08,-2490.63 10229.43,-2468.56 10229.51,-2449.43"/>
<polygon fill="#952b03" stroke="black" points="10233,-2449.54 10229.72,-2439.47 10226.01,-2449.39 10233,-2449.54"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_tree -->
<g id="edge605" 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="M6350.38,-3485.76C6176.33,-3484.25 5463.96,-3474.9 5248,-3422.04 5218.63,-3414.86 5215.11,-3402.23 5186,-3394.05"/>
<path fill="none" stroke="black" d="M5186,-3392.05C5156.89,-3383.87 5152.09,-3375.24 5124,-3364.06 5078.55,-3345.98 5064.79,-3347.72 5020,-3328.06 5016.16,-3326.38 5012.22,-3324.51 5008.31,-3322.58"/>
<polygon fill="#952b03" stroke="black" points="5009.95,-3319.49 4999.46,-3318.03 5006.75,-3325.71 5009.95,-3319.49"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_triggers_trigger -->
<g id="edge606" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_triggers_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5776,-3298.07C5639.06,-3207.8 6192.75,-2903.14 6316,-2794.92 6404.93,-2716.84 6493.21,-2730.61 6511,-2613.61"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_triggers_trigger_loader -->
<g id="edge607" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_triggers_trigger_loader</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6543,-3392.05C6540.73,-3351.23 6555.74,-3338.91 6543,-3300.07"/>
<path fill="none" stroke="black" d="M6543,-3298.07C6504.16,-3179.62 6430.78,-3184.44 6377,-3071.98 6344.4,-3003.81 6337.93,-2979.35 6348,-2904.46 6354.73,-2854.43 6342.39,-2830.7 6378,-2794.92 6419.99,-2752.73 6459.86,-2795.27 6507,-2758.92 6536.98,-2735.8 6521.36,-2710.15 6550,-2685.38 6582.27,-2657.47 6615.15,-2684.76 6639,-2649.38 6657.27,-2622.28 6649.94,-2606.64 6639,-2575.84 6626.74,-2541.31 6591.37,-2548.24 6587,-2511.85"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_upload_github -->
<g id="edge608" 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="M6427.82,-3485.82C6757.11,-3483.9 9077.53,-3468.76 9383,-3422.04 9474.49,-3408.05 9491.63,-3378.78 9583,-3364.06 9795.3,-3329.87 10346.43,-3397.35 10550,-3328.06 10682.76,-3282.87 10691.35,-3224.3 10807,-3144.98 10811.01,-3142.23 11388.88,-2762.66 11392,-2758.92 11497.66,-2632.55 11496.01,-2567.01 11493,-2402.31"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_upload_rsync -->
<g id="edge609" 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="M6427.53,-3485.65C6706.06,-3482.81 8415.05,-3463.85 8932,-3422.04 9121.14,-3406.75 9165.95,-3380.43 9355,-3364.06 9464.22,-3354.6 10240.09,-3370.9 10341,-3328.06 10492.06,-3263.94 10518.56,-3210.22 10607,-3071.98 10634.77,-3028.58 10636.44,-3013.26 10645,-2962.44 10660.12,-2872.73 10629.82,-2849.65 10623,-2758.92 10620.55,-2726.33 10603.26,-2711.43 10623,-2685.38 10658.68,-2638.28 10705.83,-2687.49 10751,-2649.38 10835.91,-2577.74 10843.51,-2499.12 10789,-2402.31"/>
<path fill="none" stroke="black" d="M10789,-2400.31C10777.23,-2376.61 10770.34,-2347.88 10766.34,-2324.14"/>
<polygon fill="#952b03" stroke="black" points="10769.82,-2323.77 10764.83,-2314.43 10762.9,-2324.85 10769.82,-2323.77"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_upload_s3 -->
<g id="edge610" 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="M6427.66,-3486.12C6751.91,-3486.74 9013.51,-3488.6 9307,-3422.04 9336.49,-3415.36 9338.82,-3395.77 9369,-3394.05"/>
<path fill="none" stroke="black" d="M9369,-3392.05C9399.18,-3390.33 9401.57,-3370.97 9431,-3364.06 9642.51,-3314.43 10202.43,-3398.37 10408,-3328.06 10475.8,-3304.87 10490.48,-3286.81 10539,-3234.08 10595.85,-3172.3 10594.44,-3144.93 10636,-3071.98 10741.76,-2886.37 10765.07,-2838.2 10865,-2649.38 10882.21,-2616.87 10875.45,-2600.23 10903,-2575.84 10937.43,-2545.36 10962.48,-2566.44 11000,-2539.84 11086.28,-2478.69 11074.3,-2428.51 11152,-2356.76 11173.96,-2336.49 11201.3,-2317.11 11223.59,-2302.56"/>
<polygon fill="#952b03" stroke="black" points="11225.33,-2305.6 11231.85,-2297.25 11221.54,-2299.71 11225.33,-2305.6"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_upload_upload -->
<g id="edge611" 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="M9369,-3392.05C9399.19,-3390.38 9401.56,-3370.92 9431,-3364.06 9660.97,-3310.46 10272.14,-3411.61 10493,-3328.06 10597.06,-3288.7 10779.51,-3058.87 10835,-2962.44 10858.01,-2922.47 10868.37,-2913.34 10879,-2868.46 10897.76,-2789.25 10846.98,-2757.87 10884,-2685.38 10920.42,-2614.08 10954.57,-2609.96 11027,-2575.84 11103.81,-2539.66 11164.99,-2585.64 11207,-2511.85"/>
<path fill="none" stroke="black" d="M11207,-2509.85C11217.57,-2491.26 11217.12,-2467.86 11213.37,-2447.63"/>
<polygon fill="#952b03" stroke="black" points="11216.81,-2446.96 11211.25,-2437.94 11209.97,-2448.45 11216.81,-2446.96"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_upload_upload_trigger -->
<g id="edge612" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_upload_upload_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6657,-3034.21C6675.51,-2978.56 6655.4,-2957.22 6681,-2904.46 6689.23,-2887.49 6897.79,-2666.81 6905,-2649.38 6968.4,-2496.24 6887.83,-2437.77 6929,-2277.22"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_models_counters -->
<g id="edge613" 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="M6427.63,-3485.72C6787.64,-3482.78 9550.67,-3459.08 9915,-3422.04 9949.32,-3418.55 9987.53,-3411.37 10016.8,-3405.16"/>
<polygon fill="#952b03" stroke="black" points="10017.44,-3408.6 10026.48,-3403.06 10015.96,-3401.76 10017.44,-3408.6"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_models_result -->
<g id="edge614" 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="M6543,-3298.07C6528.11,-3252.65 6553.39,-3237.18 6543,-3190.53"/>
<path fill="none" stroke="black" d="M6543,-3188.53C6532.37,-3140.8 6495.03,-3149.05 6467,-3108.98"/>
<path fill="none" stroke="black" d="M6467,-3107.98C6410.07,-3026.6 6290.31,-2948.93 6392,-2832.69"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_web_views_status_package -->
<g id="edge615" 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="M9597,-3392.05C9610.89,-3391.28 9599.29,-3371.57 9611,-3364.06 9711.32,-3299.72 10567.74,-3358.37 10683,-3328.06 10853.16,-3283.31 10874.97,-3220.26 11034,-3144.98 11108.69,-3109.63 11135.7,-3117 11205,-3071.98 11556,-2843.95 11694.36,-2731.88 11773,-2320.76 11780.44,-2281.87 11792.14,-2266.33 11773,-2231.67 11728.83,-2151.67 11682.07,-2160.21 11599,-2122.13 11589.57,-2117.81 11252.06,-2015.11 11242,-2012.59 11160.74,-1992.28 11134.97,-2007.2 11057,-1976.59 10713.6,-1841.76 10542.65,-1854.27 10352,-1538.43 10297.48,-1448.12 10300.36,-1138.82 10375,-1064.28 10502.09,-937.36 10586.42,-981.68 10764,-954.74 11060.71,-909.72 11823.23,-993 12114,-918.74 12128.2,-915.11 12142.72,-908.8 12155.66,-902.09"/>
<polygon fill="#952b03" stroke="black" points="12157.2,-905.23 12164.32,-897.39 12153.86,-899.08 12157.2,-905.23"/>
</g>
<!-- ahriman_models_package_description&#45;&gt;ahriman_core_database_operations_package_operations -->
<g id="edge616" 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="M5511.3,-4049.54C5843.57,-4004.35 7289.62,-3805.57 8470,-3610.01 8698.68,-3572.12 8800.62,-3659.09 8983,-3516.03 9069.21,-3448.4 9105.99,-3318.79 9120.49,-3245.16"/>
<polygon fill="#ae451e" stroke="black" points="9123.85,-3246.25 9122.27,-3235.77 9116.97,-3244.94 9123.85,-3246.25"/>
</g>
<!-- ahriman_models_package_description&#45;&gt;ahriman_core_repository_executor -->
<g id="edge617" class="edge">
<title>ahriman_models_package_description&#45;&gt;ahriman_core_repository_executor</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5441,-3976.07C5479.93,-3866.86 5830.61,-3862.43 5943,-3833.97 6199.51,-3769.03 6321.38,-3874.18 6524,-3703.99 6621.16,-3622.38 6937.19,-2773.82 6962,-2649.38 6994.44,-2486.72 6857.79,-2039.57 6952,-1903.05 6989.27,-1849.05 7026.32,-1867.54 7081,-1831.28"/>
<path fill="none" stroke="black" d="M7081,-1829.28C7103.48,-1813.76 7105.97,-1804.46 7131,-1793.51 7228.85,-1750.73 7353.49,-1732.99 7423.95,-1725.99"/>
<polygon fill="#ae451e" stroke="black" points="7424.07,-1729.49 7433.69,-1725.06 7423.41,-1722.52 7424.07,-1729.49"/>
</g>
<!-- ahriman_models_package_description&#45;&gt;ahriman_models_package -->
<g id="edge618" 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="M5436.69,-4030.99C5435.3,-4015.07 5435.35,-3995.01 5441,-3978.07"/>
<path fill="none" stroke="black" d="M5441,-3976.07C5483.21,-3849.56 5425.37,-3808.44 5441,-3676"/>
</g>
<!-- ahriman_models_package_source&#45;&gt;ahriman_application_ahriman -->
<g id="edge619" 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="M6513.77,-3667.81C6582.09,-3661.14 6696.37,-3650.83 6795,-3646.01 7789.94,-3597.35 8040.54,-3646.39 9036,-3610.01 9768.7,-3583.23 9952.43,-3577.99 10683,-3516.03 12566.28,-3356.3 13113.02,-3523.28 14886,-2868.46 15198.82,-2752.92 15330.1,-2729.17 15506,-2445.86 15586.31,-2316.52 15569.64,-2266.49 15618,-2122.13 15625.52,-2099.68 15905.4,-1344.52 15909,-1321.13"/>
<path fill="none" stroke="black" d="M15909,-1319.13C15915.41,-1154.97 15906.98,-1107.68 15847,-954.74 15831.58,-915.42 15795.9,-917.42 15795,-875.19"/>
</g>
<!-- ahriman_models_package_source&#45;&gt;ahriman_application_application_application_packages -->
<g id="edge620" class="edge">
<title>ahriman_models_package_source&#45;&gt;ahriman_application_application_application_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6390.42,-3673.54C6178.36,-3671.52 5467.62,-3661.11 4883,-3610.01 4570.73,-3582.71 4486.37,-3598.67 4184,-3516.03 3873.54,-3431.18 3805.6,-3376.52 3517,-3234.08 3222.2,-3088.58 3117.53,-3089.29 2874,-2868.46 2741.56,-2748.37 2713.06,-2703.9 2642,-2539.84 2487.64,-2183.49 2555.94,-2061.76 2466,-1683.97 2440.81,-1578.17 2310.89,-1316.91 2338,-1211.59"/>
</g>
<!-- ahriman_models_package_source&#45;&gt;ahriman_core_gitremote_remote_pull -->
<g id="edge621" class="edge">
<title>ahriman_models_package_source&#45;&gt;ahriman_core_gitremote_remote_pull</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6390.05,-3674.91C6195.61,-3675.06 5592.31,-3655.5 5172,-3422.04 5125.94,-3396.46 4550.4,-2772.13 4531,-2723.15"/>
</g>
<!-- ahriman_models_package_source&#45;&gt;ahriman_core_gitremote_remote_push -->
<g id="edge622" class="edge">
<title>ahriman_models_package_source&#45;&gt;ahriman_core_gitremote_remote_push</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6390.41,-3673.1C6235.49,-3670.17 5821.99,-3658.08 5481,-3610.01 5189.36,-3568.89 4440.79,-3475.8 4186,-3328.06 3795.15,-3101.43 3651.67,-2839.42 3766,-2402.31"/>
</g>
<!-- ahriman_models_package_source&#45;&gt;ahriman_core_repository_update_handler -->
<g id="edge623" 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="M6479.13,-3648.27C6547.85,-3580.56 6739.28,-3391.84 6898,-3234.08 7020.33,-3112.48 7308.88,-2788.7 7447,-2685.38 7473.76,-2665.37 7495.94,-2678.11 7513,-2649.38 7520.96,-2635.97 7506.43,-2492.31 7505,-2445.86 7497.51,-2202.12 7440.48,-2099.47 7585,-1903.05 7626.21,-1847.05 7737.7,-1899.45 7724,-1831.28"/>
<path fill="none" stroke="black" d="M7724,-1829.28C7720.17,-1809.26 7681.9,-1778.04 7648.88,-1754.38"/>
<polygon fill="#e54205" stroke="black" points="7651.16,-1751.71 7640.97,-1748.8 7647.12,-1757.43 7651.16,-1751.71"/>
</g>
<!-- ahriman_models_package_source&#45;&gt;ahriman_core_spawn -->
<g id="edge624" 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="M6514.44,-3668.59C6582.88,-3662.66 6696.81,-3653.04 6795,-3646.01 6824.38,-3643.9 8888.42,-3533.68 8912,-3516.03 9052.34,-3410.93 8910.52,-3256.28 9046,-3144.98 9212.4,-3008.28 9379.21,-3230.48 9525,-3071.98 9661.12,-2923.99 9602.53,-2650.77 9574.65,-2550.26"/>
<polygon fill="#e54205" stroke="black" points="9578.09,-2549.54 9571.99,-2540.88 9571.35,-2551.45 9578.09,-2549.54"/>
</g>
<!-- ahriman_models_package_source&#45;&gt;ahriman_models_package -->
<g id="edge625" 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="M6423.62,-3649.38C6406.8,-3632.42 6389,-3608.28 6389,-3582.02"/>
</g>
<!-- ahriman_models_package_source&#45;&gt;ahriman_models_remote_source -->
<g id="edge626" class="edge">
<title>ahriman_models_package_source&#45;&gt;ahriman_models_remote_source</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6407.87,-3654.65C6397.88,-3651.14 6387.22,-3647.97 6377,-3646.01 6080.75,-3589.12 5315.59,-3670.24 5020,-3610.01 5013.91,-3608.77 5007.68,-3607.04 5001.55,-3605.05"/>
<polygon fill="#e54205" stroke="black" points="5002.71,-3601.75 4992.11,-3601.74 5000.39,-3608.36 5002.71,-3601.75"/>
</g>
<!-- ahriman_models_package_source&#45;&gt;ahriman_web_schemas_remote_schema -->
<g id="edge627" class="edge">
<title>ahriman_models_package_source&#45;&gt;ahriman_web_schemas_remote_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6514.1,-3668.06C6582.47,-3661.63 6696.56,-3651.56 6795,-3646.01 7311.76,-3616.89 7441.75,-3628.37 7959,-3610.01 9368.15,-3559.99 9733.67,-3644.76 11126,-3422.04 11600.55,-3346.13 11784.7,-3407.91 12161,-3108.98 12261.72,-3028.97 12269.04,-2985.69 12322,-2868.46 12439.87,-2607.57 12430.03,-2517.74 12419,-2231.67 12415.89,-2150.91 12405,-2131.18 12405,-2050.36 12405,-2050.36 12405,-2050.36 12405,-1938.82 12405,-1884.33 12539.22,-1772.34 12519,-1721.74"/>
<path fill="none" stroke="black" d="M12519,-1719.74C12497.35,-1680.64 12467.69,-1697.23 12425,-1683.97 12360.35,-1663.9 12331.42,-1688.23 12277,-1647.97 12179.36,-1575.75 12121.84,-1438.43 12097.22,-1366.95"/>
<polygon fill="#e54205" stroke="black" points="12100.68,-1366.27 12094.17,-1357.91 12094.05,-1368.51 12100.68,-1366.27"/>
</g>
<!-- ahriman_models_pkgbuild_patch -->
<g id="node140" class="node">
<title>ahriman_models_pkgbuild_patch</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#e75822" stroke="black" cx="4151" cy="-2933.45" rx="57.05" ry="28.98"/>
<text text-anchor="middle" x="4151" y="-2941.95" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4151" y="-2930.95" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="4151" y="-2919.95" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">pkgbuild_patch</text>
</g>
<!-- ahriman_models_pkgbuild_patch&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge628" class="edge">
<title>ahriman_models_pkgbuild_patch&#45;&gt;ahriman_application_handlers_patch</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4153.95,-2904.21C4155.34,-2884.07 4155.79,-2856.46 4151,-2832.69"/>
<path fill="none" stroke="black" d="M4151,-2830.69C4140.27,-2777.42 4084.4,-2802.55 4052,-2758.92 4021.28,-2717.55 4022.56,-2700.2 4014,-2649.38 4008.57,-2617.15 3998.72,-2604.73 4014,-2575.84 4037.63,-2531.17 4074.25,-2549.47 4108,-2511.85"/>
<path fill="none" stroke="black" d="M4108,-2509.85C4173.03,-2430.67 4146,-2152.82 4146,-2050.36 4146,-2050.36 4146,-2050.36 4146,-1938.82 4146,-1873.69 4150.81,-1857.08 4165,-1793.51 4176.14,-1743.63 4179.76,-1730.9 4200,-1683.97 4258.56,-1548.23 4287.88,-1521.39 4361,-1392.9 4379.28,-1360.77 4387.13,-1354.5 4403,-1321.13"/>
<path fill="none" stroke="black" d="M4403,-1319.13C4424.17,-1225 4310.2,-1128.42 4403,-1102.05"/>
</g>
<!-- ahriman_models_pkgbuild_patch&#45;&gt;ahriman_core_build_tools_sources -->
<g id="edge629" class="edge">
<title>ahriman_models_pkgbuild_patch&#45;&gt;ahriman_core_build_tools_sources</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4108,-2509.85C4150.48,-2462.51 4181.51,-2478.66 4236,-2445.86 4242.07,-2442.21 4248.32,-2438.13 4254.4,-2433.99"/>
<polygon fill="#e75822" stroke="black" points="4256.31,-2436.92 4262.51,-2428.33 4252.31,-2431.18 4256.31,-2436.92"/>
</g>
<!-- ahriman_models_pkgbuild_patch&#45;&gt;ahriman_core_database_operations_patch_operations -->
<g id="edge630" class="edge">
<title>ahriman_models_pkgbuild_patch&#45;&gt;ahriman_core_database_operations_patch_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4116.33,-2910.01C3988.92,-2827.54 3545.8,-2540.7 3388.18,-2438.68"/>
<polygon fill="#e75822" stroke="black" points="3390.23,-2435.84 3379.93,-2433.34 3386.43,-2441.71 3390.23,-2435.84"/>
</g>
<!-- ahriman_models_pkgbuild_patch&#45;&gt;ahriman_core_formatters_patch_printer -->
<g id="edge631" class="edge">
<title>ahriman_models_pkgbuild_patch&#45;&gt;ahriman_core_formatters_patch_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4151,-2830.69C4095.79,-2561.98 4484.69,-2747.15 4741,-2649.38 4745.33,-2647.73 4749.71,-2645.77 4754.03,-2643.64"/>
<polygon fill="#e75822" stroke="black" points="4755.38,-2646.88 4762.58,-2639.11 4752.1,-2640.69 4755.38,-2646.88"/>
</g>
<!-- ahriman_models_property -->
<g id="node141" class="node">
<title>ahriman_models_property</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f95010" stroke="black" cx="5519" cy="-2933.45" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="5519" y="-2941.95" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5519" y="-2930.95" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="5519" y="-2919.95" 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="edge632" 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="M5339,-2830.69C5277.23,-2774.13 5291.99,-2726.46 5219,-2685.38 5122.32,-2630.97 5075.8,-2688.53 4972,-2649.38 4967.92,-2647.84 4963.83,-2645.96 4959.83,-2643.88"/>
<polygon fill="#f95010" stroke="black" points="4961.84,-2641 4951.41,-2639.11 4958.39,-2647.09 4961.84,-2641"/>
</g>
<!-- ahriman_models_property&#45;&gt;ahriman_core_formatters_configuration_printer -->
<g id="edge633" 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="M5509,-2830.69C5505.56,-2760.56 5524.93,-2738.37 5571,-2685.38 5585.9,-2668.25 5605.92,-2654.02 5625.29,-2642.86"/>
<polygon fill="#f95010" stroke="black" points="5626.94,-2645.95 5634,-2638.05 5623.56,-2639.82 5626.94,-2645.95"/>
</g>
<!-- ahriman_models_property&#45;&gt;ahriman_core_formatters_package_printer -->
<g id="edge634" 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="M5339,-2830.69C5294.29,-2780.15 5337.18,-2738.05 5295,-2685.38 5289.71,-2678.78 5255.38,-2659.54 5223.75,-2642.64"/>
<polygon fill="#f95010" stroke="black" points="5225.42,-2639.56 5214.95,-2637.96 5222.14,-2645.74 5225.42,-2639.56"/>
</g>
<!-- ahriman_models_property&#45;&gt;ahriman_core_formatters_patch_printer -->
<g id="edge635" class="edge">
<title>ahriman_models_property&#45;&gt;ahriman_core_formatters_patch_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5488.2,-2915.81C5438.45,-2888.87 5345.32,-2838.15 5339,-2832.69"/>
<path fill="none" stroke="black" d="M5339,-2830.69C5291.98,-2790.06 5268.32,-2796.73 5219,-2758.92 5181.7,-2730.33 5185.36,-2705.75 5143,-2685.38 5029.53,-2630.82 4981.16,-2690.05 4862,-2649.38 4857.3,-2647.78 4852.56,-2645.79 4847.91,-2643.57"/>
<polygon fill="#f95010" stroke="black" points="4849.77,-2640.59 4839.28,-2639.12 4846.56,-2646.81 4849.77,-2640.59"/>
</g>
<!-- ahriman_models_property&#45;&gt;ahriman_core_formatters_printer -->
<g id="edge636" 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="M5585,-2830.69C5607.63,-2792.33 5683.87,-2706.65 5723,-2685.38 5799.67,-2643.72 5834.98,-2681.79 5916,-2649.38 5920.05,-2647.76 5924.12,-2645.83 5928.11,-2643.71"/>
<polygon fill="#f95010" stroke="black" points="5929.57,-2646.9 5936.5,-2638.89 5926.08,-2640.83 5929.57,-2646.9"/>
</g>
<!-- ahriman_models_property&#45;&gt;ahriman_core_formatters_tree_printer -->
<g id="edge637" class="edge">
<title>ahriman_models_property&#45;&gt;ahriman_core_formatters_tree_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5471,-2721.15C5462.53,-2699.84 5451.96,-2676.72 5442.73,-2657.4"/>
<polygon fill="#f95010" stroke="black" points="5445.91,-2655.94 5438.42,-2648.45 5439.61,-2658.98 5445.91,-2655.94"/>
</g>
<!-- ahriman_models_property&#45;&gt;ahriman_core_formatters_update_printer -->
<g id="edge638" 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="M5515.45,-2904.12C5513.13,-2884.19 5510.29,-2856.85 5509,-2832.69"/>
<path fill="none" stroke="black" d="M5509,-2830.69C5506.29,-2780.07 5489.73,-2770.25 5471,-2723.15"/>
<path fill="none" stroke="black" d="M5471,-2721.15C5465.87,-2708.25 5401.42,-2669.62 5353.62,-2642.37"/>
<polygon fill="#f95010" stroke="black" points="5355.45,-2639.38 5345.02,-2637.48 5351.99,-2645.47 5355.45,-2639.38"/>
</g>
<!-- ahriman_models_property&#45;&gt;ahriman_core_formatters_user_printer -->
<g id="edge639" 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="M5545.3,-2912.13C5561.08,-2899.76 5581.44,-2883.5 5599,-2868.46 5690.55,-2790.1 5690.45,-2737.72 5799,-2685.38 5891.01,-2641.02 5930.36,-2685.26 6026,-2649.38 6030.13,-2647.83 6034.28,-2645.96 6038.35,-2643.9"/>
<polygon fill="#f95010" stroke="black" points="6039.87,-2647.07 6046.95,-2639.18 6036.5,-2640.93 6039.87,-2647.07"/>
</g>
<!-- ahriman_models_property&#45;&gt;ahriman_core_formatters_validation_printer -->
<g id="edge640" class="edge">
<title>ahriman_models_property&#45;&gt;ahriman_core_formatters_validation_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5537.71,-2908.11C5552.09,-2888.55 5571.69,-2859.93 5585,-2832.69"/>
<path fill="none" stroke="black" d="M5585,-2830.69C5615.83,-2767.61 5594.35,-2731.83 5647,-2685.38 5690.67,-2646.85 5718.75,-2670.58 5773,-2649.38 5777.96,-2647.44 5783.04,-2645.28 5788.09,-2642.99"/>
<polygon fill="#f95010" stroke="black" points="5789.42,-2646.24 5796.99,-2638.82 5786.45,-2639.9 5789.42,-2646.24"/>
</g>
<!-- ahriman_models_property&#45;&gt;ahriman_core_formatters_version_printer -->
<g id="edge641" class="edge">
<title>ahriman_models_property&#45;&gt;ahriman_core_formatters_version_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5471,-2721.15C5460.61,-2695.02 5477.53,-2668.63 5497.46,-2648.53"/>
<polygon fill="#f95010" stroke="black" points="5499.87,-2651.07 5504.7,-2641.64 5495.05,-2646 5499.87,-2651.07"/>
</g>
<!-- ahriman_models_remote_source&#45;&gt;ahriman_core_build_tools_sources -->
<g id="edge642" class="edge">
<title>ahriman_models_remote_source&#45;&gt;ahriman_core_build_tools_sources</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4892.15,-3577.75C4801.61,-3572.23 4620.9,-3553.23 4484,-3488.03"/>
<path fill="none" stroke="black" d="M4484,-3486.03C4254.65,-3376.82 4184.29,-3307.86 4090,-3071.98 4077.87,-3041.63 4068.45,-3023.01 4090,-2998.44 4171,-2906.11 4283,-3054.78 4364,-2962.44 4380.99,-2943.07 4374.71,-2927.9 4364,-2904.46 4353.74,-2882.01 4023.26,-2637.84 4028,-2613.61"/>
</g>
<!-- ahriman_models_remote_source&#45;&gt;ahriman_core_database_operations_package_operations -->
<g id="edge643" class="edge">
<title>ahriman_models_remote_source&#45;&gt;ahriman_core_database_operations_package_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5006.08,-3579.14C5491.3,-3571.68 8906.39,-3519.09 8912,-3516.03 8967.66,-3485.66 9057.56,-3326.44 9102.15,-3242.48"/>
<polygon fill="#b83909" stroke="black" points="9105.2,-3244.2 9106.78,-3233.72 9099.01,-3240.93 9105.2,-3244.2"/>
</g>
<!-- ahriman_models_remote_source&#45;&gt;ahriman_core_gitremote_remote_pull -->
<g id="edge644" class="edge">
<title>ahriman_models_remote_source&#45;&gt;ahriman_core_gitremote_remote_pull</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4484,-3486.03C4387.79,-3430.52 4236.54,-3178.18 4204,-3071.98 4194.43,-3040.73 4183.29,-3023.73 4204,-2998.44 4255.41,-2935.66 4331.59,-3025.23 4383,-2962.44 4399.33,-2942.51 4391.69,-2928.72 4383,-2904.46 4372.38,-2874.8 4316.93,-2815.41 4293,-2794.92 4269.09,-2774.45 4250.9,-2784.1 4232,-2758.92 4199.01,-2714.98 4178.97,-2546.03 4222,-2511.85"/>
</g>
<!-- ahriman_models_remote_source&#45;&gt;ahriman_core_gitremote_remote_push -->
<g id="edge645" class="edge">
<title>ahriman_models_remote_source&#45;&gt;ahriman_core_gitremote_remote_push</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4891.74,-3579.33C4784.39,-3576.84 4546.28,-3565.65 4353,-3516.03 4123.92,-3457.21 3551.78,-3172.97 3444,-2962.44 3407.92,-2891.97 3444.9,-2788.75 3502,-2685.38 3585.18,-2534.8 3712.8,-2565.91 3766,-2402.31"/>
<path fill="none" stroke="black" d="M3766,-2400.31C3814.08,-2251.44 3777.77,-2204.59 3804,-2050.36"/>
</g>
<!-- ahriman_models_remote_source&#45;&gt;ahriman_models_package -->
<g id="edge646" class="edge">
<title>ahriman_models_remote_source&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5005.45,-3576.41C5237.9,-3561.56 6119.12,-3505.27 6339.04,-3491.23"/>
<polygon fill="#b83909" stroke="black" points="6339.23,-3494.72 6348.99,-3490.59 6338.79,-3487.74 6339.23,-3494.72"/>
</g>
<!-- ahriman_models_report_settings -->
<g id="node143" class="node">
<title>ahriman_models_report_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c26947" stroke="black" cx="10513" cy="-2510.85" rx="57.97" ry="28.98"/>
<text text-anchor="middle" x="10513" y="-2519.35" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="10513" y="-2508.35" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">models.</text>
<text text-anchor="middle" x="10513" y="-2497.35" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">report_settings</text>
</g>
<!-- ahriman_models_report_settings&#45;&gt;ahriman_core_report_report -->
<g id="edge647" 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="M10500.17,-2482.43C10491.51,-2460.95 10482.15,-2430.14 10485,-2402.31"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_application_handlers_handler -->
<g id="edge648" 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="M5472,-4439.56C5606.48,-4382.78 5654.12,-4427.76 5800,-4422.56 5902.4,-4418.9 7547.82,-4421.9 7644,-4386.56 7682.24,-4372.5 7676.81,-4342.76 7715,-4328.57 7785.54,-4302.37 9014.1,-4344.04 9069,-4292.57 9123.41,-4241.56 9096.36,-4197.59 9079,-4125.05 9063.92,-4062.04 9029.13,-4057.82 9013,-3995.07 8943.16,-3723.3 9052.91,-3637.97 8992,-3364.06 8961.35,-3226.23 8895.36,-3210.31 8867,-3071.98 8829.57,-2889.4 8889.04,-2853.93 8989,-2481.86 8998.58,-2446.2 9011.32,-2439.2 9013,-2402.31"/>
<path fill="none" stroke="black" d="M9013,-2400.31C9010.52,-2332.18 8996.83,-2254.3 8987.07,-2206.11"/>
<polygon fill="#e54205" stroke="black" points="8990.56,-2205.68 8985.11,-2196.59 8983.7,-2207.09 8990.56,-2205.68"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_application_handlers_setup -->
<g id="edge649" 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="M5318.5,-4518.75C5213.51,-4512.53 4995.01,-4500.31 4810,-4494.56 4657.78,-4489.83 2213.47,-4506.72 2069,-4458.56 1949.73,-4418.8 1716.19,-4195.41 1612,-4125.05 1471.37,-4030.09 1415.1,-4035.5 1288,-3923.07 1066.86,-3727.46 628.18,-3123.81 480,-2868.46 376.64,-2690.35 329.32,-2648 290,-2445.86 282.44,-2406.99 289.1,-2396.35 290,-2356.76 293.11,-2220.48 304,-2186.68 304,-2050.36 304,-2050.36 304,-2050.36 304,-1500.67 304,-1420.87 281.92,-1397.81 304,-1321.13"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_alpm_pacman -->
<g id="edge650" class="edge">
<title>ahriman_models_repository_paths&#45;&gt;ahriman_core_alpm_pacman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5318.5,-4518.75C5213.51,-4512.54 4995.01,-4500.32 4810,-4494.56 4735.06,-4492.22 2177.87,-4492.47 2111,-4458.56 2069.82,-4437.67 2013.04,-4330.01 1986,-4292.57 1959.49,-4255.87 1905.29,-4153.42 1870,-4125.05 1782.51,-4054.72 1481.82,-4006.75 1407,-3923.07 1323.69,-3829.9 1216,-3519.04 1216,-3394.05 1216,-3394.05 1216,-3394.05 1216,-3298.07 1216,-2993.4 1127.37,-2914.05 1178,-2613.61"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_alpm_repo -->
<g id="edge651" 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="M5290,-4356.57C5249.09,-4319.74 5444,-4237.08 5496,-4219.04 5686.81,-4152.83 5748.63,-4208.41 5949,-4183.04 6238.59,-4146.36 7227,-4171.42 7227,-3879.52 7227,-3879.52 7227,-3879.52 7227,-3486.03 7227,-3215.98 7301.77,-3154.82 7403,-2904.46 7440.52,-2811.67 7582.38,-2547.33 7638.22,-2444.22"/>
<polygon fill="#e54205" stroke="black" points="7641.25,-2445.97 7642.94,-2435.51 7635.1,-2442.64 7641.25,-2445.97"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_build_tools_sources -->
<g id="edge652" class="edge">
<title>ahriman_models_repository_paths&#45;&gt;ahriman_core_build_tools_sources</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5402.25,-4496.01C5419.01,-4477.21 5444.14,-4453.32 5472,-4441.56"/>
<path fill="none" stroke="black" d="M5472,-4439.56C5553.56,-4405.12 5362.39,-4409.54 5290,-4358.57"/>
<path fill="none" stroke="black" d="M5290,-4356.57C5225.35,-4311.04 5197.25,-4322.35 5124,-4292.57 4507.8,-4042.11 4278.52,-4105.21 3748,-3703.99 3657.15,-3635.29 3610,-3601.94 3610,-3488.03 3610,-3488.03 3610,-3488.03 3610,-3188.53 3610,-3120.83 3547.56,-3062.37 3610,-3036.21"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge653" 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="M5290,-4356.57C5267.18,-4333.91 5310.13,-4239.42 5335,-4219.04 5429.15,-4141.84 6307.41,-4127.28 6423,-4089.05 6752.9,-3979.96 6923,-3835.5 6923,-3488.03 6923,-3488.03 6923,-3488.03 6923,-3107.98 6923,-3050.68 6959.09,-3046.04 6991,-2998.44 7086.84,-2855.47 7114.98,-2822.53 7219,-2685.38 7231.25,-2669.23 7238.79,-2667.92 7247,-2649.38 7272.13,-2592.65 7281.19,-2573.06 7271,-2511.85"/>
<path fill="none" stroke="black" d="M7271,-2509.85C7264.03,-2461.74 7292.35,-2450.91 7291,-2402.31"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_configuration_configuration -->
<g id="edge654" class="edge">
<title>ahriman_models_repository_paths&#45;&gt;ahriman_core_configuration_configuration</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5433.83,-4507.46C5453.23,-4502.51 5475.46,-4497.53 5496,-4494.56 6473.21,-4353.16 6729.09,-4440.55 7715,-4386.56 8401.46,-4348.96 8597.45,-4479.65 9259,-4292.57 9264.95,-4290.89 9270.96,-4288.63 9276.82,-4286.05"/>
<polygon fill="#e54205" stroke="black" points="9278.26,-4289.24 9285.79,-4281.78 9275.25,-4282.92 9278.26,-4289.24"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_util -->
<g id="edge655" 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="M5472,-4439.56C5668.66,-4356.52 7244.47,-4357.42 7546.91,-4358.36"/>
<polygon fill="#e54205" stroke="black" points="7546.81,-4361.86 7556.82,-4358.4 7546.84,-4354.86 7546.81,-4361.86"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_models_package -->
<g id="edge656" 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="M5290,-4356.57C5265.03,-4339.49 5038.13,-3860.35 5186,-3769.98"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_application_application_application -->
<g id="edge657" 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="M4410,-2611.61C4392.21,-2608.87 4402.96,-2589.3 4391,-2575.84 4378.68,-2561.98 3856.92,-2206.7 3842,-2195.67 3589,-2008.65 3498.9,-1989.16 3286,-1757.51 3075.71,-1528.7 3161.36,-1343.49 2901,-1173.82 2820.56,-1121.4 2779.92,-1165.53 2688,-1137.82 2584.89,-1106.73 2471.48,-1051.12 2409,-1018.45"/>
<polygon fill="#d13d05" stroke="black" points="2410.87,-1015.48 2400.39,-1013.92 2407.61,-1021.67 2410.87,-1015.48"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_application_application_application_packages -->
<g id="edge658" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_application_application_application_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6558.64,-2719.92C6282.53,-2711.06 4609.16,-2657.06 4599,-2649.38 4402.61,-2500.89 4611.85,-2287.02 4429,-2122.13 4371.64,-2070.41 4331.7,-2112.19 4259,-2086.13 4093,-2026.64 4069.03,-1972.63 3907,-1903.05 3449.6,-1706.64 3270.99,-1800.86 2848,-1538.43 2668.75,-1427.22 2505.35,-1231.16 2438.25,-1144.86"/>
<polygon fill="#d13d05" stroke="black" points="2441.11,-1142.84 2432.23,-1137.07 2435.57,-1147.12 2441.11,-1142.84"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_application_application_application_repository -->
<g id="edge659" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_application_application_application_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4410,-2611.61C4392.2,-2608.95 4405.46,-2586.57 4391,-2575.84 4324.43,-2526.45 4287.37,-2563.74 4208,-2539.84 3963.15,-2466.13 3899.56,-2444.89 3676,-2320.76 3616.67,-2287.82 3607.72,-2270.41 3552,-2231.67 3480.49,-2181.95 2311.04,-1419.99 2251,-1356.9 2211.82,-1315.72 2200.22,-1302.12 2185,-1247.36 2176.07,-1215.23 2178.47,-1177.61 2182.9,-1148.69"/>
<polygon fill="#d13d05" stroke="black" points="2186.29,-1149.61 2184.5,-1139.17 2179.39,-1148.45 2186.29,-1149.61"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_application_handlers_triggers -->
<g id="edge660" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_application_handlers_triggers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6558.51,-2719.88C6277.74,-2710.62 4555.04,-2653.67 4529,-2649.38 4474.51,-2640.4 4464.64,-2621.63 4410,-2613.61"/>
<path fill="none" stroke="black" d="M4410,-2611.61C4392.19,-2609 4405.96,-2585.85 4391,-2575.84 4321.96,-2529.67 4100.1,-2557.76 4019,-2539.84 3896.16,-2512.7 3868.4,-2493.58 3752,-2445.86 3631.12,-2396.31 3603.28,-2378.32 3486,-2320.76 3433.23,-2294.87 1649.87,-1391.01 1602,-1356.9 1480.51,-1270.31 1223.57,-987.74 1184,-918.74 1139.28,-840.77 1114.32,-804.22 1146,-720.1 1151.12,-706.52 1160.11,-693.82 1169.72,-683.01"/>
<polygon fill="#d13d05" stroke="black" points="1172.15,-685.53 1176.47,-675.85 1167.06,-680.73 1172.15,-685.53"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_gitremote_remote_push -->
<g id="edge661" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_core_gitremote_remote_push</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6558.56,-2719.94C6283.7,-2711.24 4627.75,-2658.45 4619,-2649.38 4576.17,-2604.97 4637.28,-2573.55 4638,-2511.85"/>
<path fill="none" stroke="black" d="M4638,-2509.85C4636.18,-2460.95 4468.39,-2151.17 4429,-2122.13 4362.28,-2072.94 4325.86,-2108.35 4246,-2086.13 4119.89,-2051.05 3976.75,-1994.93 3900.56,-1963.69"/>
<polygon fill="#d13d05" stroke="black" points="3902.24,-1960.6 3891.66,-1960.03 3899.57,-1967.07 3902.24,-1960.6"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_gitremote_remote_push_trigger -->
<g id="edge662" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_core_gitremote_remote_push_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4638,-2509.85C4643.33,-2335.42 4697.18,-2247.71 4576,-2122.13 4518.44,-2062.48 4465.27,-2126.74 4393,-2086.13 4316.67,-2043.24 4285.41,-2024.6 4260,-1940.82"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_report_console -->
<g id="edge663" 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="M8215,-2611.61C8257.25,-2603.38 8263.63,-2587.74 8305,-2575.84 8390.12,-2551.37 8419,-2573.31 8501,-2539.84 8543.68,-2522.43 8546.72,-2504.29 8587,-2481.86 8621.07,-2462.89 8635.45,-2468.76 8667,-2445.86 8710.31,-2414.42 8699.61,-2379.62 8748,-2356.76 8820.83,-2322.36 9391.89,-2329.12 9472,-2320.76 9550.88,-2312.54 9641.68,-2296.79 9696.14,-2286.65"/>
<polygon fill="#d13d05" stroke="black" points="9696.52,-2290.14 9705.7,-2284.86 9695.23,-2283.26 9696.52,-2290.14"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_report_email -->
<g id="edge664" 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="M6635.55,-2720.02C6800.78,-2715.2 7465.65,-2696.14 8012,-2685.38 8082.94,-2683.99 10502.5,-2681.04 10566,-2649.38 10722.67,-2571.27 10608.12,-2429.2 10695,-2277.22"/>
<path fill="none" stroke="black" d="M10695,-2275.22C10705.98,-2257.18 10697.66,-2245.04 10714,-2231.67 10809.09,-2153.85 10902.43,-2254.37 10981,-2159.9"/>
<path fill="none" stroke="black" d="M10981,-2157.9C10993.24,-2143.18 10991.81,-2136.01 11005,-2122.13 11021.23,-2105.05 11041.89,-2089.03 11059.89,-2076.48"/>
<polygon fill="#d13d05" stroke="black" points="11061.48,-2079.63 11067.76,-2071.1 11057.53,-2073.85 11061.48,-2079.63"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_report_html -->
<g id="edge665" 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="M6627.16,-2703.71C6754.85,-2630.06 7264.18,-2338.43 7695,-2122.13 7731.98,-2103.56 7774.72,-2084.03 7806.11,-2070.04"/>
<polygon fill="#d13d05" stroke="black" points="7807.19,-2073.39 7814.91,-2066.13 7804.35,-2066.99 7807.19,-2073.39"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge666" 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="M10737,-2611.61C10755.65,-2607.3 10745.24,-2586.71 10761,-2575.84 10819.59,-2535.47 10853.05,-2571.04 10917,-2539.84 10976.64,-2510.75 10997.66,-2502.02 11033,-2445.86 11080.01,-2371.15 11094.54,-2266.85 11099.02,-2207.06"/>
<polygon fill="#d13d05" stroke="black" points="11102.5,-2207.44 11099.68,-2197.22 11095.51,-2206.96 11102.5,-2207.44"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_report_report -->
<g id="edge667" 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="M6635.65,-2721.17C6843.8,-2721 7832.94,-2716.61 8130,-2649.38 8169.98,-2640.34 8174.81,-2621.64 8215,-2613.61"/>
<path fill="none" stroke="black" d="M8215,-2611.61C8289.69,-2596.7 8448.81,-2483.54 8515,-2445.86 8583.05,-2407.12 8593.18,-2382.89 8667,-2356.76 8767.85,-2321.07 8800.97,-2345.73 8905,-2320.76 9027.06,-2291.47 9049.7,-2255.18 9173,-2231.67 9416.11,-2185.32 10201.1,-2165.42 10407.11,-2160.92"/>
<polygon fill="#d13d05" stroke="black" points="10407.01,-2164.43 10416.93,-2160.71 10406.86,-2157.43 10407.01,-2164.43"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_report_report_trigger -->
<g id="edge668" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_core_report_report_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6701,-2611.61C6713.32,-2569.02 6706.64,-2555.83 6701,-2511.85"/>
<path fill="none" stroke="black" d="M6701,-2509.85C6695.97,-2470.64 6776.38,-2197.75 6765,-2159.9"/>
<path fill="none" stroke="black" d="M6765,-2157.9C6757.91,-2137.2 6749.23,-2114.59 6741.6,-2095.48"/>
<polygon fill="#d13d05" stroke="black" points="6744.91,-2094.33 6737.94,-2086.36 6738.42,-2096.94 6744.91,-2094.33"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_report_telegram -->
<g id="edge669" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_core_report_telegram</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6635.55,-2720.02C6800.78,-2715.18 7465.64,-2696.06 8012,-2685.38 8301.42,-2679.72 10330.85,-2693.14 10617,-2649.38 10672.01,-2640.97 10683.13,-2627.58 10737,-2613.61"/>
<path fill="none" stroke="black" d="M10737,-2611.61C10755.53,-2606.81 10747.14,-2589.05 10761,-2575.84 10819.61,-2520.02 10845.04,-2518.93 10917,-2481.86 10952.74,-2463.44 10976.01,-2478.13 11000,-2445.86 11086.42,-2329.59 10946.27,-2234.26 11038,-2122.13 11070.57,-2082.32 11102.45,-2110.04 11148,-2086.13 11151.03,-2084.54 11154.08,-2082.75 11157.08,-2080.85"/>
<polygon fill="#d13d05" stroke="black" points="11158.89,-2083.85 11165.18,-2075.32 11154.95,-2078.06 11158.89,-2083.85"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_repository_executor -->
<g id="edge670" 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="M6625,-2509.85C6616.86,-2478.02 6653.49,-2477.59 6662,-2445.86 6672.26,-2407.61 6662.42,-2396.36 6662,-2356.76 6660.89,-2252.47 6659.9,-2226.4 6657,-2122.13 6655.2,-2057.43 6653.11,-2041.3 6652,-1976.59 6651.44,-1943.91 6632.05,-1928.94 6652,-1903.05 6747.31,-1779.32 7254.26,-1736.08 7423.76,-1724.95"/>
<polygon fill="#d13d05" stroke="black" points="7423.87,-1728.45 7433.62,-1724.32 7423.42,-1721.47 7423.87,-1728.45"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_triggers_trigger -->
<g id="edge671" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_core_triggers_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6623.02,-2700.65C6639.45,-2687.04 6660.6,-2668.26 6677,-2649.38 6689.56,-2634.93 6696.39,-2632.19 6701,-2613.61"/>
<path fill="none" stroke="black" d="M6701,-2611.61C6716.71,-2548.31 6623.62,-2580.96 6573,-2539.84 6537.38,-2510.91 6503.66,-2470.7 6481.08,-2441.23"/>
<polygon fill="#d13d05" stroke="black" points="6483.89,-2439.14 6475.07,-2433.27 6478.31,-2443.36 6483.89,-2439.14"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_triggers_trigger_loader -->
<g id="edge672" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_core_triggers_trigger_loader</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6701,-2611.61C6714.42,-2557.51 6638.81,-2565.85 6625,-2511.85"/>
<path fill="none" stroke="black" d="M6625,-2509.85C6619.9,-2489.92 6614.68,-2467.8 6610.34,-2448.83"/>
<polygon fill="#d13d05" stroke="black" points="6613.79,-2448.22 6608.16,-2439.24 6606.97,-2449.77 6613.79,-2448.22"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_upload_upload_trigger -->
<g id="edge673" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_core_upload_upload_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6701,-2611.61C6750.97,-2438.81 6883.36,-2451.21 6929,-2277.22"/>
<path fill="none" stroke="black" d="M6929,-2275.22C6942.05,-2224.32 6921.14,-2200.07 6955,-2159.9"/>
</g>
<!-- ahriman_models_sign_settings -->
<g id="node146" class="node">
<title>ahriman_models_sign_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#db5e2f" stroke="black" cx="11269" cy="-2722.15" rx="52.15" ry="28.98"/>
<text text-anchor="middle" x="11269" y="-2730.65" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="11269" y="-2719.65" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="11269" y="-2708.65" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">sign_settings</text>
</g>
<!-- ahriman_models_sign_settings&#45;&gt;ahriman_application_ahriman -->
<g id="edge674" 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="M11321.28,-2719.81C11517.26,-2714.82 12226.97,-2696.99 12812,-2685.38 12872.61,-2684.18 14940.58,-2678.04 14994,-2649.38 15090.75,-2597.48 15082.48,-2542.81 15134,-2445.86 15153.96,-2408.29 15149.85,-2394.76 15169,-2356.76 15258.72,-2178.75 15314.31,-2153.08 15407,-1976.59 15480.98,-1835.73 15499.54,-1799.19 15549,-1647.97 15564.52,-1600.51 15563.29,-1587.21 15574,-1538.43 15605.85,-1393.42 15602.03,-1354.29 15643,-1211.59"/>
</g>
<!-- ahriman_models_sign_settings&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge675" 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="M11294.88,-2696.64C11313.59,-2676.5 11336.35,-2646.09 11341,-2613.61"/>
<path fill="none" stroke="black" d="M11341,-2611.61C11347.28,-2567.72 11341.52,-2556.19 11341,-2511.85"/>
<path fill="none" stroke="black" d="M11341,-2509.85C11340.66,-2480.74 11351.87,-2474.8 11355,-2445.86 11365.44,-2349.33 11380.77,-2300.22 11312,-2231.67 11273.01,-2192.81 11212.19,-2174.97 11165.85,-2166.8"/>
<polygon fill="#db5e2f" stroke="black" points="11166.63,-2163.38 11156.19,-2165.21 11165.49,-2170.29 11166.63,-2163.38"/>
</g>
<!-- ahriman_models_sign_settings&#45;&gt;ahriman_core_sign_gpg -->
<g id="edge676" 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="M11224.16,-2706.79C11197.65,-2698.97 11163.25,-2689.98 11132,-2685.38 10698.59,-2621.67 10581.02,-2708.84 10147,-2649.38 9940.5,-2621.09 9880.59,-2626.45 9691,-2539.84 9650.73,-2521.45 9651.74,-2496.63 9610,-2481.86 9481.78,-2436.49 9133.78,-2464.11 8999,-2445.86 8945.04,-2438.55 8884.09,-2424.81 8842.98,-2414.71"/>
<polygon fill="#db5e2f" stroke="black" points="8843.95,-2411.34 8833.4,-2412.33 8842.26,-2418.13 8843.95,-2411.34"/>
</g>
<!-- ahriman_models_smtp_ssl_settings -->
<g id="node147" class="node">
<title>ahriman_models_smtp_ssl_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c26947" stroke="black" cx="10923" cy="-2401.31" rx="67.76" ry="28.98"/>
<text text-anchor="middle" x="10923" y="-2409.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="10923" y="-2398.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">models.</text>
<text text-anchor="middle" x="10923" y="-2387.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">smtp_ssl_settings</text>
</g>
<!-- ahriman_models_smtp_ssl_settings&#45;&gt;ahriman_core_report_email -->
<g id="edge677" 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="M10922.86,-2372.11C10924.02,-2323.88 10932.62,-2224.51 10981,-2159.9"/>
</g>
<!-- ahriman_models_upload_settings -->
<g id="node148" class="node">
<title>ahriman_models_upload_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c26947" stroke="black" cx="10953" cy="-2722.15" rx="60.21" ry="28.98"/>
<text text-anchor="middle" x="10953" y="-2730.65" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="10953" y="-2719.65" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">models.</text>
<text text-anchor="middle" x="10953" y="-2708.65" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">upload_settings</text>
</g>
<!-- ahriman_models_upload_settings&#45;&gt;ahriman_core_upload_upload -->
<g id="edge678" 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="M10977.6,-2695.31C10989.89,-2681.97 11004.72,-2665.21 11017,-2649.38 11028.73,-2634.25 11028.65,-2628.24 11041,-2613.61"/>
<path fill="none" stroke="black" d="M11041,-2611.61C11096.54,-2545.86 11164.41,-2586.65 11207,-2511.85"/>
</g>
<!-- ahriman_models_user -->
<g id="node149" class="node">
<title>ahriman_models_user</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b83909" stroke="black" cx="13399" cy="-2933.45" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="13399" y="-2941.95" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="13399" y="-2930.95" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="13399" y="-2919.95" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">user</text>
</g>
<!-- ahriman_models_user&#45;&gt;ahriman_application_handlers_users -->
<g id="edge679" class="edge">
<title>ahriman_models_user&#45;&gt;ahriman_application_handlers_users</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13435.77,-2924.08C13586.75,-2889.94 14174.17,-2759.6 14663,-2685.38 14736.15,-2674.28 14937.17,-2696.76 14994,-2649.38 15040.95,-2610.24 15123.03,-2176.48 15151,-2122.13 15160.27,-2104.11 15168.66,-2103.57 15179,-2086.13 15196.95,-2055.85 15217.19,-1965.78 15242,-1940.82"/>
</g>
<!-- ahriman_models_user&#45;&gt;ahriman_core_auth_mapping -->
<g id="edge680" 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="M13426.38,-2912.58C13441.66,-2900.74 13460.48,-2884.86 13475,-2868.46 13655.02,-2665.12 13579.52,-2502.01 13809,-2356.76 13908.69,-2293.67 13985.95,-2401.48 14072,-2320.76 14119.79,-2275.94 14139.43,-2079.5 14146.09,-1988.01"/>
<polygon fill="#b83909" stroke="black" points="14149.58,-1988.34 14146.79,-1978.12 14142.59,-1987.85 14149.58,-1988.34"/>
</g>
<!-- ahriman_models_user&#45;&gt;ahriman_core_database_operations_auth_operations -->
<g id="edge681" 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="M13421.56,-2909.82C13438.06,-2890.99 13458.07,-2862.52 13461,-2832.69"/>
<path fill="none" stroke="black" d="M13461,-2830.69C13467.34,-2766.08 13466.44,-2749.6 13476,-2685.38 13480.78,-2653.24 13488.64,-2646.08 13490,-2613.61"/>
<path fill="none" stroke="black" d="M13490,-2611.61C13489.94,-2544.86 13440.71,-2482.66 13401.51,-2443.7"/>
<polygon fill="#b83909" stroke="black" points="13404.01,-2441.26 13394.4,-2436.8 13399.14,-2446.28 13404.01,-2441.26"/>
</g>
<!-- ahriman_models_user&#45;&gt;ahriman_core_formatters_user_printer -->
<g id="edge682" 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="M13360.7,-2930.76C13064.22,-2917.72 11104.55,-2832.79 9511,-2794.92 9182.07,-2787.11 6874.98,-2810.34 6550,-2758.92 6394.98,-2734.4 6220.35,-2669.53 6135.25,-2635.37"/>
<polygon fill="#b83909" stroke="black" points="6136.82,-2632.22 6126.23,-2631.72 6134.2,-2638.71 6136.82,-2632.22"/>
</g>
<!-- ahriman_models_user&#45;&gt;ahriman_core_status_web_client -->
<g id="edge683" 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="M13360.84,-2929.29C13168.32,-2913.42 12284.49,-2841.3 11560,-2794.92 11259.74,-2775.7 11181.19,-2805.83 10884,-2758.92 10696.84,-2729.38 10635.39,-2745.32 10472,-2649.38 10380.54,-2595.68 10300.88,-2497.47 10260.72,-2442.43"/>
<polygon fill="#b83909" stroke="black" points="10263.73,-2440.61 10255.04,-2434.55 10258.05,-2444.71 10263.73,-2440.61"/>
</g>
<!-- ahriman_models_user_access -->
<g id="node150" class="node">
<title>ahriman_models_user_access</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f95010" stroke="black" cx="13610" cy="-3035.21" rx="50.82" ry="28.98"/>
<text text-anchor="middle" x="13610" y="-3043.71" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="13610" y="-3032.71" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="13610" y="-3021.71" 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="edge684" 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="M13656.16,-3022.86C13712.26,-3008.98 13809.73,-2984.6 13893,-2962.44 13985.74,-2937.76 14008.44,-2929.83 14101,-2904.46 14153.55,-2890.06 15003.52,-2680.85 15048,-2649.38 15377.72,-2416.13 15720.69,-1389.5 15795,-992.51"/>
<path fill="none" stroke="black" d="M15795,-990.51C15797.79,-939.33 15796.09,-926.43 15795,-875.19"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_core_auth_auth -->
<g id="edge685" 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="M13651,-2932.45C13655.83,-2905.61 14133.81,-2427.64 14265,-2356.76 14322.66,-2325.61 14364.51,-2369.79 14408,-2320.76 14445.2,-2278.84 14420.44,-2251.61 14424,-2195.67 14426.08,-2163.05 14427.16,-2154.66 14424,-2122.13 14417.64,-2056.58 14332.08,-1887.12 14367,-1831.28"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_core_auth_mapping -->
<g id="edge686" 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="M13651,-2932.45C13685.42,-2754.9 13733.13,-2716.35 13847,-2575.84 13956.34,-2440.92 14045.84,-2464.71 14143,-2320.76 14160.76,-2294.46 14240.24,-2081.66 14235,-2050.36"/>
<path fill="none" stroke="black" d="M14235,-2048.36C14226.82,-2018.72 14205.15,-1991.72 14185.61,-1972.18"/>
<polygon fill="#f95010" stroke="black" points="14188.13,-1969.75 14178.5,-1965.33 14183.27,-1974.79 14188.13,-1969.75"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_core_database_operations_auth_operations -->
<g id="edge687" 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="M13490,-2721.15C13462.85,-2681.82 13496.04,-2661.02 13490,-2613.61"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_models_user -->
<g id="edge688" 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="M13571.3,-3015.92C13534.54,-2998.54 13479.41,-2972.47 13441.46,-2954.53"/>
<polygon fill="#f95010" stroke="black" points="13443.14,-2951.45 13432.61,-2950.34 13440.15,-2957.78 13443.14,-2951.45"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge689" 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="M13879,-2932.45C13906.52,-2919.94 13912.62,-2914.89 13941,-2904.46 14270.93,-2783.14 14356.18,-2753.72 14701,-2685.38 14772.06,-2671.3 14971.86,-2698.62 15025,-2649.38 15070.63,-2607.1 15051,-2574.06 15051,-2511.85 15051,-2511.85 15051,-2511.85 15051,-2275.22 15051,-2092.06 15129.98,-2057.78 15228,-1903.05 15272.71,-1832.47 15309,-1831.93 15347,-1757.51 15415.71,-1622.96 15414.5,-1578.72 15434,-1428.9 15436.06,-1413.03 15436.06,-1408.76 15434,-1392.9 15429.74,-1360.18 15411.89,-1353.98 15415,-1321.13"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_api_docs -->
<g id="edge690" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_web_views_api_docs</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13879,-2932.45C13971.15,-2880.56 14622.75,-2521.16 14697,-2445.86 14807.66,-2333.63 15051,-1988.89 15051,-1831.28 15051,-1831.28 15051,-1831.28 15051,-1719.74 15051,-1571.16 15240.74,-1201.18 15183,-1064.28 15174.76,-1044.74 15081.84,-958.88 15027.65,-909.85"/>
<polygon fill="#f95010" stroke="black" points="15030.19,-907.43 15020.43,-903.33 15025.5,-912.63 15030.19,-907.43"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_api_swagger -->
<g id="edge691" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_web_views_api_swagger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13650.63,-3017.48C13665.76,-3011.36 13683.11,-3004.46 13699,-2998.44 13778.41,-2968.39 13806.47,-2978.59 13879,-2934.45"/>
<path fill="none" stroke="black" d="M13879,-2932.45C13936.28,-2897.6 13901.43,-2849.05 13941,-2794.92 14034.07,-2667.62 14382.85,-2452.86 14469,-2320.76 14500.96,-2271.76 14495.52,-2252.36 14510,-2195.67 14546.77,-2051.74 14552.1,-2014.39 14571,-1867.05 14587.59,-1737.73 14538.24,-1693.22 14592,-1574.43 14638.72,-1471.21 14681.94,-1462.94 14771,-1392.9 14795.44,-1373.67 14806.1,-1375.52 14831,-1356.9 14946.13,-1270.78 14975.41,-1246.95 15069,-1137.82 15081.46,-1123.28 15095.6,-1121.01 15093,-1102.05"/>
<path fill="none" stroke="black" d="M15093,-1100.05C15090.97,-1081.01 15080.22,-1079.79 15069,-1064.28 15057.12,-1047.85 15052.88,-1044.7 15041,-1028.28 15029.78,-1012.76 15026.81,-1008.95 15017,-992.51"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_base -->
<g id="edge692" 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="M13633,-2509.85C13559.38,-2371.06 13583,-2317.01 13583,-2159.9 13583,-2159.9 13583,-2159.9 13583,-2048.36 13583,-1928.39 13591.14,-1882.15 13672,-1793.51 13708.63,-1753.36 13760.09,-1774.98 13771,-1721.74"/>
<path fill="none" stroke="black" d="M13771,-1719.74C13779.67,-1654.71 13675.26,-1704.53 13642,-1647.97 13634.08,-1634.5 13599.34,-1180.04 13649,-1102.05"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_index -->
<g id="edge693" 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="M13635.41,-3009.79C13680.96,-2966.15 13779.7,-2872.12 13865,-2794.92 13908.74,-2755.34 14230.33,-2493.59 14265,-2445.86 14290.3,-2411.03 14270.63,-2385.15 14303,-2356.76 14347.75,-2317.52 14392.15,-2364.98 14432,-2320.76 14544.64,-2195.81 14518.38,-1737.69 14559,-1574.43 14579.52,-1491.97 14572.53,-1464.04 14619,-1392.9 14632.08,-1372.87 14642.31,-1374.03 14659,-1356.9 14748.32,-1265.19 14794,-1254.8 14846,-1137.82 14872.46,-1078.3 14881.2,-1055.59 14865,-992.51"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_service_add -->
<g id="edge694" 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="M13633,-2721.15C13638.08,-2611.41 13624.17,-2578 13571,-2481.86 13560.35,-2462.6 13547.61,-2465.14 13537,-2445.86 13499.7,-2378.1 13524.48,-2348.31 13494,-2277.22"/>
<path fill="none" stroke="black" d="M13494,-2275.22C13475.21,-2233.61 13456.79,-2231.89 13429,-2195.67 13221.96,-1925.79 13183.29,-1848.63 12982,-1574.43 12850.37,-1395.12 12873.17,-1287.55 12682,-1173.82 12587.04,-1117.32 12528.89,-1197.66 12436,-1137.82 12420.11,-1127.58 12429.1,-1111.95 12413,-1102.05"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_service_pgp -->
<g id="edge695" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_web_views_service_pgp</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13494,-2275.22C13342.43,-1835.01 13134.68,-1799.42 12990,-1356.9 12969.76,-1294.99 12930.65,-1262.71 12971,-1211.59"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_service_rebuild -->
<g id="edge696" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_web_views_service_rebuild</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13709,-2611.61C13718.94,-2565.22 13735.96,-2558 13747,-2511.85"/>
<path fill="none" stroke="black" d="M13747,-2509.85C13755.72,-2473.38 13709.45,-2479.06 13692,-2445.86 13679.27,-2421.63 13621,-2162.35 13621,-2159.9 13621,-2159.9 13621,-2159.9 13621,-2048.36 13621,-1899.96 13727.99,-1894.53 13785,-1757.51 13875.5,-1539.99 13896.69,-1480.73 13929,-1247.36 13947,-1117.33 13986.08,-1043.09 13889,-954.74 13854.77,-923.59 13519.89,-924.8 13474,-918.74 13405.8,-909.74 13327.65,-895.09 13278.32,-885.3"/>
<polygon fill="#f95010" stroke="black" points="13279.01,-881.86 13268.51,-883.34 13277.63,-888.73 13279.01,-881.86"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_service_remove -->
<g id="edge697" 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="M13633,-2721.15C13635.71,-2662.69 13696.74,-2670.84 13709,-2613.61"/>
<path fill="none" stroke="black" d="M13709,-2611.61C13720.67,-2557.11 13662.89,-2558.9 13633,-2511.85"/>
<path fill="none" stroke="black" d="M13633,-2509.85C13624.21,-2496.02 13619.78,-2494.21 13609,-2481.86 13594.92,-2465.73 13586.21,-2465.19 13577,-2445.86 13450.63,-2180.62 13563.3,-2072.11 13470,-1793.51 13429.34,-1672.08 13386.25,-1656.22 13336,-1538.43 13262.33,-1365.75 13239.72,-1321.74 13202,-1137.82 13193.8,-1097.83 13212.27,-986.8 13187,-954.74 13180.8,-946.87 13062.18,-910.3 12993.36,-889.59"/>
<polygon fill="#f95010" stroke="black" points="12994.39,-886.25 12983.81,-886.73 12992.38,-892.95 12994.39,-886.25"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_service_request -->
<g id="edge698" 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="M13771,-1719.74C13816.43,-1429.1 13818.3,-1355.04 13863,-1064.28 13867.91,-1032.31 13891.85,-1020.11 13875,-992.51"/>
<path fill="none" stroke="black" d="M13875,-990.51C13852.06,-961.57 13835.77,-963.93 13800,-954.74 13666.77,-920.49 13308.56,-972.66 13182,-918.74 13178.36,-917.19 13174.82,-915.23 13171.43,-913"/>
<polygon fill="#f95010" stroke="black" points="13173.6,-910.25 13163.5,-907.05 13169.4,-915.85 13173.6,-910.25"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_service_search -->
<g id="edge699" 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="M13559.19,-3033.22C13284.17,-3026.98 11946.97,-2985.77 10884,-2758.92 10791.35,-2739.15 10546.36,-2708.09 10472,-2649.38 10428.6,-2615.12 10434.27,-2590.88 10413,-2539.84 10412.28,-2538.11 10097,-1504.55 10097,-1502.67 10097,-1502.67 10097,-1502.67 10097,-1409.9 10097,-1352.65 10096.56,-1335.52 10073,-1283.36 10064.66,-1264.88 10054.67,-1265.17 10045,-1247.36 10020.41,-1202.07 10015.56,-1188.63 10007,-1137.82 9993.48,-1057.58 9950.01,-1012.81 10007,-954.74 10081.69,-878.64 11827.1,-958.59 11926,-918.74 11929.67,-917.26 11933.23,-915.35 11936.64,-913.16"/>
<polygon fill="#f95010" stroke="black" points="11938.64,-916.03 11944.58,-907.26 11934.47,-910.41 11938.64,-916.03"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_service_update -->
<g id="edge700" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_web_views_service_update</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13747,-2509.85C13762.77,-2422.54 13703.85,-2407 13683,-2320.76 13666.01,-2250.5 13659,-2232.19 13659,-2159.9 13659,-2159.9 13659,-2159.9 13659,-2048.36 13659,-2032.88 13679.55,-2010.26 13768,-1903.05 13809.19,-1853.12 13818,-1839.06 13864,-1793.51 13885.96,-1771.76 14062.63,-1640.53 14075,-1612.2"/>
<path fill="none" stroke="black" d="M14075,-1610.2C14099.45,-1533.17 14064.11,-1509.66 14061,-1428.9 14058.51,-1364.26 14060.56,-1348.04 14061,-1283.36 14061.89,-1154.08 14137.92,-1099.26 14065,-992.51"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_status_logs -->
<g id="edge701" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_web_views_status_logs</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13624.65,-3007.2C13634.36,-2987.64 13646.17,-2960.22 13651,-2934.45"/>
<path fill="none" stroke="black" d="M13651,-2932.45C13661.81,-2874.78 13523.34,-2771.44 13490,-2723.15"/>
<path fill="none" stroke="black" d="M13490,-2721.15C13376.74,-2605.28 13348.84,-2575.01 13251,-2445.86 13189.82,-2365.1 12833.12,-1741.9 12750,-1683.97 12691.98,-1643.54 12650.47,-1691.84 12595,-1647.97 12453.09,-1535.75 12542.53,-1410.68 12414,-1283.36 12334.7,-1204.8 12292.83,-1212.16 12188,-1173.82 12127.26,-1151.6 12106.69,-1162.73 12047,-1137.82 12046.1,-1137.44 11804.72,-993.45 11805,-992.51"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_status_package -->
<g id="edge702" 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="M13563.04,-3023.87C13510.7,-3011.72 13423.95,-2989.72 13352,-2962.44 13296.99,-2941.59 13286.38,-2929.2 13233,-2904.46 13123.3,-2853.63 13099.12,-2831.85 12984,-2794.92 12909.63,-2771.07 12867.89,-2813.47 12812,-2758.92 12752.18,-2700.54 12794.4,-2655.47 12769,-2575.84 12744.48,-2498.94 12541.53,-1969.01 12495,-1903.05 12439.02,-1823.69 12393.86,-1832.38 12332,-1757.51 12307.74,-1728.15 12320.28,-1704.19 12288,-1683.97 12132.21,-1586.43 12027.42,-1752.17 11876,-1647.97 11824.08,-1612.24 11792.95,-1440.81 11752,-1392.9 11660.47,-1285.8 11613.6,-1282.72 11492,-1211.59"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_status_packages -->
<g id="edge703" 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="M13651,-2932.45C13664.6,-2840.08 13629.94,-2816.47 13633,-2723.15"/>
<path fill="none" stroke="black" d="M13633,-2721.15C13625.01,-2650.16 13501.01,-2508.68 13467,-2445.86 13446.07,-2407.19 13447.78,-2393.74 13424,-2356.76 13305.15,-2171.97 13245.9,-2147.64 13108,-1976.59 12862.53,-1672.12 12870.1,-1529.28 12566,-1283.36 12537.56,-1260.36 12516.81,-1274.23 12492,-1247.36 12480.42,-1234.81 12493.17,-1219.42 12478,-1211.59"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_status_status -->
<g id="edge704" 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="M13560.57,-3027.59C13487.92,-3017.23 13348.44,-2994.95 13233,-2962.44 13125.4,-2932.14 12849.35,-2840.56 12773,-2758.92 12712.35,-2694.07 12731.71,-2655.76 12693,-2575.84 12545.25,-2270.82 12581.98,-2134.09 12334,-1903.05 12130.34,-1713.3 11992.25,-1804.39 11762,-1647.97 11627.83,-1556.83 11646.99,-1463.58 11501,-1392.9 11388.07,-1338.22 11337.2,-1404.22 11221,-1356.9 11095.77,-1305.89 11103.62,-1223.87 10978,-1173.82 10911.93,-1147.49 10707.38,-1190.86 10660,-1137.82 10608.76,-1080.45 10690.17,-1035.42 10754,-992.51"/>
<path fill="none" stroke="black" d="M10754,-990.51C10769.69,-979.54 10761.24,-963.99 10778,-954.74 10898.86,-888.02 11892.21,-970.99 12020,-918.74 12023.66,-917.24 12027.22,-915.32 12030.62,-913.12"/>
<polygon fill="#f95010" stroke="black" points="12032.63,-915.99 12038.56,-907.21 12028.45,-910.37 12032.63,-915.99"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_user_login -->
<g id="edge705" 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="M13747,-2509.85C13765.1,-2377.75 13884.4,-2413.62 14005,-2356.76 14047.73,-2336.62 14077.84,-2359.41 14105,-2320.76 14211.75,-2168.87 13996.78,-2056.01 14102,-1903.05 14127.35,-1866.19 14156.95,-1888.88 14196,-1867.05 14265.88,-1827.99 14292.66,-1822.8 14339,-1757.51 14464.17,-1581.19 14328.44,-1463.53 14448,-1283.36 14463.74,-1259.63 14477.8,-1263.87 14501,-1247.36 14502.04,-1246.62 14647.2,-1138.81 14648,-1137.82 14692.24,-1082.61 14741.18,-1057.4 14713,-992.51"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge706" 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="M14075,-1610.2C14099.13,-1545.51 14195.06,-1037.86 14143,-992.51"/>
</g>
<!-- ahriman_version -->
<g id="node151" class="node">
<title>ahriman_version</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f95010" stroke="black" cx="10519" cy="-2612.61" rx="38.37" ry="21.43"/>
<text text-anchor="middle" x="10519" y="-2615.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10519" y="-2604.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">version</text>
</g>
<!-- ahriman_version&#45;&gt;ahriman_application_ahriman -->
<g id="edge707" 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="M10554.54,-2603.91C10595.09,-2595.47 10663.48,-2582.28 10723,-2575.84 11103.34,-2534.72 11202.03,-2574.62 11583,-2539.84 12162.75,-2486.92 12299.78,-2404.24 12880,-2356.76 13052.91,-2342.62 14278.99,-2382.82 14441,-2320.76 14780.42,-2190.77 15518.78,-1553.16 15643,-1211.59"/>
<path fill="none" stroke="black" d="M15643,-1209.59C15654.38,-1141.79 15668.22,-1127.16 15696,-1064.28 15734.34,-977.51 15790.57,-969.95 15795,-875.19"/>
<path fill="none" stroke="black" d="M15795,-873.19C15791.01,-756.05 15820.78,-716.68 15771,-610.57 15726.72,-516.18 15604.17,-549.07 15605,-444.81"/>
</g>
<!-- ahriman_version&#45;&gt;ahriman_application_handlers_service_updates -->
<g id="edge708" class="edge">
<title>ahriman_version&#45;&gt;ahriman_application_handlers_service_updates</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10484.16,-2602.91C10395.64,-2580.91 10163.51,-2523.94 10085,-2511.85"/>
<path fill="none" stroke="black" d="M10085,-2509.85C9875.99,-2477.66 9821.29,-2490.78 9610,-2481.86 9570.8,-2480.21 8228.79,-2470.18 8198,-2445.86 8158.91,-2414.99 8110.31,-2054.25 8083,-2012.59 7954.02,-1815.83 7889.74,-1762.61 7668,-1683.97 7509.02,-1627.59 4798.22,-1676.64 4632,-1647.97 4384.34,-1605.26 4335.61,-1543.78 4097,-1464.9 3844.97,-1381.58 3781.73,-1361.35 3528,-1283.36 3035.8,-1132.07 2917.98,-1073.75 2417,-954.74 2025.47,-861.73 1893.91,-956.69 1526,-793.64 1468.02,-767.95 1411.74,-720.96 1375.9,-687.37"/>
<polygon fill="#f95010" stroke="black" points="1378.44,-684.96 1368.78,-680.61 1373.62,-690.04 1378.44,-684.96"/>
</g>
<!-- ahriman_version&#45;&gt;ahriman_application_handlers_versions -->
<g id="edge709" class="edge">
<title>ahriman_version&#45;&gt;ahriman_application_handlers_versions</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10499.04,-2594C10483.73,-2580.03 10462.51,-2559.63 10446,-2539.84 10436.37,-2528.3 10435.76,-2524.08 10427,-2511.85"/>
<path fill="none" stroke="black" d="M10427,-2509.85C10373.13,-2434.65 10365.47,-2404.1 10286,-2356.76 10091.42,-2240.86 10016.12,-2264.32 9792,-2231.67 9600.3,-2203.74 9105.55,-2254.57 8921,-2195.67 8916.85,-2194.34 8912.7,-2192.61 8908.66,-2190.63"/>
<polygon fill="#f95010" stroke="black" points="8910.66,-2187.74 8900.21,-2186 8907.3,-2193.87 8910.66,-2187.74"/>
</g>
<!-- ahriman_version&#45;&gt;ahriman_application_lock -->
<g id="edge710" 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="M10085,-2509.85C9737.28,-2456.3 9644.19,-2496.23 9296,-2445.86 9243.32,-2438.24 9183.96,-2425.38 9142.17,-2415.6"/>
<polygon fill="#f95010" stroke="black" points="9143.15,-2412.24 9132.61,-2413.35 9141.54,-2419.05 9143.15,-2412.24"/>
</g>
<!-- ahriman_version&#45;&gt;ahriman_web_apispec -->
<g id="edge711" class="edge">
<title>ahriman_version&#45;&gt;ahriman_web_apispec</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10554.56,-2604.08C10595.12,-2595.79 10663.53,-2582.73 10723,-2575.84 11002.48,-2543.49 11075.77,-2574.27 11355,-2539.84 11786.09,-2486.69 11882.94,-2401.35 12315,-2356.76 12372.84,-2350.8 14361.7,-2355.94 14408,-2320.76 14481.34,-2265.06 14421.2,-2202.03 14467,-2122.13 14495.95,-2071.62 15146.42,-1402.19 15183,-1356.9 15232.26,-1295.91 15255.37,-1284.95 15283,-1211.59"/>
</g>
<!-- ahriman_web_schemas_internal_status_schema -->
<g id="node164" class="node">
<title>ahriman_web_schemas_internal_status_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a472e" stroke="black" cx="10754" cy="-1101.05" rx="84.71" ry="36.54"/>
<text text-anchor="middle" x="10754" y="-1115.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10754" y="-1104.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="10754" y="-1093.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">schemas.</text>
<text text-anchor="middle" x="10754" y="-1082.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">internal_status_schema</text>
</g>
<!-- ahriman_version&#45;&gt;ahriman_web_schemas_internal_status_schema -->
<g id="edge712" class="edge">
<title>ahriman_version&#45;&gt;ahriman_web_schemas_internal_status_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10427,-2509.85C10399.44,-2466.69 10391,-2101.57 10391,-2050.36 10391,-2050.36 10391,-2050.36 10391,-1319.13 10391,-1252.48 10573.5,-1171.21 10679.69,-1129.56"/>
<polygon fill="#f95010" stroke="black" points="10680.89,-1132.85 10688.94,-1125.96 10678.36,-1126.32 10680.89,-1132.85"/>
</g>
<!-- ahriman_web_schemas_package_schema -->
<g id="node172" class="node">
<title>ahriman_web_schemas_package_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a472e" stroke="black" cx="11738" cy="-1210.59" rx="65.52" ry="36.54"/>
<text text-anchor="middle" x="11738" y="-1224.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="11738" y="-1213.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="11738" y="-1202.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">schemas.</text>
<text text-anchor="middle" x="11738" y="-1191.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">package_schema</text>
</g>
<!-- ahriman_version&#45;&gt;ahriman_web_schemas_package_schema -->
<g id="edge713" class="edge">
<title>ahriman_version&#45;&gt;ahriman_web_schemas_package_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10637,-2509.85C10660.6,-2386.92 10607.15,-2332.74 10681,-2231.67 10699.91,-2205.79 10902.38,-2102.39 10930,-2086.13 10985.21,-2053.62 10997.23,-2042.31 11054,-2012.59 11191.71,-1940.5 11243.48,-1954.47 11372,-1867.05 11430.1,-1827.53 11440.41,-1810.98 11486,-1757.51 11620.33,-1599.94 11697.79,-1358.8 11725.86,-1258.19"/>
<polygon fill="#f95010" stroke="black" points="11729.2,-1259.23 11728.48,-1248.66 11722.45,-1257.37 11729.2,-1259.23"/>
</g>
<!-- ahriman_version&#45;&gt;ahriman_web_views_status_status -->
<g id="edge714" 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="M10539.29,-2594.17C10546.38,-2588.23 10554.45,-2581.63 10562,-2575.84 10596.77,-2549.18 10628.43,-2554.82 10637,-2511.85"/>
<path fill="none" stroke="black" d="M10637,-2509.85C10654.82,-2420.52 10539.15,-2206.16 10504,-2122.13 10455.13,-2005.3 10430.65,-1981.77 10377,-1867.05 10354.48,-1818.9 10343.18,-1808.74 10329,-1757.51 10281.37,-1585.47 10300.9,-1535.41 10300,-1356.9 10299.59,-1275.85 10244.74,-1032.9 10315,-992.51"/>
</g>
<!-- ahriman_web -->
<g id="node152" class="node">
<title>ahriman_web</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f95010" stroke="black" cx="9597" cy="-545.57" rx="41.59" ry="18"/>
<text text-anchor="middle" x="9597" y="-543.07" 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="edge715" 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="M9616.79,-529.28C9637.42,-511.45 9666.78,-479.93 9667,-444.81"/>
</g>
<!-- ahriman_web_apispec&#45;&gt;ahriman_web_web -->
<g id="edge716" class="edge">
<title>ahriman_web_apispec&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M15297.15,-968.91C15318.66,-947 15345.75,-911.24 15339,-875.19"/>
</g>
<!-- ahriman_web_cors -->
<g id="node154" class="node">
<title>ahriman_web_cors</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b05a3a" stroke="black" cx="15161" cy="-756.87" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="15161" y="-765.37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="15161" y="-754.37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="15161" y="-743.37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">cors</text>
</g>
<!-- ahriman_web_cors&#45;&gt;ahriman_web_web -->
<g id="edge717" class="edge">
<title>ahriman_web_cors&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M15146.97,-729.78C15134.86,-707.71 15116.6,-675.45 15099,-648.34"/>
</g>
<!-- ahriman_web_middlewares -->
<g id="node155" class="node">
<title>ahriman_web_middlewares</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#d05324" stroke="black" cx="9950" cy="-647.34" rx="50.41" ry="28.98"/>
<text text-anchor="middle" x="9950" y="-655.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9950" y="-644.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="9950" y="-633.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">middlewares</text>
</g>
<!-- ahriman_web_middlewares&#45;&gt;ahriman_web_web -->
<g id="edge718" 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="M9929.71,-620.38C9920.03,-608 9908.33,-593.04 9898,-579.83"/>
<polygon fill="#d05324" stroke="black" points="9900.96,-577.94 9892.05,-572.21 9895.45,-582.25 9900.96,-577.94"/>
</g>
<!-- ahriman_web_middlewares_auth_handler&#45;&gt;ahriman_web_web -->
<g id="edge719" 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="M15388.48,-961.59C15368.62,-940.07 15345.28,-908.72 15339,-875.19"/>
</g>
<!-- ahriman_web_middlewares_exception_handler -->
<g id="node157" class="node">
<title>ahriman_web_middlewares_exception_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#994f33" stroke="black" cx="15038" cy="-756.87" rx="67.35" ry="36.54"/>
<text text-anchor="middle" x="15038" y="-770.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="15038" y="-759.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="15038" y="-748.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">middlewares.</text>
<text text-anchor="middle" x="15038" y="-737.87" 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="edge720" 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="M15073.85,-725.63C15095.3,-703.76 15115.48,-673.72 15099,-648.34"/>
</g>
<!-- ahriman_web_routes -->
<g id="node158" class="node">
<title>ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#733b26" stroke="black" cx="12260" cy="-647.34" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="12260" y="-655.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="12260" y="-644.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="12260" y="-633.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">routes</text>
</g>
<!-- ahriman_web_routes&#45;&gt;ahriman_web_web -->
<g id="edge721" 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="M12221.52,-644.73C11943,-633.09 10237.64,-561.85 9922.17,-548.67"/>
<polygon fill="#733b26" stroke="black" points="9922.34,-545.17 9912.2,-548.25 9922.05,-552.17 9922.34,-545.17"/>
</g>
<!-- ahriman_web_schemas -->
<g id="node159" class="node">
<title>ahriman_web_schemas</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f95010" stroke="black" cx="13001" cy="-1101.05" rx="39.7" ry="28.98"/>
<text text-anchor="middle" x="13001" y="-1109.55" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="13001" y="-1098.55" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="13001" y="-1087.55" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">schemas</text>
</g>
<!-- ahriman_web_schemas&#45;&gt;ahriman_web_views_service_add -->
<g id="edge722" class="edge">
<title>ahriman_web_schemas&#45;&gt;ahriman_web_views_service_add</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12967.65,-1084.65C12951.67,-1077.71 12932.11,-1069.84 12914,-1064.28 12839.35,-1041.33 12814.67,-1056.9 12742,-1028.28 12730.87,-1023.9 12601.9,-944.79 12532.54,-902.06"/>
<polygon fill="#f95010" stroke="black" points="12534.39,-899.09 12524.04,-896.82 12530.72,-905.05 12534.39,-899.09"/>
</g>
<!-- ahriman_web_schemas&#45;&gt;ahriman_web_views_service_pgp -->
<g id="edge723" class="edge">
<title>ahriman_web_schemas&#45;&gt;ahriman_web_views_service_pgp</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12973.1,-1079.95C12964.91,-1074.49 12955.78,-1068.84 12947,-1064.28 12908.03,-1044.04 12893.6,-1049.21 12855,-1028.28 12790.28,-993.18 12722.23,-941.59 12680.7,-908.2"/>
<polygon fill="#f95010" stroke="black" points="12683.14,-905.67 12673.17,-902.1 12678.74,-911.12 12683.14,-905.67"/>
</g>
<!-- ahriman_web_schemas&#45;&gt;ahriman_web_views_service_rebuild -->
<g id="edge724" class="edge">
<title>ahriman_web_schemas&#45;&gt;ahriman_web_views_service_rebuild</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13035.5,-1086.59C13052.76,-1079.87 13073.97,-1071.62 13093,-1064.28 13134.74,-1048.17 13156.95,-1061.42 13187,-1028.28 13211.17,-1001.61 13221.61,-962.31 13226.04,-930.21"/>
<polygon fill="#f95010" stroke="black" points="13229.47,-931.03 13227.19,-920.69 13222.52,-930.2 13229.47,-931.03"/>
</g>
<!-- ahriman_web_schemas&#45;&gt;ahriman_web_views_service_remove -->
<g id="edge725" class="edge">
<title>ahriman_web_schemas&#45;&gt;ahriman_web_views_service_remove</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12994.02,-1072.02C12985.1,-1036.21 12969.47,-973.46 12958.26,-928.44"/>
<polygon fill="#f95010" stroke="black" points="12961.69,-927.72 12955.88,-918.87 12954.9,-929.41 12961.69,-927.72"/>
</g>
<!-- ahriman_web_schemas&#45;&gt;ahriman_web_views_service_request -->
<g id="edge726" class="edge">
<title>ahriman_web_schemas&#45;&gt;ahriman_web_views_service_request</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13016.37,-1074.25C13038.6,-1036.96 13080.05,-967.4 13107.59,-921.19"/>
<polygon fill="#f95010" stroke="black" points="13110.52,-923.1 13112.64,-912.72 13104.51,-919.51 13110.52,-923.1"/>
</g>
<!-- ahriman_web_schemas&#45;&gt;ahriman_web_views_service_search -->
<g id="edge727" class="edge">
<title>ahriman_web_schemas&#45;&gt;ahriman_web_views_service_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12968.82,-1083.66C12952.78,-1076.31 12932.83,-1068.39 12914,-1064.28 12816.77,-1043.03 12097.65,-1089.26 12019,-1028.28 11989.44,-1005.36 11978.26,-964.15 11974.29,-930.25"/>
<polygon fill="#f95010" stroke="black" points="11977.8,-930.2 11973.35,-920.58 11970.84,-930.87 11977.8,-930.2"/>
</g>
<!-- ahriman_web_schemas&#45;&gt;ahriman_web_views_service_update -->
<g id="edge728" class="edge">
<title>ahriman_web_schemas&#45;&gt;ahriman_web_views_service_update</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13034.43,-1084.77C13051.61,-1077.51 13073.07,-1069.34 13093,-1064.28 13216.33,-1032.99 13263.62,-1086.02 13377,-1028.28 13425.5,-1003.58 13466.37,-955.69 13492.04,-920.01"/>
<polygon fill="#f95010" stroke="black" points="13494.78,-922.2 13497.68,-912.01 13489.06,-918.17 13494.78,-922.2"/>
</g>
<!-- ahriman_web_schemas&#45;&gt;ahriman_web_views_status_logs -->
<g id="edge729" class="edge">
<title>ahriman_web_schemas&#45;&gt;ahriman_web_views_status_logs</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12968.31,-1083.93C12952.31,-1076.75 12932.55,-1068.88 12914,-1064.28 12833.18,-1044.23 12609.96,-1074.96 12541,-1028.28 12510.53,-1007.66 12532.16,-977.17 12503,-954.74 12444.19,-909.51 12405.73,-953.15 12340,-918.74 12336.54,-916.93 12333.15,-914.8 12329.88,-912.47"/>
<polygon fill="#f95010" stroke="black" points="12332.19,-909.84 12322.16,-906.41 12327.86,-915.34 12332.19,-909.84"/>
</g>
<!-- ahriman_web_schemas&#45;&gt;ahriman_web_views_status_package -->
<g id="edge730" class="edge">
<title>ahriman_web_schemas&#45;&gt;ahriman_web_views_status_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12968.74,-1084.04C12952.67,-1076.78 12932.73,-1068.83 12914,-1064.28 12734.09,-1020.58 12677.24,-1078.35 12499,-1028.28 12428.29,-1008.42 12418.77,-983.05 12351,-954.74 12305.48,-935.72 12288.34,-944.05 12246,-918.74 12242.65,-916.74 12239.34,-914.47 12236.12,-912.04"/>
<polygon fill="#f95010" stroke="black" points="12238.45,-909.43 12228.48,-905.83 12234.03,-914.86 12238.45,-909.43"/>
</g>
<!-- ahriman_web_schemas&#45;&gt;ahriman_web_views_status_packages -->
<g id="edge731" class="edge">
<title>ahriman_web_schemas&#45;&gt;ahriman_web_views_status_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12968.25,-1084.17C12952.24,-1077.03 12932.48,-1069.14 12914,-1064.28 12789.68,-1031.55 12744.58,-1080.24 12627,-1028.28 12581,-1007.95 12584.44,-980.08 12541,-954.74 12500.56,-931.15 12482.45,-942.32 12442,-918.74 12438.26,-916.56 12434.53,-914.09 12430.89,-911.47"/>
<polygon fill="#f95010" stroke="black" points="12433.32,-908.93 12423.25,-905.62 12429.06,-914.48 12433.32,-908.93"/>
</g>
<!-- ahriman_web_schemas&#45;&gt;ahriman_web_views_status_status -->
<g id="edge732" class="edge">
<title>ahriman_web_schemas&#45;&gt;ahriman_web_views_status_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12968.78,-1083.85C12952.73,-1076.55 12932.78,-1068.61 12914,-1064.28 12791.85,-1036.07 12465.65,-1078.99 12351,-1028.28 12308.01,-1009.27 12315.63,-978.37 12275,-954.74 12225.76,-926.1 12204.92,-939.82 12152,-918.74 12138.51,-913.36 12124.3,-906.57 12111.44,-899.96"/>
<polygon fill="#f95010" stroke="black" points="12113.28,-896.97 12102.8,-895.43 12110.03,-903.17 12113.28,-896.97"/>
</g>
<!-- ahriman_web_schemas&#45;&gt;ahriman_web_views_user_login -->
<g id="edge733" class="edge">
<title>ahriman_web_schemas&#45;&gt;ahriman_web_views_user_login</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13033.92,-1084.63C13051.15,-1077.24 13072.81,-1069 13093,-1064.28 13327.05,-1009.6 13416.48,-1104.76 13629,-992.51"/>
</g>
<!-- ahriman_web_schemas&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge734" class="edge">
<title>ahriman_web_schemas&#45;&gt;ahriman_web_views_user_logout</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13033.96,-1084.78C13051.19,-1077.43 13072.85,-1069.17 13093,-1064.28 13241.1,-1028.35 13293.35,-1086.96 13434,-1028.28 13493.43,-1003.49 13547.82,-951.82 13581.14,-915.38"/>
<polygon fill="#f95010" stroke="black" points="13583.64,-917.84 13587.72,-908.06 13578.43,-913.16 13583.64,-917.84"/>
</g>
<!-- ahriman_web_schemas_aur_package_schema -->
<g id="node160" class="node">
<title>ahriman_web_schemas_aur_package_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b85e3d" stroke="black" cx="10534" cy="-1101.05" rx="79.39" ry="36.54"/>
<text text-anchor="middle" x="10534" y="-1115.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10534" y="-1104.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="10534" y="-1093.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">schemas.</text>
<text text-anchor="middle" x="10534" y="-1082.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">aur_package_schema</text>
</g>
<!-- ahriman_web_schemas_aur_package_schema&#45;&gt;ahriman_web_views_service_search -->
<g id="edge735" class="edge">
<title>ahriman_web_schemas_aur_package_schema&#45;&gt;ahriman_web_views_service_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10458.32,-1089.93C10332.71,-1072.88 10093.36,-1039.23 10078,-1028.28 10063.34,-1017.83 10056.42,-1010.32 10059,-992.51"/>
</g>
<!-- ahriman_web_schemas_auth_schema -->
<g id="node161" class="node">
<title>ahriman_web_schemas_auth_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#ef4506" stroke="black" cx="12332" cy="-1101.05" rx="53.07" ry="36.54"/>
<text text-anchor="middle" x="12332" y="-1115.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="12332" y="-1104.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="12332" y="-1093.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">schemas.</text>
<text text-anchor="middle" x="12332" y="-1082.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">auth_schema</text>
</g>
<!-- ahriman_web_schemas_auth_schema&#45;&gt;ahriman_web_views_service_add -->
<g id="edge736" class="edge">
<title>ahriman_web_schemas_auth_schema&#45;&gt;ahriman_web_views_service_add</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12312.66,-1067.01C12302.62,-1045.93 12293.5,-1017.89 12299,-992.51"/>
<path fill="none" stroke="black" d="M12299,-990.51C12302.58,-973.99 12438.87,-920.8 12442,-918.74 12445.26,-916.59 12448.5,-914.22 12451.68,-911.72"/>
<polygon fill="#ef4506" stroke="black" points="12453.82,-914.49 12459.24,-905.39 12449.33,-909.12 12453.82,-914.49"/>
</g>
<!-- ahriman_web_schemas_auth_schema&#45;&gt;ahriman_web_views_service_pgp -->
<g id="edge737" class="edge">
<title>ahriman_web_schemas_auth_schema&#45;&gt;ahriman_web_views_service_pgp</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12357.3,-1068.55C12384.02,-1036.79 12428.63,-987.86 12475,-954.74 12495.34,-940.22 12552.77,-913.75 12594.39,-895.35"/>
<polygon fill="#ef4506" stroke="black" points="12595.74,-898.59 12603.48,-891.36 12592.92,-892.18 12595.74,-898.59"/>
</g>
<!-- ahriman_web_schemas_auth_schema&#45;&gt;ahriman_web_views_service_rebuild -->
<g id="edge738" class="edge">
<title>ahriman_web_schemas_auth_schema&#45;&gt;ahriman_web_views_service_rebuild</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12380.52,-1085.88C12406.82,-1078.6 12439.99,-1070.07 12470,-1064.28 12593.19,-1040.49 12633.64,-1075.21 12750,-1028.28 12800.83,-1007.78 12797.96,-974.73 12849,-954.74 12987.61,-900.45 13046.53,-980.46 13182,-918.74 13185.6,-917.1 13189.11,-915.07 13192.48,-912.8"/>
<polygon fill="#ef4506" stroke="black" points="13194.55,-915.62 13200.38,-906.78 13190.31,-910.06 13194.55,-915.62"/>
</g>
<!-- ahriman_web_schemas_auth_schema&#45;&gt;ahriman_web_views_service_remove -->
<g id="edge739" class="edge">
<title>ahriman_web_schemas_auth_schema&#45;&gt;ahriman_web_views_service_remove</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12374.88,-1079.11C12437.58,-1049.01 12558.42,-992.94 12665,-954.74 12744.67,-926.19 12839.92,-900.95 12896.28,-886.91"/>
<polygon fill="#ef4506" stroke="black" points="12897.02,-890.33 12905.89,-884.53 12895.34,-883.54 12897.02,-890.33"/>
</g>
<!-- ahriman_web_schemas_auth_schema&#45;&gt;ahriman_web_views_service_request -->
<g id="edge740" class="edge">
<title>ahriman_web_schemas_auth_schema&#45;&gt;ahriman_web_views_service_request</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12381,-1086.57C12407.29,-1079.53 12440.31,-1071.01 12470,-1064.28 12551.69,-1045.76 12575.21,-1053.76 12655,-1028.28 12730.32,-1004.22 12741.81,-979.2 12817,-954.74 12892.51,-930.18 12915.05,-938.33 12992,-918.74 13023.94,-910.61 13059.38,-899.83 13086.99,-891.03"/>
<polygon fill="#ef4506" stroke="black" points="13088.04,-894.37 13096.49,-887.98 13085.9,-887.7 13088.04,-894.37"/>
</g>
<!-- ahriman_web_schemas_auth_schema&#45;&gt;ahriman_web_views_service_search -->
<g id="edge741" class="edge">
<title>ahriman_web_schemas_auth_schema&#45;&gt;ahriman_web_views_service_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12279,-1096.93C12149.07,-1088.74 11822.92,-1064.71 11791,-1028.28 11769.46,-1003.69 11771.09,-980.66 11791,-954.74 11828.83,-905.5 11871.62,-948.72 11926,-918.74 11929.42,-916.86 11932.78,-914.67 11936.04,-912.3"/>
<polygon fill="#ef4506" stroke="black" points="11938.08,-915.15 11943.72,-906.19 11933.72,-909.68 11938.08,-915.15"/>
</g>
<!-- ahriman_web_schemas_auth_schema&#45;&gt;ahriman_web_views_service_update -->
<g id="edge742" class="edge">
<title>ahriman_web_schemas_auth_schema&#45;&gt;ahriman_web_views_service_update</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12380.47,-1085.6C12406.75,-1078.24 12439.92,-1069.72 12470,-1064.28 12620.83,-1036.97 12661.65,-1052.51 12813,-1028.28 13063.01,-988.25 13357.69,-916.49 13472.14,-887.68"/>
<polygon fill="#ef4506" stroke="black" points="13472.98,-891.07 13481.82,-885.23 13471.26,-884.29 13472.98,-891.07"/>
</g>
<!-- ahriman_web_schemas_auth_schema&#45;&gt;ahriman_web_views_status_logs -->
<g id="edge743" class="edge">
<title>ahriman_web_schemas_auth_schema&#45;&gt;ahriman_web_views_status_logs</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12147,-990.51C12138.69,-941.39 12245.62,-919 12246,-918.74 12249.22,-916.55 12252.45,-914.14 12255.61,-911.61"/>
<polygon fill="#ef4506" stroke="black" points="12257.76,-914.37 12263.15,-905.25 12253.25,-909.02 12257.76,-914.37"/>
</g>
<!-- ahriman_web_schemas_auth_schema&#45;&gt;ahriman_web_views_status_package -->
<g id="edge744" class="edge">
<title>ahriman_web_schemas_auth_schema&#45;&gt;ahriman_web_views_status_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12290.41,-1077.96C12236.28,-1048.92 12148.37,-1000.61 12147,-992.51"/>
<path fill="none" stroke="black" d="M12147,-990.51C12142.63,-964.71 12153.59,-937.95 12166.56,-916.71"/>
<polygon fill="#ef4506" stroke="black" points="12169.49,-918.62 12171.99,-908.33 12163.62,-914.82 12169.49,-918.62"/>
</g>
<!-- ahriman_web_schemas_auth_schema&#45;&gt;ahriman_web_views_status_packages -->
<g id="edge745" class="edge">
<title>ahriman_web_schemas_auth_schema&#45;&gt;ahriman_web_views_status_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12291.56,-1077.05C12274.46,-1064.95 12256.36,-1048.42 12247,-1028.28 12233.23,-998.64 12228.53,-981.7 12247,-954.74 12272.05,-918.18 12301.94,-941.45 12340,-918.74 12343.72,-916.52 12347.43,-914.03 12351.06,-911.39"/>
<polygon fill="#ef4506" stroke="black" points="12352.9,-914.39 12358.68,-905.51 12348.63,-908.85 12352.9,-914.39"/>
</g>
<!-- ahriman_web_schemas_auth_schema&#45;&gt;ahriman_web_views_status_status -->
<g id="edge746" class="edge">
<title>ahriman_web_schemas_auth_schema&#45;&gt;ahriman_web_views_status_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12278.7,-1100.03C12206.44,-1096.65 12080.92,-1078.06 12033,-992.51"/>
<path fill="none" stroke="black" d="M12033,-990.51C12020.76,-968.66 12027.47,-941.95 12038.04,-919.75"/>
<polygon fill="#ef4506" stroke="black" points="12041.13,-921.41 12042.61,-910.92 12034.91,-918.2 12041.13,-921.41"/>
</g>
<!-- ahriman_web_schemas_auth_schema&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge747" class="edge">
<title>ahriman_web_schemas_auth_schema&#45;&gt;ahriman_web_views_user_logout</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12380.04,-1085.03C12406.34,-1077.46 12439.66,-1068.92 12470,-1064.28 12785.39,-1016 12877.88,-1107.34 13187,-1028.28 13259.71,-1009.68 13267.38,-977.15 13339,-954.74 13437.33,-923.97 13475.3,-963.7 13568,-918.74 13571.56,-917.01 13575.04,-914.92 13578.39,-912.61"/>
<polygon fill="#ef4506" stroke="black" points="13580.49,-915.41 13586.26,-906.52 13576.21,-909.87 13580.49,-915.41"/>
</g>
<!-- ahriman_web_schemas_counters_schema -->
<g id="node162" class="node">
<title>ahriman_web_schemas_counters_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b85e3d" stroke="black" cx="11261" cy="-1210.59" rx="67.35" ry="36.54"/>
<text text-anchor="middle" x="11261" y="-1224.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="11261" y="-1213.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="11261" y="-1202.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">schemas.</text>
<text text-anchor="middle" x="11261" y="-1191.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">counters_schema</text>
</g>
<!-- ahriman_web_schemas_counters_schema&#45;&gt;ahriman_web_schemas_internal_status_schema -->
<g id="edge748" class="edge">
<title>ahriman_web_schemas_counters_schema&#45;&gt;ahriman_web_schemas_internal_status_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11212.18,-1185.17C11201.77,-1180.78 11190.69,-1176.69 11180,-1173.82 11038.81,-1135.84 10995.42,-1170.89 10853,-1137.82 10844.14,-1135.76 10834.99,-1133.15 10825.98,-1130.28"/>
<polygon fill="#b85e3d" stroke="black" points="10827.14,-1126.98 10816.54,-1127.15 10824.93,-1133.62 10827.14,-1126.98"/>
</g>
<!-- ahriman_web_schemas_error_schema -->
<g id="node163" class="node">
<title>ahriman_web_schemas_error_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#ef4506" stroke="black" cx="12533" cy="-1101.05" rx="53.98" ry="36.54"/>
<text text-anchor="middle" x="12533" y="-1115.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="12533" y="-1104.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="12533" y="-1093.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">schemas.</text>
<text text-anchor="middle" x="12533" y="-1082.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">error_schema</text>
</g>
<!-- ahriman_web_schemas_error_schema&#45;&gt;ahriman_web_views_service_add -->
<g id="edge749" class="edge">
<title>ahriman_web_schemas_error_schema&#45;&gt;ahriman_web_views_service_add</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12489,-990.51C12481.26,-971.62 12479.69,-949.47 12480.6,-929.67"/>
<polygon fill="#ef4506" stroke="black" points="12484.08,-930.05 12481.28,-919.83 12477.09,-929.56 12484.08,-930.05"/>
</g>
<!-- ahriman_web_schemas_error_schema&#45;&gt;ahriman_web_views_service_pgp -->
<g id="edge750" class="edge">
<title>ahriman_web_schemas_error_schema&#45;&gt;ahriman_web_views_service_pgp</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12570.51,-1074.31C12604.74,-1049.24 12648.91,-1012.15 12641,-992.51"/>
<path fill="none" stroke="black" d="M12641,-990.51C12633.38,-971.57 12631.83,-949.42 12632.72,-929.62"/>
<polygon fill="#ef4506" stroke="black" points="12636.2,-930 12633.4,-919.79 12629.22,-929.52 12636.2,-930"/>
</g>
<!-- ahriman_web_schemas_error_schema&#45;&gt;ahriman_web_views_service_rebuild -->
<g id="edge751" class="edge">
<title>ahriman_web_schemas_error_schema&#45;&gt;ahriman_web_views_service_rebuild</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12571.58,-1075.15C12579.42,-1070.96 12587.78,-1067.07 12596,-1064.28 12705.2,-1027.15 12740.71,-1054.6 12853,-1028.28 13003.05,-993.1 13049.37,-997.23 13182,-918.74 13185.36,-916.75 13188.68,-914.49 13191.9,-912.07"/>
<polygon fill="#ef4506" stroke="black" points="13193.98,-914.89 13199.54,-905.87 13189.57,-909.46 13193.98,-914.89"/>
</g>
<!-- ahriman_web_schemas_error_schema&#45;&gt;ahriman_web_views_service_remove -->
<g id="edge752" class="edge">
<title>ahriman_web_schemas_error_schema&#45;&gt;ahriman_web_views_service_remove</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12573.94,-1076.65C12581.27,-1072.5 12588.85,-1068.24 12596,-1064.28 12704.68,-1003.99 12833.45,-934.8 12900.06,-899.17"/>
<polygon fill="#ef4506" stroke="black" points="12901.7,-902.27 12908.87,-894.46 12898.4,-896.09 12901.7,-902.27"/>
</g>
<!-- ahriman_web_schemas_error_schema&#45;&gt;ahriman_web_views_service_request -->
<g id="edge753" class="edge">
<title>ahriman_web_schemas_error_schema&#45;&gt;ahriman_web_views_service_request</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12572.17,-1075.63C12579.88,-1071.45 12588.05,-1067.44 12596,-1064.28 12658.09,-1039.55 12678.28,-1048.45 12742,-1028.28 12869.92,-987.78 13016.06,-926.83 13088.8,-895.45"/>
<polygon fill="#ef4506" stroke="black" points="13089.82,-898.82 13097.6,-891.64 13087.04,-892.4 13089.82,-898.82"/>
</g>
<!-- ahriman_web_schemas_error_schema&#45;&gt;ahriman_web_views_service_search -->
<g id="edge754" class="edge">
<title>ahriman_web_schemas_error_schema&#45;&gt;ahriman_web_views_service_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12483.91,-1085.21C12457.5,-1077.79 12424.23,-1069.34 12394,-1064.28 12344.42,-1055.98 11977.1,-1065.21 11943,-1028.28 11916.53,-999.61 11929.36,-954.71 11945.64,-920.94"/>
<polygon fill="#ef4506" stroke="black" points="11948.67,-922.7 11950.08,-912.19 11942.43,-919.53 11948.67,-922.7"/>
</g>
<!-- ahriman_web_schemas_error_schema&#45;&gt;ahriman_web_views_service_update -->
<g id="edge755" class="edge">
<title>ahriman_web_schemas_error_schema&#45;&gt;ahriman_web_views_service_update</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12571.08,-1074.81C12579.03,-1070.59 12587.56,-1066.78 12596,-1064.28 12848.27,-989.38 12931.72,-1092.19 13187,-1028.28 13296.9,-1000.76 13415.08,-937.74 13477.14,-901.72"/>
<polygon fill="#ef4506" stroke="black" points="13478.81,-904.8 13485.67,-896.73 13475.27,-898.76 13478.81,-904.8"/>
</g>
<!-- ahriman_web_schemas_error_schema&#45;&gt;ahriman_web_views_status_logs -->
<g id="edge756" class="edge">
<title>ahriman_web_schemas_error_schema&#45;&gt;ahriman_web_views_status_logs</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12261,-990.51C12245.29,-970.17 12252.24,-942.56 12263.61,-919.46"/>
<polygon fill="#ef4506" stroke="black" points="12266.57,-921.34 12268.18,-910.87 12260.39,-918.06 12266.57,-921.34"/>
</g>
<!-- ahriman_web_schemas_error_schema&#45;&gt;ahriman_web_views_status_package -->
<g id="edge757" class="edge">
<title>ahriman_web_schemas_error_schema&#45;&gt;ahriman_web_views_status_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12482.45,-1087.4C12414.71,-1070.14 12301.11,-1040.04 12285,-1028.28 12269.54,-1016.99 12272.7,-1007.66 12261,-992.51"/>
<path fill="none" stroke="black" d="M12261,-990.51C12245.48,-970.41 12231.7,-945.89 12221.09,-924.64"/>
<polygon fill="#ef4506" stroke="black" points="12224.34,-923.32 12216.81,-915.86 12218.05,-926.38 12224.34,-923.32"/>
</g>
<!-- ahriman_web_schemas_error_schema&#45;&gt;ahriman_web_views_status_packages -->
<g id="edge758" class="edge">
<title>ahriman_web_schemas_error_schema&#45;&gt;ahriman_web_views_status_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12518.94,-1065.66C12510.3,-1044.55 12499.02,-1016.96 12489,-992.51"/>
<path fill="none" stroke="black" d="M12489,-990.51C12476.51,-960.03 12452.76,-931.75 12431.76,-910.82"/>
<polygon fill="#ef4506" stroke="black" points="12434.28,-908.39 12424.67,-903.94 12429.41,-913.42 12434.28,-908.39"/>
</g>
<!-- ahriman_web_schemas_error_schema&#45;&gt;ahriman_web_views_status_status -->
<g id="edge759" class="edge">
<title>ahriman_web_schemas_error_schema&#45;&gt;ahriman_web_views_status_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12483.5,-1085.61C12457.12,-1078.35 12424,-1069.92 12394,-1064.28 12313.62,-1049.16 12072.97,-1063.87 12033,-992.51"/>
</g>
<!-- ahriman_web_schemas_error_schema&#45;&gt;ahriman_web_views_user_login -->
<g id="edge760" class="edge">
<title>ahriman_web_schemas_error_schema&#45;&gt;ahriman_web_views_user_login</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12571.05,-1074.7C12579,-1070.5 12587.54,-1066.72 12596,-1064.28 12765.06,-1015.49 13211.85,-1045.16 13387,-1028.28 13495.22,-1017.84 13532.86,-1043.29 13629,-992.51"/>
<path fill="none" stroke="black" d="M13629,-990.51C13645.93,-981.57 13640.82,-969.51 13653,-954.74 13665.81,-939.2 13681.24,-923.31 13695.11,-909.86"/>
<polygon fill="#ef4506" stroke="black" points="13697.17,-912.73 13701.98,-903.29 13692.33,-907.68 13697.17,-912.73"/>
</g>
<!-- ahriman_web_schemas_error_schema&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge761" class="edge">
<title>ahriman_web_schemas_error_schema&#45;&gt;ahriman_web_views_user_logout</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12571.06,-1074.75C12579.01,-1070.54 12587.55,-1066.75 12596,-1064.28 12893.77,-977.37 12991.79,-1102.38 13293,-1028.28 13369,-1009.58 13379.95,-982.83 13453,-954.74 13502.99,-935.52 13521.66,-945.6 13568,-918.74 13571.37,-916.78 13574.71,-914.55 13577.94,-912.14"/>
<polygon fill="#ef4506" stroke="black" points="13580.01,-914.97 13585.6,-905.97 13575.62,-909.52 13580.01,-914.97"/>
</g>
<!-- ahriman_web_schemas_internal_status_schema&#45;&gt;ahriman_web_views_status_status -->
<g id="edge762" class="edge">
<title>ahriman_web_schemas_internal_status_schema&#45;&gt;ahriman_web_views_status_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10741.12,-1064.66C10734.46,-1039.44 10731.77,-1007.46 10754,-992.51"/>
</g>
<!-- ahriman_web_schemas_log_schema -->
<g id="node165" class="node">
<title>ahriman_web_schemas_log_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b85e3d" stroke="black" cx="11832" cy="-1101.05" rx="48.58" ry="36.54"/>
<text text-anchor="middle" x="11832" y="-1115.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="11832" y="-1104.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="11832" y="-1093.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">schemas.</text>
<text text-anchor="middle" x="11832" y="-1082.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">log_schema</text>
</g>
<!-- ahriman_web_schemas_log_schema&#45;&gt;ahriman_web_views_status_logs -->
<g id="edge763" class="edge">
<title>ahriman_web_schemas_log_schema&#45;&gt;ahriman_web_views_status_logs</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11814.45,-1066.9C11805.4,-1045.54 11797.66,-1017.24 11805,-992.51"/>
<path fill="none" stroke="black" d="M11805,-990.51C11818.43,-945.26 11858.98,-965.24 11905,-954.74 12053.58,-920.84 12107.24,-981.75 12246,-918.74 12249.6,-917.1 12253.11,-915.08 12256.49,-912.81"/>
<polygon fill="#b85e3d" stroke="black" points="12258.55,-915.64 12264.39,-906.79 12254.31,-910.07 12258.55,-915.64"/>
</g>
<!-- ahriman_web_schemas_login_schema -->
<g id="node166" class="node">
<title>ahriman_web_schemas_login_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b85e3d" stroke="black" cx="14479" cy="-1101.05" rx="54.39" ry="36.54"/>
<text text-anchor="middle" x="14479" y="-1115.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="14479" y="-1104.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="14479" y="-1093.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">schemas.</text>
<text text-anchor="middle" x="14479" y="-1082.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">login_schema</text>
</g>
<!-- ahriman_web_schemas_login_schema&#45;&gt;ahriman_web_views_user_login -->
<g id="edge764" class="edge">
<title>ahriman_web_schemas_login_schema&#45;&gt;ahriman_web_views_user_login</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M14520.59,-1076.9C14529.21,-1072.47 14538.31,-1068.04 14547,-1064.28 14620.76,-1032.33 14745.1,-1066.2 14713,-992.51"/>
</g>
<!-- ahriman_web_schemas_logs_schema -->
<g id="node167" class="node">
<title>ahriman_web_schemas_logs_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#994f33" stroke="black" cx="11518" cy="-1101.05" rx="52.15" ry="36.54"/>
<text text-anchor="middle" x="11518" y="-1115.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="11518" y="-1104.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="11518" y="-1093.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">schemas.</text>
<text text-anchor="middle" x="11518" y="-1082.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">logs_schema</text>
</g>
<!-- ahriman_web_schemas_logs_schema&#45;&gt;ahriman_web_views_status_logs -->
<g id="edge765" class="edge">
<title>ahriman_web_schemas_logs_schema&#45;&gt;ahriman_web_views_status_logs</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11554.72,-1074.83C11606.67,-1040.66 11705.82,-980.93 11800,-954.74 11991.6,-901.45 12063.93,-998.72 12246,-918.74 12249.62,-917.15 12253.15,-915.16 12256.53,-912.91"/>
<polygon fill="#994f33" stroke="black" points="12258.58,-915.75 12264.44,-906.93 12254.36,-910.16 12258.58,-915.75"/>
</g>
<!-- ahriman_web_schemas_oauth2_schema -->
<g id="node168" class="node">
<title>ahriman_web_schemas_oauth2_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b85e3d" stroke="black" cx="14308" cy="-1101.05" rx="60.62" ry="36.54"/>
<text text-anchor="middle" x="14308" y="-1115.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="14308" y="-1104.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="14308" y="-1093.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">schemas.</text>
<text text-anchor="middle" x="14308" y="-1082.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">oauth2_schema</text>
</g>
<!-- ahriman_web_schemas_oauth2_schema&#45;&gt;ahriman_web_views_user_login -->
<g id="edge766" class="edge">
<title>ahriman_web_schemas_oauth2_schema&#45;&gt;ahriman_web_views_user_login</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M14359.4,-1081.07C14377.15,-1075.04 14397.28,-1068.78 14416,-1064.28 14548.04,-1032.54 14767.23,-1117.01 14713,-992.51"/>
<path fill="none" stroke="black" d="M14713,-990.51C14675.35,-904.08 13977.85,-881.02 13783.12,-876.26"/>
<polygon fill="#b85e3d" stroke="black" points="13783.41,-872.76 13773.33,-876.03 13783.25,-879.76 13783.41,-872.76"/>
</g>
<!-- ahriman_web_schemas_package_name_schema -->
<g id="node169" class="node">
<title>ahriman_web_schemas_package_name_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c45931" stroke="black" cx="11361" cy="-1101.05" rx="86.03" ry="36.54"/>
<text text-anchor="middle" x="11361" y="-1115.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="11361" y="-1104.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="11361" y="-1093.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">schemas.</text>
<text text-anchor="middle" x="11361" y="-1082.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">package_name_schema</text>
</g>
<!-- ahriman_web_schemas_package_name_schema&#45;&gt;ahriman_web_views_status_logs -->
<g id="edge767" class="edge">
<title>ahriman_web_schemas_package_name_schema&#45;&gt;ahriman_web_views_status_logs</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11404.1,-1068.98C11455.18,-1034.07 11544.22,-979.11 11630,-954.74 11761.9,-917.26 12119.85,-972.49 12246,-918.74 12249.64,-917.19 12253.18,-915.23 12256.57,-913"/>
<polygon fill="#c45931" stroke="black" points="12258.6,-915.85 12264.5,-907.05 12254.4,-910.25 12258.6,-915.85"/>
</g>
<!-- ahriman_web_schemas_package_name_schema&#45;&gt;ahriman_web_views_status_package -->
<g id="edge768" class="edge">
<title>ahriman_web_schemas_package_name_schema&#45;&gt;ahriman_web_views_status_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11402.97,-1068.81C11452.29,-1034.01 11537.98,-979.42 11621,-954.74 11845.61,-887.96 11929.63,-1006.25 12147,-918.74 12151.93,-916.75 12156.74,-914.12 12161.31,-911.12"/>
<polygon fill="#c45931" stroke="black" points="12163.09,-914.15 12169.12,-905.44 12158.97,-908.49 12163.09,-914.15"/>
</g>
<!-- ahriman_web_schemas_package_names_schema -->
<g id="node170" class="node">
<title>ahriman_web_schemas_package_names_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#dd4e18" stroke="black" cx="13302" cy="-1101.05" rx="90.52" ry="36.54"/>
<text text-anchor="middle" x="13302" y="-1115.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="13302" y="-1104.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="13302" y="-1093.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">schemas.</text>
<text text-anchor="middle" x="13302" y="-1082.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">package_names_schema</text>
</g>
<!-- ahriman_web_schemas_package_names_schema&#45;&gt;ahriman_web_views_service_add -->
<g id="edge769" class="edge">
<title>ahriman_web_schemas_package_names_schema&#45;&gt;ahriman_web_views_service_add</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13222.09,-1083.48C13089.82,-1055.2 12817.73,-993.36 12594,-918.74 12574.28,-912.16 12553.01,-903.63 12534.81,-895.86"/>
<polygon fill="#dd4e18" stroke="black" points="12536.44,-892.75 12525.87,-891.99 12533.66,-899.17 12536.44,-892.75"/>
</g>
<!-- ahriman_web_schemas_package_names_schema&#45;&gt;ahriman_web_views_service_rebuild -->
<g id="edge770" class="edge">
<title>ahriman_web_schemas_package_names_schema&#45;&gt;ahriman_web_views_service_rebuild</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13308.65,-1064.38C13312.7,-1034.12 13314.77,-990.12 13301,-954.74 13294.12,-937.06 13281.31,-920.85 13268.39,-907.75"/>
<polygon fill="#dd4e18" stroke="black" points="13271.09,-905.49 13261.47,-901.06 13266.22,-910.53 13271.09,-905.49"/>
</g>
<!-- ahriman_web_schemas_package_names_schema&#45;&gt;ahriman_web_views_service_remove -->
<g id="edge771" class="edge">
<title>ahriman_web_schemas_package_names_schema&#45;&gt;ahriman_web_views_service_remove</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13300.61,-1064.24C13298.91,-1037.49 13295.18,-1003.69 13287,-992.51"/>
<path fill="none" stroke="black" d="M13287,-990.51C13275.69,-975.06 13278.89,-965.41 13263,-954.74 13197.08,-910.47 13164.95,-938.33 13088,-918.74 13056.06,-910.61 13020.62,-899.83 12993.01,-891.03"/>
<polygon fill="#dd4e18" stroke="black" points="12994.1,-887.7 12983.51,-887.98 12991.96,-894.37 12994.1,-887.7"/>
</g>
<!-- ahriman_web_schemas_package_names_schema&#45;&gt;ahriman_web_views_service_request -->
<g id="edge772" class="edge">
<title>ahriman_web_schemas_package_names_schema&#45;&gt;ahriman_web_views_service_request</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13287,-990.51C13275.69,-975.06 13277.65,-967.06 13263,-954.74 13232.84,-929.39 13214.89,-940.42 13182,-918.74 13178.74,-916.59 13175.5,-914.22 13172.32,-911.72"/>
<polygon fill="#dd4e18" stroke="black" points="13174.67,-909.12 13164.76,-905.39 13170.18,-914.49 13174.67,-909.12"/>
</g>
<!-- ahriman_web_schemas_package_properties_schema -->
<g id="node171" class="node">
<title>ahriman_web_schemas_package_properties_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b85e3d" stroke="black" cx="11866" cy="-1320.13" rx="100.32" ry="36.54"/>
<text text-anchor="middle" x="11866" y="-1334.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="11866" y="-1323.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="11866" y="-1312.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">schemas.</text>
<text text-anchor="middle" x="11866" y="-1301.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">package_properties_schema</text>
</g>
<!-- ahriman_web_schemas_package_properties_schema&#45;&gt;ahriman_web_schemas_package_schema -->
<g id="edge773" class="edge">
<title>ahriman_web_schemas_package_properties_schema&#45;&gt;ahriman_web_schemas_package_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11826.9,-1286.28C11812.9,-1274.51 11797.01,-1261.16 11782.58,-1249.04"/>
<polygon fill="#b85e3d" stroke="black" points="11784.88,-1246.4 11774.97,-1242.65 11780.37,-1251.76 11784.88,-1246.4"/>
</g>
<!-- ahriman_web_schemas_package_schema&#45;&gt;ahriman_web_schemas_package_status_schema -->
<g id="edge774" class="edge">
<title>ahriman_web_schemas_package_schema&#45;&gt;ahriman_web_schemas_package_status_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11718.53,-1175.27C11713.36,-1166.14 11707.69,-1156.15 11702.25,-1146.57"/>
<polygon fill="#8a472e" stroke="black" points="11705.43,-1145.07 11697.45,-1138.1 11699.34,-1148.52 11705.43,-1145.07"/>
</g>
<!-- ahriman_web_schemas_package_status_schema&#45;&gt;ahriman_web_views_status_package -->
<g id="edge775" class="edge">
<title>ahriman_web_schemas_package_status_schema&#45;&gt;ahriman_web_views_status_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11652.21,-1065.72C11631.97,-1033.17 11610.92,-984.88 11639,-954.74 11677.57,-913.34 12094.53,-939.94 12147,-918.74 12151.93,-916.75 12156.73,-914.11 12161.31,-911.11"/>
<polygon fill="#8b3f22" stroke="black" points="12163.09,-914.14 12169.11,-905.42 12158.97,-908.48 12163.09,-914.14"/>
</g>
<!-- ahriman_web_schemas_package_status_schema&#45;&gt;ahriman_web_views_status_packages -->
<g id="edge776" class="edge">
<title>ahriman_web_schemas_package_status_schema&#45;&gt;ahriman_web_views_status_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11725.74,-1070.19C11784.11,-1036.02 11885.94,-981.35 11981,-954.74 12135.42,-911.52 12192.51,-981.68 12340,-918.74 12344.04,-917.01 12348,-914.85 12351.81,-912.42"/>
<polygon fill="#8b3f22" stroke="black" points="12353.6,-915.44 12359.71,-906.78 12349.54,-909.74 12353.6,-915.44"/>
</g>
<!-- ahriman_web_schemas_pgp_key_id_schema -->
<g id="node174" class="node">
<title>ahriman_web_schemas_pgp_key_id_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b85e3d" stroke="black" cx="12680" cy="-1101.05" rx="74.91" ry="36.54"/>
<text text-anchor="middle" x="12680" y="-1115.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="12680" y="-1104.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="12680" y="-1093.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">schemas.</text>
<text text-anchor="middle" x="12680" y="-1082.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">pgp_key_id_schema</text>
</g>
<!-- ahriman_web_schemas_pgp_key_id_schema&#45;&gt;ahriman_web_views_service_pgp -->
<g id="edge777" class="edge">
<title>ahriman_web_schemas_pgp_key_id_schema&#45;&gt;ahriman_web_views_service_pgp</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12667.96,-1064.94C12660.55,-1043.82 12650.64,-1016.46 12641,-992.51"/>
</g>
<!-- ahriman_web_schemas_pgp_key_schema -->
<g id="node175" class="node">
<title>ahriman_web_schemas_pgp_key_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b85e3d" stroke="black" cx="12839" cy="-1101.05" rx="65.52" ry="36.54"/>
<text text-anchor="middle" x="12839" y="-1115.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="12839" y="-1104.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="12839" y="-1093.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">schemas.</text>
<text text-anchor="middle" x="12839" y="-1082.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">pgp_key_schema</text>
</g>
<!-- ahriman_web_schemas_pgp_key_schema&#45;&gt;ahriman_web_views_service_pgp -->
<g id="edge778" class="edge">
<title>ahriman_web_schemas_pgp_key_schema&#45;&gt;ahriman_web_views_service_pgp</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12790.8,-1075.81C12733.21,-1046.57 12644.15,-1000.34 12641,-992.51"/>
</g>
<!-- ahriman_web_schemas_remote_schema&#45;&gt;ahriman_web_schemas_package_schema -->
<g id="edge779" class="edge">
<title>ahriman_web_schemas_remote_schema&#45;&gt;ahriman_web_schemas_package_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12037.64,-1295.6C12028.01,-1291.15 12017.8,-1286.81 12008,-1283.36 11942.52,-1260.28 11923.03,-1265.44 11856,-1247.36 11839.47,-1242.9 11821.75,-1237.73 11805.2,-1232.74"/>
<polygon fill="#a15335" stroke="black" points="11806.55,-1229.49 11795.96,-1229.93 11804.51,-1236.19 11806.55,-1229.49"/>
</g>
<!-- ahriman_web_schemas_search_schema -->
<g id="node177" class="node">
<title>ahriman_web_schemas_search_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b85e3d" stroke="black" cx="10186" cy="-1101.05" rx="60.62" ry="36.54"/>
<text text-anchor="middle" x="10186" y="-1115.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10186" y="-1104.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="10186" y="-1093.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">schemas.</text>
<text text-anchor="middle" x="10186" y="-1082.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">search_schema</text>
</g>
<!-- ahriman_web_schemas_search_schema&#45;&gt;ahriman_web_views_service_search -->
<g id="edge780" class="edge">
<title>ahriman_web_schemas_search_schema&#45;&gt;ahriman_web_views_service_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10134.37,-1081.55C10096.57,-1064.35 10052.85,-1034.97 10059,-992.51"/>
<path fill="none" stroke="black" d="M10059,-990.51C10061.58,-972.69 10062.66,-964.16 10078,-954.74 10165.49,-900.98 11830.77,-957.15 11926,-918.74 11929.67,-917.26 11933.23,-915.35 11936.63,-913.16"/>
<polygon fill="#b85e3d" stroke="black" points="11938.64,-916.03 11944.58,-907.26 11934.47,-910.41 11938.64,-916.03"/>
</g>
<!-- ahriman_web_schemas_status_schema&#45;&gt;ahriman_web_schemas_internal_status_schema -->
<g id="edge781" class="edge">
<title>ahriman_web_schemas_status_schema&#45;&gt;ahriman_web_schemas_internal_status_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11363.32,-1184.27C11354.87,-1180.12 11345.85,-1176.35 11337,-1173.82 11129.65,-1114.36 11063.94,-1182.88 10853,-1137.82 10843.94,-1135.88 10834.59,-1133.31 10825.42,-1130.43"/>
<polygon fill="#c14415" stroke="black" points="10826.8,-1127.2 10816.2,-1127.41 10824.61,-1133.85 10826.8,-1127.2"/>
</g>
<!-- ahriman_web_schemas_status_schema&#45;&gt;ahriman_web_schemas_logs_schema -->
<g id="edge782" class="edge">
<title>ahriman_web_schemas_status_schema&#45;&gt;ahriman_web_schemas_logs_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11436.78,-1179.35C11450.09,-1166.67 11465.69,-1151.83 11479.64,-1138.56"/>
<polygon fill="#c14415" stroke="black" points="11481.7,-1141.43 11486.53,-1132 11476.87,-1136.35 11481.7,-1141.43"/>
</g>
<!-- ahriman_web_schemas_status_schema&#45;&gt;ahriman_web_schemas_package_status_schema -->
<g id="edge783" class="edge">
<title>ahriman_web_schemas_status_schema&#45;&gt;ahriman_web_schemas_package_status_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11454.26,-1190.11C11495.96,-1173.63 11556.34,-1149.75 11603.71,-1131.02"/>
<polygon fill="#c14415" stroke="black" points="11604.81,-1134.35 11612.82,-1127.42 11602.23,-1127.85 11604.81,-1134.35"/>
</g>
<!-- ahriman_web_schemas_status_schema&#45;&gt;ahriman_web_views_status_status -->
<g id="edge784" class="edge">
<title>ahriman_web_schemas_status_schema&#45;&gt;ahriman_web_views_status_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11363.29,-1184.37C11354.84,-1180.21 11345.83,-1176.42 11337,-1173.82 11249.68,-1148.13 10990.47,-1204.95 10929,-1137.82 10813.45,-1011.62 11062.16,-1012.29 11095,-992.51"/>
<path fill="none" stroke="black" d="M11095,-990.51C11111.27,-980.43 11102.29,-964.08 11119,-954.74 11206.45,-905.84 11927.47,-957.17 12020,-918.74 12023.66,-917.22 12027.2,-915.28 12030.6,-913.07"/>
<polygon fill="#c14415" stroke="black" points="12032.62,-915.93 12038.54,-907.15 12028.43,-910.33 12032.62,-915.93"/>
</g>
<!-- ahriman_web_views -->
<g id="node179" class="node">
<title>ahriman_web_views</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f95010" stroke="black" cx="12227" cy="-756.87" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="12227" y="-765.37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="12227" y="-754.37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="12227" y="-743.37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views</text>
</g>
<!-- ahriman_web_views&#45;&gt;ahriman_web_routes -->
<g id="edge785" 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="M12235.5,-728.18C12239.39,-715.51 12244.06,-700.29 12248.27,-686.56"/>
<polygon fill="#f95010" stroke="black" points="12251.5,-687.97 12251.09,-677.38 12244.81,-685.92 12251.5,-687.97"/>
</g>
<!-- ahriman_web_views_api -->
<g id="node180" class="node">
<title>ahriman_web_views_api</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c26947" stroke="black" cx="11597" cy="-874.19" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="11597" y="-888.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="11597" y="-877.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">web.</text>
<text text-anchor="middle" x="11597" y="-866.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">views.</text>
<text text-anchor="middle" x="11597" y="-855.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">api</text>
</g>
<!-- ahriman_web_views_api&#45;&gt;ahriman_web_routes -->
<g id="edge786" class="edge">
<title>ahriman_web_views_api&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11620.99,-845.13C11627.77,-838.97 11635.61,-833.21 11644,-829.64 11777.52,-772.85 12393.68,-862.37 12293,-757.87"/>
<path fill="none" stroke="black" d="M12293,-755.87C12283.37,-745.88 12274.25,-713.81 12268.06,-687.27"/>
<polygon fill="#c26947" stroke="black" points="12271.53,-686.78 12265.92,-677.8 12264.7,-688.32 12271.53,-686.78"/>
</g>
<!-- ahriman_web_views_api_docs&#45;&gt;ahriman_web_routes -->
<g id="edge787" class="edge">
<title>ahriman_web_views_api_docs&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M14970.69,-834.78C14957.19,-809.95 14936.72,-778.54 14911,-757.87"/>
</g>
<!-- ahriman_web_views_api_swagger&#45;&gt;ahriman_web_routes -->
<g id="edge788" class="edge">
<title>ahriman_web_views_api_swagger&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M14915,-835.65C14926,-809.37 14933.37,-775.85 14911,-757.87"/>
<path fill="none" stroke="black" d="M14911,-755.87C14805.68,-671.25 12666.22,-651.41 12310.05,-648.69"/>
<polygon fill="#7a3f28" stroke="black" points="12310.15,-645.19 12300.13,-648.61 12310.1,-652.19 12310.15,-645.19"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_api_docs -->
<g id="edge789" class="edge">
<title>ahriman_web_views_base&#45;&gt;ahriman_web_views_api_docs</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13771.8,-989.76C13966.53,-985.78 14832.25,-965.57 14942,-918.74 14945.64,-917.19 14949.18,-915.22 14952.57,-913"/>
<polygon fill="#952b03" stroke="black" points="14954.6,-915.85 14960.49,-907.04 14950.4,-910.25 14954.6,-915.85"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_api_swagger -->
<g id="edge790" class="edge">
<title>ahriman_web_views_base&#45;&gt;ahriman_web_views_api_swagger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13771.75,-990.02C13940.1,-987.58 14608.51,-974.5 14810,-918.74 14824.12,-914.83 14838.62,-908.43 14851.56,-901.73"/>
<polygon fill="#952b03" stroke="black" points="14853.09,-904.88 14860.23,-897.04 14849.77,-898.72 14853.09,-904.88"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_index -->
<g id="edge791" 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="M13771.19,-986.23C13929.55,-968.5 14534.69,-900.75 14713.17,-880.77"/>
<polygon fill="#952b03" stroke="black" points="14713.49,-884.26 14723.04,-879.67 14712.71,-877.3 14713.49,-884.26"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_service_add -->
<g id="edge792" 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="M13704.32,-966.55C13697.12,-961.77 13689.12,-957.41 13681,-954.74 13451.42,-879.21 12830.22,-969.86 12594,-918.74 12573.68,-914.34 12552.31,-906.19 12534.19,-898.12"/>
<polygon fill="#952b03" stroke="black" points="12535.85,-895.03 12525.3,-894.04 12532.93,-901.39 12535.85,-895.03"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_service_pgp -->
<g id="edge793" class="edge">
<title>ahriman_web_views_base&#45;&gt;ahriman_web_views_service_pgp</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13704.29,-966.63C13697.09,-961.85 13689.1,-957.46 13681,-954.74 13515.89,-899.25 13071.19,-937.32 12898,-918.74 12825,-910.91 12741.32,-895.51 12689.8,-885.29"/>
<polygon fill="#952b03" stroke="black" points="12690.66,-881.89 12680.17,-883.36 12689.29,-888.75 12690.66,-881.89"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_service_rebuild -->
<g id="edge794" class="edge">
<title>ahriman_web_views_base&#45;&gt;ahriman_web_views_service_rebuild</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13703.74,-967.18C13696.63,-962.43 13688.81,-957.93 13681,-954.74 13594.54,-919.46 13565.97,-934.91 13474,-918.74 13406.25,-906.83 13327.99,-892.88 13278.51,-884.05"/>
<polygon fill="#952b03" stroke="black" points="13279.14,-880.6 13268.68,-882.29 13277.9,-887.49 13279.14,-880.6"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_service_remove -->
<g id="edge795" 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="M13704.26,-966.71C13697.07,-961.93 13689.08,-957.52 13681,-954.74 13556.17,-911.76 13217.93,-942.13 13088,-918.74 13055.3,-912.85 13019.55,-901.97 12991.98,-892.55"/>
<polygon fill="#952b03" stroke="black" points="12993.48,-889.37 12982.88,-889.39 12991.18,-895.98 12993.48,-889.37"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_service_request -->
<g id="edge796" 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="M13704.24,-966.78C13697.04,-961.99 13689.07,-957.57 13681,-954.74 13471.17,-881.16 13385.96,-1007.3 13182,-918.74 13178.37,-917.16 13174.84,-915.18 13171.46,-912.94"/>
<polygon fill="#952b03" stroke="black" points="13173.63,-910.2 13163.54,-906.97 13169.41,-915.79 13173.63,-910.2"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_service_search -->
<g id="edge797" 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="M13704.61,-966.67C13697.34,-961.82 13689.24,-957.4 13681,-954.74 13505.32,-898.06 12191.12,-987.98 12020,-918.74 12016.33,-917.25 12012.77,-915.34 12009.37,-913.15"/>
<polygon fill="#952b03" stroke="black" points="12011.54,-910.4 12001.42,-907.25 12007.37,-916.02 12011.54,-910.4"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_service_update -->
<g id="edge798" class="edge">
<title>ahriman_web_views_base&#45;&gt;ahriman_web_views_service_update</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13703.4,-967.94C13696.3,-963.17 13688.58,-958.45 13681,-954.74 13633.66,-931.55 13613.54,-945.29 13568,-918.74 13564.63,-916.77 13561.3,-914.53 13558.07,-912.12"/>
<polygon fill="#952b03" stroke="black" points="13560.4,-909.5 13550.42,-905.94 13556,-914.95 13560.4,-909.5"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_status_logs -->
<g id="edge799" class="edge">
<title>ahriman_web_views_base&#45;&gt;ahriman_web_views_status_logs</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13704.33,-966.51C13697.13,-961.74 13689.13,-957.38 13681,-954.74 13539.27,-908.6 12478.03,-975 12340,-918.74 12336.34,-917.25 12332.78,-915.33 12329.38,-913.13"/>
<polygon fill="#952b03" stroke="black" points="12331.55,-910.38 12321.43,-907.22 12327.37,-916 12331.55,-910.38"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_status_package -->
<g id="edge800" 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="M13704.33,-966.5C13697.13,-961.73 13689.13,-957.38 13681,-954.74 13529.29,-905.51 12393.75,-978.81 12246,-918.74 12242.33,-917.25 12238.78,-915.33 12235.38,-913.13"/>
<polygon fill="#952b03" stroke="black" points="12237.54,-910.39 12227.43,-907.23 12233.37,-916 12237.54,-910.39"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_status_packages -->
<g id="edge801" 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="M13704.32,-966.53C13697.13,-961.75 13689.12,-957.39 13681,-954.74 13419.17,-869.19 12699.02,-1017.81 12442,-918.74 12437.84,-917.14 12433.79,-915.04 12429.9,-912.63"/>
<polygon fill="#952b03" stroke="black" points="12432.04,-909.86 12421.84,-906.98 12428.02,-915.59 12432.04,-909.86"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_status_status -->
<g id="edge802" 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="M13704.33,-966.5C13697.14,-961.72 13689.13,-957.37 13681,-954.74 13519.32,-902.41 12316.72,-960.54 12152,-918.74 12137.8,-915.14 12123.27,-908.83 12110.34,-902.12"/>
<polygon fill="#952b03" stroke="black" points="12112.13,-899.11 12101.67,-897.41 12108.79,-905.26 12112.13,-899.11"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_user_login -->
<g id="edge803" 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="M13733,-954.65C13733,-947.01 13733,-938.78 13733,-930.6"/>
<polygon fill="#952b03" stroke="black" points="13736.5,-930.66 13733,-920.66 13729.5,-930.66 13736.5,-930.66"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge804" 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="M13706.52,-964.63C13690.49,-948.97 13669.81,-928.75 13652.16,-911.51"/>
<polygon fill="#952b03" stroke="black" points="13654.97,-909.36 13645.37,-904.88 13650.08,-914.37 13654.97,-909.36"/>
</g>
<!-- ahriman_web_views_index&#45;&gt;ahriman_web_routes -->
<g id="edge805" 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="M14724.29,-871.47C14410.78,-857.56 12298.51,-763.6 12293,-757.87"/>
</g>
<!-- ahriman_web_views_service -->
<g id="node185" class="node">
<title>ahriman_web_views_service</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c26947" stroke="black" cx="11691" cy="-874.19" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="11691" y="-888.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="11691" y="-877.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">web.</text>
<text text-anchor="middle" x="11691" y="-866.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">views.</text>
<text text-anchor="middle" x="11691" y="-855.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">service</text>
</g>
<!-- ahriman_web_views_service&#45;&gt;ahriman_web_routes -->
<g id="edge806" 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="M11715.01,-845.19C11721.79,-839.02 11729.62,-833.26 11738,-829.64 11852.19,-780.39 12379.29,-847.43 12293,-757.87"/>
</g>
<!-- ahriman_web_views_service_add&#45;&gt;ahriman_web_routes -->
<g id="edge807" 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="M12460.3,-844.12C12454.5,-838.97 12448.25,-833.9 12442,-829.64 12381.26,-788.26 12344,-810.81 12293,-757.87"/>
</g>
<!-- ahriman_web_views_service_pgp&#45;&gt;ahriman_web_routes -->
<g id="edge808" class="edge">
<title>ahriman_web_views_service_pgp&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12605.4,-857.33C12585.24,-848.62 12559.44,-837.94 12536,-829.64 12429.84,-792.07 12371.13,-838.97 12293,-757.87"/>
</g>
<!-- ahriman_web_views_service_rebuild&#45;&gt;ahriman_web_routes -->
<g id="edge809" class="edge">
<title>ahriman_web_views_service_rebuild&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13201.65,-842.37C13195.68,-837.32 13189.03,-832.73 13182,-829.64 13000.54,-749.93 12430.52,-900.6 12293,-757.87"/>
</g>
<!-- ahriman_web_views_service_remove&#45;&gt;ahriman_web_routes -->
<g id="edge810" 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="M12907,-866.78C12768.49,-843.35 12298.44,-763.52 12293,-757.87"/>
</g>
<!-- ahriman_web_views_service_request&#45;&gt;ahriman_web_routes -->
<g id="edge811" 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="M13098.17,-859.82C13069.58,-849.98 13028.76,-837.06 12992,-829.64 12838.93,-798.78 12401.34,-870.32 12293,-757.87"/>
</g>
<!-- ahriman_web_views_service_search&#45;&gt;ahriman_web_routes -->
<g id="edge812" 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="M12000.5,-842.71C12006.46,-837.62 12013.07,-832.94 12020,-829.64 12133.29,-775.75 12380.05,-848.22 12293,-757.87"/>
</g>
<!-- ahriman_web_views_service_update&#45;&gt;ahriman_web_routes -->
<g id="edge813" class="edge">
<title>ahriman_web_views_service_update&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13482.99,-865.18C13434.98,-855.35 13349.73,-838.86 13276,-829.64 13167.33,-816.06 12368.98,-836.74 12293,-757.87"/>
</g>
<!-- ahriman_web_views_status -->
<g id="node193" class="node">
<title>ahriman_web_views_status</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c26947" stroke="black" cx="11785" cy="-874.19" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="11785" y="-888.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="11785" y="-877.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">web.</text>
<text text-anchor="middle" x="11785" y="-866.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">views.</text>
<text text-anchor="middle" x="11785" y="-855.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">status</text>
</g>
<!-- ahriman_web_views_status&#45;&gt;ahriman_web_routes -->
<g id="edge814" 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="M11809.05,-845.27C11815.83,-839.1 11823.65,-833.32 11832,-829.64 12021.82,-746.18 12436.87,-907.2 12293,-757.87"/>
</g>
<!-- ahriman_web_views_status_logs&#45;&gt;ahriman_web_routes -->
<g id="edge815" class="edge">
<title>ahriman_web_views_status_logs&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12305.85,-831.91C12310.76,-807.2 12311.41,-776.98 12293,-757.87"/>
</g>
<!-- ahriman_web_views_status_package&#45;&gt;ahriman_web_routes -->
<g id="edge816" 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="M12228.77,-845.37C12243.42,-830.79 12260.73,-812.15 12274,-793.64 12284.49,-779.02 12305.49,-770.84 12293,-757.87"/>
</g>
<!-- ahriman_web_views_status_packages&#45;&gt;ahriman_web_routes -->
<g id="edge817" 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="M12364.18,-839.43C12345.05,-815.91 12318.34,-784.17 12293,-757.87"/>
</g>
<!-- ahriman_web_views_status_status&#45;&gt;ahriman_web_routes -->
<g id="edge818" 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="M12096.09,-844.8C12103.16,-839.1 12110.99,-833.64 12119,-829.64 12193.86,-792.3 12351.04,-818.12 12293,-757.87"/>
</g>
<!-- ahriman_web_views_user -->
<g id="node198" class="node">
<title>ahriman_web_views_user</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c26947" stroke="black" cx="11879" cy="-874.19" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="11879" y="-888.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="11879" y="-877.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">web.</text>
<text text-anchor="middle" x="11879" y="-866.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">views.</text>
<text text-anchor="middle" x="11879" y="-855.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">user</text>
</g>
<!-- ahriman_web_views_user&#45;&gt;ahriman_web_routes -->
<g id="edge819" 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="M11903.11,-845.4C11909.88,-839.23 11917.69,-833.41 11926,-829.64 12077.4,-761.09 12408.32,-877.56 12293,-757.87"/>
</g>
<!-- ahriman_web_views_user_login&#45;&gt;ahriman_web_routes -->
<g id="edge820" 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="M13701.07,-848.94C13689.39,-841.37 13675.67,-833.89 13662,-829.64 13516.54,-784.44 12398.69,-867.56 12293,-757.87"/>
</g>
<!-- ahriman_web_views_user_logout&#45;&gt;ahriman_web_routes -->
<g id="edge821" 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="M13587.71,-842.23C13581.73,-837.19 13575.06,-832.65 13568,-829.64 13437.41,-774.16 12391.45,-860.05 12293,-757.87"/>
</g>
<!-- ahriman_web_web&#45;&gt;ahriman_application_handlers_web -->
<g id="edge822" 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="M9833.34,-542.71C9773.81,-537.53 9666.55,-518.04 9667,-444.81"/>
</g>
<!-- aioauthclient -->
<g id="node202" class="node">
<title>aioauthclient</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#c08540" stroke="black" points="14062.5,-2294.22 14059.5,-2298.22 14038.5,-2298.22 14035.5,-2294.22 13991.5,-2294.22 13991.5,-2258.22 14062.5,-2258.22 14062.5,-2294.22"/>
<text text-anchor="middle" x="14027" y="-2273.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">aioauthclient</text>
</g>
<!-- aioauthclient&#45;&gt;ahriman_core_auth_oauth -->
<g id="edge823" 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="M14032.74,-2257.8C14044.49,-2219.35 14068.28,-2124.74 14045,-2050.36"/>
<path fill="none" stroke="black" d="M14045,-2048.36C14030.31,-2002.88 14020.15,-1981.65 14045,-1940.82"/>
</g>
<!-- aiohttp -->
<g id="node203" class="node">
<title>aiohttp</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#f9cd06" stroke="black" points="13705,-1629.2 13702,-1633.2 13681,-1633.2 13678,-1629.2 13651,-1629.2 13651,-1593.2 13705,-1593.2 13705,-1629.2"/>
<text text-anchor="middle" x="13678" y="-1608.7" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">aiohttp</text>
</g>
<!-- aiohttp&#45;&gt;ahriman_core_log_filtered_access_logger -->
<g id="edge824" class="edge">
<title>aiohttp&#45;&gt;ahriman_core_log_filtered_access_logger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13650.82,-1610.39C13498.86,-1611.11 12753.72,-1610.88 12538,-1538.43 12343.42,-1473.09 12340.9,-1365.97 12153,-1283.36 12092.22,-1256.63 12071.4,-1267.11 12008,-1247.36 11919.57,-1219.81 11903.75,-1192.36 11813,-1173.82 11628.64,-1136.14 11146.88,-1193.07 10967,-1137.82 10907.57,-1119.56 10907.26,-1083.1 10848,-1064.28 10599.73,-985.43 10517.73,-1082.78 10263,-1028.28 10254.4,-1026.44 10245.54,-1023.95 10236.85,-1021.15"/>
<polygon fill="#f9cd06" stroke="black" points="10237.99,-1017.84 10227.39,-1017.94 10235.74,-1024.47 10237.99,-1017.84"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_apispec -->
<g id="edge825" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_apispec</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M14037,-1500.67C14403.32,-1426.21 14508.15,-1500.66 14875,-1428.9 14980.95,-1408.17 15012.47,-1409.05 15107,-1356.9 15151.03,-1332.6 15154.22,-1315.38 15193,-1283.36 15232.45,-1250.78 15259.82,-1257.2 15283,-1211.59"/>
<path fill="none" stroke="black" d="M15283,-1209.59C15311.23,-1151.17 15307.42,-1128.32 15297,-1064.28 15295.17,-1053.02 15291.82,-1041.14 15288.19,-1030.36"/>
<polygon fill="#f9cd06" stroke="black" points="15291.51,-1029.26 15284.87,-1021.02 15284.92,-1031.61 15291.51,-1029.26"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_cors -->
<g id="edge826" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_cors</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M15169,-1100.05C15174.44,-990.54 15167.88,-861.13 15163.8,-797.4"/>
<polygon fill="#f9cd06" stroke="black" points="15167.31,-797.54 15163.16,-787.79 15160.33,-798 15167.31,-797.54"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_middlewares -->
<g id="edge827" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_middlewares</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13650.8,-1609.79C13512.45,-1607.46 12886.1,-1593.95 12701,-1538.43 12696.05,-1536.95 12379.6,-1360.61 12376,-1356.9 12350.41,-1330.46 12367.82,-1304.91 12338,-1283.36 12255.57,-1223.77 12202.98,-1292.83 12112,-1247.36 12069.96,-1226.34 12079.23,-1192.26 12036,-1173.82 11839.23,-1089.89 11271.58,-1219.84 11074,-1137.82 11029.7,-1119.42 11038.3,-1084.92 10995,-1064.28 10891.69,-1015.02 10849.54,-1061.48 10740,-1028.28 10438.91,-937.03 10108.94,-745.39 9993.07,-675"/>
<polygon fill="#f9cd06" stroke="black" points="9995.15,-672.17 9984.79,-669.95 9991.5,-678.14 9995.15,-672.17"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge828" 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="M13705.31,-1605.74C13819.86,-1587.07 14272.99,-1514.03 14647,-1464.9 14788.46,-1446.31 14827.1,-1461.5 14966,-1428.9 15057.16,-1407.5 15082.69,-1403.33 15164,-1356.9 15230.5,-1318.92 15249.8,-1307.66 15297,-1247.36 15348.2,-1181.95 15385.04,-1091.57 15404.12,-1037.87"/>
<polygon fill="#f9cd06" stroke="black" points="15407.32,-1039.33 15407.31,-1028.74 15400.71,-1037.03 15407.32,-1039.33"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_middlewares_exception_handler -->
<g id="edge829" 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="M13705.13,-1600.6C13727.07,-1593.01 13758.83,-1582.4 13787,-1574.43 13853.39,-1555.66 13871.9,-1558.19 13938,-1538.43 13982.83,-1525.04 13991.15,-1511.96 14037,-1502.67"/>
<path fill="none" stroke="black" d="M14037,-1500.67C14082.03,-1491.53 14089.11,-1474.71 14134,-1464.9 14336.94,-1420.54 14393.62,-1452.51 14600,-1428.9 14626.46,-1425.87 15052.79,-1373.01 15074,-1356.9 15102.52,-1335.22 15088.54,-1314.06 15107,-1283.36 15117.45,-1265.99 15126.27,-1265.65 15135,-1247.36 15163.58,-1187.5 15185.59,-1166.27 15169,-1102.05"/>
<path fill="none" stroke="black" d="M15169,-1100.05C15168,-988.01 15071.99,-985.94 15055,-875.19"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_routes -->
<g id="edge830" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13650.71,-1608.48C13554.4,-1602.08 13231.05,-1578.08 13136,-1538.43 13086.72,-1517.88 13090.17,-1485.72 13041,-1464.9 12937.23,-1420.95 12897.56,-1462.53 12790,-1428.9 12755.85,-1418.22 12750.17,-1408.55 12718,-1392.9 12684.39,-1376.54 12674,-1376.21 12642,-1356.9 12595.38,-1328.76 12594.45,-1303.85 12544,-1283.36 12427.75,-1236.14 12372.91,-1309.66 12264,-1247.36 12228.11,-1226.82 12243.78,-1192.72 12207,-1173.82 12113.94,-1125.98 11338.56,-1213.2 11266,-1137.82 11135.33,-1002.05 11354.51,-986.26 11464,-954.74 11533.51,-934.73 12054.77,-960.26 12114,-918.74 12149.25,-894.03 12119.84,-858.27 12152,-829.64 12194.23,-792.06 12230.21,-829.4 12274,-793.64 12287.94,-782.26 12305.49,-770.84 12293,-757.87"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_api_swagger -->
<g id="edge831" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_views_api_swagger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13688.93,-1593.17C13710.13,-1561.74 13760.13,-1495.11 13821,-1464.9 14157.36,-1297.92 14310.41,-1496.55 14659,-1356.9 14735.3,-1326.33 14747.96,-1303.49 14808,-1247.36 14915.01,-1147.32 15095.98,-1115.88 15017,-992.51"/>
<path fill="none" stroke="black" d="M15017,-990.51C15007.19,-974.07 15006.38,-968.44 14993,-954.74 14973.62,-934.89 14963.56,-936.21 14942,-918.74 14938.97,-916.28 14935.89,-913.68 14932.83,-911.03"/>
<polygon fill="#f9cd06" stroke="black" points="14935.23,-908.48 14925.44,-904.45 14930.58,-913.72 14935.23,-908.48"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_base -->
<g id="edge832" 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="M13687,-1409.9C13734.63,-1281.63 13644.95,-1232.25 13687,-1102.05"/>
<path fill="none" stroke="black" d="M13687,-1100.05C13694.69,-1078.6 13704.48,-1055.29 13713.05,-1035.87"/>
<polygon fill="#f9cd06" stroke="black" points="13716.17,-1037.46 13717.04,-1026.91 13709.78,-1034.61 13716.17,-1037.46"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_service_add -->
<g id="edge833" 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="M12895,-1319.13C12876.85,-1313.04 12885.81,-1295.48 12871,-1283.36 12772.38,-1202.64 12729.5,-1205.27 12606,-1173.82 12533.23,-1155.29 12325.69,-1188.19 12270,-1137.82 12209.18,-1082.81 12194.54,-1017.77 12247,-954.74 12303.38,-887 12363.22,-958.25 12442,-918.74 12445.54,-916.96 12449,-914.84 12452.34,-912.5"/>
<polygon fill="#f9cd06" stroke="black" points="12454.46,-915.29 12460.19,-906.38 12450.15,-909.77 12454.46,-915.29"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_service_pgp -->
<g id="edge834" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_views_service_pgp</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13683.31,-1593.02C13689.12,-1571.43 13696.42,-1533.48 13687,-1502.67"/>
<path fill="none" stroke="black" d="M13687,-1500.67C13653.84,-1392.15 13548.24,-1468.73 13442,-1428.9 13406.25,-1415.49 13400.86,-1402.87 13364,-1392.9 13283.4,-1371.09 13054.55,-1409.85 12990,-1356.9 12938.06,-1314.28 12963.65,-1109.54 12914,-1064.28 12828.11,-985.99 12746.24,-1100.26 12655,-1028.28 12641.6,-1017.7 12647.38,-1008.35 12641,-992.51"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_service_rebuild -->
<g id="edge835" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_views_service_rebuild</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13687,-1409.9C13702.74,-1360.4 13736.23,-1365.63 13763,-1321.13"/>
<path fill="none" stroke="black" d="M13763,-1319.13C13796.74,-1263.03 13775.91,-1238.33 13787,-1173.82 13798.13,-1109.06 13807.2,-1093.73 13813,-1028.28 13815.89,-995.72 13834.86,-979.04 13813,-954.74 13762.34,-898.41 13549.01,-929.37 13474,-918.74 13405.89,-909.08 13327.72,-894.59 13278.36,-885.01"/>
<polygon fill="#f9cd06" stroke="black" points="13279.03,-881.58 13268.55,-883.1 13277.69,-888.45 13279.03,-881.58"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_service_remove -->
<g id="edge836" 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="M13687,-1500.67C13675.47,-1462.93 13675.05,-1449.49 13687,-1411.9"/>
<path fill="none" stroke="black" d="M13687,-1409.9C13727.18,-1283.51 13417.6,-1017.93 13301,-954.74 13216.59,-908.99 13181.45,-940.77 13088,-918.74 13055.92,-911.18 13020.47,-900.4 12992.9,-891.46"/>
<polygon fill="#f9cd06" stroke="black" points="12994.01,-888.14 12983.42,-888.35 12991.83,-894.79 12994.01,-888.14"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_service_request -->
<g id="edge837" 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="M13687,-1100.05C13704.62,-1050.9 13756.97,-1075.14 13780,-1028.28 13794.42,-998.95 13802.41,-978.53 13780,-954.74 13734.37,-906.28 13243.21,-944.89 13182,-918.74 13178.36,-917.18 13174.82,-915.22 13171.43,-912.99"/>
<polygon fill="#f9cd06" stroke="black" points="13173.61,-910.25 13163.51,-907.04 13169.4,-915.84 13173.61,-910.25"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_service_search -->
<g id="edge838" 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="M13650.68,-1610.01C13553.48,-1608.81 13215.8,-1600.17 12946,-1538.43 12831.99,-1512.35 12551.06,-1419.08 12452,-1356.9 12412.19,-1331.91 12418.04,-1304.37 12376,-1283.36 12285.02,-1237.89 12232.43,-1306.94 12150,-1247.36 12120.18,-1225.8 12143.07,-1193.51 12112,-1173.82 12018.28,-1114.41 11201.85,-1205.6 11114,-1137.82 11081.27,-1112.57 11052.4,-984.59 11081,-954.74 11146.02,-886.89 11839.26,-954.9 11926,-918.74 11929.65,-917.22 11933.2,-915.28 11936.6,-913.06"/>
<polygon fill="#f9cd06" stroke="black" points="11938.62,-915.92 11944.53,-907.13 11934.43,-910.32 11938.62,-915.92"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_service_update -->
<g id="edge839" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_views_service_update</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13763,-1319.13C13771.42,-1304.27 13767.69,-1297.67 13777,-1283.36 13789.4,-1264.3 14076.31,-1012.24 14065,-992.51"/>
<path fill="none" stroke="black" d="M14065,-990.51C14047.06,-964.24 14033.36,-964.23 14003,-954.74 13817.84,-896.87 13745.53,-996.94 13568,-918.74 13564.38,-917.14 13560.86,-915.15 13557.47,-912.9"/>
<polygon fill="#f9cd06" stroke="black" points="13559.65,-910.16 13549.56,-906.91 13555.42,-915.74 13559.65,-910.16"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_status_logs -->
<g id="edge840" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_views_status_logs</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13650.81,-1605.52C13592.37,-1594.57 13451.86,-1563.52 13350,-1502.67"/>
<path fill="none" stroke="black" d="M13350,-1500.67C13309.48,-1476.46 13294.89,-1479.48 13250,-1464.9 13087.48,-1412.1 13041.27,-1416.18 12881,-1356.9 12806.46,-1329.32 12793.77,-1307.34 12718,-1283.36 12636.89,-1257.69 12605.5,-1286.57 12530,-1247.36 12488.29,-1225.69 12496.58,-1193.71 12454,-1173.82 12384.96,-1141.56 12172.09,-1185.93 12113,-1137.82 12048.76,-1085.51 12025.92,-1019.16 12078,-954.74 12126.01,-895.36 12178.24,-953.95 12246,-918.74 12249.46,-916.94 12252.86,-914.82 12256.14,-912.49"/>
<polygon fill="#f9cd06" stroke="black" points="12258.14,-915.37 12263.86,-906.44 12253.83,-909.86 12258.14,-915.37"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_status_package -->
<g id="edge841" 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="M13650.63,-1605.85C13592.19,-1596.26 13451.17,-1571.5 13336,-1538.43 13244.97,-1512.3 13226.65,-1492.34 13136,-1464.9 12952.35,-1409.3 12884.92,-1451.52 12718,-1356.9 12677.11,-1333.72 12683.6,-1305.24 12642,-1283.36 12570.57,-1245.78 12541.66,-1269.35 12464,-1247.36 12372.88,-1221.55 12355.51,-1198.23 12264,-1173.82 12172.08,-1149.3 12143.98,-1165.6 12053,-1137.82 11976.99,-1114.6 11963.62,-1094.22 11890,-1064.28 11846.63,-1046.64 11817.86,-1066.63 11791,-1028.28 11772.25,-1001.51 11769.08,-978.99 11791,-954.74 11844.32,-895.75 12073.73,-949.63 12147,-918.74 12151.9,-916.68 12156.68,-913.99 12161.24,-910.96"/>
<polygon fill="#f9cd06" stroke="black" points="12163.04,-913.98 12169.04,-905.24 12158.9,-908.33 12163.04,-913.98"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_status_packages -->
<g id="edge842" 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="M13350,-1500.67C13298.63,-1460.28 13308.19,-1422.62 13250,-1392.9 13132.77,-1333.01 13080.71,-1399.07 12956,-1356.9 12926.23,-1346.83 12924.92,-1330.73 12895,-1321.13"/>
<path fill="none" stroke="black" d="M12895,-1319.13C12876.89,-1312.91 12887.25,-1293.48 12871,-1283.36 12770.13,-1220.48 12712.92,-1299.27 12606,-1247.36 12563.72,-1226.83 12572.5,-1193.9 12530,-1173.82 12402.59,-1113.62 12337.22,-1207.96 12215,-1137.82 12145.67,-1098.03 12086.05,-1069.08 12109,-992.51"/>
<path fill="none" stroke="black" d="M12109,-990.51C12135.59,-886.34 12242.71,-964.48 12340,-918.74 12343.98,-916.87 12347.89,-914.61 12351.67,-912.1"/>
<polygon fill="#f9cd06" stroke="black" points="12353.51,-915.09 12359.53,-906.37 12349.39,-909.43 12353.51,-915.09"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_status_status -->
<g id="edge843" 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="M13650.72,-1609.66C13567.63,-1607.39 13310.98,-1595.86 13108,-1538.43 13031.91,-1516.91 13021.66,-1487.88 12946,-1464.9 12852.04,-1436.35 12818.31,-1467.46 12728,-1428.9 12703.48,-1418.42 12702.79,-1406.74 12680,-1392.9 12655.98,-1378.31 12478.8,-1291.84 12452,-1283.36 12359.21,-1253.99 12324.21,-1288.48 12236,-1247.36 12190.42,-1226.1 12196.84,-1192.12 12150,-1173.82 12051.1,-1135.17 11288.04,-1188.99 11195,-1137.82 11160.65,-1118.93 11061.68,-1013.15 11095,-992.51"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_user_login -->
<g id="edge844" 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="M13687,-1409.9C13691.14,-1398.99 13696.62,-1398.21 13707,-1392.9 13766.49,-1362.44 13795.44,-1390.86 13853,-1356.9 13949.49,-1299.97 14228.54,-1040.95 14157,-954.74 14109.96,-898.05 13884.86,-881.51 13783.12,-876.89"/>
<polygon fill="#f9cd06" stroke="black" points="13783.29,-873.4 13773.15,-876.46 13782.99,-880.39 13783.29,-873.4"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge845" 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="M13687,-1409.9C13693.15,-1391.52 13739.24,-1384.37 13777,-1356.9 13800.2,-1340.01 14162.53,-1013.53 14143,-992.51"/>
<path fill="none" stroke="black" d="M14143,-990.51C13987.97,-855.46 13881.11,-983.56 13686,-918.74 13676.02,-915.42 13665.99,-910.48 13656.73,-905.1"/>
<polygon fill="#f9cd06" stroke="black" points="13658.67,-902.19 13648.32,-899.94 13655.01,-908.15 13658.67,-902.19"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_web -->
<g id="edge846" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13650.69,-1609.49C13489.81,-1605.15 12669.15,-1581.05 12566,-1538.43 12520.14,-1519.49 12520.93,-1495.66 12482,-1464.9 12454.71,-1443.33 12259,-1296.98 12227,-1283.36 12147.52,-1249.52 12116.1,-1279.69 12036,-1247.36 11980.78,-1225.07 11980.71,-1191.98 11924,-1173.82 11727.24,-1110.82 11184.44,-1220.27 10995,-1137.82 10952.48,-1119.31 10963.33,-1083.19 10921,-1064.28 10794.99,-1007.99 10418.67,-1100.4 10301,-1028.28 10268.72,-1008.49 10288.2,-977.58 10258,-954.74 10145.59,-869.71 10021.23,-997.4 9951,-875.19"/>
</g>
<!-- aiohttpcors -->
<g id="node205" class="node">
<title>aiohttpcors</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#8bb83d" stroke="black" points="13780.5,-1428.9 13777.5,-1432.9 13756.5,-1432.9 13753.5,-1428.9 13715.5,-1428.9 13715.5,-1392.9 13780.5,-1392.9 13780.5,-1428.9"/>
<text text-anchor="middle" x="13748" y="-1408.4" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">aiohttpcors</text>
</g>
<!-- aiohttp&#45;&gt;aiohttpcors -->
<g id="edge847" class="edge">
<title>aiohttp&#45;&gt;aiohttpcors</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13687,-1500.67C13679.61,-1476.47 13697.06,-1453.06 13715.17,-1436.36"/>
<polygon fill="#f9cd06" stroke="black" points="13717.04,-1439.37 13722.3,-1430.17 13712.46,-1434.08 13717.04,-1439.37"/>
</g>
<!-- aiohttpjinja2 -->
<g id="node207" class="node">
<title>aiohttpjinja2</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#32c823" stroke="black" points="15065,-1338.13 15062,-1342.13 15041,-1342.13 15038,-1338.13 14997,-1338.13 14997,-1302.13 15065,-1302.13 15065,-1338.13"/>
<text text-anchor="middle" x="15031" y="-1317.63" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">aiohttpjinja2</text>
</g>
<!-- aiohttp&#45;&gt;aiohttpjinja2 -->
<g id="edge848" class="edge">
<title>aiohttp&#45;&gt;aiohttpjinja2</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13705.22,-1595.53C13762.29,-1565.5 13899.43,-1497.15 14023,-1464.9 14230.72,-1410.67 14783.34,-1435.77 14983,-1356.9 14990.27,-1354.02 14997.42,-1349.75 15003.88,-1345.14"/>
<polygon fill="#f9cd06" stroke="black" points="15005.81,-1348.08 15011.6,-1339.21 15001.54,-1342.53 15005.81,-1348.08"/>
</g>
<!-- aiohttpsession -->
<g id="node209" class="node">
<title>aiohttpsession</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#3db875" stroke="black" points="15425,-1428.9 15422,-1432.9 15401,-1432.9 15398,-1428.9 15345,-1428.9 15345,-1392.9 15425,-1392.9 15425,-1428.9"/>
<text text-anchor="middle" x="15385" y="-1408.4" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">aiohttpsession</text>
</g>
<!-- aiohttp&#45;&gt;aiohttpsession -->
<g id="edge849" class="edge">
<title>aiohttp&#45;&gt;aiohttpsession</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13705.37,-1607.35C13768.18,-1600.86 13927.5,-1584.77 14061,-1574.43 14321.16,-1554.3 14387.64,-1567.1 14647,-1538.43 14953.01,-1504.61 15031.37,-1499.65 15331,-1428.9 15331.98,-1428.66 15332.98,-1428.42 15333.97,-1428.17"/>
<polygon fill="#f9cd06" stroke="black" points="15334.57,-1431.64 15343.32,-1425.66 15332.75,-1424.88 15334.57,-1431.64"/>
</g>
<!-- aiohttpapispec -->
<g id="node204" class="node">
<title>aiohttpapispec</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#e4f910" stroke="black" points="13079,-1338.13 13076,-1342.13 13055,-1342.13 13052,-1338.13 12999,-1338.13 12999,-1302.13 13079,-1302.13 13079,-1338.13"/>
<text text-anchor="middle" x="13039" y="-1317.63" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">aiohttpapispec</text>
</g>
<!-- aiohttpapispec&#45;&gt;ahriman_web_apispec -->
<g id="edge850" class="edge">
<title>aiohttpapispec&#45;&gt;ahriman_web_apispec</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13079.42,-1316.92C13187.82,-1311.03 13494.08,-1294.63 13749,-1283.36 14168.89,-1264.78 14278.33,-1309.61 14694,-1247.36 14717.48,-1243.84 15086.05,-1148.97 15107,-1137.82 15161.93,-1108.58 15214.01,-1057.92 15244.72,-1024.81"/>
<polygon fill="#e4f910" stroke="black" points="15247.24,-1027.24 15251.41,-1017.5 15242.08,-1022.51 15247.24,-1027.24"/>
</g>
<!-- aiohttpapispec&#45;&gt;ahriman_web_views_service_add -->
<g id="edge851" class="edge">
<title>aiohttpapispec&#45;&gt;ahriman_web_views_service_add</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13009,-1209.59C12940.99,-1141.84 12891.08,-1187.04 12796,-1173.82 12723.81,-1163.78 12518.63,-1192.11 12470,-1137.82 12418.03,-1079.79 12443.66,-982.66 12466.61,-924.19"/>
<polygon fill="#e4f910" stroke="black" points="12469.77,-925.72 12470.28,-915.14 12463.28,-923.09 12469.77,-925.72"/>
</g>
<!-- aiohttpapispec&#45;&gt;ahriman_web_views_service_pgp -->
<g id="edge852" class="edge">
<title>aiohttpapispec&#45;&gt;ahriman_web_views_service_pgp</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13009,-1209.59C12976.54,-1177.25 13053.63,-1172.98 13083,-1137.82 13095.27,-1123.12 13097.99,-1118.94 13107,-1102.05"/>
<path fill="none" stroke="black" d="M13107,-1100.05C13150.86,-1017.82 12817.5,-921.17 12689.59,-887.5"/>
<polygon fill="#e4f910" stroke="black" points="12690.61,-884.15 12680.05,-885 12688.84,-890.92 12690.61,-884.15"/>
</g>
<!-- aiohttpapispec&#45;&gt;ahriman_web_views_service_rebuild -->
<g id="edge853" class="edge">
<title>aiohttpapispec&#45;&gt;ahriman_web_views_service_rebuild</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13383,-1209.59C13398.76,-1198.72 13393.69,-1187.58 13407,-1173.82 13464.89,-1113.96 13486.52,-1105.27 13559,-1064.28 13609.17,-1035.91 13675.92,-1049.45 13667,-992.51"/>
<path fill="none" stroke="black" d="M13667,-990.51C13662.95,-950.95 13391.78,-901.9 13278.19,-883.06"/>
<polygon fill="#e4f910" stroke="black" points="13279,-879.65 13268.56,-881.48 13277.86,-886.55 13279,-879.65"/>
</g>
<!-- aiohttpapispec&#45;&gt;ahriman_web_views_service_remove -->
<g id="edge854" class="edge">
<title>aiohttpapispec&#45;&gt;ahriman_web_views_service_remove</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13107,-1100.05C13110.3,-1093.86 13175.37,-999.11 13173,-992.51"/>
<path fill="none" stroke="black" d="M13173,-990.51C13159.73,-953.59 13055.95,-912.64 12993.07,-890.85"/>
<polygon fill="#e4f910" stroke="black" points="12994.24,-887.55 12983.65,-887.63 12991.98,-894.17 12994.24,-887.55"/>
</g>
<!-- aiohttpapispec&#45;&gt;ahriman_web_views_service_request -->
<g id="edge855" class="edge">
<title>aiohttpapispec&#45;&gt;ahriman_web_views_service_request</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13079.46,-1302.45C13095.4,-1296.13 13113.94,-1289.09 13131,-1283.36 13241.39,-1246.27 13285.74,-1275.63 13383,-1211.59"/>
<path fill="none" stroke="black" d="M13383,-1209.59C13410.2,-1191.68 13413.85,-1094.61 13402,-1064.28 13377.9,-1002.6 13357.11,-989.91 13301,-954.74 13254.18,-925.39 13229.94,-946.22 13182,-918.74 13178.62,-916.8 13175.28,-914.57 13172.04,-912.18"/>
<polygon fill="#e4f910" stroke="black" points="13174.36,-909.56 13164.38,-906.02 13169.97,-915.01 13174.36,-909.56"/>
</g>
<!-- aiohttpapispec&#45;&gt;ahriman_web_views_service_search -->
<g id="edge856" class="edge">
<title>aiohttpapispec&#45;&gt;ahriman_web_views_service_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12998.75,-1305.95C12973.3,-1298.14 12939.54,-1288.74 12909,-1283.36 12713.59,-1248.88 12658.85,-1284.87 12464,-1247.36 12355.28,-1226.43 12335.16,-1192.3 12226,-1173.82 12170.92,-1164.49 11259.79,-1178.02 11221,-1137.82 11196.21,-1112.12 11233.43,-960.56 11240,-954.74 11297.09,-904.08 11855.69,-948.45 11926,-918.74 11929.65,-917.2 11933.19,-915.25 11936.58,-913.02"/>
<polygon fill="#e4f910" stroke="black" points="11938.61,-915.88 11944.51,-907.08 11934.41,-910.28 11938.61,-915.88"/>
</g>
<!-- aiohttpapispec&#45;&gt;ahriman_web_views_service_update -->
<g id="edge857" class="edge">
<title>aiohttpapispec&#45;&gt;ahriman_web_views_service_update</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13667,-990.51C13661.47,-936.45 13610.01,-953.22 13568,-918.74 13564.99,-916.26 13561.91,-913.65 13558.86,-910.98"/>
<polygon fill="#e4f910" stroke="black" points="13561.27,-908.45 13551.48,-904.4 13556.61,-913.67 13561.27,-908.45"/>
</g>
<!-- aiohttpapispec&#45;&gt;ahriman_web_views_status_logs -->
<g id="edge858" class="edge">
<title>aiohttpapispec&#45;&gt;ahriman_web_views_status_logs</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13002.17,-1301.68C12933.51,-1270.05 12780.51,-1203.73 12644,-1173.82 12544.92,-1152.11 12279.42,-1183.78 12189,-1137.82 12160.41,-1123.28 12106.14,-1058.36 12095,-1028.28 12083.65,-997.63 12074.75,-980.39 12095,-954.74 12137.76,-900.59 12185.15,-951.25 12246,-918.74 12249.44,-916.9 12252.82,-914.75 12256.09,-912.41"/>
<polygon fill="#e4f910" stroke="black" points="12258.11,-915.27 12263.79,-906.32 12253.78,-909.77 12258.11,-915.27"/>
</g>
<!-- aiohttpapispec&#45;&gt;ahriman_web_views_status_package -->
<g id="edge859" class="edge">
<title>aiohttpapispec&#45;&gt;ahriman_web_views_status_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12998.64,-1306.52C12973.14,-1298.94 12939.39,-1289.57 12909,-1283.36 12792.55,-1259.54 12750.92,-1299.27 12644,-1247.36 12601.72,-1226.83 12610.84,-1193.15 12568,-1173.82 12475.35,-1132.01 12191.4,-1201.28 12112,-1137.82 12047.35,-1086.15 12035.1,-1025.51 12078,-954.74 12095.93,-925.16 12118.24,-937.96 12147,-918.74 12151.36,-915.83 12155.78,-912.61 12160.1,-909.28"/>
<polygon fill="#e4f910" stroke="black" points="12161.96,-912.27 12167.6,-903.3 12157.6,-906.8 12161.96,-912.27"/>
</g>
<!-- aiohttpapispec&#45;&gt;ahriman_web_views_status_packages -->
<g id="edge860" class="edge">
<title>aiohttpapispec&#45;&gt;ahriman_web_views_status_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13039.13,-1301.64C13038.34,-1277.95 13033.3,-1235.81 13009,-1211.59"/>
<path fill="none" stroke="black" d="M13009,-1209.59C12892.16,-1093.09 12421.42,-1203.36 12270,-1137.82 12225.38,-1118.5 12227.58,-1093.87 12189,-1064.28 12165.52,-1046.27 12154.13,-1048.99 12133,-1028.28 12119.33,-1014.87 12104.11,-1011.02 12109,-992.51"/>
</g>
<!-- aiohttpapispec&#45;&gt;ahriman_web_views_status_status -->
<g id="edge861" class="edge">
<title>aiohttpapispec&#45;&gt;ahriman_web_views_status_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12998.7,-1306.21C12973.23,-1298.5 12939.48,-1289.12 12909,-1283.36 12759.25,-1255.05 12714.55,-1289.16 12568,-1247.36 12495.83,-1226.77 12488.88,-1191.73 12416,-1173.82 12353.93,-1158.56 11310.49,-1183.72 11266,-1137.82 11134.75,-1002.4 11352.75,-987.33 11464,-954.74 11582.82,-919.93 11906.25,-967.64 12020,-918.74 12023.64,-917.18 12027.17,-915.21 12030.56,-912.97"/>
<polygon fill="#e4f910" stroke="black" points="12032.59,-915.82 12038.48,-907.01 12028.39,-910.23 12032.59,-915.82"/>
</g>
<!-- aiohttpapispec&#45;&gt;ahriman_web_views_user_login -->
<g id="edge862" class="edge">
<title>aiohttpapispec&#45;&gt;ahriman_web_views_user_login</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13079.5,-1317.47C13161.47,-1313.13 13352.11,-1297.97 13503,-1247.36 13697.77,-1182.03 13804.65,-1204.64 13910,-1028.28 13926.76,-1000.22 13927.75,-982.18 13910,-954.74 13882.01,-911.47 13824.27,-891.51 13782.33,-882.45"/>
<polygon fill="#e4f910" stroke="black" points="13783.2,-879.05 13772.71,-880.52 13781.82,-885.92 13783.2,-879.05"/>
</g>
<!-- aiohttpapispec&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge863" class="edge">
<title>aiohttpapispec&#45;&gt;ahriman_web_views_user_logout</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13079.45,-1317.66C13153.03,-1313.74 13312.5,-1299.42 13435,-1247.36 13511.64,-1214.79 13521.52,-1189.26 13587,-1137.82 13626.55,-1106.75 13627.42,-1085.53 13673,-1064.28 13761.21,-1023.15 13826.09,-1102.54 13889,-1028.28 13910.13,-1003.34 13910,-979.79 13889,-954.74 13830.14,-884.52 13771.66,-951.26 13686,-918.74 13676.17,-915.01 13666.2,-909.88 13656.96,-904.46"/>
<polygon fill="#e4f910" stroke="black" points="13658.9,-901.54 13648.55,-899.3 13655.24,-907.51 13658.9,-901.54"/>
</g>
<!-- aiohttpcors&#45;&gt;ahriman_web_cors -->
<g id="edge864" class="edge">
<title>aiohttpcors&#45;&gt;ahriman_web_cors</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13780.95,-1405.92C13813.46,-1402.12 13864.59,-1396.45 13909,-1392.9 14055.2,-1381.19 14429.2,-1404.27 14568,-1356.9 14716.88,-1306.08 14762.48,-1271.13 14846,-1137.82 14889.9,-1067.75 14907.77,-1032.25 14879,-954.74 14871.65,-934.94 14855.35,-938.53 14848,-918.74 14834.22,-881.62 14821.95,-859.46 14848,-829.64 14887.25,-784.73 15058.89,-816.46 15114,-793.64 15118.71,-791.69 15123.36,-789.15 15127.81,-786.32"/>
<polygon fill="#8bb83d" stroke="black" points="15129.71,-789.26 15135.89,-780.65 15125.69,-783.53 15129.71,-789.26"/>
</g>
<!-- aiohttpcors&#45;&gt;ahriman_web_views_base -->
<g id="edge865" class="edge">
<title>aiohttpcors&#45;&gt;ahriman_web_views_base</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M13751.35,-1392.66C13757.56,-1355.4 13766.7,-1266.31 13725,-1211.59"/>
<path fill="none" stroke="black" d="M13725,-1209.59C13705.25,-1183.91 13715.61,-1094.95 13724.56,-1039.2"/>
<polygon fill="#8bb83d" stroke="black" points="13728.01,-1039.77 13726.19,-1029.33 13721.11,-1038.63 13728.01,-1039.77"/>
</g>
<!-- aiohttpdebugtoolbar -->
<g id="node206" class="node">
<title>aiohttpdebugtoolbar</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#77b653" stroke="black" points="9922.5,-892.19 9919.5,-896.19 9898.5,-896.19 9895.5,-892.19 9821.5,-892.19 9821.5,-856.19 9922.5,-856.19 9922.5,-892.19"/>
<text text-anchor="middle" x="9872" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">aiohttpdebugtoolbar</text>
</g>
<!-- aiohttpdebugtoolbar&#45;&gt;ahriman_web_web -->
<g id="edge866" class="edge">
<title>aiohttpdebugtoolbar&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9869.29,-856.03C9866.29,-833.19 9862.98,-791.73 9872,-757.87"/>
</g>
<!-- aiohttpjinja2&#45;&gt;ahriman_web_middlewares_exception_handler -->
<g id="edge867" class="edge">
<title>aiohttpjinja2&#45;&gt;ahriman_web_middlewares_exception_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M15055,-990.51C15033.15,-944.15 15062.77,-925.85 15055,-875.19"/>
<path fill="none" stroke="black" d="M15055,-873.19C15051.56,-850.74 15047.87,-825.82 15044.81,-804.9"/>
<polygon fill="#32c823" stroke="black" points="15048.3,-804.62 15043.39,-795.23 15041.37,-805.63 15048.3,-804.62"/>
</g>
<!-- aiohttpjinja2&#45;&gt;ahriman_web_views_api_docs -->
<g id="edge868" class="edge">
<title>aiohttpjinja2&#45;&gt;ahriman_web_views_api_docs</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M15056.69,-1301.81C15073.77,-1288.87 15095.15,-1269.63 15107,-1247.36 15137.74,-1189.57 15141.88,-1166.59 15131,-1102.05"/>
<path fill="none" stroke="black" d="M15131,-1100.05C15128.68,-1081.04 15118.22,-1079.79 15107,-1064.28 15083.92,-1032.36 15071.79,-1028.14 15055,-992.51"/>
<path fill="none" stroke="black" d="M15055,-990.51C15043.85,-966.84 15029.62,-941.5 15017.23,-920.63"/>
<polygon fill="#32c823" stroke="black" points="15020.24,-918.84 15012.1,-912.06 15014.23,-922.44 15020.24,-918.84"/>
</g>
<!-- aiohttpjinja2&#45;&gt;ahriman_web_views_index -->
<g id="edge869" 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="M15034.99,-1301.73C15042.97,-1264.96 15059.73,-1176.59 15055,-1102.05"/>
</g>
<!-- aiohttpjinja2&#45;&gt;ahriman_web_web -->
<g id="edge870" class="edge">
<title>aiohttpjinja2&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M15131,-1100.05C15121.65,-1023.46 15172.39,-1010.23 15226,-954.74 15268.68,-910.57 15350.3,-935.56 15339,-875.19"/>
<path fill="none" stroke="black" d="M15339,-873.19C15317.88,-786.17 15275.17,-779.33 15208,-720.1 15164.49,-681.74 15134.97,-693.84 15099,-648.34"/>
</g>
<!-- aiohttpsecurity -->
<g id="node208" class="node">
<title>aiohttpsecurity</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#47c25e" stroke="black" points="14681,-1629.2 14678,-1633.2 14657,-1633.2 14654,-1629.2 14601,-1629.2 14601,-1593.2 14681,-1593.2 14681,-1629.2"/>
<text text-anchor="middle" x="14641" y="-1608.7" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">aiohttpsecurity</text>
</g>
<!-- aiohttpsecurity&#45;&gt;ahriman_core_auth_helpers -->
<g id="edge871" 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="M14619.01,-1592.73C14557.63,-1541.85 14394,-1390.63 14474,-1283.36 14507.54,-1238.38 14544.38,-1271.55 14595,-1247.36 14599.28,-1245.31 14603.6,-1242.93 14607.83,-1240.39"/>
<polygon fill="#47c25e" stroke="black" points="14609.62,-1243.4 14616.17,-1235.07 14605.86,-1237.5 14609.62,-1243.4"/>
</g>
<!-- aiohttpsecurity&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge872" 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="M14681.43,-1602.25C14789.84,-1579.4 15092.59,-1505.5 15297,-1356.9 15364.29,-1307.98 15410.52,-1294.66 15415,-1211.59"/>
<path fill="none" stroke="black" d="M15415,-1209.59C15416.56,-1151.08 15417.7,-1083.69 15418.36,-1039.72"/>
<polygon fill="#47c25e" stroke="black" points="15421.86,-1039.8 15418.5,-1029.75 15414.86,-1039.7 15421.86,-1039.8"/>
</g>
<!-- aiohttpsession&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge873" 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="M15393.61,-1392.41C15401.58,-1374.88 15412.56,-1346.88 15415,-1321.13"/>
</g>
<!-- boto3 -->
<g id="node210" class="node">
<title>boto3</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#40c09d" stroke="black" points="11123,-2740.15 11120,-2744.15 11099,-2744.15 11096,-2740.15 11069,-2740.15 11069,-2704.15 11123,-2704.15 11123,-2740.15"/>
<text text-anchor="middle" x="11096" y="-2719.65" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">boto3</text>
</g>
<!-- boto3&#45;&gt;ahriman_core_upload_s3 -->
<g id="edge874" 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="M11104.33,-2703.79C11114.76,-2682.33 11133.38,-2644.84 11151,-2613.61"/>
<path fill="none" stroke="black" d="M11151,-2611.61C11172.9,-2572.81 11199,-2578.59 11221,-2539.84 11259.58,-2471.91 11266.4,-2379.23 11266.58,-2324.08"/>
<polygon fill="#40c09d" stroke="black" points="11270.08,-2324.39 11266.53,-2314.41 11263.08,-2324.43 11270.08,-2324.39"/>
</g>
<!-- cerberus -->
<g id="node211" class="node">
<title>cerberus</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#3db8b8" stroke="black" points="8716.5,-3317.07 8713.5,-3321.07 8692.5,-3321.07 8689.5,-3317.07 8661.5,-3317.07 8661.5,-3281.07 8716.5,-3281.07 8716.5,-3317.07"/>
<text text-anchor="middle" x="8689" y="-3296.57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">cerberus</text>
</g>
<!-- cerberus&#45;&gt;ahriman_core_configuration_validator -->
<g id="edge875" class="edge">
<title>cerberus&#45;&gt;ahriman_core_configuration_validator</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8661.12,-3293.53C8623.49,-3287.52 8554.33,-3276.9 8495,-3270.08 8309.32,-3248.72 8260.97,-3260.93 8076,-3234.08 7322.39,-3124.68 6421.8,-2907.09 6182.7,-2847.87"/>
<polygon fill="#3db8b8" stroke="black" points="6183.83,-2844.55 6173.29,-2845.54 6182.15,-2851.34 6183.83,-2844.55"/>
</g>
<!-- cryptography -->
<g id="node212" class="node">
<title>cryptography</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#19aee6" stroke="black" points="14218,-4707.53 14215,-4711.53 14194,-4711.53 14191,-4707.53 14144,-4707.53 14144,-4671.53 14218,-4671.53 14218,-4707.53"/>
<text text-anchor="middle" x="14181" y="-4687.03" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">cryptography</text>
</g>
<!-- cryptography&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge876" 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="M15719,-4522.55C15756.2,-4459.87 15719,-4431.45 15719,-4358.57 15719,-4358.57 15719,-4358.57 15719,-1829.28 15719,-1676.29 15423.32,-1364.35 15415,-1211.59"/>
</g>
<!-- cryptography&#45;&gt;aiohttpsession -->
<g id="edge877" class="edge">
<title>cryptography&#45;&gt;aiohttpsession</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M14202.56,-4671.21C14208.82,-4667.03 14215.89,-4663.05 14223,-4660.54 14380.39,-4605 15756.17,-4687.27 15719,-4524.55"/>
<path fill="none" stroke="black" d="M15719,-4522.55C15730.7,-4494.68 15704.98,-4487.42 15696,-4458.56 15686.17,-4426.95 15682.99,-4419.11 15677,-4386.56 15669.4,-4345.24 15670.4,-4334.44 15667,-4292.57 15627.26,-3803.61 15605,-3681.1 15605,-3190.53 15605,-3190.53 15605,-3190.53 15605,-2830.69 15605,-2700.83 15626.77,-2669.56 15633,-2539.84 15651.47,-2155.33 15622.16,-2049.03 15500,-1683.97 15469.35,-1592.39 15421.56,-1488.31 15398.43,-1439.68"/>
<polygon fill="#19aee6" stroke="black" points="15401.62,-1438.24 15394.15,-1430.72 15395.31,-1441.26 15401.62,-1438.24"/>
</g>
<!-- requests -->
<g id="node220" class="node">
<title>requests</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#ef06c5" stroke="black" points="10194,-4624.54 10191,-4628.54 10170,-4628.54 10167,-4624.54 10140,-4624.54 10140,-4588.54 10194,-4588.54 10194,-4624.54"/>
<text text-anchor="middle" x="10167" y="-4604.04" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">requests</text>
</g>
<!-- cryptography&#45;&gt;requests -->
<g id="edge878" class="edge">
<title>cryptography&#45;&gt;requests</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M14143.51,-4687.77C13762.19,-4680.08 10592.35,-4616.12 10205.61,-4608.32"/>
<polygon fill="#19aee6" stroke="black" points="10205.83,-4604.82 10195.76,-4608.12 10205.69,-4611.82 10205.83,-4604.82"/>
</g>
<!-- inflection -->
<g id="node213" class="node">
<title>inflection</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#5380b6" stroke="black" points="2176,-4458.56 2173,-4462.56 2152,-4462.56 2149,-4458.56 2120,-4458.56 2120,-4422.56 2176,-4422.56 2176,-4458.56"/>
<text text-anchor="middle" x="2148" y="-4438.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">inflection</text>
</g>
<!-- inflection&#45;&gt;ahriman_models_aur_package -->
<g id="edge879" 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="M2134.19,-4422.47C2126.94,-4412.57 2118.64,-4399.53 2114,-4386.56 2090.96,-4322.1 2086.58,-4241.74 2086.26,-4194.64"/>
<polygon fill="#5380b6" stroke="black" points="2089.76,-4194.92 2086.26,-4184.92 2082.76,-4194.92 2089.76,-4194.92"/>
</g>
<!-- jinja2 -->
<g id="node214" class="node">
<title>jinja2</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#3b56ce" stroke="black" points="14985,-2630.61 14982,-2634.61 14961,-2634.61 14958,-2630.61 14931,-2630.61 14931,-2594.61 14985,-2594.61 14985,-2630.61"/>
<text text-anchor="middle" x="14958" y="-2610.11" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">jinja2</text>
</g>
<!-- jinja2&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge880" 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="M14930.88,-2606.24C14780.91,-2576.7 14037.56,-2432.65 13424,-2356.76 12550.85,-2248.78 12327.11,-2276.2 11451,-2195.67 11351.61,-2186.53 11236.5,-2174.49 11166.24,-2166.97"/>
<polygon fill="#3b56ce" stroke="black" points="11166.75,-2163.5 11156.43,-2165.92 11166,-2170.46 11166.75,-2163.5"/>
</g>
<!-- jinja2&#45;&gt;ahriman_web_web -->
<g id="edge881" class="edge">
<title>jinja2&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M15225,-1610.2C15233.97,-1543.82 15246.6,-1529.3 15265,-1464.9 15337.58,-1210.92 15384.54,-1135.38 15339,-875.19"/>
</g>
<!-- jinja2&#45;&gt;aiohttpjinja2 -->
<g id="edge882" class="edge">
<title>jinja2&#45;&gt;aiohttpjinja2</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M14960.05,-2594.13C14967.69,-2530.41 14996.14,-2304.84 15037,-2122.13 15081.22,-1924.39 15066.52,-1862.16 15163,-1683.97 15183.07,-1646.91 15217.21,-1653.63 15225,-1612.2"/>
<path fill="none" stroke="black" d="M15225,-1610.2C15231.23,-1564.81 15178.82,-1574.84 15151,-1538.43 15103.19,-1475.89 15062.51,-1391.95 15043.13,-1349"/>
<polygon fill="#3b56ce" stroke="black" points="15046.34,-1347.61 15039.07,-1339.9 15039.94,-1350.46 15046.34,-1347.61"/>
</g>
<!-- main -->
<g id="node215" class="node">
<title>main</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#6b2e2e" stroke="black" points="8903,-3505.03 8900,-3509.03 8879,-3509.03 8876,-3505.03 8849,-3505.03 8849,-3469.03 8903,-3469.03 8903,-3505.03"/>
<text text-anchor="middle" x="8876" y="-3484.53" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">main</text>
</g>
<!-- pkgresources -->
<g id="node218" class="node">
<title>pkgresources</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#9224d0" stroke="black" points="8923,-3411.05 8920,-3415.05 8899,-3415.05 8896,-3411.05 8849,-3411.05 8849,-3375.05 8923,-3375.05 8923,-3411.05"/>
<text text-anchor="middle" x="8886" y="-3390.55" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">pkgresources</text>
</g>
<!-- main&#45;&gt;pkgresources -->
<g id="edge883" class="edge">
<title>main&#45;&gt;pkgresources</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8877.88,-3468.73C8879.29,-3455.76 8881.25,-3437.71 8882.9,-3422.6"/>
<polygon fill="#6b2e2e" stroke="black" points="8886.36,-3423.1 8883.96,-3412.78 8879.4,-3422.34 8886.36,-3423.1"/>
</g>
<!-- marshmallow -->
<g id="node216" class="node">
<title>marshmallow</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#1b06ef" stroke="black" points="12415.5,-1738.74 12412.5,-1742.74 12391.5,-1742.74 12388.5,-1738.74 12340.5,-1738.74 12340.5,-1702.74 12415.5,-1702.74 12415.5,-1738.74"/>
<text text-anchor="middle" x="12378" y="-1718.24" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">marshmallow</text>
</g>
<!-- marshmallow&#45;&gt;ahriman_web_schemas_aur_package_schema -->
<g id="edge884" class="edge">
<title>marshmallow&#45;&gt;ahriman_web_schemas_aur_package_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11090,-1319.13C11073.95,-1310.97 11083.27,-1296.53 11071,-1283.36 11008.46,-1216.21 10982.32,-1204.95 10896,-1173.82 10782.53,-1132.89 10743.87,-1167.67 10627,-1137.82 10618.84,-1135.73 10610.42,-1133.15 10602.14,-1130.33"/>
<polygon fill="#1b06ef" stroke="black" points="10603.38,-1127.06 10592.79,-1127.02 10601.05,-1133.65 10603.38,-1127.06"/>
</g>
<!-- marshmallow&#45;&gt;ahriman_web_schemas_auth_schema -->
<g id="edge885" class="edge">
<title>marshmallow&#45;&gt;ahriman_web_schemas_auth_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11994,-1319.13C12003.27,-1303.7 12000.45,-1296.27 12013,-1283.36 12088.75,-1205.41 12205.23,-1150.83 12274.5,-1123.09"/>
<polygon fill="#1b06ef" stroke="black" points="12275.77,-1126.35 12283.79,-1119.42 12273.2,-1119.84 12275.77,-1126.35"/>
</g>
<!-- marshmallow&#45;&gt;ahriman_web_schemas_counters_schema -->
<g id="edge886" class="edge">
<title>marshmallow&#45;&gt;ahriman_web_schemas_counters_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11890,-1610.2C11778.68,-1532.86 11792.84,-1461.61 11676,-1392.9 11624.32,-1362.5 11601.88,-1378.62 11546,-1356.9 11462.99,-1324.62 11372.13,-1275.76 11315.84,-1243.76"/>
<polygon fill="#1b06ef" stroke="black" points="11317.82,-1240.85 11307.4,-1238.93 11314.35,-1246.93 11317.82,-1240.85"/>
</g>
<!-- marshmallow&#45;&gt;ahriman_web_schemas_error_schema -->
<g id="edge887" class="edge">
<title>marshmallow&#45;&gt;ahriman_web_schemas_error_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11994,-1319.13C12004.39,-1304.43 11999.26,-1294.98 12013,-1283.36 12051.63,-1250.68 12073.14,-1263.77 12121,-1247.36 12247.42,-1204 12395.01,-1151.48 12474.72,-1122.96"/>
<polygon fill="#1b06ef" stroke="black" points="12475.85,-1126.27 12484.09,-1119.61 12473.49,-1119.68 12475.85,-1126.27"/>
</g>
<!-- marshmallow&#45;&gt;ahriman_web_schemas_internal_status_schema -->
<g id="edge888" class="edge">
<title>marshmallow&#45;&gt;ahriman_web_schemas_internal_status_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12357.46,-1702.5C12348.35,-1695.71 12337.18,-1688.48 12326,-1683.97 12143.83,-1610.61 12054.44,-1719.57 11890,-1612.2"/>
<path fill="none" stroke="black" d="M11890,-1610.2C11833.43,-1573.27 11810.94,-1577.76 11756,-1538.43 11678.89,-1483.25 11685.05,-1434.82 11600,-1392.9 11512.7,-1349.87 11475.94,-1388.82 11384,-1356.9 11288.63,-1323.78 11257.31,-1317.81 11185,-1247.36 11157.88,-1220.93 11173.61,-1194.66 11142,-1173.82 11033.93,-1102.58 10978.87,-1168 10853,-1137.82 10844.22,-1135.71 10835.14,-1133.09 10826.2,-1130.22"/>
<polygon fill="#1b06ef" stroke="black" points="10827.44,-1126.94 10816.84,-1127.1 10825.22,-1133.58 10827.44,-1126.94"/>
</g>
<!-- marshmallow&#45;&gt;ahriman_web_schemas_log_schema -->
<g id="edge889" class="edge">
<title>marshmallow&#45;&gt;ahriman_web_schemas_log_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11968,-1409.9C11965.89,-1389.45 11982.6,-1338.23 11994,-1321.13"/>
<path fill="none" stroke="black" d="M11994,-1319.13C12022.02,-1277.11 11926.75,-1280.6 11894,-1247.36 11867.34,-1220.3 11851.38,-1179.99 11842.35,-1148.69"/>
<polygon fill="#1b06ef" stroke="black" points="11845.73,-1147.79 11839.72,-1139.06 11838.98,-1149.63 11845.73,-1147.79"/>
</g>
<!-- marshmallow&#45;&gt;ahriman_web_schemas_login_schema -->
<g id="edge890" class="edge">
<title>marshmallow&#45;&gt;ahriman_web_schemas_login_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12415.86,-1719.59C12612.47,-1718.54 13518.32,-1710.31 13791,-1647.97 13913.24,-1620.03 13947.29,-1608.92 14051,-1538.43 14096.4,-1507.58 14348.06,-1241.47 14442.86,-1140.6"/>
<polygon fill="#1b06ef" stroke="black" points="14445.14,-1143.28 14449.44,-1133.59 14440.04,-1138.48 14445.14,-1143.28"/>
</g>
<!-- marshmallow&#45;&gt;ahriman_web_schemas_logs_schema -->
<g id="edge891" class="edge">
<title>marshmallow&#45;&gt;ahriman_web_schemas_logs_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11644,-1209.59C11618.04,-1183.39 11586.47,-1156.45 11561.42,-1136.09"/>
<polygon fill="#1b06ef" stroke="black" points="11563.67,-1133.4 11553.69,-1129.85 11559.27,-1138.85 11563.67,-1133.4"/>
</g>
<!-- marshmallow&#45;&gt;ahriman_web_schemas_oauth2_schema -->
<g id="edge892" class="edge">
<title>marshmallow&#45;&gt;ahriman_web_schemas_oauth2_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12415.71,-1719.28C12620.3,-1716.59 13592.15,-1701.05 13714,-1647.97 13992.13,-1526.82 13970.69,-1366.51 14205,-1173.82 14221.62,-1160.15 14240.74,-1146.35 14257.95,-1134.56"/>
<polygon fill="#1b06ef" stroke="black" points="14259.73,-1137.58 14266.04,-1129.07 14255.8,-1131.79 14259.73,-1137.58"/>
</g>
<!-- marshmallow&#45;&gt;ahriman_web_schemas_package_name_schema -->
<g id="edge893" class="edge">
<title>marshmallow&#45;&gt;ahriman_web_schemas_package_name_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11942,-1500.67C11938.57,-1459.7 11972.21,-1452.79 11968,-1411.9"/>
<path fill="none" stroke="black" d="M11968,-1409.9C11958.09,-1313.71 11833.13,-1416.51 11757,-1356.9 11742.83,-1345.8 11750.91,-1333.67 11738,-1321.13"/>
<path fill="none" stroke="black" d="M11738,-1319.13C11724.27,-1305.79 11727.38,-1297.05 11714,-1283.36 11694.62,-1263.51 11681.34,-1268.17 11663,-1247.36 11651.1,-1233.85 11656.67,-1224.37 11644,-1211.59"/>
<path fill="none" stroke="black" d="M11644,-1209.59C11581.34,-1146.35 11541.54,-1165.7 11457,-1137.82 11449.71,-1135.41 11442.15,-1132.8 11434.62,-1130.12"/>
<polygon fill="#1b06ef" stroke="black" points="11436.03,-1126.92 11425.44,-1126.82 11433.66,-1133.5 11436.03,-1126.92"/>
</g>
<!-- marshmallow&#45;&gt;ahriman_web_schemas_package_names_schema -->
<g id="edge894" class="edge">
<title>marshmallow&#45;&gt;ahriman_web_schemas_package_names_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12406.95,-1702.26C12417.02,-1696.32 12428.43,-1689.73 12439,-1683.97 12509.92,-1645.36 13029.15,-1412.19 13088,-1356.9 13115.59,-1330.97 13108.31,-1313.67 13131,-1283.36 13169.93,-1231.35 13222.02,-1177.98 13258.44,-1142.74"/>
<polygon fill="#1b06ef" stroke="black" points="13260.55,-1145.56 13265.33,-1136.11 13255.69,-1140.52 13260.55,-1145.56"/>
</g>
<!-- marshmallow&#45;&gt;ahriman_web_schemas_package_properties_schema -->
<g id="edge895" class="edge">
<title>marshmallow&#45;&gt;ahriman_web_schemas_package_properties_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11968,-1409.9C11965.76,-1388.12 11951.62,-1370.43 11934.54,-1356.74"/>
<polygon fill="#1b06ef" stroke="black" points="11936.72,-1354 11926.61,-1350.85 11932.55,-1359.62 11936.72,-1354"/>
</g>
<!-- marshmallow&#45;&gt;ahriman_web_schemas_package_schema -->
<g id="edge896" class="edge">
<title>marshmallow&#45;&gt;ahriman_web_schemas_package_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11738,-1319.13C11722.16,-1303.75 11720.95,-1279.63 11724.24,-1258.13"/>
<polygon fill="#1b06ef" stroke="black" points="11727.67,-1258.82 11726.11,-1248.34 11720.8,-1257.51 11727.67,-1258.82"/>
</g>
<!-- marshmallow&#45;&gt;ahriman_web_schemas_package_status_schema -->
<g id="edge897" class="edge">
<title>marshmallow&#45;&gt;ahriman_web_schemas_package_status_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11644,-1209.59C11627.39,-1192.82 11633.81,-1167.92 11645.23,-1146.3"/>
<polygon fill="#1b06ef" stroke="black" points="11648.26,-1148.04 11650.21,-1137.63 11642.19,-1144.56 11648.26,-1148.04"/>
</g>
<!-- marshmallow&#45;&gt;ahriman_web_schemas_pgp_key_id_schema -->
<g id="edge898" class="edge">
<title>marshmallow&#45;&gt;ahriman_web_schemas_pgp_key_id_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11994,-1319.13C12003.99,-1304.15 11998.36,-1293.83 12013,-1283.36 12094.63,-1224.92 12138.2,-1270.02 12236,-1247.36 12398.93,-1209.6 12438.84,-1195 12596,-1137.82 12602.11,-1135.6 12608.41,-1133.17 12614.7,-1130.66"/>
<polygon fill="#1b06ef" stroke="black" points="12615.87,-1133.96 12623.81,-1126.95 12613.23,-1127.48 12615.87,-1133.96"/>
</g>
<!-- marshmallow&#45;&gt;ahriman_web_schemas_pgp_key_schema -->
<g id="edge899" class="edge">
<title>marshmallow&#45;&gt;ahriman_web_schemas_pgp_key_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12377.33,-1702.35C12376.42,-1659.15 12378.79,-1544.7 12424,-1464.9 12511.99,-1309.59 12692.04,-1187.99 12783.31,-1133.41"/>
<polygon fill="#1b06ef" stroke="black" points="12785.07,-1136.44 12791.89,-1128.33 12781.5,-1130.42 12785.07,-1136.44"/>
</g>
<!-- marshmallow&#45;&gt;ahriman_web_schemas_remote_schema -->
<g id="edge900" class="edge">
<title>marshmallow&#45;&gt;ahriman_web_schemas_remote_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11968,-1409.9C11966.27,-1393.09 11997.86,-1369.55 12028.36,-1350.94"/>
<polygon fill="#1b06ef" stroke="black" points="12030.08,-1353.99 12036.88,-1345.86 12026.5,-1347.97 12030.08,-1353.99"/>
</g>
<!-- marshmallow&#45;&gt;ahriman_web_schemas_search_schema -->
<g id="edge901" class="edge">
<title>marshmallow&#45;&gt;ahriman_web_schemas_search_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12340.05,-1707.24C12314.79,-1699.39 12280.74,-1689.7 12250,-1683.97 12085.84,-1653.38 12035.34,-1697.94 11876,-1647.97 11664.7,-1581.71 11656.47,-1467.58 11448,-1392.9 11331.54,-1351.17 11291.21,-1389.95 11172,-1356.9 11133.69,-1346.27 11127.03,-1335.6 11090,-1321.13"/>
<path fill="none" stroke="black" d="M11090,-1319.13C11073.27,-1312.47 11085.43,-1294.11 11071,-1283.36 11005.94,-1234.86 10971.52,-1263.54 10892,-1247.36 10657.8,-1199.7 10380.1,-1142.28 10254.16,-1116.18"/>
<polygon fill="#1b06ef" stroke="black" points="10255.16,-1112.82 10244.66,-1114.21 10253.74,-1119.67 10255.16,-1112.82"/>
</g>
<!-- marshmallow&#45;&gt;ahriman_web_schemas_status_schema -->
<g id="edge902" class="edge">
<title>marshmallow&#45;&gt;ahriman_web_schemas_status_schema</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11890,-1610.2C11846.4,-1579.91 11943.82,-1555.72 11942,-1502.67"/>
<path fill="none" stroke="black" d="M11942,-1500.67C11941.53,-1487.08 11596.25,-1309.27 11459.67,-1239.45"/>
<polygon fill="#1b06ef" stroke="black" points="11461.66,-1236.54 11451.16,-1235.11 11458.48,-1242.77 11461.66,-1236.54"/>
</g>
<!-- passlib -->
<g id="node217" class="node">
<title>passlib</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#713bce" stroke="black" points="11435,-3207.53 11432,-3211.53 11411,-3211.53 11408,-3207.53 11381,-3207.53 11381,-3171.53 11435,-3171.53 11435,-3207.53"/>
<text text-anchor="middle" x="11408" y="-3187.03" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">passlib</text>
</g>
<!-- passlib&#45;&gt;ahriman_models_user -->
<g id="edge903" class="edge">
<title>passlib&#45;&gt;ahriman_models_user</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11435.39,-3185.03C11650.52,-3157.58 13067.82,-2976.71 13350.14,-2940.69"/>
<polygon fill="#713bce" stroke="black" points="13350.24,-2944.2 13359.71,-2939.47 13349.35,-2937.26 13350.24,-2944.2"/>
</g>
<!-- pkgresources&#45;&gt;ahriman_application_handlers_versions -->
<g id="edge904" class="edge">
<title>pkgresources&#45;&gt;ahriman_application_handlers_versions</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8881.83,-3374.85C8870.5,-3327.13 8839.33,-3188.93 8829,-3071.98 8810.92,-2867.32 8854.86,-2816.21 8889,-2613.61"/>
</g>
<!-- pkgresources&#45;&gt;cerberus -->
<g id="edge905" class="edge">
<title>pkgresources&#45;&gt;cerberus</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8848.95,-3374.75C8814.2,-3358.53 8762.47,-3334.37 8727.32,-3317.96"/>
<polygon fill="#9224d0" stroke="black" points="8728.89,-3314.83 8718.35,-3313.77 8725.93,-3321.17 8728.89,-3314.83"/>
</g>
<!-- pkgresources&#45;&gt;passlib -->
<g id="edge906" class="edge">
<title>pkgresources&#45;&gt;passlib</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8923.37,-3389.53C9002.8,-3384.23 9194.29,-3371.79 9355,-3364.06 9793.01,-3343 9903.97,-3364.13 10341,-3328.06 10745.25,-3294.7 11231.5,-3218.97 11369.7,-3196.76"/>
<polygon fill="#9224d0" stroke="black" points="11370.08,-3200.24 11379.4,-3195.2 11368.97,-3193.33 11370.08,-3200.24"/>
</g>
<!-- pyalpm -->
<g id="node219" class="node">
<title>pyalpm</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#cb2fdb" stroke="black" points="2628,-4458.56 2625,-4462.56 2604,-4462.56 2601,-4458.56 2574,-4458.56 2574,-4422.56 2628,-4422.56 2628,-4458.56"/>
<text text-anchor="middle" x="2601" y="-4438.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">pyalpm</text>
</g>
<!-- pyalpm&#45;&gt;ahriman_core_alpm_pacman -->
<g id="edge907" 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="M2573.74,-4436.51C2480,-4424.48 2168.97,-4371.27 2027,-4183.04 1984.73,-4126.99 2037.24,-4076.81 1984,-4031.07 1886.15,-3947.01 1813.16,-4049.05 1696,-3995.07 1674.43,-3985.13 1630.53,-3942.59 1617,-3923.07 1447.16,-3677.98 1368,-3598.25 1368,-3300.07 1368,-3300.07 1368,-3300.07 1368,-3188.53 1368,-3127.8 1283.02,-2709.91 1278,-2649.38 1272.24,-2579.91 1276.21,-2499.1 1279.88,-2449.33"/>
<polygon fill="#cb2fdb" stroke="black" points="1283.36,-2449.73 1280.63,-2439.49 1276.38,-2449.19 1283.36,-2449.73"/>
</g>
<!-- pyalpm&#45;&gt;ahriman_models_aur_package -->
<g id="edge908" class="edge">
<title>pyalpm&#45;&gt;ahriman_models_aur_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2573.73,-4424.46C2490.17,-4378.21 2237.08,-4238.12 2132.73,-4180.36"/>
<polygon fill="#cb2fdb" stroke="black" points="2134.58,-4177.38 2124.14,-4175.6 2131.19,-4183.5 2134.58,-4177.38"/>
</g>
<!-- pyalpm&#45;&gt;ahriman_models_package -->
<g id="edge909" class="edge">
<title>pyalpm&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2624.05,-4422.17C2708.41,-4359.4 3010.06,-4142.35 3292,-4031.07 3978.9,-3759.96 4154.86,-3675.12 4883,-3552.03 5172.61,-3503.07 6112.23,-3490.77 6339.28,-3488.48"/>
<polygon fill="#cb2fdb" stroke="black" points="6338.99,-3491.98 6348.95,-3488.38 6338.92,-3484.98 6338.99,-3491.98"/>
</g>
<!-- pyalpm&#45;&gt;ahriman_models_package_description -->
<g id="edge910" 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="M2628.2,-4435.93C2887.59,-4401.36 4924.42,-4129.91 5359.43,-4071.93"/>
<polygon fill="#cb2fdb" stroke="black" points="5359.67,-4075.43 5369.12,-4070.64 5358.75,-4068.49 5359.67,-4075.43"/>
</g>
<!-- requests&#45;&gt;ahriman_application_application_application_packages -->
<g id="edge911" class="edge">
<title>requests&#45;&gt;ahriman_application_application_application_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10139.68,-4597.35C10126.85,-4593.91 10111.27,-4590.3 10097,-4588.54 9569,-4523.33 5833.83,-4639.71 5309,-4552.54 5228.59,-4539.18 5213.66,-4515.95 5135,-4494.56 4372.54,-4287.22 4175.07,-4256.88 3396,-4125.05 3351.94,-4117.6 1831.54,-3954.73 1800,-3923.07 1785.53,-3908.55 1710,-3211.03 1710,-3190.53 1710,-3190.53 1710,-3190.53 1710,-3034.21 1710,-2529.7 1660.29,-2386.36 1805,-1903.05 1850,-1752.74 1872.7,-1718.87 1934,-1574.43 1990.86,-1440.47 1979.14,-1384.28 2084,-1283.36 2134.38,-1234.87 2164.73,-1248.68 2224,-1211.59"/>
<path fill="none" stroke="black" d="M2224,-1209.59C2263.38,-1182.48 2309.8,-1155.12 2345.91,-1134.78"/>
<polygon fill="#ef06c5" stroke="black" points="2347.47,-1137.91 2354.48,-1129.97 2344.05,-1131.81 2347.47,-1137.91"/>
</g>
<!-- requests&#45;&gt;ahriman_core_alpm_remote_aur -->
<g id="edge912" 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="M10139.68,-4597.35C10126.85,-4593.91 10111.27,-4590.3 10097,-4588.54 9818.6,-4554.21 5328.42,-4559.48 5048,-4552.54 4440.08,-4537.48 4288.68,-4517.25 3681,-4494.56 3185.09,-4476.04 3057.61,-4518.64 2565,-4458.56 2412.97,-4440.01 2370.6,-4442.45 2228,-4386.56 2151.93,-4356.74 2134.54,-4342.68 2070,-4292.57 2052.9,-4279.3 1937.47,-4175.99 1932,-4155.04"/>
</g>
<!-- requests&#45;&gt;ahriman_core_alpm_remote_official -->
<g id="edge913" 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="M10139.68,-4597.35C10126.85,-4593.91 10111.27,-4590.3 10097,-4588.54 9565.36,-4522.89 5808.6,-4609.95 5276,-4552.54 4996.94,-4522.46 4934.41,-4471.31 4658,-4422.56 4255.66,-4351.59 4144.46,-4391.22 3748,-4292.57 3608.63,-4257.9 3576.74,-4237.85 3444,-4183.04 3387.77,-4159.81 3378.96,-4140.04 3320,-4125.05 3063.24,-4059.79 2988.48,-4116.68 2725,-4089.05 2444.32,-4059.62 2375.01,-4043.64 2097,-3995.07 1936.27,-3966.99 1860.63,-4029.56 1737,-3923.07 1700.64,-3891.75 1558,-3437.39 1558,-3394.05 1558,-3394.05 1558,-3394.05 1558,-3298.07 1558,-3199.52 1472.43,-2963.93 1448,-2868.46 1423.09,-2771.1 1412.88,-2747.69 1392,-2649.38 1368.85,-2540.43 1366.9,-2512.41 1350,-2402.31"/>
<path fill="none" stroke="black" d="M1350,-2400.31C1342,-2376.14 1332.07,-2349.73 1323.41,-2327.58"/>
<polygon fill="#ef06c5" stroke="black" points="1326.75,-2326.51 1319.82,-2318.49 1320.23,-2329.08 1326.75,-2326.51"/>
</g>
<!-- requests&#45;&gt;ahriman_core_report_telegram -->
<g id="edge914" class="edge">
<title>requests&#45;&gt;ahriman_core_report_telegram</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11356,-4254.8C11370.32,-4218.39 11386.71,-4216.49 11407,-4183.04 11716.54,-3672.72 11762.32,-3523.11 11967,-2962.44 11982.04,-2921.26 11988.09,-2911.39 11997,-2868.46 12025.13,-2732.85 12042.24,-2423.82 12025,-2402.31"/>
<path fill="none" stroke="black" d="M12025,-2400.31C11910.77,-2246.21 11870.04,-2200.61 11695,-2122.13 11614.99,-2086.26 11354.91,-2062.64 11244.88,-2054.02"/>
<polygon fill="#ef06c5" stroke="black" points="11245.22,-2050.53 11234.98,-2053.25 11244.68,-2057.51 11245.22,-2050.53"/>
</g>
<!-- requests&#45;&gt;ahriman_core_sign_gpg -->
<g id="edge915" 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="M10167.81,-4588.36C10168.26,-4577.99 10168.77,-4564.51 10169,-4552.54 10169.49,-4526.77 10173.44,-4519.94 10169,-4494.56 10163.13,-4461.04 10157.3,-4453.43 10143,-4422.56 10043.18,-4207.05 10050.7,-4121.06 9877,-3959.07 9643.67,-3741.47 9526.56,-3766.16 9231,-3646.01 9061.35,-3577.05 8970.57,-3644.43 8840,-3516.03 8808.44,-3484.99 8817.75,-3464.99 8807,-3422.04 8727.31,-3103.83 8737.22,-3012.56 8761,-2685.38 8767.06,-2601.96 8779.94,-2505.33 8787.99,-2449.28"/>
<polygon fill="#ef06c5" stroke="black" points="8791.44,-2449.85 8789.41,-2439.45 8784.51,-2448.85 8791.44,-2449.85"/>
</g>
<!-- requests&#45;&gt;ahriman_core_status_web_client -->
<g id="edge916" 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="M10194.35,-4603.58C10370.01,-4590.26 11332.94,-4505.95 11356,-4256.8"/>
<path fill="none" stroke="black" d="M11356,-4254.8C11373.24,-4201.8 11318.59,-4195.27 11280,-4155.04"/>
<path fill="none" stroke="black" d="M11280,-4153.04C11190.84,-4060.1 11049,-4106.86 11049,-3978.07 11049,-3978.07 11049,-3978.07 11049,-3486.03 11049,-3331.97 11036.91,-3290.74 10987,-3144.98 10975.15,-3110.38 10965.84,-3104.45 10949,-3071.98 10932.06,-3039.32 10937.19,-3024.28 10911,-2998.44 10911,-2998.44 10651,-2868.46 10651,-2868.46 10619.77,-2852.55 10398.74,-2744.58 10371,-2723.15"/>
</g>
<!-- requests&#45;&gt;ahriman_core_upload_github -->
<g id="edge917" 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="M11356,-4254.8C11474.24,-3891.17 12041.85,-2956.69 11873,-2613.61"/>
</g>
<!-- requests&#45;&gt;ahriman_core_upload_http_upload -->
<g id="edge918" 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="M11280,-4059.06C11249.63,-3963.25 11615.24,-3328.01 11651,-3234.08 11677.87,-3163.49 11689.51,-3146.47 11702,-3071.98 11730.42,-2902.46 11737.49,-2850.87 11691,-2685.38 11663.3,-2586.8 11638.24,-2568.08 11583,-2481.86 11560.21,-2446.29 11537.71,-2444.01 11531,-2402.31"/>
</g>
<!-- requests&#45;&gt;ahriman_core_util -->
<g id="edge919" class="edge">
<title>requests&#45;&gt;ahriman_core_util</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10168.83,-4588.34C10170.4,-4563.66 10169.16,-4518.53 10143,-4494.56 9954.73,-4322.05 9827.55,-4442.71 9573,-4422.56 8807.84,-4361.97 7871.66,-4358.4 7647.11,-4358.47"/>
<polygon fill="#ef06c5" stroke="black" points="7647.25,-4354.97 7637.25,-4358.48 7647.26,-4361.97 7647.25,-4354.97"/>
</g>
<!-- requestsunixsocket -->
<g id="node221" class="node">
<title>requestsunixsocket</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#b34c84" stroke="black" points="11213.5,-3995.07 11210.5,-3999.07 11189.5,-3999.07 11186.5,-3995.07 11112.5,-3995.07 11112.5,-3959.07 11213.5,-3959.07 11213.5,-3995.07"/>
<text text-anchor="middle" x="11163" y="-3974.57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">requestsunixsocket</text>
</g>
<!-- requests&#45;&gt;requestsunixsocket -->
<g id="edge920" class="edge">
<title>requests&#45;&gt;requestsunixsocket</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11280,-4153.04C11251.7,-4123.54 11292.35,-4100.03 11280,-4061.06"/>
<path fill="none" stroke="black" d="M11280,-4059.06C11271.54,-4032.38 11247.65,-4013.45 11223.64,-4000.64"/>
<polygon fill="#ef06c5" stroke="black" points="11225.25,-3997.53 11214.74,-3996.19 11222.13,-4003.79 11225.25,-3997.53"/>
</g>
<!-- requestsunixsocket&#45;&gt;ahriman_core_status_web_client -->
<g id="edge921" class="edge">
<title>requestsunixsocket&#45;&gt;ahriman_core_status_web_client</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11163,-3958.7C11163,-3923.23 11163,-3839.93 11163,-3769.98 11163,-3769.98 11163,-3769.98 11163,-3298.07 11163,-3134.42 11065.92,-3112.94 10949,-2998.44 10834.41,-2886.23 10794.27,-2867.02 10651,-2794.92 10607.31,-2772.93 10590.19,-2781.87 10547,-2758.92 10475.37,-2720.85 10464.55,-2699.81 10401,-2649.38 10363.74,-2619.82 10251.01,-2557.31 10237,-2511.85"/>
</g>
<!-- srcinfo -->
<g id="node222" class="node">
<title>srcinfo</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#b6536e" stroke="black" points="5523,-3786.98 5520,-3790.98 5499,-3790.98 5496,-3786.98 5469,-3786.98 5469,-3750.98 5523,-3750.98 5523,-3786.98"/>
<text text-anchor="middle" x="5496" y="-3766.48" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">srcinfo</text>
</g>
<!-- srcinfo&#45;&gt;ahriman_models_package -->
<g id="edge922" class="edge">
<title>srcinfo&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5476.48,-3750.7C5459.31,-3733.39 5437.55,-3705.2 5441,-3676"/>
</g>
</g>
</svg>