@analitikisler/ai-tag-debugger 0.18.0 → 0.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.20.0 (2026-10-25)
4
+
5
+ - Node 22 or newer is required. Node 20 reached its end of life on 30 April 2026, and the OpenAI SDK the tool installs already needed 22. `aitd doctor` and `npm run setup` say so on an older Node, and CI tests on Node 22 and 24.
6
+ - The HTML report and `plan.html` take the look of Tally, the Analitik İşler design system, so they read as one family with analitikisler.com: navy grounds (`#f4f6fa` and white in light, `#071529` and `#0e1e34` in dark), one blue for links, focus and selected states (`#1161bb` / `#69b1ff`), Google Sans, Google Sans Flex and Google Sans Code named first with the system fonts behind them (the report still ships no font files), 2 px chips and badges, 4 px buttons and inputs, 6 px cards, 1 px rules and no card shadows. Labels that were set in capitals are in sentence case.
7
+ - Severity colours follow the design system: broken, warning and ok are its red, amber and green, info is its blue (a fixed value, so a white label never recolours it), and risk keeps a plum of its own so it stays apart from broken where only a dot or a rule shows. Owner, platform, viewport and consent colours keep their hues, retuned for the navy grounds. Every text colour passes 4.5:1 and every mark 3:1 in both themes; `docs/design/visual-system.md` lists the values and ratios.
8
+ - White label: both themes now check the brand colour the same way. The link colour is darkened (light) or lightened (dark) in the brand's own hue until it reads at 4.5:1 on the card, the page, the hover ground, the well and the brand's own tint, and the colour of the tab and rail rules, focus rings and pressed filter edges until it reaches 3:1 on them. A pale yellow such as `#ffe066` no longer gives light links at 4.39:1 on their tint and a focus ring at 1.3:1 on white, and a dark navy brand no longer gives a focus ring that disappears into the dark card. A colour that already reads, such as `#0a7d5a`, is unchanged. The PDF page footer uses the report's font and muted colour.
9
+ - Without the Google Sans family, which most readers do not have, the score sits in the middle of its ring whatever face the system lends, and a score line that wraps keeps its points and chips beside its first line instead of halfway down. `docs/design/visual-system.md` lists what macOS, Windows, Linux and Android show in its place. On Windows 11 the stacks reach Segoe UI Variable, so labels keep their medium weight. The Summary's score lines stack below 1100px instead of 900px, so an event name no longer splits across lines with the rail open on a mid-width screen. A journey's name in the Summary's Journeys card no longer breaks in the middle of a word.
10
+
11
+ ## 0.19.0 (2026-10-25)
12
+
13
+ - New brand: the tool's name is written `ai tag debugger`, lowercase, wherever the reports, `plan.html`, the README, the MCP registry listing and the GitHub Actions examples show it. The reports and `plan.html` carry the new lockup with its red point, the ai mark on phones, the shared ai favicon, and the Analitik İşler master logo with its red point and three bars in the byline and footer. The logos take the page's text colour in light, dark and print, with only the point in red. The "broken" red is the brand's one red, `#C12D30` in light and `#FA6B6D` in dark. The `aitd` and `ai-tag-debugger` commands, the npm package and the config keys are unchanged.
14
+ - Fixed: dependencies with published advisories are updated: zod to 4.6.7 (the minimum is now 4.6.6), and body-parser, fast-uri and ip-address, which the MCP server's HTTP mode uses. `npm audit --omit=dev` reports none.
15
+ - Fixed: on macOS, a page load whose connection dropped is now tried once more, as on Linux; Chromium's error page could end the load or its retry with "interrupted by another navigation to chrome-error://chromewebdata/".
16
+ - Fixed: the GitHub Actions examples and the cron script pin 0.19.0. The deploy example pinned 0.6.3, which writes no `junit.xml` for its upload step.
17
+ - Development: the brand guide and its assets are in `brand/ai/` (a copy of `design/13-ai-brand` from the analitikisler.com repo), the retired orange set is in `brand/retired/`, and `node scripts/brand.js` embeds the assets into `src/brand.js`.
18
+
3
19
  ## 0.18.0 (2026-10-19)
4
20
 
5
21
  - The HTML report was rebuilt as an inspector: a collapsible rail with seven sections (Summary, Findings, Journeys, Consent, Coverage, Inventory, Run), one screen at a time. The Summary is a score ring banded red, amber and green, the verdict, up to three lines saying what cost the points, status chips that open the findings pre-filtered, and six cards about the run. Findings have a filter bar (severity, owner, platform, journey, viewport, search) over failed, unverified and passed groups, every row collapsed and opening into Evidence, Fix, Where and Verify tabs. Journeys show the steps by page title on the left and the selected step's Hits, Data Layer and Requests tabs on the right, with a consent chip on every hit. Every card starts collapsed except the Summary; every section, filter and card has its own URL. With a model, the Summary shows its one-line headline and an AI summary card in Findings keeps its points and its "worth checking" list; a route that differs from the last run is named under the Run facts. Severity is never colour alone, one hue per kind of chip, light and dark mode, keyboard (`[` folds the rail, `1`–`7` jump), no horizontal scroll on phones, and the stacked no-JavaScript document is the print layout. Design notes and the mockups it was built from are under `docs/design/directions/`.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  English | [Türkçe](README.tr.md)
2
2
 
3
- # AI Tag Debugger
3
+ <h1><picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/analitikisler/ai-tag-debugger/main/brand/ai/assets/lockups/ai-tag-debugger-dark.svg"><img src="https://raw.githubusercontent.com/analitikisler/ai-tag-debugger/main/brand/ai/assets/lockups/ai-tag-debugger-light.svg" alt="ai tag debugger" height="40"></picture></h1>
4
4
 
5
5
  **An open-source AI agent that QA-tests your website's analytics and ad tracking.**
6
6
 
@@ -150,7 +150,7 @@ Adding a native provider means implementing two functions in [`src/providers.js`
150
150
 
151
151
  ## Quick start
152
152
 
153
- Requires Node 20+.
153
+ Requires Node 22+.
154
154
 
155
155
  ```bash
156
156
  npm install -g @analitikisler/ai-tag-debugger
@@ -466,8 +466,8 @@ The file holds one entry per finding, with a `key` the run matches on (the check
466
466
  | `baseline` | Optional path, relative to the config file, of a baseline of accepted findings. Same as `--baseline`. See [Accept known findings](#accept-known-findings). |
467
467
  | `language` | Report language, `en` (default) or `tr`. Same as `--lang`. |
468
468
  | `keep_bodies` | Default `false`. Set to `true` to store tracking requests as sent, without redacting user data. Same as `--keep-bodies`. |
469
- | `branding` | Default `true`. Set to `false` to leave the Analitik İşler logo and the "Generated by AI Tag Debugger · analitikisler.com" line out of the reports. Same as `--no-branding`, or `branding: false` on the MCP `finish_audit` and `run_audit` tools. |
470
- | `report` | Optional white label: `{ "name": "Acme", "logo": "logo.png", "color": "#0a7d5a", "pdf": true }`. `logo` (PNG, JPG, WebP, GIF or SVG, up to 512 KB, relative to the config file) and `name` replace the Analitik İşler branding in the HTML report (a small "by AI Tag Debugger" logo and credit stay); `color` sets the accent color; `pdf: true` also writes `report.pdf` next to `report.html`. |
469
+ | `branding` | Default `true`. Set to `false` to leave the Analitik İşler logo and the "Generated by ai tag debugger · analitikisler.com" line out of the reports. Same as `--no-branding`, or `branding: false` on the MCP `finish_audit` and `run_audit` tools. |
470
+ | `report` | Optional white label: `{ "name": "Acme", "logo": "logo.png", "color": "#0a7d5a", "pdf": true }`. `logo` (PNG, JPG, WebP, GIF or SVG, up to 512 KB, relative to the config file) and `name` replace the Analitik İşler branding in the HTML report (a small "by ai tag debugger" logo and credit stay); `color` sets the accent color; `pdf: true` also writes `report.pdf` next to `report.html`. |
471
471
  | `provider` | Optional: `anthropic`, `openai`, `gemini`, `vercel`, `cloudflare` or `openai-compatible`. Same as `--provider`. |
472
472
  | `base_url`, `model` | Optional: the API address and model id, e.g. for `openai-compatible`. Same as `--base-url` and `--model`. |
473
473
  | `notify` | Optional alerts after each saved run: `slack` (a webhook URL, or `true` to read `SLACK_WEBHOOK_URL`) and `email` (an address or a list). See [Alerts](#alerts). |
@@ -610,7 +610,7 @@ Output:
610
610
  - `summary.json`: the counts, verdict, score, trend direction, journeys, findings and file names of the run in one small file for scripts.
611
611
  - `plan.html` (in the plan's folder): a readable page of the plan's events, parameters and user properties.
612
612
 
613
- Reports end with a credit line, "Generated by AI Tag Debugger · analitikisler.com", where the domain is a plain link (no images, no tracking, and no referrer, so report URLs aren't leaked). `--no-branding` removes it along with the logo.
613
+ Reports end with a credit line, "Generated by ai tag debugger · analitikisler.com", where the domain is a plain link (no images, no tracking, and no referrer, so report URLs aren't leaked). `--no-branding` removes it along with the logo.
614
614
 
615
615
  Use `--lang tr` for a Turkish report. Finding texts, headings, and the model's explanations and fixes are all written in Turkish, and the agent describes its steps in Turkish too.
616
616
 
package/README.tr.md CHANGED
@@ -1,6 +1,6 @@
1
1
  [English](README.md) | Türkçe
2
2
 
3
- # AI Tag Debugger
3
+ <h1><picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/analitikisler/ai-tag-debugger/main/brand/ai/assets/lockups/ai-tag-debugger-dark.svg"><img src="https://raw.githubusercontent.com/analitikisler/ai-tag-debugger/main/brand/ai/assets/lockups/ai-tag-debugger-light.svg" alt="ai tag debugger" height="40"></picture></h1>
4
4
 
5
5
  **Web sitenizin analitik ve reklam takibini test eden, açık kaynaklı bir yapay zekâ ajanı.**
6
6
 
@@ -150,7 +150,7 @@ Yerel bir sağlayıcı eklemek için [`src/providers.js`](src/providers.js) içi
150
150
 
151
151
  ## Hızlı başlangıç
152
152
 
153
- Node 20+ gerekir.
153
+ Node 22+ gerekir.
154
154
 
155
155
  ```bash
156
156
  npm install -g @analitikisler/ai-tag-debugger
@@ -466,8 +466,8 @@ Dosyada her bulgu için bir kayıt bulunur: çalıştırmanın eşleştirme yapt
466
466
  | `baseline` | İsteğe bağlı: kabul edilen bulguların temel dosyasının, ayar dosyasına göre bağıl yolu. `--baseline` ile aynıdır. Bkz. [Bilinen bulguları kabul edin](#bilinen-bulguları-kabul-edin). |
467
467
  | `language` | Rapor dili, `en` (varsayılan) ya da `tr`. `--lang` ile aynıdır. |
468
468
  | `keep_bodies` | Varsayılan `false`. Takip isteklerini gönderildiği gibi, kullanıcı verisi gizlenmeden saklamak için `true` yapın. `--keep-bodies` ile aynıdır. |
469
- | `branding` | Varsayılan `true`. Analitik İşler logosunu ve "Generated by AI Tag Debugger · analitikisler.com" satırını raporlardan çıkarmak için `false` yapın. `--no-branding` ile aynıdır, ya da MCP `finish_audit` ve `run_audit` araçlarında `branding: false`. |
470
- | `report` | İsteğe bağlı beyaz etiket: `{ "name": "Acme", "logo": "logo.png", "color": "#0a7d5a", "pdf": true }`. `logo` (PNG, JPG, WebP, GIF veya SVG; en fazla 512 KB; ayar dosyasına göre bağıl) ve `name`, HTML raporundaki Analitik İşler markasının yerine geçer (küçük bir AI Tag Debugger logosu ve kredisi kalır). `color` vurgu rengini ayarlar; `pdf: true` ise `report.html` yanına `report.pdf` de yazar. |
469
+ | `branding` | Varsayılan `true`. Analitik İşler logosunu ve "Generated by ai tag debugger · analitikisler.com" satırını raporlardan çıkarmak için `false` yapın. `--no-branding` ile aynıdır, ya da MCP `finish_audit` ve `run_audit` araçlarında `branding: false`. |
470
+ | `report` | İsteğe bağlı beyaz etiket: `{ "name": "Acme", "logo": "logo.png", "color": "#0a7d5a", "pdf": true }`. `logo` (PNG, JPG, WebP, GIF veya SVG; en fazla 512 KB; ayar dosyasına göre bağıl) ve `name`, HTML raporundaki Analitik İşler markasının yerine geçer (küçük bir ai tag debugger logosu ve kredisi kalır). `color` vurgu rengini ayarlar; `pdf: true` ise `report.html` yanına `report.pdf` de yazar. |
471
471
  | `provider` | İsteğe bağlı: `anthropic`, `openai`, `gemini`, `vercel`, `cloudflare` ya da `openai-compatible`. `--provider` ile aynıdır. |
472
472
  | `base_url`, `model` | İsteğe bağlı: API adresi ve model kimliği, örneğin `openai-compatible` için. `--base-url` ve `--model` ile aynıdır. |
473
473
  | `notify` | İsteğe bağlı uyarılar, kayıtlı her çalıştırmadan sonra: `slack` (bir webhook adresi ya da `SLACK_WEBHOOK_URL` değişkenini okumak için `true`) ve `email` (bir adres ya da liste). Bkz. [Uyarılar](#uyarılar). |
@@ -610,7 +610,7 @@ jq -r '.verdict.status + " " + (.score | tostring)' aitd/example.com/runs/*/summ
610
610
  - `summary.json`: çalıştırmanın sayıları, sonucu, puanı, eğilim yönü, yolculukları, bulguları ve dosya adları, betikler için tek bir küçük dosyada.
611
611
  - `plan.html` (planın klasöründe): planın event'lerini, parametrelerini ve kullanıcı özelliklerini gösteren okunabilir bir sayfa.
612
612
 
613
- Raporlar bir kredi satırıyla biter: "Generated by AI Tag Debugger · analitikisler.com"; alan adı düz bir bağlantıdır (görsel yok, takip yok ve yönlendiren bilgisi yok; böylece rapor adresleri sızdırılmaz). `--no-branding`, bunu logosuyla birlikte kaldırır.
613
+ Raporlar bir kredi satırıyla biter: "Generated by ai tag debugger · analitikisler.com"; alan adı düz bir bağlantıdır (görsel yok, takip yok ve yönlendiren bilgisi yok; böylece rapor adresleri sızdırılmaz). `--no-branding`, bunu logosuyla birlikte kaldırır.
614
614
 
615
615
  Türkçe rapor için `--lang tr` kullanın. Bulgu metinleri, başlıklar, modelin açıklamaları ve düzeltmeleri Türkçe yazılır; ajan adımlarını da Türkçe anlatır.
616
616
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@analitikisler/ai-tag-debugger",
3
3
  "mcpName": "io.github.analitikisler/ai-tag-debugger",
4
- "version": "0.18.0",
4
+ "version": "0.20.0",
5
5
  "description": "Open-source AI agent that QA-tests your website's analytics, ad and consent tracking (GA4, GTM, Google Ads, Meta, TikTok). Bring your own model (Claude, OpenAI, Gemini) or use it from your chat app over MCP.",
6
6
  "type": "module",
7
7
  "bin": {
@@ -23,7 +23,7 @@
23
23
  "demo": "node src/cli.js run --config examples/demo.config.json --scripted --no-ai"
24
24
  },
25
25
  "engines": {
26
- "node": ">=20"
26
+ "node": ">=22"
27
27
  },
28
28
  "keywords": [
29
29
  "analytics",
@@ -58,7 +58,7 @@
58
58
  "@modelcontextprotocol/sdk": "^1.32.1",
59
59
  "openai": "^7.30.1",
60
60
  "playwright": "1.56.1",
61
- "zod": "^4.6.5"
61
+ "zod": "^4.6.6"
62
62
  },
63
63
  "optionalDependencies": {
64
64
  "fflate": "^0.8.3"
package/src/brand.js CHANGED
@@ -1,14 +1,20 @@
1
- // Logos embedded in the HTML report as data URIs, so a report is one file and needs nothing next to it.
2
- // Copied from design-proposals/report-v3/logos/logos.json (approved 2026-10-10). The report CSP allows img-src data:.
3
- // atd-*: AI Tag Debugger. horizontal-* and stacked-*: Analitik İşler, left out when branding is false.
1
+ // The brand's logos for the HTML report, so a report is one file and needs nothing next to it.
2
+ // Written by node scripts/brand.js from brand/ai/assets/ (the brand guide is brand/ai/BRAND.md); edit the assets, not this file.
3
+ // atd-lockup brand/ai/assets/lockups/ai-tag-debugger-light.svg (and -dark.svg, checked to match)
4
+ // mark brand/ai/assets/mark/ai-mark-light.svg (and -dark.svg, checked to match)
5
+ // master brand/ai/assets/master/analitik-isler-light.svg (and -dark.svg, checked to match)
6
+ // favicon-light brand/ai/assets/icons/favicon-ai-16.svg
7
+ // favicon-dark brand/ai/assets/icons/favicon-ai-16-ink.svg
4
8
 
9
+ /** Sprite symbols: the ink is currentColor and the point is var(--brand-point), so a logo follows the page's colours. */
10
+ export const LOGO_ART = {
11
+ "atd-lockup": {"viewBox":"-0.1 1.4 1455.8 199.3","art":"<path fill=\"currentColor\" d=\"M39.42 161.88Q29.25 161.88 20.24 158.48Q11.23 155.07 5.59 147.83Q-0.04 140.6 -0.04 129.14Q-0.04 116.76 7.11 108.68Q14.26 100.6 27.35 96.63Q40.44 92.67 58.36 92.67H72.43L70.63 95.8V89.43Q70.63 79.65 67.27 75.14Q63.92 70.63 56.2 70.63Q48.71 70.63 44.83 74.61Q40.95 78.6 39.68 86.32L4.75 80.68Q6.67 71.59 12.85 64.28Q19.04 56.97 30.18 52.67Q41.32 48.37 58.11 48.37Q72.86 48.37 83.43 52.77Q94 57.17 99.67 67.77Q105.33 78.37 105.33 97.05V128.66Q105.33 132.04 106.28 133.14Q107.23 134.24 106.4 134.24H109.4V159.24H99.05Q85.49 159.24 78.81 152.72Q72.13 146.19 72.13 133.48V129.41L78.48 132.16Q77.27 136.52 74.94 141.62Q72.61 146.71 68.28 151.33Q63.96 155.94 56.94 158.91Q49.92 161.88 39.42 161.88ZM49.9 139Q56.4 139 61.1 136.12Q65.8 133.23 68.38 127.75Q70.96 122.26 70.96 114.47V111.52H60.12Q50.51 111.52 45.22 114.04Q39.93 116.56 37.87 120.14Q35.81 123.72 35.81 127.09Q35.81 129.28 36.89 132.08Q37.97 134.88 41 136.94Q44.02 139 49.9 139ZM119 159.24 154.1 159.24 154.1 55.14 119 49.44Z M241.09 159.24Q233.92 159.24 228.9 154.78Q223.88 150.31 223.88 143.2V66.31H206.75V51.24H223.88V28.83L242.45 24.75V51.24H263.65V66.31H242.45V138.67Q242.45 141.98 243.4 143.08Q244.35 144.18 247.45 144.18H263.95V159.24Z M314.75 161.67Q304.01 161.67 295.96 157.59Q287.91 153.51 283.48 146.31Q279.05 139.1 279.05 129.78Q279.05 119.82 284.89 111.63Q290.73 103.44 302.79 98.59Q314.85 93.73 333.48 93.73H351.1L349.3 95.66V89.71Q349.3 77.03 344.28 70.31Q339.25 63.6 327.49 63.6Q316.37 63.6 310.4 69.36Q304.42 75.12 303.94 84.9L283.49 80.47Q284.49 71.73 290.28 64.56Q296.07 57.4 305.87 53.1Q315.66 48.8 328.76 48.8Q342.01 48.8 350.49 53.7Q358.96 58.59 363.03 68.02Q367.11 77.44 367.11 91.08V138.67Q367.11 141.98 368.06 143.08Q369.01 144.18 372.11 144.18H378.04V159.24H366.86Q359.41 159.24 354.6 154.77Q349.8 150.3 349.8 143.2V135.95L352.68 136.21Q351.11 140.43 348.18 144.85Q345.24 149.27 340.67 153.1Q336.1 156.94 329.68 159.3Q323.27 161.67 314.75 161.67ZM319.2 146.81Q327.33 146.81 334.19 142.83Q341.06 138.84 345.24 130.41Q349.42 121.97 349.42 108.58V107.48H333.1Q320.16 107.48 312.74 110.88Q305.32 114.29 302.23 119.29Q299.14 124.28 299.14 129.22Q299.14 134.04 301.32 138.01Q303.5 141.98 307.95 144.4Q312.4 146.81 319.2 146.81Z M439.16 200.67Q414.78 200.67 403.21 193.9Q391.64 187.13 391.64 172.98Q391.64 164.87 395.8 158.68Q399.96 152.48 409.75 149.2Q405.96 146.85 403.6 143.04Q401.23 139.22 401.23 134.53Q401.23 128.86 404.77 124.39Q408.31 119.92 414.9 118Q406.9 113.27 402.46 105.24Q398.01 97.21 398.01 86.6Q398.01 75.01 403.25 66.53Q408.48 58.06 418.14 53.44Q427.81 48.81 441.1 48.81Q454.39 48.81 464.14 53.44Q473.89 58.06 479.22 66.58Q484.55 75.1 484.55 86.78Q484.55 98.27 479.22 106.66Q473.9 115.04 464.1 119.61Q454.3 124.19 440.81 124.19H431.79Q419.57 124.19 419.57 131.4Q419.57 138.23 431.46 138.23H453.09Q465.66 138.23 473.49 141.14Q481.33 144.05 485.57 148.69Q489.82 153.33 491.42 158.8Q493.01 164.26 493.01 169.38Q493.01 185.35 481.31 193.01Q469.6 200.67 445.04 200.67ZM439.25 186.51H445.1Q473.87 186.51 473.87 169.32Q473.87 162.21 468.72 157.68Q463.57 153.15 451.02 153.15H433.03Q423.54 153.15 417.07 157.05Q410.6 160.95 410.6 169.83Q410.6 178.31 417.61 182.41Q424.63 186.51 439.25 186.51ZM441.1 111.46Q453.26 111.46 459.78 105.11Q466.3 98.76 466.3 86.78Q466.3 74.9 459.78 68.32Q453.26 61.73 441.1 61.73Q429.04 61.73 422.6 68.27Q416.16 74.81 416.16 86.78Q416.16 98.76 422.6 105.11Q429.04 111.46 441.1 111.46ZM458.66 60.69V49.96Q458.66 42.85 463.68 38.39Q468.7 33.92 475.87 33.92H488.51V48.98H477.63Q474.53 48.98 473.58 50.08Q472.63 51.18 472.63 54.49V60.69Z M602.17 161.67Q589.01 161.67 578.97 154.79Q568.93 147.91 563.36 135.2Q557.78 122.5 557.78 105.13Q557.78 87.76 563.41 75.11Q569.03 62.47 579.03 55.64Q589.04 48.81 602.23 48.81Q613.02 48.81 623.28 54.14Q633.54 59.47 638.9 72.07L636.85 72.78V9.24H655.42V159.24H637.93V136.85L638.41 138.44Q633.87 150.23 623.79 155.95Q613.7 161.67 602.17 161.67ZM607.45 146.51Q615.74 146.51 622.55 142.21Q629.35 137.9 633.41 128.8Q637.48 119.69 637.48 105.53Q637.48 84.37 628.75 74.17Q620.02 63.97 607.66 63.97Q594.6 63.97 586.29 74.76Q577.97 85.54 577.97 105.56Q577.97 125 586 135.75Q594.03 146.51 607.45 146.51Z M731.49 161.67Q716.03 161.67 704.59 154.77Q693.15 147.87 686.87 135.21Q680.6 122.54 680.6 105.31Q680.6 88.01 686.85 75.32Q693.11 62.62 704.41 55.72Q715.71 48.81 730.86 48.81Q739.5 48.81 748.22 51.56Q756.94 54.31 764.16 61.07Q771.38 67.84 775.78 79.65Q780.17 91.47 780.17 109.51H692.53V95.45H763.96L759.38 101.62Q758.84 87.88 754.86 79.55Q750.89 71.22 744.56 67.48Q738.23 63.75 730.49 63.75Q721.2 63.75 714.52 68.64Q707.84 73.53 704.29 82.83Q700.73 92.13 700.73 105.42Q700.73 125.05 708.68 135.82Q716.63 146.59 731.46 146.59Q741.99 146.59 749.22 141.27Q756.45 135.95 759.9 125.79L777.82 131.56Q773.93 141.2 767.27 147.91Q760.61 154.62 751.52 158.15Q742.44 161.67 731.49 161.67Z M858.14 161.67Q847.36 161.67 837.1 156.34Q826.85 151.01 821.48 138.42L822.45 137.7V159.24H804.97V9.24H823.53V73.63L821.97 72.04Q826.53 60.23 836.61 54.52Q846.69 48.81 858.21 48.81Q871.47 48.81 881.46 55.7Q891.45 62.58 897.03 75.28Q902.6 87.98 902.6 105.36Q902.6 122.72 896.98 135.37Q891.35 148.02 881.35 154.85Q871.34 161.67 858.14 161.67ZM852.73 146.51Q865.78 146.51 874.1 135.72Q882.41 124.94 882.41 104.93Q882.41 85.48 874.38 74.72Q866.35 63.97 852.93 63.97Q844.73 63.97 837.88 68.27Q831.03 72.58 826.97 81.64Q822.9 90.7 822.9 104.96Q822.9 126.03 831.63 136.27Q840.36 146.51 852.73 146.51Z M963.38 161.67Q951.93 161.67 943.66 156.49Q935.39 151.31 930.98 141.72Q926.56 132.14 926.56 118.95V51.24H945.12V117.35Q945.12 130.53 950.05 138.52Q954.98 146.52 967.51 146.52Q976.66 146.52 983.48 141.8Q990.3 137.07 994.14 127.49Q997.99 117.91 997.99 103.34V51.24H1016.55V159.24H998.99V133.85L999.7 138.26Q995.41 148.4 986.1 155.04Q976.8 161.67 963.38 161.67Z M1087.06 200.67Q1062.68 200.67 1051.11 193.9Q1039.54 187.13 1039.54 172.98Q1039.54 164.87 1043.7 158.68Q1047.86 152.48 1057.65 149.2Q1053.86 146.85 1051.5 143.04Q1049.13 139.22 1049.13 134.53Q1049.13 128.86 1052.67 124.39Q1056.21 119.92 1062.8 118Q1054.8 113.27 1050.36 105.24Q1045.91 97.21 1045.91 86.6Q1045.91 75.01 1051.15 66.53Q1056.38 58.06 1066.04 53.44Q1075.71 48.81 1089 48.81Q1102.29 48.81 1112.04 53.44Q1121.79 58.06 1127.12 66.58Q1132.45 75.1 1132.45 86.78Q1132.45 98.27 1127.12 106.66Q1121.8 115.04 1112 119.61Q1102.2 124.19 1088.71 124.19H1079.69Q1067.47 124.19 1067.47 131.4Q1067.47 138.23 1079.36 138.23H1100.99Q1113.56 138.23 1121.39 141.14Q1129.23 144.05 1133.47 148.69Q1137.72 153.33 1139.32 158.8Q1140.91 164.26 1140.91 169.38Q1140.91 185.35 1129.21 193.01Q1117.5 200.67 1092.94 200.67ZM1087.15 186.51H1093Q1121.77 186.51 1121.77 169.32Q1121.77 162.21 1116.62 157.68Q1111.47 153.15 1098.92 153.15H1080.93Q1071.44 153.15 1064.97 157.05Q1058.5 160.95 1058.5 169.83Q1058.5 178.31 1065.51 182.41Q1072.53 186.51 1087.15 186.51ZM1089 111.46Q1101.16 111.46 1107.68 105.11Q1114.2 98.76 1114.2 86.78Q1114.2 74.9 1107.68 68.32Q1101.16 61.73 1089 61.73Q1076.94 61.73 1070.5 68.27Q1064.06 74.81 1064.06 86.78Q1064.06 98.76 1070.5 105.11Q1076.94 111.46 1089 111.46ZM1106.56 60.69V49.96Q1106.56 42.85 1111.58 38.39Q1116.6 33.92 1123.77 33.92H1136.41V48.98H1125.53Q1122.43 48.98 1121.48 50.08Q1120.53 51.18 1120.53 54.49V60.69Z M1200.76 200.67Q1176.38 200.67 1164.81 193.9Q1153.24 187.13 1153.24 172.98Q1153.24 164.87 1157.4 158.68Q1161.56 152.48 1171.35 149.2Q1167.56 146.85 1165.2 143.04Q1162.83 139.22 1162.83 134.53Q1162.83 128.86 1166.37 124.39Q1169.91 119.92 1176.5 118Q1168.5 113.27 1164.06 105.24Q1159.61 97.21 1159.61 86.6Q1159.61 75.01 1164.85 66.53Q1170.08 58.06 1179.74 53.44Q1189.41 48.81 1202.7 48.81Q1215.99 48.81 1225.74 53.44Q1235.49 58.06 1240.82 66.58Q1246.15 75.1 1246.15 86.78Q1246.15 98.27 1240.82 106.66Q1235.5 115.04 1225.7 119.61Q1215.9 124.19 1202.41 124.19H1193.39Q1181.17 124.19 1181.17 131.4Q1181.17 138.23 1193.06 138.23H1214.69Q1227.26 138.23 1235.09 141.14Q1242.93 144.05 1247.17 148.69Q1251.42 153.33 1253.02 158.8Q1254.61 164.26 1254.61 169.38Q1254.61 185.35 1242.91 193.01Q1231.2 200.67 1206.64 200.67ZM1200.85 186.51H1206.7Q1235.47 186.51 1235.47 169.32Q1235.47 162.21 1230.32 157.68Q1225.17 153.15 1212.62 153.15H1194.63Q1185.14 153.15 1178.67 157.05Q1172.2 160.95 1172.2 169.83Q1172.2 178.31 1179.21 182.41Q1186.23 186.51 1200.85 186.51ZM1202.7 111.46Q1214.86 111.46 1221.38 105.11Q1227.9 98.76 1227.9 86.78Q1227.9 74.9 1221.38 68.32Q1214.86 61.73 1202.7 61.73Q1190.64 61.73 1184.2 68.27Q1177.76 74.81 1177.76 86.78Q1177.76 98.76 1184.2 105.11Q1190.64 111.46 1202.7 111.46ZM1220.26 60.69V49.96Q1220.26 42.85 1225.28 38.39Q1230.3 33.92 1237.47 33.92H1250.11V48.98H1239.23Q1236.13 48.98 1235.18 50.08Q1234.23 51.18 1234.23 54.49V60.69Z M1320.19 161.67Q1304.73 161.67 1293.29 154.77Q1281.85 147.87 1275.57 135.21Q1269.3 122.54 1269.3 105.31Q1269.3 88.01 1275.55 75.32Q1281.81 62.62 1293.11 55.72Q1304.41 48.81 1319.56 48.81Q1328.2 48.81 1336.92 51.56Q1345.64 54.31 1352.86 61.07Q1360.08 67.84 1364.48 79.65Q1368.87 91.47 1368.87 109.51H1281.23V95.45H1352.66L1348.08 101.62Q1347.54 87.88 1343.56 79.55Q1339.59 71.22 1333.26 67.48Q1326.93 63.75 1319.19 63.75Q1309.9 63.75 1303.22 68.64Q1296.54 73.53 1292.99 82.83Q1289.43 92.13 1289.43 105.42Q1289.43 125.05 1297.38 135.82Q1305.33 146.59 1320.16 146.59Q1330.69 146.59 1337.92 141.27Q1345.15 135.95 1348.6 125.79L1366.52 131.56Q1362.63 141.2 1355.97 147.91Q1349.31 154.62 1340.22 158.15Q1331.14 161.67 1320.19 161.67Z M1393.66 159.24V51.24H1411.22V74.33L1410.54 71.66Q1415.38 60.34 1424.98 54.58Q1434.58 48.81 1444.64 48.81Q1447.57 48.81 1450.38 49.31Q1453.19 49.81 1455.69 51.01L1453.48 68.12Q1447.84 66.41 1442.36 66.41Q1438.75 66.41 1433.67 67.8Q1428.58 69.2 1423.68 73.28Q1418.78 77.36 1415.5 85.32Q1412.22 93.28 1412.22 106.41V159.24Z\"/><path style=\"fill:var(--brand-point)\" d=\"M158.51 13.21C162.22 24.64 158.23 35.1 145.98 38.19C134.52 41.06 123.86 38.6 120.13 27.81C116.74 18.2 121.96 6.11 132.86 2.77C143.37 -0.45 154.81 1.77 158.51 13.21Z\"/>"},
12
+ "mark": {"viewBox":"-0.1 1.4 160 160.5","art":"<path fill=\"currentColor\" d=\"M39.42 161.88Q29.25 161.88 20.24 158.48Q11.23 155.07 5.59 147.83Q-0.04 140.6 -0.04 129.14Q-0.04 116.76 7.11 108.68Q14.26 100.6 27.35 96.63Q40.44 92.67 58.36 92.67H72.43L70.63 95.8V89.43Q70.63 79.65 67.27 75.14Q63.92 70.63 56.2 70.63Q48.71 70.63 44.83 74.61Q40.95 78.6 39.68 86.32L4.75 80.68Q6.67 71.59 12.85 64.28Q19.04 56.97 30.18 52.67Q41.32 48.37 58.11 48.37Q72.86 48.37 83.43 52.77Q94 57.17 99.67 67.77Q105.33 78.37 105.33 97.05V128.66Q105.33 132.04 106.28 133.14Q107.23 134.24 106.4 134.24H109.4V159.24H99.05Q85.49 159.24 78.81 152.72Q72.13 146.19 72.13 133.48V129.41L78.48 132.16Q77.27 136.52 74.94 141.62Q72.61 146.71 68.28 151.33Q63.96 155.94 56.94 158.91Q49.92 161.88 39.42 161.88ZM49.9 139Q56.4 139 61.1 136.12Q65.8 133.23 68.38 127.75Q70.96 122.26 70.96 114.47V111.52H60.12Q50.51 111.52 45.22 114.04Q39.93 116.56 37.87 120.14Q35.81 123.72 35.81 127.09Q35.81 129.28 36.89 132.08Q37.97 134.88 41 136.94Q44.02 139 49.9 139ZM119 159.24 154.1 159.24 154.1 55.14 119 49.44Z\"/><path style=\"fill:var(--brand-point)\" d=\"M158.51 13.21C162.22 24.64 158.23 35.1 145.98 38.19C134.52 41.06 123.86 38.6 120.13 27.81C116.74 18.2 121.96 6.11 132.86 2.77C143.37 -0.45 154.81 1.77 158.51 13.21Z\"/>"},
13
+ "master": {"viewBox":"0.5 0.4 630.3 95.1","art":"<path fill=\"currentColor\" d=\"M18.69 73.87Q13.39 74.14 9.32 72.01Q5.24 69.89 2.88 66.02Q0.52 62.15 0.52 57.11Q0.52 51.85 3.23 48.08Q5.93 44.31 10.49 42.23Q15.05 40.16 20.63 40.16Q23.66 40.16 26.15 40.5Q28.64 40.85 30.6 41.34Q32.55 41.83 33.65 42.51L33.6 40.55Q33.6 36.69 30.64 34.19Q27.68 31.68 22.49 31.68Q19.02 31.68 15.79 33.26Q12.56 34.84 10.35 37.63L1.91 30.84Q4.45 27.48 7.69 25.26Q10.92 23.04 14.84 21.91Q18.76 20.78 23.07 20.78Q34.53 20.78 40.52 26.12Q46.51 31.45 46.51 41.71V72.58H33.6V67.41L33.05 67.53Q31.73 69.2 29.67 70.73Q27.61 72.26 24.87 73.2Q22.12 74.14 18.69 73.87Z M125.55 73.87Q120.25 74.14 116.18 72.01Q112.1 69.89 109.74 66.02Q107.38 62.15 107.38 57.11Q107.38 51.85 110.09 48.08Q112.79 44.31 117.35 42.23Q121.91 40.16 127.49 40.16Q130.52 40.16 133.01 40.5Q135.5 40.85 137.46 41.34Q139.41 41.83 140.51 42.51L140.46 40.55Q140.46 36.69 137.5 34.19Q134.54 31.68 129.35 31.68Q125.88 31.68 122.65 33.26Q119.42 34.84 117.21 37.63L108.77 30.84Q111.31 27.48 114.55 25.26Q117.78 23.04 121.7 21.91Q125.62 20.78 129.93 20.78Q141.39 20.78 147.38 26.12Q153.37 31.45 153.37 41.71V72.58H140.46V67.41L139.92 67.53Q138.59 69.2 136.53 70.73Q134.48 72.26 131.73 73.2Q128.98 74.14 125.55 73.87Z M450.75 73.87Q443.21 74.14 437.29 70.69Q431.36 67.25 427.98 61.24Q424.6 55.23 424.6 47.56Q424.6 40.38 427.93 34.27Q431.26 28.17 437.04 24.47Q442.82 20.78 450.26 20.78Q458.29 20.78 463.78 24.23Q469.27 27.68 472.12 33.45Q474.96 39.21 474.96 46.19Q474.96 47.76 474.86 48.91Q474.76 50.05 474.63 50.77H437.51Q437.95 53.33 439.04 55.35Q440.87 58.74 443.99 60.51Q447.11 62.27 450.95 62.27Q455.46 62.27 458.54 60.31Q461.62 58.36 463.42 55.19L474.05 60.5Q470.45 66.95 464.76 70.55Q459.07 74.14 450.75 73.87Z M265.67 72.58V2.26H278.77V40.4L296.99 22.34H312.92V23.5L294.27 41.82L313.81 71.45V72.58H298.43L284.98 50.94L278.77 57.04V72.58Z M379.8 95.41Q376.24 95.68 373.67 93.78Q371.1 91.88 369.95 88.83L376.5 85.98Q376.93 87.36 377.77 88.07Q378.6 88.79 379.8 88.79Q381.29 88.79 382.07 87.95Q382.85 87.11 382.85 85.95Q382.85 84.79 382.06 83.86Q381.28 82.92 379.8 82.92Q378.98 82.92 378.37 83.33Q377.77 83.73 377.22 84.34L371.04 81.42L373.96 73.81Q370.13 73.5 367.13 72.27Q362.57 70.4 359.72 67.33Q356.87 64.27 355.44 60.37L367.14 55.19Q368.84 58.85 371.62 60.61Q374.39 62.36 378.14 62.36Q381.23 62.36 383.69 61.4Q386.15 60.44 386.15 57.89Q386.15 56.07 384.88 55.01Q383.61 53.96 381.69 53.34Q379.76 52.72 377.72 52.33L371.88 51.06Q368.25 50.27 365.01 48.24Q361.77 46.21 359.75 43.08Q357.73 39.95 357.73 35.87Q357.73 31.3 360.35 27.91Q362.96 24.54 367.42 22.66Q371.89 20.78 377.27 20.78Q382.26 20.78 386.28 21.96Q390.3 23.14 393.25 25.57Q396.2 27.99 398.04 32L386.81 37Q385.22 33.95 382.78 32.81Q380.35 31.68 377.57 31.68Q374.31 31.68 372.43 32.88Q370.54 34.08 370.54 35.67Q370.54 37.38 372.43 38.68Q374.32 39.98 377.02 40.65L384.32 42.41Q391.77 44.18 395.56 48.15Q399.35 52.12 399.35 57.7Q399.35 62.66 396.49 66.38Q393.64 70.1 388.83 72.12Q385.12 73.68 380.77 73.88L379.45 76.78Q379.79 76.52 380.19 76.52H381.07Q384.94 76.52 387.67 79.08Q390.39 81.65 390.39 86.05Q390.39 88.76 389.05 90.97Q387.71 93.18 385.33 94.43Q382.96 95.68 379.8 95.41Z M54.87 72.58V22.34H67.19V28.69L67.72 28.57Q69.94 25.03 74.06 22.91Q78.18 20.78 82.99 20.78Q92.21 20.78 96.83 26.42Q101.45 32.06 101.45 41.42V72.58H88.34V43Q88.34 38.25 85.92 35.74Q83.49 33.24 79.28 33.24Q75.83 33.24 73.29 35.09Q70.76 36.95 69.36 40.05Q67.97 43.16 67.97 47V72.58Z M202.33 33.83V22.34H210.97V8.3H224.07V22.34H236.22V33.83H224.07V54.06Q224.07 57.56 225.49 59.18Q226.9 60.8 230.13 60.8Q231.66 60.8 233 60.38Q234.34 59.95 236.61 58.44V71.62Q234.35 72.48 232.14 72.92Q229.94 73.36 227.59 73.09Q219.82 73.36 215.4 68.85Q210.97 64.33 210.97 56.43V33.83Z M161.73 72.58V2.26H174.83V72.58Z M405.17 72.58V2.26H418.27V72.58Z M481.28 72.58V22.34H493.6V29.07L494.13 28.97Q495.36 26.72 497.48 24.89Q499.59 23.05 502.44 21.96Q505.29 20.88 508.52 20.88Q510.49 20.88 512.06 21.18Q513.63 21.47 514.91 22.04V35.41Q512.66 34.5 510.68 33.97Q508.7 33.44 506.48 33.44Q502.74 33.44 500 35.28Q497.27 37.13 495.83 40.33Q494.38 43.53 494.38 47.57V72.58Z M183.87 72.58V22.34H196.97V72.58Z M243.53 72.58V22.34H256.63V72.58Z M336.95 72.58V22.34H350.05V72.58Z M128.57 63.9Q132.41 63.63 135.05 61.97Q137.68 60.31 139.07 57.65Q140.46 54.99 140.46 52.21Q138.43 51.24 135.72 50.62Q133.02 49.99 130.21 49.99Q124.65 49.99 122.57 52.05Q120.48 54.11 120.48 57.1Q120.48 59.9 122.52 61.76Q124.56 63.63 128.57 63.9Z M21.71 63.9Q25.55 63.63 28.18 61.97Q30.82 60.31 32.21 57.65Q33.6 54.99 33.6 52.21Q31.57 51.24 28.86 50.62Q26.16 49.99 23.35 49.99Q17.79 49.99 15.71 52.05Q13.62 54.11 13.62 57.1Q13.62 59.9 15.66 61.76Q17.69 63.63 21.71 63.9Z M438.05 41.16 462.35 41.26Q462.25 39.84 461.39 38.13Q460.53 36.44 459 35.01Q457.47 33.59 455.31 32.68Q453.15 31.78 450.37 31.78Q446.72 31.78 443.7 33.68Q440.67 35.59 438.94 38.98Q438.41 40.01 438.05 41.16Z M190.47 17.18Q186.99 17.46 184.5 14.94Q182.02 12.41 182.02 8.88Q182.02 5.35 184.5 2.88Q186.99 0.41 190.47 0.41Q193.95 0.41 196.38 2.88Q198.82 5.35 198.82 8.88Q198.82 12.41 196.38 14.93Q193.95 17.46 190.47 17.18Z M250.12 17.18Q246.65 17.46 244.16 14.94Q241.68 12.41 241.68 8.88Q241.68 5.35 244.16 2.88Q246.65 0.41 250.12 0.41Q253.6 0.41 256.04 2.88Q258.48 5.35 258.48 8.88Q258.48 12.41 256.04 14.93Q253.6 17.46 250.12 17.18Z\"/><path fill=\"currentColor\" d=\"M571.52 72.3V6.88C571.52 5.67 572.5 4.69 573.71 4.69H598.34C599.55 4.69 600.53 5.67 600.53 6.88V72.3ZM541.25 72.3V23.43C541.25 22.22 542.23 21.25 543.43 21.25H569.12V72.3ZM603 72.3V30.99H628.56C629.77 30.99 630.75 31.97 630.75 33.18V72.3Z\"/><path style=\"fill:var(--brand-point)\" d=\"M353.23 5.91C354.89 11.02 353.11 15.7 347.63 17.08C342.51 18.36 337.75 17.27 336.08 12.44C334.56 8.14 336.89 2.74 341.77 1.25C346.47 -0.19 351.58 0.8 353.23 5.91Z\"/>"},
14
+ };
15
+
16
+ /** Images as data URIs (the report CSP allows img-src data:). */
5
17
  export const LOGOS = {
6
- "stacked-light": "data:image/webp;base64,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",
7
- "stacked-dark": "data:image/webp;base64,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",
8
- "horizontal-light": "data:image/webp;base64,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",
9
- "horizontal-dark": "data:image/webp;base64,UklGRoAbAABXRUJQVlA4WAoAAAAQAAAAPAEALwAAQUxQSHIOAAABsIb/nyKp0e9f1TOzOCR43N1O4u66w8aF5Czu7u7u7u7u7lzQCBY/iSsQciwzXf+q34uu6emdTJ7jZURMANqvjQIQDDp74rSbl4VBoQYLXzX5/UtHQADYKHrUYL0HPxxzpIWgBxNrrTVopwJUSuWGpbJBuzdYb9rkqVMnT9sYJRn5Pkn+uBZMRPIZrPQFSX6yuJSw3rTJU6dOnrY5bHEWe9ZJ8omKkaIs9p7+wdSp06YsAdM2DPZ5d/r0DxtOn/7B6SLtzaLK6M4o41HWfUj5aYdIJr9I+QOmIdT5ipTQyegeSAozWMrRBZ/yZCRFJTid0ZXbh8W6bPpvSNrcNt55n/ouYHi3DySVG8E2Z7EmPUl6vxSwtU+9T/3OPZDgBKYkvf8wESnsRF/33vsV20eCw0J3yF3T69vetvSkcntgOc+I3wUWFudMfW/yB1Ne7QWJbOsjgWsB21BJ5S49cpF3GX7TB8WdREeSbeVA1pg75VW/I/P/4iNcM3I/szP7RQxWpZIMvr5QixzOlKT694zgd+Sg5q7+/SjjOtad1vmONYDFHb7u1X/VNwJjXmZdtc77UG4FkREzmapLuT+S/49Kpv8LJPnJ0ojcScfAbxrJQu+S5JjBUmoFGGz2M0leLwbtzSZ5O5JDWsYkcSvFiE2yVpoRm0StKcQKZPQ9Dx85CIIiIOh94AP371OG2JaAwaJnPHbLNhA0FJtErfSISaJWCjJJVnIJmvxba0iCvNY0kigAi8Y2l7HIKbYIiCBrAJFEGvQTIyIADKKCAsRIPBcssgZxY5EzkcKsoLE1OSQKGIPmBRvecNfdje+9e2wtbQELYIU9zrnihqvP33v1DsA2aCiCZL3jrr7+8iPXszCNxAKDNz76kmuvv/ykUYsCYgpo9o5YBc03Z9CCFhiy9UlX3XDl+Xv/qQzYYowAy44+/5rrLjt2y8GAbdTQAkv+7dzLzt51CKSBxdps1rPnLPodPsGz4ecXLQaTEdw+cez4dybtBOw7hfEPRsNIxABr3vY9G855ZRfANFPGihPHjR//zqQdMd/LE8aPm8FAMp00bvy4CW8OATadNHb8+LET/4xSMxZDnpo4bvz48WM+3Bm2gcVpk94ZP27CS30hgMHyt/7Ihh+eNgS2CAvs8pZj/Ic7VoYIAIutJo0dP3bi/RYrPTKX2YuQNEhwFee63J49JgY7fUZSXTSQsw6AjUxl9oBez5HBZT15NWzGYr5bSHoXVZIvLwbT1FqMHoYRdTa9ILA7o1ug3ITF8PcZf36QkRz3M9s9EAKLI7tJ76KB/GJH2OYslnqJpLqsJ+unCwRI8Ddmv8Du/yPVubl6aa5bgmNPprzGlE1eC+AC0vnA4H0g6R15DmxmnKZa9wc8xtQz7lOeCgsYrDSd3gUG730ggzp+uQxMM6urU635AzD8J3UaYl7V6a8LADv5umqqmzRjscBUpl61xnsAQY7bfE2dfj8AYnE26QLpvQ+kd+TBMM1YbPEzVQOD94EMLvDRihEkGO3rmupbW5IukHS8JNdN7KnL0GzHFXSeVE+SXkn6lHvAQjCBnuQPVAZ1GkgyOF0N1sgfv2FKBsesBpIpp/Ux0sQaDKTjgRj+k1ffyHv1mZ2ppOemTVgsOJ2OpOOdIgZ57qBj4I8DkGA7poEMniQ1kN7pWqjks9i4TkcGR5LekyHl/bBIsCeVgd98R0+vqmkTN/eQn/vl62+83vi1lw6WFWp0DJ78afLk70hP0vtvB4g0YqAyqyTpeD+sxZVMA5UMn0/5pEYGkilPQFLUiG426xcsqoKFptORdLwFRlCMMeODMvvV5E+VZFDPqUkpl5GFf6CSnvSfT59FKsmUB8LGokGZ1YtaiIHNHomVJjMlX9hmMDBo0yfoSTr+A0mjwMDvHrvt6Rn0JANnD4Ux9iQy5c+nrVBBacnDf2QgffhPhyQFDZ74+aef/BrRzz/97NPPpgwrSLDop3QkHa+DERSEJVKSIXzd1Q/l5c92SqaPbG2TfHiWjvT85bQVOsyIHcbQk8HPGCqlBiEE8uvXnhj7Pa9rJQbNXdcHDPrfx9peAAQArqCSGp6EbUTlBfMDGHEXPUnPrWEh2O4HPrco4st+GzwZuA7KhRyApFzpXbqHjoHfzl/pqFTKSAoZjSU/pyPpeCWsoLCN6EnlbjAAsBN/vHRFALnK2IqO9PzXioiai6ik48noaMDAGf8YAGDw6O1hWqhJ5e2wwAmjULYATKVc/oienv/pQCPlKYC1FniHSrpwIhIgwfIXV1A2gCR98Fcq6cLhqBQFCO6IfNMb0WK2HvEfOpKOl8AKitsgdiJgk1KCzpGAsfkSvBqUIcxdBb3LpVKpo4zHqfRhemIbBD/jD4Axgty/gTsBsciKRfZCOgbOnA8mphyHxAAoYecIr8zAIpog2/9XBjqeV5xIInfG+okRkUI8T51CJel5AaygBxaay8AQ3NnDAaAEWAPkwxIpAx2PQs4FaiEw+BXRQLkXKgJAEvMbs8BShz747ocfT/nn3Sf8+cxIbfE8uyEBACMrBmauzYhBZatLX5v6yfT3n7t89ArfRG4uDrBo0BcCoJCsJ+l5GhJBD1i8TmV2xqOH/qkPACtN7U1HMlxw5JFHNDxmJgOVuzfw/MhaQdO/CYtFb53DnLNJBnJ52EjgnBEwGcGI2Qx0vA4JBNh9MnPOrZN0vPc350lSeSQS9ESCDekCSSXJLx/eewRgmrk2UqDjaQ0cL0KCdmBR/ZF06r2qOhcYCcs18PwkgcTmn9FIpOMe0jv1quqcMut4z28uGrxfFbYnxOBYBhfIoI4kf75yGGwTj1Ez6vLGLsmxV5vApp4uMLhAMjgXmlGOhSA2eGYjax6n86QqSXqnbSN4ksrx1kpPwOKwOunUB9Krkl+uA5PvtUhwTc91lzfw3By2LQz+isror7NqjDfxThEVHMk6SU+6mbPZsB0EMpB0PB5Jj8BilQdqJKkukCHl/1ZFOdcLkUIvzbFRmzibSgbOOWvNkYOXWPuAJ+eEVjD9v/eeDHxrl+UGj1x5uws/DqEtBLr3GcigtZVgegQWWOaQBz6qk/QkHSeVklwPUhn47b65999v3333PmAF024+Dp70ug0aXkjXAtiWnlS+YREfPJOhVb7uiRC4R7+fvCeV46yVnjAJsqUld7r+OwaSjtsi1wXBMfCX3igwaTc1kso3ULIixlZwV2scGRzpuRUqRsSUSkunga0yY7AIxEoRwdf3AP5CJel4Amxx1gKDV0PJAsDQh+lJFy7PtyOVVJ6GXkm8IsssCVTKpu2kJB2vtwkAGDP/DIZWOIuOgVzOGAAo4wy6HktwGx0ZwgooJwCKcDwOZYsXqWTQ2gqwRQFY6uyvf10AJWOSMoZ1M1D5aL4hsxkY/KylUTIiYkoY+Oms8xYB0JaUr6BkrU0MbqSyFY4LjvTcDBVrbQlLzvKhBW7IKO+zgOyxihSg7DKJkaW7fSCVY4yVgjrWubub5D8HIrpoLQQ63p+rhLvoSM9Plkd8wTEkZ166hGk7X4ZAeh2FrDmLypbYhUpqeKsD2ZU+omcLHJ1h4OQbb36PW6CQXZHA4hQ6ko7HwBYyH9Yl6YLntB0GAQPWf52edOGcfLKC00B6zjpthT6299JHfksfHPlJL9tubqWSge7Krdbc6IgJ9KE1RnaHQAa+u986a+94/Rx69pzFH+lJ0pOk36iYXZBAbGUalQw6dwXYIgaiMl4dSU/+MOm9bxlVrp3LWJzJlKQn/RcffZGSnmSdo1FpN6uoBuZUz5ao4HamJD3jyhaAkbfpSNI757hxcbDYgBpI5dtipYABwOqqnqT3JBk8yZRPo5xLrH2edZLBMesCGVJeBpu0G5zLeiCD88E7Vc5oiZIs+CMdSe9CUOdYm9MCFmv44Bj1YaMegMWNdCQdj4AtJMG+pCPJ4H0gGVL+d6Tkg8iAN6lKMnjvA0n1vB1W2o4195FOQwheHXn5iVpXpy4zTlOt65g8P6nTml6DxGC9WVT1IQSvypnbfqpOa3oXKthGU9W6dqGM1dWp1nT/CCz+6uldNuWmwE5aV011E5SxtdZV67pzxJj5v/OpqktnLwOT4zatqdPvB0As/v4/0mkgGbwq+cGyMAlO1JqqagYGvW4mg9OQVRfIs2AECUZrXTXVDQu6KaShhV24QwQn/8KGs0/CGYwuD4tpzH6QY4hj9lYksFj5NTZ+eyXMYfZhVFBldGeUsTajh8ZgscHbjM9dU7A7o1ugjE5G94jAYk/Gx+R6gNnugRBYLP+gMuePZ/WFQYIzGF05AwG2eZN5X9sYRoAEf2N004LuYIvfBxEsctJbP3R3/zT2jMUgS2/fWa2O6uwDwfpd1Wpn13poXN56VLXauf3KEMACW9/16eza7P88soOgskVXtdq5/WowGNrVWa12do2AwaBR1Wq1s2sRSAQWWPeUW+656/I9FxPByK7OarXaNRgGQ7s6q9XOrpGQDARbdlWr1eqoLdBYsFpXZ7U6aqsSAFhgldNe+YKB+vnT+w0HDCBYavvOarVa7QcBADHAOhe8+d2vtdnfvHHRuoAFAMGCXZ3VarVrMKQAweJrrL5Gj665Rv7V11wCgAUwYJFFBgGwaF0DoDRsieG9ABi0qkHbNAbAaGp9bQCwgmKtAOg/colhfQGIRds2iQCAJAYwNpqx8Tw2aiKAtchaK4CNGgBiowJAbFRyADZJrE0SA0BsVACIjUoO2zCXsdEYYMp4gb776Zt3FBFEjY1KI8AmgqxJLBqLjUpBxra4yQAQYwStL2JE8DttsKpz3pN8qJeRSMEiRgTzHBPsz6xLeTlsT8yrlPLGj8688gF6nTUfZJ5LdiDwJpWrw85rEZitnj4GGDNPRqTfOJIPvUzvZw6CzGOBNbez5kl1PBcW81pFyvczemfZyDwXCDD65f/+69ldAMHvN1ZQOCDoDAAAcDgAnQEqPQEwAD4xEohCoiEhGVoWPCADBLGOAHxGJ20jP8B0DM1+983Psf1XFVfl8JPux+iHpa21vmA/Wv/b/4D3gP+F6jPQA/Vn1n/VD/tf/U9hj+Nf0f06fY9/sX/H/dT2gf/H1gHUb8K+3T/a/jT+sfsDXT9a7cdUB9d8CfWAvN+Ms+sf7n2Bv4b/Pv+j/ffyZ+Xj/p8231j7B38p/q//A/vHa3/bT2Gf1qMSYza1e6oVd/m+FHv77SwRr9CbKiPKdao0xAIPaV1/rvDJQI2Ogr15QKnDK1EL9kca7NPCgV5MvlhWpFVpsnpx9z7Wc8TBMyCwE0p044ZHpZ9NPR0r09B4XEq0gBVsZfqjyj4XTEUwiNGxx4BcyjXzwMKnrLgadLLguJ7bFJSg54X1d+VH7AHTloZlgDJ1H6QL24GVD9SUFwV/0aJ8YjDFXrcyFdyJ5jJ9txtNqrRYaxO9MKn4zkk0bnSjRi1lMkie3uv/PmcAixnSu1TgxKgAQif/dvGYa4d5eGJnuX8fpc/+8UF7yxvt+vpl8fYal0cUqurg8XDeEZhdUiULyeXTkKKp5hFl+NJ6G968/X9YgUPynVLs7otuylSPTFOokAD+3nQ//8v/aTGXGtYbdGq+ovaBt/e/jD6vAL+flcbBbOU0gzDagwI0b6PIGHCpHBcWNWZim73fp/fy2IiKv00dC+VwdYMwGFdWAvdZ88L5gqgt3D+MX8irsPsddT1j3HkGIU8LZWg96Ww3dhHQ8BvBBcK1R4gl+CCfoDloUBd9/RBuMmXt9/vANKl4nsQCBGPOajVSOe0C0v1x0n6JvEz5qVm0YRvEK2b+tJDr//btuqGYYrsYQD4q0cXW9+Zm0znIeMpLr8ziklFv86ajyVLOOmfLYISIu+1oMkX1AazEb5vuO9rpj5+gJ8C7kYoHWeVu4Ho7NZStnLvbiYnXgxTumzqw+YrKDmQzxf68AsnuVjA9jRJdx6glMjIAfE9nVS/1hey+wwViWN8CNC9vNpZZn4VnxUpFd36dHx0OMbGy2ghwZCORRG2sXIkJ/vFRzFlnF1GJC4KOjXzMjrGC3ChAt2FwN1rUZVXqqDhi7hObQ9pl1RmgOI+ZNyF3mCsOUl1OghgeFI9Jo81xGqP5HC5rzEvUnZMD5AjvoCxK5BFD5gOQFTd85UNwCZVD3oYVbUBXCT0IqhNlS+DuJRO7i1mRCnIueQdox1UX8s/efQXxk1zSv0Kt9GKoclMI4WGqMj7/C6Ny4H6Z4HOYVurKvzDo1OcvYjPiOyT46xhH7fXMHd0HzFS8xyteH6ocyuHV75Ztsk2wjF/SadTdM3sFYE1JDr5jincILR++1SB2DWo/Dn+CA33qAWB2NwZYaFSais9rxAW4oXAq2bSLW+XNPve5VX+dela1PtQpf/95vY+n2FKbCLWgnBPNdhxPazqVzid3kZhMb1HZGDzBL88fUokL7gHwhbb2Gdx1bvY39SxeAemfWxiOYxQZhkWtJTT1o6VcO0f/8IzduBXKA/64Fv3BXQr0HUUIJH8mvmDisnrfqu1Rx28Y3/iNCyd9/d0SGQ/Ub/+9P1WDcZ66pSy4NfS8aIAqdt3X1cM/8Hy0ZfFGegrV2I7O943qPEM4YsmOmOeKXnsxmknJSbillRyDjbj1VZ1m3tOGmlfgpPaQKr8DmMnCMrQAhWd9+CLuzn/o39aiFRDxn6RlvqZHXrbstltUPfLA0Ej++62RQcowHfgtuLiJxPyoUHoyCZi5sdvU+7KBECBcrTjxA2VSuf3Hg4KhbgndPUPrErqjP+T6c+DAMgFdI6iXTzSFa1UrIevt7F8ZFWxEcTy/wPu9tTX3NlbStZK1l7oeA+qZvGx+6b2832mE3tfJyJPzBMfWw3jY/bKg1SGZr/jUnbMru/5hidzGw+uqyA0M3iBQBBpucr+bCyOgh+6BnUwwbO+J5VkaxNNnJ62J+VsCywBx0lqxDYWZo5Hnrhw88yU2pt3EAUvnChkKNbRrRO9mj4YRP+vDGdG9+9vA8ruF6Uiv4K5NDPhmy4ZBqHsFSFal9AFl5fs9DeMueTQM7wh7F3TL6xUNznsLp4hTYOKqbqZarjImdg5LDi2ofcWnf3ASNmauUJ/NkcsiMJJ9VnYLjhlV/Bq2YakUS78QGNRQeygwc50KHrrcsZ+1+0bKJPR28atqUKwq2DuroXVTmiFb+O8nxbhS+8Ct07cwAiN27macdtLd2cvLGPplhlIXgRG0AIqsQWZEP2HESyaFzVwPjdCu5pmrW2qGlOAErhr29i7qFeWIltV6k6bpf+nh/kKt+djCA6zJpDtbNjHOHRC+TODn5VEjMh6E1bQSu1HtI4o+jBs0/+iio3MGOBSKPGut/KZi9dz+/G4GrPftbgFFq+op17unUzepy8p/EhzPk3Z5S6YdRfSCNMbaFIs7pzvluR2fVdyB3Mh4Ta8/2DMccxXXS2/97+FDoEjyjNWwn4rYsCuVwnXUoZ+hblhhzwLhXX8m0OEN6/jtrrc0yQpec4008/DIEf+ASJoiUSm/13i4K1dLbCZxGqASyZY1fGX1X0AYWrn3/OCiF0LYwm3CYV5e6GqutXMjkN5sS2RURy4U/c1w5rXBJc8Gndu+WaeccYvNnzfhZBSRZk66fnqRjAu9b7sJfc7BnAtn94984mkX8N8DwNcXJjHCgROmiAXWWty0/dF0FaD/ZRwNcKIWIf/FHkPuD+Kd6IE/QBpvD/YqaukX4npPLLrBZRFn82r5hCcZnX4fqRQ4W/tGWZpGBrAMKRC0q8hd6Mdo1wHjpr7THlKCW0I+vDKkms2HlvWGrtoQBHAqsvsbHt6+oily4bn3VwTgxuSMgOkxcsmhEwnouN7HP63kecSnS/gasgSsmYqUp8aJL//4C+BefHgGh3enPLv2vDcWMKHdltuzgzyRLklr0jM9NPeSJMegb+wZL2h8hsZTdZN8wLnHejQ4onj270Uug71gU6JwyDGP9XypNB4QXHxvNUnGq2gPlENJoWFuec3qHxlJgdoGWoQhCANGWYFZAV6aBcGIK57ywliFCYChL3Le7dK0flyA1V3AaycWIUJnwCBtqUClCZeSO2Rq/vQvNpfYYXJAJb8YeB8itXeXS5Fu2dRphsmFP+FFS097PD5i+6Jp8jV0ZiD1+hjWXO4FjdmuxlmU4dX5PEwlx59WHaIvQxZTRUZTPfm6N2MrucgS8RZ+HLcRdS98bTI9xaiyD00X4CpFeyZyVku2ePr9CcE49JGXkAp2sZQewH/EvF7zOJJG89PHIdvtf3EVq5h/c37U0GtDm9OKkQI479g9xIEEb791fGBi4MKtC3cJghPOUXG8KHoStFeJKhNWjxqofEXLe97wB8saR1vm8bVbMNhoyyosFL+KcyBXPcw9ks7JJ0P/5OhD/A44ItLun6v6u6UZuPXq7eIFMs+Yc16fVUj0mUtQxxZ3Gl1NIGdxpdTRZTa8clQN9BQhRuxX5or7hyKE3I7tl3f3LYAK0ucumGGxtWp7mJLg+AlPV0ND+0i2gYLUE01DUemtkhtIVvUoQOfxK2zlR/Ir+XSpEFVusNj8icdVpo0nPR9QQF78w/ukNjWkx0uZeDuetRGpun79z6dw8dRrSGrOL7U0DEiGgoskmh/TizDhiILu2qWIcKRdmW7qScOFPf5guNYt142JLovW9v6j8TGsn0u0JbbhE6KD4c8TH9dA9cjYXmhoG9Ysy1aQ80X8K4eh4w+J329DOPKVlxK5c8+N6fspWS5i+n/wJFWyVlLRjs0ml6xJqdY1iSy+8THBzJecx/uANymdrmxskRb+E2R+nbjHeWa89WjyVvcIxxoymu9viqTNH0PiwgRaEyjS/ncEP3L+6rTAJfX0tG18u4xadC9pSXI9w/hBfeIzrPrw7hoqTWoMF8DV2Syq7ALPCOtk6Ho4DfnExcQqECjUAtg/KrU97gRxgEm3orCMyLWbYd+nXKho6aOrmmxvhHAOpFVLgX4wFpW9tyM9Lf9l6WE2JajN6YRHrGKoBrez12FbVNbO4pMka0rkA+auV7/4muRlZWGHqXfJcthBLGdix1Ee30wouTS3fQTVvO/vqwfw4yGdNhiVtXD/rCamTgcaKnWlrJSVj1hf1Fd529w8zaTCgb0SFI8NQWigW/p+7kBeiDLtM8gYbngQz9/xC8PzcllqYNzO9Er0VD2mcg3abWeeqCFCHPeL/0TP/LI+jJl2lDsC+S/1N1dDxHXy8JHOu5dnx9J45aQC1YG96nYYeqU6SeaJSVaoqvRLmXN2h4xH0IDW039RqarHN/JejJlBYLkj6rNWnuwWhtxXnSTSBxhG5GDFcTHgW715qTJdJEq1aSEv/Z/eJQ1P++/r8Asifj6ofj4qSP1kJasDLkJ180j9CgAAAA==",
10
- "atd-lockup-light": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMzk2LjIzMSIgaGVpZ2h0PSIyMDQiIHZpZXdCb3g9IjAgMCAxMzk2LjIzMSAyMDQiIHJvbGU9ImltZyIgYXJpYS1sYWJlbD0iYWkgdGFnIGRlYnVnZ2VyIj4KPHRpdGxlPmFpIHRhZyBkZWJ1Z2dlciDigJQgR29vZ2xlIFNhbnMgQm9sZCDigJQgbGlnaHQ8L3RpdGxlPgo8ZGVzYz5Mb3dlcmNhc2UgbGV0dGVyaW5nIG91dGxpbmVkIGZyb20gdGhlIGluc3RhbGxlZCBHb29nbGUgU2FucyBCb2xkIDEzLjAwMiBmb250LiBUYWcgYW5kIHZpc2libGUgd29yZG1hcmsgYm90aCBoYXZlIGhlaWdodCAxNDAuIE9yYW5nZSB0b2tlbjogI0Q5NTMxRS4gVHJhbnNwYXJlbnQgYmFja2dyb3VuZC48L2Rlc2M+CjxnIGFyaWEtbGFiZWw9ImFpIHRhZyBkZWJ1Z2dlciI+CiAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzIgMzIpIHNjYWxlKDAuNjczMDc2OTIzKSIgZmlsbD0iI0Q5NTMxRSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNNDIgMEgyMjRRMjM3IDAgMjQ3IDEwTDMxMiA4OFEzMjggMTA0IDMxMiAxMjBMMjQ3IDE5OFEyMzcgMjA4IDIyNCAyMDhINDJRMCAyMDggMCAxNjZWNDJRMCAwIDQyIDBaIE00OSA5MVE2MSA3OSA3MyA5MUwxMDYgMTI0TDE4MCA1MFExOTIgMzggMjA0IDUwUTIxNiA2MiAyMDQgNzRMMTE4IDE2MFExMDYgMTcyIDk0IDE2MEw0OSAxMTVRMzcgMTAzIDQ5IDkxWiBNMjgxIDEwNGExNyAxNyAwIDEgMCAtMzQgMGExNyAxNyAwIDEgMCAzNCAwWiIvPjwvZz4KICA8cGF0aCBmaWxsPSIjMEEwRTFBIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyNzIuMzE3Mzk3MTg0IDEzOC40MTE1ODIyMTMpIHNjYWxlKDAuMTQ0Nzc3NjYzIC0wLjE0NDc3NzY2MykiIGQ9Ik0yMjAgLTE2UTE2NiAtMTYgMTI0LjUgNS41UTgzIDI3IDU5LjAgNjYuMFEzNSAxMDUgMzUgMTU2UTM1IDIwOSA2Mi41IDI0Ny4wUTkwIDI4NSAxMzYuNSAzMDYuMFExODMgMzI3IDI0MCAzMjdRMjcxIDMyNyAyOTYuNSAzMjMuNVEzMjIgMzIwIDM0Mi4wIDMxNS4wUTM2MiAzMTAgMzc1IDMwNFYzMjZRMzc1IDM2NyAzNDQuMCAzOTMuNVEzMTMgNDIwIDI1OSA0MjBRMjIzIDQyMCAxODkuNSA0MDMuNVExNTYgMzg3IDEzNCAzNjBMNTAgNDI2UTc1IDQ1OCAxMDguMCA0ODAuNVExNDEgNTAzIDE4MS4wIDUxNC41UTIyMSA1MjYgMjY1IDUyNlEzODIgNTI2IDQ0My4wIDQ3Mi4wUTUwNCA0MTggNTA0IDMxNFYwSDM3NVY1MkgzNjdRMzUzIDM0IDMzMi4wIDE4LjVRMzExIDMgMjgzLjAgLTYuNVEyNTUgLTE2IDIyMCAtMTZaTTI1MSA4NlEyOTEgODYgMzE4LjUgMTAzLjVRMzQ2IDEyMSAzNjAuNSAxNDkuMFEzNzUgMTc3IDM3NSAyMDhRMzUzIDIxOSAzMjUuMCAyMjUuNVEyOTcgMjMyIDI2OCAyMzJRMjEwIDIzMiAxODguMCAyMTAuMFExNjYgMTg4IDE2NiAxNTZRMTY2IDEyNiAxODcuNSAxMDYuMFEyMDkgODYgMjUxIDg2Wk02MjMgMFY1MTBINzU0VjBaTTY4OSA1NjZRNjU0IDU2NiA2MjkuMCA1OTEuMFE2MDQgNjE2IDYwNCA2NTFRNjA0IDY4NiA2MjkuMCA3MTAuNVE2NTQgNzM1IDY4OSA3MzVRNzI0IDczNSA3NDguNSA3MTAuNVE3NzMgNjg2IDc3MyA2NTFRNzczIDYxNiA3NDguNSA1OTEuMFE3MjQgNTY2IDY4OSA1NjZaTTEwNzYgMzk4VjUxMEgxMTcwVjM5OFpNMTMzNCAtOFExMjU1IC04IDEyMTAuMCAzNy41UTExNjUgODMgMTE2NSAxNjNWNjU0SDEyOTZWMTg3UTEyOTYgMTUwIDEzMTEuMCAxMzIuNVExMzI2IDExNSAxMzYwIDExNVExMzc2IDExNSAxMzkwLjAgMTE5LjVRMTQwNCAxMjQgMTQyNSAxMzdWOVExNDAzIDEgMTM4MC41IC0zLjVRMTM1OCAtOCAxMzM0IC04Wk0xMjkxIDM5OFY1MTBIMTQyMVYzOThaTTE2NzYgLTE2UTE2MjIgLTE2IDE1ODAuNSA1LjVRMTUzOSAyNyAxNTE1LjAgNjYuMFExNDkxIDEwNSAxNDkxIDE1NlExNDkxIDIwOSAxNTE4LjUgMjQ3LjBRMTU0NiAyODUgMTU5Mi41IDMwNi4wUTE2MzkgMzI3IDE2OTYgMzI3UTE3MjcgMzI3IDE3NTIuNSAzMjMuNVExNzc4IDMyMCAxNzk4LjAgMzE1LjBRMTgxOCAzMTAgMTgzMSAzMDRWMzI2UTE4MzEgMzY3IDE4MDAuMCAzOTMuNVExNzY5IDQyMCAxNzE1IDQyMFExNjc5IDQyMCAxNjQ1LjUgNDAzLjVRMTYxMiAzODcgMTU5MCAzNjBMMTUwNiA0MjZRMTUzMSA0NTggMTU2NC4wIDQ4MC41UTE1OTcgNTAzIDE2MzcuMCA1MTQuNVExNjc3IDUyNiAxNzIxIDUyNlExODM4IDUyNiAxODk5LjAgNDcyLjBRMTk2MCA0MTggMTk2MCAzMTRWMEgxODMxVjUySDE4MjNRMTgwOSAzNCAxNzg4LjAgMTguNVExNzY3IDMgMTczOS4wIC02LjVRMTcxMSAtMTYgMTY3NiAtMTZaTTE3MDcgODZRMTc0NyA4NiAxNzc0LjUgMTAzLjVRMTgwMiAxMjEgMTgxNi41IDE0OS4wUTE4MzEgMTc3IDE4MzEgMjA4UTE4MDkgMjE5IDE3ODEuMCAyMjUuNVExNzUzIDIzMiAxNzI0IDIzMlExNjY2IDIzMiAxNjQ0LjAgMjEwLjBRMTYyMiAxODggMTYyMiAxNTZRMTYyMiAxMjYgMTY0My41IDEwNi4wUTE2NjUgODYgMTcwNyA4NlpNMjMxNCAtMjMyUTIyNDUgLTIzMiAyMTk0LjUgLTIxMC41UTIxNDQgLTE4OSAyMTEyLjAgLTE1NS4wUTIwODAgLTEyMSAyMDY3IC04NEwyMTkwIC0zNFEyMjA2IC03MSAyMjM4LjUgLTkzLjVRMjI3MSAtMTE2IDIzMTQgLTExNlEyMzc1IC0xMTYgMjQxMi4wIC03OC41UTI0NDkgLTQxIDI0NDkgMzBWNzBIMjQ0MVEyNDE3IDM2IDIzNzguMCAxOC4wUTIzMzkgMCAyMjg5IDBRMjIyNyAwIDIxNzIuNSAzMi4wUTIxMTggNjQgMjA4NC41IDEyMy4wUTIwNTEgMTgyIDIwNTEgMjYzUTIwNTEgMzQ1IDIwODQuNSA0MDMuNVEyMTE4IDQ2MiAyMTcyLjUgNDk0LjBRMjIyNyA1MjYgMjI4OSA1MjZRMjMzOSA1MjYgMjM3OC4wIDUwOC41UTI0MTcgNDkxIDI0NDEgNDU2SDI0NDlWNTEwSDI1NzVWMzVRMjU3NSAtNDcgMjU0My4wIC0xMDcuMFEyNTExIC0xNjcgMjQ1Mi41IC0xOTkuNVEyMzk0IC0yMzIgMjMxNCAtMjMyWk0yMzE2IDExOVEyMzUxIDExOSAyMzgxLjUgMTM1LjVRMjQxMiAxNTIgMjQzMC41IDE4NC41UTI0NDkgMjE3IDI0NDkgMjYzUTI0NDkgMzExIDI0MzAuNSAzNDMuMFEyNDEyIDM3NSAyMzgxLjUgMzkxLjBRMjM1MSA0MDcgMjMxNiA0MDdRMjI4MSA0MDcgMjI1MC4wIDM5MS4wUTIyMTkgMzc1IDIyMDAuNSAzNDMuMFEyMTgyIDMxMSAyMTgyIDI2M1EyMTgyIDIxNiAyMjAwLjUgMTgzLjVRMjIxOSAxNTEgMjI1MC4wIDEzNS4wUTIyODEgMTE5IDIzMTYgMTE5Wk0zMTU0IC0xNlEzMDg0IC0xNiAzMDI4LjAgMTguNVEyOTcyIDUzIDI5MzkuNSAxMTQuMFEyOTA3IDE3NSAyOTA3IDI1NVEyOTA3IDMzNSAyOTM5LjUgMzk2LjBRMjk3MiA0NTcgMzAyOC4wIDQ5MS41UTMwODQgNTI2IDMxNTQgNTI2UTMxOTEgNTI2IDMyMjEuMCA1MTUuMFEzMjUxIDUwNCAzMjczLjAgNDg2LjBRMzI5NSA0NjggMzMwNyA0NDhIMzMxNUwzMzA3IDUyMFY3MTZIMzQzN1YwSDMzMTVWNjFIMzMwN1EzMjk1IDQxIDMyNzMuMCAyMy41UTMyNTEgNiAzMjIxLjAgLTUuMFEzMTkxIC0xNiAzMTU0IC0xNlpNMzE3NiAxMDVRMzIxMyAxMDUgMzI0NC41IDEyNC4wUTMyNzYgMTQzIDMyOTUuNSAxNzYuNVEzMzE1IDIxMCAzMzE1IDI1NVEzMzE1IDMwMCAzMjk1LjUgMzMzLjVRMzI3NiAzNjcgMzI0NC41IDM4NS41UTMyMTMgNDA0IDMxNzYgNDA0UTMxNDAgNDA0IDMxMDguNSAzODUuNVEzMDc3IDM2NyAzMDU3LjUgMzM0LjBRMzAzOCAzMDEgMzAzOCAyNTVRMzAzOCAyMTAgMzA1Ny41IDE3Ni4wUTMwNzcgMTQyIDMxMDguNSAxMjMuNVEzMTQwIDEwNSAzMTc2IDEwNVpNMzgwMiAtMTZRMzcyNSAtMTYgMzY2NC41IDE5LjBRMzYwNCA1NCAzNTY5LjUgMTE1LjBRMzUzNSAxNzYgMzUzNSAyNTRRMzUzNSAzMjcgMzU2OS4wIDM4OS4wUTM2MDMgNDUxIDM2NjIuMCA0ODguNVEzNzIxIDUyNiAzNzk3IDUyNlEzODc5IDUyNiAzOTM1LjAgNDkxLjBRMzk5MSA0NTYgNDAyMC4wIDM5Ny41UTQwNDkgMzM5IDQwNDkgMjY4UTQwNDkgMjUyIDQwNDguMCAyNDAuNVE0MDQ3IDIyOSA0MDQ2IDIyNEgzNjA4VjMxN0gzOTIzUTM5MjIgMzM0IDM5MTMuMCAzNTIuMFEzOTA0IDM3MCAzODg4LjAgMzg1LjBRMzg3MiA0MDAgMzg0OS41IDQwOS41UTM4MjcgNDE5IDM3OTggNDE5UTM3NjAgNDE5IDM3MjguNSAzOTkuMFEzNjk3IDM3OSAzNjc5LjAgMzQzLjVRMzY2MSAzMDggMzY2MSAyNTlRMzY2MSAyMDggMzY4MC4wIDE3Mi41UTM2OTkgMTM3IDM3MzEuNSAxMTguNVEzNzY0IDEwMCAzODA0IDEwMFEzODUxIDEwMCAzODgzLjAgMTIwLjVRMzkxNSAxNDEgMzkzMyAxNzJMNDAzOSAxMjBRNDAwMyA1NyAzOTQ1LjAgMjAuNVEzODg3IC0xNiAzODAyIC0xNlpNNDQzMSAtMTZRNDM5NCAtMTYgNDM2NC4wIC01LjBRNDMzNCA2IDQzMTIuNSAyMy41UTQyOTEgNDEgNDI3OCA2MUg0MjcwVjBINDE0N1Y3MTZINDI3OFY1MjBMNDI3MCA0NDhINDI3OFE0MjkxIDQ2OCA0MzEyLjUgNDg2LjBRNDMzNCA1MDQgNDM2NC4wIDUxNS4wUTQzOTQgNTI2IDQ0MzEgNTI2UTQ1MDEgNTI2IDQ1NTYuNSA0OTEuNVE0NjEyIDQ1NyA0NjQ0LjUgMzk2LjBRNDY3NyAzMzUgNDY3NyAyNTVRNDY3NyAxNzUgNDY0NC41IDExNC4wUTQ2MTIgNTMgNDU1Ni41IDE4LjVRNDUwMSAtMTYgNDQzMSAtMTZaTTQ0MDggMTA1UTQ0NDUgMTA1IDQ0NzYuNSAxMjMuNVE0NTA4IDE0MiA0NTI3LjUgMTc2LjBRNDU0NyAyMTAgNDU0NyAyNTVRNDU0NyAzMDEgNDUyNy41IDMzNC4wUTQ1MDggMzY3IDQ0NzYuNSAzODUuNVE0NDQ1IDQwNCA0NDA4IDQwNFE0MzcyIDQwNCA0MzQwLjUgMzg1LjVRNDMwOSAzNjcgNDI4OS41IDMzMy41UTQyNzAgMzAwIDQyNzAgMjU1UTQyNzAgMjEwIDQyODkuNSAxNzYuNVE0MzA5IDE0MyA0MzQwLjUgMTI0LjBRNDM3MiAxMDUgNDQwOCAxMDVaTTQ5NTkgLTE2UTQ4NjUgLTE2IDQ4MTguMCA0Mi4wUTQ3NzEgMTAwIDQ3NzEgMjAwVjUxMEg0OTAyVjIxNlE0OTAyIDE2NCA0OTI3LjUgMTM0LjVRNDk1MyAxMDUgNDk5MyAxMDVRNTAzMiAxMDUgNTA1OS4wIDEyNC41UTUwODYgMTQ0IDUxMDAuNSAxNzcuMFE1MTE1IDIxMCA1MTE1IDI1MFY1MTBINTI0NlYwSDUxMjNWNjRINTExNVE1MTAwIDQwIDUwNzYuMCAyMi4wUTUwNTIgNCA1MDIyLjUgLTYuMFE0OTkzIC0xNiA0OTU5IC0xNlpNNTYwNyAtMjMyUTU1MzggLTIzMiA1NDg3LjUgLTIxMC41UTU0MzcgLTE4OSA1NDA1LjAgLTE1NS4wUTUzNzMgLTEyMSA1MzYwIC04NEw1NDgzIC0zNFE1NDk5IC03MSA1NTMxLjUgLTkzLjVRNTU2NCAtMTE2IDU2MDcgLTExNlE1NjY4IC0xMTYgNTcwNS4wIC03OC41UTU3NDIgLTQxIDU3NDIgMzBWNzBINTczNFE1NzEwIDM2IDU2NzEuMCAxOC4wUTU2MzIgMCA1NTgyIDBRNTUyMCAwIDU0NjUuNSAzMi4wUTU0MTEgNjQgNTM3Ny41IDEyMy4wUTUzNDQgMTgyIDUzNDQgMjYzUTUzNDQgMzQ1IDUzNzcuNSA0MDMuNVE1NDExIDQ2MiA1NDY1LjUgNDk0LjBRNTUyMCA1MjYgNTU4MiA1MjZRNTYzMiA1MjYgNTY3MS4wIDUwOC41UTU3MTAgNDkxIDU3MzQgNDU2SDU3NDJWNTEwSDU4NjhWMzVRNTg2OCAtNDcgNTgzNi4wIC0xMDcuMFE1ODA0IC0xNjcgNTc0NS41IC0xOTkuNVE1Njg3IC0yMzIgNTYwNyAtMjMyWk01NjA5IDExOVE1NjQ0IDExOSA1Njc0LjUgMTM1LjVRNTcwNSAxNTIgNTcyMy41IDE4NC41UTU3NDIgMjE3IDU3NDIgMjYzUTU3NDIgMzExIDU3MjMuNSAzNDMuMFE1NzA1IDM3NSA1Njc0LjUgMzkxLjBRNTY0NCA0MDcgNTYwOSA0MDdRNTU3NCA0MDcgNTU0My4wIDM5MS4wUTU1MTIgMzc1IDU0OTMuNSAzNDMuMFE1NDc1IDMxMSA1NDc1IDI2M1E1NDc1IDIxNiA1NDkzLjUgMTgzLjVRNTUxMiAxNTEgNTU0My4wIDEzNS4wUTU1NzQgMTE5IDU2MDkgMTE5Wk02MjI5IC0yMzJRNjE2MCAtMjMyIDYxMDkuNSAtMjEwLjVRNjA1OSAtMTg5IDYwMjcuMCAtMTU1LjBRNTk5NSAtMTIxIDU5ODIgLTg0TDYxMDUgLTM0UTYxMjEgLTcxIDYxNTMuNSAtOTMuNVE2MTg2IC0xMTYgNjIyOSAtMTE2UTYyOTAgLTExNiA2MzI3LjAgLTc4LjVRNjM2NCAtNDEgNjM2NCAzMFY3MEg2MzU2UTYzMzIgMzYgNjI5My4wIDE4LjBRNjI1NCAwIDYyMDQgMFE2MTQyIDAgNjA4Ny41IDMyLjBRNjAzMyA2NCA1OTk5LjUgMTIzLjBRNTk2NiAxODIgNTk2NiAyNjNRNTk2NiAzNDUgNTk5OS41IDQwMy41UTYwMzMgNDYyIDYwODcuNSA0OTQuMFE2MTQyIDUyNiA2MjA0IDUyNlE2MjU0IDUyNiA2MjkzLjAgNTA4LjVRNjMzMiA0OTEgNjM1NiA0NTZINjM2NFY1MTBINjQ5MFYzNVE2NDkwIC00NyA2NDU4LjAgLTEwNy4wUTY0MjYgLTE2NyA2MzY3LjUgLTE5OS41UTYzMDkgLTIzMiA2MjI5IC0yMzJaTTYyMzEgMTE5UTYyNjYgMTE5IDYyOTYuNSAxMzUuNVE2MzI3IDE1MiA2MzQ1LjUgMTg0LjVRNjM2NCAyMTcgNjM2NCAyNjNRNjM2NCAzMTEgNjM0NS41IDM0My4wUTYzMjcgMzc1IDYyOTYuNSAzOTEuMFE2MjY2IDQwNyA2MjMxIDQwN1E2MTk2IDQwNyA2MTY1LjAgMzkxLjBRNjEzNCAzNzUgNjExNS41IDM0My4wUTYwOTcgMzExIDYwOTcgMjYzUTYwOTcgMjE2IDYxMTUuNSAxODMuNVE2MTM0IDE1MSA2MTY1LjAgMTM1LjBRNjE5NiAxMTkgNjIzMSAxMTlaTTY4NTUgLTE2UTY3NzggLTE2IDY3MTcuNSAxOS4wUTY2NTcgNTQgNjYyMi41IDExNS4wUTY1ODggMTc2IDY1ODggMjU0UTY1ODggMzI3IDY2MjIuMCAzODkuMFE2NjU2IDQ1MSA2NzE1LjAgNDg4LjVRNjc3NCA1MjYgNjg1MCA1MjZRNjkzMiA1MjYgNjk4OC4wIDQ5MS4wUTcwNDQgNDU2IDcwNzMuMCAzOTcuNVE3MTAyIDMzOSA3MTAyIDI2OFE3MTAyIDI1MiA3MTAxLjAgMjQwLjVRNzEwMCAyMjkgNzA5OSAyMjRINjY2MVYzMTdINjk3NlE2OTc1IDMzNCA2OTY2LjAgMzUyLjBRNjk1NyAzNzAgNjk0MS4wIDM4NS4wUTY5MjUgNDAwIDY5MDIuNSA0MDkuNVE2ODgwIDQxOSA2ODUxIDQxOVE2ODEzIDQxOSA2NzgxLjUgMzk5LjBRNjc1MCAzNzkgNjczMi4wIDM0My41UTY3MTQgMzA4IDY3MTQgMjU5UTY3MTQgMjA4IDY3MzMuMCAxNzIuNVE2NzUyIDEzNyA2Nzg0LjUgMTE4LjVRNjgxNyAxMDAgNjg1NyAxMDBRNjkwNCAxMDAgNjkzNi4wIDEyMC41UTY5NjggMTQxIDY5ODYgMTcyTDcwOTIgMTIwUTcwNTYgNTcgNjk5OC4wIDIwLjVRNjk0MCAtMTYgNjg1NSAtMTZaTTcyMDAgMFY1MTBINzMyM1Y0NDJINzMzMVE3MzQ0IDQ2NiA3MzY1LjUgNDg0LjVRNzM4NyA1MDMgNzQxNi4wIDUxNC4wUTc0NDUgNTI1IDc0NzggNTI1UTc0OTggNTI1IDc1MTQuMCA1MjIuMFE3NTMwIDUxOSA3NTQyIDUxNFYzODNRNzUyMSAzOTEgNzUwMC41IDM5Ni41UTc0ODAgNDAyIDc0NTcgNDAyUTc0MTggNDAyIDczODkuNSAzODIuNVE3MzYxIDM2MyA3MzQ2LjAgMzI5LjVRNzMzMSAyOTYgNzMzMSAyNTRWMFoiLz4KPC9nPgo8L3N2Zz4=",
11
- "atd-lockup-dark": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMzk2LjIzMSIgaGVpZ2h0PSIyMDQiIHZpZXdCb3g9IjAgMCAxMzk2LjIzMSAyMDQiIHJvbGU9ImltZyIgYXJpYS1sYWJlbD0iYWkgdGFnIGRlYnVnZ2VyIj4KPHRpdGxlPmFpIHRhZyBkZWJ1Z2dlciDigJQgR29vZ2xlIFNhbnMgQm9sZCDigJQgZGFyazwvdGl0bGU+CjxkZXNjPkxvd2VyY2FzZSBsZXR0ZXJpbmcgb3V0bGluZWQgZnJvbSB0aGUgaW5zdGFsbGVkIEdvb2dsZSBTYW5zIEJvbGQgMTMuMDAyIGZvbnQuIFRhZyBhbmQgdmlzaWJsZSB3b3JkbWFyayBib3RoIGhhdmUgaGVpZ2h0IDE0MC4gT3JhbmdlIHRva2VuOiAjRkY2RDMzLiBUcmFuc3BhcmVudCBiYWNrZ3JvdW5kLjwvZGVzYz4KPGcgYXJpYS1sYWJlbD0iYWkgdGFnIGRlYnVnZ2VyIj4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzMiAzMikgc2NhbGUoMC42NzMwNzY5MjMpIiBmaWxsPSIjRkY2RDMzIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik00MiAwSDIyNFEyMzcgMCAyNDcgMTBMMzEyIDg4UTMyOCAxMDQgMzEyIDEyMEwyNDcgMTk4UTIzNyAyMDggMjI0IDIwOEg0MlEwIDIwOCAwIDE2NlY0MlEwIDAgNDIgMFogTTQ5IDkxUTYxIDc5IDczIDkxTDEwNiAxMjRMMTgwIDUwUTE5MiAzOCAyMDQgNTBRMjE2IDYyIDIwNCA3NEwxMTggMTYwUTEwNiAxNzIgOTQgMTYwTDQ5IDExNVEzNyAxMDMgNDkgOTFaIE0yODEgMTA0YTE3IDE3IDAgMSAwIC0zNCAwYTE3IDE3IDAgMSAwIDM0IDBaIi8+PC9nPgogIDxwYXRoIGZpbGw9IiNGNUY3RkEiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI3Mi4zMTczOTcxODQgMTM4LjQxMTU4MjIxMykgc2NhbGUoMC4xNDQ3Nzc2NjMgLTAuMTQ0Nzc3NjYzKSIgZD0iTTIyMCAtMTZRMTY2IC0xNiAxMjQuNSA1LjVRODMgMjcgNTkuMCA2Ni4wUTM1IDEwNSAzNSAxNTZRMzUgMjA5IDYyLjUgMjQ3LjBROTAgMjg1IDEzNi41IDMwNi4wUTE4MyAzMjcgMjQwIDMyN1EyNzEgMzI3IDI5Ni41IDMyMy41UTMyMiAzMjAgMzQyLjAgMzE1LjBRMzYyIDMxMCAzNzUgMzA0VjMyNlEzNzUgMzY3IDM0NC4wIDM5My41UTMxMyA0MjAgMjU5IDQyMFEyMjMgNDIwIDE4OS41IDQwMy41UTE1NiAzODcgMTM0IDM2MEw1MCA0MjZRNzUgNDU4IDEwOC4wIDQ4MC41UTE0MSA1MDMgMTgxLjAgNTE0LjVRMjIxIDUyNiAyNjUgNTI2UTM4MiA1MjYgNDQzLjAgNDcyLjBRNTA0IDQxOCA1MDQgMzE0VjBIMzc1VjUySDM2N1EzNTMgMzQgMzMyLjAgMTguNVEzMTEgMyAyODMuMCAtNi41UTI1NSAtMTYgMjIwIC0xNlpNMjUxIDg2UTI5MSA4NiAzMTguNSAxMDMuNVEzNDYgMTIxIDM2MC41IDE0OS4wUTM3NSAxNzcgMzc1IDIwOFEzNTMgMjE5IDMyNS4wIDIyNS41UTI5NyAyMzIgMjY4IDIzMlEyMTAgMjMyIDE4OC4wIDIxMC4wUTE2NiAxODggMTY2IDE1NlExNjYgMTI2IDE4Ny41IDEwNi4wUTIwOSA4NiAyNTEgODZaTTYyMyAwVjUxMEg3NTRWMFpNNjg5IDU2NlE2NTQgNTY2IDYyOS4wIDU5MS4wUTYwNCA2MTYgNjA0IDY1MVE2MDQgNjg2IDYyOS4wIDcxMC41UTY1NCA3MzUgNjg5IDczNVE3MjQgNzM1IDc0OC41IDcxMC41UTc3MyA2ODYgNzczIDY1MVE3NzMgNjE2IDc0OC41IDU5MS4wUTcyNCA1NjYgNjg5IDU2NlpNMTA3NiAzOThWNTEwSDExNzBWMzk4Wk0xMzM0IC04UTEyNTUgLTggMTIxMC4wIDM3LjVRMTE2NSA4MyAxMTY1IDE2M1Y2NTRIMTI5NlYxODdRMTI5NiAxNTAgMTMxMS4wIDEzMi41UTEzMjYgMTE1IDEzNjAgMTE1UTEzNzYgMTE1IDEzOTAuMCAxMTkuNVExNDA0IDEyNCAxNDI1IDEzN1Y5UTE0MDMgMSAxMzgwLjUgLTMuNVExMzU4IC04IDEzMzQgLThaTTEyOTEgMzk4VjUxMEgxNDIxVjM5OFpNMTY3NiAtMTZRMTYyMiAtMTYgMTU4MC41IDUuNVExNTM5IDI3IDE1MTUuMCA2Ni4wUTE0OTEgMTA1IDE0OTEgMTU2UTE0OTEgMjA5IDE1MTguNSAyNDcuMFExNTQ2IDI4NSAxNTkyLjUgMzA2LjBRMTYzOSAzMjcgMTY5NiAzMjdRMTcyNyAzMjcgMTc1Mi41IDMyMy41UTE3NzggMzIwIDE3OTguMCAzMTUuMFExODE4IDMxMCAxODMxIDMwNFYzMjZRMTgzMSAzNjcgMTgwMC4wIDM5My41UTE3NjkgNDIwIDE3MTUgNDIwUTE2NzkgNDIwIDE2NDUuNSA0MDMuNVExNjEyIDM4NyAxNTkwIDM2MEwxNTA2IDQyNlExNTMxIDQ1OCAxNTY0LjAgNDgwLjVRMTU5NyA1MDMgMTYzNy4wIDUxNC41UTE2NzcgNTI2IDE3MjEgNTI2UTE4MzggNTI2IDE4OTkuMCA0NzIuMFExOTYwIDQxOCAxOTYwIDMxNFYwSDE4MzFWNTJIMTgyM1ExODA5IDM0IDE3ODguMCAxOC41UTE3NjcgMyAxNzM5LjAgLTYuNVExNzExIC0xNiAxNjc2IC0xNlpNMTcwNyA4NlExNzQ3IDg2IDE3NzQuNSAxMDMuNVExODAyIDEyMSAxODE2LjUgMTQ5LjBRMTgzMSAxNzcgMTgzMSAyMDhRMTgwOSAyMTkgMTc4MS4wIDIyNS41UTE3NTMgMjMyIDE3MjQgMjMyUTE2NjYgMjMyIDE2NDQuMCAyMTAuMFExNjIyIDE4OCAxNjIyIDE1NlExNjIyIDEyNiAxNjQzLjUgMTA2LjBRMTY2NSA4NiAxNzA3IDg2Wk0yMzE0IC0yMzJRMjI0NSAtMjMyIDIxOTQuNSAtMjEwLjVRMjE0NCAtMTg5IDIxMTIuMCAtMTU1LjBRMjA4MCAtMTIxIDIwNjcgLTg0TDIxOTAgLTM0UTIyMDYgLTcxIDIyMzguNSAtOTMuNVEyMjcxIC0xMTYgMjMxNCAtMTE2UTIzNzUgLTExNiAyNDEyLjAgLTc4LjVRMjQ0OSAtNDEgMjQ0OSAzMFY3MEgyNDQxUTI0MTcgMzYgMjM3OC4wIDE4LjBRMjMzOSAwIDIyODkgMFEyMjI3IDAgMjE3Mi41IDMyLjBRMjExOCA2NCAyMDg0LjUgMTIzLjBRMjA1MSAxODIgMjA1MSAyNjNRMjA1MSAzNDUgMjA4NC41IDQwMy41UTIxMTggNDYyIDIxNzIuNSA0OTQuMFEyMjI3IDUyNiAyMjg5IDUyNlEyMzM5IDUyNiAyMzc4LjAgNTA4LjVRMjQxNyA0OTEgMjQ0MSA0NTZIMjQ0OVY1MTBIMjU3NVYzNVEyNTc1IC00NyAyNTQzLjAgLTEwNy4wUTI1MTEgLTE2NyAyNDUyLjUgLTE5OS41UTIzOTQgLTIzMiAyMzE0IC0yMzJaTTIzMTYgMTE5UTIzNTEgMTE5IDIzODEuNSAxMzUuNVEyNDEyIDE1MiAyNDMwLjUgMTg0LjVRMjQ0OSAyMTcgMjQ0OSAyNjNRMjQ0OSAzMTEgMjQzMC41IDM0My4wUTI0MTIgMzc1IDIzODEuNSAzOTEuMFEyMzUxIDQwNyAyMzE2IDQwN1EyMjgxIDQwNyAyMjUwLjAgMzkxLjBRMjIxOSAzNzUgMjIwMC41IDM0My4wUTIxODIgMzExIDIxODIgMjYzUTIxODIgMjE2IDIyMDAuNSAxODMuNVEyMjE5IDE1MSAyMjUwLjAgMTM1LjBRMjI4MSAxMTkgMjMxNiAxMTlaTTMxNTQgLTE2UTMwODQgLTE2IDMwMjguMCAxOC41UTI5NzIgNTMgMjkzOS41IDExNC4wUTI5MDcgMTc1IDI5MDcgMjU1UTI5MDcgMzM1IDI5MzkuNSAzOTYuMFEyOTcyIDQ1NyAzMDI4LjAgNDkxLjVRMzA4NCA1MjYgMzE1NCA1MjZRMzE5MSA1MjYgMzIyMS4wIDUxNS4wUTMyNTEgNTA0IDMyNzMuMCA0ODYuMFEzMjk1IDQ2OCAzMzA3IDQ0OEgzMzE1TDMzMDcgNTIwVjcxNkgzNDM3VjBIMzMxNVY2MUgzMzA3UTMyOTUgNDEgMzI3My4wIDIzLjVRMzI1MSA2IDMyMjEuMCAtNS4wUTMxOTEgLTE2IDMxNTQgLTE2Wk0zMTc2IDEwNVEzMjEzIDEwNSAzMjQ0LjUgMTI0LjBRMzI3NiAxNDMgMzI5NS41IDE3Ni41UTMzMTUgMjEwIDMzMTUgMjU1UTMzMTUgMzAwIDMyOTUuNSAzMzMuNVEzMjc2IDM2NyAzMjQ0LjUgMzg1LjVRMzIxMyA0MDQgMzE3NiA0MDRRMzE0MCA0MDQgMzEwOC41IDM4NS41UTMwNzcgMzY3IDMwNTcuNSAzMzQuMFEzMDM4IDMwMSAzMDM4IDI1NVEzMDM4IDIxMCAzMDU3LjUgMTc2LjBRMzA3NyAxNDIgMzEwOC41IDEyMy41UTMxNDAgMTA1IDMxNzYgMTA1Wk0zODAyIC0xNlEzNzI1IC0xNiAzNjY0LjUgMTkuMFEzNjA0IDU0IDM1NjkuNSAxMTUuMFEzNTM1IDE3NiAzNTM1IDI1NFEzNTM1IDMyNyAzNTY5LjAgMzg5LjBRMzYwMyA0NTEgMzY2Mi4wIDQ4OC41UTM3MjEgNTI2IDM3OTcgNTI2UTM4NzkgNTI2IDM5MzUuMCA0OTEuMFEzOTkxIDQ1NiA0MDIwLjAgMzk3LjVRNDA0OSAzMzkgNDA0OSAyNjhRNDA0OSAyNTIgNDA0OC4wIDI0MC41UTQwNDcgMjI5IDQwNDYgMjI0SDM2MDhWMzE3SDM5MjNRMzkyMiAzMzQgMzkxMy4wIDM1Mi4wUTM5MDQgMzcwIDM4ODguMCAzODUuMFEzODcyIDQwMCAzODQ5LjUgNDA5LjVRMzgyNyA0MTkgMzc5OCA0MTlRMzc2MCA0MTkgMzcyOC41IDM5OS4wUTM2OTcgMzc5IDM2NzkuMCAzNDMuNVEzNjYxIDMwOCAzNjYxIDI1OVEzNjYxIDIwOCAzNjgwLjAgMTcyLjVRMzY5OSAxMzcgMzczMS41IDExOC41UTM3NjQgMTAwIDM4MDQgMTAwUTM4NTEgMTAwIDM4ODMuMCAxMjAuNVEzOTE1IDE0MSAzOTMzIDE3Mkw0MDM5IDEyMFE0MDAzIDU3IDM5NDUuMCAyMC41UTM4ODcgLTE2IDM4MDIgLTE2Wk00NDMxIC0xNlE0Mzk0IC0xNiA0MzY0LjAgLTUuMFE0MzM0IDYgNDMxMi41IDIzLjVRNDI5MSA0MSA0Mjc4IDYxSDQyNzBWMEg0MTQ3VjcxNkg0Mjc4VjUyMEw0MjcwIDQ0OEg0Mjc4UTQyOTEgNDY4IDQzMTIuNSA0ODYuMFE0MzM0IDUwNCA0MzY0LjAgNTE1LjBRNDM5NCA1MjYgNDQzMSA1MjZRNDUwMSA1MjYgNDU1Ni41IDQ5MS41UTQ2MTIgNDU3IDQ2NDQuNSAzOTYuMFE0Njc3IDMzNSA0Njc3IDI1NVE0Njc3IDE3NSA0NjQ0LjUgMTE0LjBRNDYxMiA1MyA0NTU2LjUgMTguNVE0NTAxIC0xNiA0NDMxIC0xNlpNNDQwOCAxMDVRNDQ0NSAxMDUgNDQ3Ni41IDEyMy41UTQ1MDggMTQyIDQ1MjcuNSAxNzYuMFE0NTQ3IDIxMCA0NTQ3IDI1NVE0NTQ3IDMwMSA0NTI3LjUgMzM0LjBRNDUwOCAzNjcgNDQ3Ni41IDM4NS41UTQ0NDUgNDA0IDQ0MDggNDA0UTQzNzIgNDA0IDQzNDAuNSAzODUuNVE0MzA5IDM2NyA0Mjg5LjUgMzMzLjVRNDI3MCAzMDAgNDI3MCAyNTVRNDI3MCAyMTAgNDI4OS41IDE3Ni41UTQzMDkgMTQzIDQzNDAuNSAxMjQuMFE0MzcyIDEwNSA0NDA4IDEwNVpNNDk1OSAtMTZRNDg2NSAtMTYgNDgxOC4wIDQyLjBRNDc3MSAxMDAgNDc3MSAyMDBWNTEwSDQ5MDJWMjE2UTQ5MDIgMTY0IDQ5MjcuNSAxMzQuNVE0OTUzIDEwNSA0OTkzIDEwNVE1MDMyIDEwNSA1MDU5LjAgMTI0LjVRNTA4NiAxNDQgNTEwMC41IDE3Ny4wUTUxMTUgMjEwIDUxMTUgMjUwVjUxMEg1MjQ2VjBINTEyM1Y2NEg1MTE1UTUxMDAgNDAgNTA3Ni4wIDIyLjBRNTA1MiA0IDUwMjIuNSAtNi4wUTQ5OTMgLTE2IDQ5NTkgLTE2Wk01NjA3IC0yMzJRNTUzOCAtMjMyIDU0ODcuNSAtMjEwLjVRNTQzNyAtMTg5IDU0MDUuMCAtMTU1LjBRNTM3MyAtMTIxIDUzNjAgLTg0TDU0ODMgLTM0UTU0OTkgLTcxIDU1MzEuNSAtOTMuNVE1NTY0IC0xMTYgNTYwNyAtMTE2UTU2NjggLTExNiA1NzA1LjAgLTc4LjVRNTc0MiAtNDEgNTc0MiAzMFY3MEg1NzM0UTU3MTAgMzYgNTY3MS4wIDE4LjBRNTYzMiAwIDU1ODIgMFE1NTIwIDAgNTQ2NS41IDMyLjBRNTQxMSA2NCA1Mzc3LjUgMTIzLjBRNTM0NCAxODIgNTM0NCAyNjNRNTM0NCAzNDUgNTM3Ny41IDQwMy41UTU0MTEgNDYyIDU0NjUuNSA0OTQuMFE1NTIwIDUyNiA1NTgyIDUyNlE1NjMyIDUyNiA1NjcxLjAgNTA4LjVRNTcxMCA0OTEgNTczNCA0NTZINTc0MlY1MTBINTg2OFYzNVE1ODY4IC00NyA1ODM2LjAgLTEwNy4wUTU4MDQgLTE2NyA1NzQ1LjUgLTE5OS41UTU2ODcgLTIzMiA1NjA3IC0yMzJaTTU2MDkgMTE5UTU2NDQgMTE5IDU2NzQuNSAxMzUuNVE1NzA1IDE1MiA1NzIzLjUgMTg0LjVRNTc0MiAyMTcgNTc0MiAyNjNRNTc0MiAzMTEgNTcyMy41IDM0My4wUTU3MDUgMzc1IDU2NzQuNSAzOTEuMFE1NjQ0IDQwNyA1NjA5IDQwN1E1NTc0IDQwNyA1NTQzLjAgMzkxLjBRNTUxMiAzNzUgNTQ5My41IDM0My4wUTU0NzUgMzExIDU0NzUgMjYzUTU0NzUgMjE2IDU0OTMuNSAxODMuNVE1NTEyIDE1MSA1NTQzLjAgMTM1LjBRNTU3NCAxMTkgNTYwOSAxMTlaTTYyMjkgLTIzMlE2MTYwIC0yMzIgNjEwOS41IC0yMTAuNVE2MDU5IC0xODkgNjAyNy4wIC0xNTUuMFE1OTk1IC0xMjEgNTk4MiAtODRMNjEwNSAtMzRRNjEyMSAtNzEgNjE1My41IC05My41UTYxODYgLTExNiA2MjI5IC0xMTZRNjI5MCAtMTE2IDYzMjcuMCAtNzguNVE2MzY0IC00MSA2MzY0IDMwVjcwSDYzNTZRNjMzMiAzNiA2MjkzLjAgMTguMFE2MjU0IDAgNjIwNCAwUTYxNDIgMCA2MDg3LjUgMzIuMFE2MDMzIDY0IDU5OTkuNSAxMjMuMFE1OTY2IDE4MiA1OTY2IDI2M1E1OTY2IDM0NSA1OTk5LjUgNDAzLjVRNjAzMyA0NjIgNjA4Ny41IDQ5NC4wUTYxNDIgNTI2IDYyMDQgNTI2UTYyNTQgNTI2IDYyOTMuMCA1MDguNVE2MzMyIDQ5MSA2MzU2IDQ1Nkg2MzY0VjUxMEg2NDkwVjM1UTY0OTAgLTQ3IDY0NTguMCAtMTA3LjBRNjQyNiAtMTY3IDYzNjcuNSAtMTk5LjVRNjMwOSAtMjMyIDYyMjkgLTIzMlpNNjIzMSAxMTlRNjI2NiAxMTkgNjI5Ni41IDEzNS41UTYzMjcgMTUyIDYzNDUuNSAxODQuNVE2MzY0IDIxNyA2MzY0IDI2M1E2MzY0IDMxMSA2MzQ1LjUgMzQzLjBRNjMyNyAzNzUgNjI5Ni41IDM5MS4wUTYyNjYgNDA3IDYyMzEgNDA3UTYxOTYgNDA3IDYxNjUuMCAzOTEuMFE2MTM0IDM3NSA2MTE1LjUgMzQzLjBRNjA5NyAzMTEgNjA5NyAyNjNRNjA5NyAyMTYgNjExNS41IDE4My41UTYxMzQgMTUxIDYxNjUuMCAxMzUuMFE2MTk2IDExOSA2MjMxIDExOVpNNjg1NSAtMTZRNjc3OCAtMTYgNjcxNy41IDE5LjBRNjY1NyA1NCA2NjIyLjUgMTE1LjBRNjU4OCAxNzYgNjU4OCAyNTRRNjU4OCAzMjcgNjYyMi4wIDM4OS4wUTY2NTYgNDUxIDY3MTUuMCA0ODguNVE2Nzc0IDUyNiA2ODUwIDUyNlE2OTMyIDUyNiA2OTg4LjAgNDkxLjBRNzA0NCA0NTYgNzA3My4wIDM5Ny41UTcxMDIgMzM5IDcxMDIgMjY4UTcxMDIgMjUyIDcxMDEuMCAyNDAuNVE3MTAwIDIyOSA3MDk5IDIyNEg2NjYxVjMxN0g2OTc2UTY5NzUgMzM0IDY5NjYuMCAzNTIuMFE2OTU3IDM3MCA2OTQxLjAgMzg1LjBRNjkyNSA0MDAgNjkwMi41IDQwOS41UTY4ODAgNDE5IDY4NTEgNDE5UTY4MTMgNDE5IDY3ODEuNSAzOTkuMFE2NzUwIDM3OSA2NzMyLjAgMzQzLjVRNjcxNCAzMDggNjcxNCAyNTlRNjcxNCAyMDggNjczMy4wIDE3Mi41UTY3NTIgMTM3IDY3ODQuNSAxMTguNVE2ODE3IDEwMCA2ODU3IDEwMFE2OTA0IDEwMCA2OTM2LjAgMTIwLjVRNjk2OCAxNDEgNjk4NiAxNzJMNzA5MiAxMjBRNzA1NiA1NyA2OTk4LjAgMjAuNVE2OTQwIC0xNiA2ODU1IC0xNlpNNzIwMCAwVjUxMEg3MzIzVjQ0Mkg3MzMxUTczNDQgNDY2IDczNjUuNSA0ODQuNVE3Mzg3IDUwMyA3NDE2LjAgNTE0LjBRNzQ0NSA1MjUgNzQ3OCA1MjVRNzQ5OCA1MjUgNzUxNC4wIDUyMi4wUTc1MzAgNTE5IDc1NDIgNTE0VjM4M1E3NTIxIDM5MSA3NTAwLjUgMzk2LjVRNzQ4MCA0MDIgNzQ1NyA0MDJRNzQxOCA0MDIgNzM4OS41IDM4Mi41UTczNjEgMzYzIDczNDYuMCAzMjkuNVE3MzMxIDI5NiA3MzMxIDI1NFYwWiIvPgo8L2c+Cjwvc3ZnPg==",
12
- "atd-icon": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMzYiIGhlaWdodD0iMjI0IiB2aWV3Qm94PSItOCAtOCAzMzYgMjI0IiByb2xlPSJpbWciIGFyaWEtbGFiZWw9ImFpIHRhZyBkZWJ1Z2dlciBlbWJsZW0iPjx0aXRsZT5haSB0YWcgZGVidWdnZXIgZW1ibGVtIOKAlCBsaWdodDwvdGl0bGU+PHBhdGggZmlsbD0iI0Q5NTMxRSIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNDIgMEgyMjRRMjM3IDAgMjQ3IDEwTDMxMiA4OFEzMjggMTA0IDMxMiAxMjBMMjQ3IDE5OFEyMzcgMjA4IDIyNCAyMDhINDJRMCAyMDggMCAxNjZWNDJRMCAwIDQyIDBaIE00OSA5MVE2MSA3OSA3MyA5MUwxMDYgMTI0TDE4MCA1MFExOTIgMzggMjA0IDUwUTIxNiA2MiAyMDQgNzRMMTE4IDE2MFExMDYgMTcyIDk0IDE2MEw0OSAxMTVRMzcgMTAzIDQ5IDkxWiBNMjgxIDEwNGExNyAxNyAwIDEgMCAtMzQgMGExNyAxNyAwIDEgMCAzNCAwWiIgLz48L3N2Zz4=",
13
- "favicon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAE50lEQVR4nMRXa0xbVRz/3b64lLbAGI+WlQGCOBiODYMzi8SJAffFsKnDmS26mIAzPvHxyTi/+ZqPzMfIiJljLvrB6MSR6JYQSYxl06SIIhkLYQO6sgLLVgq0tL3Hc0/vbXtbKF2G7Jfcnse/5//4nf//3HM1iAJvMu/jCBoBbivHwYIVBCG4Qn97CYdTXrfzhDzPMcO8eb1Kh6N0WI9VATkjLKDZ63VeVjEvtNzJ1TPOLNZzWnwt9tS8MW+/iuNewCqD47gCtS5tVEONN+E2QbStAUFVKBOWhrXmaRRsa4YudS1NJsIeSC0REJ6LHkfkoXbG2YeR7oPwucciiqlttZY3fZDIuGXLHpQ1vAWVOpWNBUG0AKZYNCKwNjIvj0n0mEKjzwEJLGDGcS6inOMMmkTG15ZsR9nDbzPlRDIaYUA5JtFOLSonUGn0cTaWdMCYV4Hyxk+kiEg4EgUD0vhSz/uYnbyAnIpHkVnSEJKTGGYkJ5NyIMVkQWXTl+DUKcooZLrlPRZCSl0D30EI+JCSsR6ZxfVLMIDkHNDwJmzacwyalHS2MLK3ApOLSgW/Dw77CdoPILfySYT1xuYEEJMjZDkHOFTs+hx8ujUccdDvxfj5dvi9HqyraaGOmeB29mPcdpit4DOKEbFP4Jnoh3vcBj6zFCZrrRQ5iQSTyIGs0jqYLNWhKKU9dg12Yay3jfXVOgPy72kJ7a9sVFBGNfHXcbhHe6BNy4VxXW1M1SCxA/PXRiK1i1CbmlkUlvPphVK2QxG1rJjEBCgEBWXVLLcFc9PDGP/jGK39p8Ke67MrsWlvF4I0yfiMQqkkoxmIcgYkLCOSc9HnQlJJONJzCDpDPs3mB8Peaw1maKOyms8oRd6WZ2lfgD63CuaaVgTmXDCY72XVoOGzoDMWMAYUVbOIB5zeZImb5VRabNh1HGnZGxTZH5fdEs0iFtxOTNg/g+eKDZnZZvi8s5if9cJgrUNW+TP0EErDjZFOTPZ9lJiBkDE/hn46gLt2dkBnyg8bJ4rzXRoLQUwNfovpfztQ29iC6rpDMK7JZXomHcOwnW6H/cw+ZFe9EpewSzIgI8VkxZ2PfAU1Lb3Ys13OEb/HhdHuZrS88z2yzEVs/urlQej4NDouZP+9aP8V33z8OtKLH8P034eXZ0CG+OYa/uUl3LGjjb43NIozX2bDaf8UdbtfZMYHbF3obHsD857rbH1GjhVNrW0o3fwAqrbVof/82ZtjQIYx/z6sLd8rRS5luVRaznMH8WZHP60SP97dvxEL87OKtfklm9Hy3mlMUFa+aBUvXULyDMiYcdjYsxjMxRvF2w1uTDnijItwjQ2yNsdaRl/pqnDS3pQDiSAnlkq1uKpgMJhwvQq3CNfYBUZ/enY+1uQVxcnLqh8K/08IBlbeAVHpb6eOUAZUeLz1CC3BvLDMUlyJxuc+ZP1LA72Lrk8qCZcFzYEnXmtH+dYd8TJRu3TnFCvkz7MnFWK1Vmc4IN7NcIv45/dOeOdmGAPalFQseOcwOTaEIXs3Y0JE8d3304PpaGQrCLmqod710W4DVgDiqSc+sbg+NY7tu1+F42If/D5vREBtc3qjpZF2fsD/DFOWBe5rTuWtiGAn2x29yfwzdWdFWEgW9CD7cX7G2ciqIEC4l6ljPqwS6CHuQcD3vNhXfBPdjs/z/wAAAP//hkxTugAAAAZJREFUAwAgrRNzbxNrdwAAAABJRU5ErkJggg==",
18
+ "favicon-light": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiByb2xlPSJpbWciIGFyaWEtbGFiZWxsZWRieT0idCI+PHRpdGxlIGlkPSJ0Ij5haTwvdGl0bGU+PGRlc2M+RmF2aWNvbiAxNnB4OiBtYXJrIG9ubHksIHN0ZW0gM3B4IG9uIHRoZSBwaXhlbCBncmlkLjwvZGVzYz48cmVjdCB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9IiNGM0YwRTgiLz48cGF0aCBmaWxsPSIjMTcxNDBGIiBkPSJNNS4yIDE1LjIzUTQuMzMgMTUuMjMgMy41NiAxNC45M1EyLjc5IDE0LjY0IDIuMzEgMTQuMDJRMS44MyAxMy40MSAxLjgzIDEyLjQzUTEuODMgMTEuMzcgMi40NCAxMC42OFEzLjA1IDkuOTkgNC4xNyA5LjY1UTUuMjkgOS4zMSA2LjgyIDkuMzFIOC4wMkw3Ljg3IDkuNThWOS4wM1E3Ljg3IDguMiA3LjU4IDcuODFRNy4yOSA3LjQzIDYuNjMgNy40M1E1Ljk5IDcuNDMgNS42NiA3Ljc3UTUuMzMgOC4xMSA1LjIyIDguNzdMMi4yMyA4LjI5UTIuNCA3LjUxIDIuOTMgNi44OFEzLjQ2IDYuMjYgNC40MSA1Ljg5UTUuMzYgNS41MiA2LjggNS41MlE4LjA2IDUuNTIgOC45NiA1LjlROS44NiA2LjI4IDEwLjM1IDcuMThRMTAuODMgOC4wOSAxMC44MyA5LjY4VjEyLjM5UTEwLjgzIDEyLjY3IDEwLjkxIDEyLjc3UTEwLjk5IDEyLjg2IDEwLjkyIDEyLjg2SDExLjE4VjE1SDEwLjNROS4xNCAxNSA4LjU3IDE0LjQ0UTcuOTkgMTMuODggNy45OSAxMi44VjEyLjQ1TDguNTQgMTIuNjlROC40MyAxMy4wNiA4LjIzIDEzLjQ5UTguMDMgMTMuOTMgNy42NyAxNC4zMlE3LjMgMTQuNzIgNi43IDE0Ljk3UTYuMSAxNS4yMyA1LjIgMTUuMjNaTTYuMDkgMTMuMjdRNi42NSAxMy4yNyA3LjA1IDEzLjAyUTcuNDUgMTIuNzggNy42NyAxMi4zMVE3Ljg5IDExLjg0IDcuODkgMTEuMTdWMTAuOTJINi45N1E2LjE1IDEwLjkyIDUuNjkgMTEuMTRRNS4yNCAxMS4zNSA1LjA3IDExLjY2UTQuODkgMTEuOTYgNC44OSAxMi4yNVE0Ljg5IDEyLjQ0IDQuOTggMTIuNjhRNS4wNyAxMi45MiA1LjMzIDEzLjA5UTUuNTkgMTMuMjcgNi4wOSAxMy4yN1pNMTIgMTUgMTUgMTUgMTUgNi4xIDEyIDUuNjJaIi8+PHBhdGggZmlsbD0iI0MxMkQzMCIgZD0iTTE1LjU4IDEuOThDMTUuOTMgMy4wOCAxNS41NSA0LjA4IDE0LjM4IDQuMzdDMTMuMjggNC42NSAxMi4yNiA0LjQxIDExLjkxIDMuMzhDMTEuNTggMi40NiAxMi4wOCAxLjMgMTMuMTIgMC45OEMxNC4xMyAwLjY3IDE1LjIzIDAuODkgMTUuNTggMS45OFoiLz48L3N2Zz4K",
19
+ "favicon-dark": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiByb2xlPSJpbWciIGFyaWEtbGFiZWxsZWRieT0idCI+PHRpdGxlIGlkPSJ0Ij5haTwvdGl0bGU+PGRlc2M+RmF2aWNvbiAxNnB4OiBtYXJrIG9ubHksIHN0ZW0gM3B4IG9uIHRoZSBwaXhlbCBncmlkLjwvZGVzYz48cmVjdCB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9IiMxNTEzMTAiLz48cGF0aCBmaWxsPSIjRjFFQ0UyIiBkPSJNNS4yIDE1LjIzUTQuMzMgMTUuMjMgMy41NiAxNC45M1EyLjc5IDE0LjY0IDIuMzEgMTQuMDJRMS44MyAxMy40MSAxLjgzIDEyLjQzUTEuODMgMTEuMzcgMi40NCAxMC42OFEzLjA1IDkuOTkgNC4xNyA5LjY1UTUuMjkgOS4zMSA2LjgyIDkuMzFIOC4wMkw3Ljg3IDkuNThWOS4wM1E3Ljg3IDguMiA3LjU4IDcuODFRNy4yOSA3LjQzIDYuNjMgNy40M1E1Ljk5IDcuNDMgNS42NiA3Ljc3UTUuMzMgOC4xMSA1LjIyIDguNzdMMi4yMyA4LjI5UTIuNCA3LjUxIDIuOTMgNi44OFEzLjQ2IDYuMjYgNC40MSA1Ljg5UTUuMzYgNS41MiA2LjggNS41MlE4LjA2IDUuNTIgOC45NiA1LjlROS44NiA2LjI4IDEwLjM1IDcuMThRMTAuODMgOC4wOSAxMC44MyA5LjY4VjEyLjM5UTEwLjgzIDEyLjY3IDEwLjkxIDEyLjc3UTEwLjk5IDEyLjg2IDEwLjkyIDEyLjg2SDExLjE4VjE1SDEwLjNROS4xNCAxNSA4LjU3IDE0LjQ0UTcuOTkgMTMuODggNy45OSAxMi44VjEyLjQ1TDguNTQgMTIuNjlROC40MyAxMy4wNiA4LjIzIDEzLjQ5UTguMDMgMTMuOTMgNy42NyAxNC4zMlE3LjMgMTQuNzIgNi43IDE0Ljk3UTYuMSAxNS4yMyA1LjIgMTUuMjNaTTYuMDkgMTMuMjdRNi42NSAxMy4yNyA3LjA1IDEzLjAyUTcuNDUgMTIuNzggNy42NyAxMi4zMVE3Ljg5IDExLjg0IDcuODkgMTEuMTdWMTAuOTJINi45N1E2LjE1IDEwLjkyIDUuNjkgMTEuMTRRNS4yNCAxMS4zNSA1LjA3IDExLjY2UTQuODkgMTEuOTYgNC44OSAxMi4yNVE0Ljg5IDEyLjQ0IDQuOTggMTIuNjhRNS4wNyAxMi45MiA1LjMzIDEzLjA5UTUuNTkgMTMuMjcgNi4wOSAxMy4yN1pNMTIgMTUgMTUgMTUgMTUgNi4xIDEyIDUuNjJaIi8+PHBhdGggZmlsbD0iI0ZBNkI2RCIgZD0iTTE1LjU4IDEuOThDMTUuOTMgMy4wOCAxNS41NSA0LjA4IDE0LjM4IDQuMzdDMTMuMjggNC42NSAxMi4yNiA0LjQxIDExLjkxIDMuMzhDMTEuNTggMi40NiAxMi4wOCAxLjMgMTMuMTIgMC45OEMxNC4xMyAwLjY3IDE1LjIzIDAuODkgMTUuNTggMS45OFoiLz48L3N2Zz4K",
14
20
  };
package/src/browser.js CHANGED
@@ -357,12 +357,23 @@ const NAVIGATION_RETRY_MS = 2000;
357
357
  // a lookup or the server took too long. Blocked, refused-by-proxy, certificate and protocol errors are not here.
358
358
  const TRANSIENT_NET_ERRORS = /net::ERR_(CONNECTION_(RESET|CLOSED|ABORTED|REFUSED|TIMED_OUT)|TIMED_OUT|NETWORK_CHANGED|NAME_NOT_RESOLVED|NAME_RESOLUTION_FAILED|DNS_TIMED_OUT|INTERNET_DISCONNECTED|ADDRESS_UNREACHABLE|EMPTY_RESPONSE|SOCKET_NOT_CONNECTED|HTTP2_(PROTOCOL|SERVER_REFUSED_STREAM|PING_FAILED)|NETWORK_IO_SUSPENDED|SPDY_PROTOCOL_ERROR|QUIC_PROTOCOL_ERROR)\b/;
359
359
 
360
- /** The net::ERR_* code or "timeout" from a Playwright navigation error, for the log line. */
361
- const navigationErrorCode = (err) => String(err?.message ?? err).match(/net::ERR_[A-Z0-9_]+/)?.[0] ?? (err?.name === "TimeoutError" || /Timeout \d+ms exceeded/.test(String(err?.message)) ? "timeout" : "error");
360
+ // goto's error when Chromium committed its error page before goto heard why the load failed. It has no
361
+ // net::ERR_* code; the failed document request does. Other interruptions say nothing about the network.
362
+ const ERROR_PAGE_INTERRUPTION = /interrupted by another navigation to "chrome-error:/;
363
+
364
+ /**
365
+ * The net::ERR_* code or "timeout" from a Playwright navigation error, for the log line. failedLoad is the
366
+ * error text of the main frame's failed document request, which counts when an error page cut goto short.
367
+ */
368
+ function navigationErrorCode(err, failedLoad) {
369
+ const message = String(err?.message ?? err);
370
+ if (ERROR_PAGE_INTERRUPTION.test(message)) return failedLoad?.match(/net::ERR_[A-Z0-9_]+/)?.[0] ?? "error";
371
+ return message.match(/net::ERR_[A-Z0-9_]+/)?.[0] ?? (err?.name === "TimeoutError" || /Timeout \d+ms exceeded/.test(message) ? "timeout" : "error");
372
+ }
362
373
 
363
374
  /** True when a failed navigation is worth one more try: a transient network error or a timeout. */
364
- export function isTransientNavigationError(err) {
365
- const code = navigationErrorCode(err);
375
+ export function isTransientNavigationError(err, failedLoad) {
376
+ const code = navigationErrorCode(err, failedLoad);
366
377
  return code === "timeout" || TRANSIENT_NET_ERRORS.test(code);
367
378
  }
368
379
 
@@ -404,6 +415,8 @@ export class AuditSession {
404
415
  this.skipped = {}; // step index -> { vendor label: requests }
405
416
  this.loadedIn = new Map(); // page address -> the last step whose main-frame navigation reached it
406
417
  this.leaving = null; // the page address being navigated away from, until the next page commits
418
+ this.failedLoad = null; // the error text of the main frame's last failed document request in navigate()
419
+ this.errorPageShown = false; // whether Chromium's error page committed in the main frame since navigate() began
407
420
  this.bodyBytes = 0;
408
421
  this.bodyBudgetStep = null; // the step at which POST bodies stopped being stored
409
422
  this.startedAt = Date.now();
@@ -442,6 +455,7 @@ export class AuditSession {
442
455
  this.page.on("pageerror", (err) => this.errors.push({ step: this.currentStep, message: err.message }));
443
456
  this.page.on("framenavigated", (frame) => {
444
457
  if (frame !== this.page.mainFrame()) return;
458
+ if (frame.url().startsWith("chrome-error:")) this.errorPageShown = true;
445
459
  this.loadedIn.set(pageKey(frame.url()), this.currentStep);
446
460
  this.leaving = null;
447
461
  // Script redirects on the first page move where it ends up.
@@ -449,7 +463,10 @@ export class AuditSession {
449
463
  });
450
464
  // From the moment the main frame starts loading another document, the open page is leaving.
451
465
  this.page.on("request", (request) => {
452
- if (request.isNavigationRequest() && request.frame() === this.page.mainFrame()) this.leaving = pageKey(this.page.url());
466
+ if (this.isPageLoad(request)) this.leaving = pageKey(this.page.url());
467
+ });
468
+ this.page.on("requestfailed", (request) => {
469
+ if (this.isPageLoad(request)) this.failedLoad = request.failure()?.errorText ?? null;
453
470
  });
454
471
 
455
472
  const onRequest = (request) => {
@@ -659,17 +676,36 @@ export class AuditSession {
659
676
  */
660
677
  async navigate(url) {
661
678
  const options = { waitUntil: "domcontentloaded", timeout: 30000 };
679
+ this.failedLoad = null;
680
+ this.errorPageShown = false;
662
681
  try {
663
682
  return await this.page.goto(url, options);
664
683
  } catch (err) {
665
- if (this.blocked?.step === this.currentStep || !isTransientNavigationError(err)) throw err;
684
+ if (this.blocked?.step === this.currentStep) throw err;
685
+ // When the error page cut goto short, the failed request can be reported just after goto rejects.
686
+ if (!this.failedLoad && ERROR_PAGE_INTERRUPTION.test(err?.message)) {
687
+ await this.page.waitForEvent("requestfailed", { predicate: (request) => this.isPageLoad(request), timeout: 1000 }).catch(() => {});
688
+ }
689
+ if (!isTransientNavigationError(err, this.failedLoad)) throw err;
690
+ const code = navigationErrorCode(err, this.failedLoad);
666
691
  const delay = this.opts.navigationRetryMs ?? NAVIGATION_RETRY_MS;
667
- this.log(` Opening ${url} failed (${navigationErrorCode(err)}); trying once more in ${Math.round(delay / 1000)}s`);
668
- await new Promise((resolve) => setTimeout(resolve, delay));
692
+ this.log(` Opening ${url} failed (${code}); trying once more in ${Math.round(delay / 1000)}s`);
693
+ // Chromium can commit the error page for the failed load well after goto has given up. A retry begun
694
+ // before that is interrupted by it, so the retry waits for it. A load that timed out gets no error page.
695
+ const errorPage = code === "timeout" || this.errorPageShown ? null : this.page.waitForEvent("framenavigated", {
696
+ predicate: (frame) => frame === this.page.mainFrame() && frame.url().startsWith("chrome-error:"),
697
+ timeout: 5000,
698
+ }).catch(() => {});
699
+ await Promise.all([new Promise((resolve) => setTimeout(resolve, delay)), errorPage]);
669
700
  return this.page.goto(url, options);
670
701
  }
671
702
  }
672
703
 
704
+ /** Whether a request loads a new document into the main frame. */
705
+ isPageLoad(request) {
706
+ return request.isNavigationRequest() && request.frame() === this.page.mainFrame();
707
+ }
708
+
673
709
  /** Error message when the browser may not be on this URL, or null. */
674
710
  checkUrl(url) {
675
711
  if (url.startsWith("chrome-error:")) return null; // Chromium's own error page, e.g. after a blocked navigation