Author:
Hash:
Timestamp:
+1457 -425 +/-29 browse
Kevin Schoon [me@kevinschoon.com]
5ab30c75e489badb4363f6f7a635fe8f006aeb24
Wed, 13 Dec 2023 20:59:15 +0000 (2.0 years ago)
| 1 | diff --git a/ATTRIBUTIONS.md b/ATTRIBUTIONS.md |
| 2 | index 1569333..c27faf8 100644 |
| 3 | --- a/ATTRIBUTIONS.md |
| 4 | +++ b/ATTRIBUTIONS.md |
| 5 | @@ -22,7 +22,6 @@ Inca style textile patterns are created by [@TrucomanX](https://openclipart.org/ |
| 6 | ##### CC BY-SA 4.0 |
| 7 | |
| 8 | * Most SVG icons come from [OpenMoji](https://openmoji.org) |
| 9 | - * [Ayllu moon emoji](https://openmoji.org/library/emoji-1F319/) by Vanessa Boutzikoudi. |
| 10 | * [Web Syndication Icon](https://openmoji.org/library/emoji-E381/) by Alexander Müller. |
| 11 | * [Balance Scale](https://openmoji.org/library/emoji-2696/) by Hilda Kalyoncu. |
| 12 | * [Classical Building](https://openmoji.org/library/emoji-1F3DB/) by Martin Wehl. |
| 13 | diff --git a/ayllu-shell/README.md b/ayllu-shell/README.md |
| 14 | new file mode 100644 |
| 15 | index 0000000..7eb6fcf |
| 16 | --- /dev/null |
| 17 | +++ b/ayllu-shell/README.md |
| 18 | @@ -0,0 +1,4 @@ |
| 19 | + # ayllu-shell |
| 20 | + |
| 21 | + Placeholder for a [Gitolite](https://gitolite.com/gitolite/overview.html) style |
| 22 | + restricted shell for Ayllu. |
| 23 | diff --git a/www/content/_index.md b/www/content/_index.md |
| 24 | index 2d0728d..ba7191f 100644 |
| 25 | --- a/www/content/_index.md |
| 26 | +++ b/www/content/_index.md |
| 27 | @@ -13,8 +13,8 @@ Ayllu is a lightweight code forge designed to enable individuals and |
| 28 | community projects to develop software in collaboration across open internet |
| 29 | standards. |
| 30 | |
| 31 | - <a href="https://ayllu-forge.org/projects/ayllu/refs"> |
| 32 | - <button> Latest Release: 0.2.1 </button> |
| 33 | + <a href="https://ayllu-forge.org/projects/ayllu"> |
| 34 | + <button> Source </button> |
| 35 | </a> |
| 36 | |
| 37 | </div> |
| 38 | diff --git a/www/content/docs/_index.md b/www/content/docs/_index.md |
| 39 | index 24a5d09..f15e505 100644 |
| 40 | --- a/www/content/docs/_index.md |
| 41 | +++ b/www/content/docs/_index.md |
| 42 | @@ -5,3 +5,6 @@ sort_by = "weight" |
| 43 | +++ |
| 44 | |
| 45 | # Documentation |
| 46 | + |
| 47 | + Welcome to the Ayllu documentation 📖, this is section serves as an |
| 48 | + authoritative reference on all things related to the Ayllu code forge! |
| 49 | diff --git a/www/content/docs/architecture.md b/www/content/docs/architecture.md |
| 50 | new file mode 100644 |
| 51 | index 0000000..5d449bc |
| 52 | --- /dev/null |
| 53 | +++ b/www/content/docs/architecture.md |
| 54 | @@ -0,0 +1,19 @@ |
| 55 | + +++ |
| 56 | + title = "Architecture" |
| 57 | + slug = "architecture" |
| 58 | + weight = 0 |
| 59 | + +++ |
| 60 | + |
| 61 | + **Ayllu is a new software project and it's design is evolving.** |
| 62 | + |
| 63 | + It's basic architecture is that of a single binary providing a web interface to |
| 64 | + browse and interact with Git repositories as well as an RPC server based on |
| 65 | + [Cap'n Proto](https://capnproto.org/) with an embedded client. The RPC server |
| 66 | + running in the core Ayllu binary is called the `job_server` and it provides an |
| 67 | + interface to interact with Ayllu for administrators. Much of the functionality |
| 68 | + of Ayllu is implemented via `RPC extensions` which are minimal binaries that |
| 69 | + are used to extend the core functionality of Ayllu. |
| 70 | + |
| 71 | + The current architecture of Ayllu is depicted below: |
| 72 | + |
| 73 | + <img class="diagram" src="/assets/architecture.svg" /> |
| 74 | diff --git a/www/content/docs/developers.md b/www/content/docs/developers.md |
| 75 | new file mode 100644 |
| 76 | index 0000000..d773077 |
| 77 | --- /dev/null |
| 78 | +++ b/www/content/docs/developers.md |
| 79 | @@ -0,0 +1,27 @@ |
| 80 | + +++ |
| 81 | + title = "Developers" |
| 82 | + slug = "developers" |
| 83 | + weight = 0 |
| 84 | + +++ |
| 85 | + |
| 86 | + # ayllu-forge.org |
| 87 | + |
| 88 | + The [Ayllu website](https://ayllu-forge.org) and project documentation are built |
| 89 | + together with [Zola](https://www.getzola.org/) which you must install. After |
| 90 | + which you can startup a local preview of the site with the following commands: |
| 91 | + |
| 92 | + ```sh |
| 93 | + cd www && zola serve |
| 94 | + ``` |
| 95 | + The generated content are hosted directly from Ayllu and you simply need to |
| 96 | + build and commit the generated code directly into the repository. |
| 97 | + |
| 98 | + ```sh |
| 99 | + cd www && zola build |
| 100 | + ``` |
| 101 | + |
| 102 | + ## Diagrams |
| 103 | + |
| 104 | + Diagrams are built with [nomnoml](https://www.nomnoml.com/) and their SVG |
| 105 | + content contain the source for generating the diagrams. Simply open one of the |
| 106 | + source SVGs up and copy-paste it to the editor of the nomnoml website. |
| 107 | diff --git a/www/content/docs/installation.md b/www/content/docs/installation.md |
| 108 | index c4d1b71..42a3d28 100644 |
| 109 | --- a/www/content/docs/installation.md |
| 110 | +++ b/www/content/docs/installation.md |
| 111 | @@ -4,6 +4,4 @@ slug = "installation" |
| 112 | weight = 0 |
| 113 | +++ |
| 114 | |
| 115 | - ### Installation |
| 116 | - |
| 117 | - #### From Source |
| 118 | + TODO |
| 119 | diff --git a/www/public/assets/architecture.svg b/www/public/assets/architecture.svg |
| 120 | new file mode 100644 |
| 121 | index 0000000..2de2a37 |
| 122 | --- /dev/null |
| 123 | +++ b/www/public/assets/architecture.svg |
| 124 | @@ -0,0 +1,598 @@ |
| 125 | + <svg version="1.1" baseProfile="full" width="1938.0" height="655.0" viewbox="0 0 1938 655" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events"> |
| 126 | + <desc > |
| 127 | + [reverse_proxy] |
| 128 | + |
| 129 | + [reverse_proxy]<-->[Rudolfs (LFS API)] |
| 130 | + |
| 131 | + [reverse_proxy]<-->[ayllu-core | |
| 132 | + [axum http interface] |
| 133 | + [sites static hosting] |
| 134 | + [capnp-rpc-server (job_server)] |
| 135 | + [git repositories via libgit2] |
| 136 | + [<database> sqlite] |
| 137 | + ] |
| 138 | + |
| 139 | + [ayllu-core] <--> [ |
| 140 | + ayllu-mail| |
| 141 | + [capnp-rpc-server] |
| 142 | + [mailpot] |
| 143 | + [postfix] |
| 144 | + [<database> sqlite] |
| 145 | + ] <-- SMTP [<actor> contributor-2] |
| 146 | + |
| 147 | + [ayllu-core] <--> [ |
| 148 | + ayllu-xmpp | |
| 149 | + [capnp-rpc-server] |
| 150 | + [chat interface/bot] |
| 151 | + [<database> sqlite] |
| 152 | + ] <-- XMPP [<actor> contributor-2] |
| 153 | + |
| 154 | + [ayllu-core] <--> [ |
| 155 | + ayllu-build | |
| 156 | + [capnp-rpc-server] |
| 157 | + [<database> sqlite] |
| 158 | + ] |
| 159 | + |
| 160 | + [ayllu-core] <--> [ayllu-shell] <-- SSH [<actor> contributor] |
| 161 | + [ayllu-core] <--> [ayllu-cli] <-- [<actor> admin] |
| 162 | + |
| 163 | + |
| 164 | + [ayllu-build]<-->[ |
| 165 | + ayllu-builder-1 | |
| 166 | + [<package>qemu-x86_64| capnp-rpc-server | executor] |
| 167 | + ] |
| 168 | + |
| 169 | + [ayllu-build]<-->[ |
| 170 | + ayllu-builder-2 | |
| 171 | + [<package>qemu-aarch64| capnp-rpc-server | exectuor] |
| 172 | + ] |
| 173 | + |
| 174 | + [ayllu-build]<-->[ |
| 175 | + ayllu-builder-n | |
| 176 | + [<package>lxc| capnp-rpc-server | executor] |
| 177 | + ] --> [ayllu-core]</desc> |
| 178 | + <g stroke-width="1.0" text-align="left" font="12pt Helvetica, Arial, sans-serif" font-size="12pt" font-family="Helvetica" font-weight="normal" font-style="normal"> |
| 179 | + <g font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" stroke-width="3.0" stroke-linejoin="round" stroke-linecap="round" stroke="#33322E"> |
| 180 | + <g stroke="transparent" fill="transparent"> |
| 181 | + <rect x="0.0" y="0.0" height="655.0" width="1938.0" stroke="none"></rect> |
| 182 | + </g> |
| 183 | + <g transform="translate(8, 8)" fill="#33322E"> |
| 184 | + <g transform="translate(20, 20)" fill="#33322E" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal"> |
| 185 | + <g stroke-dasharray="6 6"> |
| 186 | + <path d="M965.1 23.1 L713 51 L713 115.83333333333333 L713.0 115.8 " fill="none"></path> |
| 187 | + </g> |
| 188 | + <path d="M707.7 109.2 L713.0 115.8 L718.3 109.2 L713.0 122.5 Z"></path> |
| 189 | + <path d="M959.1 29.2 L965.1 23.1 L957.9 18.6 L971.8 22.4 Z"></path> |
| 190 | + <g stroke-dasharray="6 6"> |
| 191 | + <path d="M1103.4 23.1 L1355.5 51 L1355.5 64.33333333333333 L1355.5 64.3 " fill="none"></path> |
| 192 | + </g> |
| 193 | + <path d="M1350.2 57.7 L1355.5 64.3 L1360.8 57.7 L1355.5 71.0 Z"></path> |
| 194 | + <path d="M1110.6 18.6 L1103.4 23.1 L1109.4 29.2 L1096.8 22.4 Z"></path> |
| 195 | + <g stroke-dasharray="6 6"> |
| 196 | + <path d="M822.4 180.4 L261 225 L261 238.33333333333334 L261.0 238.3 " fill="none"></path> |
| 197 | + </g> |
| 198 | + <path d="M255.7 231.7 L261.0 238.3 L266.3 231.7 L261.0 245.0 Z"></path> |
| 199 | + <path d="M816.1 186.2 L822.4 180.4 L815.3 175.6 L829.0 179.9 Z"></path> |
| 200 | + <text x="758.0" y="489.4" stroke="none">SMTP</text> |
| 201 | + <g stroke-dasharray="6 6"> |
| 202 | + <path d="M261.0 385.7 L261 399 L750 497.4263494967978 L750.0 497.4 " fill="none"></path> |
| 203 | + </g> |
| 204 | + <path d="M266.3 392.3 L261.0 385.7 L255.7 392.3 L261.0 379.0 Z"></path> |
| 205 | + <g stroke-dasharray="6 6"> |
| 206 | + <path d="M926.9 206.0 L807.5 225 L807.5 238.33333333333334 L807.5 238.3 " fill="none"></path> |
| 207 | + </g> |
| 208 | + <path d="M802.2 231.7 L807.5 238.3 L812.8 231.7 L807.5 245.0 Z"></path> |
| 209 | + <path d="M921.1 212.4 L926.9 206.0 L919.5 201.8 L933.5 205.0 Z"></path> |
| 210 | + <text x="754.7" y="473.5" stroke="none">XMPP</text> |
| 211 | + <g stroke-dasharray="6 6"> |
| 212 | + <path d="M807.5 385.7 L807.5 399 L807.5 481.5 L807.5 481.5 " fill="none"></path> |
| 213 | + </g> |
| 214 | + <path d="M812.8 392.3 L807.5 385.7 L802.2 392.3 L807.5 379.0 Z"></path> |
| 215 | + <g stroke-dasharray="6 6"> |
| 216 | + <path d="M1276.2 209.5 L1259 225 L1259 238.33333333333334 L1259.0 238.3 " fill="none"></path> |
| 217 | + </g> |
| 218 | + <path d="M1253.7 231.7 L1259.0 238.3 L1264.3 231.7 L1259.0 245.0 Z"></path> |
| 219 | + <path d="M1274.9 217.9 L1276.2 209.5 L1267.7 210.0 L1281.2 205.0 Z"></path> |
| 220 | + <g stroke-dasharray="6 6"> |
| 221 | + <path d="M1595.6 206.8 L1659 225 L1659 289.8333333333333 L1659.0 289.8 " fill="none"></path> |
| 222 | + </g> |
| 223 | + <path d="M1653.7 283.2 L1659.0 289.8 L1664.3 283.2 L1659.0 296.5 Z"></path> |
| 224 | + <path d="M1603.5 203.5 L1595.6 206.8 L1600.6 213.8 L1589.2 205.0 Z"></path> |
| 225 | + <text x="1618.3" y="473.5" stroke="none">SSH</text> |
| 226 | + <g stroke-dasharray="6 6"> |
| 227 | + <path d="M1659.0 334.2 L1659 399 L1659 481.5 L1659.0 481.5 " fill="none"></path> |
| 228 | + </g> |
| 229 | + <path d="M1664.3 340.8 L1659.0 334.2 L1653.7 340.8 L1659.0 327.5 Z"></path> |
| 230 | + <g stroke-dasharray="6 6"> |
| 231 | + <path d="M1691.6 206.3 L1783.5 225 L1783.5 289.8333333333333 L1783.5 289.8 " fill="none"></path> |
| 232 | + </g> |
| 233 | + <path d="M1778.2 283.2 L1783.5 289.8 L1788.8 283.2 L1783.5 296.5 Z"></path> |
| 234 | + <path d="M1699.2 202.4 L1691.6 206.3 L1697.1 212.9 L1685.1 205.0 Z"></path> |
| 235 | + <g stroke-dasharray="6 6"> |
| 236 | + <path d="M1783.5 334.2 L1783.5 399 L1783.5 481.5 L1783.5 481.5 " fill="none"></path> |
| 237 | + </g> |
| 238 | + <path d="M1788.8 340.8 L1783.5 334.2 L1778.2 340.8 L1783.5 327.5 Z"></path> |
| 239 | + <g stroke-dasharray="6 6"> |
| 240 | + <path d="M1102.2 365.9 L1006 399 L1006 412.3333333333333 L1006.0 412.3 " fill="none"></path> |
| 241 | + </g> |
| 242 | + <path d="M1000.7 405.7 L1006.0 412.3 L1011.3 405.7 L1006.0 419.0 Z"></path> |
| 243 | + <path d="M1097.6 373.1 L1102.2 365.9 L1094.2 363.0 L1108.5 363.8 Z"></path> |
| 244 | + <g stroke-dasharray="6 6"> |
| 245 | + <path d="M1242.1 385.5 L1239 399 L1239 412.3333333333333 L1239.0 412.3 " fill="none"></path> |
| 246 | + </g> |
| 247 | + <path d="M1233.7 405.7 L1239.0 412.3 L1244.3 405.7 L1239.0 419.0 Z"></path> |
| 248 | + <path d="M1245.8 393.2 L1242.1 385.5 L1235.4 390.8 L1243.6 379.0 Z"></path> |
| 249 | + <g stroke-dasharray="6 6"> |
| 250 | + <path d="M1354.1 383.0 L1375.5 399 L1388.6489765726408 413.9884707045646 L1388.6 414.0 " fill="none"></path> |
| 251 | + </g> |
| 252 | + <path d="M1380.2 412.5 L1388.6 414.0 L1388.3 405.5 L1393.0 419.0 Z"></path> |
| 253 | + <path d="M1362.6 382.7 L1354.1 383.0 L1356.2 391.3 L1348.7 379.0 Z"></path> |
| 254 | + <g stroke-dasharray="6 6"> |
| 255 | + <path d="M1512.9 419.0 L1522 399 L1522 312 L1522 312 L1522 225 L1522 225 L1489.6328041618644 208.08741118367695 L1489.6 208.1 " fill="none"></path> |
| 256 | + </g> |
| 257 | + <path d="M1498.0 206.4 L1489.6 208.1 L1493.1 215.9 L1483.7 205.0 Z"></path> |
| 258 | + <g data-name="reverse_proxy"> |
| 259 | + <g fill="#eee8d5" stroke="#33322E" data-name="reverse_proxy"> |
| 260 | + <rect x="971.8" y="0.0" height="31.0" width="125.0" data-name="reverse_proxy"></rect> |
| 261 | + </g> |
| 262 | + <g transform="translate(971.75, 0)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="reverse_proxy"> |
| 263 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="reverse_proxy"> |
| 264 | + <text x="54.5" y="13.5" stroke="none" text-anchor="middle" data-name="reverse_proxy">reverse_proxy</text> |
| 265 | + |
| 266 | + </g> |
| 267 | + </g> |
| 268 | + </g> |
| 269 | + <g data-name="Rudolfs (LFS API)"> |
| 270 | + <g fill="#eee8d5" stroke="#33322E" data-name="Rudolfs (LFS API)"> |
| 271 | + <rect x="637.0" y="122.5" height="31.0" width="152.0" data-name="Rudolfs (LFS API)"></rect> |
| 272 | + </g> |
| 273 | + <g transform="translate(637, 122.5)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="Rudolfs (LFS API)"> |
| 274 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="Rudolfs (LFS API)"> |
| 275 | + <text x="68.0" y="13.5" stroke="none" text-anchor="middle" data-name="Rudolfs (LFS API)">Rudolfs (LFS API)</text> |
| 276 | + |
| 277 | + </g> |
| 278 | + </g> |
| 279 | + </g> |
| 280 | + <g data-name="ayllu-core"> |
| 281 | + <g fill="#eee8d5" stroke="#33322E" data-name="ayllu-core"> |
| 282 | + <rect x="829.0" y="71.0" height="134.0" width="1053.0" data-name="ayllu-core"></rect> |
| 283 | + <path d="M829.0 102.0 L1882.0 102.0" fill="none" data-name="ayllu-core"></path> |
| 284 | + </g> |
| 285 | + <g transform="translate(829, 71)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="ayllu-core"> |
| 286 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="ayllu-core"> |
| 287 | + <text x="518.5" y="13.5" stroke="none" text-anchor="middle" data-name="ayllu-core">ayllu-core</text> |
| 288 | + |
| 289 | + </g> |
| 290 | + </g> |
| 291 | + <g transform="translate(829, 102)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="ayllu-core"> |
| 292 | + <g transform="translate(8, 8)" fill="#33322E" data-name="ayllu-core"> |
| 293 | + <g transform="translate(20, 20)" data-name="ayllu-core"> |
| 294 | + <g data-name="axum http interface"> |
| 295 | + <g fill="#fdf6e3" stroke="#33322E" data-name="axum http interface"> |
| 296 | + <rect x="0.0" y="8.0" height="31.0" width="164.0" data-name="axum http interface"></rect> |
| 297 | + </g> |
| 298 | + <g transform="translate(0, 8)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="axum http interface"> |
| 299 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="axum http interface"> |
| 300 | + <text x="74.0" y="13.5" stroke="none" text-anchor="middle" data-name="axum http interface">axum http interface</text> |
| 301 | + |
| 302 | + </g> |
| 303 | + </g> |
| 304 | + </g> |
| 305 | + <g data-name="sites static hosting"> |
| 306 | + <g fill="#fdf6e3" stroke="#33322E" data-name="sites static hosting"> |
| 307 | + <rect x="204.0" y="8.0" height="31.0" width="161.0" data-name="sites static hosting"></rect> |
| 308 | + </g> |
| 309 | + <g transform="translate(204, 8)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="sites static hosting"> |
| 310 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="sites static hosting"> |
| 311 | + <text x="72.5" y="13.5" stroke="none" text-anchor="middle" data-name="sites static hosting">sites static hosting</text> |
| 312 | + |
| 313 | + </g> |
| 314 | + </g> |
| 315 | + </g> |
| 316 | + <g data-name="capnp-rpc-server (job_server)"> |
| 317 | + <g fill="#fdf6e3" stroke="#33322E" data-name="capnp-rpc-server (job_server)"> |
| 318 | + <rect x="405.0" y="8.0" height="31.0" width="244.0" data-name="capnp-rpc-server (job_server)"></rect> |
| 319 | + </g> |
| 320 | + <g transform="translate(405, 8)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="capnp-rpc-server (job_server)"> |
| 321 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="capnp-rpc-server (job_server)"> |
| 322 | + <text x="114.0" y="13.5" stroke="none" text-anchor="middle" data-name="capnp-rpc-server (job_server)">capnp-rpc-server (job_server)</text> |
| 323 | + |
| 324 | + </g> |
| 325 | + </g> |
| 326 | + </g> |
| 327 | + <g data-name="git repositories via libgit2"> |
| 328 | + <g fill="#fdf6e3" stroke="#33322E" data-name="git repositories via libgit2"> |
| 329 | + <rect x="689.0" y="8.0" height="31.0" width="210.0" data-name="git repositories via libgit2"></rect> |
| 330 | + </g> |
| 331 | + <g transform="translate(689, 8)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="git repositories via libgit2"> |
| 332 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="git repositories via libgit2"> |
| 333 | + <text x="97.0" y="13.5" stroke="none" text-anchor="middle" data-name="git repositories via libgit2">git repositories via libgit2</text> |
| 334 | + |
| 335 | + </g> |
| 336 | + </g> |
| 337 | + </g> |
| 338 | + <g data-name="sqlite"> |
| 339 | + <g fill="#fdf6e3" stroke="#33322E" data-name="sqlite"> |
| 340 | + <rect x="939.0" y="8.0" height="31.0" width="58.0" stroke="none" data-name="sqlite"></rect> |
| 341 | + <path d="M939.0 8.0 L939.0 39.0" fill="none" data-name="sqlite"></path> |
| 342 | + <path d="M997.0 8.0 L997.0 39.0" fill="none" data-name="sqlite"></path> |
| 343 | + <ellipse cx="968.0" cy="8.0" rx="29.0" ry="6.0" data-name="sqlite"></ellipse> |
| 344 | + <path d="M997.0 39.0 L997.0 39.3 L996.9 39.6 L996.7 39.9 L996.4 40.2 L996.1 40.5 L995.7 40.8 L995.3 41.1 L994.7 41.3 L994.1 41.6 L993.5 41.9 L992.7 42.1 L992.0 42.4 L991.1 42.6 L990.2 42.9 L989.3 43.1 L988.2 43.3 L987.2 43.5 L986.1 43.7 L984.9 43.9 L983.7 44.0 L982.5 44.2 L981.2 44.3 L979.9 44.5 L978.6 44.6 L977.2 44.7 L975.9 44.8 L974.5 44.8 L973.0 44.9 L971.6 45.0 L970.2 45.0 L968.7 45.0 L967.3 45.0 L965.8 45.0 L964.4 45.0 L963.0 44.9 L961.5 44.8 L960.1 44.8 L958.8 44.7 L957.4 44.6 L956.1 44.5 L954.8 44.3 L953.5 44.2 L952.3 44.0 L951.1 43.9 L949.9 43.7 L948.8 43.5 L947.8 43.3 L946.7 43.1 L945.8 42.9 L944.9 42.6 L944.0 42.4 L943.3 42.1 L942.5 41.9 L941.9 41.6 L941.3 41.3 L940.7 41.1 L940.3 40.8 L939.9 40.5 L939.6 40.2 L939.3 39.9 L939.1 39.6 L939.0 39.3 L939.0 39.0" data-name="sqlite"></path> |
| 345 | + </g> |
| 346 | + <g transform="translate(939, 12)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="sqlite"> |
| 347 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="sqlite"> |
| 348 | + <text x="21.0" y="13.5" stroke="none" text-anchor="middle" data-name="sqlite">sqlite</text> |
| 349 | + |
| 350 | + </g> |
| 351 | + </g> |
| 352 | + </g> |
| 353 | + </g> |
| 354 | + </g> |
| 355 | + </g> |
| 356 | + </g> |
| 357 | + <g data-name="ayllu-mail"> |
| 358 | + <g fill="#eee8d5" stroke="#33322E" data-name="ayllu-mail"> |
| 359 | + <rect x="0.0" y="245.0" height="134.0" width="522.0" data-name="ayllu-mail"></rect> |
| 360 | + <path d="M0.0 276.0 L522.0 276.0" fill="none" data-name="ayllu-mail"></path> |
| 361 | + </g> |
| 362 | + <g transform="translate(0, 245)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="ayllu-mail"> |
| 363 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="ayllu-mail"> |
| 364 | + <text x="253.0" y="13.5" stroke="none" text-anchor="middle" data-name="ayllu-mail">ayllu-mail</text> |
| 365 | + |
| 366 | + </g> |
| 367 | + </g> |
| 368 | + <g transform="translate(0, 276)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="ayllu-mail"> |
| 369 | + <g transform="translate(8, 8)" fill="#33322E" data-name="ayllu-mail"> |
| 370 | + <g transform="translate(20, 20)" data-name="ayllu-mail"> |
| 371 | + <g data-name="capnp-rpc-server"> |
| 372 | + <g fill="#fdf6e3" stroke="#33322E" data-name="capnp-rpc-server"> |
| 373 | + <rect x="0.0" y="8.0" height="31.0" width="147.0" data-name="capnp-rpc-server"></rect> |
| 374 | + </g> |
| 375 | + <g transform="translate(0, 8)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="capnp-rpc-server"> |
| 376 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="capnp-rpc-server"> |
| 377 | + <text x="65.5" y="13.5" stroke="none" text-anchor="middle" data-name="capnp-rpc-server">capnp-rpc-server</text> |
| 378 | + |
| 379 | + </g> |
| 380 | + </g> |
| 381 | + </g> |
| 382 | + <g data-name="mailpot"> |
| 383 | + <g fill="#fdf6e3" stroke="#33322E" data-name="mailpot"> |
| 384 | + <rect x="187.0" y="8.0" height="31.0" width="73.0" data-name="mailpot"></rect> |
| 385 | + </g> |
| 386 | + <g transform="translate(187, 8)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="mailpot"> |
| 387 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="mailpot"> |
| 388 | + <text x="28.5" y="13.5" stroke="none" text-anchor="middle" data-name="mailpot">mailpot</text> |
| 389 | + |
| 390 | + </g> |
| 391 | + </g> |
| 392 | + </g> |
| 393 | + <g data-name="postfix"> |
| 394 | + <g fill="#fdf6e3" stroke="#33322E" data-name="postfix"> |
| 395 | + <rect x="300.0" y="8.0" height="31.0" width="68.0" data-name="postfix"></rect> |
| 396 | + </g> |
| 397 | + <g transform="translate(300, 8)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="postfix"> |
| 398 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="postfix"> |
| 399 | + <text x="26.0" y="13.5" stroke="none" text-anchor="middle" data-name="postfix">postfix</text> |
| 400 | + |
| 401 | + </g> |
| 402 | + </g> |
| 403 | + </g> |
| 404 | + <g data-name="sqlite"> |
| 405 | + <g fill="#fdf6e3" stroke="#33322E" data-name="sqlite"> |
| 406 | + <rect x="408.0" y="8.0" height="31.0" width="58.0" stroke="none" data-name="sqlite"></rect> |
| 407 | + <path d="M408.0 8.0 L408.0 39.0" fill="none" data-name="sqlite"></path> |
| 408 | + <path d="M466.0 8.0 L466.0 39.0" fill="none" data-name="sqlite"></path> |
| 409 | + <ellipse cx="437.0" cy="8.0" rx="29.0" ry="6.0" data-name="sqlite"></ellipse> |
| 410 | + <path d="M466.0 39.0 L466.0 39.3 L465.9 39.6 L465.7 39.9 L465.4 40.2 L465.1 40.5 L464.7 40.8 L464.3 41.1 L463.7 41.3 L463.1 41.6 L462.5 41.9 L461.7 42.1 L461.0 42.4 L460.1 42.6 L459.2 42.9 L458.3 43.1 L457.2 43.3 L456.2 43.5 L455.1 43.7 L453.9 43.9 L452.7 44.0 L451.5 44.2 L450.2 44.3 L448.9 44.5 L447.6 44.6 L446.2 44.7 L444.9 44.8 L443.5 44.8 L442.0 44.9 L440.6 45.0 L439.2 45.0 L437.7 45.0 L436.3 45.0 L434.8 45.0 L433.4 45.0 L432.0 44.9 L430.5 44.8 L429.1 44.8 L427.8 44.7 L426.4 44.6 L425.1 44.5 L423.8 44.3 L422.5 44.2 L421.3 44.0 L420.1 43.9 L418.9 43.7 L417.8 43.5 L416.8 43.3 L415.7 43.1 L414.8 42.9 L413.9 42.6 L413.0 42.4 L412.3 42.1 L411.5 41.9 L410.9 41.6 L410.3 41.3 L409.7 41.1 L409.3 40.8 L408.9 40.5 L408.6 40.2 L408.3 39.9 L408.1 39.6 L408.0 39.3 L408.0 39.0" data-name="sqlite"></path> |
| 411 | + </g> |
| 412 | + <g transform="translate(408, 12)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="sqlite"> |
| 413 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="sqlite"> |
| 414 | + <text x="21.0" y="13.5" stroke="none" text-anchor="middle" data-name="sqlite">sqlite</text> |
| 415 | + |
| 416 | + </g> |
| 417 | + </g> |
| 418 | + </g> |
| 419 | + </g> |
| 420 | + </g> |
| 421 | + </g> |
| 422 | + </g> |
| 423 | + <g data-name="contributor-2"> |
| 424 | + <g fill="#eee8d5" stroke="#33322E" data-name="contributor-2"> |
| 425 | + <circle r="4.0" cx="807.5" cy="493.5" data-name="contributor-2"></circle> |
| 426 | + <path d="M807.5 497.5 L807.5 505.5" fill="none" data-name="contributor-2"></path> |
| 427 | + <path d="M803.5 501.5 L811.5 501.5" fill="none" data-name="contributor-2"></path> |
| 428 | + <path d="M803.5 509.5 L807.5 505.5 L811.5 509.5" fill="none" data-name="contributor-2"></path> |
| 429 | + </g> |
| 430 | + <g transform="translate(750, 505.5)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="contributor-2"> |
| 431 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="contributor-2"> |
| 432 | + <text x="49.5" y="13.5" stroke="none" text-anchor="middle" data-name="contributor-2">contributor-2</text> |
| 433 | + |
| 434 | + </g> |
| 435 | + </g> |
| 436 | + </g> |
| 437 | + <g data-name="ayllu-xmpp"> |
| 438 | + <g fill="#eee8d5" stroke="#33322E" data-name="ayllu-xmpp"> |
| 439 | + <rect x="562.0" y="245.0" height="134.0" width="491.0" data-name="ayllu-xmpp"></rect> |
| 440 | + <path d="M562.0 276.0 L1053.0 276.0" fill="none" data-name="ayllu-xmpp"></path> |
| 441 | + </g> |
| 442 | + <g transform="translate(562, 245)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="ayllu-xmpp"> |
| 443 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="ayllu-xmpp"> |
| 444 | + <text x="237.5" y="13.5" stroke="none" text-anchor="middle" data-name="ayllu-xmpp">ayllu-xmpp</text> |
| 445 | + |
| 446 | + </g> |
| 447 | + </g> |
| 448 | + <g transform="translate(562, 276)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="ayllu-xmpp"> |
| 449 | + <g transform="translate(8, 8)" fill="#33322E" data-name="ayllu-xmpp"> |
| 450 | + <g transform="translate(20, 20)" data-name="ayllu-xmpp"> |
| 451 | + <g data-name="capnp-rpc-server"> |
| 452 | + <g fill="#fdf6e3" stroke="#33322E" data-name="capnp-rpc-server"> |
| 453 | + <rect x="0.0" y="8.0" height="31.0" width="147.0" data-name="capnp-rpc-server"></rect> |
| 454 | + </g> |
| 455 | + <g transform="translate(0, 8)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="capnp-rpc-server"> |
| 456 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="capnp-rpc-server"> |
| 457 | + <text x="65.5" y="13.5" stroke="none" text-anchor="middle" data-name="capnp-rpc-server">capnp-rpc-server</text> |
| 458 | + |
| 459 | + </g> |
| 460 | + </g> |
| 461 | + </g> |
| 462 | + <g data-name="chat interface/bot"> |
| 463 | + <g fill="#fdf6e3" stroke="#33322E" data-name="chat interface/bot"> |
| 464 | + <rect x="187.0" y="8.0" height="31.0" width="150.0" data-name="chat interface/bot"></rect> |
| 465 | + </g> |
| 466 | + <g transform="translate(187, 8)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="chat interface/bot"> |
| 467 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="chat interface/bot"> |
| 468 | + <text x="67.0" y="13.5" stroke="none" text-anchor="middle" data-name="chat interface/bot">chat interface/bot</text> |
| 469 | + |
| 470 | + </g> |
| 471 | + </g> |
| 472 | + </g> |
| 473 | + <g data-name="sqlite"> |
| 474 | + <g fill="#fdf6e3" stroke="#33322E" data-name="sqlite"> |
| 475 | + <rect x="377.0" y="8.0" height="31.0" width="58.0" stroke="none" data-name="sqlite"></rect> |
| 476 | + <path d="M377.0 8.0 L377.0 39.0" fill="none" data-name="sqlite"></path> |
| 477 | + <path d="M435.0 8.0 L435.0 39.0" fill="none" data-name="sqlite"></path> |
| 478 | + <ellipse cx="406.0" cy="8.0" rx="29.0" ry="6.0" data-name="sqlite"></ellipse> |
| 479 | + <path d="M435.0 39.0 L435.0 39.3 L434.9 39.6 L434.7 39.9 L434.4 40.2 L434.1 40.5 L433.7 40.8 L433.3 41.1 L432.7 41.3 L432.1 41.6 L431.5 41.9 L430.7 42.1 L430.0 42.4 L429.1 42.6 L428.2 42.9 L427.3 43.1 L426.2 43.3 L425.2 43.5 L424.1 43.7 L422.9 43.9 L421.7 44.0 L420.5 44.2 L419.2 44.3 L417.9 44.5 L416.6 44.6 L415.2 44.7 L413.9 44.8 L412.5 44.8 L411.0 44.9 L409.6 45.0 L408.2 45.0 L406.7 45.0 L405.3 45.0 L403.8 45.0 L402.4 45.0 L401.0 44.9 L399.5 44.8 L398.1 44.8 L396.8 44.7 L395.4 44.6 L394.1 44.5 L392.8 44.3 L391.5 44.2 L390.3 44.0 L389.1 43.9 L387.9 43.7 L386.8 43.5 L385.8 43.3 L384.7 43.1 L383.8 42.9 L382.9 42.6 L382.0 42.4 L381.3 42.1 L380.5 41.9 L379.9 41.6 L379.3 41.3 L378.7 41.1 L378.3 40.8 L377.9 40.5 L377.6 40.2 L377.3 39.9 L377.1 39.6 L377.0 39.3 L377.0 39.0" data-name="sqlite"></path> |
| 480 | + </g> |
| 481 | + <g transform="translate(377, 12)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="sqlite"> |
| 482 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="sqlite"> |
| 483 | + <text x="21.0" y="13.5" stroke="none" text-anchor="middle" data-name="sqlite">sqlite</text> |
| 484 | + |
| 485 | + </g> |
| 486 | + </g> |
| 487 | + </g> |
| 488 | + </g> |
| 489 | + </g> |
| 490 | + </g> |
| 491 | + </g> |
| 492 | + <g data-name="ayllu-build"> |
| 493 | + <g fill="#eee8d5" stroke="#33322E" data-name="ayllu-build"> |
| 494 | + <rect x="1108.5" y="245.0" height="134.0" width="301.0" data-name="ayllu-build"></rect> |
| 495 | + <path d="M1108.5 276.0 L1409.5 276.0" fill="none" data-name="ayllu-build"></path> |
| 496 | + </g> |
| 497 | + <g transform="translate(1108.5, 245)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="ayllu-build"> |
| 498 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="ayllu-build"> |
| 499 | + <text x="142.5" y="13.5" stroke="none" text-anchor="middle" data-name="ayllu-build">ayllu-build</text> |
| 500 | + |
| 501 | + </g> |
| 502 | + </g> |
| 503 | + <g transform="translate(1108.5, 276)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="ayllu-build"> |
| 504 | + <g transform="translate(8, 8)" fill="#33322E" data-name="ayllu-build"> |
| 505 | + <g transform="translate(20, 20)" data-name="ayllu-build"> |
| 506 | + <g data-name="capnp-rpc-server"> |
| 507 | + <g fill="#fdf6e3" stroke="#33322E" data-name="capnp-rpc-server"> |
| 508 | + <rect x="0.0" y="8.0" height="31.0" width="147.0" data-name="capnp-rpc-server"></rect> |
| 509 | + </g> |
| 510 | + <g transform="translate(0, 8)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="capnp-rpc-server"> |
| 511 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="capnp-rpc-server"> |
| 512 | + <text x="65.5" y="13.5" stroke="none" text-anchor="middle" data-name="capnp-rpc-server">capnp-rpc-server</text> |
| 513 | + |
| 514 | + </g> |
| 515 | + </g> |
| 516 | + </g> |
| 517 | + <g data-name="sqlite"> |
| 518 | + <g fill="#fdf6e3" stroke="#33322E" data-name="sqlite"> |
| 519 | + <rect x="187.0" y="8.0" height="31.0" width="58.0" stroke="none" data-name="sqlite"></rect> |
| 520 | + <path d="M187.0 8.0 L187.0 39.0" fill="none" data-name="sqlite"></path> |
| 521 | + <path d="M245.0 8.0 L245.0 39.0" fill="none" data-name="sqlite"></path> |
| 522 | + <ellipse cx="216.0" cy="8.0" rx="29.0" ry="6.0" data-name="sqlite"></ellipse> |
| 523 | + <path d="M245.0 39.0 L245.0 39.3 L244.9 39.6 L244.7 39.9 L244.4 40.2 L244.1 40.5 L243.7 40.8 L243.3 41.1 L242.7 41.3 L242.1 41.6 L241.5 41.9 L240.7 42.1 L240.0 42.4 L239.1 42.6 L238.2 42.9 L237.3 43.1 L236.2 43.3 L235.2 43.5 L234.1 43.7 L232.9 43.9 L231.7 44.0 L230.5 44.2 L229.2 44.3 L227.9 44.5 L226.6 44.6 L225.2 44.7 L223.9 44.8 L222.5 44.8 L221.0 44.9 L219.6 45.0 L218.2 45.0 L216.7 45.0 L215.3 45.0 L213.8 45.0 L212.4 45.0 L211.0 44.9 L209.5 44.8 L208.1 44.8 L206.8 44.7 L205.4 44.6 L204.1 44.5 L202.8 44.3 L201.5 44.2 L200.3 44.0 L199.1 43.9 L197.9 43.7 L196.8 43.5 L195.8 43.3 L194.7 43.1 L193.8 42.9 L192.9 42.6 L192.0 42.4 L191.3 42.1 L190.5 41.9 L189.9 41.6 L189.3 41.3 L188.7 41.1 L188.3 40.8 L187.9 40.5 L187.6 40.2 L187.3 39.9 L187.1 39.6 L187.0 39.3 L187.0 39.0" data-name="sqlite"></path> |
| 524 | + </g> |
| 525 | + <g transform="translate(187, 12)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="sqlite"> |
| 526 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="sqlite"> |
| 527 | + <text x="21.0" y="13.5" stroke="none" text-anchor="middle" data-name="sqlite">sqlite</text> |
| 528 | + |
| 529 | + </g> |
| 530 | + </g> |
| 531 | + </g> |
| 532 | + </g> |
| 533 | + </g> |
| 534 | + </g> |
| 535 | + </g> |
| 536 | + <g data-name="ayllu-shell"> |
| 537 | + <g fill="#eee8d5" stroke="#33322E" data-name="ayllu-shell"> |
| 538 | + <rect x="1612.0" y="296.5" height="31.0" width="94.0" data-name="ayllu-shell"></rect> |
| 539 | + </g> |
| 540 | + <g transform="translate(1612, 296.5)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="ayllu-shell"> |
| 541 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="ayllu-shell"> |
| 542 | + <text x="39.0" y="13.5" stroke="none" text-anchor="middle" data-name="ayllu-shell">ayllu-shell</text> |
| 543 | + |
| 544 | + </g> |
| 545 | + </g> |
| 546 | + </g> |
| 547 | + <g data-name="contributor"> |
| 548 | + <g fill="#eee8d5" stroke="#33322E" data-name="contributor"> |
| 549 | + <circle r="4.0" cx="1659.0" cy="493.5" data-name="contributor"></circle> |
| 550 | + <path d="M1659.0 497.5 L1659.0 505.5" fill="none" data-name="contributor"></path> |
| 551 | + <path d="M1655.0 501.5 L1663.0 501.5" fill="none" data-name="contributor"></path> |
| 552 | + <path d="M1655.0 509.5 L1659.0 505.5 L1663.0 509.5" fill="none" data-name="contributor"></path> |
| 553 | + </g> |
| 554 | + <g transform="translate(1608.5, 505.5)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="contributor"> |
| 555 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="contributor"> |
| 556 | + <text x="42.5" y="13.5" stroke="none" text-anchor="middle" data-name="contributor">contributor</text> |
| 557 | + |
| 558 | + </g> |
| 559 | + </g> |
| 560 | + </g> |
| 561 | + <g data-name="ayllu-cli"> |
| 562 | + <g fill="#eee8d5" stroke="#33322E" data-name="ayllu-cli"> |
| 563 | + <rect x="1746.0" y="296.5" height="31.0" width="75.0" data-name="ayllu-cli"></rect> |
| 564 | + </g> |
| 565 | + <g transform="translate(1746, 296.5)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="ayllu-cli"> |
| 566 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="ayllu-cli"> |
| 567 | + <text x="29.5" y="13.5" stroke="none" text-anchor="middle" data-name="ayllu-cli">ayllu-cli</text> |
| 568 | + |
| 569 | + </g> |
| 570 | + </g> |
| 571 | + </g> |
| 572 | + <g data-name="admin"> |
| 573 | + <g fill="#eee8d5" stroke="#33322E" data-name="admin"> |
| 574 | + <circle r="4.0" cx="1783.5" cy="493.5" data-name="admin"></circle> |
| 575 | + <path d="M1783.5 497.5 L1783.5 505.5" fill="none" data-name="admin"></path> |
| 576 | + <path d="M1779.5 501.5 L1787.5 501.5" fill="none" data-name="admin"></path> |
| 577 | + <path d="M1779.5 509.5 L1783.5 505.5 L1787.5 509.5" fill="none" data-name="admin"></path> |
| 578 | + </g> |
| 579 | + <g transform="translate(1752, 505.5)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="admin"> |
| 580 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="admin"> |
| 581 | + <text x="23.5" y="13.5" stroke="none" text-anchor="middle" data-name="admin">admin</text> |
| 582 | + |
| 583 | + </g> |
| 584 | + </g> |
| 585 | + </g> |
| 586 | + <g data-name="ayllu-builder-1"> |
| 587 | + <g fill="#eee8d5" stroke="#33322E" data-name="ayllu-builder-1"> |
| 588 | + <rect x="909.5" y="419.0" height="180.0" width="193.0" data-name="ayllu-builder-1"></rect> |
| 589 | + <path d="M909.5 450.0 L1102.5 450.0" fill="none" data-name="ayllu-builder-1"></path> |
| 590 | + </g> |
| 591 | + <g transform="translate(909.5, 419)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="ayllu-builder-1"> |
| 592 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="ayllu-builder-1"> |
| 593 | + <text x="88.5" y="13.5" stroke="none" text-anchor="middle" data-name="ayllu-builder-1">ayllu-builder-1</text> |
| 594 | + |
| 595 | + </g> |
| 596 | + </g> |
| 597 | + <g transform="translate(909.5, 450)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="ayllu-builder-1"> |
| 598 | + <g transform="translate(8, 8)" fill="#33322E" data-name="ayllu-builder-1"> |
| 599 | + <g transform="translate(20, 20)" data-name="ayllu-builder-1"> |
| 600 | + <g data-name="qemu-x86_64"> |
| 601 | + <g fill="#fdf6e3" stroke="#33322E" data-name="qemu-x86_64"> |
| 602 | + <rect x="0.0" y="31.0" height="62.0" width="137.0" data-name="qemu-x86_64"></rect> |
| 603 | + <path d="M0.0 31.0 L0.0 0.0 L113.1 0.0 L113.1 31.0 Z" data-name="qemu-x86_64"></path> |
| 604 | + <path d="M0.0 31.0 L137.0 31.0" fill="none" data-name="qemu-x86_64"></path> |
| 605 | + <path d="M0.0 62.0 L137.0 62.0" fill="none" data-name="qemu-x86_64"></path> |
| 606 | + </g> |
| 607 | + <g transform="translate(0, 0)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="qemu-x86_64"> |
| 608 | + <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="qemu-x86_64"> |
| 609 | + <text x="0.0" y="13.5" stroke="none" data-name="qemu-x86_64">qemu-x86_64</text> |
| 610 | + |
| 611 | + </g> |
| 612 | + </g> |
| 613 | + <g transform="translate(0, 31)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="qemu-x86_64"> |
| 614 | + <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="qemu-x86_64"> |
| 615 | + <text x="0.0" y="13.5" stroke="none" data-name="qemu-x86_64">capnp-rpc-server</text> |
| 616 | + |
| 617 | + </g> |
| 618 | + </g> |
| 619 | + <g transform="translate(0, 62)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="qemu-x86_64"> |
| 620 | + <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="qemu-x86_64"> |
| 621 | + <text x="0.0" y="13.5" stroke="none" data-name="qemu-x86_64">executor</text> |
| 622 | + |
| 623 | + </g> |
| 624 | + </g> |
| 625 | + </g> |
| 626 | + </g> |
| 627 | + </g> |
| 628 | + </g> |
| 629 | + </g> |
| 630 | + <g data-name="ayllu-builder-2"> |
| 631 | + <g fill="#eee8d5" stroke="#33322E" data-name="ayllu-builder-2"> |
| 632 | + <rect x="1142.5" y="419.0" height="180.0" width="193.0" data-name="ayllu-builder-2"></rect> |
| 633 | + <path d="M1142.5 450.0 L1335.5 450.0" fill="none" data-name="ayllu-builder-2"></path> |
| 634 | + </g> |
| 635 | + <g transform="translate(1142.5, 419)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="ayllu-builder-2"> |
| 636 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="ayllu-builder-2"> |
| 637 | + <text x="88.5" y="13.5" stroke="none" text-anchor="middle" data-name="ayllu-builder-2">ayllu-builder-2</text> |
| 638 | + |
| 639 | + </g> |
| 640 | + </g> |
| 641 | + <g transform="translate(1142.5, 450)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="ayllu-builder-2"> |
| 642 | + <g transform="translate(8, 8)" fill="#33322E" data-name="ayllu-builder-2"> |
| 643 | + <g transform="translate(20, 20)" data-name="ayllu-builder-2"> |
| 644 | + <g data-name="qemu-aarch64"> |
| 645 | + <g fill="#fdf6e3" stroke="#33322E" data-name="qemu-aarch64"> |
| 646 | + <rect x="0.0" y="31.0" height="62.0" width="137.0" data-name="qemu-aarch64"></rect> |
| 647 | + <path d="M0.0 31.0 L0.0 0.0 L118.9 0.0 L118.9 31.0 Z" data-name="qemu-aarch64"></path> |
| 648 | + <path d="M0.0 31.0 L137.0 31.0" fill="none" data-name="qemu-aarch64"></path> |
| 649 | + <path d="M0.0 62.0 L137.0 62.0" fill="none" data-name="qemu-aarch64"></path> |
| 650 | + </g> |
| 651 | + <g transform="translate(0, 0)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="qemu-aarch64"> |
| 652 | + <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="qemu-aarch64"> |
| 653 | + <text x="0.0" y="13.5" stroke="none" data-name="qemu-aarch64">qemu-aarch64</text> |
| 654 | + |
| 655 | + </g> |
| 656 | + </g> |
| 657 | + <g transform="translate(0, 31)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="qemu-aarch64"> |
| 658 | + <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="qemu-aarch64"> |
| 659 | + <text x="0.0" y="13.5" stroke="none" data-name="qemu-aarch64">capnp-rpc-server</text> |
| 660 | + |
| 661 | + </g> |
| 662 | + </g> |
| 663 | + <g transform="translate(0, 62)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="qemu-aarch64"> |
| 664 | + <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="qemu-aarch64"> |
| 665 | + <text x="0.0" y="13.5" stroke="none" data-name="qemu-aarch64">exectuor</text> |
| 666 | + |
| 667 | + </g> |
| 668 | + </g> |
| 669 | + </g> |
| 670 | + </g> |
| 671 | + </g> |
| 672 | + </g> |
| 673 | + </g> |
| 674 | + <g data-name="ayllu-builder-n"> |
| 675 | + <g fill="#eee8d5" stroke="#33322E" data-name="ayllu-builder-n"> |
| 676 | + <rect x="1375.5" y="419.0" height="180.0" width="193.0" data-name="ayllu-builder-n"></rect> |
| 677 | + <path d="M1375.5 450.0 L1568.5 450.0" fill="none" data-name="ayllu-builder-n"></path> |
| 678 | + </g> |
| 679 | + <g transform="translate(1375.5, 419)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="ayllu-builder-n"> |
| 680 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="ayllu-builder-n"> |
| 681 | + <text x="88.5" y="13.5" stroke="none" text-anchor="middle" data-name="ayllu-builder-n">ayllu-builder-n</text> |
| 682 | + |
| 683 | + </g> |
| 684 | + </g> |
| 685 | + <g transform="translate(1375.5, 450)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="ayllu-builder-n"> |
| 686 | + <g transform="translate(8, 8)" fill="#33322E" data-name="ayllu-builder-n"> |
| 687 | + <g transform="translate(20, 20)" data-name="ayllu-builder-n"> |
| 688 | + <g data-name="lxc"> |
| 689 | + <g fill="#fdf6e3" stroke="#33322E" data-name="lxc"> |
| 690 | + <rect x="0.0" y="31.0" height="62.0" width="137.0" data-name="lxc"></rect> |
| 691 | + <path d="M0.0 31.0 L0.0 0.0 L35.2 0.0 L35.2 31.0 Z" data-name="lxc"></path> |
| 692 | + <path d="M0.0 31.0 L137.0 31.0" fill="none" data-name="lxc"></path> |
| 693 | + <path d="M0.0 62.0 L137.0 62.0" fill="none" data-name="lxc"></path> |
| 694 | + </g> |
| 695 | + <g transform="translate(0, 0)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="lxc"> |
| 696 | + <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="lxc"> |
| 697 | + <text x="0.0" y="13.5" stroke="none" data-name="lxc">lxc</text> |
| 698 | + |
| 699 | + </g> |
| 700 | + </g> |
| 701 | + <g transform="translate(0, 31)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="lxc"> |
| 702 | + <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="lxc"> |
| 703 | + <text x="0.0" y="13.5" stroke="none" data-name="lxc">capnp-rpc-server</text> |
| 704 | + |
| 705 | + </g> |
| 706 | + </g> |
| 707 | + <g transform="translate(0, 62)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="lxc"> |
| 708 | + <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="lxc"> |
| 709 | + <text x="0.0" y="13.5" stroke="none" data-name="lxc">executor</text> |
| 710 | + |
| 711 | + </g> |
| 712 | + </g> |
| 713 | + </g> |
| 714 | + </g> |
| 715 | + </g> |
| 716 | + </g> |
| 717 | + </g> |
| 718 | + </g> |
| 719 | + </g> |
| 720 | + </g> |
| 721 | + </g> |
| 722 | + </svg> |
| 723 | \ No newline at end of file |
| 724 | diff --git a/www/public/assets/computer.png b/www/public/assets/computer.png |
| 725 | deleted file mode 100644 |
| 726 | index dbe2651..0000000 |
| 727 | Binary files a/www/public/assets/computer.png and /dev/null differ |
| 728 | diff --git a/www/public/assets/crescent.png b/www/public/assets/crescent.png |
| 729 | deleted file mode 100644 |
| 730 | index c46dc91..0000000 |
| 731 | Binary files a/www/public/assets/crescent.png and /dev/null differ |
| 732 | diff --git a/www/public/assets/crescent.svg b/www/public/assets/crescent.svg |
| 733 | deleted file mode 100644 |
| 734 | index 51596eb..0000000 |
| 735 | --- a/www/public/assets/crescent.svg |
| 736 | +++ /dev/null |
| 737 | @@ -1,12 +0,0 @@ |
| 738 | - <svg id="emoji" viewBox="0 0 72 72" xmlns="http://www.w3.org/2000/svg"> |
| 739 | - <g id="color"> |
| 740 | - <path fill="#FCEA2B" stroke="none" d="M7.3634,42.4095c4.5525,6.1703,11.874,10.1726,20.1303,10.1726c13.8071,0,25-11.1929,25-25 c0-8.5226-4.2646-16.0492-10.7763-20.5621c13.0383,2.8385,22.7812,14.4426,22.7812,28.3317c0,16.0163-12.9837,29-29,29 C21.9109,64.3517,10.5097,55.0229,7.3634,42.4095z"/> |
| 741 | - <path fill="#F1B31C" stroke="none" d="M45.8373,9.2108c8.25,4.25,16.1946,11.8724,16.1946,24.6742c0,15.4494-12.5242,27.9735-27.9735,27.9735 c-9.2431,0-19.7524-4.8353-24.294-15.5436c0,0,4.3805,18.6568,25.7189,18.665c19.327,0.0074,28.0419-20.6218,28.0419-20.6218 C70.033,12.3815,45.8373,9.2108,45.8373,9.2108z"/> |
| 742 | - </g> |
| 743 | - <g id="hair"/> |
| 744 | - <g id="skin"/> |
| 745 | - <g id="skin-shadow"/> |
| 746 | - <g id="line"> |
| 747 | - <path fill="none" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2" d="M7.3634,42.4095c4.5525,6.1703,11.874,10.1726,20.1303,10.1726c13.8071,0,25-11.1929,25-25 c0-8.5226-4.2646-16.0492-10.7763-20.5621c13.0383,2.8385,22.7812,14.4426,22.7812,28.3317c0,16.0163-12.9837,29-29,29 C21.9109,64.3517,10.5097,55.0229,7.3634,42.4095z"/> |
| 748 | - </g> |
| 749 | - </svg> |
| 750 | diff --git a/www/public/assets/crescent_logo.png b/www/public/assets/crescent_logo.png |
| 751 | deleted file mode 100644 |
| 752 | index c3aef0d..0000000 |
| 753 | Binary files a/www/public/assets/crescent_logo.png and /dev/null differ |
| 754 | diff --git a/www/public/assets/crescent_logo.svg b/www/public/assets/crescent_logo.svg |
| 755 | deleted file mode 100644 |
| 756 | index b766584..0000000 |
| 757 | --- a/www/public/assets/crescent_logo.svg |
| 758 | +++ /dev/null |
| 759 | @@ -1,192 +0,0 @@ |
| 760 | - <?xml version="1.0" encoding="UTF-8" standalone="no"?> |
| 761 | - <svg |
| 762 | - id="emoji" |
| 763 | - viewBox="0 0 75 80" |
| 764 | - version="1.1" |
| 765 | - sodipodi:docname="ayllu_logo.svg" |
| 766 | - width="75" |
| 767 | - height="80" |
| 768 | - inkscape:version="1.3 (0e150ed6c4, 2023-07-21)" |
| 769 | - inkscape:export-filename="ayllu_logo.png" |
| 770 | - inkscape:export-xdpi="92.290512" |
| 771 | - inkscape:export-ydpi="92.290512" |
| 772 | - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
| 773 | - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" |
| 774 | - xmlns="http://www.w3.org/2000/svg" |
| 775 | - xmlns:svg="http://www.w3.org/2000/svg" |
| 776 | - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
| 777 | - xmlns:cc="http://creativecommons.org/ns#" |
| 778 | - xmlns:dc="http://purl.org/dc/elements/1.1/"> |
| 779 | - <title |
| 780 | - id="title8">Ayllu Logo</title> |
| 781 | - <defs |
| 782 | - id="defs3"> |
| 783 | - <pattern |
| 784 | - patternUnits="userSpaceOnUse" |
| 785 | - width="100" |
| 786 | - height="100" |
| 787 | - id="Gingham" |
| 788 | - preserveAspectRatio="xMidYMid" |
| 789 | - patternTransform="scale(0.5,0.5)" |
| 790 | - style="fill:#0000ff"> |
| 791 | - <rect |
| 792 | - style="fill-opacity:0.5;stroke:none" |
| 793 | - id="rect3" |
| 794 | - width="50" |
| 795 | - height="50" |
| 796 | - x="50" |
| 797 | - y="0" /> |
| 798 | - <rect |
| 799 | - style="stroke:none" |
| 800 | - id="rect4" |
| 801 | - width="50" |
| 802 | - height="50" |
| 803 | - x="50" |
| 804 | - y="50" /> |
| 805 | - <rect |
| 806 | - style="fill-opacity:0.5;stroke:none" |
| 807 | - id="rect5" |
| 808 | - width="50" |
| 809 | - height="50" |
| 810 | - x="0" |
| 811 | - y="50" /> |
| 812 | - </pattern> |
| 813 | - </defs> |
| 814 | - <sodipodi:namedview |
| 815 | - id="namedview3" |
| 816 | - pagecolor="#ffffff" |
| 817 | - bordercolor="#999999" |
| 818 | - borderopacity="1" |
| 819 | - inkscape:showpageshadow="0" |
| 820 | - inkscape:pageopacity="0" |
| 821 | - inkscape:pagecheckerboard="0" |
| 822 | - inkscape:deskcolor="#d1d1d1" |
| 823 | - inkscape:zoom="8.25" |
| 824 | - inkscape:cx="5.1515152" |
| 825 | - inkscape:cy="36.424242" |
| 826 | - inkscape:window-width="3826" |
| 827 | - inkscape:window-height="1029" |
| 828 | - inkscape:window-x="0" |
| 829 | - inkscape:window-y="0" |
| 830 | - inkscape:window-maximized="1" |
| 831 | - inkscape:current-layer="emoji" |
| 832 | - showgrid="true"> |
| 833 | - <inkscape:grid |
| 834 | - id="grid8" |
| 835 | - units="px" |
| 836 | - originx="0" |
| 837 | - originy="0" |
| 838 | - spacingx="1" |
| 839 | - spacingy="1" |
| 840 | - empcolor="#0099e5" |
| 841 | - empopacity="0.30196078" |
| 842 | - color="#0099e5" |
| 843 | - opacity="0.14901961" |
| 844 | - empspacing="5" |
| 845 | - dotted="false" |
| 846 | - gridanglex="30" |
| 847 | - gridanglez="30" |
| 848 | - visible="true" /> |
| 849 | - </sodipodi:namedview> |
| 850 | - <g |
| 851 | - inkscape:groupmode="layer" |
| 852 | - id="layer7" |
| 853 | - inkscape:label="bg"> |
| 854 | - <rect |
| 855 | - style="fill:#000000;fill-opacity:1;stroke-width:3.26929" |
| 856 | - id="rect14" |
| 857 | - width="74.891571" |
| 858 | - height="79.840912" |
| 859 | - x="0.029829545" |
| 860 | - y="0.18181819" |
| 861 | - rx="4.2495718" |
| 862 | - ry="4.1789107" /> |
| 863 | - </g> |
| 864 | - <g |
| 865 | - inkscape:groupmode="layer" |
| 866 | - id="layer1" |
| 867 | - inkscape:label="bg 1"> |
| 868 | - <g |
| 869 | - inkscape:groupmode="layer" |
| 870 | - id="layer7-3" |
| 871 | - inkscape:label="bg" |
| 872 | - transform="translate(0.10227227,0.03882594)"> |
| 873 | - <rect |
| 874 | - style="fill:#fcea2b;fill-opacity:1;stroke-width:3.10583" |
| 875 | - id="rect14-6" |
| 876 | - width="71.146996" |
| 877 | - height="75.848869" |
| 878 | - x="1.9021188" |
| 879 | - y="2.1778409" |
| 880 | - rx="4.0370932" |
| 881 | - ry="3.9699652" /> |
| 882 | - </g> |
| 883 | - </g> |
| 884 | - <g |
| 885 | - inkscape:groupmode="layer" |
| 886 | - id="layer4" |
| 887 | - inkscape:label="text" |
| 888 | - transform="translate(-1.2556819,-2.7045453)" |
| 889 | - style="display:inline" /> |
| 890 | - <g |
| 891 | - id="g8" |
| 892 | - transform="matrix(1.0086293,0,0,0.99990106,-0.07783972,3.322434)"> |
| 893 | - <g |
| 894 | - id="color" |
| 895 | - transform="translate(1.3252841,0.98390174)" |
| 896 | - style="display:inline" |
| 897 | - inkscape:label="moon-shade"> |
| 898 | - <path |
| 899 | - fill="#fcea2b" |
| 900 | - stroke="none" |
| 901 | - d="m 7.3634,42.4095 c 4.5525,6.1703 11.874,10.1726 20.1303,10.1726 13.8071,0 25,-11.1929 25,-25 0,-8.5226 -4.2646,-16.0492 -10.7763,-20.5621 13.0383,2.8385 22.7812,14.4426 22.7812,28.3317 0,16.0163 -12.9837,29 -29,29 -13.5877,0 -24.9889,-9.3288 -28.1352,-21.9422 z" |
| 902 | - id="path1" /> |
| 903 | - <path |
| 904 | - fill="#f1b31c" |
| 905 | - stroke="none" |
| 906 | - d="m 45.8373,9.2108 c 8.25,4.25 16.1946,11.8724 16.1946,24.6742 0,15.4494 -12.5242,27.9735 -27.9735,27.9735 -9.2431,0 -19.7524,-4.8353 -24.294,-15.5436 0,0 4.3805,18.6568 25.7189,18.665 C 54.8103,64.9873 63.5252,44.3581 63.5252,44.3581 70.033,12.3815 45.8373,9.2108 45.8373,9.2108 Z" |
| 907 | - id="path2" /> |
| 908 | - </g> |
| 909 | - <g |
| 910 | - id="line" |
| 911 | - transform="translate(1.3252841,0.98390174)" |
| 912 | - inkscape:label="moon-line"> |
| 913 | - <path |
| 914 | - fill="none" |
| 915 | - stroke="#000000" |
| 916 | - stroke-linecap="round" |
| 917 | - stroke-linejoin="round" |
| 918 | - stroke-miterlimit="10" |
| 919 | - stroke-width="2" |
| 920 | - d="m 7.3634,42.4095 c 4.5525,6.1703 11.874,10.1726 20.1303,10.1726 13.8071,0 25,-11.1929 25,-25 0,-8.5226 -4.2646,-16.0492 -10.7763,-20.5621 13.0383,2.8385 22.7812,14.4426 22.7812,28.3317 0,16.0163 -12.9837,29 -29,29 -13.5877,0 -24.9889,-9.3288 -28.1352,-21.9422 z" |
| 921 | - id="path3" /> |
| 922 | - </g> |
| 923 | - </g> |
| 924 | - <metadata |
| 925 | - id="metadata8"> |
| 926 | - <rdf:RDF> |
| 927 | - <cc:Work |
| 928 | - rdf:about=""> |
| 929 | - <dc:title>Ayllu Logo</dc:title> |
| 930 | - <cc:license |
| 931 | - rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" /> |
| 932 | - <dc:description>Originally created by Vanessa Boutzikoudi @ https://openmoji.org/library/emoji-1F319/</dc:description> |
| 933 | - </cc:Work> |
| 934 | - <cc:License |
| 935 | - rdf:about="http://creativecommons.org/licenses/by-sa/4.0/"> |
| 936 | - <cc:permits |
| 937 | - rdf:resource="http://creativecommons.org/ns#Reproduction" /> |
| 938 | - <cc:permits |
| 939 | - rdf:resource="http://creativecommons.org/ns#Distribution" /> |
| 940 | - <cc:requires |
| 941 | - rdf:resource="http://creativecommons.org/ns#Notice" /> |
| 942 | - <cc:requires |
| 943 | - rdf:resource="http://creativecommons.org/ns#Attribution" /> |
| 944 | - <cc:permits |
| 945 | - rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /> |
| 946 | - <cc:requires |
| 947 | - rdf:resource="http://creativecommons.org/ns#ShareAlike" /> |
| 948 | - </cc:License> |
| 949 | - </rdf:RDF> |
| 950 | - </metadata> |
| 951 | - </svg> |
| 952 | diff --git a/www/public/docs/architecture/index.html b/www/public/docs/architecture/index.html |
| 953 | new file mode 100644 |
| 954 | index 0000000..0e4ba41 |
| 955 | --- /dev/null |
| 956 | +++ b/www/public/docs/architecture/index.html |
| 957 | @@ -0,0 +1,76 @@ |
| 958 | + <!doctype html> |
| 959 | + <html lang="en"> |
| 960 | + <head> |
| 961 | + <meta charset="utf-8" /> |
| 962 | + <link rel="stylesheet" href="/main.css" /> |
| 963 | + <link href="/assets/ayllu_logo.svg" rel="icon" type="image/svg+xml" /> |
| 964 | + <link |
| 965 | + href="/assets/ayllu_logo.png" |
| 966 | + rel="icon" |
| 967 | + sizes="any" |
| 968 | + type="image/png" |
| 969 | + /> |
| 970 | + <title>Ayllu</title> |
| 971 | + </head> |
| 972 | + <nav> |
| 973 | + <ul> |
| 974 | + <li> |
| 975 | + <a href="/"> |
| 976 | + <img class="logo" src="/assets/ayllu_logo.png" /> |
| 977 | + </a> |
| 978 | + </li> |
| 979 | + </ul> |
| 980 | + <ul> |
| 981 | + <li><a href="https://ayllu-forge.org/browse">browse</a></li> |
| 982 | + <li><a href="/docs">docs</a></li> |
| 983 | + </ul> |
| 984 | + </nav> |
| 985 | + <body class="container"> |
| 986 | + <div class="wrapper"> |
| 987 | + <main class="page-body"> |
| 988 | + |
| 989 | + |
| 990 | + <div class="documentation"> |
| 991 | + <div class="side-panel"> |
| 992 | + |
| 993 | + <ul> |
| 994 | + |
| 995 | + <li class="active"> |
| 996 | + <a href="https://ayllu-forge.org/docs/architecture/">Architecture</a> |
| 997 | + </li> |
| 998 | + |
| 999 | + <li class=""> |
| 1000 | + <a href="https://ayllu-forge.org/docs/developers/">Developers</a> |
| 1001 | + </li> |
| 1002 | + |
| 1003 | + <li class=""> |
| 1004 | + <a href="https://ayllu-forge.org/docs/installation/">Installation</a> |
| 1005 | + </li> |
| 1006 | + |
| 1007 | + <li class=""> |
| 1008 | + <a href="https://ayllu-forge.org/docs/faq/">FAQ</a> |
| 1009 | + </li> |
| 1010 | + |
| 1011 | + </ul> |
| 1012 | + </div> |
| 1013 | + <div class="doc-content"> |
| 1014 | + <h1>Architecture</h1> |
| 1015 | + <p><strong>Ayllu is a new software project and it's design is evolving.</strong> </p> |
| 1016 | + <p>It's basic architecture is that of a single binary providing a web interface to |
| 1017 | + browse and interact with Git repositories as well as an RPC server based on |
| 1018 | + <a href="https://capnproto.org/">Cap'n Proto</a> with an embedded client. The RPC server |
| 1019 | + running in the core Ayllu binary is called the <code>job_server</code> and it provides an |
| 1020 | + interface to interact with Ayllu for administrators. Much of the functionality |
| 1021 | + of Ayllu is implemented via <code>RPC extensions</code> which are minimal binaries that |
| 1022 | + are used to extend the core functionality of Ayllu.</p> |
| 1023 | + <p>The current architecture of Ayllu is depicted below:</p> |
| 1024 | + <img class="diagram" src="/assets/architecture.svg" /> |
| 1025 | + |
| 1026 | + </div> |
| 1027 | + </div> |
| 1028 | + |
| 1029 | + </main> |
| 1030 | + <footer class="page-footer"> 2023, <a href="/projects/ayllu/blob/main/ATTRIBUTIONS.md">attributions</a> </footer> |
| 1031 | + </div> |
| 1032 | + </body> |
| 1033 | + </html> |
| 1034 | diff --git a/www/public/docs/developers/index.html b/www/public/docs/developers/index.html |
| 1035 | new file mode 100644 |
| 1036 | index 0000000..413d217 |
| 1037 | --- /dev/null |
| 1038 | +++ b/www/public/docs/developers/index.html |
| 1039 | @@ -0,0 +1,80 @@ |
| 1040 | + <!doctype html> |
| 1041 | + <html lang="en"> |
| 1042 | + <head> |
| 1043 | + <meta charset="utf-8" /> |
| 1044 | + <link rel="stylesheet" href="/main.css" /> |
| 1045 | + <link href="/assets/ayllu_logo.svg" rel="icon" type="image/svg+xml" /> |
| 1046 | + <link |
| 1047 | + href="/assets/ayllu_logo.png" |
| 1048 | + rel="icon" |
| 1049 | + sizes="any" |
| 1050 | + type="image/png" |
| 1051 | + /> |
| 1052 | + <title>Ayllu</title> |
| 1053 | + </head> |
| 1054 | + <nav> |
| 1055 | + <ul> |
| 1056 | + <li> |
| 1057 | + <a href="/"> |
| 1058 | + <img class="logo" src="/assets/ayllu_logo.png" /> |
| 1059 | + </a> |
| 1060 | + </li> |
| 1061 | + </ul> |
| 1062 | + <ul> |
| 1063 | + <li><a href="https://ayllu-forge.org/browse">browse</a></li> |
| 1064 | + <li><a href="/docs">docs</a></li> |
| 1065 | + </ul> |
| 1066 | + </nav> |
| 1067 | + <body class="container"> |
| 1068 | + <div class="wrapper"> |
| 1069 | + <main class="page-body"> |
| 1070 | + |
| 1071 | + |
| 1072 | + <div class="documentation"> |
| 1073 | + <div class="side-panel"> |
| 1074 | + |
| 1075 | + <ul> |
| 1076 | + |
| 1077 | + <li class=""> |
| 1078 | + <a href="https://ayllu-forge.org/docs/architecture/">Architecture</a> |
| 1079 | + </li> |
| 1080 | + |
| 1081 | + <li class="active"> |
| 1082 | + <a href="https://ayllu-forge.org/docs/developers/">Developers</a> |
| 1083 | + </li> |
| 1084 | + |
| 1085 | + <li class=""> |
| 1086 | + <a href="https://ayllu-forge.org/docs/installation/">Installation</a> |
| 1087 | + </li> |
| 1088 | + |
| 1089 | + <li class=""> |
| 1090 | + <a href="https://ayllu-forge.org/docs/faq/">FAQ</a> |
| 1091 | + </li> |
| 1092 | + |
| 1093 | + </ul> |
| 1094 | + </div> |
| 1095 | + <div class="doc-content"> |
| 1096 | + <h1>Developers</h1> |
| 1097 | + <h1 id="ayllu-forge-org">ayllu-forge.org</h1> |
| 1098 | + <p>The <a href="https://ayllu-forge.org">Ayllu website</a> and project documentation are built |
| 1099 | + together with <a href="https://www.getzola.org/">Zola</a> which you must install. After |
| 1100 | + which you can startup a local preview of the site with the following commands:</p> |
| 1101 | + <pre data-lang="sh" class="language-sh "><code class="language-sh" data-lang="sh">cd www && zola serve |
| 1102 | + </code></pre> |
| 1103 | + <p>The generated content are hosted directly from Ayllu and you simply need to |
| 1104 | + build and commit the generated code directly into the repository.</p> |
| 1105 | + <pre data-lang="sh" class="language-sh "><code class="language-sh" data-lang="sh">cd www && zola build |
| 1106 | + </code></pre> |
| 1107 | + <h2 id="diagrams">Diagrams</h2> |
| 1108 | + <p>Diagrams are built with <a href="https://www.nomnoml.com/">nomnoml</a> and their SVG |
| 1109 | + content contain the source for generating the diagrams. Simply open one of the |
| 1110 | + source SVGs up and copy-paste it to the editor of the nomnoml website.</p> |
| 1111 | + |
| 1112 | + </div> |
| 1113 | + </div> |
| 1114 | + |
| 1115 | + </main> |
| 1116 | + <footer class="page-footer"> 2023, <a href="/projects/ayllu/blob/main/ATTRIBUTIONS.md">attributions</a> </footer> |
| 1117 | + </div> |
| 1118 | + </body> |
| 1119 | + </html> |
| 1120 | diff --git a/www/public/docs/faq/index.html b/www/public/docs/faq/index.html |
| 1121 | index a97f054..cc95153 100644 |
| 1122 | --- a/www/public/docs/faq/index.html |
| 1123 | +++ b/www/public/docs/faq/index.html |
| 1124 | @@ -22,7 +22,7 @@ |
| 1125 | </ul> |
| 1126 | <ul> |
| 1127 | <li><a href="https://ayllu-forge.org/browse">browse</a></li> |
| 1128 | - <!--<li><a href="/docs">docs</a></li> --> |
| 1129 | + <li><a href="/docs">docs</a></li> |
| 1130 | </ul> |
| 1131 | </nav> |
| 1132 | <body class="container"> |
| 1133 | @@ -36,6 +36,14 @@ |
| 1134 | <ul> |
| 1135 | |
| 1136 | <li class=""> |
| 1137 | + <a href="https://ayllu-forge.org/docs/architecture/">Architecture</a> |
| 1138 | + </li> |
| 1139 | + |
| 1140 | + <li class=""> |
| 1141 | + <a href="https://ayllu-forge.org/docs/developers/">Developers</a> |
| 1142 | + </li> |
| 1143 | + |
| 1144 | + <li class=""> |
| 1145 | <a href="https://ayllu-forge.org/docs/installation/">Installation</a> |
| 1146 | </li> |
| 1147 | |
| 1148 | @@ -48,7 +56,9 @@ |
| 1149 | <div class="doc-content"> |
| 1150 | <h1>FAQ</h1> |
| 1151 | <h5 id="what-does-ayllu-mean">What Does "Ayllu" Mean?</h5> |
| 1152 | - <p>The name <a href="https://en.wikipedia.org/wiki/Ayllu">Ayllu</a> [IPA] <em>/ˈajʎu/</em>, or <em>eye-joo</em> is the Quechua word for the traditional form of community in the Andes particularly around in Bolivia and Peru.</p> |
| 1153 | + <p>The name <a href="https://en.wikipedia.org/wiki/Ayllu">Ayllu</a> <em>/ˈajʎu/</em>, <em>eye-joo</em> is |
| 1154 | + the Quechua word for the traditional form of a community in the Andes region |
| 1155 | + of South America, particularly in Bolivia and Peru.</p> |
| 1156 | <h5 id="do-you-provide-hosting">Do You Provide Hosting?</h5> |
| 1157 | <p>Not currently. If there was enough interest the project might offer hosted |
| 1158 | environments as a way to sustain it's development.</p> |
| 1159 | diff --git a/www/public/docs/index.html b/www/public/docs/index.html |
| 1160 | index fa44605..6566d04 100644 |
| 1161 | --- a/www/public/docs/index.html |
| 1162 | +++ b/www/public/docs/index.html |
| 1163 | @@ -22,7 +22,7 @@ |
| 1164 | </ul> |
| 1165 | <ul> |
| 1166 | <li><a href="https://ayllu-forge.org/browse">browse</a></li> |
| 1167 | - <!--<li><a href="/docs">docs</a></li> --> |
| 1168 | + <li><a href="/docs">docs</a></li> |
| 1169 | </ul> |
| 1170 | </nav> |
| 1171 | <body class="container"> |
| 1172 | @@ -35,6 +35,14 @@ |
| 1173 | <ul> |
| 1174 | |
| 1175 | <li class=""> |
| 1176 | + <a href="https://ayllu-forge.org/docs/architecture/">Architecture</a> |
| 1177 | + </li> |
| 1178 | + |
| 1179 | + <li class=""> |
| 1180 | + <a href="https://ayllu-forge.org/docs/developers/">Developers</a> |
| 1181 | + </li> |
| 1182 | + |
| 1183 | + <li class=""> |
| 1184 | <a href="https://ayllu-forge.org/docs/installation/">Installation</a> |
| 1185 | </li> |
| 1186 | |
| 1187 | @@ -46,6 +54,8 @@ |
| 1188 | </div> |
| 1189 | <div class="doc-content"> |
| 1190 | <h1 id="documentation">Documentation</h1> |
| 1191 | + <p>Welcome to the Ayllu documentation 📖, this is section serves as an |
| 1192 | + authoritative reference on all things related to the Ayllu code forge!</p> |
| 1193 | |
| 1194 | </div> |
| 1195 | </div> |
| 1196 | diff --git a/www/public/docs/installation/index.html b/www/public/docs/installation/index.html |
| 1197 | index 78a9587..b563e6b 100644 |
| 1198 | --- a/www/public/docs/installation/index.html |
| 1199 | +++ b/www/public/docs/installation/index.html |
| 1200 | @@ -22,7 +22,7 @@ |
| 1201 | </ul> |
| 1202 | <ul> |
| 1203 | <li><a href="https://ayllu-forge.org/browse">browse</a></li> |
| 1204 | - <!--<li><a href="/docs">docs</a></li> --> |
| 1205 | + <li><a href="/docs">docs</a></li> |
| 1206 | </ul> |
| 1207 | </nav> |
| 1208 | <body class="container"> |
| 1209 | @@ -35,6 +35,14 @@ |
| 1210 | |
| 1211 | <ul> |
| 1212 | |
| 1213 | + <li class=""> |
| 1214 | + <a href="https://ayllu-forge.org/docs/architecture/">Architecture</a> |
| 1215 | + </li> |
| 1216 | + |
| 1217 | + <li class=""> |
| 1218 | + <a href="https://ayllu-forge.org/docs/developers/">Developers</a> |
| 1219 | + </li> |
| 1220 | + |
| 1221 | <li class="active"> |
| 1222 | <a href="https://ayllu-forge.org/docs/installation/">Installation</a> |
| 1223 | </li> |
| 1224 | @@ -47,8 +55,7 @@ |
| 1225 | </div> |
| 1226 | <div class="doc-content"> |
| 1227 | <h1>Installation</h1> |
| 1228 | - <h3 id="installation">Installation</h3> |
| 1229 | - <h4 id="from-source">From Source</h4> |
| 1230 | + <p>TODO</p> |
| 1231 | |
| 1232 | </div> |
| 1233 | </div> |
| 1234 | diff --git a/www/public/index.html b/www/public/index.html |
| 1235 | index 696b663..70e52f1 100644 |
| 1236 | --- a/www/public/index.html |
| 1237 | +++ b/www/public/index.html |
| 1238 | @@ -22,7 +22,7 @@ |
| 1239 | </ul> |
| 1240 | <ul> |
| 1241 | <li><a href="https://ayllu-forge.org/browse">browse</a></li> |
| 1242 | - <!--<li><a href="/docs">docs</a></li> --> |
| 1243 | + <li><a href="/docs">docs</a></li> |
| 1244 | </ul> |
| 1245 | </nav> |
| 1246 | <body class="container"> |
| 1247 | @@ -35,8 +35,8 @@ |
| 1248 | <p>Ayllu is a lightweight code forge designed to enable individuals and |
| 1249 | community projects to develop software in collaboration across open internet |
| 1250 | standards.</p> |
| 1251 | - <a href="https://ayllu-forge.org/projects/ayllu/refs"> |
| 1252 | - <button> Latest Release: 0.2.1 </button> |
| 1253 | + <a href="https://ayllu-forge.org/projects/ayllu"> |
| 1254 | + <button> Source </button> |
| 1255 | </a> |
| 1256 | </div> |
| 1257 | <figure> |
| 1258 | diff --git a/www/public/main.css b/www/public/main.css |
| 1259 | index bc04568..e6248c3 100644 |
| 1260 | --- a/www/public/main.css |
| 1261 | +++ b/www/public/main.css |
| 1262 | @@ -4,4 +4,4 @@ |
| 1263 | * |
| 1264 | * Slim version example |
| 1265 | * You can export only the modules you need |
| 1266 | - */:root{--font-family: system-ui, -apple-system, "Segoe UI", "Roboto", "Ubuntu", "Cantarell", "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--line-height: 1.5;--font-weight: 400;--font-size: 16px;--border-radius: 0.25rem;--border-width: 1px;--outline-width: 3px;--spacing: 1rem;--typography-spacing-vertical: 1.5rem;--block-spacing-vertical: calc(var(--spacing) * 2);--block-spacing-horizontal: var(--spacing);--grid-spacing-vertical: 0;--grid-spacing-horizontal: var(--spacing);--form-element-spacing-vertical: 0.75rem;--form-element-spacing-horizontal: 1rem;--nav-element-spacing-vertical: 1rem;--nav-element-spacing-horizontal: 0.5rem;--nav-link-spacing-vertical: 0.5rem;--nav-link-spacing-horizontal: 0.5rem;--form-label-font-weight: var(--font-weight);--transition: 0.2s ease-in-out;--modal-overlay-backdrop-filter: blur(0.25rem)}@media (min-width: 576px){:root{--font-size: 17px}}@media (min-width: 768px){:root{--font-size: 18px}}@media (min-width: 1220px){:root{--font-size: 19px}}@media (min-width: 1700px){:root{--font-size: 20px}}a{--text-decoration: none}a.secondary,a.contrast{--text-decoration: underline}small{--font-size: 0.875em}h1,h2,h3,h4,h5,h6{--font-weight: 700}h1{--font-size: 2rem;--typography-spacing-vertical: 3rem}h2{--font-size: 1.75rem;--typography-spacing-vertical: 2.625rem}h3{--font-size: 1.5rem;--typography-spacing-vertical: 2.25rem}h4{--font-size: 1.25rem;--typography-spacing-vertical: 1.874rem}h5{--font-size: 1.125rem;--typography-spacing-vertical: 1.6875rem}[type=checkbox],[type=radio]{--border-width: 2px}[type=checkbox][role=switch]{--border-width: 3px}thead th,thead td,tfoot th,tfoot td{--border-width: 3px}:not(thead,tfoot)>*>td{--font-size: 0.875em}pre,code,kbd,samp{--font-family: "Menlo", "Consolas", "Roboto Mono", "Ubuntu Monospace", "Noto Mono", "Oxygen Mono", "Liberation Mono", monospace, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"}kbd{--font-weight: bolder}[data-theme=light],:root:not([data-theme=dark]){--background-color: #fff;--color: #415462;--h1-color: #1b2832;--h2-color: #24333e;--h3-color: #2c3d49;--h4-color: #374956;--h5-color: #415462;--h6-color: #4d606d;--muted-color: #73828c;--muted-border-color: #edf0f3;--primary: #1095c1;--primary-hover: #08769b;--primary-focus: rgba(16,149,193,.125);--primary-inverse: #fff;--secondary: #596b78;--secondary-hover: #415462;--secondary-focus: rgba(89,107,120,.125);--secondary-inverse: #fff;--contrast: #1b2832;--contrast-hover: #000;--contrast-focus: rgba(89,107,120,.125);--contrast-inverse: #fff;--mark-background-color: #fff2ca;--mark-color: #543a26;--ins-color: #388e3c;--del-color: #c62828;--blockquote-border-color: var(--muted-border-color);--blockquote-footer-color: var(--muted-color);--button-box-shadow: 0 0 0 rgba(0, 0, 0, 0);--button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0);--form-element-background-color: transparent;--form-element-border-color: #a2afb9;--form-element-color: var(--color);--form-element-placeholder-color: var(--muted-color);--form-element-active-background-color: transparent;--form-element-active-border-color: var(--primary);--form-element-focus-color: var(--primary-focus);--form-element-disabled-background-color: #d5dce2;--form-element-disabled-border-color: #a2afb9;--form-element-disabled-opacity: 0.5;--form-element-invalid-border-color: #c62828;--form-element-invalid-active-border-color: #d32f2f;--form-element-invalid-focus-color: rgba(211,47,47,.125);--form-element-valid-border-color: #388e3c;--form-element-valid-active-border-color: #43a047;--form-element-valid-focus-color: rgba(67,160,71,.125);--switch-background-color: #bbc6ce;--switch-color: var(--primary-inverse);--switch-checked-background-color: var(--primary);--range-border-color: #d5dce2;--range-active-border-color: #bbc6ce;--range-thumb-border-color: var(--background-color);--range-thumb-color: var(--secondary);--range-thumb-hover-color: var(--secondary-hover);--range-thumb-active-color: var(--primary);--table-border-color: var(--muted-border-color);--table-row-stripped-background-color: #f6f8f9;--code-background-color: #edf0f3;--code-color: var(--muted-color);--code-kbd-background-color: var(--contrast);--code-kbd-color: var(--contrast-inverse);--code-tag-color: #b34d80;--code-property-color: #3d888f;--code-value-color: #986;--code-comment-color: #a2afb9;--accordion-border-color: var(--muted-border-color);--accordion-close-summary-color: var(--color);--accordion-open-summary-color: var(--muted-color);--card-background-color: var(--background-color);--card-border-color: var(--muted-border-color);--card-box-shadow: .0145rem .029rem .174rem rgba(27,40,50,.01698), .0335rem .067rem .402rem rgba(27,40,50,.024), .0625rem .125rem .75rem rgba(27,40,50,.03), .1125rem .225rem 1.35rem rgba(27,40,50,.036), .2085rem .417rem 2.502rem rgba(27,40,50,.04302), .5rem 1rem 6rem rgba(27,40,50,.06), 0 0 0 0.0625rem rgba(27,40,50,.015);--card-sectionning-background-color: #fbfbfc;--dropdown-background-color: #fbfbfc;--dropdown-border-color: #e1e6eb;--dropdown-box-shadow: var(--card-box-shadow);--dropdown-color: var(--color);--dropdown-hover-background-color: #edf0f3;--modal-overlay-background-color: rgba(213,220,226,.7);--progress-background-color: #d5dce2;--progress-color: var(--primary);--loading-spinner-opacity: 0.5;--tooltip-background-color: var(--contrast);--tooltip-color: var(--contrast-inverse);--icon-checkbox: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");--icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(65, 84, 98)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--icon-chevron-button: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--icon-chevron-button-inverse: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--icon-close: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(115, 130, 140)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E");--icon-date: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(65, 84, 98)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E");--icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(198, 40, 40)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");--icon-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E");--icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(65, 84, 98)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");--icon-time: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(65, 84, 98)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E");--icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(56, 142, 60)' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");color-scheme:light}@media only screen and (prefers-color-scheme: dark){:root:not([data-theme]){--background-color: #11191f;--color: #bbc6ce;--h1-color: #edf0f3;--h2-color: #e1e6eb;--h3-color: #d5dce2;--h4-color: #c8d1d8;--h5-color: #bbc6ce;--h6-color: #afbbc4;--muted-color: #73828c;--muted-border-color: #1f2d38;--primary: #1095c1;--primary-hover: #1ab3e6;--primary-focus: rgba(16,149,193,.25);--primary-inverse: #fff;--secondary: #596b78;--secondary-hover: #73828c;--secondary-focus: rgba(115,130,140,.25);--secondary-inverse: #fff;--contrast: #edf0f3;--contrast-hover: #fff;--contrast-focus: rgba(115,130,140,.25);--contrast-inverse: #000;--mark-background-color: #d1c284;--mark-color: #11191f;--ins-color: #388e3c;--del-color: #c62828;--blockquote-border-color: var(--muted-border-color);--blockquote-footer-color: var(--muted-color);--button-box-shadow: 0 0 0 rgba(0, 0, 0, 0);--button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0);--form-element-background-color: #11191f;--form-element-border-color: #374956;--form-element-color: var(--color);--form-element-placeholder-color: var(--muted-color);--form-element-active-background-color: var(--form-element-background-color);--form-element-active-border-color: var(--primary);--form-element-focus-color: var(--primary-focus);--form-element-disabled-background-color: #2c3d49;--form-element-disabled-border-color: #415462;--form-element-disabled-opacity: 0.5;--form-element-invalid-border-color: #b71c1c;--form-element-invalid-active-border-color: #c62828;--form-element-invalid-focus-color: rgba(198,40,40,.25);--form-element-valid-border-color: #2e7d32;--form-element-valid-active-border-color: #388e3c;--form-element-valid-focus-color: rgba(56,142,60,.25);--switch-background-color: #374956;--switch-color: var(--primary-inverse);--switch-checked-background-color: var(--primary);--range-border-color: #24333e;--range-active-border-color: #2c3d49;--range-thumb-border-color: var(--background-color);--range-thumb-color: var(--secondary);--range-thumb-hover-color: var(--secondary-hover);--range-thumb-active-color: var(--primary);--table-border-color: var(--muted-border-color);--table-row-stripped-background-color: rgba(115,130,140,.05);--code-background-color: #18232c;--code-color: var(--muted-color);--code-kbd-background-color: var(--contrast);--code-kbd-color: var(--contrast-inverse);--code-tag-color: #a65980;--code-property-color: #599fa6;--code-value-color: #8c8473;--code-comment-color: #4d606d;--accordion-border-color: var(--muted-border-color);--accordion-active-summary-color: var(--primary);--accordion-close-summary-color: var(--color);--accordion-open-summary-color: var(--muted-color);--card-background-color: #141e26;--card-border-color: var(--card-background-color);--card-box-shadow: .0145rem .029rem .174rem rgba(0,0,0,.01698), .0335rem .067rem .402rem rgba(0,0,0,.024), .0625rem .125rem .75rem rgba(0,0,0,.03), .1125rem .225rem 1.35rem rgba(0,0,0,.036), .2085rem .417rem 2.502rem rgba(0,0,0,.04302), .5rem 1rem 6rem rgba(0,0,0,.06), 0 0 0 0.0625rem rgba(0,0,0,.015);--card-sectionning-background-color: #18232c;--dropdown-background-color: #1b2832;--dropdown-border-color: #24333e;--dropdown-box-shadow: var(--card-box-shadow);--dropdown-color: var(--color);--dropdown-hover-background-color: rgba(36,51,62,.75);--modal-overlay-background-color: rgba(36,51,62,.8);--progress-background-color: #24333e;--progress-color: var(--primary);--loading-spinner-opacity: 0.5;--tooltip-background-color: var(--contrast);--tooltip-color: var(--contrast-inverse);--icon-checkbox: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");--icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--icon-chevron-button: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--icon-chevron-button-inverse: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(0, 0, 0)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--icon-close: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(115, 130, 140)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E");--icon-date: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E");--icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(183, 28, 28)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");--icon-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E");--icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");--icon-time: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E");--icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(46, 125, 50)' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");color-scheme:dark}}[data-theme=dark]{--background-color: #11191f;--color: #bbc6ce;--h1-color: #edf0f3;--h2-color: #e1e6eb;--h3-color: #d5dce2;--h4-color: #c8d1d8;--h5-color: #bbc6ce;--h6-color: #afbbc4;--muted-color: #73828c;--muted-border-color: #1f2d38;--primary: #1095c1;--primary-hover: #1ab3e6;--primary-focus: rgba(16,149,193,.25);--primary-inverse: #fff;--secondary: #596b78;--secondary-hover: #73828c;--secondary-focus: rgba(115,130,140,.25);--secondary-inverse: #fff;--contrast: #edf0f3;--contrast-hover: #fff;--contrast-focus: rgba(115,130,140,.25);--contrast-inverse: #000;--mark-background-color: #d1c284;--mark-color: #11191f;--ins-color: #388e3c;--del-color: #c62828;--blockquote-border-color: var(--muted-border-color);--blockquote-footer-color: var(--muted-color);--button-box-shadow: 0 0 0 rgba(0, 0, 0, 0);--button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0);--form-element-background-color: #11191f;--form-element-border-color: #374956;--form-element-color: var(--color);--form-element-placeholder-color: var(--muted-color);--form-element-active-background-color: var(--form-element-background-color);--form-element-active-border-color: var(--primary);--form-element-focus-color: var(--primary-focus);--form-element-disabled-background-color: #2c3d49;--form-element-disabled-border-color: #415462;--form-element-disabled-opacity: 0.5;--form-element-invalid-border-color: #b71c1c;--form-element-invalid-active-border-color: #c62828;--form-element-invalid-focus-color: rgba(198,40,40,.25);--form-element-valid-border-color: #2e7d32;--form-element-valid-active-border-color: #388e3c;--form-element-valid-focus-color: rgba(56,142,60,.25);--switch-background-color: #374956;--switch-color: var(--primary-inverse);--switch-checked-background-color: var(--primary);--range-border-color: #24333e;--range-active-border-color: #2c3d49;--range-thumb-border-color: var(--background-color);--range-thumb-color: var(--secondary);--range-thumb-hover-color: var(--secondary-hover);--range-thumb-active-color: var(--primary);--table-border-color: var(--muted-border-color);--table-row-stripped-background-color: rgba(115,130,140,.05);--code-background-color: #18232c;--code-color: var(--muted-color);--code-kbd-background-color: var(--contrast);--code-kbd-color: var(--contrast-inverse);--code-tag-color: #a65980;--code-property-color: #599fa6;--code-value-color: #8c8473;--code-comment-color: #4d606d;--accordion-border-color: var(--muted-border-color);--accordion-active-summary-color: var(--primary);--accordion-close-summary-color: var(--color);--accordion-open-summary-color: var(--muted-color);--card-background-color: #141e26;--card-border-color: var(--card-background-color);--card-box-shadow: .0145rem .029rem .174rem rgba(0,0,0,.01698), .0335rem .067rem .402rem rgba(0,0,0,.024), .0625rem .125rem .75rem rgba(0,0,0,.03), .1125rem .225rem 1.35rem rgba(0,0,0,.036), .2085rem .417rem 2.502rem rgba(0,0,0,.04302), .5rem 1rem 6rem rgba(0,0,0,.06), 0 0 0 0.0625rem rgba(0,0,0,.015);--card-sectionning-background-color: #18232c;--dropdown-background-color: #1b2832;--dropdown-border-color: #24333e;--dropdown-box-shadow: var(--card-box-shadow);--dropdown-color: var(--color);--dropdown-hover-background-color: rgba(36,51,62,.75);--modal-overlay-background-color: rgba(36,51,62,.8);--progress-background-color: #24333e;--progress-color: var(--primary);--loading-spinner-opacity: 0.5;--tooltip-background-color: var(--contrast);--tooltip-color: var(--contrast-inverse);--icon-checkbox: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");--icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--icon-chevron-button: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--icon-chevron-button-inverse: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(0, 0, 0)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--icon-close: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(115, 130, 140)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E");--icon-date: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E");--icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(183, 28, 28)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");--icon-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E");--icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");--icon-time: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E");--icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(46, 125, 50)' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");color-scheme:dark}progress,[type=checkbox],[type=radio],[type=range]{accent-color:var(--primary)}*,*::before,*::after{box-sizing:border-box;background-repeat:no-repeat}::before,::after{text-decoration:inherit;vertical-align:inherit}:where(:root){-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--background-color);color:var(--color);font-weight:var(--font-weight);font-size:var(--font-size);line-height:var(--line-height);font-family:var(--font-family);text-rendering:optimizeLegibility;overflow-wrap:break-word;cursor:default;tab-size:4}main{display:block}body{width:100%;margin:0}body>header,body>main,body>footer{width:100%;margin-right:auto;margin-left:auto;padding:var(--block-spacing-vertical) 0}.container,.container-fluid{width:100%;margin-right:auto;margin-left:auto;padding-right:var(--spacing);padding-left:var(--spacing)}@media (min-width: 576px){.container{max-width:510px;padding-right:0;padding-left:0}}@media (min-width: 768px){.container{max-width:740px}}@media (min-width: 1220px){.container{max-width:1200px}}@media (min-width: 1700px){.container{max-width:1630px}}section{margin-bottom:var(--block-spacing-vertical)}.grid{grid-column-gap:var(--grid-spacing-horizontal);grid-row-gap:var(--grid-spacing-vertical);display:grid;grid-template-columns:1fr;margin:0}@media (min-width: 1220px){.grid{grid-template-columns:repeat(auto-fit, minmax(0%, 1fr))}}.grid>*{min-width:0}figure{display:block;margin:0;padding:0;overflow-x:auto}figure figcaption{padding:calc(var(--spacing)*.5) 0;color:var(--muted-color)}b,strong{font-weight:bolder}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}address,blockquote,dl,figure,form,ol,p,pre,table,ul{margin-top:0;margin-bottom:var(--typography-spacing-vertical);color:var(--color);font-style:normal;font-weight:var(--font-weight);font-size:var(--font-size)}a,[role=link]{--color: var(--primary);--background-color: transparent;outline:none;background-color:var(--background-color);color:var(--color);text-decoration:var(--text-decoration)}a:is([aria-current],:hover,:active,:focus),[role=link]:is([aria-current],:hover,:active,:focus){--color: var(--primary-hover);--text-decoration: underline}a:focus,[role=link]:focus{--background-color: var(--primary-focus)}a.secondary,[role=link].secondary{--color: var(--secondary)}a.secondary:is([aria-current],:hover,:active,:focus),[role=link].secondary:is([aria-current],:hover,:active,:focus){--color: var(--secondary-hover)}a.secondary:focus,[role=link].secondary:focus{--background-color: var(--secondary-focus)}a.contrast,[role=link].contrast{--color: var(--contrast)}a.contrast:is([aria-current],:hover,:active,:focus),[role=link].contrast:is([aria-current],:hover,:active,:focus){--color: var(--contrast-hover)}a.contrast:focus,[role=link].contrast:focus{--background-color: var(--contrast-focus)}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:var(--typography-spacing-vertical);color:var(--color);font-weight:var(--font-weight);font-size:var(--font-size);font-family:var(--font-family)}h1{--color: var(--h1-color)}h2{--color: var(--h2-color)}h3{--color: var(--h3-color)}h4{--color: var(--h4-color)}h5{--color: var(--h5-color)}h6{--color: var(--h6-color)}:where(address,blockquote,dl,figure,form,ol,p,pre,table,ul)~:is(h1,h2,h3,h4,h5,h6){margin-top:var(--typography-spacing-vertical)}hgroup,.headings{margin-bottom:var(--typography-spacing-vertical)}hgroup>*,.headings>*{margin-bottom:0}hgroup>*:last-child,.headings>*:last-child{--color: var(--muted-color);--font-weight: unset;font-size:1rem;font-family:unset}p{margin-bottom:var(--typography-spacing-vertical)}small{font-size:var(--font-size)}:where(dl,ol,ul){padding-right:0;padding-left:var(--spacing);padding-inline-start:var(--spacing);padding-inline-end:0}:where(dl,ol,ul) li{margin-bottom:calc(var(--typography-spacing-vertical)*.25)}:where(dl,ol,ul) :is(dl,ol,ul){margin:0;margin-top:calc(var(--typography-spacing-vertical)*.25)}ul li{list-style:square}mark{padding:.125rem .25rem;background-color:var(--mark-background-color);color:var(--mark-color);vertical-align:baseline}blockquote{display:block;margin:var(--typography-spacing-vertical) 0;padding:var(--spacing);border-right:none;border-left:.25rem solid var(--blockquote-border-color);border-inline-start:.25rem solid var(--blockquote-border-color);border-inline-end:none}blockquote footer{margin-top:calc(var(--typography-spacing-vertical)*.5);color:var(--blockquote-footer-color)}abbr[title]{border-bottom:1px dotted;text-decoration:none;cursor:help}ins{color:var(--ins-color);text-decoration:none}del{color:var(--del-color)}::selection{background-color:var(--primary-focus)}:where(audio,canvas,iframe,img,svg,video){vertical-align:middle}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}:where(iframe){border-style:none}img{max-width:100%;height:auto;border-style:none}:where(svg:not([fill])){fill:currentColor}svg:not(:root){overflow:hidden}button{margin:0;overflow:visible;font-family:inherit;text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button{display:block;width:100%;margin-bottom:var(--spacing)}[role=button]{display:inline-block;text-decoration:none}button,input[type=submit],input[type=button],input[type=reset],[role=button]{--background-color: var(--primary);--border-color: var(--primary);--color: var(--primary-inverse);--box-shadow: var(--button-box-shadow, 0 0 0 rgba(0, 0, 0, 0));padding:var(--form-element-spacing-vertical) var(--form-element-spacing-horizontal);border:var(--border-width) solid var(--border-color);border-radius:var(--border-radius);outline:none;background-color:var(--background-color);box-shadow:var(--box-shadow);color:var(--color);font-weight:var(--font-weight);font-size:1rem;line-height:var(--line-height);text-align:center;cursor:pointer}button:is([aria-current],:hover,:active,:focus),input[type=submit]:is([aria-current],:hover,:active,:focus),input[type=button]:is([aria-current],:hover,:active,:focus),input[type=reset]:is([aria-current],:hover,:active,:focus),[role=button]:is([aria-current],:hover,:active,:focus){--background-color: var(--primary-hover);--border-color: var(--primary-hover);--box-shadow: var(--button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0));--color: var(--primary-inverse)}button:focus,input[type=submit]:focus,input[type=button]:focus,input[type=reset]:focus,[role=button]:focus{--box-shadow: var(--button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)), 0 0 0 var(--outline-width) var(--primary-focus)}:is(button,input[type=submit],input[type=button],[role=button]).secondary,input[type=reset]{--background-color: var(--secondary);--border-color: var(--secondary);--color: var(--secondary-inverse);cursor:pointer}:is(button,input[type=submit],input[type=button],[role=button]).secondary:is([aria-current],:hover,:active,:focus),input[type=reset]:is([aria-current],:hover,:active,:focus){--background-color: var(--secondary-hover);--border-color: var(--secondary-hover);--color: var(--secondary-inverse)}:is(button,input[type=submit],input[type=button],[role=button]).secondary:focus,input[type=reset]:focus{--box-shadow: var(--button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)), 0 0 0 var(--outline-width) var(--secondary-focus)}:is(button,input[type=submit],input[type=button],[role=button]).contrast{--background-color: var(--contrast);--border-color: var(--contrast);--color: var(--contrast-inverse)}:is(button,input[type=submit],input[type=button],[role=button]).contrast:is([aria-current],:hover,:active,:focus){--background-color: var(--contrast-hover);--border-color: var(--contrast-hover);--color: var(--contrast-inverse)}:is(button,input[type=submit],input[type=button],[role=button]).contrast:focus{--box-shadow: var(--button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)), 0 0 0 var(--outline-width) var(--contrast-focus)}:is(button,input[type=submit],input[type=button],[role=button]).outline,input[type=reset].outline{--background-color: transparent;--color: var(--primary)}:is(button,input[type=submit],input[type=button],[role=button]).outline:is([aria-current],:hover,:active,:focus),input[type=reset].outline:is([aria-current],:hover,:active,:focus){--background-color: transparent;--color: var(--primary-hover)}:is(button,input[type=submit],input[type=button],[role=button]).outline.secondary,input[type=reset].outline{--color: var(--secondary)}:is(button,input[type=submit],input[type=button],[role=button]).outline.secondary:is([aria-current],:hover,:active,:focus),input[type=reset].outline:is([aria-current],:hover,:active,:focus){--color: var(--secondary-hover)}:is(button,input[type=submit],input[type=button],[role=button]).outline.contrast{--color: var(--contrast)}:is(button,input[type=submit],input[type=button],[role=button]).outline.contrast:is([aria-current],:hover,:active,:focus){--color: var(--contrast-hover)}:where(button,[type=submit],[type=button],[type=reset],[role=button])[disabled],:where(fieldset[disabled]) :is(button,[type=submit],[type=button],[type=reset],[role=button]),a[role=button]:not([href]){opacity:.5;pointer-events:none}input,optgroup,select,textarea{margin:0;font-size:1rem;line-height:var(--line-height);font-family:inherit;letter-spacing:inherit}input{overflow:visible}select{text-transform:none}legend{max-width:100%;padding:0;color:inherit;white-space:normal}textarea{overflow:auto}[type=checkbox],[type=radio]{padding:0}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}::-moz-focus-inner{padding:0;border-style:none}:-moz-focusring{outline:none}:-moz-ui-invalid{box-shadow:none}::-ms-expand{display:none}[type=file],[type=range]{padding:0;border-width:0}input:not([type=checkbox],[type=radio],[type=range]){height:calc(1rem*var(--line-height) + var(--form-element-spacing-vertical)*2 + var(--border-width)*2)}fieldset{margin:0;margin-bottom:var(--spacing);padding:0;border:0}label,fieldset legend{display:block;margin-bottom:calc(var(--spacing)*.25);font-weight:var(--form-label-font-weight, var(--font-weight))}input:not([type=checkbox],[type=radio]),select,textarea{width:100%}input:not([type=checkbox],[type=radio],[type=range],[type=file]),select,textarea{appearance:none;padding:var(--form-element-spacing-vertical) var(--form-element-spacing-horizontal)}input,select,textarea{--background-color: var(--form-element-background-color);--border-color: var(--form-element-border-color);--color: var(--form-element-color);--box-shadow: none;border:var(--border-width) solid var(--border-color);border-radius:var(--border-radius);outline:none;background-color:var(--background-color);box-shadow:var(--box-shadow);color:var(--color);font-weight:var(--font-weight)}input:not([type=submit],[type=button],[type=reset],[type=checkbox],[type=radio],[readonly]):is(:active,:focus),:where(select,textarea):is(:active,:focus){--background-color: var(--form-element-active-background-color)}input:not([type=submit],[type=button],[type=reset],[role=switch],[readonly]):is(:active,:focus),:where(select,textarea):is(:active,:focus){--border-color: var(--form-element-active-border-color)}input:not([type=submit],[type=button],[type=reset],[type=range],[type=file],[readonly]):focus,select:focus,textarea:focus{--box-shadow: 0 0 0 var(--outline-width) var(--form-element-focus-color)}input:not([type=submit],[type=button],[type=reset])[disabled],select[disabled],textarea[disabled],:where(fieldset[disabled]) :is(input:not([type=submit],[type=button],[type=reset]),select,textarea){--background-color: var(--form-element-disabled-background-color);--border-color: var(--form-element-disabled-border-color);opacity:var(--form-element-disabled-opacity);pointer-events:none}:where(input,select,textarea):not([type=checkbox],[type=radio],[type=date],[type=datetime-local],[type=month],[type=time],[type=week])[aria-invalid]{padding-right:calc(var(--form-element-spacing-horizontal) + 1.5rem);padding-left:var(--form-element-spacing-horizontal);padding-inline-start:var(--form-element-spacing-horizontal);padding-inline-end:calc(var(--form-element-spacing-horizontal) + 1.5rem);background-position:center right .75rem;background-size:1rem auto;background-repeat:no-repeat}:where(input,select,textarea):not([type=checkbox],[type=radio],[type=date],[type=datetime-local],[type=month],[type=time],[type=week])[aria-invalid=false]{background-image:var(--icon-valid)}:where(input,select,textarea):not([type=checkbox],[type=radio],[type=date],[type=datetime-local],[type=month],[type=time],[type=week])[aria-invalid=true]{background-image:var(--icon-invalid)}:where(input,select,textarea)[aria-invalid=false]{--border-color: var(--form-element-valid-border-color)}:where(input,select,textarea)[aria-invalid=false]:is(:active,:focus){--border-color: var(--form-element-valid-active-border-color);--box-shadow: 0 0 0 var(--outline-width) var(--form-element-valid-focus-color)}:where(input,select,textarea)[aria-invalid=true]{--border-color: var(--form-element-invalid-border-color)}:where(input,select,textarea)[aria-invalid=true]:is(:active,:focus){--border-color: var(--form-element-invalid-active-border-color);--box-shadow: 0 0 0 var(--outline-width) var(--form-element-invalid-focus-color)}[dir=rtl] :where(input,select,textarea):not([type=checkbox],[type=radio]):is([aria-invalid],[aria-invalid=true],[aria-invalid=false]){background-position:center left .75rem}input::placeholder,input::-webkit-input-placeholder,textarea::placeholder,textarea::-webkit-input-placeholder,select:invalid{color:var(--form-element-placeholder-color);opacity:1}input:not([type=checkbox],[type=radio]),select,textarea{margin-bottom:var(--spacing)}select::-ms-expand{border:0;background-color:rgba(0,0,0,0)}select:not([multiple],[size]){padding-right:calc(var(--form-element-spacing-horizontal) + 1.5rem);padding-left:var(--form-element-spacing-horizontal);padding-inline-start:var(--form-element-spacing-horizontal);padding-inline-end:calc(var(--form-element-spacing-horizontal) + 1.5rem);background-image:var(--icon-chevron);background-position:center right .75rem;background-size:1rem auto;background-repeat:no-repeat}[dir=rtl] select:not([multiple],[size]){background-position:center left .75rem}:where(input,select,textarea,.grid)+small{display:block;width:100%;margin-top:calc(var(--spacing)*-.75);margin-bottom:var(--spacing);color:var(--muted-color)}label>:where(input,select,textarea){margin-top:calc(var(--spacing)*.25)}:where(table){width:100%;border-collapse:collapse;border-spacing:0;text-indent:0}th,td{padding:calc(var(--spacing)/2) var(--spacing);border-bottom:var(--border-width) solid var(--table-border-color);color:var(--color);font-weight:var(--font-weight);font-size:var(--font-size);text-align:left;text-align:start}tfoot th,tfoot td{border-top:var(--border-width) solid var(--table-border-color);border-bottom:0}table[role=grid] tbody tr:nth-child(odd){background-color:var(--table-row-stripped-background-color)}[aria-controls]{cursor:pointer}[aria-disabled=true],[disabled]{cursor:not-allowed}[aria-hidden=false][hidden]{display:initial}[aria-hidden=false][hidden]:not(:focus){clip:rect(0, 0, 0, 0);position:absolute}a,area,button,input,label,select,summary,textarea,[tabindex]{-ms-touch-action:manipulation}[dir=rtl]{direction:rtl}:where(nav li)::before{float:left;content:""}nav,nav ul{display:flex}nav{justify-content:space-between}nav ol,nav ul{align-items:center;margin-bottom:0;padding:0;list-style:none}nav ol:first-of-type,nav ul:first-of-type{margin-left:calc(var(--nav-element-spacing-horizontal)*-1)}nav ol:last-of-type,nav ul:last-of-type{margin-right:calc(var(--nav-element-spacing-horizontal)*-1)}nav li{display:inline-block;margin:0;padding:var(--nav-element-spacing-vertical) var(--nav-element-spacing-horizontal)}nav li>*{--spacing: 0}nav :where(a,[role=link]){display:inline-block;margin:calc(var(--nav-link-spacing-vertical)*-1) calc(var(--nav-link-spacing-horizontal)*-1);padding:var(--nav-link-spacing-vertical) var(--nav-link-spacing-horizontal);border-radius:var(--border-radius);text-decoration:none}nav :where(a,[role=link]):is([aria-current],:hover,:active,:focus){text-decoration:none}nav[aria-label=breadcrumb]{align-items:center;justify-content:start}nav[aria-label=breadcrumb] ul li:not(:first-child){margin-inline-start:var(--nav-link-spacing-horizontal)}nav[aria-label=breadcrumb] ul li:not(:last-child) ::after{position:absolute;width:calc(var(--nav-link-spacing-horizontal)*2);margin-inline-start:calc(var(--nav-link-spacing-horizontal)/2);content:"/";color:var(--muted-color);text-align:center}nav[aria-label=breadcrumb] a[aria-current]{background-color:rgba(0,0,0,0);color:inherit;text-decoration:none;pointer-events:none}nav [role=button]{margin-right:inherit;margin-left:inherit;padding:var(--nav-link-spacing-vertical) var(--nav-link-spacing-horizontal)}aside nav,aside ol,aside ul,aside li{display:block}aside li{padding:calc(var(--nav-element-spacing-vertical)*.5) var(--nav-element-spacing-horizontal)}aside li a{display:block}aside li [role=button]{margin:inherit}[dir=rtl] nav[aria-label=breadcrumb] ul li:not(:last-child) ::after{content:"\\"}.night{display:none}h1,h2,h3,h4,h5,h6{margin-bottom:.5em}a>button{color:#fff;text-decoration:underline}figure{overflow:clip}.blurb>button{margin-top:20px}@media (min-width: 1220px){.blurb{margin-right:6em;margin-left:6em}}img.screenshot{border:double 3px;border-radius:4px;max-width:500px;margin:.5em}img.logo{max-width:72px}html,body{box-sizing:border-box;height:100%}body>footer{margin:0px;padding:0px}.wrapper{min-height:100%;display:flex;flex-direction:column;box-sizing:border-box}.page-body{flex-grow:1}.page-footer{flex-grow:0;flex-shrink:0}footer{text-align:center;font-size:.8em}figure{text-align:center}.active{text-decoration:underline}.documentation{display:flex}.documentation .side-panel{margin-right:3em;min-width:200px;font-size:10px}.documentation .side-panel ul>li{list-style:none;font-weight:bold}.home-header{display:grid;grid-template-columns:50% 40%;grid-column-gap:20px;grid-row-gap:20px;justify-items:stretch;align-items:stretch}@media (max-width: 1220px){.home-header{grid-template-columns:none}}.home-wrapper{display:grid;grid-template-columns:33% 33% 33%;grid-column-gap:20px;grid-row-gap:20px;justify-items:stretch;align-items:stretch}@media (min-width: 1220px){.home-wrapper{margin-right:10em;margin-left:10em}}@media (max-width: 768px){.home-wrapper{grid-template-columns:none}}@media (prefers-color-scheme: dark){img.logo{filter:drop-shadow(0px 0px 30px #fff)}.day{display:none}.night{display:initial}figure{filter:drop-shadow(0px 0px 30px #fff)}} |
| 1267 | \ No newline at end of file |
| 1268 | + */:root{--font-family: system-ui, -apple-system, "Segoe UI", "Roboto", "Ubuntu", "Cantarell", "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--line-height: 1.5;--font-weight: 400;--font-size: 16px;--border-radius: 0.25rem;--border-width: 1px;--outline-width: 3px;--spacing: 1rem;--typography-spacing-vertical: 1.5rem;--block-spacing-vertical: calc(var(--spacing) * 2);--block-spacing-horizontal: var(--spacing);--grid-spacing-vertical: 0;--grid-spacing-horizontal: var(--spacing);--form-element-spacing-vertical: 0.75rem;--form-element-spacing-horizontal: 1rem;--nav-element-spacing-vertical: 1rem;--nav-element-spacing-horizontal: 0.5rem;--nav-link-spacing-vertical: 0.5rem;--nav-link-spacing-horizontal: 0.5rem;--form-label-font-weight: var(--font-weight);--transition: 0.2s ease-in-out;--modal-overlay-backdrop-filter: blur(0.25rem)}@media (min-width: 576px){:root{--font-size: 17px}}@media (min-width: 768px){:root{--font-size: 18px}}@media (min-width: 1220px){:root{--font-size: 19px}}@media (min-width: 1700px){:root{--font-size: 20px}}a{--text-decoration: none}a.secondary,a.contrast{--text-decoration: underline}small{--font-size: 0.875em}h1,h2,h3,h4,h5,h6{--font-weight: 700}h1{--font-size: 2rem;--typography-spacing-vertical: 3rem}h2{--font-size: 1.75rem;--typography-spacing-vertical: 2.625rem}h3{--font-size: 1.5rem;--typography-spacing-vertical: 2.25rem}h4{--font-size: 1.25rem;--typography-spacing-vertical: 1.874rem}h5{--font-size: 1.125rem;--typography-spacing-vertical: 1.6875rem}[type=checkbox],[type=radio]{--border-width: 2px}[type=checkbox][role=switch]{--border-width: 3px}thead th,thead td,tfoot th,tfoot td{--border-width: 3px}:not(thead,tfoot)>*>td{--font-size: 0.875em}pre,code,kbd,samp{--font-family: "Menlo", "Consolas", "Roboto Mono", "Ubuntu Monospace", "Noto Mono", "Oxygen Mono", "Liberation Mono", monospace, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"}kbd{--font-weight: bolder}[data-theme=light],:root:not([data-theme=dark]){--background-color: #fff;--color: #415462;--h1-color: #1b2832;--h2-color: #24333e;--h3-color: #2c3d49;--h4-color: #374956;--h5-color: #415462;--h6-color: #4d606d;--muted-color: #73828c;--muted-border-color: #edf0f3;--primary: #1095c1;--primary-hover: #08769b;--primary-focus: rgba(16,149,193,.125);--primary-inverse: #fff;--secondary: #596b78;--secondary-hover: #415462;--secondary-focus: rgba(89,107,120,.125);--secondary-inverse: #fff;--contrast: #1b2832;--contrast-hover: #000;--contrast-focus: rgba(89,107,120,.125);--contrast-inverse: #fff;--mark-background-color: #fff2ca;--mark-color: #543a26;--ins-color: #388e3c;--del-color: #c62828;--blockquote-border-color: var(--muted-border-color);--blockquote-footer-color: var(--muted-color);--button-box-shadow: 0 0 0 rgba(0, 0, 0, 0);--button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0);--form-element-background-color: transparent;--form-element-border-color: #a2afb9;--form-element-color: var(--color);--form-element-placeholder-color: var(--muted-color);--form-element-active-background-color: transparent;--form-element-active-border-color: var(--primary);--form-element-focus-color: var(--primary-focus);--form-element-disabled-background-color: #d5dce2;--form-element-disabled-border-color: #a2afb9;--form-element-disabled-opacity: 0.5;--form-element-invalid-border-color: #c62828;--form-element-invalid-active-border-color: #d32f2f;--form-element-invalid-focus-color: rgba(211,47,47,.125);--form-element-valid-border-color: #388e3c;--form-element-valid-active-border-color: #43a047;--form-element-valid-focus-color: rgba(67,160,71,.125);--switch-background-color: #bbc6ce;--switch-color: var(--primary-inverse);--switch-checked-background-color: var(--primary);--range-border-color: #d5dce2;--range-active-border-color: #bbc6ce;--range-thumb-border-color: var(--background-color);--range-thumb-color: var(--secondary);--range-thumb-hover-color: var(--secondary-hover);--range-thumb-active-color: var(--primary);--table-border-color: var(--muted-border-color);--table-row-stripped-background-color: #f6f8f9;--code-background-color: #edf0f3;--code-color: var(--muted-color);--code-kbd-background-color: var(--contrast);--code-kbd-color: var(--contrast-inverse);--code-tag-color: #b34d80;--code-property-color: #3d888f;--code-value-color: #986;--code-comment-color: #a2afb9;--accordion-border-color: var(--muted-border-color);--accordion-close-summary-color: var(--color);--accordion-open-summary-color: var(--muted-color);--card-background-color: var(--background-color);--card-border-color: var(--muted-border-color);--card-box-shadow: .0145rem .029rem .174rem rgba(27,40,50,.01698), .0335rem .067rem .402rem rgba(27,40,50,.024), .0625rem .125rem .75rem rgba(27,40,50,.03), .1125rem .225rem 1.35rem rgba(27,40,50,.036), .2085rem .417rem 2.502rem rgba(27,40,50,.04302), .5rem 1rem 6rem rgba(27,40,50,.06), 0 0 0 0.0625rem rgba(27,40,50,.015);--card-sectionning-background-color: #fbfbfc;--dropdown-background-color: #fbfbfc;--dropdown-border-color: #e1e6eb;--dropdown-box-shadow: var(--card-box-shadow);--dropdown-color: var(--color);--dropdown-hover-background-color: #edf0f3;--modal-overlay-background-color: rgba(213,220,226,.7);--progress-background-color: #d5dce2;--progress-color: var(--primary);--loading-spinner-opacity: 0.5;--tooltip-background-color: var(--contrast);--tooltip-color: var(--contrast-inverse);--icon-checkbox: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");--icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(65, 84, 98)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--icon-chevron-button: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--icon-chevron-button-inverse: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--icon-close: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(115, 130, 140)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E");--icon-date: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(65, 84, 98)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E");--icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(198, 40, 40)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");--icon-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E");--icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(65, 84, 98)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");--icon-time: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(65, 84, 98)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E");--icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(56, 142, 60)' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");color-scheme:light}@media only screen and (prefers-color-scheme: dark){:root:not([data-theme]){--background-color: #11191f;--color: #bbc6ce;--h1-color: #edf0f3;--h2-color: #e1e6eb;--h3-color: #d5dce2;--h4-color: #c8d1d8;--h5-color: #bbc6ce;--h6-color: #afbbc4;--muted-color: #73828c;--muted-border-color: #1f2d38;--primary: #1095c1;--primary-hover: #1ab3e6;--primary-focus: rgba(16,149,193,.25);--primary-inverse: #fff;--secondary: #596b78;--secondary-hover: #73828c;--secondary-focus: rgba(115,130,140,.25);--secondary-inverse: #fff;--contrast: #edf0f3;--contrast-hover: #fff;--contrast-focus: rgba(115,130,140,.25);--contrast-inverse: #000;--mark-background-color: #d1c284;--mark-color: #11191f;--ins-color: #388e3c;--del-color: #c62828;--blockquote-border-color: var(--muted-border-color);--blockquote-footer-color: var(--muted-color);--button-box-shadow: 0 0 0 rgba(0, 0, 0, 0);--button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0);--form-element-background-color: #11191f;--form-element-border-color: #374956;--form-element-color: var(--color);--form-element-placeholder-color: var(--muted-color);--form-element-active-background-color: var(--form-element-background-color);--form-element-active-border-color: var(--primary);--form-element-focus-color: var(--primary-focus);--form-element-disabled-background-color: #2c3d49;--form-element-disabled-border-color: #415462;--form-element-disabled-opacity: 0.5;--form-element-invalid-border-color: #b71c1c;--form-element-invalid-active-border-color: #c62828;--form-element-invalid-focus-color: rgba(198,40,40,.25);--form-element-valid-border-color: #2e7d32;--form-element-valid-active-border-color: #388e3c;--form-element-valid-focus-color: rgba(56,142,60,.25);--switch-background-color: #374956;--switch-color: var(--primary-inverse);--switch-checked-background-color: var(--primary);--range-border-color: #24333e;--range-active-border-color: #2c3d49;--range-thumb-border-color: var(--background-color);--range-thumb-color: var(--secondary);--range-thumb-hover-color: var(--secondary-hover);--range-thumb-active-color: var(--primary);--table-border-color: var(--muted-border-color);--table-row-stripped-background-color: rgba(115,130,140,.05);--code-background-color: #18232c;--code-color: var(--muted-color);--code-kbd-background-color: var(--contrast);--code-kbd-color: var(--contrast-inverse);--code-tag-color: #a65980;--code-property-color: #599fa6;--code-value-color: #8c8473;--code-comment-color: #4d606d;--accordion-border-color: var(--muted-border-color);--accordion-active-summary-color: var(--primary);--accordion-close-summary-color: var(--color);--accordion-open-summary-color: var(--muted-color);--card-background-color: #141e26;--card-border-color: var(--card-background-color);--card-box-shadow: .0145rem .029rem .174rem rgba(0,0,0,.01698), .0335rem .067rem .402rem rgba(0,0,0,.024), .0625rem .125rem .75rem rgba(0,0,0,.03), .1125rem .225rem 1.35rem rgba(0,0,0,.036), .2085rem .417rem 2.502rem rgba(0,0,0,.04302), .5rem 1rem 6rem rgba(0,0,0,.06), 0 0 0 0.0625rem rgba(0,0,0,.015);--card-sectionning-background-color: #18232c;--dropdown-background-color: #1b2832;--dropdown-border-color: #24333e;--dropdown-box-shadow: var(--card-box-shadow);--dropdown-color: var(--color);--dropdown-hover-background-color: rgba(36,51,62,.75);--modal-overlay-background-color: rgba(36,51,62,.8);--progress-background-color: #24333e;--progress-color: var(--primary);--loading-spinner-opacity: 0.5;--tooltip-background-color: var(--contrast);--tooltip-color: var(--contrast-inverse);--icon-checkbox: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");--icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--icon-chevron-button: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--icon-chevron-button-inverse: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(0, 0, 0)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--icon-close: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(115, 130, 140)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E");--icon-date: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E");--icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(183, 28, 28)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");--icon-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E");--icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");--icon-time: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E");--icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(46, 125, 50)' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");color-scheme:dark}}[data-theme=dark]{--background-color: #11191f;--color: #bbc6ce;--h1-color: #edf0f3;--h2-color: #e1e6eb;--h3-color: #d5dce2;--h4-color: #c8d1d8;--h5-color: #bbc6ce;--h6-color: #afbbc4;--muted-color: #73828c;--muted-border-color: #1f2d38;--primary: #1095c1;--primary-hover: #1ab3e6;--primary-focus: rgba(16,149,193,.25);--primary-inverse: #fff;--secondary: #596b78;--secondary-hover: #73828c;--secondary-focus: rgba(115,130,140,.25);--secondary-inverse: #fff;--contrast: #edf0f3;--contrast-hover: #fff;--contrast-focus: rgba(115,130,140,.25);--contrast-inverse: #000;--mark-background-color: #d1c284;--mark-color: #11191f;--ins-color: #388e3c;--del-color: #c62828;--blockquote-border-color: var(--muted-border-color);--blockquote-footer-color: var(--muted-color);--button-box-shadow: 0 0 0 rgba(0, 0, 0, 0);--button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0);--form-element-background-color: #11191f;--form-element-border-color: #374956;--form-element-color: var(--color);--form-element-placeholder-color: var(--muted-color);--form-element-active-background-color: var(--form-element-background-color);--form-element-active-border-color: var(--primary);--form-element-focus-color: var(--primary-focus);--form-element-disabled-background-color: #2c3d49;--form-element-disabled-border-color: #415462;--form-element-disabled-opacity: 0.5;--form-element-invalid-border-color: #b71c1c;--form-element-invalid-active-border-color: #c62828;--form-element-invalid-focus-color: rgba(198,40,40,.25);--form-element-valid-border-color: #2e7d32;--form-element-valid-active-border-color: #388e3c;--form-element-valid-focus-color: rgba(56,142,60,.25);--switch-background-color: #374956;--switch-color: var(--primary-inverse);--switch-checked-background-color: var(--primary);--range-border-color: #24333e;--range-active-border-color: #2c3d49;--range-thumb-border-color: var(--background-color);--range-thumb-color: var(--secondary);--range-thumb-hover-color: var(--secondary-hover);--range-thumb-active-color: var(--primary);--table-border-color: var(--muted-border-color);--table-row-stripped-background-color: rgba(115,130,140,.05);--code-background-color: #18232c;--code-color: var(--muted-color);--code-kbd-background-color: var(--contrast);--code-kbd-color: var(--contrast-inverse);--code-tag-color: #a65980;--code-property-color: #599fa6;--code-value-color: #8c8473;--code-comment-color: #4d606d;--accordion-border-color: var(--muted-border-color);--accordion-active-summary-color: var(--primary);--accordion-close-summary-color: var(--color);--accordion-open-summary-color: var(--muted-color);--card-background-color: #141e26;--card-border-color: var(--card-background-color);--card-box-shadow: .0145rem .029rem .174rem rgba(0,0,0,.01698), .0335rem .067rem .402rem rgba(0,0,0,.024), .0625rem .125rem .75rem rgba(0,0,0,.03), .1125rem .225rem 1.35rem rgba(0,0,0,.036), .2085rem .417rem 2.502rem rgba(0,0,0,.04302), .5rem 1rem 6rem rgba(0,0,0,.06), 0 0 0 0.0625rem rgba(0,0,0,.015);--card-sectionning-background-color: #18232c;--dropdown-background-color: #1b2832;--dropdown-border-color: #24333e;--dropdown-box-shadow: var(--card-box-shadow);--dropdown-color: var(--color);--dropdown-hover-background-color: rgba(36,51,62,.75);--modal-overlay-background-color: rgba(36,51,62,.8);--progress-background-color: #24333e;--progress-color: var(--primary);--loading-spinner-opacity: 0.5;--tooltip-background-color: var(--contrast);--tooltip-color: var(--contrast-inverse);--icon-checkbox: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");--icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--icon-chevron-button: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--icon-chevron-button-inverse: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(0, 0, 0)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--icon-close: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(115, 130, 140)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E");--icon-date: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E");--icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(183, 28, 28)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");--icon-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E");--icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");--icon-time: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E");--icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(46, 125, 50)' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");color-scheme:dark}progress,[type=checkbox],[type=radio],[type=range]{accent-color:var(--primary)}*,*::before,*::after{box-sizing:border-box;background-repeat:no-repeat}::before,::after{text-decoration:inherit;vertical-align:inherit}:where(:root){-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--background-color);color:var(--color);font-weight:var(--font-weight);font-size:var(--font-size);line-height:var(--line-height);font-family:var(--font-family);text-rendering:optimizeLegibility;overflow-wrap:break-word;cursor:default;tab-size:4}main{display:block}body{width:100%;margin:0}body>header,body>main,body>footer{width:100%;margin-right:auto;margin-left:auto;padding:var(--block-spacing-vertical) 0}.container,.container-fluid{width:100%;margin-right:auto;margin-left:auto;padding-right:var(--spacing);padding-left:var(--spacing)}@media (min-width: 576px){.container{max-width:510px;padding-right:0;padding-left:0}}@media (min-width: 768px){.container{max-width:740px}}@media (min-width: 1220px){.container{max-width:1200px}}@media (min-width: 1700px){.container{max-width:1630px}}section{margin-bottom:var(--block-spacing-vertical)}.grid{grid-column-gap:var(--grid-spacing-horizontal);grid-row-gap:var(--grid-spacing-vertical);display:grid;grid-template-columns:1fr;margin:0}@media (min-width: 1220px){.grid{grid-template-columns:repeat(auto-fit, minmax(0%, 1fr))}}.grid>*{min-width:0}figure{display:block;margin:0;padding:0;overflow-x:auto}figure figcaption{padding:calc(var(--spacing)*.5) 0;color:var(--muted-color)}b,strong{font-weight:bolder}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}address,blockquote,dl,figure,form,ol,p,pre,table,ul{margin-top:0;margin-bottom:var(--typography-spacing-vertical);color:var(--color);font-style:normal;font-weight:var(--font-weight);font-size:var(--font-size)}a,[role=link]{--color: var(--primary);--background-color: transparent;outline:none;background-color:var(--background-color);color:var(--color);text-decoration:var(--text-decoration)}a:is([aria-current],:hover,:active,:focus),[role=link]:is([aria-current],:hover,:active,:focus){--color: var(--primary-hover);--text-decoration: underline}a:focus,[role=link]:focus{--background-color: var(--primary-focus)}a.secondary,[role=link].secondary{--color: var(--secondary)}a.secondary:is([aria-current],:hover,:active,:focus),[role=link].secondary:is([aria-current],:hover,:active,:focus){--color: var(--secondary-hover)}a.secondary:focus,[role=link].secondary:focus{--background-color: var(--secondary-focus)}a.contrast,[role=link].contrast{--color: var(--contrast)}a.contrast:is([aria-current],:hover,:active,:focus),[role=link].contrast:is([aria-current],:hover,:active,:focus){--color: var(--contrast-hover)}a.contrast:focus,[role=link].contrast:focus{--background-color: var(--contrast-focus)}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:var(--typography-spacing-vertical);color:var(--color);font-weight:var(--font-weight);font-size:var(--font-size);font-family:var(--font-family)}h1{--color: var(--h1-color)}h2{--color: var(--h2-color)}h3{--color: var(--h3-color)}h4{--color: var(--h4-color)}h5{--color: var(--h5-color)}h6{--color: var(--h6-color)}:where(address,blockquote,dl,figure,form,ol,p,pre,table,ul)~:is(h1,h2,h3,h4,h5,h6){margin-top:var(--typography-spacing-vertical)}hgroup,.headings{margin-bottom:var(--typography-spacing-vertical)}hgroup>*,.headings>*{margin-bottom:0}hgroup>*:last-child,.headings>*:last-child{--color: var(--muted-color);--font-weight: unset;font-size:1rem;font-family:unset}p{margin-bottom:var(--typography-spacing-vertical)}small{font-size:var(--font-size)}:where(dl,ol,ul){padding-right:0;padding-left:var(--spacing);padding-inline-start:var(--spacing);padding-inline-end:0}:where(dl,ol,ul) li{margin-bottom:calc(var(--typography-spacing-vertical)*.25)}:where(dl,ol,ul) :is(dl,ol,ul){margin:0;margin-top:calc(var(--typography-spacing-vertical)*.25)}ul li{list-style:square}mark{padding:.125rem .25rem;background-color:var(--mark-background-color);color:var(--mark-color);vertical-align:baseline}blockquote{display:block;margin:var(--typography-spacing-vertical) 0;padding:var(--spacing);border-right:none;border-left:.25rem solid var(--blockquote-border-color);border-inline-start:.25rem solid var(--blockquote-border-color);border-inline-end:none}blockquote footer{margin-top:calc(var(--typography-spacing-vertical)*.5);color:var(--blockquote-footer-color)}abbr[title]{border-bottom:1px dotted;text-decoration:none;cursor:help}ins{color:var(--ins-color);text-decoration:none}del{color:var(--del-color)}::selection{background-color:var(--primary-focus)}:where(audio,canvas,iframe,img,svg,video){vertical-align:middle}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}:where(iframe){border-style:none}img{max-width:100%;height:auto;border-style:none}:where(svg:not([fill])){fill:currentColor}svg:not(:root){overflow:hidden}button{margin:0;overflow:visible;font-family:inherit;text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button{display:block;width:100%;margin-bottom:var(--spacing)}[role=button]{display:inline-block;text-decoration:none}button,input[type=submit],input[type=button],input[type=reset],[role=button]{--background-color: var(--primary);--border-color: var(--primary);--color: var(--primary-inverse);--box-shadow: var(--button-box-shadow, 0 0 0 rgba(0, 0, 0, 0));padding:var(--form-element-spacing-vertical) var(--form-element-spacing-horizontal);border:var(--border-width) solid var(--border-color);border-radius:var(--border-radius);outline:none;background-color:var(--background-color);box-shadow:var(--box-shadow);color:var(--color);font-weight:var(--font-weight);font-size:1rem;line-height:var(--line-height);text-align:center;cursor:pointer}button:is([aria-current],:hover,:active,:focus),input[type=submit]:is([aria-current],:hover,:active,:focus),input[type=button]:is([aria-current],:hover,:active,:focus),input[type=reset]:is([aria-current],:hover,:active,:focus),[role=button]:is([aria-current],:hover,:active,:focus){--background-color: var(--primary-hover);--border-color: var(--primary-hover);--box-shadow: var(--button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0));--color: var(--primary-inverse)}button:focus,input[type=submit]:focus,input[type=button]:focus,input[type=reset]:focus,[role=button]:focus{--box-shadow: var(--button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)), 0 0 0 var(--outline-width) var(--primary-focus)}:is(button,input[type=submit],input[type=button],[role=button]).secondary,input[type=reset]{--background-color: var(--secondary);--border-color: var(--secondary);--color: var(--secondary-inverse);cursor:pointer}:is(button,input[type=submit],input[type=button],[role=button]).secondary:is([aria-current],:hover,:active,:focus),input[type=reset]:is([aria-current],:hover,:active,:focus){--background-color: var(--secondary-hover);--border-color: var(--secondary-hover);--color: var(--secondary-inverse)}:is(button,input[type=submit],input[type=button],[role=button]).secondary:focus,input[type=reset]:focus{--box-shadow: var(--button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)), 0 0 0 var(--outline-width) var(--secondary-focus)}:is(button,input[type=submit],input[type=button],[role=button]).contrast{--background-color: var(--contrast);--border-color: var(--contrast);--color: var(--contrast-inverse)}:is(button,input[type=submit],input[type=button],[role=button]).contrast:is([aria-current],:hover,:active,:focus){--background-color: var(--contrast-hover);--border-color: var(--contrast-hover);--color: var(--contrast-inverse)}:is(button,input[type=submit],input[type=button],[role=button]).contrast:focus{--box-shadow: var(--button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)), 0 0 0 var(--outline-width) var(--contrast-focus)}:is(button,input[type=submit],input[type=button],[role=button]).outline,input[type=reset].outline{--background-color: transparent;--color: var(--primary)}:is(button,input[type=submit],input[type=button],[role=button]).outline:is([aria-current],:hover,:active,:focus),input[type=reset].outline:is([aria-current],:hover,:active,:focus){--background-color: transparent;--color: var(--primary-hover)}:is(button,input[type=submit],input[type=button],[role=button]).outline.secondary,input[type=reset].outline{--color: var(--secondary)}:is(button,input[type=submit],input[type=button],[role=button]).outline.secondary:is([aria-current],:hover,:active,:focus),input[type=reset].outline:is([aria-current],:hover,:active,:focus){--color: var(--secondary-hover)}:is(button,input[type=submit],input[type=button],[role=button]).outline.contrast{--color: var(--contrast)}:is(button,input[type=submit],input[type=button],[role=button]).outline.contrast:is([aria-current],:hover,:active,:focus){--color: var(--contrast-hover)}:where(button,[type=submit],[type=button],[type=reset],[role=button])[disabled],:where(fieldset[disabled]) :is(button,[type=submit],[type=button],[type=reset],[role=button]),a[role=button]:not([href]){opacity:.5;pointer-events:none}input,optgroup,select,textarea{margin:0;font-size:1rem;line-height:var(--line-height);font-family:inherit;letter-spacing:inherit}input{overflow:visible}select{text-transform:none}legend{max-width:100%;padding:0;color:inherit;white-space:normal}textarea{overflow:auto}[type=checkbox],[type=radio]{padding:0}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}::-moz-focus-inner{padding:0;border-style:none}:-moz-focusring{outline:none}:-moz-ui-invalid{box-shadow:none}::-ms-expand{display:none}[type=file],[type=range]{padding:0;border-width:0}input:not([type=checkbox],[type=radio],[type=range]){height:calc(1rem*var(--line-height) + var(--form-element-spacing-vertical)*2 + var(--border-width)*2)}fieldset{margin:0;margin-bottom:var(--spacing);padding:0;border:0}label,fieldset legend{display:block;margin-bottom:calc(var(--spacing)*.25);font-weight:var(--form-label-font-weight, var(--font-weight))}input:not([type=checkbox],[type=radio]),select,textarea{width:100%}input:not([type=checkbox],[type=radio],[type=range],[type=file]),select,textarea{appearance:none;padding:var(--form-element-spacing-vertical) var(--form-element-spacing-horizontal)}input,select,textarea{--background-color: var(--form-element-background-color);--border-color: var(--form-element-border-color);--color: var(--form-element-color);--box-shadow: none;border:var(--border-width) solid var(--border-color);border-radius:var(--border-radius);outline:none;background-color:var(--background-color);box-shadow:var(--box-shadow);color:var(--color);font-weight:var(--font-weight)}input:not([type=submit],[type=button],[type=reset],[type=checkbox],[type=radio],[readonly]):is(:active,:focus),:where(select,textarea):is(:active,:focus){--background-color: var(--form-element-active-background-color)}input:not([type=submit],[type=button],[type=reset],[role=switch],[readonly]):is(:active,:focus),:where(select,textarea):is(:active,:focus){--border-color: var(--form-element-active-border-color)}input:not([type=submit],[type=button],[type=reset],[type=range],[type=file],[readonly]):focus,select:focus,textarea:focus{--box-shadow: 0 0 0 var(--outline-width) var(--form-element-focus-color)}input:not([type=submit],[type=button],[type=reset])[disabled],select[disabled],textarea[disabled],:where(fieldset[disabled]) :is(input:not([type=submit],[type=button],[type=reset]),select,textarea){--background-color: var(--form-element-disabled-background-color);--border-color: var(--form-element-disabled-border-color);opacity:var(--form-element-disabled-opacity);pointer-events:none}:where(input,select,textarea):not([type=checkbox],[type=radio],[type=date],[type=datetime-local],[type=month],[type=time],[type=week])[aria-invalid]{padding-right:calc(var(--form-element-spacing-horizontal) + 1.5rem);padding-left:var(--form-element-spacing-horizontal);padding-inline-start:var(--form-element-spacing-horizontal);padding-inline-end:calc(var(--form-element-spacing-horizontal) + 1.5rem);background-position:center right .75rem;background-size:1rem auto;background-repeat:no-repeat}:where(input,select,textarea):not([type=checkbox],[type=radio],[type=date],[type=datetime-local],[type=month],[type=time],[type=week])[aria-invalid=false]{background-image:var(--icon-valid)}:where(input,select,textarea):not([type=checkbox],[type=radio],[type=date],[type=datetime-local],[type=month],[type=time],[type=week])[aria-invalid=true]{background-image:var(--icon-invalid)}:where(input,select,textarea)[aria-invalid=false]{--border-color: var(--form-element-valid-border-color)}:where(input,select,textarea)[aria-invalid=false]:is(:active,:focus){--border-color: var(--form-element-valid-active-border-color);--box-shadow: 0 0 0 var(--outline-width) var(--form-element-valid-focus-color)}:where(input,select,textarea)[aria-invalid=true]{--border-color: var(--form-element-invalid-border-color)}:where(input,select,textarea)[aria-invalid=true]:is(:active,:focus){--border-color: var(--form-element-invalid-active-border-color);--box-shadow: 0 0 0 var(--outline-width) var(--form-element-invalid-focus-color)}[dir=rtl] :where(input,select,textarea):not([type=checkbox],[type=radio]):is([aria-invalid],[aria-invalid=true],[aria-invalid=false]){background-position:center left .75rem}input::placeholder,input::-webkit-input-placeholder,textarea::placeholder,textarea::-webkit-input-placeholder,select:invalid{color:var(--form-element-placeholder-color);opacity:1}input:not([type=checkbox],[type=radio]),select,textarea{margin-bottom:var(--spacing)}select::-ms-expand{border:0;background-color:rgba(0,0,0,0)}select:not([multiple],[size]){padding-right:calc(var(--form-element-spacing-horizontal) + 1.5rem);padding-left:var(--form-element-spacing-horizontal);padding-inline-start:var(--form-element-spacing-horizontal);padding-inline-end:calc(var(--form-element-spacing-horizontal) + 1.5rem);background-image:var(--icon-chevron);background-position:center right .75rem;background-size:1rem auto;background-repeat:no-repeat}[dir=rtl] select:not([multiple],[size]){background-position:center left .75rem}:where(input,select,textarea,.grid)+small{display:block;width:100%;margin-top:calc(var(--spacing)*-.75);margin-bottom:var(--spacing);color:var(--muted-color)}label>:where(input,select,textarea){margin-top:calc(var(--spacing)*.25)}:where(table){width:100%;border-collapse:collapse;border-spacing:0;text-indent:0}th,td{padding:calc(var(--spacing)/2) var(--spacing);border-bottom:var(--border-width) solid var(--table-border-color);color:var(--color);font-weight:var(--font-weight);font-size:var(--font-size);text-align:left;text-align:start}tfoot th,tfoot td{border-top:var(--border-width) solid var(--table-border-color);border-bottom:0}table[role=grid] tbody tr:nth-child(odd){background-color:var(--table-row-stripped-background-color)}[aria-controls]{cursor:pointer}[aria-disabled=true],[disabled]{cursor:not-allowed}[aria-hidden=false][hidden]{display:initial}[aria-hidden=false][hidden]:not(:focus){clip:rect(0, 0, 0, 0);position:absolute}a,area,button,input,label,select,summary,textarea,[tabindex]{-ms-touch-action:manipulation}[dir=rtl]{direction:rtl}:where(nav li)::before{float:left;content:""}nav,nav ul{display:flex}nav{justify-content:space-between}nav ol,nav ul{align-items:center;margin-bottom:0;padding:0;list-style:none}nav ol:first-of-type,nav ul:first-of-type{margin-left:calc(var(--nav-element-spacing-horizontal)*-1)}nav ol:last-of-type,nav ul:last-of-type{margin-right:calc(var(--nav-element-spacing-horizontal)*-1)}nav li{display:inline-block;margin:0;padding:var(--nav-element-spacing-vertical) var(--nav-element-spacing-horizontal)}nav li>*{--spacing: 0}nav :where(a,[role=link]){display:inline-block;margin:calc(var(--nav-link-spacing-vertical)*-1) calc(var(--nav-link-spacing-horizontal)*-1);padding:var(--nav-link-spacing-vertical) var(--nav-link-spacing-horizontal);border-radius:var(--border-radius);text-decoration:none}nav :where(a,[role=link]):is([aria-current],:hover,:active,:focus){text-decoration:none}nav[aria-label=breadcrumb]{align-items:center;justify-content:start}nav[aria-label=breadcrumb] ul li:not(:first-child){margin-inline-start:var(--nav-link-spacing-horizontal)}nav[aria-label=breadcrumb] ul li:not(:last-child) ::after{position:absolute;width:calc(var(--nav-link-spacing-horizontal)*2);margin-inline-start:calc(var(--nav-link-spacing-horizontal)/2);content:"/";color:var(--muted-color);text-align:center}nav[aria-label=breadcrumb] a[aria-current]{background-color:rgba(0,0,0,0);color:inherit;text-decoration:none;pointer-events:none}nav [role=button]{margin-right:inherit;margin-left:inherit;padding:var(--nav-link-spacing-vertical) var(--nav-link-spacing-horizontal)}aside nav,aside ol,aside ul,aside li{display:block}aside li{padding:calc(var(--nav-element-spacing-vertical)*.5) var(--nav-element-spacing-horizontal)}aside li a{display:block}aside li [role=button]{margin:inherit}[dir=rtl] nav[aria-label=breadcrumb] ul li:not(:last-child) ::after{content:"\\"}.night{display:none}h1,h2,h3,h4,h5,h6{margin-bottom:.5em}a>button{color:#fff;text-decoration:underline}figure{overflow:clip}.blurb>button{margin-top:20px}@media (min-width: 1220px){.blurb{margin-right:6em;margin-left:6em}}img.screenshot{border:double 3px;border-radius:4px;max-width:500px;margin:.5em}img.logo{max-width:72px}html,body{box-sizing:border-box;height:100%}body>footer{margin:0px;padding:0px}.wrapper{min-height:100%;display:flex;flex-direction:column;box-sizing:border-box}.page-body{flex-grow:1}.page-footer{flex-grow:0;flex-shrink:0}footer{text-align:center;font-size:.8em}figure{text-align:center}.active{text-decoration:underline}.documentation{display:flex}.documentation .side-panel{margin-right:3em;min-width:200px;font-size:10px}.documentation .side-panel ul>li{list-style:none;font-weight:bold}.home-header{display:grid;grid-template-columns:50% 40%;grid-column-gap:20px;grid-row-gap:20px;justify-items:stretch;align-items:stretch}@media (max-width: 1220px){.home-header{grid-template-columns:none}}.home-wrapper{display:grid;grid-template-columns:33% 33% 33%;grid-column-gap:20px;grid-row-gap:20px;justify-items:stretch;align-items:stretch}@media (min-width: 1220px){.home-wrapper{margin-right:10em;margin-left:10em}}@media (max-width: 768px){.home-wrapper{grid-template-columns:none}}@media (prefers-color-scheme: dark){.diagram{background:grey}img.logo{filter:drop-shadow(0px 0px 30px #fff)}.day{display:none}.night{display:initial}figure{filter:drop-shadow(0px 0px 30px #fff)}} |
| 1269 | \ No newline at end of file |
| 1270 | diff --git a/www/public/sitemap.xml b/www/public/sitemap.xml |
| 1271 | index 4459071..1a013c7 100644 |
| 1272 | --- a/www/public/sitemap.xml |
| 1273 | +++ b/www/public/sitemap.xml |
| 1274 | @@ -7,6 +7,12 @@ |
| 1275 | <loc>https://ayllu-forge.org/docs/</loc> |
| 1276 | </url> |
| 1277 | <url> |
| 1278 | + <loc>https://ayllu-forge.org/docs/architecture/</loc> |
| 1279 | + </url> |
| 1280 | + <url> |
| 1281 | + <loc>https://ayllu-forge.org/docs/developers/</loc> |
| 1282 | + </url> |
| 1283 | + <url> |
| 1284 | <loc>https://ayllu-forge.org/docs/faq/</loc> |
| 1285 | </url> |
| 1286 | <url> |
| 1287 | diff --git a/www/sass/main.scss b/www/sass/main.scss |
| 1288 | index ef717ca..7496248 100644 |
| 1289 | --- a/www/sass/main.scss |
| 1290 | +++ b/www/sass/main.scss |
| 1291 | @@ -160,6 +160,11 @@ figure { |
| 1292 | } |
| 1293 | |
| 1294 | @media (prefers-color-scheme: dark) { |
| 1295 | + |
| 1296 | + .diagram { |
| 1297 | + background: grey; |
| 1298 | + } |
| 1299 | + |
| 1300 | img.logo { |
| 1301 | filter: drop-shadow(0px 0px 30px #fff); |
| 1302 | } |
| 1303 | diff --git a/www/static/assets/architecture.svg b/www/static/assets/architecture.svg |
| 1304 | new file mode 100644 |
| 1305 | index 0000000..2de2a37 |
| 1306 | --- /dev/null |
| 1307 | +++ b/www/static/assets/architecture.svg |
| 1308 | @@ -0,0 +1,598 @@ |
| 1309 | + <svg version="1.1" baseProfile="full" width="1938.0" height="655.0" viewbox="0 0 1938 655" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events"> |
| 1310 | + <desc > |
| 1311 | + [reverse_proxy] |
| 1312 | + |
| 1313 | + [reverse_proxy]<-->[Rudolfs (LFS API)] |
| 1314 | + |
| 1315 | + [reverse_proxy]<-->[ayllu-core | |
| 1316 | + [axum http interface] |
| 1317 | + [sites static hosting] |
| 1318 | + [capnp-rpc-server (job_server)] |
| 1319 | + [git repositories via libgit2] |
| 1320 | + [<database> sqlite] |
| 1321 | + ] |
| 1322 | + |
| 1323 | + [ayllu-core] <--> [ |
| 1324 | + ayllu-mail| |
| 1325 | + [capnp-rpc-server] |
| 1326 | + [mailpot] |
| 1327 | + [postfix] |
| 1328 | + [<database> sqlite] |
| 1329 | + ] <-- SMTP [<actor> contributor-2] |
| 1330 | + |
| 1331 | + [ayllu-core] <--> [ |
| 1332 | + ayllu-xmpp | |
| 1333 | + [capnp-rpc-server] |
| 1334 | + [chat interface/bot] |
| 1335 | + [<database> sqlite] |
| 1336 | + ] <-- XMPP [<actor> contributor-2] |
| 1337 | + |
| 1338 | + [ayllu-core] <--> [ |
| 1339 | + ayllu-build | |
| 1340 | + [capnp-rpc-server] |
| 1341 | + [<database> sqlite] |
| 1342 | + ] |
| 1343 | + |
| 1344 | + [ayllu-core] <--> [ayllu-shell] <-- SSH [<actor> contributor] |
| 1345 | + [ayllu-core] <--> [ayllu-cli] <-- [<actor> admin] |
| 1346 | + |
| 1347 | + |
| 1348 | + [ayllu-build]<-->[ |
| 1349 | + ayllu-builder-1 | |
| 1350 | + [<package>qemu-x86_64| capnp-rpc-server | executor] |
| 1351 | + ] |
| 1352 | + |
| 1353 | + [ayllu-build]<-->[ |
| 1354 | + ayllu-builder-2 | |
| 1355 | + [<package>qemu-aarch64| capnp-rpc-server | exectuor] |
| 1356 | + ] |
| 1357 | + |
| 1358 | + [ayllu-build]<-->[ |
| 1359 | + ayllu-builder-n | |
| 1360 | + [<package>lxc| capnp-rpc-server | executor] |
| 1361 | + ] --> [ayllu-core]</desc> |
| 1362 | + <g stroke-width="1.0" text-align="left" font="12pt Helvetica, Arial, sans-serif" font-size="12pt" font-family="Helvetica" font-weight="normal" font-style="normal"> |
| 1363 | + <g font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" stroke-width="3.0" stroke-linejoin="round" stroke-linecap="round" stroke="#33322E"> |
| 1364 | + <g stroke="transparent" fill="transparent"> |
| 1365 | + <rect x="0.0" y="0.0" height="655.0" width="1938.0" stroke="none"></rect> |
| 1366 | + </g> |
| 1367 | + <g transform="translate(8, 8)" fill="#33322E"> |
| 1368 | + <g transform="translate(20, 20)" fill="#33322E" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal"> |
| 1369 | + <g stroke-dasharray="6 6"> |
| 1370 | + <path d="M965.1 23.1 L713 51 L713 115.83333333333333 L713.0 115.8 " fill="none"></path> |
| 1371 | + </g> |
| 1372 | + <path d="M707.7 109.2 L713.0 115.8 L718.3 109.2 L713.0 122.5 Z"></path> |
| 1373 | + <path d="M959.1 29.2 L965.1 23.1 L957.9 18.6 L971.8 22.4 Z"></path> |
| 1374 | + <g stroke-dasharray="6 6"> |
| 1375 | + <path d="M1103.4 23.1 L1355.5 51 L1355.5 64.33333333333333 L1355.5 64.3 " fill="none"></path> |
| 1376 | + </g> |
| 1377 | + <path d="M1350.2 57.7 L1355.5 64.3 L1360.8 57.7 L1355.5 71.0 Z"></path> |
| 1378 | + <path d="M1110.6 18.6 L1103.4 23.1 L1109.4 29.2 L1096.8 22.4 Z"></path> |
| 1379 | + <g stroke-dasharray="6 6"> |
| 1380 | + <path d="M822.4 180.4 L261 225 L261 238.33333333333334 L261.0 238.3 " fill="none"></path> |
| 1381 | + </g> |
| 1382 | + <path d="M255.7 231.7 L261.0 238.3 L266.3 231.7 L261.0 245.0 Z"></path> |
| 1383 | + <path d="M816.1 186.2 L822.4 180.4 L815.3 175.6 L829.0 179.9 Z"></path> |
| 1384 | + <text x="758.0" y="489.4" stroke="none">SMTP</text> |
| 1385 | + <g stroke-dasharray="6 6"> |
| 1386 | + <path d="M261.0 385.7 L261 399 L750 497.4263494967978 L750.0 497.4 " fill="none"></path> |
| 1387 | + </g> |
| 1388 | + <path d="M266.3 392.3 L261.0 385.7 L255.7 392.3 L261.0 379.0 Z"></path> |
| 1389 | + <g stroke-dasharray="6 6"> |
| 1390 | + <path d="M926.9 206.0 L807.5 225 L807.5 238.33333333333334 L807.5 238.3 " fill="none"></path> |
| 1391 | + </g> |
| 1392 | + <path d="M802.2 231.7 L807.5 238.3 L812.8 231.7 L807.5 245.0 Z"></path> |
| 1393 | + <path d="M921.1 212.4 L926.9 206.0 L919.5 201.8 L933.5 205.0 Z"></path> |
| 1394 | + <text x="754.7" y="473.5" stroke="none">XMPP</text> |
| 1395 | + <g stroke-dasharray="6 6"> |
| 1396 | + <path d="M807.5 385.7 L807.5 399 L807.5 481.5 L807.5 481.5 " fill="none"></path> |
| 1397 | + </g> |
| 1398 | + <path d="M812.8 392.3 L807.5 385.7 L802.2 392.3 L807.5 379.0 Z"></path> |
| 1399 | + <g stroke-dasharray="6 6"> |
| 1400 | + <path d="M1276.2 209.5 L1259 225 L1259 238.33333333333334 L1259.0 238.3 " fill="none"></path> |
| 1401 | + </g> |
| 1402 | + <path d="M1253.7 231.7 L1259.0 238.3 L1264.3 231.7 L1259.0 245.0 Z"></path> |
| 1403 | + <path d="M1274.9 217.9 L1276.2 209.5 L1267.7 210.0 L1281.2 205.0 Z"></path> |
| 1404 | + <g stroke-dasharray="6 6"> |
| 1405 | + <path d="M1595.6 206.8 L1659 225 L1659 289.8333333333333 L1659.0 289.8 " fill="none"></path> |
| 1406 | + </g> |
| 1407 | + <path d="M1653.7 283.2 L1659.0 289.8 L1664.3 283.2 L1659.0 296.5 Z"></path> |
| 1408 | + <path d="M1603.5 203.5 L1595.6 206.8 L1600.6 213.8 L1589.2 205.0 Z"></path> |
| 1409 | + <text x="1618.3" y="473.5" stroke="none">SSH</text> |
| 1410 | + <g stroke-dasharray="6 6"> |
| 1411 | + <path d="M1659.0 334.2 L1659 399 L1659 481.5 L1659.0 481.5 " fill="none"></path> |
| 1412 | + </g> |
| 1413 | + <path d="M1664.3 340.8 L1659.0 334.2 L1653.7 340.8 L1659.0 327.5 Z"></path> |
| 1414 | + <g stroke-dasharray="6 6"> |
| 1415 | + <path d="M1691.6 206.3 L1783.5 225 L1783.5 289.8333333333333 L1783.5 289.8 " fill="none"></path> |
| 1416 | + </g> |
| 1417 | + <path d="M1778.2 283.2 L1783.5 289.8 L1788.8 283.2 L1783.5 296.5 Z"></path> |
| 1418 | + <path d="M1699.2 202.4 L1691.6 206.3 L1697.1 212.9 L1685.1 205.0 Z"></path> |
| 1419 | + <g stroke-dasharray="6 6"> |
| 1420 | + <path d="M1783.5 334.2 L1783.5 399 L1783.5 481.5 L1783.5 481.5 " fill="none"></path> |
| 1421 | + </g> |
| 1422 | + <path d="M1788.8 340.8 L1783.5 334.2 L1778.2 340.8 L1783.5 327.5 Z"></path> |
| 1423 | + <g stroke-dasharray="6 6"> |
| 1424 | + <path d="M1102.2 365.9 L1006 399 L1006 412.3333333333333 L1006.0 412.3 " fill="none"></path> |
| 1425 | + </g> |
| 1426 | + <path d="M1000.7 405.7 L1006.0 412.3 L1011.3 405.7 L1006.0 419.0 Z"></path> |
| 1427 | + <path d="M1097.6 373.1 L1102.2 365.9 L1094.2 363.0 L1108.5 363.8 Z"></path> |
| 1428 | + <g stroke-dasharray="6 6"> |
| 1429 | + <path d="M1242.1 385.5 L1239 399 L1239 412.3333333333333 L1239.0 412.3 " fill="none"></path> |
| 1430 | + </g> |
| 1431 | + <path d="M1233.7 405.7 L1239.0 412.3 L1244.3 405.7 L1239.0 419.0 Z"></path> |
| 1432 | + <path d="M1245.8 393.2 L1242.1 385.5 L1235.4 390.8 L1243.6 379.0 Z"></path> |
| 1433 | + <g stroke-dasharray="6 6"> |
| 1434 | + <path d="M1354.1 383.0 L1375.5 399 L1388.6489765726408 413.9884707045646 L1388.6 414.0 " fill="none"></path> |
| 1435 | + </g> |
| 1436 | + <path d="M1380.2 412.5 L1388.6 414.0 L1388.3 405.5 L1393.0 419.0 Z"></path> |
| 1437 | + <path d="M1362.6 382.7 L1354.1 383.0 L1356.2 391.3 L1348.7 379.0 Z"></path> |
| 1438 | + <g stroke-dasharray="6 6"> |
| 1439 | + <path d="M1512.9 419.0 L1522 399 L1522 312 L1522 312 L1522 225 L1522 225 L1489.6328041618644 208.08741118367695 L1489.6 208.1 " fill="none"></path> |
| 1440 | + </g> |
| 1441 | + <path d="M1498.0 206.4 L1489.6 208.1 L1493.1 215.9 L1483.7 205.0 Z"></path> |
| 1442 | + <g data-name="reverse_proxy"> |
| 1443 | + <g fill="#eee8d5" stroke="#33322E" data-name="reverse_proxy"> |
| 1444 | + <rect x="971.8" y="0.0" height="31.0" width="125.0" data-name="reverse_proxy"></rect> |
| 1445 | + </g> |
| 1446 | + <g transform="translate(971.75, 0)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="reverse_proxy"> |
| 1447 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="reverse_proxy"> |
| 1448 | + <text x="54.5" y="13.5" stroke="none" text-anchor="middle" data-name="reverse_proxy">reverse_proxy</text> |
| 1449 | + |
| 1450 | + </g> |
| 1451 | + </g> |
| 1452 | + </g> |
| 1453 | + <g data-name="Rudolfs (LFS API)"> |
| 1454 | + <g fill="#eee8d5" stroke="#33322E" data-name="Rudolfs (LFS API)"> |
| 1455 | + <rect x="637.0" y="122.5" height="31.0" width="152.0" data-name="Rudolfs (LFS API)"></rect> |
| 1456 | + </g> |
| 1457 | + <g transform="translate(637, 122.5)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="Rudolfs (LFS API)"> |
| 1458 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="Rudolfs (LFS API)"> |
| 1459 | + <text x="68.0" y="13.5" stroke="none" text-anchor="middle" data-name="Rudolfs (LFS API)">Rudolfs (LFS API)</text> |
| 1460 | + |
| 1461 | + </g> |
| 1462 | + </g> |
| 1463 | + </g> |
| 1464 | + <g data-name="ayllu-core"> |
| 1465 | + <g fill="#eee8d5" stroke="#33322E" data-name="ayllu-core"> |
| 1466 | + <rect x="829.0" y="71.0" height="134.0" width="1053.0" data-name="ayllu-core"></rect> |
| 1467 | + <path d="M829.0 102.0 L1882.0 102.0" fill="none" data-name="ayllu-core"></path> |
| 1468 | + </g> |
| 1469 | + <g transform="translate(829, 71)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="ayllu-core"> |
| 1470 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="ayllu-core"> |
| 1471 | + <text x="518.5" y="13.5" stroke="none" text-anchor="middle" data-name="ayllu-core">ayllu-core</text> |
| 1472 | + |
| 1473 | + </g> |
| 1474 | + </g> |
| 1475 | + <g transform="translate(829, 102)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="ayllu-core"> |
| 1476 | + <g transform="translate(8, 8)" fill="#33322E" data-name="ayllu-core"> |
| 1477 | + <g transform="translate(20, 20)" data-name="ayllu-core"> |
| 1478 | + <g data-name="axum http interface"> |
| 1479 | + <g fill="#fdf6e3" stroke="#33322E" data-name="axum http interface"> |
| 1480 | + <rect x="0.0" y="8.0" height="31.0" width="164.0" data-name="axum http interface"></rect> |
| 1481 | + </g> |
| 1482 | + <g transform="translate(0, 8)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="axum http interface"> |
| 1483 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="axum http interface"> |
| 1484 | + <text x="74.0" y="13.5" stroke="none" text-anchor="middle" data-name="axum http interface">axum http interface</text> |
| 1485 | + |
| 1486 | + </g> |
| 1487 | + </g> |
| 1488 | + </g> |
| 1489 | + <g data-name="sites static hosting"> |
| 1490 | + <g fill="#fdf6e3" stroke="#33322E" data-name="sites static hosting"> |
| 1491 | + <rect x="204.0" y="8.0" height="31.0" width="161.0" data-name="sites static hosting"></rect> |
| 1492 | + </g> |
| 1493 | + <g transform="translate(204, 8)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="sites static hosting"> |
| 1494 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="sites static hosting"> |
| 1495 | + <text x="72.5" y="13.5" stroke="none" text-anchor="middle" data-name="sites static hosting">sites static hosting</text> |
| 1496 | + |
| 1497 | + </g> |
| 1498 | + </g> |
| 1499 | + </g> |
| 1500 | + <g data-name="capnp-rpc-server (job_server)"> |
| 1501 | + <g fill="#fdf6e3" stroke="#33322E" data-name="capnp-rpc-server (job_server)"> |
| 1502 | + <rect x="405.0" y="8.0" height="31.0" width="244.0" data-name="capnp-rpc-server (job_server)"></rect> |
| 1503 | + </g> |
| 1504 | + <g transform="translate(405, 8)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="capnp-rpc-server (job_server)"> |
| 1505 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="capnp-rpc-server (job_server)"> |
| 1506 | + <text x="114.0" y="13.5" stroke="none" text-anchor="middle" data-name="capnp-rpc-server (job_server)">capnp-rpc-server (job_server)</text> |
| 1507 | + |
| 1508 | + </g> |
| 1509 | + </g> |
| 1510 | + </g> |
| 1511 | + <g data-name="git repositories via libgit2"> |
| 1512 | + <g fill="#fdf6e3" stroke="#33322E" data-name="git repositories via libgit2"> |
| 1513 | + <rect x="689.0" y="8.0" height="31.0" width="210.0" data-name="git repositories via libgit2"></rect> |
| 1514 | + </g> |
| 1515 | + <g transform="translate(689, 8)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="git repositories via libgit2"> |
| 1516 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="git repositories via libgit2"> |
| 1517 | + <text x="97.0" y="13.5" stroke="none" text-anchor="middle" data-name="git repositories via libgit2">git repositories via libgit2</text> |
| 1518 | + |
| 1519 | + </g> |
| 1520 | + </g> |
| 1521 | + </g> |
| 1522 | + <g data-name="sqlite"> |
| 1523 | + <g fill="#fdf6e3" stroke="#33322E" data-name="sqlite"> |
| 1524 | + <rect x="939.0" y="8.0" height="31.0" width="58.0" stroke="none" data-name="sqlite"></rect> |
| 1525 | + <path d="M939.0 8.0 L939.0 39.0" fill="none" data-name="sqlite"></path> |
| 1526 | + <path d="M997.0 8.0 L997.0 39.0" fill="none" data-name="sqlite"></path> |
| 1527 | + <ellipse cx="968.0" cy="8.0" rx="29.0" ry="6.0" data-name="sqlite"></ellipse> |
| 1528 | + <path d="M997.0 39.0 L997.0 39.3 L996.9 39.6 L996.7 39.9 L996.4 40.2 L996.1 40.5 L995.7 40.8 L995.3 41.1 L994.7 41.3 L994.1 41.6 L993.5 41.9 L992.7 42.1 L992.0 42.4 L991.1 42.6 L990.2 42.9 L989.3 43.1 L988.2 43.3 L987.2 43.5 L986.1 43.7 L984.9 43.9 L983.7 44.0 L982.5 44.2 L981.2 44.3 L979.9 44.5 L978.6 44.6 L977.2 44.7 L975.9 44.8 L974.5 44.8 L973.0 44.9 L971.6 45.0 L970.2 45.0 L968.7 45.0 L967.3 45.0 L965.8 45.0 L964.4 45.0 L963.0 44.9 L961.5 44.8 L960.1 44.8 L958.8 44.7 L957.4 44.6 L956.1 44.5 L954.8 44.3 L953.5 44.2 L952.3 44.0 L951.1 43.9 L949.9 43.7 L948.8 43.5 L947.8 43.3 L946.7 43.1 L945.8 42.9 L944.9 42.6 L944.0 42.4 L943.3 42.1 L942.5 41.9 L941.9 41.6 L941.3 41.3 L940.7 41.1 L940.3 40.8 L939.9 40.5 L939.6 40.2 L939.3 39.9 L939.1 39.6 L939.0 39.3 L939.0 39.0" data-name="sqlite"></path> |
| 1529 | + </g> |
| 1530 | + <g transform="translate(939, 12)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="sqlite"> |
| 1531 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="sqlite"> |
| 1532 | + <text x="21.0" y="13.5" stroke="none" text-anchor="middle" data-name="sqlite">sqlite</text> |
| 1533 | + |
| 1534 | + </g> |
| 1535 | + </g> |
| 1536 | + </g> |
| 1537 | + </g> |
| 1538 | + </g> |
| 1539 | + </g> |
| 1540 | + </g> |
| 1541 | + <g data-name="ayllu-mail"> |
| 1542 | + <g fill="#eee8d5" stroke="#33322E" data-name="ayllu-mail"> |
| 1543 | + <rect x="0.0" y="245.0" height="134.0" width="522.0" data-name="ayllu-mail"></rect> |
| 1544 | + <path d="M0.0 276.0 L522.0 276.0" fill="none" data-name="ayllu-mail"></path> |
| 1545 | + </g> |
| 1546 | + <g transform="translate(0, 245)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="ayllu-mail"> |
| 1547 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="ayllu-mail"> |
| 1548 | + <text x="253.0" y="13.5" stroke="none" text-anchor="middle" data-name="ayllu-mail">ayllu-mail</text> |
| 1549 | + |
| 1550 | + </g> |
| 1551 | + </g> |
| 1552 | + <g transform="translate(0, 276)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="ayllu-mail"> |
| 1553 | + <g transform="translate(8, 8)" fill="#33322E" data-name="ayllu-mail"> |
| 1554 | + <g transform="translate(20, 20)" data-name="ayllu-mail"> |
| 1555 | + <g data-name="capnp-rpc-server"> |
| 1556 | + <g fill="#fdf6e3" stroke="#33322E" data-name="capnp-rpc-server"> |
| 1557 | + <rect x="0.0" y="8.0" height="31.0" width="147.0" data-name="capnp-rpc-server"></rect> |
| 1558 | + </g> |
| 1559 | + <g transform="translate(0, 8)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="capnp-rpc-server"> |
| 1560 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="capnp-rpc-server"> |
| 1561 | + <text x="65.5" y="13.5" stroke="none" text-anchor="middle" data-name="capnp-rpc-server">capnp-rpc-server</text> |
| 1562 | + |
| 1563 | + </g> |
| 1564 | + </g> |
| 1565 | + </g> |
| 1566 | + <g data-name="mailpot"> |
| 1567 | + <g fill="#fdf6e3" stroke="#33322E" data-name="mailpot"> |
| 1568 | + <rect x="187.0" y="8.0" height="31.0" width="73.0" data-name="mailpot"></rect> |
| 1569 | + </g> |
| 1570 | + <g transform="translate(187, 8)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="mailpot"> |
| 1571 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="mailpot"> |
| 1572 | + <text x="28.5" y="13.5" stroke="none" text-anchor="middle" data-name="mailpot">mailpot</text> |
| 1573 | + |
| 1574 | + </g> |
| 1575 | + </g> |
| 1576 | + </g> |
| 1577 | + <g data-name="postfix"> |
| 1578 | + <g fill="#fdf6e3" stroke="#33322E" data-name="postfix"> |
| 1579 | + <rect x="300.0" y="8.0" height="31.0" width="68.0" data-name="postfix"></rect> |
| 1580 | + </g> |
| 1581 | + <g transform="translate(300, 8)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="postfix"> |
| 1582 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="postfix"> |
| 1583 | + <text x="26.0" y="13.5" stroke="none" text-anchor="middle" data-name="postfix">postfix</text> |
| 1584 | + |
| 1585 | + </g> |
| 1586 | + </g> |
| 1587 | + </g> |
| 1588 | + <g data-name="sqlite"> |
| 1589 | + <g fill="#fdf6e3" stroke="#33322E" data-name="sqlite"> |
| 1590 | + <rect x="408.0" y="8.0" height="31.0" width="58.0" stroke="none" data-name="sqlite"></rect> |
| 1591 | + <path d="M408.0 8.0 L408.0 39.0" fill="none" data-name="sqlite"></path> |
| 1592 | + <path d="M466.0 8.0 L466.0 39.0" fill="none" data-name="sqlite"></path> |
| 1593 | + <ellipse cx="437.0" cy="8.0" rx="29.0" ry="6.0" data-name="sqlite"></ellipse> |
| 1594 | + <path d="M466.0 39.0 L466.0 39.3 L465.9 39.6 L465.7 39.9 L465.4 40.2 L465.1 40.5 L464.7 40.8 L464.3 41.1 L463.7 41.3 L463.1 41.6 L462.5 41.9 L461.7 42.1 L461.0 42.4 L460.1 42.6 L459.2 42.9 L458.3 43.1 L457.2 43.3 L456.2 43.5 L455.1 43.7 L453.9 43.9 L452.7 44.0 L451.5 44.2 L450.2 44.3 L448.9 44.5 L447.6 44.6 L446.2 44.7 L444.9 44.8 L443.5 44.8 L442.0 44.9 L440.6 45.0 L439.2 45.0 L437.7 45.0 L436.3 45.0 L434.8 45.0 L433.4 45.0 L432.0 44.9 L430.5 44.8 L429.1 44.8 L427.8 44.7 L426.4 44.6 L425.1 44.5 L423.8 44.3 L422.5 44.2 L421.3 44.0 L420.1 43.9 L418.9 43.7 L417.8 43.5 L416.8 43.3 L415.7 43.1 L414.8 42.9 L413.9 42.6 L413.0 42.4 L412.3 42.1 L411.5 41.9 L410.9 41.6 L410.3 41.3 L409.7 41.1 L409.3 40.8 L408.9 40.5 L408.6 40.2 L408.3 39.9 L408.1 39.6 L408.0 39.3 L408.0 39.0" data-name="sqlite"></path> |
| 1595 | + </g> |
| 1596 | + <g transform="translate(408, 12)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="sqlite"> |
| 1597 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="sqlite"> |
| 1598 | + <text x="21.0" y="13.5" stroke="none" text-anchor="middle" data-name="sqlite">sqlite</text> |
| 1599 | + |
| 1600 | + </g> |
| 1601 | + </g> |
| 1602 | + </g> |
| 1603 | + </g> |
| 1604 | + </g> |
| 1605 | + </g> |
| 1606 | + </g> |
| 1607 | + <g data-name="contributor-2"> |
| 1608 | + <g fill="#eee8d5" stroke="#33322E" data-name="contributor-2"> |
| 1609 | + <circle r="4.0" cx="807.5" cy="493.5" data-name="contributor-2"></circle> |
| 1610 | + <path d="M807.5 497.5 L807.5 505.5" fill="none" data-name="contributor-2"></path> |
| 1611 | + <path d="M803.5 501.5 L811.5 501.5" fill="none" data-name="contributor-2"></path> |
| 1612 | + <path d="M803.5 509.5 L807.5 505.5 L811.5 509.5" fill="none" data-name="contributor-2"></path> |
| 1613 | + </g> |
| 1614 | + <g transform="translate(750, 505.5)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="contributor-2"> |
| 1615 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="contributor-2"> |
| 1616 | + <text x="49.5" y="13.5" stroke="none" text-anchor="middle" data-name="contributor-2">contributor-2</text> |
| 1617 | + |
| 1618 | + </g> |
| 1619 | + </g> |
| 1620 | + </g> |
| 1621 | + <g data-name="ayllu-xmpp"> |
| 1622 | + <g fill="#eee8d5" stroke="#33322E" data-name="ayllu-xmpp"> |
| 1623 | + <rect x="562.0" y="245.0" height="134.0" width="491.0" data-name="ayllu-xmpp"></rect> |
| 1624 | + <path d="M562.0 276.0 L1053.0 276.0" fill="none" data-name="ayllu-xmpp"></path> |
| 1625 | + </g> |
| 1626 | + <g transform="translate(562, 245)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="ayllu-xmpp"> |
| 1627 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="ayllu-xmpp"> |
| 1628 | + <text x="237.5" y="13.5" stroke="none" text-anchor="middle" data-name="ayllu-xmpp">ayllu-xmpp</text> |
| 1629 | + |
| 1630 | + </g> |
| 1631 | + </g> |
| 1632 | + <g transform="translate(562, 276)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="ayllu-xmpp"> |
| 1633 | + <g transform="translate(8, 8)" fill="#33322E" data-name="ayllu-xmpp"> |
| 1634 | + <g transform="translate(20, 20)" data-name="ayllu-xmpp"> |
| 1635 | + <g data-name="capnp-rpc-server"> |
| 1636 | + <g fill="#fdf6e3" stroke="#33322E" data-name="capnp-rpc-server"> |
| 1637 | + <rect x="0.0" y="8.0" height="31.0" width="147.0" data-name="capnp-rpc-server"></rect> |
| 1638 | + </g> |
| 1639 | + <g transform="translate(0, 8)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="capnp-rpc-server"> |
| 1640 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="capnp-rpc-server"> |
| 1641 | + <text x="65.5" y="13.5" stroke="none" text-anchor="middle" data-name="capnp-rpc-server">capnp-rpc-server</text> |
| 1642 | + |
| 1643 | + </g> |
| 1644 | + </g> |
| 1645 | + </g> |
| 1646 | + <g data-name="chat interface/bot"> |
| 1647 | + <g fill="#fdf6e3" stroke="#33322E" data-name="chat interface/bot"> |
| 1648 | + <rect x="187.0" y="8.0" height="31.0" width="150.0" data-name="chat interface/bot"></rect> |
| 1649 | + </g> |
| 1650 | + <g transform="translate(187, 8)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="chat interface/bot"> |
| 1651 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="chat interface/bot"> |
| 1652 | + <text x="67.0" y="13.5" stroke="none" text-anchor="middle" data-name="chat interface/bot">chat interface/bot</text> |
| 1653 | + |
| 1654 | + </g> |
| 1655 | + </g> |
| 1656 | + </g> |
| 1657 | + <g data-name="sqlite"> |
| 1658 | + <g fill="#fdf6e3" stroke="#33322E" data-name="sqlite"> |
| 1659 | + <rect x="377.0" y="8.0" height="31.0" width="58.0" stroke="none" data-name="sqlite"></rect> |
| 1660 | + <path d="M377.0 8.0 L377.0 39.0" fill="none" data-name="sqlite"></path> |
| 1661 | + <path d="M435.0 8.0 L435.0 39.0" fill="none" data-name="sqlite"></path> |
| 1662 | + <ellipse cx="406.0" cy="8.0" rx="29.0" ry="6.0" data-name="sqlite"></ellipse> |
| 1663 | + <path d="M435.0 39.0 L435.0 39.3 L434.9 39.6 L434.7 39.9 L434.4 40.2 L434.1 40.5 L433.7 40.8 L433.3 41.1 L432.7 41.3 L432.1 41.6 L431.5 41.9 L430.7 42.1 L430.0 42.4 L429.1 42.6 L428.2 42.9 L427.3 43.1 L426.2 43.3 L425.2 43.5 L424.1 43.7 L422.9 43.9 L421.7 44.0 L420.5 44.2 L419.2 44.3 L417.9 44.5 L416.6 44.6 L415.2 44.7 L413.9 44.8 L412.5 44.8 L411.0 44.9 L409.6 45.0 L408.2 45.0 L406.7 45.0 L405.3 45.0 L403.8 45.0 L402.4 45.0 L401.0 44.9 L399.5 44.8 L398.1 44.8 L396.8 44.7 L395.4 44.6 L394.1 44.5 L392.8 44.3 L391.5 44.2 L390.3 44.0 L389.1 43.9 L387.9 43.7 L386.8 43.5 L385.8 43.3 L384.7 43.1 L383.8 42.9 L382.9 42.6 L382.0 42.4 L381.3 42.1 L380.5 41.9 L379.9 41.6 L379.3 41.3 L378.7 41.1 L378.3 40.8 L377.9 40.5 L377.6 40.2 L377.3 39.9 L377.1 39.6 L377.0 39.3 L377.0 39.0" data-name="sqlite"></path> |
| 1664 | + </g> |
| 1665 | + <g transform="translate(377, 12)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="sqlite"> |
| 1666 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="sqlite"> |
| 1667 | + <text x="21.0" y="13.5" stroke="none" text-anchor="middle" data-name="sqlite">sqlite</text> |
| 1668 | + |
| 1669 | + </g> |
| 1670 | + </g> |
| 1671 | + </g> |
| 1672 | + </g> |
| 1673 | + </g> |
| 1674 | + </g> |
| 1675 | + </g> |
| 1676 | + <g data-name="ayllu-build"> |
| 1677 | + <g fill="#eee8d5" stroke="#33322E" data-name="ayllu-build"> |
| 1678 | + <rect x="1108.5" y="245.0" height="134.0" width="301.0" data-name="ayllu-build"></rect> |
| 1679 | + <path d="M1108.5 276.0 L1409.5 276.0" fill="none" data-name="ayllu-build"></path> |
| 1680 | + </g> |
| 1681 | + <g transform="translate(1108.5, 245)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="ayllu-build"> |
| 1682 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="ayllu-build"> |
| 1683 | + <text x="142.5" y="13.5" stroke="none" text-anchor="middle" data-name="ayllu-build">ayllu-build</text> |
| 1684 | + |
| 1685 | + </g> |
| 1686 | + </g> |
| 1687 | + <g transform="translate(1108.5, 276)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="ayllu-build"> |
| 1688 | + <g transform="translate(8, 8)" fill="#33322E" data-name="ayllu-build"> |
| 1689 | + <g transform="translate(20, 20)" data-name="ayllu-build"> |
| 1690 | + <g data-name="capnp-rpc-server"> |
| 1691 | + <g fill="#fdf6e3" stroke="#33322E" data-name="capnp-rpc-server"> |
| 1692 | + <rect x="0.0" y="8.0" height="31.0" width="147.0" data-name="capnp-rpc-server"></rect> |
| 1693 | + </g> |
| 1694 | + <g transform="translate(0, 8)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="capnp-rpc-server"> |
| 1695 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="capnp-rpc-server"> |
| 1696 | + <text x="65.5" y="13.5" stroke="none" text-anchor="middle" data-name="capnp-rpc-server">capnp-rpc-server</text> |
| 1697 | + |
| 1698 | + </g> |
| 1699 | + </g> |
| 1700 | + </g> |
| 1701 | + <g data-name="sqlite"> |
| 1702 | + <g fill="#fdf6e3" stroke="#33322E" data-name="sqlite"> |
| 1703 | + <rect x="187.0" y="8.0" height="31.0" width="58.0" stroke="none" data-name="sqlite"></rect> |
| 1704 | + <path d="M187.0 8.0 L187.0 39.0" fill="none" data-name="sqlite"></path> |
| 1705 | + <path d="M245.0 8.0 L245.0 39.0" fill="none" data-name="sqlite"></path> |
| 1706 | + <ellipse cx="216.0" cy="8.0" rx="29.0" ry="6.0" data-name="sqlite"></ellipse> |
| 1707 | + <path d="M245.0 39.0 L245.0 39.3 L244.9 39.6 L244.7 39.9 L244.4 40.2 L244.1 40.5 L243.7 40.8 L243.3 41.1 L242.7 41.3 L242.1 41.6 L241.5 41.9 L240.7 42.1 L240.0 42.4 L239.1 42.6 L238.2 42.9 L237.3 43.1 L236.2 43.3 L235.2 43.5 L234.1 43.7 L232.9 43.9 L231.7 44.0 L230.5 44.2 L229.2 44.3 L227.9 44.5 L226.6 44.6 L225.2 44.7 L223.9 44.8 L222.5 44.8 L221.0 44.9 L219.6 45.0 L218.2 45.0 L216.7 45.0 L215.3 45.0 L213.8 45.0 L212.4 45.0 L211.0 44.9 L209.5 44.8 L208.1 44.8 L206.8 44.7 L205.4 44.6 L204.1 44.5 L202.8 44.3 L201.5 44.2 L200.3 44.0 L199.1 43.9 L197.9 43.7 L196.8 43.5 L195.8 43.3 L194.7 43.1 L193.8 42.9 L192.9 42.6 L192.0 42.4 L191.3 42.1 L190.5 41.9 L189.9 41.6 L189.3 41.3 L188.7 41.1 L188.3 40.8 L187.9 40.5 L187.6 40.2 L187.3 39.9 L187.1 39.6 L187.0 39.3 L187.0 39.0" data-name="sqlite"></path> |
| 1708 | + </g> |
| 1709 | + <g transform="translate(187, 12)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="sqlite"> |
| 1710 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="sqlite"> |
| 1711 | + <text x="21.0" y="13.5" stroke="none" text-anchor="middle" data-name="sqlite">sqlite</text> |
| 1712 | + |
| 1713 | + </g> |
| 1714 | + </g> |
| 1715 | + </g> |
| 1716 | + </g> |
| 1717 | + </g> |
| 1718 | + </g> |
| 1719 | + </g> |
| 1720 | + <g data-name="ayllu-shell"> |
| 1721 | + <g fill="#eee8d5" stroke="#33322E" data-name="ayllu-shell"> |
| 1722 | + <rect x="1612.0" y="296.5" height="31.0" width="94.0" data-name="ayllu-shell"></rect> |
| 1723 | + </g> |
| 1724 | + <g transform="translate(1612, 296.5)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="ayllu-shell"> |
| 1725 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="ayllu-shell"> |
| 1726 | + <text x="39.0" y="13.5" stroke="none" text-anchor="middle" data-name="ayllu-shell">ayllu-shell</text> |
| 1727 | + |
| 1728 | + </g> |
| 1729 | + </g> |
| 1730 | + </g> |
| 1731 | + <g data-name="contributor"> |
| 1732 | + <g fill="#eee8d5" stroke="#33322E" data-name="contributor"> |
| 1733 | + <circle r="4.0" cx="1659.0" cy="493.5" data-name="contributor"></circle> |
| 1734 | + <path d="M1659.0 497.5 L1659.0 505.5" fill="none" data-name="contributor"></path> |
| 1735 | + <path d="M1655.0 501.5 L1663.0 501.5" fill="none" data-name="contributor"></path> |
| 1736 | + <path d="M1655.0 509.5 L1659.0 505.5 L1663.0 509.5" fill="none" data-name="contributor"></path> |
| 1737 | + </g> |
| 1738 | + <g transform="translate(1608.5, 505.5)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="contributor"> |
| 1739 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="contributor"> |
| 1740 | + <text x="42.5" y="13.5" stroke="none" text-anchor="middle" data-name="contributor">contributor</text> |
| 1741 | + |
| 1742 | + </g> |
| 1743 | + </g> |
| 1744 | + </g> |
| 1745 | + <g data-name="ayllu-cli"> |
| 1746 | + <g fill="#eee8d5" stroke="#33322E" data-name="ayllu-cli"> |
| 1747 | + <rect x="1746.0" y="296.5" height="31.0" width="75.0" data-name="ayllu-cli"></rect> |
| 1748 | + </g> |
| 1749 | + <g transform="translate(1746, 296.5)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="ayllu-cli"> |
| 1750 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="ayllu-cli"> |
| 1751 | + <text x="29.5" y="13.5" stroke="none" text-anchor="middle" data-name="ayllu-cli">ayllu-cli</text> |
| 1752 | + |
| 1753 | + </g> |
| 1754 | + </g> |
| 1755 | + </g> |
| 1756 | + <g data-name="admin"> |
| 1757 | + <g fill="#eee8d5" stroke="#33322E" data-name="admin"> |
| 1758 | + <circle r="4.0" cx="1783.5" cy="493.5" data-name="admin"></circle> |
| 1759 | + <path d="M1783.5 497.5 L1783.5 505.5" fill="none" data-name="admin"></path> |
| 1760 | + <path d="M1779.5 501.5 L1787.5 501.5" fill="none" data-name="admin"></path> |
| 1761 | + <path d="M1779.5 509.5 L1783.5 505.5 L1787.5 509.5" fill="none" data-name="admin"></path> |
| 1762 | + </g> |
| 1763 | + <g transform="translate(1752, 505.5)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="admin"> |
| 1764 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="admin"> |
| 1765 | + <text x="23.5" y="13.5" stroke="none" text-anchor="middle" data-name="admin">admin</text> |
| 1766 | + |
| 1767 | + </g> |
| 1768 | + </g> |
| 1769 | + </g> |
| 1770 | + <g data-name="ayllu-builder-1"> |
| 1771 | + <g fill="#eee8d5" stroke="#33322E" data-name="ayllu-builder-1"> |
| 1772 | + <rect x="909.5" y="419.0" height="180.0" width="193.0" data-name="ayllu-builder-1"></rect> |
| 1773 | + <path d="M909.5 450.0 L1102.5 450.0" fill="none" data-name="ayllu-builder-1"></path> |
| 1774 | + </g> |
| 1775 | + <g transform="translate(909.5, 419)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="ayllu-builder-1"> |
| 1776 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="ayllu-builder-1"> |
| 1777 | + <text x="88.5" y="13.5" stroke="none" text-anchor="middle" data-name="ayllu-builder-1">ayllu-builder-1</text> |
| 1778 | + |
| 1779 | + </g> |
| 1780 | + </g> |
| 1781 | + <g transform="translate(909.5, 450)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="ayllu-builder-1"> |
| 1782 | + <g transform="translate(8, 8)" fill="#33322E" data-name="ayllu-builder-1"> |
| 1783 | + <g transform="translate(20, 20)" data-name="ayllu-builder-1"> |
| 1784 | + <g data-name="qemu-x86_64"> |
| 1785 | + <g fill="#fdf6e3" stroke="#33322E" data-name="qemu-x86_64"> |
| 1786 | + <rect x="0.0" y="31.0" height="62.0" width="137.0" data-name="qemu-x86_64"></rect> |
| 1787 | + <path d="M0.0 31.0 L0.0 0.0 L113.1 0.0 L113.1 31.0 Z" data-name="qemu-x86_64"></path> |
| 1788 | + <path d="M0.0 31.0 L137.0 31.0" fill="none" data-name="qemu-x86_64"></path> |
| 1789 | + <path d="M0.0 62.0 L137.0 62.0" fill="none" data-name="qemu-x86_64"></path> |
| 1790 | + </g> |
| 1791 | + <g transform="translate(0, 0)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="qemu-x86_64"> |
| 1792 | + <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="qemu-x86_64"> |
| 1793 | + <text x="0.0" y="13.5" stroke="none" data-name="qemu-x86_64">qemu-x86_64</text> |
| 1794 | + |
| 1795 | + </g> |
| 1796 | + </g> |
| 1797 | + <g transform="translate(0, 31)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="qemu-x86_64"> |
| 1798 | + <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="qemu-x86_64"> |
| 1799 | + <text x="0.0" y="13.5" stroke="none" data-name="qemu-x86_64">capnp-rpc-server</text> |
| 1800 | + |
| 1801 | + </g> |
| 1802 | + </g> |
| 1803 | + <g transform="translate(0, 62)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="qemu-x86_64"> |
| 1804 | + <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="qemu-x86_64"> |
| 1805 | + <text x="0.0" y="13.5" stroke="none" data-name="qemu-x86_64">executor</text> |
| 1806 | + |
| 1807 | + </g> |
| 1808 | + </g> |
| 1809 | + </g> |
| 1810 | + </g> |
| 1811 | + </g> |
| 1812 | + </g> |
| 1813 | + </g> |
| 1814 | + <g data-name="ayllu-builder-2"> |
| 1815 | + <g fill="#eee8d5" stroke="#33322E" data-name="ayllu-builder-2"> |
| 1816 | + <rect x="1142.5" y="419.0" height="180.0" width="193.0" data-name="ayllu-builder-2"></rect> |
| 1817 | + <path d="M1142.5 450.0 L1335.5 450.0" fill="none" data-name="ayllu-builder-2"></path> |
| 1818 | + </g> |
| 1819 | + <g transform="translate(1142.5, 419)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="ayllu-builder-2"> |
| 1820 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="ayllu-builder-2"> |
| 1821 | + <text x="88.5" y="13.5" stroke="none" text-anchor="middle" data-name="ayllu-builder-2">ayllu-builder-2</text> |
| 1822 | + |
| 1823 | + </g> |
| 1824 | + </g> |
| 1825 | + <g transform="translate(1142.5, 450)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="ayllu-builder-2"> |
| 1826 | + <g transform="translate(8, 8)" fill="#33322E" data-name="ayllu-builder-2"> |
| 1827 | + <g transform="translate(20, 20)" data-name="ayllu-builder-2"> |
| 1828 | + <g data-name="qemu-aarch64"> |
| 1829 | + <g fill="#fdf6e3" stroke="#33322E" data-name="qemu-aarch64"> |
| 1830 | + <rect x="0.0" y="31.0" height="62.0" width="137.0" data-name="qemu-aarch64"></rect> |
| 1831 | + <path d="M0.0 31.0 L0.0 0.0 L118.9 0.0 L118.9 31.0 Z" data-name="qemu-aarch64"></path> |
| 1832 | + <path d="M0.0 31.0 L137.0 31.0" fill="none" data-name="qemu-aarch64"></path> |
| 1833 | + <path d="M0.0 62.0 L137.0 62.0" fill="none" data-name="qemu-aarch64"></path> |
| 1834 | + </g> |
| 1835 | + <g transform="translate(0, 0)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="qemu-aarch64"> |
| 1836 | + <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="qemu-aarch64"> |
| 1837 | + <text x="0.0" y="13.5" stroke="none" data-name="qemu-aarch64">qemu-aarch64</text> |
| 1838 | + |
| 1839 | + </g> |
| 1840 | + </g> |
| 1841 | + <g transform="translate(0, 31)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="qemu-aarch64"> |
| 1842 | + <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="qemu-aarch64"> |
| 1843 | + <text x="0.0" y="13.5" stroke="none" data-name="qemu-aarch64">capnp-rpc-server</text> |
| 1844 | + |
| 1845 | + </g> |
| 1846 | + </g> |
| 1847 | + <g transform="translate(0, 62)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="qemu-aarch64"> |
| 1848 | + <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="qemu-aarch64"> |
| 1849 | + <text x="0.0" y="13.5" stroke="none" data-name="qemu-aarch64">exectuor</text> |
| 1850 | + |
| 1851 | + </g> |
| 1852 | + </g> |
| 1853 | + </g> |
| 1854 | + </g> |
| 1855 | + </g> |
| 1856 | + </g> |
| 1857 | + </g> |
| 1858 | + <g data-name="ayllu-builder-n"> |
| 1859 | + <g fill="#eee8d5" stroke="#33322E" data-name="ayllu-builder-n"> |
| 1860 | + <rect x="1375.5" y="419.0" height="180.0" width="193.0" data-name="ayllu-builder-n"></rect> |
| 1861 | + <path d="M1375.5 450.0 L1568.5 450.0" fill="none" data-name="ayllu-builder-n"></path> |
| 1862 | + </g> |
| 1863 | + <g transform="translate(1375.5, 419)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="ayllu-builder-n"> |
| 1864 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="ayllu-builder-n"> |
| 1865 | + <text x="88.5" y="13.5" stroke="none" text-anchor="middle" data-name="ayllu-builder-n">ayllu-builder-n</text> |
| 1866 | + |
| 1867 | + </g> |
| 1868 | + </g> |
| 1869 | + <g transform="translate(1375.5, 450)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="ayllu-builder-n"> |
| 1870 | + <g transform="translate(8, 8)" fill="#33322E" data-name="ayllu-builder-n"> |
| 1871 | + <g transform="translate(20, 20)" data-name="ayllu-builder-n"> |
| 1872 | + <g data-name="lxc"> |
| 1873 | + <g fill="#fdf6e3" stroke="#33322E" data-name="lxc"> |
| 1874 | + <rect x="0.0" y="31.0" height="62.0" width="137.0" data-name="lxc"></rect> |
| 1875 | + <path d="M0.0 31.0 L0.0 0.0 L35.2 0.0 L35.2 31.0 Z" data-name="lxc"></path> |
| 1876 | + <path d="M0.0 31.0 L137.0 31.0" fill="none" data-name="lxc"></path> |
| 1877 | + <path d="M0.0 62.0 L137.0 62.0" fill="none" data-name="lxc"></path> |
| 1878 | + </g> |
| 1879 | + <g transform="translate(0, 0)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="lxc"> |
| 1880 | + <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="lxc"> |
| 1881 | + <text x="0.0" y="13.5" stroke="none" data-name="lxc">lxc</text> |
| 1882 | + |
| 1883 | + </g> |
| 1884 | + </g> |
| 1885 | + <g transform="translate(0, 31)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="lxc"> |
| 1886 | + <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="lxc"> |
| 1887 | + <text x="0.0" y="13.5" stroke="none" data-name="lxc">capnp-rpc-server</text> |
| 1888 | + |
| 1889 | + </g> |
| 1890 | + </g> |
| 1891 | + <g transform="translate(0, 62)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="lxc"> |
| 1892 | + <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="lxc"> |
| 1893 | + <text x="0.0" y="13.5" stroke="none" data-name="lxc">executor</text> |
| 1894 | + |
| 1895 | + </g> |
| 1896 | + </g> |
| 1897 | + </g> |
| 1898 | + </g> |
| 1899 | + </g> |
| 1900 | + </g> |
| 1901 | + </g> |
| 1902 | + </g> |
| 1903 | + </g> |
| 1904 | + </g> |
| 1905 | + </g> |
| 1906 | + </svg> |
| 1907 | \ No newline at end of file |
| 1908 | diff --git a/www/static/assets/computer.png b/www/static/assets/computer.png |
| 1909 | deleted file mode 100644 |
| 1910 | index dbe2651..0000000 |
| 1911 | Binary files a/www/static/assets/computer.png and /dev/null differ |
| 1912 | diff --git a/www/static/assets/crescent.png b/www/static/assets/crescent.png |
| 1913 | deleted file mode 100644 |
| 1914 | index c46dc91..0000000 |
| 1915 | Binary files a/www/static/assets/crescent.png and /dev/null differ |
| 1916 | diff --git a/www/static/assets/crescent.svg b/www/static/assets/crescent.svg |
| 1917 | deleted file mode 100644 |
| 1918 | index 51596eb..0000000 |
| 1919 | --- a/www/static/assets/crescent.svg |
| 1920 | +++ /dev/null |
| 1921 | @@ -1,12 +0,0 @@ |
| 1922 | - <svg id="emoji" viewBox="0 0 72 72" xmlns="http://www.w3.org/2000/svg"> |
| 1923 | - <g id="color"> |
| 1924 | - <path fill="#FCEA2B" stroke="none" d="M7.3634,42.4095c4.5525,6.1703,11.874,10.1726,20.1303,10.1726c13.8071,0,25-11.1929,25-25 c0-8.5226-4.2646-16.0492-10.7763-20.5621c13.0383,2.8385,22.7812,14.4426,22.7812,28.3317c0,16.0163-12.9837,29-29,29 C21.9109,64.3517,10.5097,55.0229,7.3634,42.4095z"/> |
| 1925 | - <path fill="#F1B31C" stroke="none" d="M45.8373,9.2108c8.25,4.25,16.1946,11.8724,16.1946,24.6742c0,15.4494-12.5242,27.9735-27.9735,27.9735 c-9.2431,0-19.7524-4.8353-24.294-15.5436c0,0,4.3805,18.6568,25.7189,18.665c19.327,0.0074,28.0419-20.6218,28.0419-20.6218 C70.033,12.3815,45.8373,9.2108,45.8373,9.2108z"/> |
| 1926 | - </g> |
| 1927 | - <g id="hair"/> |
| 1928 | - <g id="skin"/> |
| 1929 | - <g id="skin-shadow"/> |
| 1930 | - <g id="line"> |
| 1931 | - <path fill="none" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2" d="M7.3634,42.4095c4.5525,6.1703,11.874,10.1726,20.1303,10.1726c13.8071,0,25-11.1929,25-25 c0-8.5226-4.2646-16.0492-10.7763-20.5621c13.0383,2.8385,22.7812,14.4426,22.7812,28.3317c0,16.0163-12.9837,29-29,29 C21.9109,64.3517,10.5097,55.0229,7.3634,42.4095z"/> |
| 1932 | - </g> |
| 1933 | - </svg> |
| 1934 | diff --git a/www/static/assets/crescent_logo.png b/www/static/assets/crescent_logo.png |
| 1935 | deleted file mode 100644 |
| 1936 | index c3aef0d..0000000 |
| 1937 | Binary files a/www/static/assets/crescent_logo.png and /dev/null differ |
| 1938 | diff --git a/www/static/assets/crescent_logo.svg b/www/static/assets/crescent_logo.svg |
| 1939 | deleted file mode 100644 |
| 1940 | index b766584..0000000 |
| 1941 | --- a/www/static/assets/crescent_logo.svg |
| 1942 | +++ /dev/null |
| 1943 | @@ -1,192 +0,0 @@ |
| 1944 | - <?xml version="1.0" encoding="UTF-8" standalone="no"?> |
| 1945 | - <svg |
| 1946 | - id="emoji" |
| 1947 | - viewBox="0 0 75 80" |
| 1948 | - version="1.1" |
| 1949 | - sodipodi:docname="ayllu_logo.svg" |
| 1950 | - width="75" |
| 1951 | - height="80" |
| 1952 | - inkscape:version="1.3 (0e150ed6c4, 2023-07-21)" |
| 1953 | - inkscape:export-filename="ayllu_logo.png" |
| 1954 | - inkscape:export-xdpi="92.290512" |
| 1955 | - inkscape:export-ydpi="92.290512" |
| 1956 | - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
| 1957 | - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" |
| 1958 | - xmlns="http://www.w3.org/2000/svg" |
| 1959 | - xmlns:svg="http://www.w3.org/2000/svg" |
| 1960 | - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
| 1961 | - xmlns:cc="http://creativecommons.org/ns#" |
| 1962 | - xmlns:dc="http://purl.org/dc/elements/1.1/"> |
| 1963 | - <title |
| 1964 | - id="title8">Ayllu Logo</title> |
| 1965 | - <defs |
| 1966 | - id="defs3"> |
| 1967 | - <pattern |
| 1968 | - patternUnits="userSpaceOnUse" |
| 1969 | - width="100" |
| 1970 | - height="100" |
| 1971 | - id="Gingham" |
| 1972 | - preserveAspectRatio="xMidYMid" |
| 1973 | - patternTransform="scale(0.5,0.5)" |
| 1974 | - style="fill:#0000ff"> |
| 1975 | - <rect |
| 1976 | - style="fill-opacity:0.5;stroke:none" |
| 1977 | - id="rect3" |
| 1978 | - width="50" |
| 1979 | - height="50" |
| 1980 | - x="50" |
| 1981 | - y="0" /> |
| 1982 | - <rect |
| 1983 | - style="stroke:none" |
| 1984 | - id="rect4" |
| 1985 | - width="50" |
| 1986 | - height="50" |
| 1987 | - x="50" |
| 1988 | - y="50" /> |
| 1989 | - <rect |
| 1990 | - style="fill-opacity:0.5;stroke:none" |
| 1991 | - id="rect5" |
| 1992 | - width="50" |
| 1993 | - height="50" |
| 1994 | - x="0" |
| 1995 | - y="50" /> |
| 1996 | - </pattern> |
| 1997 | - </defs> |
| 1998 | - <sodipodi:namedview |
| 1999 | - id="namedview3" |
| 2000 | - pagecolor="#ffffff" |
| 2001 | - bordercolor="#999999" |
| 2002 | - borderopacity="1" |
| 2003 | - inkscape:showpageshadow="0" |
| 2004 | - inkscape:pageopacity="0" |
| 2005 | - inkscape:pagecheckerboard="0" |
| 2006 | - inkscape:deskcolor="#d1d1d1" |
| 2007 | - inkscape:zoom="8.25" |
| 2008 | - inkscape:cx="5.1515152" |
| 2009 | - inkscape:cy="36.424242" |
| 2010 | - inkscape:window-width="3826" |
| 2011 | - inkscape:window-height="1029" |
| 2012 | - inkscape:window-x="0" |
| 2013 | - inkscape:window-y="0" |
| 2014 | - inkscape:window-maximized="1" |
| 2015 | - inkscape:current-layer="emoji" |
| 2016 | - showgrid="true"> |
| 2017 | - <inkscape:grid |
| 2018 | - id="grid8" |
| 2019 | - units="px" |
| 2020 | - originx="0" |
| 2021 | - originy="0" |
| 2022 | - spacingx="1" |
| 2023 | - spacingy="1" |
| 2024 | - empcolor="#0099e5" |
| 2025 | - empopacity="0.30196078" |
| 2026 | - color="#0099e5" |
| 2027 | - opacity="0.14901961" |
| 2028 | - empspacing="5" |
| 2029 | - dotted="false" |
| 2030 | - gridanglex="30" |
| 2031 | - gridanglez="30" |
| 2032 | - visible="true" /> |
| 2033 | - </sodipodi:namedview> |
| 2034 | - <g |
| 2035 | - inkscape:groupmode="layer" |
| 2036 | - id="layer7" |
| 2037 | - inkscape:label="bg"> |
| 2038 | - <rect |
| 2039 | - style="fill:#000000;fill-opacity:1;stroke-width:3.26929" |
| 2040 | - id="rect14" |
| 2041 | - width="74.891571" |
| 2042 | - height="79.840912" |
| 2043 | - x="0.029829545" |
| 2044 | - y="0.18181819" |
| 2045 | - rx="4.2495718" |
| 2046 | - ry="4.1789107" /> |
| 2047 | - </g> |
| 2048 | - <g |
| 2049 | - inkscape:groupmode="layer" |
| 2050 | - id="layer1" |
| 2051 | - inkscape:label="bg 1"> |
| 2052 | - <g |
| 2053 | - inkscape:groupmode="layer" |
| 2054 | - id="layer7-3" |
| 2055 | - inkscape:label="bg" |
| 2056 | - transform="translate(0.10227227,0.03882594)"> |
| 2057 | - <rect |
| 2058 | - style="fill:#fcea2b;fill-opacity:1;stroke-width:3.10583" |
| 2059 | - id="rect14-6" |
| 2060 | - width="71.146996" |
| 2061 | - height="75.848869" |
| 2062 | - x="1.9021188" |
| 2063 | - y="2.1778409" |
| 2064 | - rx="4.0370932" |
| 2065 | - ry="3.9699652" /> |
| 2066 | - </g> |
| 2067 | - </g> |
| 2068 | - <g |
| 2069 | - inkscape:groupmode="layer" |
| 2070 | - id="layer4" |
| 2071 | - inkscape:label="text" |
| 2072 | - transform="translate(-1.2556819,-2.7045453)" |
| 2073 | - style="display:inline" /> |
| 2074 | - <g |
| 2075 | - id="g8" |
| 2076 | - transform="matrix(1.0086293,0,0,0.99990106,-0.07783972,3.322434)"> |
| 2077 | - <g |
| 2078 | - id="color" |
| 2079 | - transform="translate(1.3252841,0.98390174)" |
| 2080 | - style="display:inline" |
| 2081 | - inkscape:label="moon-shade"> |
| 2082 | - <path |
| 2083 | - fill="#fcea2b" |
| 2084 | - stroke="none" |
| 2085 | - d="m 7.3634,42.4095 c 4.5525,6.1703 11.874,10.1726 20.1303,10.1726 13.8071,0 25,-11.1929 25,-25 0,-8.5226 -4.2646,-16.0492 -10.7763,-20.5621 13.0383,2.8385 22.7812,14.4426 22.7812,28.3317 0,16.0163 -12.9837,29 -29,29 -13.5877,0 -24.9889,-9.3288 -28.1352,-21.9422 z" |
| 2086 | - id="path1" /> |
| 2087 | - <path |
| 2088 | - fill="#f1b31c" |
| 2089 | - stroke="none" |
| 2090 | - d="m 45.8373,9.2108 c 8.25,4.25 16.1946,11.8724 16.1946,24.6742 0,15.4494 -12.5242,27.9735 -27.9735,27.9735 -9.2431,0 -19.7524,-4.8353 -24.294,-15.5436 0,0 4.3805,18.6568 25.7189,18.665 C 54.8103,64.9873 63.5252,44.3581 63.5252,44.3581 70.033,12.3815 45.8373,9.2108 45.8373,9.2108 Z" |
| 2091 | - id="path2" /> |
| 2092 | - </g> |
| 2093 | - <g |
| 2094 | - id="line" |
| 2095 | - transform="translate(1.3252841,0.98390174)" |
| 2096 | - inkscape:label="moon-line"> |
| 2097 | - <path |
| 2098 | - fill="none" |
| 2099 | - stroke="#000000" |
| 2100 | - stroke-linecap="round" |
| 2101 | - stroke-linejoin="round" |
| 2102 | - stroke-miterlimit="10" |
| 2103 | - stroke-width="2" |
| 2104 | - d="m 7.3634,42.4095 c 4.5525,6.1703 11.874,10.1726 20.1303,10.1726 13.8071,0 25,-11.1929 25,-25 0,-8.5226 -4.2646,-16.0492 -10.7763,-20.5621 13.0383,2.8385 22.7812,14.4426 22.7812,28.3317 0,16.0163 -12.9837,29 -29,29 -13.5877,0 -24.9889,-9.3288 -28.1352,-21.9422 z" |
| 2105 | - id="path3" /> |
| 2106 | - </g> |
| 2107 | - </g> |
| 2108 | - <metadata |
| 2109 | - id="metadata8"> |
| 2110 | - <rdf:RDF> |
| 2111 | - <cc:Work |
| 2112 | - rdf:about=""> |
| 2113 | - <dc:title>Ayllu Logo</dc:title> |
| 2114 | - <cc:license |
| 2115 | - rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" /> |
| 2116 | - <dc:description>Originally created by Vanessa Boutzikoudi @ https://openmoji.org/library/emoji-1F319/</dc:description> |
| 2117 | - </cc:Work> |
| 2118 | - <cc:License |
| 2119 | - rdf:about="http://creativecommons.org/licenses/by-sa/4.0/"> |
| 2120 | - <cc:permits |
| 2121 | - rdf:resource="http://creativecommons.org/ns#Reproduction" /> |
| 2122 | - <cc:permits |
| 2123 | - rdf:resource="http://creativecommons.org/ns#Distribution" /> |
| 2124 | - <cc:requires |
| 2125 | - rdf:resource="http://creativecommons.org/ns#Notice" /> |
| 2126 | - <cc:requires |
| 2127 | - rdf:resource="http://creativecommons.org/ns#Attribution" /> |
| 2128 | - <cc:permits |
| 2129 | - rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /> |
| 2130 | - <cc:requires |
| 2131 | - rdf:resource="http://creativecommons.org/ns#ShareAlike" /> |
| 2132 | - </cc:License> |
| 2133 | - </rdf:RDF> |
| 2134 | - </metadata> |
| 2135 | - </svg> |
| 2136 | diff --git a/www/templates/base.html b/www/templates/base.html |
| 2137 | index 865d7d8..d77b7ef 100644 |
| 2138 | --- a/www/templates/base.html |
| 2139 | +++ b/www/templates/base.html |
| 2140 | @@ -22,7 +22,7 @@ |
| 2141 | </ul> |
| 2142 | <ul> |
| 2143 | <li><a href="https://ayllu-forge.org/browse">browse</a></li> |
| 2144 | - <!--<li><a href="/docs">docs</a></li> --> |
| 2145 | + <li><a href="/docs">docs</a></li> |
| 2146 | </ul> |
| 2147 | </nav> |
| 2148 | <body class="container"> |