From 18f09ece88fa72d8318d9548ac06f1605019a0fe Mon Sep 17 00:00:00 2001 From: bitkyc08-arch Date: Tue, 1 Sep 2026 01:59:08 +0900 Subject: [PATCH 1/2] feat(gui): source brand marks for 23 providers that rendered a letter tile The provider rail, details panel and dashboard rows fall back to a coloured initial tile when providerIconSrc returns nothing, which was 38 of 83 registry providers. This sources marks for 23 of them. Eleven vendors publish a usable square SVG and are committed as fetched, with only comments, /<desc> and data-name stripped. Twelve publish no square vector, so their favicon or app icon is traced -- potrace for a single-ink silhouette, k-means colour layers for multi-colour art, the same technique that produced hermes-agent.svg and gajae-code.svg. The first tracing pass shipped a bug worth recording. A favicon is usually a glyph on a filled rounded square, and tracing by luminance captured the square: baseten came out 97.7% ink, bizrouter 89.3% -- black boxes, not marks. The fix reads the border ring, takes its median colour as the plate when the ring is uniform, and masks by distance from that colour rather than by darkness. It found real plates behind baseten (#19e76e), cerebras (#ef5b27), hyperbolic (#1a1a1a), umans and bizrouter (#000000), and orcarouter (#ffffff). Two candidates were rejected rather than shipped. nousresearch.com publishes only safari-pinned-tab.svg, whose first path is the full 512-unit frame -- the exact file the Hermes client mark rejected for rendering as a black square. LiteLLM has no mark of its own on its site; the SVGs there are third-party model logos. Both keep their fallback tile with the attempt recorded. Two guards. One fails a mark that passes an SVG parse but is a <text> glyph, an embedded raster or a base64 payload -- none of which is visible in review and all of which break in a 19px box. The other fails a horizontal wordmark by viewBox ratio, which is what disqualified six vendor logos here and the MiniMax docs asset in the previous unit. Providers with no resolved mark: 38 -> 15 on this branch. Measured after: 18 of the 23 fall under 2:1 against one of the two surfaces, because ProviderIcon has no themed path at all. That is wp5, not a defect in these assets. Verification: 2 pass in the new file, each driven red (a text glyph, a 5.1:1 lockup). tsc 0 both roots, oxlint clean, privacy:scan clean, full GUI suite 1156 pass / 0 fail across 187 files. Every mark rendered at 19px in the real tile in both themes with no load failures. --- gui/public/provider-icons/README.md | 60 +++++ gui/public/provider-icons/baseten.svg | 13 + gui/public/provider-icons/bizrouter.svg | 41 +++ gui/public/provider-icons/cerebras.svg | 26 ++ gui/public/provider-icons/deepinfra.svg | 75 ++++++ gui/public/provider-icons/digitalocean.svg | 10 + gui/public/provider-icons/featherless.svg | 4 + gui/public/provider-icons/hyperbolic.svg | 18 ++ gui/public/provider-icons/kilo.svg | 13 + gui/public/provider-icons/nanogpt.svg | 74 ++++++ gui/public/provider-icons/nebius.svg | 1 + gui/public/provider-icons/neuralwatt.svg | 27 ++ gui/public/provider-icons/novita.svg | 32 +++ gui/public/provider-icons/orcarouter.svg | 175 +++++++++++++ gui/public/provider-icons/parallel.svg | 13 + gui/public/provider-icons/sambanova.svg | 276 +++++++++++++++++++++ gui/public/provider-icons/scaleway.svg | 11 + gui/public/provider-icons/siliconflow.svg | 18 ++ gui/public/provider-icons/synthetic.svg | 12 + gui/public/provider-icons/umans.svg | 30 +++ gui/public/provider-icons/venice.svg | 165 ++++++++++++ gui/public/provider-icons/vultr.svg | 15 ++ gui/public/provider-icons/zai.svg | 218 ++++++++++++++++ gui/public/provider-icons/zenmux.svg | 1 + gui/src/provider-icons.ts | 32 +++ gui/tests/provider-marks-assets.test.ts | 66 +++++ 26 files changed, 1426 insertions(+) create mode 100644 gui/public/provider-icons/baseten.svg create mode 100644 gui/public/provider-icons/bizrouter.svg create mode 100644 gui/public/provider-icons/cerebras.svg create mode 100644 gui/public/provider-icons/deepinfra.svg create mode 100644 gui/public/provider-icons/digitalocean.svg create mode 100644 gui/public/provider-icons/featherless.svg create mode 100644 gui/public/provider-icons/hyperbolic.svg create mode 100644 gui/public/provider-icons/kilo.svg create mode 100644 gui/public/provider-icons/nanogpt.svg create mode 100644 gui/public/provider-icons/nebius.svg create mode 100644 gui/public/provider-icons/neuralwatt.svg create mode 100644 gui/public/provider-icons/novita.svg create mode 100644 gui/public/provider-icons/orcarouter.svg create mode 100644 gui/public/provider-icons/parallel.svg create mode 100644 gui/public/provider-icons/sambanova.svg create mode 100644 gui/public/provider-icons/scaleway.svg create mode 100644 gui/public/provider-icons/siliconflow.svg create mode 100644 gui/public/provider-icons/synthetic.svg create mode 100644 gui/public/provider-icons/umans.svg create mode 100644 gui/public/provider-icons/venice.svg create mode 100644 gui/public/provider-icons/vultr.svg create mode 100644 gui/public/provider-icons/zai.svg create mode 100644 gui/public/provider-icons/zenmux.svg create mode 100644 gui/tests/provider-marks-assets.test.ts diff --git a/gui/public/provider-icons/README.md b/gui/public/provider-icons/README.md index a4346b2a4f..5d8011bbff 100644 --- a/gui/public/provider-icons/README.md +++ b/gui/public/provider-icons/README.md @@ -140,3 +140,63 @@ Both directions are enforced in `gui/tests/integration-marks.test.ts`, including luminance check that fails any single-ink near-neutral mark left as an image. That direction was missing until it caught `grok`; the same class of defect had already shipped once for `prime`, `opencode` and `kimi`. + +## Provider marks (2026-09-01) + +Sourced for the providers that were rendering a coloured initial tile. Every +entry below was fetched from the vendor's own domain, taken from the registry's +`baseUrl`/`dashboardUrl` rather than guessed. + +Published as SVG and committed with only comments, `<title>`/`<desc>` and +`data-name` attributes stripped: + +- `digitalocean.svg` — `digitalocean.com` favicon, 32x32. +- `featherless.svg` — `featherless.ai/favicon.svg`, 256x256. +- `kilo.svg` — `kilo.ai/favicon/favicon.svg`, 32x32. Keeps its `oklch()` plate. +- `nanogpt.svg` — `nano-gpt.com/logo.svg`, 181x187, gradient. +- `nebius.svg` — `nebius.com/favicon/favicon.svg`, 96x96. +- `neuralwatt.svg` — the site's Webflow-hosted brand asset, 32x32. +- `parallel.svg` — `parallel.ai/icon.svg`, 96x96. +- `scaleway.svg` — `scaleway.com/favicon/website/favicon.svg`, 16x16. +- `synthetic.svg` — `synthetic.new/favicon.svg`, 54x54. +- `zai.svg` — `z-cdn.chatglm.cn/z-ai/static/logo.svg`, 30x30. +- `zenmux.svg` — the site's CDN-hosted brand mark, 160x160. + +Traced from raster, because the vendor publishes no square SVG mark. Same +technique as `hermes-agent.svg` and `gajae-code.svg`: `potrace -s --flat` for a +single-ink silhouette, k-means colour layers (seeded at 3, largest area first) +for multi-colour art, downsampled to a 160px box first so the trace does not +follow every upscaled pixel edge. + +- `cerebras.svg`, `novita.svg`, `siliconflow.svg`, `deepinfra.svg` — single-ink. +- `baseten.svg`, `hyperbolic.svg`, `sambanova.svg`, `umans.svg`, `venice.svg`, + `vultr.svg`, `bizrouter.svg`, `orcarouter.svg` — colour-layered. + +**The plate problem, recorded because the first pass shipped it.** A favicon is +usually a glyph on a filled rounded square. Tracing luminance alone captured the +square and produced a solid box: `baseten` came out 97.7% ink, `bizrouter` 89.3%. +The fix reads the border ring, takes its median colour as the plate when the ring +is uniform, and masks by distance from that colour instead of by darkness. It +found real plates behind `baseten` (#19e76e), `cerebras` (#ef5b27), `hyperbolic` +(#1a1a1a), `umans`/`bizrouter` (#000000) and `orcarouter` (#ffffff). + +### Rejected, and why + +- **`nous`** — `nousresearch.com/safari-pinned-tab.svg` opens with the full + 512-unit frame as its first path, so it renders as a black square. This is the + identical candidate the Hermes client mark rejected. Nous Research keeps its + fallback tile; reusing `hermes-agent.svg` would attribute a product's mark to + its publisher. +- **`litellm`** — the traced favicon is a muddy multi-colour blob with no legible + silhouette at 19px. The homepage SVGs are third-party model logos, not LiteLLM's + own mark. +- **Wordmarks refused** for `cerebras` (843x320 from Sanity CDN), `siliconflow` + (188x28), `zhipu-bigmodel` (123x25), `vultr` (218x52), `baseten` (1001x151) and + `chutes` (192x30). A lockup in the rail's 19px box is an illegible smear, so + each was replaced by a traced square mark or left to the fallback. +- **Nothing found** for `chutes`, `nscale`, `together`, `volcengine` and + `tencent-coding-plan`: no square SVG and no usable raster icon at the + registry's domains. They keep their fallback tiles. + +`zhipu-bigmodel` and `zhipu-bigmodel-coding` share `zai.svg`: Z.AI and BigModel +are the same company, and the mainland console publishes only the wordmark. diff --git a/gui/public/provider-icons/baseten.svg b/gui/public/provider-icons/baseten.svg new file mode 100644 index 0000000000..2fa74a269b --- /dev/null +++ b/gui/public/provider-icons/baseten.svg @@ -0,0 +1,13 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48.000000 48.000000"><g transform="translate(0.000000,48.000000) scale(0.100000,-0.100000)" +fill="#000000" stroke="none"><path fill="#000000" d="M97 413 c-4 -3 -7 -19 -7 -35 l0 -28 110 0 110 0 0 35 0 35 -103 0 +c-57 0 -107 -3 -110 -7z M320 310 c0 -28 3 -30 35 -30 32 0 35 2 35 30 0 28 +-3 30 -35 30 -32 0 -35 -2 -35 -30z M170 240 l0 -30 70 0 70 0 0 30 0 30 -70 +0 -70 0 0 -30z M320 170 c0 -28 3 -30 35 -30 32 0 35 2 35 30 0 28 -3 30 -35 +30 -32 0 -35 -2 -35 -30z M242 98 c3 -29 7 -33 36 -36 31 -3 32 -2 32 32 0 35 +-1 36 -36 36 -34 0 -35 -1 -32 -32z"/><path fill="#084d25" d="M338 343 c12 -2 30 -2 40 0 9 3 -1 5 -23 4 -22 0 -30 -2 -17 -4z +M203 273 c20 -2 54 -2 75 0 20 2 3 4 -38 4 -41 0 -58 -2 -37 -4z M203 203 c20 +-2 54 -2 75 0 20 2 3 4 -38 4 -41 0 -58 -2 -37 -4z M338 133 c12 -2 30 -2 40 +0 9 3 -1 5 -23 4 -22 0 -30 -2 -17 -4z"/><path fill="#0d7437" d="M314 240 c0 -96 2 -136 3 -87 2 48 2 126 0 175 -1 48 -3 8 -3 -88z +M162 240 c0 -19 2 -27 5 -17 2 9 2 25 0 35 -3 9 -5 1 -5 -18z"/><path fill="#12ab52" d="M142 343 c32 -2 84 -2 115 0 32 2 6 3 -57 3 -63 0 -89 -1 -58 -3z +M263 133 c9 -2 25 -2 35 0 9 3 1 5 -18 5 -19 0 -27 -2 -17 -5z"/><path fill="#0f8d44" d="M333 273 c9 -2 25 -2 35 0 9 3 1 5 -18 5 -19 0 -27 -2 -17 -5z M333 +203 c9 -2 25 -2 35 0 9 3 1 5 -18 5 -19 0 -27 -2 -17 -5z"/></g></svg> \ No newline at end of file diff --git a/gui/public/provider-icons/bizrouter.svg b/gui/public/provider-icons/bizrouter.svg new file mode 100644 index 0000000000..f0644866a3 --- /dev/null +++ b/gui/public/provider-icons/bizrouter.svg @@ -0,0 +1,41 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 160.000000 160.000000"><g transform="translate(0.000000,160.000000) scale(0.100000,-0.100000)" +fill="#000000" stroke="none"><path fill="#fdfdfd" d="M492 1098 l3 -153 73 -3 72 -3 0 156 0 155 -75 0 -76 0 3 -152z M670 +840 l0 -70 140 0 c127 0 140 -2 150 -19 5 -11 10 -67 10 -125 l0 -106 75 0 75 +0 0 78 c0 144 -48 234 -152 286 -47 24 -63 26 -175 26 l-123 0 0 -70z M490 +616 l0 -134 70 -66 71 -67 157 3 157 3 0 70 0 70 -150 5 -150 5 -3 123 -3 122 +-74 0 -75 0 0 -134z"/><path fill="#cecece" d="M568 1253 l72 -4 0 -155 0 -155 -72 3 -73 3 -5 155 -6 155 -2 -151 +c-1 -114 1 -154 11 -162 7 -6 46 -12 87 -14 l75 -3 3 -82 3 -82 148 -3 c82 -2 +147 0 144 5 -2 4 -67 7 -144 7 l-139 0 0 70 0 70 118 2 117 2 -125 6 -125 5 +-5 165 -5 165 -75 1 -75 1 73 -4z M1040 835 c13 -14 26 -25 28 -25 3 0 -5 11 +-18 25 -13 14 -26 25 -28 25 -3 0 5 -11 18 -25z M642 638 c-1 -70 1 -129 6 +-131 4 -3 6 34 4 81 -5 160 -8 178 -10 50z M484 615 c0 -71 1 -99 3 -62 2 37 +2 96 0 130 -2 34 -3 4 -3 -68z M962 627 l-2 -118 83 3 82 3 1 70 0 70 -3 -67 +-4 -68 -74 0 -74 0 -4 113 -3 112 -2 -118z M1111 704 c0 -11 3 -14 6 -6 3 7 2 +16 -1 19 -3 4 -6 -2 -5 -13z M530 438 c41 -45 50 -53 50 -45 0 2 -21 23 -47 +47 l-48 45 45 -47z M790 350 l-155 -6 152 -2 c93 -1 154 2 158 8 3 6 5 9 3 8 +-2 -1 -73 -5 -158 -8z"/><path fill="#404040" d="M533 1263 c20 -2 54 -2 75 0 20 2 3 4 -38 4 -41 0 -58 -2 -37 -4z +M474 1100 c0 -85 2 -120 3 -77 2 42 2 112 0 155 -1 42 -3 7 -3 -78z M533 763 +c20 -2 54 -2 75 0 20 2 3 4 -38 4 -41 0 -58 -2 -37 -4z M733 753 c37 -2 97 -2 +135 0 37 2 6 3 -68 3 -74 0 -105 -1 -67 -3z M474 615 c0 -77 2 -107 3 -67 2 +40 2 103 0 140 -2 37 -3 4 -3 -73z M1133 595 c0 -38 2 -53 4 -32 2 20 2 52 0 +70 -2 17 -4 1 -4 -38z M708 333 c46 -2 118 -2 160 0 42 1 5 3 -83 3 -88 0 +-123 -2 -77 -3z"/><path fill="#6c6c6c" d="M654 1095 c0 -88 2 -123 3 -77 2 46 2 118 0 160 -1 42 -3 5 -3 -83z +M533 923 c20 -2 54 -2 75 0 20 2 3 4 -38 4 -41 0 -58 -2 -37 -4z M1020 867 c0 +-2 15 -16 33 -33 l32 -29 -29 33 c-28 30 -36 37 -36 29z M654 747 c-2 -7 -3 +-62 -2 -123 l3 -109 5 123 c3 67 4 122 2 122 -1 0 -5 -6 -8 -13z M954 630 c0 +-63 1 -89 3 -57 2 31 2 83 0 115 -2 31 -3 5 -3 -58z M1003 503 c20 -2 54 -2 +75 0 20 2 3 4 -38 4 -41 0 -58 -2 -37 -4z M540 415 c35 -36 67 -65 69 -65 3 0 +-24 29 -59 65 -35 36 -67 65 -69 65 -3 0 24 -29 59 -65z"/><path fill="#9e9e9e" d="M647 930 c-1 -3 1 -45 4 -95 l5 -90 2 87 2 87 108 3 107 3 -113 5 +c-63 3 -115 3 -115 0z M487 753 c-3 -5 20 -7 51 -5 98 5 110 9 30 11 -42 0 +-79 -2 -81 -6z M1122 680 c0 -14 2 -19 5 -12 2 6 2 18 0 25 -3 6 -5 1 -5 -13z +M657 508 c2 -5 69 -8 149 -8 l144 0 0 -72 c0 -92 8 -85 11 10 l2 73 -155 2 +c-86 1 -154 -1 -151 -5z M602 365 c15 -16 29 -27 31 -24 3 2 -10 15 -27 28 +l-31 24 27 -28z"/><path fill="#2b2b2b" d="M475 1260 c-3 -6 1 -7 9 -4 18 7 21 14 7 14 -6 0 -13 -4 -16 -10z +M669 937 c4 -4 55 -6 112 -5 l104 3 -112 5 c-62 3 -109 1 -104 -3z M640 842 +l5 -77 3 69 c2 38 -1 73 -5 77 -4 4 -6 -27 -3 -69z M1050 845 c13 -14 26 -25 +28 -25 3 0 -5 11 -18 25 -13 14 -26 25 -28 25 -3 0 5 -11 18 -25z M1132 680 +c0 -14 2 -19 5 -12 2 6 2 18 0 25 -3 6 -5 1 -5 -13z M1126 513 c-6 -14 -5 -15 +5 -6 7 7 10 15 7 18 -3 3 -9 -2 -12 -12z M743 513 c37 -2 96 -2 130 0 34 2 4 +3 -68 3 -71 0 -99 -1 -62 -3z M963 420 c0 -41 2 -58 4 -37 2 20 2 54 0 75 -2 +20 -4 3 -4 -38z M515 430 c27 -27 51 -50 54 -50 3 0 -17 23 -44 50 -27 28 -51 +50 -54 50 -3 0 17 -22 44 -50z"/></g></svg> \ No newline at end of file diff --git a/gui/public/provider-icons/cerebras.svg b/gui/public/provider-icons/cerebras.svg new file mode 100644 index 0000000000..56d52a3d3c --- /dev/null +++ b/gui/public/provider-icons/cerebras.svg @@ -0,0 +1,26 @@ +<?xml version="1.0" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" + "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> +<svg version="1.0" xmlns="http://www.w3.org/2000/svg" + width="256.000000pt" height="256.000000pt" viewBox="0 0 256.000000 256.000000" + preserveAspectRatio="xMidYMid meet"> +<metadata> +Created by potrace 1.16, written by Peter Selinger 2001-2019 +</metadata> +<g transform="translate(0.000000,256.000000) scale(0.100000,-0.100000)" +fill="#000000" stroke="none"> +<path d="M1555 1630 c-3 -5 -28 -10 -56 -10 -27 0 -49 -4 -49 -10 0 -5 -8 -10 +-18 -10 -10 0 -24 -9 -32 -20 -8 -11 -22 -20 -30 -20 -21 0 -70 -51 -70 -73 0 +-9 -4 -17 -10 -17 -5 0 -10 -9 -10 -20 0 -11 -4 -20 -10 -20 -5 0 -10 -9 -10 +-20 0 -11 -4 -20 -10 -20 -6 0 -10 -38 -10 -94 0 -53 4 -98 10 -101 6 -3 10 +-19 10 -36 0 -16 5 -29 10 -29 6 0 10 -7 10 -16 0 -21 112 -134 133 -134 10 0 +17 -4 17 -10 0 -5 9 -10 20 -10 11 0 20 -4 20 -10 0 -13 227 -13 235 0 3 6 18 +10 32 10 14 0 33 8 42 19 9 10 25 20 35 22 11 2 21 9 23 14 4 13 -90 115 -106 +115 -6 0 -26 -9 -46 -20 -50 -28 -154 -28 -180 0 -10 11 -26 20 -37 20 -10 0 +-18 7 -18 15 0 8 -9 30 -20 50 -22 39 -29 158 -10 170 6 3 10 13 10 21 0 19 +45 64 64 64 8 0 18 5 21 10 3 6 16 10 29 10 12 0 27 5 34 12 9 9 15 9 24 0 7 +-7 20 -12 30 -12 9 0 33 -9 53 -20 47 -26 50 -26 88 13 73 76 73 75 49 97 -12 +11 -28 20 -37 20 -8 0 -15 5 -15 10 0 6 -9 10 -20 10 -11 0 -20 5 -20 10 0 6 +-18 10 -39 10 -22 0 -43 5 -46 10 -3 6 -24 10 -45 10 -21 0 -42 -4 -45 -10z"/> +</g> +</svg> diff --git a/gui/public/provider-icons/deepinfra.svg b/gui/public/provider-icons/deepinfra.svg new file mode 100644 index 0000000000..44c1eb0f4f --- /dev/null +++ b/gui/public/provider-icons/deepinfra.svg @@ -0,0 +1,75 @@ +<?xml version="1.0" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" + "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> +<svg version="1.0" xmlns="http://www.w3.org/2000/svg" + width="256.000000pt" height="256.000000pt" viewBox="0 0 256.000000 256.000000" + preserveAspectRatio="xMidYMid meet"> +<metadata> +Created by potrace 1.16, written by Peter Selinger 2001-2019 +</metadata> +<g transform="translate(0.000000,256.000000) scale(0.100000,-0.100000)" +fill="#000000" stroke="none"> +<path d="M1168 2190 c-27 -27 -48 -57 -48 -66 0 -10 -10 -28 -22 -41 l-21 -23 +21 -23 c12 -13 22 -31 22 -41 0 -9 22 -39 50 -66 48 -49 50 -50 110 -50 60 0 +62 1 110 50 28 27 50 57 50 66 0 10 10 28 22 41 l21 23 -21 23 c-12 13 -22 31 +-22 41 0 9 -22 39 -50 66 -49 50 -50 50 -112 49 -62 0 -64 -1 -110 -49z m204 +-62 c20 -22 28 -42 28 -68 0 -26 -8 -46 -28 -68 -27 -30 -34 -32 -92 -32 -58 +0 -65 2 -92 32 -38 43 -38 92 0 136 25 30 31 32 91 32 60 0 66 -2 93 -32z +M555 1980 c-10 -11 -27 -20 -37 -20 -10 0 -41 -22 -68 -50 -49 -48 -50 -50 +-50 -110 0 -60 1 -62 50 -110 27 -28 57 -50 66 -50 10 0 28 -10 41 -22 l23 +-21 23 21 c13 12 31 22 41 22 9 0 39 22 66 50 49 48 50 50 50 110 0 60 -1 62 +-50 110 -27 28 -58 50 -68 50 -10 0 -27 9 -37 20 -10 11 -21 20 -25 20 -4 0 +-15 -9 -25 -20z m93 -88 c30 -27 32 -34 32 -92 0 -58 -2 -65 -32 -92 -22 -20 +-42 -28 -68 -28 -26 0 -46 8 -68 28 -30 27 -32 34 -32 92 0 58 2 65 32 92 22 +20 42 28 68 28 26 0 46 -8 68 -28z M1955 1980 c-10 -11 -27 -20 -37 -20 -10 0 +-41 -22 -68 -50 -49 -48 -50 -50 -50 -110 0 -60 1 -62 50 -110 27 -28 57 -50 +66 -50 10 0 28 -10 41 -22 l23 -21 23 21 c13 12 31 22 41 22 9 0 39 22 66 50 +49 48 50 50 50 110 0 60 -1 62 -50 110 -27 28 -58 50 -68 50 -10 0 -27 9 -37 +20 -10 11 -21 20 -25 20 -4 0 -15 -9 -25 -20z m93 -88 c30 -27 32 -34 32 -92 +0 -58 -2 -65 -32 -92 -22 -20 -42 -28 -68 -28 -26 0 -46 8 -68 28 -30 27 -32 +34 -32 92 0 58 2 65 32 92 22 20 42 28 68 28 26 0 46 -8 68 -28z M1168 1670 +c-27 -27 -48 -57 -48 -66 0 -10 -10 -28 -22 -41 l-21 -23 21 -23 c12 -13 22 +-31 22 -41 0 -9 22 -39 50 -66 48 -49 50 -50 110 -50 60 0 62 1 110 50 28 27 +50 57 50 66 0 10 10 28 22 41 l21 23 -21 23 c-12 13 -22 31 -22 41 0 9 -22 39 +-50 66 -49 50 -50 50 -112 49 -62 0 -64 -1 -110 -49z m204 -62 c20 -22 28 -42 +28 -68 0 -26 -8 -46 -28 -68 -27 -30 -34 -32 -92 -32 -58 0 -65 2 -92 32 -38 +43 -38 92 0 136 25 30 31 32 91 32 60 0 66 -2 93 -32z M555 1460 c-10 -11 -27 +-20 -37 -20 -10 0 -41 -22 -68 -50 -49 -48 -50 -50 -50 -110 0 -60 1 -62 50 +-110 27 -28 57 -50 66 -50 10 0 28 -10 41 -22 l23 -21 23 21 c13 12 31 22 41 +22 9 0 39 22 66 50 49 48 50 50 50 110 0 60 -1 62 -50 110 -27 28 -58 50 -68 +50 -10 0 -27 9 -37 20 -10 11 -21 20 -25 20 -4 0 -15 -9 -25 -20z m93 -88 c30 +-27 32 -34 32 -92 0 -58 -2 -65 -32 -92 -22 -20 -42 -28 -68 -28 -26 0 -46 8 +-68 28 -30 27 -32 34 -32 92 0 58 2 65 32 92 22 20 42 28 68 28 26 0 46 -8 68 +-28z M1955 1460 c-10 -11 -27 -20 -37 -20 -10 0 -41 -22 -68 -50 -49 -48 -50 +-50 -50 -110 0 -60 1 -62 50 -110 27 -28 57 -50 66 -50 10 0 28 -10 41 -22 +l23 -21 23 21 c13 12 31 22 41 22 9 0 39 22 66 50 49 48 50 50 50 110 0 60 -1 +62 -50 110 -27 28 -58 50 -68 50 -10 0 -27 9 -37 20 -10 11 -21 20 -25 20 -4 +0 -15 -9 -25 -20z m93 -88 c30 -27 32 -34 32 -92 0 -58 -2 -65 -32 -92 -22 +-20 -42 -28 -68 -28 -26 0 -46 8 -68 28 -30 27 -32 34 -32 92 0 58 2 65 32 92 +22 20 42 28 68 28 26 0 46 -8 68 -28z M1168 1150 c-27 -27 -48 -57 -48 -66 0 +-10 -10 -28 -22 -41 l-21 -23 21 -23 c12 -13 22 -31 22 -41 0 -9 22 -39 50 +-66 48 -49 50 -50 110 -50 60 0 62 1 110 50 28 27 50 57 50 66 0 10 10 28 22 +41 l21 23 -21 23 c-12 13 -22 31 -22 41 0 9 -22 39 -50 66 -49 50 -50 50 -112 +49 -62 0 -64 -1 -110 -49z m204 -62 c20 -22 28 -42 28 -68 0 -26 -8 -46 -28 +-68 -27 -30 -34 -32 -92 -32 -58 0 -65 2 -92 32 -38 43 -38 92 0 136 25 30 31 +32 91 32 60 0 66 -2 93 -32z M555 940 c-10 -11 -27 -20 -37 -20 -10 0 -41 -22 +-68 -50 -49 -48 -50 -50 -50 -110 0 -60 1 -62 50 -110 27 -28 57 -50 66 -50 +10 0 28 -10 41 -22 l23 -21 23 21 c13 12 31 22 41 22 9 0 39 22 66 50 49 48 +50 50 50 110 0 60 -1 62 -50 110 -27 28 -58 50 -68 50 -10 0 -27 9 -37 20 -10 +11 -21 20 -25 20 -4 0 -15 -9 -25 -20z m93 -88 c30 -27 32 -34 32 -92 0 -58 +-2 -65 -32 -92 -22 -20 -42 -28 -68 -28 -26 0 -46 8 -68 28 -30 27 -32 34 -32 +92 0 58 2 65 32 92 43 38 93 38 136 0z M1955 940 c-10 -11 -27 -20 -37 -20 +-10 0 -41 -22 -68 -50 -49 -48 -50 -50 -50 -110 0 -60 1 -62 50 -110 27 -28 +57 -50 66 -50 10 0 28 -10 41 -22 l23 -21 23 21 c13 12 31 22 41 22 9 0 39 22 +66 50 49 48 50 50 50 110 0 60 -1 62 -50 110 -27 28 -58 50 -68 50 -10 0 -27 +9 -37 20 -10 11 -21 20 -25 20 -4 0 -15 -9 -25 -20z m93 -88 c30 -27 32 -34 +32 -92 0 -58 -2 -65 -32 -92 -43 -38 -93 -38 -136 0 -30 27 -32 34 -32 92 0 +58 2 65 32 92 43 38 93 38 136 0z M1168 630 c-27 -27 -48 -57 -48 -66 0 -10 +-10 -28 -22 -41 l-21 -23 21 -23 c12 -13 22 -31 22 -41 0 -9 22 -39 50 -66 48 +-49 50 -50 110 -50 60 0 62 1 110 50 28 27 50 57 50 66 0 10 10 28 22 41 l21 +23 -21 23 c-12 13 -22 31 -22 41 0 9 -22 39 -50 66 -49 50 -50 50 -112 49 -62 +0 -64 -1 -110 -49z m204 -62 c20 -22 28 -42 28 -68 0 -26 -8 -46 -28 -68 -27 +-30 -34 -32 -92 -32 -58 0 -65 2 -92 32 -38 43 -38 92 0 136 25 30 31 32 91 +32 60 0 66 -2 93 -32z"/> +</g> +</svg> diff --git a/gui/public/provider-icons/digitalocean.svg b/gui/public/provider-icons/digitalocean.svg new file mode 100644 index 0000000000..2d9a943e90 --- /dev/null +++ b/gui/public/provider-icons/digitalocean.svg @@ -0,0 +1,10 @@ +<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"> + <style> + .do-favicon { fill: #000; } + @media (prefers-color-scheme: dark) { .do-favicon { fill: #F4F5F5; } } + </style> + <path class="do-favicon" fill="#000" d="M16.0219 25.8036V32C26.4874 32 34.6316 21.8881 31.2065 10.902C29.6842 6.11214 25.8785 2.27268 21.0834 0.790112C10.1231 -2.63119 0 5.54192 0 15.9959H6.20324C6.20324 9.45741 12.7109 4.36347 19.6372 6.87243C22.187 7.78478 24.2421 9.83756 25.1555 12.3845C27.6672 19.3032 22.6057 25.8036 16.0219 25.8036Z"/> + <path class="do-favicon" fill="#000" d="M9.85547 25.8417H16.0206V19.6834H9.85547V25.8417Z"/> + <path class="do-favicon" fill="#000" d="M9.85474 30.5934H5.09766V25.8417L9.85547 25.8417L9.85474 30.5934Z"/> + <path class="do-favicon" fill="#000" d="M1.10938 25.8417H5.06727V21.8882H1.10938V25.8417Z"/> +</svg> \ No newline at end of file diff --git a/gui/public/provider-icons/featherless.svg b/gui/public/provider-icons/featherless.svg new file mode 100644 index 0000000000..dd171d68e4 --- /dev/null +++ b/gui/public/provider-icons/featherless.svg @@ -0,0 +1,4 @@ +<svg viewBox="0 0 256 256" fill="none" xmlns="http://www.w3.org/2000/svg"> + <rect width="256" height="256" rx="30" fill="#FEF47A"/> + <path d="M166 69.0916C166 69.7501 165.65 70.3585 165.083 70.6877L119.453 97.1528C118.885 97.4819 118.536 98.0902 118.536 98.7485L118.53 126.989C118.53 128.408 120.059 129.295 121.282 128.586L163.239 104.251C164.462 103.542 165.991 104.429 165.991 105.847L165.99 134.092C165.99 134.75 165.641 135.359 165.073 135.688L119.439 162.156C118.872 162.485 118.522 163.093 118.522 163.751L118.512 215.155C118.511 216.573 116.983 217.46 115.76 216.75L112.729 214.993C112.161 214.663 111.812 214.055 111.812 213.396L111.815 200.136C111.815 199.477 111.465 198.868 110.897 198.539L90.9177 186.951C90.3501 186.622 90.0004 186.013 90.0004 185.355L90 157.11C90 155.691 91.5288 154.804 92.7518 155.514L109.07 164.978C110.293 165.688 111.821 164.801 111.822 163.383L111.822 134.074L111.824 134.072L111.824 134.067L91.3876 122.214C90.82 121.885 90.4704 121.276 90.4704 120.618L90.4708 92.3732C90.4708 90.9545 91.9995 90.0679 93.2225 90.7771L109.08 99.9737C110.303 100.683 111.832 99.7962 111.832 98.3775L111.831 70.1362C111.832 69.478 112.181 68.8697 112.749 68.5406L163.248 39.2497C164.471 38.5403 166 39.427 166 40.8457V69.0916Z" fill="#141413"/> +</svg> \ No newline at end of file diff --git a/gui/public/provider-icons/hyperbolic.svg b/gui/public/provider-icons/hyperbolic.svg new file mode 100644 index 0000000000..a71713acf5 --- /dev/null +++ b/gui/public/provider-icons/hyperbolic.svg @@ -0,0 +1,18 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32.000000 32.000000"><g transform="translate(0.000000,32.000000) scale(0.100000,-0.100000)" +fill="#000000" stroke="none"><path fill="#ececec" d="M73 244 c-4 -11 1 -22 12 -30 30 -22 37 -16 20 16 -18 34 -23 37 -32 +14z M215 230 c-8 -16 -13 -30 -10 -30 16 0 45 22 45 35 0 28 -19 25 -35 -5z +M84 160 c1 -26 2 -26 39 -17 23 6 51 6 75 0 38 -10 39 -9 39 17 0 26 -1 26 +-39 16 -26 -7 -50 -7 -76 0 -38 10 -39 10 -38 -16z M88 109 c-20 -11 -24 -34 +-8 -44 5 -3 16 8 25 25 16 31 12 36 -17 19z M215 90 c16 -30 35 -33 35 -5 0 +13 -29 35 -45 35 -3 0 2 -14 10 -30z"/><path fill="#c7c7c7" d="M60 231 c0 -6 4 -13 10 -16 6 -3 7 1 4 9 -7 18 -14 21 -14 7z M246 +223 c-6 -14 -5 -15 5 -6 7 7 10 15 7 18 -3 3 -9 -2 -12 -12z M138 173 c12 -2 +32 -2 45 0 12 2 2 4 -23 4 -25 0 -35 -2 -22 -4z M80 156 c0 -8 4 -17 9 -20 5 +-4 7 3 4 14 -6 23 -13 26 -13 6z M143 143 c9 -2 25 -2 35 0 9 3 1 5 -18 5 -19 +0 -27 -2 -17 -5z"/><path fill="#3f3f3f" d="M121 194 c0 -11 3 -14 6 -6 3 7 2 16 -1 19 -3 4 -6 -2 -5 -13z M191 +194 c0 -11 3 -14 6 -6 3 7 2 16 -1 19 -3 4 -6 -2 -5 -13z M121 124 c0 -11 3 +-14 6 -6 3 7 2 16 -1 19 -3 4 -6 -2 -5 -13z M191 124 c0 -11 3 -14 6 -6 3 7 2 +16 -1 19 -3 4 -6 -2 -5 -13z"/><path fill="#5c5c5c" d="M70 189 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10 -5 +-10 -11z M235 190 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0 -7 +-4 -4 -10z M70 130 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0 +-4 -4 -4 -10z M235 130 c-3 -5 -1 -10 4 -10 6 0 11 5 11 10 0 6 -2 10 -4 10 +-3 0 -8 -4 -11 -10z"/></g></svg> \ No newline at end of file diff --git a/gui/public/provider-icons/kilo.svg b/gui/public/provider-icons/kilo.svg new file mode 100644 index 0000000000..c4b6bb8ba4 --- /dev/null +++ b/gui/public/provider-icons/kilo.svg @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 32 32"> + <rect width="32" height="32" fill="oklch(95% 0.15 108)"/> + <g fill="#000000"> + <path d="M23,26v-2h3v-5l-2-2h-4v2h-3v5l2,2h4ZM20,20h3v3h-3v-3Z"/> + <rect x="12" y="17" width="3" height="3"/> + <polygon points="26 12 23 12 23 9 20 6 17 6 17 9 20 9 20 12 17 12 17 15 26 15 26 12"/> + <path d="M0,0v32h32V0H0ZM29,29H3V3h26v26Z"/> + <polygon points="15 26 15 23 9 23 9 17 6 17 6 23.1875 8.8125 26 15 26"/> + <rect x="12" y="6" width="3" height="3"/> + <polygon points="9 12 12 12 12 15 15 15 15 12 12 9 9 9 9 6 6 6 6 15 9 15 9 12"/> + </g> +</svg> \ No newline at end of file diff --git a/gui/public/provider-icons/nanogpt.svg b/gui/public/provider-icons/nanogpt.svg new file mode 100644 index 0000000000..4344909a8b --- /dev/null +++ b/gui/public/provider-icons/nanogpt.svg @@ -0,0 +1,74 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 181.45 186.88"> + <defs> + <style> + .cls-1 { + fill: url(#linear-gradient-8); + } + .cls-2 { + fill: url(#linear-gradient-7); + } + .cls-3 { + fill: url(#linear-gradient-5); + } + .cls-4 { + fill: url(#linear-gradient-6); + } + .cls-5 { + fill: url(#linear-gradient-9); + } + .cls-6 { + fill: url(#linear-gradient-4); + } + .cls-7 { + fill: url(#linear-gradient-3); + } + .cls-8 { + fill: url(#linear-gradient-2); + } + .cls-9 { + fill: url(#linear-gradient); + } + .cls-10 { + fill: url(#linear-gradient-10); + } + .cls-11 { + fill: url(#linear-gradient-11); + } + .cls-12 { + fill: url(#linear-gradient-12); + } + </style> + <linearGradient id="linear-gradient" x1="43.86" y1="128.24" x2="145.31" y2="128.24" gradientUnits="userSpaceOnUse"> + <stop offset="0" stop-color="#015a9e"/> + <stop offset="1" stop-color="#11e9bb"/> + </linearGradient> + <linearGradient id="linear-gradient-2" x1="44.1" y1="49.57" x2="146.51" y2="49.57" xlink:href="#linear-gradient"/> + <linearGradient id="linear-gradient-3" x1="2.6" y1="69.86" x2="53.68" y2="69.86" xlink:href="#linear-gradient"/> + <linearGradient id="linear-gradient-4" x1="109.82" y1="118.94" x2="178.89" y2="118.94" xlink:href="#linear-gradient"/> + <linearGradient id="linear-gradient-5" x1="129.51" y1="46.47" x2="173.61" y2="46.47" xlink:href="#linear-gradient"/> + <linearGradient id="linear-gradient-6" x1="12.44" y1="122.84" x2="65.92" y2="122.84" xlink:href="#linear-gradient"/> + <linearGradient id="linear-gradient-7" x1="46.28" y1="157.04" x2="128.11" y2="15.32" xlink:href="#linear-gradient"/> + <linearGradient id="linear-gradient-8" x1="46.28" y1="157.04" x2="128.11" y2="15.32" xlink:href="#linear-gradient"/> + <linearGradient id="linear-gradient-9" x1="46.28" y1="157.04" x2="128.11" y2="15.32" xlink:href="#linear-gradient"/> + <linearGradient id="linear-gradient-10" x1="46.28" y1="157.04" x2="128.11" y2="15.32" xlink:href="#linear-gradient"/> + <linearGradient id="linear-gradient-11" x1="46.28" y1="157.04" x2="128.11" y2="15.32" xlink:href="#linear-gradient"/> + <linearGradient id="linear-gradient-12" x1="46.28" y1="157.04" x2="128.11" y2="15.32" xlink:href="#linear-gradient"/> + </defs> + <g> + <polygon class="cls-9" points="145.31 72.24 93.39 184.24 43.86 103.66 145.31 72.24"/> + <polyline class="cls-8" points="106.21 2.68 146.51 64.44 44.1 96.46 70.86 27.88"/> + <polygon class="cls-7" points="30.06 42.79 53.68 52.46 36.31 96.93 2.6 78.59 30.06 42.79"/> + <polygon class="cls-6" points="109.82 166.73 153.7 71.14 178.89 81.47 109.82 166.73"/> + <polygon class="cls-3" points="173.61 71.76 154.18 63.48 129.51 25.14 134.6 21.19 173.61 71.76"/> + <polygon class="cls-4" points="65.92 153.78 12.44 91.91 34.91 104.09 35.83 104.85 65.92 153.78"/> + </g> + <g> + <polygon class="cls-2" points="145.31 72.24 93.39 184.24 43.86 103.66 145.31 72.24"/> + <polyline class="cls-1" points="106.21 2.68 146.51 64.44 44.1 96.46 70.86 27.88"/> + <polygon class="cls-5" points="30.06 42.79 53.68 52.46 36.31 96.93 2.6 78.59 30.06 42.79"/> + <polygon class="cls-10" points="109.82 166.73 153.7 71.14 178.89 81.47 109.82 166.73"/> + <polygon class="cls-11" points="173.61 71.76 154.18 63.48 129.51 25.14 134.6 21.19 173.61 71.76"/> + <polygon class="cls-12" points="65.92 153.78 12.44 91.91 34.91 104.09 35.83 104.85 65.92 153.78"/> + </g> +</svg> \ No newline at end of file diff --git a/gui/public/provider-icons/nebius.svg b/gui/public/provider-icons/nebius.svg new file mode 100644 index 0000000000..4d55b7bf0b --- /dev/null +++ b/gui/public/provider-icons/nebius.svg @@ -0,0 +1 @@ +<svg fill="none" height="96" viewBox="0 0 96 96" width="96" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><clipPath id="a"><path d="m0 0h96v96h-96z"/></clipPath><mask id="b" height="96" maskUnits="userSpaceOnUse" width="96" x="0" y="0"><path d="m96 0h-96v96h96z" fill="#fff"/></mask><g clip-path="url(#a)"><g mask="url(#b)"><path d="m96 0h-96v96h96z" fill="#daff33"/><path clip-rule="evenodd" d="m46.3331 27.4668 12.243 33.8335c4.0549 9.1563 9.2098 6.3939 9.2098 6.3939 0 4.0685-3.2659 7.8683-8.0338 7.8683-4.7678 0-7.4679-2.9684-9.5229-7.5796l-12.2487-33.8336c-4.0536-8.8496-9.7663-6.0873-9.8787-6.032.0607-.0018.0929-.0018.0929-.0018l.0083 44.5261h-10.0072l-.0083-34.6309c0-9.3288 8.8962-9.8628 9.9143-9.8934.0004-4.068 3.2587-7.8673 8.0321-7.8673 4.7737 0 8.1385 2.5999 10.1992 7.2168zm21.464-4.2986.0082 44.526s10.0072 0 10.0072-9.8951l-.0082-34.6309z" fill="#052b42" fill-rule="evenodd"/></g></g></svg> \ No newline at end of file diff --git a/gui/public/provider-icons/neuralwatt.svg b/gui/public/provider-icons/neuralwatt.svg new file mode 100644 index 0000000000..3339f995c7 --- /dev/null +++ b/gui/public/provider-icons/neuralwatt.svg @@ -0,0 +1,27 @@ +<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M29.0063 32C30.6426 32 31.9691 30.6735 31.9691 29.0372C31.9691 27.4008 30.6426 26.0743 29.0063 26.0743C27.37 26.0743 26.0435 27.4008 26.0435 29.0372C26.0435 30.6735 27.37 32 29.0063 32Z" fill="#081A17"/> +<path d="M2.96281 5.92563C4.59913 5.92563 5.92563 4.59913 5.92563 2.96281C5.92563 1.3265 4.59913 0 2.96281 0C1.3265 0 0 1.3265 0 2.96281C0 4.59913 1.3265 5.92563 2.96281 5.92563Z" fill="#081A17"/> +<path d="M16.0179 18.9523C17.6534 18.9523 18.9792 17.6264 18.9792 15.991C18.9792 14.3555 17.6534 13.0297 16.0179 13.0297C14.3825 13.0297 13.0566 14.3555 13.0566 15.991C13.0566 17.6264 14.3825 18.9523 16.0179 18.9523Z" fill="#081A17"/> +<path d="M2.96243 12.1157C4.43511 12.1157 5.62896 10.9218 5.62896 9.44912C5.62896 7.97644 4.43511 6.78259 2.96243 6.78259C1.48975 6.78259 0.295898 7.97644 0.295898 9.44912C0.295898 10.9218 1.48975 12.1157 2.96243 12.1157Z" fill="#081A17"/> +<path d="M9.49905 12.1157C10.9717 12.1157 12.1656 10.9218 12.1656 9.44912C12.1656 7.97644 10.9717 6.78259 9.49905 6.78259C8.02637 6.78259 6.83252 7.97644 6.83252 9.44912C6.83252 10.9218 8.02637 12.1157 9.49905 12.1157Z" fill="#081A17"/> +<path d="M29.0064 25.199C30.4791 25.199 31.6729 24.0052 31.6729 22.5325C31.6729 21.0598 30.4791 19.866 29.0064 19.866C27.5337 19.866 26.3398 21.0598 26.3398 22.5325C26.3398 24.0052 27.5337 25.199 29.0064 25.199Z" fill="#081A17"/> +<path d="M22.5347 25.199C24.0074 25.199 25.2012 24.0052 25.2012 22.5325C25.2012 21.0598 24.0074 19.866 22.5347 19.866C21.062 19.866 19.8682 21.0598 19.8682 22.5325C19.8682 24.0052 21.062 25.199 22.5347 25.199Z" fill="#081A17"/> +<path d="M29.0064 18.3567C30.3146 18.3567 31.3752 17.2962 31.3752 15.988C31.3752 14.6798 30.3146 13.6193 29.0064 13.6193C27.6982 13.6193 26.6377 14.6798 26.6377 15.988C26.6377 17.2962 27.6982 18.3567 29.0064 18.3567Z" fill="#081A17"/> +<path d="M29.0064 12.11C30.3146 12.11 31.3752 11.0495 31.3752 9.74129C31.3752 8.43307 30.3146 7.37256 29.0064 7.37256C27.6982 7.37256 26.6377 8.43307 26.6377 9.74129C26.6377 11.0495 27.6982 12.11 29.0064 12.11Z" fill="#081A17"/> +<path d="M29.0064 5.33146C30.3146 5.33146 31.3752 4.27094 31.3752 2.96272C31.3752 1.65451 30.3146 0.593994 29.0064 0.593994C27.6982 0.593994 26.6377 1.65451 26.6377 2.96272C26.6377 4.27094 27.6982 5.33146 29.0064 5.33146Z" fill="#081A17"/> +<path d="M2.96297 18.298C4.27118 18.298 5.3317 17.2375 5.3317 15.9293C5.3317 14.6211 4.27118 13.5605 2.96297 13.5605C1.65476 13.5605 0.594238 14.6211 0.594238 15.9293C0.594238 17.2375 1.65476 18.298 2.96297 18.298Z" fill="#081A17"/> +<path d="M2.96297 24.9012C4.27118 24.9012 5.3317 23.8406 5.3317 22.5324C5.3317 21.2242 4.27118 20.1637 2.96297 20.1637C1.65476 20.1637 0.594238 21.2242 0.594238 22.5324C0.594238 23.8406 1.65476 24.9012 2.96297 24.9012Z" fill="#081A17"/> +<path d="M2.96297 31.3483C4.27118 31.3483 5.3317 30.2878 5.3317 28.9796C5.3317 27.6714 4.27118 26.6108 2.96297 26.6108C1.65476 26.6108 0.594238 27.6714 0.594238 28.9796C0.594238 30.2878 1.65476 31.3483 2.96297 31.3483Z" fill="#081A17"/> +<path opacity="0.5" d="M9.4988 17.8826C10.5771 17.8826 11.4512 17.0085 11.4512 15.9302C11.4512 14.8519 10.5771 13.9778 9.4988 13.9778C8.42051 13.9778 7.54639 14.8519 7.54639 15.9302C7.54639 17.0085 8.42051 17.8826 9.4988 17.8826Z" fill="#081A17"/> +<path opacity="0.5" d="M22.5349 17.9418C23.6123 17.9418 24.4858 17.0684 24.4858 15.9909C24.4858 14.9135 23.6123 14.04 22.5349 14.04C21.4574 14.04 20.584 14.9135 20.584 15.9909C20.584 17.0684 21.4574 17.9418 22.5349 17.9418Z" fill="#081A17"/> +<path opacity="0.5" d="M16.0182 11.4025C17.0646 11.4025 17.9129 10.5542 17.9129 9.50784C17.9129 8.46144 17.0646 7.61316 16.0182 7.61316C14.9718 7.61316 14.1235 8.46144 14.1235 9.50784C14.1235 10.5542 14.9718 11.4025 16.0182 11.4025Z" fill="#081A17"/> +<path opacity="0.5" d="M16.0177 24.4256C17.0632 24.4256 17.9108 23.578 17.9108 22.5324C17.9108 21.4869 17.0632 20.6393 16.0177 20.6393C14.9721 20.6393 14.1245 21.4869 14.1245 22.5324C14.1245 23.578 14.9721 24.4256 16.0177 24.4256Z" fill="#081A17"/> +<path opacity="0.5" d="M9.49903 4.67762C10.4456 4.67762 11.2129 3.9103 11.2129 2.96375C11.2129 2.0172 10.4456 1.24988 9.49903 1.24988C8.55248 1.24988 7.78516 2.0172 7.78516 2.96375C7.78516 3.9103 8.55248 4.67762 9.49903 4.67762Z" fill="#081A17"/> +<path opacity="0.5" d="M22.5351 30.7495C23.4808 30.7495 24.2475 29.9829 24.2475 29.0372C24.2475 28.0915 23.4808 27.3248 22.5351 27.3248C21.5894 27.3248 20.8228 28.0915 20.8228 29.0372C20.8228 29.9829 21.5894 30.7495 22.5351 30.7495Z" fill="#081A17"/> +<path opacity="0.3" d="M22.535 10.9847C23.3506 10.9847 24.0118 10.3235 24.0118 9.50785C24.0118 8.69221 23.3506 8.03101 22.535 8.03101C21.7193 8.03101 21.0581 8.69221 21.0581 9.50785C21.0581 10.3235 21.7193 10.9847 22.535 10.9847Z" fill="#081A17"/> +<path opacity="0.3" d="M9.49877 23.9502C10.3136 23.9502 10.9741 23.2896 10.9741 22.4748C10.9741 21.66 10.3136 20.9995 9.49877 20.9995C8.68396 20.9995 8.02344 21.66 8.02344 22.4748C8.02344 23.2896 8.68396 23.9502 9.49877 23.9502Z" fill="#081A17"/> +<path opacity="0.3" d="M16.0179 30.0384C16.5709 30.0384 17.0192 29.5902 17.0192 29.0372C17.0192 28.4842 16.5709 28.0359 16.0179 28.0359C15.4649 28.0359 15.0166 28.4842 15.0166 29.0372C15.0166 29.5902 15.4649 30.0384 16.0179 30.0384Z" fill="#081A17"/> +<path opacity="0.3" d="M16.0178 4.02273C16.5691 4.02273 17.016 3.5758 17.016 3.02449C17.016 2.47317 16.5691 2.02625 16.0178 2.02625C15.4665 2.02625 15.0195 2.47317 15.0195 3.02449C15.0195 3.5758 15.4665 4.02273 16.0178 4.02273Z" fill="#081A17"/> +<path opacity="0.1" d="M9.49903 29.5646C9.8221 29.5646 10.084 29.3027 10.084 28.9796C10.084 28.6565 9.8221 28.3947 9.49903 28.3947C9.17596 28.3947 8.91406 28.6565 8.91406 28.9796C8.91406 29.3027 9.17596 29.5646 9.49903 29.5646Z" fill="#081A17"/> +<path opacity="0.1" d="M22.5345 3.59856C22.8551 3.59856 23.1149 3.3387 23.1149 3.01815C23.1149 2.6976 22.8551 2.43774 22.5345 2.43774C22.214 2.43774 21.9541 2.6976 21.9541 3.01815C21.9541 3.3387 22.214 3.59856 22.5345 3.59856Z" fill="#081A17"/> +</svg> \ No newline at end of file diff --git a/gui/public/provider-icons/novita.svg b/gui/public/provider-icons/novita.svg new file mode 100644 index 0000000000..75f64f25a4 --- /dev/null +++ b/gui/public/provider-icons/novita.svg @@ -0,0 +1,32 @@ +<?xml version="1.0" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" + "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> +<svg version="1.0" xmlns="http://www.w3.org/2000/svg" + width="256.000000pt" height="256.000000pt" viewBox="0 0 256.000000 256.000000" + preserveAspectRatio="xMidYMid meet"> +<metadata> +Created by potrace 1.16, written by Peter Selinger 2001-2019 +</metadata> +<g transform="translate(0.000000,256.000000) scale(0.100000,-0.100000)" +fill="#000000" stroke="none"> +<path d="M964 2159 c-4 -7 -6 -137 -5 -288 1 -152 -1 -283 -4 -293 -4 -9 -19 +-21 -34 -28 -16 -6 -33 -22 -39 -35 -6 -13 -24 -31 -39 -39 -16 -8 -35 -26 +-43 -41 -8 -15 -27 -33 -43 -41 -15 -8 -33 -26 -39 -39 -6 -14 -15 -25 -21 +-25 -5 0 -30 -21 -57 -47 -66 -65 -71 -71 -100 -99 -14 -13 -34 -34 -45 -45 +-11 -12 -27 -27 -35 -35 -8 -7 -28 -26 -43 -41 -16 -16 -33 -32 -39 -38 -5 -5 +-32 -30 -58 -55 -26 -25 -53 -49 -58 -55 -6 -5 -25 -25 -44 -43 -75 -76 -94 +-92 -106 -92 -7 0 -18 -11 -24 -25 -9 -21 -9 -29 4 -42 14 -14 64 -15 429 -14 +289 2 417 6 427 13 11 9 13 61 11 260 -2 166 1 252 8 259 19 19 57 5 78 -28 +11 -18 28 -35 38 -38 9 -4 24 -20 32 -36 9 -16 29 -36 46 -44 16 -9 35 -27 41 +-40 6 -14 15 -25 21 -25 5 0 30 -21 57 -47 66 -65 71 -71 100 -99 14 -13 34 +-34 45 -45 21 -22 40 -40 79 -75 13 -11 25 -27 28 -35 4 -12 75 -15 459 -19 +418 -5 456 -4 473 12 17 15 18 21 8 43 -6 14 -17 25 -24 25 -12 0 -31 16 -105 +90 -51 52 -53 53 -103 100 -26 25 -53 50 -60 57 -6 6 -24 23 -38 37 -15 14 +-36 36 -47 47 -11 12 -27 28 -36 36 -15 13 -27 25 -79 76 -7 7 -34 32 -60 57 +-26 25 -53 50 -60 57 -6 6 -24 23 -38 37 -15 14 -36 36 -47 47 -11 12 -27 28 +-36 36 -15 14 -34 32 -77 75 -8 7 -36 33 -62 58 -26 25 -53 50 -58 55 -6 6 +-23 22 -39 37 -15 16 -37 38 -48 49 -11 12 -27 28 -36 36 -9 9 -28 26 -42 40 +-14 14 -31 30 -37 36 -7 7 -49 49 -95 95 -45 45 -88 82 -94 82 -6 0 -21 16 +-32 35 -11 19 -28 37 -37 40 -9 3 -26 20 -37 38 -21 34 -67 48 -81 26z"/> +</g> +</svg> diff --git a/gui/public/provider-icons/orcarouter.svg b/gui/public/provider-icons/orcarouter.svg new file mode 100644 index 0000000000..4cd5bf9f47 --- /dev/null +++ b/gui/public/provider-icons/orcarouter.svg @@ -0,0 +1,175 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 160.000000 160.000000"><g transform="translate(0.000000,160.000000) scale(0.100000,-0.100000)" +fill="#000000" stroke="none"><path fill="#137bf7" d="M1189 1404 c-41 -62 -59 -101 -59 -128 0 -31 15 -42 16 -13 1 12 18 +50 38 85 43 72 47 119 5 56z M888 1227 c-37 -13 -71 -26 -75 -30 -13 -14 6 +-18 28 -6 70 37 199 50 248 25 36 -19 95 -85 123 -138 23 -46 32 -152 13 -166 +-6 -4 -19 -24 -29 -45 -14 -27 -34 -44 -73 -64 -52 -25 -57 -25 -111 -13 -74 +17 -84 27 -44 42 30 12 43 28 22 28 -20 0 -90 -32 -90 -42 0 -15 88 -49 144 +-55 99 -10 205 49 235 130 16 42 13 107 -8 152 -24 52 -105 141 -160 177 -57 +36 -128 37 -223 5z M1269 1132 c16 -21 35 -50 42 -65 7 -15 20 -27 30 -27 20 +0 43 -37 53 -86 9 -40 -16 -114 -45 -134 -13 -8 -38 -31 -56 -51 -50 -53 -164 +-104 -233 -102 -95 1 -221 60 -368 171 -113 86 -358 214 -371 194 -6 -10 -20 +-7 -62 12 -76 34 -104 39 -119 21 -10 -13 -9 -15 11 -15 39 0 69 -11 62 -23 +-3 -6 -1 -7 6 -3 6 4 48 -15 94 -42 45 -28 99 -57 120 -66 30 -12 37 -20 34 +-38 -2 -13 -2 -17 0 -11 12 34 91 20 150 -27 38 -30 75 -83 70 -101 -4 -15 18 +-28 153 -87 51 -23 162 -58 203 -65 49 -8 176 27 197 53 3 4 16 13 28 19 66 +35 137 121 162 195 9 28 15 35 21 25 13 -19 0 36 -19 81 -26 64 -83 139 -132 +175 -61 45 -69 44 -31 -3z M1140 1000 c0 -5 7 -7 15 -4 8 4 15 8 15 10 0 2 -7 +4 -15 4 -8 0 -15 -4 -15 -10z M826 498 c3 -7 46 -47 96 -88 155 -128 248 -223 +248 -253 0 -4 -10 -12 -22 -18 -18 -7 -10 -8 31 -5 81 8 89 22 47 77 -95 122 +-274 259 -383 293 -17 5 -21 4 -17 -6z M279 393 c-37 -59 -52 -107 -47 -153 3 +-34 4 -35 51 -38 28 -2 47 1 47 7 0 6 -7 11 -15 11 -8 0 -22 11 -31 25 -21 32 +-15 97 13 155 27 54 19 51 -18 -7z M1098 133 c7 -3 16 -2 19 1 4 3 -2 6 -13 5 +-11 0 -14 -3 -6 -6z"/><path fill="#054ecf" d="M1183 1347 c-37 -66 -47 -93 -35 -101 5 -3 9 1 9 8 0 12 41 76 56 87 +5 3 7 18 5 34 -3 25 -5 23 -35 -28z M907 1215 c-55 -15 -78 -31 -32 -21 17 3 +66 9 110 12 77 6 82 6 113 -21 38 -32 66 -81 56 -97 -4 -7 -3 -8 4 -4 14 8 36 +-30 26 -46 -4 -6 -3 -8 3 -5 6 4 13 -3 17 -16 9 -35 7 -42 -7 -23 -8 11 -19 +15 -30 10 -27 -10 -16 -39 16 -42 21 -3 27 -9 27 -28 0 -37 17 -29 24 12 9 43 +0 86 -26 137 -24 48 -83 114 -119 133 -34 17 -117 17 -182 -1z M130 1043 c0 +-6 11 -8 24 -6 54 11 180 -86 249 -190 19 -29 49 -62 66 -75 17 -12 37 -37 44 +-55 19 -44 41 -60 90 -64 59 -5 68 -9 60 -30 -7 -17 -6 -17 11 0 26 26 79 15 +197 -39 52 -24 101 -44 107 -44 16 0 15 -20 0 -21 -7 0 3 -7 22 -14 44 -17 +132 -19 148 -3 7 7 12 9 12 5 0 -4 19 14 42 39 49 53 91 78 123 72 26 -5 62 +23 114 90 32 41 33 46 27 99 -9 81 -20 95 -36 47 -25 -74 -96 -160 -162 -195 +-12 -6 -25 -15 -28 -19 -10 -13 -80 -41 -124 -49 -53 -10 -77 -7 -166 21 -67 +20 -83 27 -185 74 -33 15 -79 29 -101 30 -58 3 -106 28 -159 85 -38 41 -46 55 +-41 75 6 22 2 27 -31 41 -21 8 -79 40 -130 70 -87 52 -173 79 -173 56z M957 +829 c-22 -13 -13 -29 16 -29 18 0 19 2 7 10 -10 6 -11 10 -2 10 6 0 12 5 12 +10 0 13 -10 12 -33 -1z M710 565 c0 -9 100 -130 158 -190 94 -98 152 -170 152 +-189 0 -20 -11 -20 -58 0 -20 8 -32 10 -26 4 34 -35 202 -66 226 -42 22 22 +-44 96 -222 247 -58 49 -108 93 -111 97 -6 9 -119 78 -119 73z M331 453 c-17 +-20 -37 -57 -46 -82 -27 -80 -16 -133 31 -151 30 -12 115 18 159 55 29 25 29 +26 2 9 -39 -23 -95 -13 -124 23 -31 38 -32 119 -2 157 32 40 15 31 -20 -11z +M1314 448 l-19 -23 23 19 c12 11 22 21 22 23 0 8 -8 2 -26 -19z"/><path fill="#5ca7fc" d="M1163 1428 c-45 -46 -73 -101 -73 -144 0 -21 -3 -25 -17 -19 -34 15 +-121 17 -159 5 -51 -16 -114 -59 -114 -77 0 -12 3 -12 15 1 24 23 140 56 199 +56 64 0 119 -32 190 -111 79 -87 104 -170 75 -246 -30 -81 -136 -140 -235 +-130 -57 6 -144 40 -144 56 0 5 24 19 53 30 l52 20 -36 0 c-20 1 -56 -6 -79 +-14 -56 -20 -76 -14 -202 62 -120 72 -246 127 -328 143 -30 6 -74 15 -98 20 +-65 15 -108 12 -123 -7 -12 -16 -12 -17 2 -6 18 14 70 3 133 -29 31 -16 40 +-17 47 -7 13 21 255 -105 371 -193 147 -111 273 -170 368 -171 72 -2 182 48 +238 108 36 37 38 42 17 38 -40 -8 -47 23 -19 89 27 64 45 138 35 138 -4 0 -13 +12 -20 27 -7 15 -26 44 -42 65 -36 45 -30 48 20 11 29 -21 32 -22 17 -5 -11 +12 -44 34 -75 49 -112 53 -123 83 -65 179 47 78 54 84 55 49 1 -19 3 -23 6 +-12 6 22 -4 67 -15 67 -4 0 -27 -19 -49 -42z M1360 1076 c0 -2 8 -10 18 -17 +15 -13 16 -12 3 4 -13 16 -21 21 -21 13z M1400 1020 c6 -11 13 -20 16 -20 2 0 +0 9 -6 20 -6 11 -13 20 -16 20 -2 0 0 -9 6 -20z M1392 930 c0 -14 2 -19 5 -12 +2 6 2 18 0 25 -3 6 -5 1 -5 -13z M498 883 c6 -2 18 -2 25 0 6 3 1 5 -13 5 -14 +0 -19 -2 -12 -5z M1043 783 c9 -2 23 -2 30 0 6 3 -1 5 -18 5 -16 0 -22 -2 -12 +-5z M299 433 c-13 -16 -12 -17 4 -4 16 13 21 21 13 21 -2 0 -10 -8 -17 -17z +M251 363 c-40 -64 -58 -128 -41 -148 20 -25 25 -18 22 32 -3 37 3 61 26 106 +16 31 27 57 25 57 -1 0 -16 -21 -32 -47z M1120 325 c8 -11 26 -28 38 -39 13 +-10 42 -41 63 -69 31 -39 37 -52 28 -63 -9 -12 -9 -13 4 -8 39 15 30 51 -21 +91 -21 15 -57 46 -82 68 -25 22 -38 31 -30 20z M263 193 c9 -2 25 -2 35 0 9 3 +1 5 -18 5 -19 0 -27 -2 -17 -5z M1208 133 c7 -3 16 -2 19 1 4 3 -2 6 -13 5 +-11 0 -14 -3 -6 -6z"/><path fill="#05309b" d="M1178 1296 c-26 -40 -29 -54 -9 -41 14 8 43 64 39 74 -2 5 -15 -10 +-30 -33z M920 1201 l-35 -7 34 -7 c18 -4 66 -7 105 -7 l71 0 46 -73 c25 -39 +49 -85 54 -102 4 -17 10 -24 12 -17 8 21 -68 161 -105 193 -28 25 -40 29 -90 +28 -31 -1 -73 -5 -92 -8z M1185 940 c10 -11 20 -20 22 -20 1 0 3 9 3 20 0 14 +-7 20 -22 20 -20 0 -21 -1 -3 -20z M1436 705 c-9 -14 -31 -39 -49 -56 -20 -20 +-36 -48 -45 -82 -13 -54 -46 -111 -91 -161 l-26 -29 31 21 c93 64 181 199 197 +301 6 38 4 38 -17 6z M585 645 c61 -45 96 -92 125 -169 42 -109 69 -153 129 +-209 47 -44 139 -97 169 -97 38 0 -8 68 -140 205 -37 39 -88 97 -113 129 -25 +33 -57 70 -71 83 -15 14 -23 30 -20 39 6 16 -1 20 -59 28 -37 5 -38 4 -20 -9z +M915 501 l-40 -6 32 -14 c18 -7 64 -35 103 -62 l70 -48 24 32 c24 33 56 91 56 +103 0 3 -7 1 -15 -6 -14 -12 -61 -11 -160 4 -16 2 -48 1 -70 -3z M356 469 +c-34 -40 -36 -116 -6 -160 43 -59 118 -48 194 30 l36 37 -42 24 c-24 12 -63 +37 -88 55 -25 17 -50 34 -57 38 -6 4 -22 -6 -37 -24z"/><path fill="#b8c9e3" d="M1175 1458 c-32 -25 -85 -105 -85 -127 0 -9 9 2 19 24 10 22 37 58 +60 80 35 33 44 37 52 25 9 -12 10 -12 7 -1 -7 23 -23 23 -53 -1z M1221 1344 +c0 -11 3 -14 6 -6 3 7 2 16 -1 19 -3 4 -6 -2 -5 -13z M1078 1285 c-3 -14 -1 +-25 3 -25 5 0 9 11 9 25 0 14 -2 25 -4 25 -2 0 -6 -11 -8 -25z M885 1271 c-22 +-10 -47 -26 -55 -37 -13 -16 -11 -16 12 2 39 30 110 47 169 42 29 -3 45 -2 37 +3 -23 15 -121 9 -163 -10z M1170 1245 c-11 -13 -11 -18 0 -28 10 -9 11 -9 6 1 +-4 7 -2 19 4 27 7 8 10 15 7 15 -2 0 -10 -7 -17 -15z M793 1190 c2 -8 16 -16 +33 -17 25 -1 26 0 4 4 -14 3 -29 10 -33 17 -6 7 -7 6 -4 -4z M918 1173 c12 -2 +32 -2 45 0 12 2 2 4 -23 4 -25 0 -35 -2 -22 -4z M1040 1176 c0 -2 13 -6 29 -8 +17 -2 28 -1 25 4 -5 8 -54 12 -54 4z M1305 1140 c10 -11 20 -20 23 -20 3 0 -3 +9 -13 20 -10 11 -20 20 -23 20 -3 0 3 -9 13 -20z M1360 1085 c13 -14 26 -25 +28 -25 3 0 -5 11 -18 25 -13 14 -26 25 -28 25 -3 0 5 -11 18 -25z M178 1093 +c12 -2 30 -2 40 0 9 3 -1 5 -23 4 -22 0 -30 -2 -17 -4z M130 1075 c-7 -9 -11 +-17 -9 -20 3 -2 10 5 17 15 14 24 10 26 -8 5z M283 1073 c9 -2 25 -2 35 0 9 3 +1 5 -18 5 -19 0 -27 -2 -17 -5z M358 1063 c7 -3 16 -2 19 1 4 3 -2 6 -13 5 +-11 0 -14 -3 -6 -6z M440 1039 c30 -10 94 -39 143 -63 48 -25 87 -43 87 -41 0 +16 -241 126 -272 124 -7 0 12 -9 42 -20z M1167 1029 c4 -13 8 -18 11 -10 2 7 +-1 18 -6 23 -8 8 -9 4 -5 -13z M1333 1025 c-3 -9 -3 -19 1 -22 3 -4 6 2 6 12 +0 15 2 16 18 4 15 -13 16 -12 3 4 -17 21 -20 21 -28 2z M130 1020 c-9 -6 -10 +-10 -3 -10 6 0 15 5 18 10 8 12 4 12 -15 0z M1135 1009 c-4 -6 -5 -12 -2 -15 +2 -3 7 2 10 11 7 17 1 20 -8 4z M125 936 c10 -114 93 -273 194 -374 33 -33 49 +-57 45 -65 -6 -9 -5 -9 7 0 12 10 24 6 65 -23 27 -19 70 -47 96 -62 27 -15 48 +-31 48 -37 0 -5 -19 -30 -42 -55 l-43 -45 50 47 c44 41 53 45 75 36 14 -6 54 +-19 90 -29 49 -14 76 -30 115 -66 l50 -48 -45 49 c-25 26 -60 55 -78 62 -26 +12 -31 19 -27 37 3 12 -1 40 -9 62 -8 22 -15 32 -15 23 -1 -24 -31 -23 -94 4 +-191 79 -407 305 -468 488 l-19 55 5 -59z M275 970 c10 -11 20 -20 23 -20 3 0 +-3 9 -13 20 -10 11 -20 20 -23 20 -3 0 3 -9 13 -20z M1381 954 c0 -11 3 -14 6 +-6 3 7 2 16 -1 19 -3 4 -6 -2 -5 -13z M1176 929 c16 -20 31 -34 33 -32 3 2 +-10 18 -29 36 l-34 32 30 -36z M680 927 c0 -7 115 -77 126 -77 5 0 -7 10 -26 +21 -19 12 -50 30 -67 41 -18 11 -33 17 -33 15z M350 895 c13 -14 26 -25 28 +-25 3 0 -5 11 -18 25 -13 14 -26 25 -28 25 -3 0 5 -11 18 -25z M1381 904 c0 +-11 3 -14 6 -6 3 7 2 16 -1 19 -3 4 -6 -2 -5 -13z M473 864 c-3 -8 -2 -19 3 +-24 5 -5 9 1 9 16 0 28 -3 30 -12 8z M962 873 c20 -2 39 -10 41 -16 2 -7 3 -5 +3 3 -1 10 -13 15 -41 16 l-40 1 37 -4z M1164 838 l-19 -23 23 19 c21 18 27 26 +19 26 -2 0 -12 -10 -23 -22z M400 830 c6 -11 13 -20 16 -20 2 0 0 9 -6 20 -6 +11 -13 20 -16 20 -2 0 0 -9 6 -20z M838 843 c7 -3 16 -2 19 1 4 3 -2 6 -13 5 +-11 0 -14 -3 -6 -6z M1349 833 c-13 -16 -12 -17 4 -4 9 7 17 15 17 17 0 8 -8 +3 -21 -13z M1473 790 c0 -36 2 -50 4 -32 2 17 2 47 0 65 -2 17 -4 3 -4 -33z +M610 837 c0 -2 15 -16 33 -33 l32 -29 -29 33 c-28 30 -36 37 -36 29z M990 821 +c0 -6 4 -13 10 -16 6 -3 7 1 4 9 -7 18 -14 21 -14 7z M500 806 c0 -2 8 -10 18 +-17 15 -13 16 -12 3 4 -13 16 -21 21 -21 13z M470 755 c13 -14 26 -25 28 -25 +3 0 -5 11 -18 25 -13 14 -26 25 -28 25 -3 0 5 -11 18 -25z M540 776 c0 -2 8 +-10 18 -17 15 -13 16 -12 3 4 -13 16 -21 21 -21 13z M638 723 c6 -2 18 -2 25 +0 6 3 1 5 -13 5 -14 0 -19 -2 -12 -5z M1461 684 c0 -11 3 -14 6 -6 3 7 2 16 +-1 19 -3 4 -6 -2 -5 -13z M520 676 c0 -2 8 -10 18 -17 15 -13 16 -12 3 4 -13 +16 -21 21 -21 13z M590 626 c0 -2 8 -10 18 -17 15 -13 16 -12 3 4 -13 16 -21 +21 -21 13z M738 623 c7 -3 16 -2 19 1 4 3 -2 6 -13 5 -11 0 -14 -3 -6 -6z +M1310 616 c0 -2 7 -7 16 -10 8 -3 12 -2 9 4 -6 10 -25 14 -25 6z M801 606 c10 +-9 89 -46 89 -41 0 5 -75 45 -86 45 -4 0 -5 -2 -3 -4z M1275 600 c-3 -6 1 -7 +9 -4 18 7 21 14 7 14 -6 0 -13 -4 -16 -10z M645 570 c10 -11 20 -20 23 -20 3 +0 -3 9 -13 20 -10 11 -20 20 -23 20 -3 0 3 -9 13 -20z M1295 509 c-16 -21 -34 +-38 -38 -39 -5 0 -21 -8 -35 -19 -43 -30 -72 -36 -72 -14 0 12 -8 5 -26 -20 +-14 -21 -24 -40 -22 -41 1 -2 13 -9 26 -15 17 -9 21 -16 13 -25 -8 -9 -2 -20 +22 -42 l32 -29 -28 31 -28 31 38 16 c21 9 27 14 13 11 -20 -5 -17 0 16 24 45 +33 81 77 109 130 23 47 16 47 -20 1z M960 529 c0 -5 5 -7 10 -4 6 3 10 8 10 +11 0 2 -4 4 -10 4 -5 0 -10 -5 -10 -11z M828 513 c7 -3 16 -2 19 1 4 3 -2 6 +-13 5 -11 0 -14 -3 -6 -6z M928 513 c7 -3 16 -2 19 1 4 3 -2 6 -13 5 -11 0 +-14 -3 -6 -6z M1325 448 l-50 -53 53 50 c48 46 57 55 49 55 -1 0 -25 -24 -52 +-52z M319 463 c-13 -16 -12 -17 4 -4 9 7 17 15 17 17 0 8 -8 3 -21 -13z M269 +403 c-13 -16 -12 -17 4 -4 9 7 17 15 17 17 0 8 -8 3 -21 -13z M240 360 c-6 +-11 -8 -20 -6 -20 3 0 10 9 16 20 6 11 8 20 6 20 -3 0 -10 -9 -16 -20z M469 +263 c-13 -16 -12 -17 4 -4 9 7 17 15 17 17 0 8 -8 3 -21 -13z M1215 250 c10 +-11 20 -20 23 -20 3 0 -3 9 -13 20 -10 11 -20 20 -23 20 -3 0 3 -9 13 -20z +M318 193 c7 -3 16 -2 19 1 4 3 -2 6 -13 5 -11 0 -14 -3 -6 -6z M1107 123 c18 +-2 50 -2 70 0 21 2 7 4 -32 4 -38 0 -55 -2 -38 -4z"/><path fill="#6884c4" d="M1221 1374 c0 -11 3 -14 6 -6 3 7 2 16 -1 19 -3 4 -6 -2 -5 -13z +M1200 1302 c0 -6 -12 -25 -27 -44 -22 -27 -23 -29 -4 -13 27 23 45 54 37 63 +-3 3 -6 0 -6 -6z M853 1183 c15 -2 37 -2 50 0 12 2 0 4 -28 4 -27 0 -38 -2 +-22 -4z M993 1173 c9 -2 25 -2 35 0 9 3 1 5 -18 5 -19 0 -27 -2 -17 -5z M1130 +1110 c6 -11 13 -20 16 -20 2 0 0 9 -6 20 -6 11 -13 20 -16 20 -2 0 0 -9 6 -20z +M1160 1060 c6 -11 13 -20 16 -20 2 0 0 9 -6 20 -6 11 -13 20 -16 20 -2 0 0 -9 +6 -20z M130 1030 c-11 -7 -5 -8 20 -4 43 8 51 14 19 14 -13 0 -31 -5 -39 -10z +M320 935 c30 -30 57 -55 59 -55 3 0 -19 25 -49 55 -30 30 -57 55 -59 55 -3 0 +19 -25 49 -55z M1150 967 c0 -2 15 -16 33 -33 l32 -29 -29 33 c-28 30 -36 37 +-36 29z M380 866 c0 -2 8 -10 18 -17 15 -13 16 -12 3 4 -13 16 -21 21 -21 13z +M1461 844 c0 -11 3 -14 6 -6 3 7 2 16 -1 19 -3 4 -6 -2 -5 -13z M420 806 c0 +-2 8 -10 18 -17 15 -13 16 -12 3 4 -13 16 -21 21 -21 13z M481 754 c13 -17 26 +-30 28 -27 3 2 -8 16 -24 31 l-28 27 24 -31z M1462 720 c0 -14 2 -19 5 -12 2 +6 2 18 0 25 -3 6 -5 1 -5 -13z M535 670 c10 -11 20 -20 23 -20 3 0 -3 9 -13 +20 -10 11 -20 20 -23 20 -3 0 3 -9 13 -20z M698 633 c6 -2 18 -2 25 0 6 3 1 5 +-13 5 -14 0 -19 -2 -12 -5z M630 595 c19 -19 36 -35 39 -35 3 0 -10 16 -29 35 +-19 19 -36 35 -39 35 -3 0 10 -16 29 -35z M1338 593 c5 -21 7 -23 10 -9 2 10 +0 22 -6 28 -6 6 -7 0 -4 -19z M1417 585 c-9 -19 -15 -35 -12 -35 7 0 37 61 33 +66 -3 2 -12 -12 -21 -31z M685 590 c10 -11 20 -20 23 -20 3 0 -3 9 -13 20 -10 +11 -20 20 -23 20 -3 0 3 -9 13 -20z M1243 584 l-28 -25 33 22 c17 13 32 24 32 +26 0 8 -11 1 -37 -23z M894 566 c11 -9 24 -16 30 -16 12 0 7 5 -24 19 -24 11 +-24 11 -6 -3z M966 524 c-11 -8 -16 -14 -10 -14 13 0 39 18 34 24 -3 2 -14 -2 +-24 -10z M1179 523 c-13 -16 -12 -17 4 -4 16 13 21 21 13 21 -2 0 -10 -8 -17 +-17z M1311 503 c-10 -26 -10 -27 4 -9 8 11 15 23 15 28 0 15 -7 8 -19 -19z +M374 499 c-4 -7 -3 -9 3 -6 5 3 32 -10 59 -29 44 -32 117 -74 104 -61 -4 4 +-123 85 -152 103 -4 2 -10 -1 -14 -7z M863 503 c15 -2 37 -2 50 0 12 2 0 4 +-28 4 -27 0 -38 -2 -22 -4z M1354 488 l-19 -23 23 19 c21 18 27 26 19 26 -2 0 +-12 -10 -23 -22z M1131 446 c-16 -30 -35 -57 -41 -61 -16 -10 -12 -23 16 -41 +17 -12 28 -14 36 -6 7 7 3 14 -13 22 -13 7 -26 14 -28 16 -2 1 6 15 17 31 23 +33 54 93 48 93 -2 0 -18 -24 -35 -54z M334 468 l-19 -23 23 19 c21 18 27 26 +19 26 -2 0 -12 -10 -23 -22z M700 479 c0 -4 7 -26 15 -50 9 -24 13 -54 10 -67 +-4 -18 0 -24 22 -33 15 -6 55 -36 88 -68 33 -32 71 -63 85 -70 l25 -12 -25 18 +c-79 56 -144 131 -181 208 -21 44 -39 77 -39 74z M1259 423 c-8 -9 -32 -30 +-54 -46 -31 -23 -34 -28 -15 -22 34 10 85 41 101 63 13 16 12 16 -7 0 -28 -24 +-41 -23 -19 2 10 11 16 20 13 20 -3 0 -12 -8 -19 -17z M557 389 c7 -7 15 -10 +18 -7 3 3 -2 9 -12 12 -14 6 -15 5 -6 -5z M530 325 c-24 -25 -42 -45 -39 -45 +3 0 25 20 49 45 24 25 42 45 39 45 -3 0 -25 -20 -49 -45z"/></g></svg> \ No newline at end of file diff --git a/gui/public/provider-icons/parallel.svg b/gui/public/provider-icons/parallel.svg new file mode 100644 index 0000000000..5d87359bf9 --- /dev/null +++ b/gui/public/provider-icons/parallel.svg @@ -0,0 +1,13 @@ +<svg width="96" height="96" viewBox="0 0 96 96" fill="none" xmlns="http://www.w3.org/2000/svg"> +<circle cx="48" cy="48" r="48" fill="#ffffff"/> +<g transform="translate(11.0025 11.0) scale(1.088235)"> +<path d="M67.271 26.6083H48.6399C48.6897 26.9014 48.7305 27.1991 48.7712 27.4967H19.1336C19.0793 27.8891 19.0249 28.286 18.9797 28.6783H0.235433C0.144881 29.2646 0.0633863 29.8554 0 30.4552H18.8076C18.7759 30.8476 18.7533 31.2445 18.7307 31.6368H49.1742C49.1878 31.93 49.2014 32.2276 49.2104 32.5253H67.9954V31.5782C67.8732 29.8825 67.6332 28.2228 67.271 26.6083Z" fill="#181818"/> +<path d="M49.1742 36.3677H18.7307C18.7488 36.7646 18.7759 37.1569 18.8076 37.5493H0C0.0633863 38.1446 0.140354 38.7354 0.235433 39.3262H18.9797C19.0249 39.723 19.0748 40.1154 19.1336 40.5078H48.7712C48.7305 40.8054 48.6852 41.0986 48.6399 41.3962H67.271C67.6332 39.7817 67.8732 38.122 67.9954 36.4263V35.4792H49.2104C49.2014 35.7769 49.1878 36.07 49.1742 36.3677Z" fill="#181818"/> +<path d="M47.8341 45.2431H20.0618C20.1614 45.64 20.2701 46.0323 20.3788 46.4247H2.16877C2.40421 47.0245 2.65775 47.6153 2.92488 48.2016H20.9175C21.0488 48.5985 21.1801 48.9908 21.3205 49.3832H46.5664C46.4577 49.6808 46.349 49.974 46.2358 50.2716H63.9252C64.9529 48.4 65.8041 46.4202 66.4651 44.3547H48.0424C47.9744 44.6523 47.902 44.9455 47.8296 45.2431H47.8341Z" fill="#181818"/> +<path d="M44.5696 54.1186H23.3307C23.5254 54.5154 23.7291 54.9123 23.9374 55.3002H7.34827C7.84178 55.909 8.3534 56.4998 8.88313 57.0771H24.9244C25.1598 57.4739 25.3998 57.8708 25.6443 58.2586H42.2606C42.0749 58.5563 41.8848 58.8539 41.6901 59.1471H56.9345C58.8768 57.3837 60.6109 55.3949 62.105 53.2301H44.9952C44.8549 53.5278 44.719 53.8254 44.5742 54.1186H44.5696Z" fill="#181818"/> +<path d="M38.8468 62.9895H29.0536C29.3841 63.3909 29.7191 63.7833 30.0632 64.1711H18.2145C22.8961 66.5974 28.2115 67.9865 33.8483 68C33.8845 68 33.9162 68 33.9479 68C33.9796 68 34.0158 68 34.0475 68C41.1377 67.9775 47.7209 65.8037 53.1675 62.0966H39.5531C39.3176 62.3942 39.0822 62.6919 38.8422 62.985L38.8468 62.9895Z" fill="#181818"/> +<path d="M29.0537 5.01499H38.8469C39.0868 5.30813 39.3223 5.60578 39.5577 5.90343H53.1722C47.721 2.19631 41.1424 0.0225494 34.0521 0C34.0159 0 33.9842 0 33.9525 0C33.9208 0 33.8846 0 33.8529 0C28.2116 0.0180395 22.9007 1.40257 18.2192 3.82889H30.0679C29.7238 4.21674 29.3887 4.61361 29.0582 5.01048L29.0537 5.01499Z" fill="#181818"/> +<path d="M23.3308 13.8904H44.5697C44.7146 14.1836 44.855 14.4812 44.9908 14.7789H62.1006C60.6065 12.6141 58.8724 10.6253 56.9301 8.86193H41.6856C41.8803 9.15507 42.0705 9.45272 42.2561 9.75037H25.6399C25.3954 10.1427 25.1554 10.5351 24.92 10.932H8.8787C8.34444 11.5047 7.83283 12.0955 7.34385 12.7089H23.9329C23.7247 13.1012 23.5255 13.4936 23.3263 13.8904H23.3308Z" fill="#181818"/> +<path d="M20.0663 22.7613H47.8386C47.911 23.0545 47.9835 23.3521 48.0514 23.6498H66.4741C65.8131 21.5843 64.9619 19.6044 63.9342 17.7328H46.2449C46.358 18.026 46.4667 18.3236 46.5754 18.6213H21.3295C21.1892 19.0136 21.0533 19.406 20.9266 19.8029H2.9339C2.66677 20.3846 2.41323 20.9754 2.17779 21.5798H20.3878C20.2791 21.9721 20.1704 22.3645 20.0708 22.7613H20.0663Z" fill="#181818"/> +</g> +</svg> \ No newline at end of file diff --git a/gui/public/provider-icons/sambanova.svg b/gui/public/provider-icons/sambanova.svg new file mode 100644 index 0000000000..341c74ea0f --- /dev/null +++ b/gui/public/provider-icons/sambanova.svg @@ -0,0 +1,276 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 160.000000 144.000000"><g transform="translate(0.000000,144.000000) scale(0.100000,-0.100000)" +fill="#000000" stroke="none"><path fill="#260e37" d="M1042 1354 c-74 -21 -222 -87 -222 -99 0 -2 32 9 71 26 120 49 230 +80 314 88 l80 8 -80 1 c-58 1 -103 -6 -163 -24z M1200 1313 c-48 -5 -182 -34 +-178 -39 3 -2 42 3 89 11 46 8 115 15 153 15 38 0 67 2 65 4 -7 6 -93 12 -129 +9z M1100 1231 c-19 -3 36 -6 123 -6 87 0 148 3 135 7 -29 8 -211 7 -258 -1z +M1161 1176 c3 -3 47 -10 99 -16 52 -6 106 -13 120 -15 14 -3 7 1 -15 9 -42 14 +-214 33 -204 22z M1250 1099 c35 -5 94 -20 131 -32 37 -13 66 -20 63 -16 -11 +18 -125 51 -189 54 l-70 4 65 -10z M660 1064 c-358 -24 -579 -67 -627 -122 +-51 -60 -39 -150 42 -317 162 -332 400 -574 611 -618 143 -30 441 68 670 219 +87 57 144 114 144 142 0 13 -6 10 -26 -13 -24 -28 -25 -28 -20 -7 4 20 -1 18 +-30 -15 -27 -29 -32 -32 -23 -13 6 14 -14 -1 -48 -38 -32 -34 -62 -62 -66 -62 +-5 0 12 28 38 62 74 102 70 103 -27 2 -92 -95 -169 -156 -98 -78 19 22 49 55 +65 74 28 32 26 32 -15 -6 -94 -86 -253 -194 -266 -181 -3 2 25 26 62 53 225 +160 459 497 472 680 9 127 -64 181 -293 220 -87 15 -444 26 -565 18z m378 -64 +c244 -22 389 -85 406 -176 18 -93 -33 -195 -195 -386 -79 -95 -83 -98 -124 +-98 -23 0 -67 5 -99 11 -32 6 -60 8 -62 6 -3 -3 26 -10 63 -16 37 -7 79 -15 +93 -17 l25 -6 -29 -23 c-22 -18 -38 -22 -60 -18 -70 12 -220 54 -293 82 -42 +17 -79 29 -81 27 -8 -8 214 -88 300 -108 91 -21 91 -21 68 -40 -12 -10 -33 +-18 -46 -18 -35 0 -179 48 -271 91 -46 21 -83 35 -83 33 0 -13 214 -106 278 +-120 87 -19 85 -25 -23 -79 -132 -68 -221 -49 -382 80 -223 179 -441 524 -409 +649 7 29 26 26 26 -3 0 -25 56 -134 80 -156 19 -17 20 -16 47 16 54 67 219 +219 258 238 66 33 319 48 513 31z M928 363 c7 -3 16 -2 19 1 4 3 -2 6 -13 5 +-11 0 -14 -3 -6 -6z M485 315 c76 -71 122 -105 181 -135 32 -16 65 -30 73 -30 +7 0 -13 14 -45 30 -51 28 -98 59 -214 146 -32 24 -32 23 5 -11z M590 316 c0 +-9 132 -87 180 -106 79 -31 73 -23 -15 19 -44 22 -99 51 -122 66 -24 14 -43 +24 -43 21z M1299 333 c-13 -16 -12 -17 4 -4 16 13 21 21 13 21 -2 0 -10 -8 +-17 -17z"/><path fill="#6f3cb3" d="M1135 1275 c-90 -14 -115 -20 -300 -76 -145 -44 -301 -104 -245 -94 +19 3 80 12 135 21 55 8 134 22 175 29 143 28 295 38 388 25 89 -11 179 -47 +175 -69 -2 -6 5 -11 15 -11 23 0 60 -39 72 -76 9 -25 9 -24 4 10 -9 66 -53 +161 -89 196 -27 26 -49 36 -102 46 -82 16 -124 16 -228 -1z m245 -36 c41 -14 +83 -40 76 -46 -2 -3 -39 3 -82 13 -95 21 -241 15 -418 -16 -65 -11 -121 -19 +-123 -16 -10 9 208 63 322 80 49 7 187 -2 225 -15z M1058 1153 c7 -3 16 -2 19 +1 4 3 -2 6 -13 5 -11 0 -14 -3 -6 -6z M1033 1123 c15 -2 39 -2 55 0 15 2 2 4 +-28 4 -30 0 -43 -2 -27 -4z M1562 970 c0 -14 2 -19 5 -12 2 6 2 18 0 25 -3 6 +-5 1 -5 -13z M1550 758 c-6 -35 -23 -90 -37 -123 -13 -33 -26 -69 -27 -80 -2 +-11 -4 -24 -5 -28 0 -5 -5 -5 -11 -2 -5 3 -7 0 -4 -8 5 -15 -26 -82 -68 -146 +-12 -19 -17 -32 -11 -28 7 4 33 41 58 82 49 78 61 91 50 53 -4 -16 0 -12 15 +10 11 19 28 59 36 90 15 56 32 242 22 242 -3 0 -11 -28 -18 -62z M215 685 c45 +-62 169 -205 178 -205 5 0 5 -5 2 -10 -4 -6 -2 -9 3 -8 5 2 54 -29 108 -68 55 +-39 135 -92 179 -117 86 -48 255 -113 255 -97 0 6 5 9 11 7 6 -1 13 3 15 8 3 +6 -20 16 -50 22 -103 22 -301 124 -427 220 -68 52 -61 60 14 15 225 -137 477 +-240 525 -213 14 8 12 10 -13 16 -156 33 -438 152 -535 226 -25 19 -67 50 -95 +69 -27 18 -84 65 -125 104 -59 56 -68 63 -45 31z M1336 348 c3 -5 10 -6 15 -3 +13 9 11 12 -6 12 -8 0 -12 -4 -9 -9z"/><path fill="#59329f" d="M1085 1336 c-80 -22 -151 -49 -345 -132 -63 -27 -209 -103 -198 -104 +4 0 54 17 110 39 57 21 118 42 135 46 18 3 31 11 30 16 -3 14 126 65 243 96 +121 33 246 36 304 8 33 -16 36 -20 20 -26 -16 -6 -14 -8 8 -8 17 -1 44 -15 70 +-38 l42 -38 -24 43 c-51 91 -89 112 -214 118 -75 4 -107 0 -181 -20z M1173 +1283 c9 -2 23 -2 30 0 6 3 -1 5 -18 5 -16 0 -22 -2 -12 -5z M1318 1283 c6 -2 +18 -2 25 0 6 3 1 5 -13 5 -14 0 -19 -2 -12 -5z M1108 1273 c7 -3 16 -2 19 1 4 +3 -2 6 -13 5 -11 0 -14 -3 -6 -6z M1208 1253 c17 -2 47 -2 65 0 17 2 3 4 -33 +4 -36 0 -50 -2 -32 -4z M1108 1243 c6 -2 18 -2 25 0 6 3 1 5 -13 5 -14 0 -19 +-2 -12 -5z M1058 1233 c7 -3 16 -2 19 1 4 3 -2 6 -13 5 -11 0 -14 -3 -6 -6z +M1400 1226 c0 -2 7 -7 16 -10 8 -3 12 -2 9 4 -6 10 -25 14 -25 6z M1108 1213 +c7 -3 16 -2 19 1 4 3 -2 6 -13 5 -11 0 -14 -3 -6 -6z M838 1203 c7 -3 16 -2 +19 1 4 3 -2 6 -13 5 -11 0 -14 -3 -6 -6z M1028 1203 c7 -3 16 -2 19 1 4 3 -2 +6 -13 5 -11 0 -14 -3 -6 -6z M855 1185 c-26 -12 -27 -13 -8 -14 12 -1 25 4 28 +9 3 6 18 7 33 4 21 -4 24 -3 12 5 -19 14 -28 13 -65 -4z M1168 1183 c18 -2 45 +-2 60 0 15 2 0 4 -33 4 -33 0 -45 -2 -27 -4z M1038 1173 c7 -3 16 -2 19 1 4 3 +-2 6 -13 5 -11 0 -14 -3 -6 -6z M958 1163 c7 -3 16 -2 19 1 4 3 -2 6 -13 5 +-11 0 -14 -3 -6 -6z M880 1150 c-24 -8 -23 -8 8 -9 17 -1 32 4 32 9 0 11 -5 +11 -40 0z M1018 1153 c6 -2 18 -2 25 0 6 3 1 5 -13 5 -14 0 -19 -2 -12 -5z +M1238 1153 c7 -3 16 -2 19 1 4 3 -2 6 -13 5 -11 0 -14 -3 -6 -6z M1446 1122 +c-3 -5 1 -9 9 -9 8 0 12 4 9 9 -3 4 -7 8 -9 8 -2 0 -6 -4 -9 -8z M918 1113 c7 +-3 16 -2 19 1 4 3 -2 6 -13 5 -11 0 -14 -3 -6 -6z M1118 1103 c7 -3 16 -2 19 +1 4 3 -2 6 -13 5 -11 0 -14 -3 -6 -6z M588 1063 c7 -3 16 -2 19 1 4 3 -2 6 +-13 5 -11 0 -14 -3 -6 -6z M1471 1033 c7 -12 15 -20 18 -17 3 2 -3 12 -13 22 +-17 16 -18 16 -5 -5z M1572 940 c0 -14 2 -19 5 -12 2 6 2 18 0 25 -3 6 -5 1 +-5 -13z M1570 808 c0 -116 -20 -241 -46 -291 -9 -18 -18 -48 -19 -67 l-3 -35 +20 39 c47 90 60 148 65 287 4 91 2 142 -5 155 -9 15 -11 -5 -12 -88z M190 726 +c0 -2 8 -10 18 -17 15 -13 16 -12 3 4 -13 16 -21 21 -21 13z M265 652 c22 -24 +69 -64 105 -90 36 -25 74 -53 85 -62 11 -10 27 -17 35 -17 9 0 63 -21 120 -48 +223 -102 483 -169 497 -127 3 8 -5 12 -24 12 -42 0 -215 44 -332 85 -164 57 +-412 188 -491 259 -32 28 -31 27 5 -12z M1470 535 c-6 -15 -13 -32 -16 -36 -3 +-5 -1 -9 3 -9 10 0 35 61 28 68 -2 3 -9 -8 -15 -23z M1478 478 c-7 -13 -11 +-29 -10 -35 2 -7 -2 -23 -8 -35 -10 -21 -10 -21 9 2 10 13 17 28 15 32 -3 4 +-2 8 3 8 4 0 9 11 9 25 2 31 -2 31 -18 3z M440 483 c0 -4 15 -20 34 -35 32 +-26 35 -26 31 -7 -3 13 0 19 8 16 7 -3 11 -9 10 -15 -2 -7 4 -9 14 -5 10 4 14 +2 9 -5 -3 -6 -2 -13 3 -16 5 -4 8 1 7 10 -1 9 -18 25 -36 37 -19 12 -31 16 +-26 9 10 -17 -5 -15 -32 4 -12 8 -22 12 -22 7z M399 466 c13 -16 51 -41 51 +-33 0 2 -15 14 -32 27 -21 15 -28 17 -19 6z M340 466 c0 -2 8 -10 18 -17 15 +-13 16 -12 3 4 -13 16 -21 21 -21 13z M474 406 c1 -8 5 -18 8 -22 4 -3 5 1 4 +10 -1 8 -5 18 -8 22 -4 3 -5 -1 -4 -10z M1396 411 c-3 -4 6 -7 19 -7 14 0 22 +2 19 5 -8 8 -34 10 -38 2z M590 396 c0 -3 14 -12 30 -21 17 -9 30 -13 30 -11 +0 3 -13 12 -30 21 -16 9 -30 13 -30 11z M1406 378 c3 -5 10 -6 15 -3 13 9 11 +12 -6 12 -8 0 -12 -4 -9 -9z M720 350 c8 -5 20 -10 25 -10 6 0 3 5 -5 10 -8 5 +-19 10 -25 10 -5 0 -3 -5 5 -10z M1383 353 c4 -3 -1 -12 -11 -20 -15 -13 -15 +-13 6 -3 19 9 23 30 5 30 -4 0 -3 -3 0 -7z M460 325 c13 -14 26 -25 28 -25 3 +0 -5 11 -18 25 -13 14 -26 25 -28 25 -3 0 5 -11 18 -25z M470 346 c0 -2 8 -10 +18 -17 15 -13 16 -12 3 4 -13 16 -21 21 -21 13z M750 310 c8 -5 20 -10 25 -10 +6 0 3 5 -5 10 -8 5 -19 10 -25 10 -5 0 -3 -5 5 -10z M1299 315 c-1 -3 -2 -10 +-3 -16 0 -5 -12 -19 -26 -29 -14 -11 -20 -20 -14 -20 14 0 47 37 50 55 2 14 +-4 22 -7 10z M1340 288 c-12 -22 -12 -22 6 -6 10 10 15 20 12 24 -4 3 -12 -5 +-18 -18z M1189 263 l-34 -38 38 34 c20 19 37 36 37 38 0 8 -8 0 -41 -34z M978 +263 c7 -3 16 -2 19 1 4 3 -2 6 -13 5 -11 0 -14 -3 -6 -6z M1020 256 c0 -2 7 +-6 15 -10 8 -3 15 -1 15 4 0 6 -7 10 -15 10 -8 0 -15 -2 -15 -4z"/><path fill="#442997" d="M1078 1419 c-84 -23 -209 -81 -313 -144 -101 -61 -248 -166 -241 +-172 3 -3 43 15 90 40 46 25 100 50 120 57 20 6 34 15 31 20 -7 12 112 80 199 +114 81 33 183 56 247 56 53 0 112 -18 103 -31 -3 -5 7 -9 22 -9 25 0 104 -37 +104 -49 0 -3 10 -17 21 -31 l21 -25 -19 34 c-28 51 -124 135 -170 149 -57 17 +-137 14 -215 -9z M1233 1363 c9 -2 23 -2 30 0 6 3 -1 5 -18 5 -16 0 -22 -2 +-12 -5z M1148 1353 c7 -3 16 -2 19 1 4 3 -2 6 -13 5 -11 0 -14 -3 -6 -6z +M1228 1323 c12 -2 30 -2 40 0 9 3 -1 5 -23 4 -22 0 -30 -2 -17 -4z M1138 1313 +c6 -2 18 -2 25 0 6 3 1 5 -13 5 -14 0 -19 -2 -12 -5z M1350 1306 c0 -2 7 -7 +16 -10 8 -3 12 -2 9 4 -6 10 -25 14 -25 6z M870 1236 c0 -2 7 -7 16 -10 8 -3 +12 -2 9 4 -6 10 -25 14 -25 6z M1491 1220 c14 -31 19 -36 19 -24 0 6 -7 19 +-16 30 -14 18 -14 18 -3 -6z M831 1219 c-32 -13 -22 -20 14 -11 16 5 25 11 20 +14 -6 3 -21 2 -34 -3z M1430 1200 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 +-11 10 -2 0 -4 -4 -4 -10z M1571 974 c0 -11 3 -14 6 -6 3 7 2 16 -1 19 -3 4 +-6 -2 -5 -13z M1582 910 c0 -14 2 -19 5 -12 2 6 2 18 0 25 -3 6 -5 1 -5 -13z +M1592 779 c-1 -47 -4 -108 -7 -135 l-4 -49 10 48 c5 27 8 88 6 135 l-3 87 -2 +-86z M395 575 c41 -34 254 -135 271 -128 11 4 15 2 11 -4 -7 -11 22 -28 31 +-18 3 3 -1 5 -8 5 -7 0 -11 2 -8 5 2 3 41 -6 86 -19 92 -28 241 -61 320 -71 +43 -6 57 -4 73 11 27 25 24 34 -14 34 -100 0 -500 94 -655 154 -48 18 -96 36 +-107 40 l-20 8 20 -17z M1552 528 c-26 -70 -39 -143 -22 -118 16 23 52 147 48 +165 -2 9 -13 -12 -26 -47z M510 471 c13 -11 27 -19 30 -19 20 2 30 -3 25 -12 +-3 -6 1 -7 10 -4 20 8 20 9 -40 34 -47 19 -49 19 -25 1z M1497 453 c-4 -3 -7 +-15 -7 -26 0 -17 -2 -18 -17 -6 -16 13 -17 12 -4 -4 11 -14 11 -23 3 -42 -7 +-14 -10 -25 -8 -25 10 0 40 57 39 73 -1 9 2 15 7 12 6 -3 7 1 4 9 -7 18 -8 19 +-17 9z M1426 353 c-6 -14 -5 -15 5 -6 7 7 10 15 7 18 -3 3 -9 -2 -12 -12z +M998 333 c7 -3 16 -2 19 1 4 3 -2 6 -13 5 -11 0 -14 -3 -6 -6z M1048 323 c7 +-3 16 -2 19 1 4 3 -2 6 -13 5 -11 0 -14 -3 -6 -6z M1107 306 c-3 -8 -18 -16 +-34 -19 -28 -4 -28 -4 -2 -6 15 0 34 8 44 19 10 11 13 20 8 20 -6 0 -13 -6 +-16 -14z"/><path fill="#402061" d="M1178 1383 c17 -2 47 -2 65 0 17 2 3 4 -33 4 -36 0 -50 -2 -32 -4z +M1098 1373 c7 -3 16 -2 19 1 4 3 -2 6 -13 5 -11 0 -14 -3 -6 -6z M1275 1370 +c-4 -6 6 -10 22 -10 22 0 25 2 13 10 -19 12 -27 12 -35 0z M1058 1363 c7 -3 +16 -2 19 1 4 3 -2 6 -13 5 -11 0 -14 -3 -6 -6z M1173 1363 c9 -2 25 -2 35 0 9 +3 1 5 -18 5 -19 0 -27 -2 -17 -5z M1118 1353 c7 -3 16 -2 19 1 4 3 -2 6 -13 5 +-11 0 -14 -3 -6 -6z M1078 1343 c7 -3 16 -2 19 1 4 3 -2 6 -13 5 -11 0 -14 -3 +-6 -6z M1183 1313 c9 -2 25 -2 35 0 9 3 1 5 -18 5 -19 0 -27 -2 -17 -5z M1273 +1313 c9 -2 25 -2 35 0 9 3 1 5 -18 5 -19 0 -27 -2 -17 -5z M874 1294 c-18 -14 +-18 -14 6 -3 31 14 36 19 24 19 -6 0 -19 -7 -30 -16z M1118 1303 c7 -3 16 -2 +19 1 4 3 -2 6 -13 5 -11 0 -14 -3 -6 -6z M1250 1300 l-85 -7 93 0 c51 0 95 -3 +99 -7 3 -3 13 -6 22 -6 11 1 7 6 -9 15 -14 8 -27 14 -30 13 -3 -1 -43 -5 -90 +-8z M1040 1280 c8 -5 22 -9 30 -9 10 0 8 3 -5 9 -27 12 -43 12 -25 0z M1118 +1283 c7 -3 16 -2 19 1 4 3 -2 6 -13 5 -11 0 -14 -3 -6 -6z M847 1269 c7 -7 15 +-10 18 -7 3 3 -2 9 -12 12 -14 6 -15 5 -6 -5z M1005 1270 c3 -5 14 -10 23 -10 +15 0 15 2 2 10 -20 13 -33 13 -25 0z M792 1249 c-18 -12 -31 -23 -29 -26 7 -6 +57 19 57 29 0 5 5 6 12 2 7 -4 8 -3 4 4 -9 15 -5 16 -44 -9z M970 1260 c0 -5 +7 -10 16 -10 8 0 12 5 9 10 -3 6 -10 10 -16 10 -5 0 -9 -4 -9 -10z M900 1239 +c-25 -11 -34 -17 -20 -14 14 3 37 8 53 11 15 4 27 10 27 15 0 12 -9 11 -60 +-12z M1198 1243 c23 -2 61 -2 85 0 23 2 4 4 -43 4 -47 0 -66 -2 -42 -4z M1110 +1229 c14 -4 70 -7 125 -7 125 0 105 6 -40 11 -60 2 -99 0 -85 -4z M1348 1233 +c7 -3 16 -2 19 1 4 3 -2 6 -13 5 -11 0 -14 -3 -6 -6z M1040 1220 c0 -5 12 -10 +28 -10 21 0 24 2 12 10 -20 13 -40 13 -40 0z M1370 1219 c-12 -9 -11 -10 8 -6 +12 3 22 1 22 -4 0 -5 8 -9 18 -9 15 1 15 2 -2 15 -23 18 -26 18 -46 4z M955 +1204 c-22 -7 -29 -12 -15 -9 14 3 37 5 53 5 15 0 27 5 27 10 0 13 -16 12 -65 +-6z M1002 1168 c-40 -6 -72 -11 -70 -13 2 -2 66 0 143 3 86 4 128 9 110 13 +-41 9 -96 8 -183 -3z M1253 1173 c9 -2 25 -2 35 0 9 3 1 5 -18 5 -19 0 -27 -2 +-17 -5z M1338 1163 c7 -3 16 -2 19 1 4 3 -2 6 -13 5 -11 0 -14 -3 -6 -6z +M1278 1153 c6 -2 18 -2 25 0 6 3 1 5 -13 5 -14 0 -19 -2 -12 -5z M1355 1150 +c-13 -6 -15 -9 -5 -9 8 0 22 4 30 9 18 12 2 12 -25 0z M1394 1138 c-5 -8 -2 +-9 9 -5 10 3 17 3 17 -2 0 -5 10 -11 23 -14 21 -6 21 -6 -3 13 -29 23 -36 24 +-46 8z M1058 1110 c68 -4 140 -3 160 1 21 4 -33 7 -123 6 l-160 0 123 -7z +M1298 1103 c7 -3 16 -2 19 1 4 3 -2 6 -13 5 -11 0 -14 -3 -6 -6z M1238 1093 +c6 -2 18 -2 25 0 6 3 1 5 -13 5 -14 0 -19 -2 -12 -5z M1298 1083 c7 -3 16 -2 +19 1 4 3 -2 6 -13 5 -11 0 -14 -3 -6 -6z M633 1063 c15 -2 39 -2 55 0 15 2 2 +4 -28 4 -30 0 -43 -2 -27 -4z M1058 1063 c12 -2 30 -2 40 0 9 3 -1 5 -23 4 +-22 0 -30 -2 -17 -4z M493 1053 c9 -2 23 -2 30 0 6 3 -1 5 -18 5 -16 0 -22 -2 +-12 -5z M1168 1053 c6 -2 18 -2 25 0 6 3 1 5 -13 5 -14 0 -19 -2 -12 -5z +M1434 1048 c-4 -7 -3 -8 4 -4 7 4 12 3 12 -2 0 -6 8 -13 17 -16 15 -6 15 -4 +-2 14 -21 23 -22 24 -31 8z M388 1043 c6 -2 18 -2 25 0 6 3 1 5 -13 5 -14 0 +-19 -2 -12 -5z M1238 1043 c7 -3 16 -2 19 1 4 3 -2 6 -13 5 -11 0 -14 -3 -6 +-6z M318 1033 c7 -3 16 -2 19 1 4 3 -2 6 -13 5 -11 0 -14 -3 -6 -6z M258 1023 +c7 -3 16 -2 19 1 4 3 -2 6 -13 5 -11 0 -14 -3 -6 -6z M208 1013 c7 -3 16 -2 +19 1 4 3 -2 6 -13 5 -11 0 -14 -3 -6 -6z M126 887 c3 -10 9 -15 12 -12 3 3 0 +11 -7 18 -10 9 -11 8 -5 -6z M113 845 c0 -22 2 -30 4 -17 2 12 2 30 0 40 -3 9 +-5 -1 -4 -23z M1523 845 c0 -22 2 -30 4 -17 2 12 2 30 0 40 -3 9 -5 -1 -4 -23z +M150 814 c0 -6 7 -19 16 -30 14 -18 14 -18 3 6 -14 31 -19 36 -19 24z M215 +710 c10 -11 20 -20 23 -20 3 0 -3 9 -13 20 -10 11 -20 20 -23 20 -3 0 3 -9 13 +-20z M1414 428 c-25 -39 -44 -83 -25 -62 12 14 62 104 58 104 -3 0 -17 -19 +-33 -42z M540 455 c0 -3 27 -18 60 -35 33 -17 60 -26 60 -20 0 5 -2 10 -4 10 +-2 0 -29 11 -60 25 -31 14 -56 23 -56 20z M1345 398 c-22 -29 -40 -55 -40 -58 +0 -3 -25 -29 -55 -59 -30 -30 -45 -46 -32 -36 12 10 22 14 22 10 0 -5 11 2 25 +15 14 13 23 25 20 28 -2 2 6 13 18 23 12 10 19 18 15 19 -4 0 3 11 15 24 22 +24 61 86 55 86 -2 0 -21 -24 -43 -52z m-65 -101 c0 -2 -10 -12 -22 -23 l-23 +-19 19 23 c18 21 26 27 26 19z M392 408 c13 -17 40 -43 59 -57 25 -18 19 -10 +-21 32 -61 64 -75 73 -38 25z M500 436 c0 -7 105 -71 112 -68 5 1 8 -3 8 -9 0 +-5 4 -8 9 -5 5 3 11 -1 15 -9 3 -9 12 -12 22 -8 13 5 15 3 9 -7 -6 -9 -4 -11 +4 -5 7 4 9 11 4 15 -13 11 -183 101 -183 96z M690 437 c0 -4 91 -39 138 -52 +12 -4 22 -3 22 2 0 5 -30 17 -67 27 -38 11 -74 21 -80 24 -7 2 -13 2 -13 -1z +M1436 400 c-14 -22 -24 -40 -21 -40 4 0 -7 -12 -22 -26 -15 -15 -19 -20 -9 +-13 18 13 19 12 12 -6 -6 -17 -4 -17 18 4 14 13 23 28 20 32 -2 5 5 26 16 49 +26 51 20 51 -14 0z M1511 421 c-6 -10 -8 -21 -5 -23 3 -3 -3 -8 -12 -12 -13 +-5 -15 -2 -10 21 7 27 6 27 -17 -7 -25 -36 -26 -80 -1 -59 7 6 11 16 8 23 -3 +7 2 13 11 13 8 0 15 -5 15 -10 0 -20 12 2 20 37 9 40 6 46 -9 17z M335 410 +c10 -11 20 -20 23 -20 3 0 -3 9 -13 20 -10 11 -20 20 -23 20 -3 0 3 -9 13 -20z +M445 423 c38 -36 125 -104 125 -97 0 4 6 0 13 -11 9 -11 16 -14 20 -8 4 6 -26 +32 -66 59 -82 56 -107 71 -92 57z M1299 393 c-13 -16 -12 -17 4 -4 16 13 21 +21 13 21 -2 0 -10 -8 -17 -17z M670 389 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 +-4 4 -10 4 -5 0 -10 -5 -10 -11z M860 380 c0 -5 4 -10 9 -10 6 0 13 5 16 10 3 +6 -1 10 -9 10 -9 0 -16 -4 -16 -10z M1176 362 l-19 -27 24 22 c12 12 21 24 18 +27 -2 2 -13 -8 -23 -22z M715 370 c-3 -6 1 -7 9 -4 18 7 21 14 7 14 -6 0 -13 +-4 -16 -10z M895 370 c-3 -5 1 -10 9 -10 8 0 18 5 21 10 3 6 -1 10 -9 10 -8 0 +-18 -4 -21 -10z M740 360 c-9 -6 -10 -10 -3 -10 6 0 15 5 18 10 8 12 4 12 -15 +0z M940 360 c-13 -9 -13 -10 0 -10 8 0 22 5 30 10 13 9 13 10 0 10 -8 0 -22 +-5 -30 -10z M765 350 c-3 -6 1 -7 9 -4 18 7 21 14 7 14 -6 0 -13 -4 -16 -10z +M985 350 c-13 -5 -14 -9 -5 -9 8 0 24 4 35 9 13 5 14 9 5 9 -8 0 -24 -4 -35 +-9z M1249 333 l-24 -28 28 24 c15 14 27 26 27 28 0 8 -8 1 -31 -24z M1339 332 +c-13 -14 -17 -21 -8 -14 9 6 18 10 21 7 3 -3 11 1 17 9 22 27 -6 26 -30 -2z +M430 308 c41 -45 50 -53 50 -45 0 2 -21 23 -47 47 l-48 45 45 -47z M790 340 +c-8 -5 -10 -10 -5 -10 6 0 17 5 25 10 8 5 11 10 5 10 -5 0 -17 -5 -25 -10z +M1068 343 c6 -2 18 -2 25 0 6 3 1 5 -13 5 -14 0 -19 -2 -12 -5z M1028 333 c7 +-3 16 -2 19 1 4 3 -2 6 -13 5 -11 0 -14 -3 -6 -6z M695 320 c-4 -6 1 -7 11 -3 +12 4 15 3 10 -5 -5 -8 -1 -10 10 -5 12 4 15 3 10 -5 -5 -8 -2 -10 10 -5 14 5 +13 8 -7 19 -29 16 -36 17 -44 4z M1083 323 c9 -2 23 -2 30 0 6 3 -1 5 -18 5 +-16 0 -22 -2 -12 -5z M503 305 c0 -8 12 -25 26 -37 14 -13 20 -16 13 -7 -6 9 +-10 18 -7 21 3 3 -3 12 -13 21 -16 14 -19 15 -19 2z M898 313 c7 -3 16 -2 19 +1 4 3 -2 6 -13 5 -11 0 -14 -3 -6 -6z M1119 303 c-13 -16 -12 -17 4 -4 16 13 +21 21 13 21 -2 0 -10 -8 -17 -17z M616 301 c-4 -5 -2 -12 3 -15 5 -4 12 -2 15 +3 4 5 2 12 -3 15 -5 4 -12 2 -15 -3z M978 293 c7 -3 16 -2 19 1 4 3 -2 6 -13 +5 -11 0 -14 -3 -6 -6z M645 281 c-3 -5 -2 -12 3 -15 5 -3 9 1 9 9 0 17 -3 19 +-12 6z M800 280 c8 -5 20 -10 25 -10 6 0 3 5 -5 10 -8 5 -19 10 -25 10 -5 0 +-3 -5 5 -10z M1018 283 c6 -2 18 -2 25 0 6 3 1 5 -13 5 -14 0 -19 -2 -12 -5z +M1345 280 c-4 -6 -10 -8 -15 -5 -5 3 -18 -9 -31 -26 -20 -28 -20 -30 -3 -21 +21 11 71 62 61 62 -3 0 -9 -5 -12 -10z M550 276 c0 -2 8 -10 18 -17 15 -13 16 +-12 3 4 -13 16 -21 21 -21 13z M673 265 c0 -8 4 -12 9 -9 5 3 6 10 3 15 -9 13 +-12 11 -12 -6z M968 273 c7 -3 16 -2 19 1 4 3 -2 6 -13 5 -11 0 -14 -3 -6 -6z +M1018 263 c7 -3 16 -2 19 1 4 3 -2 6 -13 5 -11 0 -14 -3 -6 -6z M695 251 c-3 +-5 -2 -12 3 -15 5 -3 9 1 9 9 0 17 -3 19 -12 6z M1049 243 c-13 -16 -12 -17 4 +-4 16 13 21 21 13 21 -2 0 -10 -8 -17 -17z M510 236 c0 -2 8 -10 18 -17 15 +-13 16 -12 3 4 -13 16 -21 21 -21 13z M1199 204 c-20 -22 -26 -32 -14 -26 25 +13 72 62 59 62 -6 0 -26 -16 -45 -36z M750 220 c-9 -6 -10 -10 -3 -10 6 0 15 +5 18 10 8 12 4 12 -15 0z M955 220 c-25 -11 1 -11 35 0 20 6 21 8 5 8 -11 0 +-29 -3 -40 -8z M1119 203 l-24 -28 28 24 c15 14 27 26 27 28 0 8 -8 1 -31 -24z +M775 210 c-3 -6 1 -7 9 -4 18 7 21 14 7 14 -6 0 -13 -4 -16 -10z M1159 203 +c-13 -16 -12 -17 4 -4 16 13 21 21 13 21 -2 0 -10 -8 -17 -17z M800 200 c-9 +-6 -10 -10 -3 -10 6 0 15 5 18 10 8 12 4 12 -15 0z M970 189 c-22 -18 -22 -19 +-3 -10 12 6 25 16 28 21 9 15 3 12 -25 -11z M825 190 c-3 -5 -2 -10 4 -10 5 0 +13 5 16 10 3 6 2 10 -4 10 -5 0 -13 -4 -16 -10z M860 180 c0 -5 14 -10 32 -10 +36 0 35 4 -4 14 -17 4 -28 2 -28 -4z M690 170 c-9 -6 -10 -10 -3 -10 6 0 15 5 +18 10 8 12 4 12 -15 0z M715 160 c-3 -6 1 -7 9 -4 18 7 21 14 7 14 -6 0 -13 +-4 -16 -10z M1061 156 c-9 -11 -9 -16 1 -22 7 -4 10 -4 6 1 -4 4 -3 14 3 22 6 +7 9 13 6 13 -2 0 -10 -6 -16 -14z M744 149 c-3 -5 6 -9 20 -9 31 0 34 6 6 13 +-11 3 -23 1 -26 -4z M647 139 c7 -7 15 -10 18 -7 3 3 -2 9 -12 12 -14 6 -15 5 +-6 -5z M1005 115 c-34 -28 -28 -32 16 -10 16 9 27 20 24 25 -8 13 -5 14 -40 +-15z M768 103 c7 -3 16 -2 19 1 4 3 -2 6 -13 5 -11 0 -14 -3 -6 -6z"/><path fill="#834dae" d="M1107 1153 c18 -2 50 -2 70 0 21 2 7 4 -32 4 -38 0 -55 -2 -38 -4z +M953 1143 c9 -2 23 -2 30 0 6 3 -1 5 -18 5 -16 0 -22 -2 -12 -5z M1288 1143 +c7 -3 16 -2 19 1 4 3 -2 6 -13 5 -11 0 -14 -3 -6 -6z M740 1130 c-20 -4 5 -5 +55 -2 50 2 92 6 94 8 8 7 -113 2 -149 -6z M948 1123 c12 -2 32 -2 45 0 12 2 2 +4 -23 4 -25 0 -35 -2 -22 -4z M1118 1123 c7 -3 16 -2 19 1 4 3 -2 6 -13 5 -11 +0 -14 -3 -6 -6z M1173 1123 c15 -2 39 -2 55 0 15 2 2 4 -28 4 -30 0 -43 -2 +-27 -4z M663 1113 c9 -2 23 -2 30 0 6 3 -1 5 -18 5 -16 0 -22 -2 -12 -5z M868 +1113 c6 -2 18 -2 25 0 6 3 1 5 -13 5 -14 0 -19 -2 -12 -5z M1298 1113 c7 -3 +16 -2 19 1 4 3 -2 6 -13 5 -11 0 -14 -3 -6 -6z M608 1103 c7 -3 16 -2 19 1 4 +3 -2 6 -13 5 -11 0 -14 -3 -6 -6z M1058 1103 c12 -2 30 -2 40 0 9 3 -1 5 -23 +4 -22 0 -30 -2 -17 -4z M1487 1090 c13 -5 32 -24 43 -42 11 -18 20 -28 20 -21 +0 19 -51 73 -68 72 -12 0 -10 -3 5 -9z M803 1073 c42 -2 112 -2 155 0 42 1 7 +3 -78 3 -85 0 -120 -2 -77 -3z M548 1063 c6 -2 18 -2 25 0 6 3 1 5 -13 5 -14 +0 -19 -2 -12 -5z M1138 1063 c7 -3 16 -2 19 1 4 3 -2 6 -13 5 -11 0 -14 -3 -6 +-6z M438 1053 c7 -3 16 -2 19 1 4 3 -2 6 -13 5 -11 0 -14 -3 -6 -6z M1470 +1046 c0 -2 8 -10 18 -17 15 -13 16 -12 3 4 -13 16 -21 21 -21 13z M1561 934 +c0 -11 3 -14 6 -6 3 7 2 16 -1 19 -3 4 -6 -2 -5 -13z M210 676 c0 -2 8 -10 18 +-17 15 -13 16 -12 3 4 -13 16 -21 21 -21 13z M279 595 c22 -27 57 -68 77 -90 +l36 -40 -31 40 c-17 22 -51 63 -77 90 l-46 50 41 -50z M1485 589 c-4 -6 -5 +-12 -2 -15 2 -3 7 2 10 11 7 17 1 20 -8 4z M1415 500 c-3 -5 -1 -10 4 -10 6 0 +11 5 11 10 0 6 -2 10 -4 10 -3 0 -8 -4 -11 -10z M320 496 c0 -3 8 -12 18 -22 +9 -10 17 -21 17 -26 0 -4 3 -7 7 -5 4 1 26 -16 50 -38 24 -22 14 -9 -22 28 +-63 65 -70 72 -70 63z M1385 460 c-3 -5 -5 -10 -3 -11 27 -6 39 -5 45 4 3 7 3 +9 -2 5 -4 -4 -14 -3 -21 3 -8 7 -14 7 -19 -1z M435 420 c21 -22 41 -40 44 -40 +3 0 -13 18 -34 40 -21 22 -41 40 -44 40 -3 0 13 -18 34 -40z M1386 418 c3 -5 +10 -6 15 -3 13 9 11 12 -6 12 -8 0 -12 -4 -9 -9z M1365 400 c-3 -5 -3 -10 1 +-10 4 0 -1 -7 -12 -15 -10 -8 -14 -15 -8 -15 17 0 47 37 35 44 -5 4 -12 2 -16 +-4z M415 370 c10 -11 20 -20 23 -20 3 0 -3 9 -13 20 -10 11 -20 20 -23 20 -3 +0 3 -9 13 -20z M430 315 c30 -30 57 -55 59 -55 3 0 -19 25 -49 55 -30 30 -57 +55 -59 55 -3 0 19 -25 49 -55z M515 350 c10 -11 20 -20 23 -20 3 0 -3 9 -13 +20 -10 11 -20 20 -23 20 -3 0 3 -9 13 -20z M500 325 c13 -14 26 -25 28 -25 3 +0 -5 11 -18 25 -13 14 -26 25 -28 25 -3 0 5 -11 18 -25z M1310 318 l-23 -33 +28 27 c16 15 26 30 23 33 -3 4 -16 -9 -28 -27z M1244 318 l-19 -23 23 19 c12 +11 22 21 22 23 0 8 -8 2 -26 -19z M550 326 c0 -2 8 -10 18 -17 15 -13 16 -12 +3 4 -13 16 -21 21 -21 13z M1254 298 l-19 -23 23 19 c21 18 27 26 19 26 -2 0 +-12 -10 -23 -22z M505 280 c10 -11 20 -20 23 -20 3 0 -3 9 -13 20 -10 11 -20 +20 -23 20 -3 0 3 -9 13 -20z M1204 248 l-19 -23 23 19 c21 18 27 26 19 26 -2 +0 -12 -10 -23 -22z M1136 211 c-17 -19 -17 -19 0 -17 9 2 18 10 20 19 3 21 1 +21 -20 -2z M697 189 c7 -7 15 -10 18 -7 3 3 -2 9 -12 12 -14 6 -15 5 -6 -5z +M883 163 c9 -2 25 -2 35 0 9 3 1 5 -18 5 -19 0 -27 -2 -17 -5z M1064 149 c-19 +-22 -19 -22 4 -8 12 8 22 17 22 21 0 12 -6 9 -26 -13z M795 140 c-16 -7 -17 +-9 -3 -9 9 -1 20 4 23 9 7 11 7 11 -20 0z"/></g></svg> \ No newline at end of file diff --git a/gui/public/provider-icons/scaleway.svg b/gui/public/provider-icons/scaleway.svg new file mode 100644 index 0000000000..4996b509b4 --- /dev/null +++ b/gui/public/provider-icons/scaleway.svg @@ -0,0 +1,11 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none"> + <style> + @media (prefers-color-scheme:dark){path{fill:#fff}} + </style> + <path + d="M8.37 3.666H5.736A1.182 1.182 0 0 0 4.69 4.79v3.81c0 .257.1.48.267.647.166.167.389.267.644.267.5 0 .912-.412.912-.913V6.184c0-.379.311-.691.69-.691h1.189c.255 0 .478-.1.644-.267a.927.927 0 0 0 .267-.658c0-.501-.433-.902-.934-.902ZM7.181 12.357h2.635a1.181 1.181 0 0 0 1.045-1.126v-3.81a.9.9 0 0 0-.267-.647.897.897 0 0 0-.645-.267c-.5 0-.912.412-.912.914v2.417c0 .38-.31.691-.689.691h-1.19c-.255 0-.477.1-.644.268a.927.927 0 0 0-.267.657.934.934 0 0 0 .934.902Z" + fill="#BF95F9"/> + <path fill-rule="evenodd" clip-rule="evenodd" + d="M4.024 0h4.791a5.683 5.683 0 0 1 5.692 5.716v7.588A3.027 3.027 0 0 1 11.75 16H6.703C3.557 16 1 13.437 1 10.284V3.031A3.03 3.03 0 0 1 4.024 0Zm8.67 5.716c0-2.14-1.744-3.889-3.879-3.889h-4.78c-.667 0-1.2.535-1.2 1.204v7.253a3.88 3.88 0 0 0 3.88 3.889h4.957a1.193 1.193 0 0 0 1.023-.98V5.715Z" + fill="#BF95F9"/> +</svg> \ No newline at end of file diff --git a/gui/public/provider-icons/siliconflow.svg b/gui/public/provider-icons/siliconflow.svg new file mode 100644 index 0000000000..8537ff8e30 --- /dev/null +++ b/gui/public/provider-icons/siliconflow.svg @@ -0,0 +1,18 @@ +<?xml version="1.0" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" + "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> +<svg version="1.0" xmlns="http://www.w3.org/2000/svg" + width="256.000000pt" height="256.000000pt" viewBox="0 0 256.000000 256.000000" + preserveAspectRatio="xMidYMid meet"> +<metadata> +Created by potrace 1.16, written by Peter Selinger 2001-2019 +</metadata> +<g transform="translate(0.000000,256.000000) scale(0.100000,-0.100000)" +fill="#000000" stroke="none"> +<path d="M1261 1773 l-33 -35 1 -163 c2 -139 0 -165 -14 -177 -9 -7 -28 -25 +-42 -40 l-26 -28 -463 0 c-412 0 -463 -2 -468 -16 -3 -9 -6 -110 -6 -226 l0 +-210 40 -39 40 -39 483 0 483 0 24 28 c14 16 32 31 39 33 12 4 14 37 12 173 +l-2 167 40 40 41 39 458 0 c343 0 461 3 470 12 9 9 12 73 12 226 l0 214 -40 +39 -40 39 -488 -1 -487 0 -34 -36z"/> +</g> +</svg> diff --git a/gui/public/provider-icons/synthetic.svg b/gui/public/provider-icons/synthetic.svg new file mode 100644 index 0000000000..87dfcb7383 --- /dev/null +++ b/gui/public/provider-icons/synthetic.svg @@ -0,0 +1,12 @@ +<svg xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="1000" height="1000"><g clip-path="url(#SvgjsClipPath1024)"><rect width="1000" height="1000" fill="#ffffff"></rect><g transform="matrix(14.814814814814815,0,0,14.814814814814815,100,100)"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="54" height="54"><svg width="54" height="54" viewBox="0 0 54 54" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M27.8517 26.3314C27.8439 26.1451 27.8371 25.9303 27.8337 25.692C27.8203 24.7571 27.8545 23.4581 28.0457 22.0052C28.4322 19.0688 29.4394 15.6521 31.8222 13.2693C34.205 10.8867 37.6212 9.87992 40.5575 9.49344C42.0107 9.30219 43.3101 9.26734 44.245 9.28076C44.4829 9.28417 44.6968 9.29231 44.883 9.30009C44.8908 9.48595 44.8975 9.69933 44.901 9.93676C44.9144 10.8716 44.8795 12.171 44.6883 13.6242C44.3018 16.5605 43.2958 19.9773 40.9131 22.3602C38.5303 24.743 35.1129 25.7495 32.1765 26.136C30.7234 26.3272 29.4246 26.3614 28.4897 26.348C28.2518 26.3446 28.0378 26.3392 27.8517 26.3314Z" stroke="black" stroke-width="2"></path> +<path d="M27.8916 27.1592C28.0179 27.0219 28.165 26.8653 28.3311 26.6943C28.9826 26.0238 29.9253 25.1295 31.0879 24.2373C33.4375 22.4342 36.5658 20.7305 39.9355 20.7305C43.3051 20.7306 46.4327 22.4343 48.7822 24.2373C49.945 25.1296 50.8885 26.0238 51.54 26.6943C51.7059 26.865 51.8514 27.022 51.9775 27.1592C51.8516 27.2961 51.7055 27.4518 51.54 27.6221C50.8885 28.2926 49.945 29.1868 48.7822 30.0791C46.4327 31.8821 43.3052 33.5868 39.9355 33.5869C36.5657 33.5869 33.4375 31.8822 31.0879 30.0791C29.9252 29.1868 28.9826 28.2926 28.3311 27.6221C28.1652 27.4514 28.0177 27.2963 27.8916 27.1592Z" stroke="black" stroke-width="2"></path> +<path d="M27.4459 27.6915C27.6323 27.6837 27.8471 27.677 28.0854 27.6736C29.0202 27.6602 30.3192 27.6943 31.7721 27.8856C34.7085 28.272 38.1253 29.2793 40.5081 31.6621C42.8906 34.0448 43.8974 37.4611 44.2839 40.3973C44.4752 41.8505 44.51 43.1499 44.4966 44.0848C44.4932 44.3228 44.485 44.5367 44.4773 44.7229C44.2914 44.7306 44.078 44.7374 43.8406 44.7408C42.9057 44.7542 41.6063 44.7194 40.1531 44.5281C37.2168 44.1417 33.8 43.1356 31.4172 40.753C29.0343 38.3701 28.0278 34.9528 27.6413 32.0163C27.4501 30.5633 27.4159 29.2644 27.4294 28.3296C27.4328 28.0916 27.4381 27.8777 27.4459 27.6915Z" stroke="black" stroke-width="2"></path> +<path d="M26.916 28.1289C27.0533 28.2552 27.2099 28.4023 27.3809 28.5684C28.0514 29.2199 28.9457 30.1626 29.8379 31.3252C31.641 33.6748 33.3447 36.8031 33.3447 40.1728C33.3446 43.5424 31.6409 46.67 29.8379 49.0195C28.9456 50.1823 28.0514 51.1258 27.3809 51.7773C27.2102 51.9432 27.0532 52.0887 26.916 52.2148C26.7791 52.0889 26.6234 51.9428 26.4531 51.7773C25.7826 51.1258 24.8884 50.1823 23.9961 49.0195C22.1931 46.67 20.4884 43.5426 20.4883 40.1728C20.4883 36.803 22.193 33.6748 23.9961 31.3252C24.8884 30.1625 25.7826 29.2199 26.4531 28.5684C26.6238 28.4025 26.7789 28.255 26.916 28.1289Z" stroke="black" stroke-width="2"></path> +<path d="M26.2147 27.691C26.2225 27.8774 26.2293 28.0922 26.2327 28.3305C26.2461 29.2653 26.2119 30.5643 26.0207 32.0172C25.6342 34.9536 24.627 38.3704 22.2442 40.7532C19.8614 43.1357 16.4452 44.1425 13.5089 44.529C12.0557 44.7203 10.7563 44.7551 9.82145 44.7417C9.58349 44.7383 9.36957 44.7301 9.1834 44.7224C9.17564 44.5365 9.16886 44.3231 9.16545 44.0857C9.15203 43.1508 9.18689 41.8514 9.37813 40.3982C9.76458 37.4619 10.7706 34.0451 13.1533 31.6623C15.5361 29.2795 18.9535 28.2729 21.8899 27.8865C23.343 27.6952 24.6419 27.6611 25.5767 27.6745C25.8146 27.6779 26.0286 27.6833 26.2147 27.691Z" stroke="black" stroke-width="2"></path> +<path d="M25.7021 27.1602C25.5759 27.2974 25.4288 27.4541 25.2627 27.625C24.6111 28.2955 23.6684 29.1899 22.5059 30.082C20.1562 31.8851 17.028 33.5889 13.6582 33.5889C10.2886 33.5887 7.16105 31.885 4.81153 30.082C3.64873 29.1897 2.70529 28.2955 2.05372 27.625C1.88786 27.4543 1.74236 27.2973 1.61622 27.1602C1.74215 27.0232 1.88824 26.8676 2.05372 26.6973C2.70527 26.0267 3.64874 25.1326 4.81153 24.2402C7.16108 22.4372 10.2885 20.7326 13.6582 20.7324C17.0281 20.7324 20.1562 22.4371 22.5059 24.2402C23.6686 25.1325 24.6112 26.0268 25.2627 26.6973C25.4285 26.8679 25.576 27.023 25.7021 27.1602Z" stroke="black" stroke-width="2"></path> +<path d="M25.7338 25.9813C25.5474 25.9891 25.3326 25.9959 25.0943 25.9993C24.1595 26.0127 22.8605 25.9785 21.4076 25.7873C18.4712 25.4008 15.0544 24.3936 12.6716 22.0108C10.2891 19.628 9.28226 16.2118 8.89579 13.2755C8.70453 11.8223 8.66969 10.5229 8.6831 9.58806C8.68652 9.35009 8.69466 9.13618 8.70244 8.95C8.8883 8.94224 9.10168 8.93546 9.33911 8.93205C10.274 8.91863 11.5734 8.95349 13.0266 9.14473C15.9629 9.53118 19.3797 10.5372 21.7625 12.9199C24.1454 15.3027 25.1519 18.7201 25.5383 21.6565C25.7296 23.1096 25.7638 24.4085 25.7503 25.3433C25.7469 25.5812 25.7415 25.7952 25.7338 25.9813Z" stroke="black" stroke-width="2"></path> +<path d="M26.9121 25.7031C26.7748 25.5769 26.6182 25.4298 26.4473 25.2637C25.7768 24.6121 24.8824 23.6694 23.9902 22.5068C22.1872 20.1572 20.4834 17.029 20.4834 13.6592C20.4835 10.2896 22.1873 7.16203 23.9902 4.8125C24.8826 3.6497 25.7767 2.70627 26.4473 2.05469C26.618 1.88883 26.775 1.74333 26.9121 1.61719C27.049 1.74312 27.2047 1.88921 27.375 2.05469C28.0455 2.70624 28.9397 3.64971 29.832 4.8125C31.6351 7.16206 33.3397 10.2895 33.3398 13.6592C33.3398 17.029 31.6351 20.1572 29.832 22.5068C28.9398 23.6695 28.0455 24.6121 27.375 25.2637C27.2043 25.4295 27.0492 25.577 26.9121 25.7031Z" stroke="black" stroke-width="2"></path> +<path d="M25.5607 19.3789L27.4618 19.3457C27.5492 19.3442 27.6286 19.3884 27.6747 19.4583L27.7093 19.5368L28.045 20.9198C28.1559 21.3761 28.4798 21.7513 28.9152 21.9272C29.3419 22.0994 29.8251 22.0595 30.2183 21.8205L31.3036 21.1608C31.3771 21.116 31.4662 21.1134 31.5407 21.1488L31.6099 21.1965L32.9965 22.5729C33.0577 22.6336 33.0825 22.7203 33.0659 22.8012L33.035 22.8799L32.4788 23.8048C32.2386 24.2041 32.1867 24.6853 32.3299 25.122L32.4034 25.3063C32.5966 25.715 32.9524 26.0199 33.3793 26.1498L33.5666 26.1943L34.4238 26.3454C34.5414 26.3663 34.628 26.4675 34.6302 26.587L34.6642 28.532C34.6662 28.6469 34.5891 28.7489 34.478 28.7784L33.3785 29.0711C32.9508 29.1849 32.5956 29.4757 32.399 29.8657L32.3249 30.0389C32.1648 30.4848 32.2187 30.9794 32.4714 31.3803L33.0028 32.2237C33.0497 32.2981 33.0532 32.3898 33.0168 32.4656L32.9672 32.5349L31.5394 33.9438C31.4825 33.9998 31.4038 34.0241 31.3277 34.0129L31.2531 33.9898L30.2136 33.4737C29.8594 33.298 29.4528 33.2687 29.0801 33.387L28.9219 33.4464C28.5639 33.6057 28.2838 33.8968 28.1361 34.2552L28.0812 34.4124L27.7617 35.5207C27.7312 35.6261 27.6352 35.6996 27.5255 35.7016L25.5874 35.7354C25.4685 35.7375 25.3646 35.6555 25.3388 35.5396L25.0832 34.3808L25.0342 34.2068C24.9146 33.8684 24.6748 33.5849 24.361 33.4108L24.1976 33.3335L24.0433 33.2806C23.7308 33.1931 23.3978 33.2118 23.0968 33.3332L22.9495 33.4022L21.7729 34.0361C21.6979 34.0764 21.6097 34.0746 21.5375 34.0363L21.4722 33.9867L20.1375 32.5586C20.0776 32.4944 20.0574 32.4054 20.0787 32.3242L20.1135 32.2474L20.7373 31.3321C20.9834 30.9707 21.049 30.5199 20.923 30.108L20.8575 29.9343L20.7817 29.7901C20.6149 29.5119 20.3581 29.2988 20.0542 29.1855L19.8981 29.1365L18.4973 28.7898C18.3875 28.7625 18.3097 28.6649 18.3075 28.5518L18.275 26.6888C18.2733 26.5838 18.3372 26.4906 18.4321 26.4527L18.4738 26.4402L19.6961 26.1854C20.1451 26.0918 20.5232 25.7997 20.7294 25.3977L20.8074 25.2186C20.9466 24.8306 20.9208 24.4049 20.7399 24.0399L20.6523 23.8881L20.0481 22.9571C19.9825 22.8563 19.9975 22.723 20.0845 22.64L21.5852 21.2083C21.6715 21.126 21.8046 21.1157 21.9022 21.1843L22.718 21.758C23.1295 22.0472 23.659 22.111 24.1274 21.9278C24.5375 21.7673 24.8531 21.4365 24.9966 21.0267L25.0481 20.8461L25.3209 19.5765C25.3453 19.4629 25.4445 19.3809 25.5607 19.3789Z" fill="white" stroke="black" stroke-width="1.5"></path> +<circle cx="26.4669" cy="27.5406" r="2.53895" transform="rotate(-1 26.4669 27.5406)" fill="white" stroke="black" stroke-width="1.5"></circle> +</svg></svg></g></g><defs><clipPath id="SvgjsClipPath1024"><rect width="1000" height="1000" x="0" y="0" rx="250" ry="250"></rect></clipPath></defs></svg> \ No newline at end of file diff --git a/gui/public/provider-icons/umans.svg b/gui/public/provider-icons/umans.svg new file mode 100644 index 0000000000..c6176f143a --- /dev/null +++ b/gui/public/provider-icons/umans.svg @@ -0,0 +1,30 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 160.000000 160.000000"><g transform="translate(0.000000,160.000000) scale(0.100000,-0.100000)" +fill="#000000" stroke="none"><path fill="#f4f4f4" d="M400 1015 l0 -265 75 0 75 0 -2 263 -3 262 -72 3 -73 3 0 -266z +M1080 1015 l0 -265 70 0 70 0 0 265 0 265 -70 0 -70 0 0 -265z M813 723 l-243 +-3 0 -65 0 -65 239 0 239 0 4 70 c2 39 3 69 3 68 0 -2 -109 -4 -242 -5z"/><path fill="#f372a5" d="M402 413 l3 -158 70 0 70 0 3 158 3 157 -76 0 -76 0 3 -157z M1072 +413 l3 -158 66 -3 c48 -2 69 1 78 11 8 10 11 59 9 158 l-3 144 -78 3 -78 3 3 +-158z"/><path fill="#7e7e7e" d="M394 1015 c0 -154 2 -216 3 -137 2 79 2 205 0 280 -1 75 -3 11 -3 +-143z M552 1024 c-1 -199 1 -273 10 -282 9 -9 76 -11 253 -10 l240 2 -245 6 +-245 5 -5 275 -5 275 -3 -271z M1065 1277 c-3 -7 -4 -129 -3 -272 l3 -260 5 +273 c3 149 4 272 2 272 -1 0 -5 -6 -7 -13z M1145 740 l-80 -6 77 -2 c43 -1 80 +2 83 8 3 6 5 9 3 8 -2 -1 -39 -5 -83 -8z M477 733 l72 -4 3 -77 3 -77 255 0 +255 0 1 75 1 75 -4 -72 -4 -73 -249 0 -249 0 -3 78 -3 77 -75 1 -75 1 72 -4z"/><path fill="#d0d0d0" d="M420 1284 c60 -8 130 -8 130 -1 0 4 -35 6 -77 6 -43 -1 -67 -3 -53 +-5z M1077 1284 c-4 -4 -7 -125 -7 -269 0 -190 -3 -264 -12 -273 -15 -15 -484 +-17 -493 -2 -3 6 -42 9 -88 8 l-82 -2 80 -5 80 -6 3 -77 3 -78 249 0 250 0 0 +68 c0 37 4 72 8 79 4 7 38 13 82 15 l75 3 0 270 0 270 -70 3 c-39 1 -74 0 -78 +-4z m143 -269 l0 -265 -70 0 -70 0 0 265 0 265 70 0 70 0 0 -265z m-168 -355 +l-4 -70 -239 0 -239 0 0 65 0 65 243 3 c133 1 242 3 242 5 0 1 -1 -29 -3 -68z"/><path fill="#382b30" d="M433 1293 c26 -2 67 -2 90 0 23 2 2 3 -48 3 -49 0 -68 -1 -42 -3z +M1067 1293 c-3 -4 33 -7 79 -5 l85 3 -3 -280 c-2 -154 0 -277 5 -272 4 4 6 +131 5 282 l-3 274 -82 3 c-45 1 -84 -1 -86 -5z M562 1018 c-1 -147 1 -269 6 +-271 4 -3 6 74 4 171 -4 334 -8 367 -10 100z M1052 880 c0 -14 2 -19 5 -12 2 +6 2 18 0 25 -3 6 -5 1 -5 -13z M1046 755 c-3 -8 -1 -15 4 -15 6 0 10 7 10 15 +0 8 -2 15 -4 15 -2 0 -6 -7 -10 -15z M528 723 c7 -3 16 -2 19 1 4 3 -2 6 -13 +5 -11 0 -14 -3 -6 -6z M1074 716 c-3 -7 -3 -42 -1 -77 l3 -64 2 72 c1 46 6 73 +15 76 9 4 9 6 -1 6 -7 1 -15 -5 -18 -13z M1230 417 l5 -162 3 154 c1 85 -1 +158 -5 162 -5 5 -6 -65 -3 -154z M564 415 c0 -88 2 -123 3 -77 2 46 2 118 0 +160 -1 42 -3 5 -3 -83z M1069 247 c4 -4 43 -7 87 -5 l79 3 -87 5 c-48 3 -83 1 +-79 -3z M433 243 c26 -2 67 -2 90 0 23 2 2 3 -48 3 -49 0 -68 -1 -42 -3z"/><path fill="#89425e" d="M397 573 c-10 -9 -9 -323 1 -323 4 0 6 72 4 160 l-3 160 76 0 76 0 +-3 -160 c-2 -88 0 -160 5 -160 4 0 7 74 7 165 l0 165 -78 0 c-43 0 -82 -3 -85 +-7z M1060 421 c0 -88 3 -162 8 -164 4 -3 6 67 4 155 l-3 160 80 -4 c43 -2 77 +0 74 5 -2 4 -40 7 -84 7 l-79 0 0 -159z M1215 260 c-3 -5 -1 -10 4 -10 6 0 11 +5 11 10 0 6 -2 10 -4 10 -3 0 -8 -4 -11 -10z"/></g></svg> \ No newline at end of file diff --git a/gui/public/provider-icons/venice.svg b/gui/public/provider-icons/venice.svg new file mode 100644 index 0000000000..d914e79c3b --- /dev/null +++ b/gui/public/provider-icons/venice.svg @@ -0,0 +1,165 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 160.000000 160.000000"><g transform="translate(0.000000,160.000000) scale(0.100000,-0.100000)" +fill="#000000" stroke="none"><path fill="#102b43" d="M637 1382 c-26 -27 -27 -32 -27 -137 l0 -110 87 -87 c48 -49 95 -88 +103 -88 8 0 55 39 103 88 l87 87 0 111 c0 108 -1 111 -28 137 l-28 27 -59 -60 +c-33 -33 -66 -60 -74 -60 -9 0 -43 27 -76 60 l-61 60 -27 -28z m95 -59 l58 +-57 0 -113 c0 -62 -3 -113 -7 -113 -4 0 -33 26 -65 57 l-58 57 0 113 c0 62 3 +113 7 113 4 0 33 -26 65 -57z m208 -56 l0 -113 -58 -57 c-32 -31 -61 -57 -65 +-57 -4 0 -7 50 -7 112 l0 112 57 58 c32 32 61 58 65 58 4 0 8 -51 8 -113z +M263 1264 c-4 -10 13 -35 53 -75 l58 -59 -48 -49 -49 -50 44 -3 44 -3 3 -47 +c2 -27 6 -48 10 -48 3 0 28 21 54 47 l48 48 143 -143 142 -142 -32 -32 c-31 +-31 -33 -31 -52 -14 -21 19 -51 16 -51 -5 0 -7 8 -21 17 -31 15 -17 15 -20 +-11 -47 l-28 -29 -41 19 c-88 40 -191 18 -254 -55 -41 -46 -57 -97 -50 -163 7 +-68 38 -118 95 -154 92 -58 186 -47 263 30 74 73 84 146 38 259 -13 32 -13 35 +15 58 28 25 29 25 50 6 37 -34 65 0 31 38 -14 15 -13 20 6 43 26 34 49 34 79 +2 22 -23 22 -26 7 -43 -36 -39 -9 -75 29 -40 21 19 22 19 50 -6 28 -23 28 -26 +15 -58 -46 -113 -36 -186 38 -259 77 -77 171 -88 263 -30 57 36 88 86 95 154 +7 66 -9 117 -50 163 -63 73 -166 95 -254 55 l-41 -19 -28 29 c-27 28 -27 29 +-9 48 18 21 15 51 -6 51 -7 0 -21 -8 -31 -17 -18 -16 -20 -15 -51 15 l-32 32 +142 142 143 143 48 -48 c26 -26 51 -47 54 -47 4 0 8 21 10 48 l3 47 44 3 44 3 +-49 50 -48 49 57 58 c59 60 68 78 41 89 -11 4 -87 -66 -270 -248 l-254 -254 +-253 253 c-138 138 -258 252 -265 252 -7 0 -15 -7 -19 -16z m275 -690 c12 -14 +22 -36 22 -48 0 -19 7 -25 35 -30 106 -20 94 -176 -14 -176 -16 0 -21 -6 -21 +-29 0 -59 -76 -100 -132 -70 -22 12 -52 74 -43 89 4 6 -6 10 -20 10 -90 0 +-123 125 -44 165 15 8 37 15 49 15 12 0 19 4 16 9 -3 5 -1 23 5 40 22 63 102 +76 147 25z m631 21 c28 -14 56 -68 45 -86 -3 -5 4 -9 16 -9 12 0 34 -7 49 -15 +79 -40 46 -165 -44 -165 -14 0 -24 -4 -20 -10 9 -15 -21 -77 -43 -89 -56 -30 +-132 11 -132 70 0 25 -4 29 -29 29 -40 0 -81 43 -81 85 0 43 33 83 75 91 27 5 +35 11 35 28 0 40 44 83 88 85 7 1 26 -6 41 -14z"/><path fill="#c7cdd1" d="M624 1388 l-29 -33 33 29 c17 17 32 31 32 33 0 8 -8 1 -36 -29z M940 +1417 c0 -2 15 -16 33 -33 l32 -29 -29 33 c-28 30 -36 37 -36 29z M548 1040 +l252 -255 253 255 252 255 -252 -250 -253 -250 -252 250 -253 250 253 -255z +M685 1040 c49 -49 92 -90 95 -90 2 0 -36 41 -85 90 -49 50 -92 90 -95 90 -2 0 +36 -40 85 -90z M905 1038 l-90 -93 93 90 c85 83 97 95 89 95 -1 0 -43 -42 -92 +-92z M250 1018 c0 -5 26 -7 58 -7 61 1 55 6 -15 11 -24 2 -43 0 -43 -4z M1290 +1020 l-55 -7 58 -1 c32 -1 57 2 57 8 0 6 -1 9 -2 8 -2 -1 -28 -4 -58 -8z M418 +955 c-31 -30 -53 -55 -49 -55 4 0 31 25 61 55 70 71 62 71 -12 0z M1172 955 +c32 -32 59 -57 61 -55 1 3 -24 30 -58 60 l-60 54 57 -59z M723 718 c-19 -19 +-24 -20 -40 -8 -17 13 -17 13 0 -5 17 -19 18 -19 44 8 15 15 25 27 22 27 -2 0 +-14 -10 -26 -22z M872 715 c27 -29 28 -29 45 -10 17 18 17 18 0 5 -15 -11 -21 +-10 -45 11 l-27 23 27 -29z M620 705 c-6 -8 -10 -19 -8 -24 1 -6 8 1 15 14 13 +28 11 31 -7 10z M972 698 c7 -15 15 -23 17 -17 2 6 -4 18 -13 27 -15 15 -15 +15 -4 -10z M448 633 c12 -2 32 -2 45 0 12 2 2 4 -23 4 -25 0 -35 -2 -22 -4z +M624 618 l-19 -23 23 19 c12 11 22 21 22 23 0 8 -8 2 -26 -19z M965 620 c10 +-11 20 -20 23 -20 3 0 -3 9 -13 20 -10 11 -20 20 -23 20 -3 0 3 -9 13 -20z +M1108 633 c12 -2 30 -2 40 0 9 3 -1 5 -23 4 -22 0 -30 -2 -17 -4z M760 626 c0 +-2 8 -10 18 -17 15 -13 16 -12 3 4 -13 16 -21 21 -21 13z M819 613 c-13 -16 +-12 -17 4 -4 9 7 17 15 17 17 0 8 -8 3 -21 -13z M468 593 c7 -3 16 -2 19 1 4 +3 -2 6 -13 5 -11 0 -14 -3 -6 -6z M1118 593 c7 -3 16 -2 19 1 4 3 -2 6 -13 5 +-11 0 -14 -3 -6 -6z M414 568 l-19 -23 23 19 c12 11 22 21 22 23 0 8 -8 2 -26 +-19z M1175 570 c10 -11 20 -20 23 -20 3 0 -3 9 -13 20 -10 11 -20 20 -23 20 +-3 0 3 -9 13 -20z M675 560 c-10 -11 -16 -22 -14 -24 2 -2 12 7 22 20 22 29 +17 32 -8 4z M769 563 c-13 -16 -12 -17 4 -4 16 13 21 21 13 21 -2 0 -10 -8 +-17 -17z M810 576 c0 -2 8 -10 18 -17 15 -13 16 -12 3 4 -13 16 -21 21 -21 13z +M916 558 c10 -14 21 -24 23 -22 3 3 -6 15 -18 27 l-24 22 19 -27z M358 483 c7 +-3 16 -2 19 1 4 3 -2 6 -13 5 -11 0 -14 -3 -6 -6z M578 483 c7 -3 16 -2 19 1 +4 3 -2 6 -13 5 -11 0 -14 -3 -6 -6z M1008 483 c7 -3 16 -2 19 1 4 3 -2 6 -13 +5 -11 0 -14 -3 -6 -6z M1228 483 c7 -3 16 -2 19 1 4 3 -2 6 -13 5 -11 0 -14 +-3 -6 -6z M304 458 l-19 -23 23 19 c12 11 22 21 22 23 0 8 -8 2 -26 -19z +M1285 460 c10 -11 20 -20 23 -20 3 0 -3 9 -13 20 -10 11 -20 20 -23 20 -3 0 3 +-9 13 -20z M242 410 c0 -14 2 -19 5 -12 2 6 2 18 0 25 -3 6 -5 1 -5 -13z +M1352 410 c0 -14 2 -19 5 -12 2 6 2 18 0 25 -3 6 -5 1 -5 -13z M629 353 c-13 +-16 -12 -17 4 -4 16 13 21 21 13 21 -2 0 -10 -8 -17 -17z M950 366 c0 -2 8 +-10 18 -17 15 -13 16 -12 3 4 -13 16 -21 21 -21 13z M545 330 c-3 -6 1 -7 9 +-4 18 7 21 14 7 14 -6 0 -13 -4 -16 -10z M1030 336 c0 -2 7 -7 16 -10 8 -3 12 +-2 9 4 -6 10 -25 14 -25 6z M310 245 c13 -14 26 -25 28 -25 3 0 -5 11 -18 25 +-13 14 -26 25 -28 25 -3 0 5 -11 18 -25z M1279 243 l-24 -28 28 24 c15 14 27 +26 27 28 0 8 -8 1 -31 -24z M519 243 c-13 -16 -12 -17 4 -4 16 13 21 21 13 21 +-2 0 -10 -8 -17 -17z M1060 256 c0 -2 8 -10 18 -17 15 -13 16 -12 3 4 -13 16 +-21 21 -21 13z"/><path fill="#2d4459" d="M670 1409 c0 -2 27 -31 60 -64 33 -33 60 -57 60 -54 0 2 -27 31 -60 +64 -33 33 -60 57 -60 54z M865 1348 l-60 -63 63 60 c34 33 62 61 62 62 0 8 +-10 -1 -65 -59z M661 1378 c3 -2 34 -30 69 -63 l65 -60 -60 63 c-33 34 -64 62 +-69 62 -5 0 -7 -1 -5 -2z M865 1318 l-60 -63 65 60 c35 33 66 61 69 63 2 1 0 +2 -5 2 -5 0 -36 -28 -69 -62z M310 1188 l54 -58 -47 -48 c-26 -26 -47 -51 -47 +-55 0 -4 21 -6 48 -5 l47 1 -44 4 -44 4 49 50 49 49 -60 58 -60 57 55 -57z +M1280 1185 l-54 -55 48 -49 49 -50 -44 -4 -44 -4 48 -1 c26 -1 47 1 47 5 0 4 +-21 29 -47 55 l-47 48 54 55 c30 30 52 55 49 55 -2 0 -29 -25 -59 -55z M717 +1100 c34 -35 64 -62 65 -60 2 3 -26 32 -62 65 l-65 59 62 -64z M873 1100 c-33 +-33 -58 -60 -54 -60 4 0 33 27 66 60 77 78 68 78 -12 0z M615 878 c77 -79 142 +-142 145 -140 5 3 -272 282 -280 282 -3 0 57 -64 135 -142z M975 880 c-76 -76 +-137 -141 -135 -142 3 -2 68 61 145 140 78 78 138 142 135 142 -3 0 -68 -63 +-145 -140z M620 683 c0 -5 10 -18 23 -29 l22 -19 -20 25 c-11 14 -21 27 -22 +29 -2 2 -3 0 -3 -6z M764 668 l-19 -23 23 19 c21 18 27 26 19 26 -2 0 -12 -10 +-23 -22z M831 664 c13 -17 26 -30 28 -27 3 2 -8 16 -24 31 l-28 27 24 -31z +M956 662 l-19 -27 24 22 c12 12 21 24 18 27 -2 2 -13 -8 -23 -22z M458 623 +c12 -2 30 -2 40 0 9 3 -1 5 -23 4 -22 0 -30 -2 -17 -4z M1108 623 c12 -2 30 +-2 40 0 9 3 -1 5 -23 4 -22 0 -30 -2 -17 -4z M458 603 c6 -2 18 -2 25 0 6 3 1 +5 -13 5 -14 0 -19 -2 -12 -5z M1118 603 c6 -2 18 -2 25 0 6 3 1 5 -13 5 -14 0 +-19 -2 -12 -5z M700 596 c0 -2 8 -10 18 -17 15 -13 16 -12 3 4 -13 16 -21 21 +-21 13z M879 583 c-13 -16 -12 -17 4 -4 16 13 21 21 13 21 -2 0 -10 -8 -17 +-17z M314 558 l-29 -33 33 29 c30 28 37 36 29 36 -2 0 -16 -15 -33 -32z M664 +568 l-19 -23 23 19 c21 18 27 26 19 26 -2 0 -12 -10 -23 -22z M925 570 c10 +-11 20 -20 23 -20 3 0 -3 9 -13 20 -10 11 -20 20 -23 20 -3 0 3 -9 13 -20z +M1250 587 c0 -2 15 -16 33 -33 l32 -29 -29 33 c-28 30 -36 37 -36 29z M353 +493 c9 -2 23 -2 30 0 6 3 -1 5 -18 5 -16 0 -22 -2 -12 -5z M568 493 c6 -2 18 +-2 25 0 6 3 1 5 -13 5 -14 0 -19 -2 -12 -5z M1008 493 c6 -2 18 -2 25 0 6 3 1 +5 -13 5 -14 0 -19 -2 -12 -5z M1223 493 c9 -2 23 -2 30 0 6 3 -1 5 -18 5 -16 +0 -22 -2 -12 -5z M251 404 c0 -11 3 -14 6 -6 3 7 2 16 -1 19 -3 4 -6 -2 -5 +-13z M1341 404 c0 -11 3 -14 6 -6 3 7 2 16 -1 19 -3 4 -6 -2 -5 -13z M290 356 +c0 -2 8 -10 18 -17 15 -13 16 -12 3 4 -13 16 -21 21 -21 13z M1289 343 c-13 +-16 -12 -17 4 -4 16 13 21 21 13 21 -2 0 -10 -8 -17 -17z M619 253 l-24 -28 +28 24 c15 14 27 26 27 28 0 8 -8 1 -31 -24z M970 255 c13 -14 26 -25 28 -25 3 +0 -5 11 -18 25 -13 14 -26 25 -28 25 -3 0 5 -11 18 -25z M400 246 c0 -2 8 -10 +18 -17 15 -13 16 -12 3 4 -13 16 -21 21 -21 13z M1179 233 c-13 -16 -12 -17 4 +-4 16 13 21 21 13 21 -2 0 -10 -8 -17 -17z"/><path fill="#556878" d="M629 1383 l-24 -28 28 24 c25 23 32 31 24 31 -2 0 -14 -12 -28 -27z +M960 1385 c13 -14 26 -25 28 -25 3 0 -5 11 -18 25 -13 14 -26 25 -28 25 -3 0 +5 -11 18 -25z M664 1265 c0 -60 1 -84 3 -52 2 32 2 81 0 110 -2 29 -3 3 -3 +-58z M934 1265 c0 -60 1 -84 3 -52 2 32 2 81 0 110 -2 29 -3 3 -3 -58z M604 +1245 c0 -60 1 -84 3 -52 2 32 2 81 0 110 -2 29 -3 3 -3 -58z M994 1245 c0 -60 +1 -84 3 -52 2 32 2 81 0 110 -2 29 -3 3 -3 -58z M281 1288 c3 -2 113 -109 244 +-238 l240 -235 -235 238 c-129 130 -239 237 -244 237 -5 0 -7 -1 -5 -2z M1070 +1053 l-235 -238 240 235 c131 129 241 236 244 238 2 1 0 2 -5 2 -5 0 -115 +-107 -244 -237z M690 1045 c47 -47 87 -85 90 -85 2 0 -33 38 -80 85 -47 47 +-87 85 -90 85 -2 0 33 -38 80 -85z M870 1013 l-55 -58 58 55 c31 30 57 56 57 +57 0 8 -10 -1 -60 -54z M415 958 l-50 -53 53 50 c48 46 57 55 49 55 -1 0 -25 +-24 -52 -52z M1175 960 c27 -27 51 -50 54 -50 3 0 -17 23 -44 50 -27 28 -51 +50 -54 50 -3 0 17 -22 44 -50z M629 703 c-13 -16 -12 -17 4 -4 9 7 17 15 17 +17 0 8 -8 3 -21 -13z M677 699 c12 -12 24 -21 27 -18 2 2 -8 13 -22 23 l-27 +19 22 -24z M911 700 c-13 -11 -19 -20 -14 -20 6 0 18 9 28 20 23 25 17 25 -14 +0z M950 716 c0 -2 8 -10 18 -17 15 -13 16 -12 3 4 -13 16 -21 21 -21 13z M750 +626 c0 -2 8 -10 18 -17 15 -13 16 -12 3 4 -13 16 -21 21 -21 13z M829 613 +c-13 -16 -12 -17 4 -4 16 13 21 21 13 21 -2 0 -10 -8 -17 -17z M348 323 c6 -2 +18 -2 25 0 6 3 1 5 -13 5 -14 0 -19 -2 -12 -5z M550 321 c0 -4 11 -6 25 -3 14 +2 25 6 25 8 0 2 -11 4 -25 4 -14 0 -25 -4 -25 -9z M1000 326 c0 -2 11 -6 25 +-8 14 -3 25 -1 25 3 0 5 -11 9 -25 9 -14 0 -25 -2 -25 -4z M1228 323 c6 -2 18 +-2 25 0 6 3 1 5 -13 5 -14 0 -19 -2 -12 -5z M315 250 c10 -11 20 -20 23 -20 3 +0 -3 9 -13 20 -10 11 -20 20 -23 20 -3 0 3 -9 13 -20z M1274 248 l-19 -23 23 +19 c12 11 22 21 22 23 0 8 -8 2 -26 -19z"/><path fill="#96a1ab" d="M732 1355 l68 -70 52 55 53 55 -53 -50 -52 -49 -68 64 -67 65 67 -70z +M720 1315 c30 -30 57 -55 59 -55 3 0 -19 25 -49 55 -30 30 -57 55 -59 55 -3 0 +19 -25 49 -55z M870 1313 l-55 -58 58 55 c53 50 62 60 54 60 -1 0 -27 -26 -57 +-57z M300 1188 l54 -58 -49 -52 -50 -53 55 53 55 52 -60 58 -60 57 55 -57z +M1290 1185 l-55 -55 55 -53 55 -52 -50 53 -49 52 54 55 c30 30 52 55 49 55 -2 +0 -29 -25 -59 -55z M720 1105 c30 -30 57 -55 59 -55 3 0 -19 25 -49 55 -30 30 +-57 55 -59 55 -3 0 19 -25 49 -55z M875 1108 l-50 -53 53 50 c48 46 57 55 49 +55 -1 0 -25 -24 -52 -52z M363 960 c0 -30 2 -43 4 -27 2 15 2 39 0 55 -2 15 +-4 2 -4 -28z M610 878 c125 -128 140 -143 140 -135 0 1 -62 63 -137 137 l-138 +135 135 -137z M980 873 l-135 -138 138 135 c75 74 137 136 137 137 0 8 -15 -7 +-140 -134z M1233 960 c0 -30 2 -43 4 -27 2 15 2 39 0 55 -2 15 -4 2 -4 -28z +M769 663 c-13 -16 -12 -17 4 -4 9 7 17 15 17 17 0 8 -8 3 -21 -13z M810 676 +c0 -2 8 -10 18 -17 15 -13 16 -12 3 4 -13 16 -21 21 -21 13z M620 666 c0 -2 8 +-10 18 -17 15 -13 16 -12 3 4 -13 16 -21 21 -21 13z M959 653 c-13 -16 -12 +-17 4 -4 9 7 17 15 17 17 0 8 -8 3 -21 -13z M700 586 c0 -2 8 -10 18 -17 15 +-13 16 -12 3 4 -13 16 -21 21 -21 13z M879 573 c-13 -16 -12 -17 4 -4 16 13 +21 21 13 21 -2 0 -10 -8 -17 -17z M392 520 c0 -14 2 -19 5 -12 2 6 2 18 0 25 +-3 6 -5 1 -5 -13z M1202 520 c0 -14 2 -19 5 -12 2 6 2 18 0 25 -3 6 -5 1 -5 +-13z M282 410 c0 -14 2 -19 5 -12 2 6 2 18 0 25 -3 6 -5 1 -5 -13z M1312 410 +c0 -14 2 -19 5 -12 2 6 2 18 0 25 -3 6 -5 1 -5 -13z M392 300 c0 -14 2 -19 5 +-12 2 6 2 18 0 25 -3 6 -5 1 -5 -13z M1202 300 c0 -14 2 -19 5 -12 2 6 2 18 0 +25 -3 6 -5 1 -5 -13z M400 256 c0 -2 8 -10 18 -17 15 -13 16 -12 3 4 -13 16 +-21 21 -21 13z M1179 243 c-13 -16 -12 -17 4 -4 16 13 21 21 13 21 -2 0 -10 +-8 -17 -17z"/><path fill="#707f8d" d="M812 1163 c-1 -56 1 -104 6 -106 4 -3 6 27 4 66 -5 129 -9 144 -10 +40z M784 1155 c0 -55 1 -76 3 -47 2 29 2 74 0 100 -2 26 -3 2 -3 -53z M959 +1103 l-34 -38 38 34 c34 33 42 41 34 41 -2 0 -19 -17 -38 -37z M760 816 c0 -2 +8 -10 18 -17 15 -13 16 -12 3 4 -13 16 -21 21 -21 13z M819 803 c-13 -16 -12 +-17 4 -4 9 7 17 15 17 17 0 8 -8 3 -21 -13z M724 708 l-19 -23 23 19 c21 18 +27 26 19 26 -2 0 -12 -10 -23 -22z M865 710 c10 -11 20 -20 23 -20 3 0 -3 9 +-13 20 -10 11 -20 20 -23 20 -3 0 3 -9 13 -20z M624 608 l-19 -23 23 19 c21 +18 27 26 19 26 -2 0 -12 -10 -23 -22z M965 610 c10 -11 20 -20 23 -20 3 0 -3 +9 -13 20 -10 11 -20 20 -23 20 -3 0 3 -9 13 -20z M409 573 c-13 -16 -12 -17 4 +-4 16 13 21 21 13 21 -2 0 -10 -8 -17 -17z M670 565 c-13 -14 -22 -27 -19 -29 +2 -2 14 10 27 25 29 36 24 38 -8 4z M921 564 c13 -17 26 -30 28 -27 3 2 -8 16 +-24 31 l-28 27 24 -31z M1170 586 c0 -2 8 -10 18 -17 15 -13 16 -12 3 4 -13 +16 -21 21 -21 13z M309 563 c-13 -16 -12 -17 4 -4 9 7 17 15 17 17 0 8 -8 3 +-21 -13z M1270 576 c0 -2 8 -10 18 -17 15 -13 16 -12 3 4 -13 16 -21 21 -21 +13z M692 410 c0 -14 2 -19 5 -12 2 6 2 18 0 25 -3 6 -5 1 -5 -13z M902 410 c0 +-14 2 -19 5 -12 2 6 2 18 0 25 -3 6 -5 1 -5 -13z M458 183 c6 -2 18 -2 25 0 6 +3 1 5 -13 5 -14 0 -19 -2 -12 -5z M1118 183 c6 -2 18 -2 25 0 6 3 1 5 -13 5 +-14 0 -19 -2 -12 -5z"/></g></svg> \ No newline at end of file diff --git a/gui/public/provider-icons/vultr.svg b/gui/public/provider-icons/vultr.svg new file mode 100644 index 0000000000..69e60c18d9 --- /dev/null +++ b/gui/public/provider-icons/vultr.svg @@ -0,0 +1,15 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 160.000000 160.000000"><g transform="translate(0.000000,160.000000) scale(0.100000,-0.100000)" +fill="#000000" stroke="none"><path fill="#007cfb" d="M956 1459 c-17 -13 -26 -30 -26 -48 0 -39 307 -528 350 -558 54 -38 +80 -16 185 156 28 45 69 111 93 147 43 68 52 103 28 123 -7 6 -37 50 -67 97 +-31 51 -63 90 -77 95 -13 5 -121 9 -241 9 -206 0 -220 -1 -245 -21z M235 1145 +c-14 -13 -25 -35 -25 -49 0 -14 47 -98 110 -199 61 -96 110 -179 110 -185 0 +-6 4 -12 8 -14 8 -3 112 -155 112 -163 0 -9 234 -372 253 -392 27 -30 77 -30 +104 0 21 24 191 292 217 344 16 31 15 34 -12 80 -25 41 -231 371 -331 528 -17 +27 -41 55 -54 62 -16 9 -87 12 -245 13 l-223 0 -24 -25z"/><path fill="#0079f5" d="M1490 1420 c6 -11 13 -20 16 -20 2 0 0 9 -6 20 -6 11 -13 20 -16 20 +-2 0 0 -9 6 -20z M1570 1180 c-6 -11 -8 -20 -6 -20 3 0 10 9 16 20 6 11 8 20 +6 20 -3 0 -10 -9 -16 -20z M531 553 c7 -12 15 -20 18 -17 3 2 -3 12 -13 22 +-17 16 -18 16 -5 -5z M1120 550 c6 -11 13 -20 16 -20 2 0 0 9 -6 20 -6 11 -13 +20 -16 20 -2 0 0 -9 6 -20z M1116 473 c-6 -14 -5 -15 5 -6 7 7 10 15 7 18 -3 +3 -9 -2 -12 -12z M838 113 c6 -2 18 -2 25 0 6 3 1 5 -13 5 -14 0 -19 -2 -12 +-5z"/><path fill="#006ad8" d="M1103 1483 c59 -2 155 -2 215 0 59 1 10 3 -108 3 -118 0 -167 -2 +-107 -3z"/></g></svg> \ No newline at end of file diff --git a/gui/public/provider-icons/zai.svg b/gui/public/provider-icons/zai.svg new file mode 100644 index 0000000000..536f3521ee --- /dev/null +++ b/gui/public/provider-icons/zai.svg @@ -0,0 +1,218 @@ +<?xml version="1.0" encoding="utf-8"?> +<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 30 30" style="enable-background:new 0 0 30 30;" xml:space="preserve"> +<style type="text/css"> + .st0{opacity:0.3;fill:#E2E4E7;} + .st1{opacity:0.8;fill:#E2E4E7;stroke:#FFFFFF;stroke-width:5;stroke-miterlimit:10;} + .st2{fill:url(#SVGID_1_);} + .st3{fill:none;stroke:#E0E4E9;stroke-width:0.25;stroke-miterlimit:10;} + .st4{fill:none;} + .st5{fill:#9DA1A5;} + .st6{fill-rule:evenodd;clip-rule:evenodd;fill:none;} + .st7{fill-rule:evenodd;clip-rule:evenodd;fill:#DFE2E7;} + .st8{fill-rule:evenodd;clip-rule:evenodd;fill:#CDD4DA;} + .st9{fill-rule:evenodd;clip-rule:evenodd;fill:#B3BCC7;} + .st10{fill-rule:evenodd;clip-rule:evenodd;fill:#9DAAB7;} + .st11{fill-rule:evenodd;clip-rule:evenodd;fill:#8698A8;} + .st12{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_2_);} + .st13{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_3_);} + .st14{fill:#1F63EC;} + .st15{fill:#2D2D2D;} + .st16{fill:none;stroke:#E0E4E9;stroke-width:0.5;stroke-miterlimit:10;} + .st17{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_4_);} + .st18{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_5_);} + .st19{fill:none;stroke:#677380;stroke-width:0.5;stroke-miterlimit:10;} + .st20{fill:none;stroke:url(#SVGID_6_);stroke-width:2;stroke-miterlimit:10;} + .st21{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_7_);} + .st22{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_8_);} + .st23{fill:#FFFFFF;} + .st24{fill-rule:evenodd;clip-rule:evenodd;fill:#2D2D2D;} + .st25{clip-path:url(#SVGID_10_);} + .st26{clip-path:url(#SVGID_12_);} + .st27{fill:url(#SVGID_13_);} + .st28{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_14_);} + .st29{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_15_);} + .st30{clip-path:url(#SVGID_17_);} + .st31{clip-path:url(#SVGID_19_);} + .st32{fill:url(#SVGID_20_);} + .st33{fill:none;stroke:url(#SVGID_21_);stroke-width:2;stroke-miterlimit:10;} + .st34{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_22_);} + .st35{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_23_);} + .st36{clip-path:url(#SVGID_25_);} + .st37{clip-path:url(#SVGID_27_);} + .st38{fill:url(#SVGID_28_);} + .st39{clip-path:url(#SVGID_30_);} + .st40{clip-path:url(#SVGID_32_);} + .st41{fill:url(#SVGID_33_);} + .st42{fill-rule:evenodd;clip-rule:evenodd;fill:#126EF6;} + .st43{fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;} + .st44{clip-path:url(#SVGID_35_);} + .st45{clip-path:url(#SVGID_37_);} + .st46{fill:url(#SVGID_38_);} + .st47{fill-rule:evenodd;clip-rule:evenodd;fill:#9DA1A5;} + .st48{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_39_);} + .st49{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_40_);} + .st50{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_41_);} + .st51{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_42_);} + .st52{fill:none;stroke:url(#SVGID_43_);stroke-width:2;stroke-miterlimit:10;} + .st53{fill-rule:evenodd;clip-rule:evenodd;fill:none;stroke:#E0E4E9;stroke-width:0.5;stroke-miterlimit:10;} + .st54{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_44_);} + .st55{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_45_);} + .st56{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_46_);} + .st57{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_47_);} + .st58{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_48_);} + .st59{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_49_);} + .st60{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_50_);} + .st61{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_51_);} + .st62{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_52_);} + .st63{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_53_);} + .st64{clip-path:url(#SVGID_55_);} + .st65{clip-path:url(#SVGID_57_);} + .st66{fill:url(#SVGID_58_);} + .st67{clip-path:url(#SVGID_60_);} + .st68{clip-path:url(#SVGID_62_);} + .st69{fill:url(#SVGID_63_);} + .st70{fill:none;stroke:url(#SVGID_64_);stroke-width:2;stroke-miterlimit:10;} + .st71{clip-path:url(#SVGID_66_);} + .st72{clip-path:url(#SVGID_68_);} + .st73{fill:url(#SVGID_69_);} + .st74{clip-path:url(#SVGID_71_);} + .st75{clip-path:url(#SVGID_73_);} + .st76{fill:url(#SVGID_74_);} + .st77{clip-path:url(#SVGID_76_);} + .st78{clip-path:url(#SVGID_78_);} + .st79{fill:url(#SVGID_79_);} + .st80{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_80_);} + .st81{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_81_);} + .st82{clip-path:url(#SVGID_83_);} + .st83{clip-path:url(#SVGID_85_);} + .st84{fill:url(#SVGID_86_);} + .st85{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_87_);} + .st86{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_88_);} + .st87{clip-path:url(#SVGID_90_);} + .st88{clip-path:url(#SVGID_92_);} + .st89{fill:url(#SVGID_93_);} + .st90{fill:none;stroke:url(#SVGID_94_);stroke-width:2;stroke-miterlimit:10;} + .st91{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_95_);} + .st92{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_96_);} + .st93{clip-path:url(#SVGID_98_);} + .st94{clip-path:url(#SVGID_100_);} + .st95{fill:url(#SVGID_101_);} + .st96{clip-path:url(#SVGID_103_);} + .st97{clip-path:url(#SVGID_105_);} + .st98{fill:url(#SVGID_106_);} + .st99{clip-path:url(#SVGID_108_);} + .st100{clip-path:url(#SVGID_110_);} + .st101{fill:url(#SVGID_111_);} + .st102{fill:#FFFFFF;stroke:#B3BCC7;stroke-width:0.275;stroke-miterlimit:10;} + .st103{clip-path:url(#SVGID_113_);} + .st104{fill:#FDD138;} + .st105{fill:#FCA62F;} + .st106{fill:#FB7927;} + .st107{fill:#F44B22;} + .st108{fill:#D81915;} + .st109{fill:#2D2D2D;stroke:#FFFFFF;stroke-width:0.3354;stroke-miterlimit:10;} + .st110{fill:none;stroke:#65727F;stroke-width:2;stroke-miterlimit:10;} + .st111{fill:none;stroke:#65727F;stroke-width:0.75;stroke-miterlimit:10;} + .st112{fill:url(#SVGID_114_);} + .st113{fill:#D06C50;} + .st114{fill:#2D2D2D;stroke:#B3BCC7;stroke-width:0.275;stroke-miterlimit:10;} + .st115{opacity:0.2;} + .st116{fill:none;stroke:#677380;stroke-width:0.3564;stroke-miterlimit:10;} + .st117{fill:none;stroke:#677380;stroke-width:0.3564;stroke-miterlimit:10;stroke-dasharray:1.0212,1.0212;} + .st118{fill:none;stroke:#677380;stroke-width:0.3564;stroke-miterlimit:10;stroke-dasharray:1.0205,1.0205;} + .st119{opacity:0.2;fill:none;} + .st120{fill:none;stroke:#677380;stroke-width:0.3689;stroke-miterlimit:10;} + .st121{fill:none;stroke:#677380;stroke-width:0.3689;stroke-miterlimit:10;stroke-dasharray:1.0509,1.0509;} + .st122{opacity:0.3;fill:#1F63EC;} + .st123{fill:#2D2D2D;stroke:#FFFFFF;stroke-width:0.3162;stroke-miterlimit:10;} + .st124{fill:#FFFFFF;stroke:#B3BCC7;stroke-width:0.3162;stroke-miterlimit:10;} + .st125{clip-path:url(#SVGID_118_);} + .st126{fill:url(#SVGID_119_);} + .st127{fill:none;stroke:#DFE2E7;stroke-width:0.75;stroke-miterlimit:10;} + .st128{fill:#9DA1A5;stroke:#FFFFFF;stroke-miterlimit:10;} + .st129{fill:url(#SVGID_120_);} + .st130{fill:none;stroke:#677380;stroke-width:0.75;stroke-miterlimit:10;} + .st131{opacity:0.4;} + .st132{clip-path:url(#SVGID_122_);} + .st133{clip-path:url(#SVGID_124_);} + .st134{fill:url(#SVGID_125_);} + .st135{fill:none;stroke:#8392A3;stroke-width:0.35;stroke-miterlimit:10;} + .st136{fill:none;stroke:#8392A3;stroke-width:0.35;stroke-miterlimit:10;stroke-dasharray:0.9951,0.9951;} + .st137{fill:none;stroke:#8392A3;stroke-width:0.35;stroke-miterlimit:10;stroke-dasharray:1.004,1.004;} + .st138{fill:none;stroke:url(#SVGID_126_);stroke-width:1.5;stroke-miterlimit:10;} + .st139{fill:url(#SVGID_127_);} + .st140{fill:none;stroke:#DDE0E4;stroke-width:0.35;stroke-miterlimit:10;} + .st141{fill:#2D2D2D;stroke:#A9B3BE;stroke-width:0.275;stroke-miterlimit:10;} + .st142{fill-rule:evenodd;clip-rule:evenodd;fill:#126EF4;} + .st143{fill:#FFFFFF;stroke:#B1BAC4;stroke-width:0.275;stroke-miterlimit:10;} + .st144{fill:#CE6C50;} + .st145{fill:#5B5B5B;} + .st146{fill:#8392A3;} + .st147{fill:none;stroke:url(#SVGID_128_);stroke-width:1.5;stroke-miterlimit:10;} + .st148{fill:url(#SVGID_129_);} + .st149{fill:none;stroke:#B5BDC4;stroke-width:0.7;stroke-miterlimit:10;} + .st150{opacity:0.6;fill:none;stroke:#78838E;stroke-width:0.35;stroke-miterlimit:10;} + .st151{opacity:0.2;fill:none;stroke:#8392A3;stroke-width:0.35;stroke-miterlimit:10;stroke-dasharray:1,1;} + .st152{fill:none;stroke:#DDE0E4;stroke-width:0.75;stroke-miterlimit:10;} + .st153{fill:none;stroke:#8392A3;stroke-width:0.5;stroke-miterlimit:10;} + .st154{opacity:0.2;fill:none;stroke:#677380;stroke-width:0.3564;stroke-miterlimit:10;stroke-dasharray:1.0182,1.0182;} + .st155{fill:none;stroke:#DDE0E4;stroke-width:0.765;stroke-miterlimit:10;} + .st156{fill:url(#SVGID_130_);} + .st157{fill:url(#SVGID_131_);} + .st158{fill:#B1BAC4;} + .st159{fill:#CBD1D8;} + .st160{fill:#0B1B2B;} + .st161{fill:#91D119;} + .st162{opacity:0.7;} + .st163{fill:#FFFFFF;stroke:#000000;stroke-width:0.4418;stroke-miterlimit:10;} + .st164{fill:none;stroke:#939CAA;stroke-width:0.2209;stroke-miterlimit:10;} + .st165{fill:none;stroke:#FFFFFF;stroke-width:3.0924;stroke-miterlimit:10;} + .st166{fill:url(#SVGID_132_);} + .st167{fill:none;stroke:url(#SVGID_133_);stroke-width:1.714;stroke-miterlimit:10;} + .st168{fill:url(#SVGID_134_);} + .st169{fill:url(#SVGID_135_);} + .st170{fill:url(#SVGID_136_);} + .st171{fill:url(#SVGID_137_);} + .st172{fill:url(#SVGID_138_);} + .st173{fill:url(#SVGID_139_);} + .st174{fill:url(#SVGID_140_);} + .st175{fill:url(#SVGID_141_);} + .st176{fill:url(#SVGID_142_);} + .st177{fill:url(#SVGID_143_);} + .st178{fill:url(#SVGID_144_);} + .st179{fill:none;stroke:#1F63EC;stroke-width:4;stroke-miterlimit:10;} + .st180{fill:none;stroke:#0B1B2B;stroke-width:4;stroke-miterlimit:10;} + .st181{fill:none;stroke:#677380;stroke-width:0.3989;stroke-miterlimit:10;} + .st182{fill:none;stroke:#677380;stroke-width:0.3989;stroke-miterlimit:10;stroke-dasharray:1.14,1.14;} + .st183{fill:#257AF1;} + .st184{opacity:0.3;fill:#FFFFFF;} + .st185{fill:none;stroke:#98A5B2;stroke-width:4;stroke-miterlimit:10;} + .st186{fill:none;stroke:#65727F;stroke-width:0.3989;stroke-miterlimit:10;} + .st187{fill:none;stroke:#65727F;stroke-width:0.3989;stroke-miterlimit:10;stroke-dasharray:1.14,1.14;} + .st188{fill:none;stroke:#DDDFE4;stroke-width:0.75;stroke-miterlimit:10;} + .st189{fill:#9A9EA2;} + .st190{fill-rule:evenodd;clip-rule:evenodd;fill:#3267AC;} + .st191{fill:#FFFFFF;stroke:#AFB8C3;stroke-width:0.275;stroke-miterlimit:10;} + .st192{fill:#C5694E;} + .st193{fill:#8192A2;} + .st194{fill:#2D2D2D;stroke:#FFFFFF;stroke-width:0.6317;stroke-miterlimit:10;} +</style> +<g id="图层_2"> +</g> +<g id="图层_1"> + <path class="st194" d="M24.51,28.51H5.49c-2.21,0-4-1.79-4-4V5.49c0-2.21,1.79-4,4-4h19.03c2.21,0,4,1.79,4,4v19.03 + C28.51,26.72,26.72,28.51,24.51,28.51z"/> + <g> + <g> + <g> + <g> + <path class="st23" d="M15.47,7.1l-1.3,1.85c-0.2,0.29-0.54,0.47-0.9,0.47h-7.1V7.09C6.16,7.1,15.47,7.1,15.47,7.1z"/> + <polygon class="st23" points="24.3,7.1 13.14,22.91 5.7,22.91 16.86,7.1 "/> + <path class="st23" d="M14.53,22.91l1.31-1.86c0.2-0.29,0.54-0.47,0.9-0.47h7.09v2.33H14.53z"/> + </g> + </g> + </g> + </g> +</g> +</svg> \ No newline at end of file diff --git a/gui/public/provider-icons/zenmux.svg b/gui/public/provider-icons/zenmux.svg new file mode 100644 index 0000000000..0f0f3b1800 --- /dev/null +++ b/gui/public/provider-icons/zenmux.svg @@ -0,0 +1 @@ +<svg width="160" height="160" xmlns="http://www.w3.org/2000/svg" fill="none"><path stroke="null" fill="#000" d="M77.776.421c8.25-.317 24.947.775 38.304 12.768 10.957 9.839 14.733 28.078 12.18 42.221-2.341 12.965-7.858 23.572-5.696 33.394 2.16 9.821 7.658 14.663 12.334 16.696 4.519 1.965 8.886 1.375 8.055 5.108-.832 3.732-6.482 5.107-10.608 5.107-2.262 0-9.103-.59-12.139-2.554-3.587-2.322-4.386-4.402-5.752-6.074-.231-.284-.64-.087-.586.276.622 4.113 2.338 11.094 5.12 15.423 2.252 3.503 3.183 6.058 8.341 10.38 5.16 4.32 7.57 8.249 2.553 11.031-4.456 2.471-14.142-2.585-19.839-8.839-5.127-5.629-8.697-12.572-10.108-17.09-.755-2.415-1.511-6.57-2.266-9.969-.1-.446-.711-.374-.725.084-.25 8.649-1.61 16.909-3.598 25.764-1.43 6.375-4.91 14.143-8.053 18.857-3.833 5.749-9.522 7.543-13.75 5.971-3.382-1.257-.983-5.531 0-9.232.982-3.7 2.947-11.439 4.27-19.918 1.197-7.674 1.514-15.271.981-22.47-.033-.439-.708-.506-.844-.087-1.102 3.376-3.18 8.972-4.696 12.376-3.162 7.099-5.501 10.214-11.983 17.677-5.83 6.714-22.597 16.207-24.75 6.876-.59-2.553 2.498-3.671 5.345-5.893 4.28-3.339 7.857-9.264 11.248-16.5 3.045-6.497 4.592-12.782 4.83-16.794.022-.387-.464-.533-.682-.213-1.41 2.067-3.485 4.865-5.771 7.185-3.819 3.877-8.054 7.867-12.966 9.822-7.897 3.143-15.95.982-15.361-4.714.492-4.758 5.804-3.773 12.416-10.987 6.482-7.072 8.643-12.573 9.035-18.662.314-4.872-4.451-16.434-6.874-21.607-3.863-8.25-6.718-31.665 4.91-46.75C55.188.226 72.67.617 77.777.42zM55.101 33.397c-5.408 0-8.112 4.151-8.112 9.272 0 5.12 3.004 9.271 8.112 9.271 5.108 0 8.113-4.15 8.113-9.271 0-5.12-2.705-9.272-8.113-9.272zm44.04 0c-5.408 0-8.112 4.151-8.113 9.272 0 5.12 3.005 9.271 8.113 9.271s8.113-4.15 8.113-9.271c0-5.12-2.705-9.272-8.113-9.272z" clip-rule="evenodd" fill-rule="evenodd"/></svg> \ No newline at end of file diff --git a/gui/src/provider-icons.ts b/gui/src/provider-icons.ts index 043529cf67..0266df2829 100644 --- a/gui/src/provider-icons.ts +++ b/gui/src/provider-icons.ts @@ -44,6 +44,38 @@ const PROVIDER_ICON_ALIASES: Record<string, string> = { alibaba: "alibaba-color.svg", "alibaba-token-plan": "alibaba-color.svg", "alibaba-token-plan-intl": "alibaba-color.svg", + baseten: "baseten.svg", + bizrouter: "bizrouter.svg", + cerebras: "cerebras.svg", + deepinfra: "deepinfra.svg", + digitalocean: "digitalocean.svg", + featherless: "featherless.svg", + hyperbolic: "hyperbolic.svg", + kilo: "kilo.svg", + nanogpt: "nanogpt.svg", + nebius: "nebius.svg", + neuralwatt: "neuralwatt.svg", + novita: "novita.svg", + orcarouter: "orcarouter.svg", + parallel: "parallel.svg", + sambanova: "sambanova.svg", + scaleway: "scaleway.svg", + siliconflow: "siliconflow.svg", + synthetic: "synthetic.svg", + umans: "umans.svg", + venice: "venice.svg", + vultr: "vultr.svg", + zenmux: "zenmux.svg", + /* + * Z.AI and Zhipu's BigModel are the same company on two brands. `zai` is the + * international GLM Coding Plan and the mark comes from z.ai; the two + * `zhipu-bigmodel*` ids are the mainland console, which publishes only a + * horizontal wordmark, so they borrow it rather than render a lockup squeezed + * into a 19px box. + */ + zai: "zai.svg", + "zhipu-bigmodel": "zai.svg", + "zhipu-bigmodel-coding": "zai.svg", "qwen-cloud": "qwen-portal-color.svg", "vercel-ai-gateway": "vercel-ai-gateway-color.svg", vllm: "vllm-color.svg", diff --git a/gui/tests/provider-marks-assets.test.ts b/gui/tests/provider-marks-assets.test.ts new file mode 100644 index 0000000000..b6350cafff --- /dev/null +++ b/gui/tests/provider-marks-assets.test.ts @@ -0,0 +1,66 @@ +import { expect, test } from "bun:test"; +import { readFileSync, readdirSync } from "node:fs"; +import { join } from "node:path"; +import { PROVIDER_REGISTRY } from "../../src/providers/registry"; +import { providerIconSrc } from "../src/provider-icons"; + +const PUBLIC_DIR = join(import.meta.dir, "..", "public", "provider-icons"); + +function bodyOf(src: string): string { + return readFileSync(join(PUBLIC_DIR, src.replace(/^\/provider-icons\//, "")), "utf8"); +} + +/** Every asset a provider resolves to, deduplicated -- several ids share one file. */ +function wiredAssets(): string[] { + const seen = new Set<string>(); + for (const entry of PROVIDER_REGISTRY) { + const src = providerIconSrc(entry.id); + if (src) seen.add(src); + } + return [...seen].sort(); +} + +/* + * The three ways a mark passes an SVG parse and still fails as artwork. + * + * A `<text>` glyph renders per-machine and blank where the font lacks the + * character -- that is what disqualified the Hermes repo favicon, 113 bytes whose + * entire body was one text element. An `<image>` or a base64 payload is a raster + * wearing an SVG costume: it will not scale into the 19px tile and cannot be + * masked. Neither is visible in review; both are visible here. + */ +test("every wired provider mark is drawn geometry, not text or a wrapped raster", () => { + const broken: string[] = []; + for (const src of wiredAssets()) { + const body = bodyOf(src); + if (/<text[\s>]/.test(body)) broken.push(`${src}: renders a <text> glyph`); + if (/<image[\s>]/.test(body)) broken.push(`${src}: embeds a raster`); + if (/;base64,/.test(body)) broken.push(`${src}: carries a base64 payload`); + if (!/<(path|circle|rect|polygon|ellipse|line|polyline)[\s>]/.test(body)) { + broken.push(`${src}: carries no vector geometry`); + } + } + expect(broken).toEqual([]); +}); + +/* + * A wordmark in a square slot. + * + * The rail draws a 19px box. A horizontal lockup scaled into it is an illegible + * smear, which is what disqualified the MiniMax docs asset (129x32) in the + * previous unit and several vendor logos in this one. The viewBox is the only + * thing that says which shape a file is, and it is not something review catches. + * + * The threshold is deliberately loose: 2.5 admits a slightly wide mark and still + * rejects the 4:1-and-up lockups that actually caused the problem. + */ +test("no wired provider mark is a horizontal wordmark", () => { + const lockups: string[] = []; + for (const src of wiredAssets()) { + const box = bodyOf(src).match(/viewBox="[-\d.eE]+[ ,]+[-\d.eE]+[ ,]+([\d.eE]+)[ ,]+([\d.eE]+)"/); + if (!box) continue; + const ratio = Number(box[1]) / Number(box[2]); + if (Number.isFinite(ratio) && ratio > 2.5) lockups.push(`${src}: ${ratio.toFixed(2)}:1`); + } + expect(lockups).toEqual([]); +}); From abebc148e37a0175bd118b180defdc79edfa1559 Mon Sep 17 00:00:00 2001 From: bitkyc08-arch <bitkyc08@gmail.com> Date: Tue, 1 Sep 2026 02:07:56 +0900 Subject: [PATCH 2/2] feat(gui): add together, litellm and nous marks from their docs sites Three vendors whose marketing site offered only a wordmark publish a square mark one hop away. together.ai and litellm.ai both serve one from their docs subdomain, and nousresearch.com has an apple-touch-icon worth tracing. The Nous case needed care. Its safari-pinned-tab.svg is the same full-frame file the Hermes client mark rejected -- it renders as a black square. The apple-touch-icon is the real company mark, and it stays distinct from hermes-agent.svg: one organization, two marks, and attributing either to the other would be wrong. Providers resolved: 70 -> 77 of 83. The remaining six (chutes, nscale, the three volcengine plan ids, tencent-coding-plan) publish nothing usable at their registry domains, docs subdomains, or the conventional icon paths; the README records what was searched. --- gui/public/provider-icons/README.md | 44 ++++++-- gui/public/provider-icons/litellm.svg | 1 + gui/public/provider-icons/nous.svg | 149 +++++++++++++++++++++++++ gui/public/provider-icons/together.svg | 18 +++ gui/src/provider-icons.ts | 3 + 5 files changed, 204 insertions(+), 11 deletions(-) create mode 100644 gui/public/provider-icons/litellm.svg create mode 100644 gui/public/provider-icons/nous.svg create mode 100644 gui/public/provider-icons/together.svg diff --git a/gui/public/provider-icons/README.md b/gui/public/provider-icons/README.md index 5d8011bbff..43b1e1a92e 100644 --- a/gui/public/provider-icons/README.md +++ b/gui/public/provider-icons/README.md @@ -171,6 +171,17 @@ follow every upscaled pixel edge. - `cerebras.svg`, `novita.svg`, `siliconflow.svg`, `deepinfra.svg` — single-ink. - `baseten.svg`, `hyperbolic.svg`, `sambanova.svg`, `umans.svg`, `venice.svg`, `vultr.svg`, `bizrouter.svg`, `orcarouter.svg` — colour-layered. +- `nous.svg` — traced from `nousresearch.com/apple-touch-icon.png` (180x180). This + is the Nous Research company mark, distinct from `hermes-agent.svg`, which is + the Hermes product's own icon. Attributing one to the other would be wrong even + though the same organization ships both. + +Found on a docs subdomain after the vendor's marketing site offered only a +wordmark: + +- `together.svg` — `docs.together.ai/favicon.svg`, 1.07:1. +- `litellm.svg` — `docs.litellm.ai/img/logo.svg`, 1:1. The marketing site's SVGs + are third-party model logos, not LiteLLM's own mark. **The plate problem, recorded because the first pass shipped it.** A favicon is usually a glyph on a filled rounded square. Tracing luminance alone captured the @@ -182,21 +193,32 @@ found real plates behind `baseten` (#19e76e), `cerebras` (#ef5b27), `hyperbolic` ### Rejected, and why -- **`nous`** — `nousresearch.com/safari-pinned-tab.svg` opens with the full - 512-unit frame as its first path, so it renders as a black square. This is the - identical candidate the Hermes client mark rejected. Nous Research keeps its - fallback tile; reusing `hermes-agent.svg` would attribute a product's mark to - its publisher. -- **`litellm`** — the traced favicon is a muddy multi-colour blob with no legible - silhouette at 19px. The homepage SVGs are third-party model logos, not LiteLLM's - own mark. +- **`nousresearch.com/safari-pinned-tab.svg`** — opens with the full 512-unit + frame as its first path, so it renders as a black square. This is the identical + candidate the Hermes client mark rejected. The apple-touch-icon was used instead. +- **LiteLLM's marketing-site SVGs** — third-party model logos, and the favicon + traces to a muddy blob with no legible silhouette at 19px. The docs logo was + used instead. - **Wordmarks refused** for `cerebras` (843x320 from Sanity CDN), `siliconflow` (188x28), `zhipu-bigmodel` (123x25), `vultr` (218x52), `baseten` (1001x151) and `chutes` (192x30). A lockup in the rail's 19px box is an illegible smear, so each was replaced by a traced square mark or left to the fallback. -- **Nothing found** for `chutes`, `nscale`, `together`, `volcengine` and - `tencent-coding-plan`: no square SVG and no usable raster icon at the - registry's domains. They keep their fallback tiles. + +### Still unmarked, and what was searched + +Six ids keep the fallback tile. Each was probed at its registry `baseUrl` and +`dashboardUrl`, plus the vendor's docs subdomain and the conventional icon paths +(`/favicon.svg`, `/favicon.ico`, `/apple-touch-icon.png`, `/logo.svg`, `/icon.svg`): + +- `chutes` — `chutes.ai` and `docs.chutes.ai` serve only the 192x30 wordmark. +- `nscale` — `nscale.com` and `docs.nscale.com` returned no icon at any path. +- `volcengine`, `volcengine-coding-plan`, `volcengine-agent-plan` — the Ark + console's SVGs are UI glyphs rather than a product mark. +- `tencent-coding-plan` — `cloud.tencent.com` serves a 32x32 favicon whose trace + is unreadable at 19px. + +These are recorded results, not skipped work. Inventing a mark, or borrowing a +neighbouring brand's, is a misattribution that outlives the commit. `zhipu-bigmodel` and `zhipu-bigmodel-coding` share `zai.svg`: Z.AI and BigModel are the same company, and the mainland console publishes only the wordmark. diff --git a/gui/public/provider-icons/litellm.svg b/gui/public/provider-icons/litellm.svg new file mode 100644 index 0000000000..9db6d0d066 --- /dev/null +++ b/gui/public/provider-icons/litellm.svg @@ -0,0 +1 @@ +<svg width="200" height="200" viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><path fill="#FFF" d="M99 52h84v34H99z"/><path d="M23 163c-7.398 0-13.843-4.027-17.303-10A19.886 19.886 0 0 0 3 163c0 11.046 8.954 20 20 20h20v-20H23z" fill="#3ECC5F"/><path d="M112.98 57.376L183 53V43c0-11.046-8.954-20-20-20H73l-2.5-4.33c-1.112-1.925-3.889-1.925-5 0L63 23l-2.5-4.33c-1.111-1.925-3.889-1.925-5 0L53 23l-2.5-4.33c-1.111-1.925-3.889-1.925-5 0L43 23c-.022 0-.042.003-.065.003l-4.142-4.141c-1.57-1.571-4.252-.853-4.828 1.294l-1.369 5.104-5.192-1.392c-2.148-.575-4.111 1.389-3.535 3.536l1.39 5.193-5.102 1.367c-2.148.576-2.867 3.259-1.296 4.83l4.142 4.142c0 .021-.003.042-.003.064l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 53l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 63l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 73l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 83l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 93l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 103l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 113l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 123l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 133l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 143l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 153l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 163c0 11.046 8.954 20 20 20h120c11.046 0 20-8.954 20-20V83l-70.02-4.376A10.645 10.645 0 0 1 103 68c0-5.621 4.37-10.273 9.98-10.624" fill="#3ECC5F"/><path fill="#3ECC5F" d="M143 183h30v-40h-30z"/><path d="M193 158c-.219 0-.428.037-.639.064-.038-.15-.074-.301-.116-.451A5 5 0 0 0 190.32 148a4.96 4.96 0 0 0-3.016 1.036 26.531 26.531 0 0 0-.335-.336 4.955 4.955 0 0 0 1.011-2.987 5 5 0 0 0-9.599-1.959c-.148-.042-.297-.077-.445-.115.027-.211.064-.42.064-.639a5 5 0 0 0-5-5 5 5 0 0 0-5 5c0 .219.037.428.064.639-.148.038-.297.073-.445.115a4.998 4.998 0 0 0-9.599 1.959c0 1.125.384 2.151 1.011 2.987-3.717 3.632-6.031 8.693-6.031 14.3 0 11.046 8.954 20 20 20 9.339 0 17.16-6.41 19.361-15.064.211.027.42.064.639.064a5 5 0 0 0 5-5 5 5 0 0 0-5-5" fill="#44D860"/><path fill="#3ECC5F" d="M153 123h30v-20h-30z"/><path d="M193 115.5a2.5 2.5 0 1 0 0-5c-.109 0-.214.019-.319.032-.02-.075-.037-.15-.058-.225a2.501 2.501 0 0 0-.963-4.807c-.569 0-1.088.197-1.508.518a6.653 6.653 0 0 0-.168-.168c.314-.417.506-.931.506-1.494a2.5 2.5 0 0 0-4.8-.979A9.987 9.987 0 0 0 183 103c-5.522 0-10 4.478-10 10s4.478 10 10 10c.934 0 1.833-.138 2.69-.377a2.5 2.5 0 0 0 4.8-.979c0-.563-.192-1.077-.506-1.494.057-.055.113-.111.168-.168.42.321.939.518 1.508.518a2.5 2.5 0 0 0 .963-4.807c.021-.074.038-.15.058-.225.105.013.21.032.319.032" fill="#44D860"/><path d="M63 55.5a2.5 2.5 0 0 1-2.5-2.5c0-4.136-3.364-7.5-7.5-7.5s-7.5 3.364-7.5 7.5a2.5 2.5 0 1 1-5 0c0-6.893 5.607-12.5 12.5-12.5S65.5 46.107 65.5 53a2.5 2.5 0 0 1-2.5 2.5" fill="#000"/><path d="M103 183h60c11.046 0 20-8.954 20-20V93h-60c-11.046 0-20 8.954-20 20v70z" fill="#FFFF50"/><path d="M168.02 124h-50.04a1 1 0 1 1 0-2h50.04a1 1 0 1 1 0 2m0 20h-50.04a1 1 0 1 1 0-2h50.04a1 1 0 1 1 0 2m0 20h-50.04a1 1 0 1 1 0-2h50.04a1 1 0 1 1 0 2m0-49.814h-50.04a1 1 0 1 1 0-2h50.04a1 1 0 1 1 0 2m0 19.814h-50.04a1 1 0 1 1 0-2h50.04a1 1 0 1 1 0 2m0 20h-50.04a1 1 0 1 1 0-2h50.04a1 1 0 1 1 0 2M183 61.611c-.012 0-.022-.006-.034-.005-3.09.105-4.552 3.196-5.842 5.923-1.346 2.85-2.387 4.703-4.093 4.647-1.889-.068-2.969-2.202-4.113-4.46-1.314-2.594-2.814-5.536-5.963-5.426-3.046.104-4.513 2.794-5.807 5.167-1.377 2.528-2.314 4.065-4.121 3.994-1.927-.07-2.951-1.805-4.136-3.813-1.321-2.236-2.848-4.75-5.936-4.664-2.994.103-4.465 2.385-5.763 4.4-1.373 2.13-2.335 3.428-4.165 3.351-1.973-.07-2.992-1.51-4.171-3.177-1.324-1.873-2.816-3.993-5.895-3.89-2.928.1-4.399 1.97-5.696 3.618-1.232 1.564-2.194 2.802-4.229 2.724a1 1 0 0 0-.072 2c3.017.101 4.545-1.8 5.872-3.487 1.177-1.496 2.193-2.787 4.193-2.855 1.926-.082 2.829 1.115 4.195 3.045 1.297 1.834 2.769 3.914 5.731 4.021 3.103.104 4.596-2.215 5.918-4.267 1.182-1.834 2.202-3.417 4.15-3.484 1.793-.067 2.769 1.35 4.145 3.681 1.297 2.197 2.766 4.686 5.787 4.796 3.125.108 4.634-2.62 5.949-5.035 1.139-2.088 2.214-4.06 4.119-4.126 1.793-.042 2.728 1.595 4.111 4.33 1.292 2.553 2.757 5.445 5.825 5.556l.169.003c3.064 0 4.518-3.075 5.805-5.794 1.139-2.41 2.217-4.68 4.067-4.773v-2z" fill="#000"/><path fill="#3ECC5F" d="M83 183h40v-40H83z"/><path d="M143 158c-.219 0-.428.037-.639.064-.038-.15-.074-.301-.116-.451A5 5 0 0 0 140.32 148a4.96 4.96 0 0 0-3.016 1.036 26.531 26.531 0 0 0-.335-.336 4.955 4.955 0 0 0 1.011-2.987 5 5 0 0 0-9.599-1.959c-.148-.042-.297-.077-.445-.115.027-.211.064-.42.064-.639a5 5 0 0 0-5-5 5 5 0 0 0-5 5c0 .219.037.428.064.639-.148.038-.297.073-.445.115a4.998 4.998 0 0 0-9.599 1.959c0 1.125.384 2.151 1.011 2.987-3.717 3.632-6.031 8.693-6.031 14.3 0 11.046 8.954 20 20 20 9.339 0 17.16-6.41 19.361-15.064.211.027.42.064.639.064a5 5 0 0 0 5-5 5 5 0 0 0-5-5" fill="#44D860"/><path fill="#3ECC5F" d="M83 123h40v-20H83z"/><path d="M133 115.5a2.5 2.5 0 1 0 0-5c-.109 0-.214.019-.319.032-.02-.075-.037-.15-.058-.225a2.501 2.501 0 0 0-.963-4.807c-.569 0-1.088.197-1.508.518a6.653 6.653 0 0 0-.168-.168c.314-.417.506-.931.506-1.494a2.5 2.5 0 0 0-4.8-.979A9.987 9.987 0 0 0 123 103c-5.522 0-10 4.478-10 10s4.478 10 10 10c.934 0 1.833-.138 2.69-.377a2.5 2.5 0 0 0 4.8-.979c0-.563-.192-1.077-.506-1.494.057-.055.113-.111.168-.168.42.321.939.518 1.508.518a2.5 2.5 0 0 0 .963-4.807c.021-.074.038-.15.058-.225.105.013.21.032.319.032" fill="#44D860"/><path d="M143 41.75c-.16 0-.33-.02-.49-.05a2.52 2.52 0 0 1-.47-.14c-.15-.06-.29-.14-.431-.23-.13-.09-.259-.2-.38-.31-.109-.12-.219-.24-.309-.38s-.17-.28-.231-.43a2.619 2.619 0 0 1-.189-.96c0-.16.02-.33.05-.49.03-.16.08-.31.139-.47.061-.15.141-.29.231-.43.09-.13.2-.26.309-.38.121-.11.25-.22.38-.31.141-.09.281-.17.431-.23.149-.06.31-.11.47-.14.32-.07.65-.07.98 0 .159.03.32.08.47.14.149.06.29.14.43.23.13.09.259.2.38.31.11.12.22.25.31.38.09.14.17.28.23.43.06.16.11.31.14.47.029.16.05.33.05.49 0 .66-.271 1.31-.73 1.77-.121.11-.25.22-.38.31-.14.09-.281.17-.43.23a2.565 2.565 0 0 1-.96.19m20-1.25c-.66 0-1.3-.27-1.771-.73a3.802 3.802 0 0 1-.309-.38c-.09-.14-.17-.28-.231-.43a2.619 2.619 0 0 1-.189-.96c0-.66.27-1.3.729-1.77.121-.11.25-.22.38-.31.141-.09.281-.17.431-.23.149-.06.31-.11.47-.14.32-.07.66-.07.98 0 .159.03.32.08.47.14.149.06.29.14.43.23.13.09.259.2.38.31.459.47.73 1.11.73 1.77 0 .16-.021.33-.05.49-.03.16-.08.32-.14.47-.07.15-.14.29-.23.43-.09.13-.2.26-.31.38-.121.11-.25.22-.38.31-.14.09-.281.17-.43.23a2.565 2.565 0 0 1-.96.19" fill="#000"/></g></svg> \ No newline at end of file diff --git a/gui/public/provider-icons/nous.svg b/gui/public/provider-icons/nous.svg new file mode 100644 index 0000000000..5307d5feb2 --- /dev/null +++ b/gui/public/provider-icons/nous.svg @@ -0,0 +1,149 @@ +<?xml version="1.0" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" + "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> +<svg version="1.0" xmlns="http://www.w3.org/2000/svg" + width="256.000000pt" height="256.000000pt" viewBox="0 0 256.000000 256.000000" + preserveAspectRatio="xMidYMid meet"> +<metadata> +Created by potrace 1.16, written by Peter Selinger 2001-2019 +</metadata> +<g transform="translate(0.000000,256.000000) scale(0.100000,-0.100000)" +fill="#000000" stroke="none"> +<path d="M15 1280 l0 -1280 1265 0 1265 0 0 1280 0 1280 -1265 0 -1265 0 0 +-1280z m2505 0 l0 -1250 -550 0 -550 0 0 21 c0 33 216 244 259 252 42 9 169 9 +209 1 39 -8 192 -153 192 -183 0 -5 6 -14 14 -21 8 -6 12 -18 9 -26 -3 -8 1 +-14 11 -14 10 0 16 9 16 23 0 74 -131 202 -255 249 -12 5 1 6 30 3 63 -5 102 +-24 146 -72 36 -39 51 -61 70 -103 6 -14 15 -33 20 -42 5 -10 9 -25 9 -34 0 +-31 25 -7 31 30 6 40 21 54 86 87 49 24 153 122 153 145 0 8 6 17 14 20 8 3 +17 22 21 42 4 20 9 41 12 45 7 12 6 159 -2 182 -15 44 -47 105 -56 105 -12 0 +-12 -37 1 -45 13 -8 13 -162 1 -169 -5 -4 -12 -24 -16 -47 -4 -22 -13 -43 -20 +-46 -8 -2 -17 -17 -20 -33 -3 -16 -13 -31 -21 -34 -8 -3 -14 -11 -14 -19 0 -7 +-23 -35 -50 -62 -31 -30 -50 -43 -50 -34 0 9 9 24 20 34 11 10 20 24 20 32 0 +7 4 13 9 13 15 0 53 89 59 136 2 25 9 47 13 50 12 7 12 201 0 208 -4 3 -11 37 +-15 76 -4 38 -11 70 -15 70 -5 0 -12 25 -16 55 -3 30 -11 57 -16 61 -5 3 -7 +10 -3 15 3 5 1 15 -4 22 -5 7 -13 31 -17 54 -4 24 -10 45 -15 48 -4 3 -11 31 +-15 62 -4 32 -11 64 -17 70 -6 7 -8 19 -5 28 4 8 2 17 -3 20 -5 3 -12 31 -16 +63 -3 31 -10 62 -14 67 -5 6 -11 40 -15 78 -4 37 -11 67 -15 67 -4 0 -11 32 +-15 70 -4 39 -11 72 -16 75 -4 3 -6 12 -2 20 3 8 1 15 -5 15 -5 0 -12 19 -15 +41 -3 23 -9 45 -14 48 -12 9 -41 72 -49 106 -13 55 -70 145 -93 145 -10 0 -16 +-40 -13 -85 2 -15 0 -17 -7 -6 -14 22 -33 1 -28 -32 l4 -31 -18 22 c-16 20 +-18 21 -22 5 -3 -15 -6 -13 -17 10 -12 24 -15 25 -29 13 -14 -12 -22 -12 -55 +-1 -37 13 -70 10 -49 -4 6 -3 13 -19 17 -34 l7 -29 -31 24 c-46 34 -73 48 -92 +48 -10 0 -18 5 -18 10 0 6 16 10 36 10 36 0 36 1 30 32 l-6 31 24 -26 c31 -34 +87 -45 106 -21 8 9 15 24 15 33 0 9 10 17 23 19 17 3 21 8 17 23 -8 23 2 24 +26 3 26 -24 42 -8 36 35 l-6 36 28 -32 c43 -52 48 -38 5 15 -59 72 -160 162 +-183 162 -6 0 -11 4 -11 10 0 11 -100 60 -123 60 -10 0 -17 4 -17 10 0 5 -17 +12 -37 16 -21 4 -43 10 -49 15 -6 5 -55 14 -109 20 -112 13 -315 -2 -363 -27 +-25 -13 -21 -14 66 -14 54 0 92 -4 92 -10 0 -5 7 -10 17 -10 45 0 132 -56 211 +-137 45 -46 82 -88 82 -94 0 -6 11 -25 24 -42 23 -30 47 -79 50 -102 2 -9 14 +-38 39 -92 16 -34 15 -145 -1 -151 -11 -3 -11 0 -1 16 18 29 5 52 -30 52 -16 +0 -33 -4 -36 -10 -3 -5 -15 -10 -26 -10 -22 0 -26 -28 -4 -36 8 -4 15 -16 15 +-28 -1 -19 -4 -17 -30 13 -21 24 -28 43 -26 63 2 16 0 30 -4 33 -4 2 -10 22 +-14 43 -8 55 -30 94 -44 80 -16 -16 -40 -3 -55 29 -32 72 -67 84 -67 23 0 -33 +-3 -40 -19 -40 -11 0 -22 -6 -25 -12 -5 -10 -7 -10 -12 0 -3 6 -21 12 -39 12 +-52 0 -55 38 -8 86 10 10 19 22 19 28 1 6 2 15 3 20 0 6 7 1 15 -9 13 -18 15 +-18 40 -1 22 14 30 15 42 5 8 -6 14 -18 14 -26 0 -7 6 -16 14 -19 8 -3 18 -19 +21 -35 4 -16 13 -29 20 -29 7 0 20 -3 29 -6 11 -4 16 -1 16 10 0 9 -4 16 -8 +16 -4 0 -13 12 -20 28 -24 53 -43 81 -67 100 -14 11 -25 25 -25 31 0 7 -8 15 +-17 18 -10 4 -26 17 -36 30 -18 22 -47 41 -99 65 -16 7 -28 16 -28 20 0 4 -17 +10 -38 14 -20 4 -41 10 -47 14 -16 12 -162 12 -170 1 -3 -6 -18 -11 -33 -11 +-15 0 -67 -20 -117 -46 -113 -57 -126 -64 -181 -109 -18 -14 -34 -25 -37 -25 +-20 0 -157 -157 -157 -180 0 -4 -3 -10 -7 -12 -11 -4 -63 -114 -63 -132 0 -8 +-4 -17 -9 -21 -6 -3 -13 -26 -17 -50 -3 -25 -10 -48 -15 -51 -11 -7 -12 -179 +0 -202 4 -9 17 -35 27 -57 24 -50 67 -94 119 -120 22 -11 42 -23 43 -27 2 -5 +8 -8 13 -8 17 0 9 22 -21 57 -17 18 -30 41 -29 51 0 15 1 15 12 -2 26 -41 60 +-76 73 -76 11 0 14 -18 14 -83 0 -46 -3 -87 -6 -90 -4 -4 -7 -36 -6 -72 0 -36 +-3 -65 -7 -65 -5 0 -11 -51 -15 -112 -4 -62 -11 -115 -15 -118 -4 -3 -11 -32 +-15 -65 -4 -33 -11 -61 -16 -63 -6 -2 -10 -9 -10 -16 0 -8 -9 -25 -21 -40 -17 +-22 -29 -26 -68 -26 -49 0 -68 13 -97 66 -13 23 -13 119 1 149 8 20 8 20 -13 +1 -12 -11 -22 -25 -22 -32 0 -7 -6 -14 -13 -17 -20 -6 -17 -190 4 -213 9 -11 +19 -27 22 -36 4 -10 13 -18 20 -18 8 0 20 -7 27 -15 7 -8 22 -15 34 -15 12 0 +27 -5 33 -11 8 -8 13 -8 17 0 4 6 18 11 31 11 49 0 151 73 168 120 3 9 6 4 6 +-11 1 -15 -8 -38 -19 -52 -11 -14 -20 -28 -20 -31 0 -15 -55 -58 -81 -63 -16 +-3 -32 -10 -35 -14 -7 -12 -54 -12 -54 0 0 5 -13 11 -30 14 -16 4 -42 14 -56 +24 -37 24 -84 91 -84 120 0 12 -4 23 -10 23 -12 0 -13 -54 -1 -78 4 -9 16 -34 +26 -54 21 -43 67 -98 82 -98 6 0 16 -6 22 -14 7 -8 28 -17 48 -21 36 -6 65 +-27 61 -42 -4 -19 33 -85 52 -90 11 -3 20 -10 20 -15 0 -6 7 -8 15 -5 8 4 17 +2 20 -3 8 -13 72 -13 80 0 3 5 12 7 20 3 8 -3 15 -1 15 4 0 6 11 15 25 21 14 +7 30 23 35 37 5 14 14 25 20 25 12 0 13 -32 2 -46 -5 -5 -15 -28 -22 -51 -7 +-24 -17 -43 -22 -43 -4 0 -8 -5 -8 -12 0 -7 -17 -29 -37 -50 l-37 -38 -248 0 +-248 0 0 1250 0 1250 1240 0 1240 0 0 -1250z m-1409 780 c34 -45 74 -128 66 +-136 -3 -4 -18 -6 -32 -6 -18 0 -25 -5 -21 -14 3 -7 1 -16 -4 -19 -5 -3 -11 4 +-15 15 -5 16 -12 19 -33 13 -15 -3 -31 -11 -35 -17 -6 -8 -10 -7 -13 1 -3 7 +-21 15 -40 19 -62 12 -38 74 30 74 16 0 27 7 31 21 4 12 12 18 21 15 16 -6 20 +40 5 64 -6 8 -7 18 -4 24 4 5 9 3 12 -5 3 -8 18 -30 32 -49z m-474 -20 c-7 +-19 -16 -41 -21 -49 -6 -10 -4 -12 10 -7 11 3 32 -1 48 -9 57 -30 88 -17 101 +43 11 53 22 37 23 -36 l1 -67 -71 -2 c-39 -1 -76 -7 -81 -12 -15 -15 -37 6 +-38 38 -2 23 -2 24 -6 4 -2 -13 -9 -23 -14 -23 -5 0 -9 -9 -9 -20 0 -11 -7 +-20 -15 -20 -8 0 -14 5 -13 11 5 18 -18 21 -35 4 -9 -8 -25 -15 -36 -15 -12 0 +-21 -6 -21 -14 0 -23 -48 -17 -53 8 -4 21 -5 21 -12 -1 -8 -26 -25 -31 -25 -8 +0 21 -46 19 -60 -2 -9 -14 -10 -6 -7 37 3 30 10 56 16 58 6 2 11 10 11 17 0 7 +18 28 40 45 22 17 40 27 40 21 0 -5 -7 -14 -16 -19 -20 -11 -10 -32 16 -32 21 +0 70 -41 70 -59 0 -24 19 -9 25 20 5 22 10 28 18 20 7 -7 6 -15 -3 -26 -7 -8 +-10 -18 -7 -21 9 -9 84 72 93 99 6 19 35 57 41 53 1 -1 -3 -17 -10 -36z m248 +-30 c23 0 33 -7 43 -27 24 -53 18 -63 -43 -63 -61 0 -75 13 -75 71 0 28 3 31 +23 25 12 -3 36 -6 52 -6z m-31 -255 c3 -22 68 -145 77 -145 5 0 9 -7 9 -15 0 +-8 -6 -15 -13 -15 -21 0 -44 31 -52 68 -3 17 -10 32 -15 32 -5 0 -12 21 -16 +48 -4 26 -11 50 -17 53 -5 4 -6 13 -2 20 6 9 11 6 18 -12 6 -13 11 -28 11 -34z +m779 -10 c31 -13 58 -35 43 -35 -11 0 -62 25 -74 37 -17 17 -12 16 31 -2z +m-128 -35 c-10 -11 -20 -18 -23 -15 -3 3 3 14 13 25 10 11 20 18 23 15 3 -3 +-3 -14 -13 -25z m345 -106 c0 -8 -4 -12 -10 -9 -5 3 -10 10 -10 16 0 5 5 9 10 +9 6 0 10 -7 10 -16z m-1152 -64 c7 0 12 -5 12 -11 0 -8 4 -8 13 -2 6 6 27 13 +45 16 l32 7 -16 -26 c-9 -13 -15 -27 -12 -29 6 -7 59 20 68 34 3 6 33 17 65 +24 46 9 59 9 63 -1 2 -8 33 -12 103 -12 64 0 98 4 94 10 -3 6 -1 10 4 10 6 0 +11 -4 11 -10 0 -5 9 -10 19 -10 11 0 23 -4 26 -10 3 -5 17 -10 30 -10 20 0 25 +-6 30 -44 8 -49 -13 -306 -25 -321 -4 -5 -11 -41 -15 -80 -4 -38 -11 -74 -15 +-80 -4 -5 -11 -45 -15 -88 -4 -42 -12 -80 -17 -83 -5 -3 -8 -59 -7 -125 1 +-118 1 -120 -25 -140 l-26 -21 -18 33 c-9 18 -38 56 -63 83 l-47 50 -68 -2 +c-38 -2 -73 -7 -78 -12 -17 -17 -122 -12 -154 7 -31 18 -31 17 -80 117 -18 36 +-36 66 -41 66 -5 0 -13 15 -17 32 -3 18 -14 44 -23 57 -12 19 -16 50 -16 133 +l0 107 38 38 c20 22 37 44 37 50 0 6 4 13 10 15 5 2 12 18 16 36 5 25 3 32 -9 +32 -9 0 -20 7 -25 17 -7 11 -24 16 -53 17 -36 1 -45 5 -47 21 -1 12 6 25 19 +33 18 12 24 11 45 -9 13 -12 26 -20 29 -17 3 3 -1 11 -10 18 -27 22 -18 47 20 +54 38 7 43 21 20 52 -30 40 -14 47 23 11 21 -20 43 -37 50 -37z m1187 -46 c3 +-20 4 -39 1 -42 -3 -3 -6 4 -6 16 0 11 -4 24 -10 27 -12 8 -13 35 -1 35 5 0 +12 -16 16 -36z m-212 -68 c18 -14 23 -36 8 -36 -6 0 -13 5 -16 10 -9 14 -88 +13 -103 -2 -16 -16 -25 -4 -17 21 5 18 14 21 58 21 29 0 60 -7 70 -14z m242 +-41 c6 -30 5 -37 -4 -29 -7 6 -14 28 -18 50 -8 53 13 33 22 -21z m-1346 -51 +c13 -51 9 -63 -14 -44 -16 13 -21 90 -6 90 5 0 14 -21 20 -46z m1371 -15 c0 +-5 -4 -9 -10 -9 -5 0 -10 7 -10 16 0 8 5 12 10 9 6 -3 10 -10 10 -16z m70 +-270 c0 -5 -4 -9 -10 -9 -5 0 -10 7 -10 16 0 8 5 12 10 9 6 -3 10 -10 10 -16z +m-542 -124 c-3 -14 -1 -28 3 -31 13 -8 11 -114 -2 -114 -6 0 -22 -9 -36 -20 +-34 -27 -53 -26 -46 3 3 12 9 27 13 32 4 6 11 26 15 45 4 19 14 44 21 55 8 11 +14 27 14 37 0 10 5 18 11 18 7 0 9 -10 7 -25z m722 -27 c7 -29 18 -56 23 -60 +15 -9 15 -216 1 -226 -6 -4 -17 -24 -25 -45 -7 -20 -26 -50 -42 -65 l-29 -27 +7 35 c4 19 11 40 16 46 5 7 12 41 16 78 3 36 10 66 14 66 5 0 9 41 9 90 0 53 +-4 90 -10 90 -5 0 -10 16 -10 35 0 52 16 42 30 -17z m-700 -208 c0 -11 5 -20 +10 -20 6 0 10 -12 10 -27 -1 -21 -10 -34 -37 -51 -43 -28 -83 -23 -100 13 -10 +23 -8 28 30 59 62 49 87 57 87 26z m-246 -204 c14 -34 79 -91 131 -116 17 -8 +32 -15 33 -16 5 -3 -31 -36 -54 -51 -48 -30 -201 -103 -216 -103 -10 0 -24 14 +-33 33 -16 34 -24 48 -67 110 -16 22 -28 43 -28 47 0 4 20 10 44 12 37 5 52 +14 102 65 32 33 62 58 67 56 4 -2 13 -19 21 -37z m-659 -112 c-42 -79 -71 +-104 -123 -104 -45 0 -82 14 -82 30 0 6 20 10 45 10 25 0 45 5 45 10 0 6 8 10 +19 10 21 0 91 73 91 95 0 8 5 15 10 15 6 0 11 8 11 18 1 9 4 5 6 -9 2 -15 -7 +-46 -22 -75z m1025 -49 c-6 -8 -21 -17 -33 -21 -25 -8 -97 -64 -97 -75 0 -4 +-20 -27 -44 -51 -36 -35 -46 -53 -53 -93 l-8 -50 -43 -3 c-37 -3 -42 -1 -42 +17 0 12 5 21 10 21 6 0 10 5 10 12 0 6 7 20 17 30 9 10 13 21 9 25 -3 4 -32 +-19 -64 -50 l-58 -57 -86 0 c-80 0 -86 1 -81 19 5 18 104 121 117 121 3 0 6 +-7 6 -15 0 -12 5 -11 32 3 18 9 36 21 39 25 8 11 36 27 116 67 34 17 63 35 65 +40 2 5 17 12 33 16 l30 7 -25 -28 -25 -28 55 29 c30 16 57 32 60 36 3 3 19 8 +35 11 17 2 32 5 34 6 2 0 -2 -6 -9 -14z m-580 -218 c-22 -38 -67 -83 -75 -75 +-3 2 11 23 30 45 19 23 35 46 35 52 0 6 7 11 15 11 12 0 11 -6 -5 -33z m-106 +-46 c10 -15 -18 -28 -64 -30 l-45 -1 35 19 c38 22 66 26 74 12z M873 1512 +c-40 -4 -61 -26 -43 -47 10 -12 10 -18 1 -29 -8 -10 -9 -16 -1 -21 6 -4 19 4 +30 17 l19 23 1 -22 c0 -12 5 -25 10 -28 6 -3 10 -15 10 -26 0 -22 34 -39 62 +-31 22 5 43 30 43 51 0 21 33 27 41 6 8 -20 -32 -65 -58 -65 -10 0 -27 -6 -38 +-12 -15 -10 -22 -10 -32 0 -14 14 -48 16 -48 2 0 -13 57 -22 103 -17 36 4 61 +21 123 83 l21 22 -63 36 c-35 20 -70 36 -78 36 -8 0 -17 4 -20 9 -7 11 -43 17 +-83 13z M550 1165 c7 -9 15 -13 17 -11 7 7 -7 26 -19 26 -6 0 -6 -6 2 -15z +M580 1030 c0 -11 4 -20 10 -20 5 0 13 -18 16 -39 7 -42 47 -91 59 -72 3 6 -1 +11 -9 11 -9 0 -16 2 -16 4 0 2 -3 12 -7 21 -5 14 -2 16 15 11 17 -6 21 -4 16 +8 -5 13 2 16 35 16 23 0 41 -4 41 -10 0 -5 9 -10 20 -10 11 0 20 7 20 15 0 8 +-7 15 -15 15 -9 0 -27 7 -40 16 -16 10 -34 14 -53 10 -22 -5 -33 -1 -52 19 +-28 30 -40 32 -40 5z M1160 415 c-10 -12 -10 -15 2 -15 17 0 48 -31 48 -47 0 +-7 -16 -3 -40 8 -46 22 -54 23 -68 6 -8 -9 -2 -20 19 -41 16 -16 29 -38 29 +-49 0 -15 5 -18 23 -13 12 3 26 6 32 6 5 0 -6 13 -25 29 -43 36 -34 51 13 22 +53 -32 103 -25 62 9 -8 7 -15 18 -15 25 0 7 -7 15 -15 19 -8 3 -15 17 -15 31 +0 29 -29 35 -50 10z"/> +</g> +</svg> diff --git a/gui/public/provider-icons/together.svg b/gui/public/provider-icons/together.svg new file mode 100644 index 0000000000..2fcc258c45 --- /dev/null +++ b/gui/public/provider-icons/together.svg @@ -0,0 +1,18 @@ +<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 484.98 452.5"> + <defs> + <style> + .cls-1 { + fill: #ef2cc1; + } + .cls-2 { + fill: #caaef5; + } + .cls-3 { + fill: #fc4c02; + } + </style> + </defs> + <path class="cls-1" d="M468.72,60.67C435.25,2.69,361.11-17.18,303.12,16.3c-37.3,21.54-58.82,59.62-60.52,99.69l121.15.16v10.39h-121.15c.78,18.94,6.02,37.81,16.15,55.36,33.48,57.98,107.62,77.85,165.6,44.37,57.98-33.48,77.85-107.62,44.37-165.6Z"/> + <path class="cls-2" d="M16.26,60.63C-17.21,118.61,2.65,192.76,60.63,226.23c37.3,21.54,81.04,21.13,116.59,2.57l-60.44-105,9-5.18,60.57,104.91c16.01-10.14,29.74-24.12,39.87-41.67,33.48-57.98,13.61-132.12-44.37-165.6C123.88-17.21,49.74,2.65,16.26,60.63Z"/> + <path class="cls-3" d="M242.46,452.5c66.95,0,121.23-54.27,121.23-121.23,0-43.07-22.22-80.75-56.07-102.25l-60.71,104.84-8.99-5.21,60.57-104.91c-16.79-8.79-35.75-13.7-56.02-13.7-66.95,0-121.23,54.27-121.23,121.23,0,66.95,54.27,121.23,121.23,121.23Z"/> +</svg> \ No newline at end of file diff --git a/gui/src/provider-icons.ts b/gui/src/provider-icons.ts index 0266df2829..2bf4d6c5a3 100644 --- a/gui/src/provider-icons.ts +++ b/gui/src/provider-icons.ts @@ -55,6 +55,7 @@ const PROVIDER_ICON_ALIASES: Record<string, string> = { nanogpt: "nanogpt.svg", nebius: "nebius.svg", neuralwatt: "neuralwatt.svg", + nous: "nous.svg", novita: "novita.svg", orcarouter: "orcarouter.svg", parallel: "parallel.svg", @@ -62,9 +63,11 @@ const PROVIDER_ICON_ALIASES: Record<string, string> = { scaleway: "scaleway.svg", siliconflow: "siliconflow.svg", synthetic: "synthetic.svg", + together: "together.svg", umans: "umans.svg", venice: "venice.svg", vultr: "vultr.svg", + litellm: "litellm.svg", zenmux: "zenmux.svg", /* * Z.AI and Zhipu's BigModel are the same company on two brands. `zai` is the