@analitikisler/ai-tag-debugger 0.11.2 → 0.12.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 +16 -0
- package/README.md +13 -2
- package/README.tr.md +13 -2
- package/package.json +1 -1
- package/src/audit.js +7 -6
- package/src/brand.js +3 -3
- package/src/checks.js +7 -3
- package/src/help.js +3 -2
- package/src/i18n.js +36 -2
- package/src/providers.js +43 -2
- package/src/report.js +66 -24
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.12.0 (2026-10-16)
|
|
4
|
+
|
|
5
|
+
- The HTML report uses the Analitik İşler design system and the new ai tag debugger logo. The large title is now a compact `Site: example.com` line.
|
|
6
|
+
- Overview has a "This run" card: platforms checked, AI provider and model (or off), plan, journeys, viewports, language and version.
|
|
7
|
+
- Platforms show their icons instead of colored squares, in findings, events, steps and tables.
|
|
8
|
+
- Each journey opens with a Consent card: the Consent Mode default and every update, one tile per signal, granted or denied.
|
|
9
|
+
- Fix: no "not in the measurement plan" finding when no plan is attached.
|
|
10
|
+
- Fix: the server-side note only mentions Meta and TikTok when they were checked.
|
|
11
|
+
- Fix: no "Run without --no-ai" text on AI runs or on info findings.
|
|
12
|
+
- Fix: switching tabs no longer shifts the page sideways.
|
|
13
|
+
|
|
14
|
+
## 0.11.3 (2026-10-16)
|
|
15
|
+
|
|
16
|
+
- `aitd` and `aitd --help` end with the AI a run would use: `AI: anthropic (claude-opus-5-5) via Cloudflare AI Gateway · also set: gemini (pick with --provider)`, or `AI: no key set`. The first line of a run names the other keys too.
|
|
17
|
+
- Vercel AI Gateway: set `AI_GATEWAY_API_KEY` and pick any model it offers with `--model <provider>/<model>`, e.g. `google/gemini-3.6-flash`. The default is `anthropic/claude-opus-5.5`.
|
|
18
|
+
|
|
3
19
|
## 0.11.2 (2026-10-16)
|
|
4
20
|
|
|
5
21
|
- Fix sentence requests (`aitd "check my GA tags"`) failing with a 400 "Invalid schema" error from the Anthropic API. The request schema now writes optional values in a form Anthropic, OpenAI and Gemini all accept.
|
package/README.md
CHANGED
|
@@ -99,6 +99,17 @@ ai-tag-debugger run --site https://yourshop.com --journey add_to_cart \
|
|
|
99
99
|
|
|
100
100
|
Use the model id from your provider's documentation. You can also set `OPENAI_COMPATIBLE_BASE_URL` and `OPENAI_COMPATIBLE_MODEL` instead of the flags, or `"provider"`, `"base_url"` and `"model"` in the config. When the API can't return strict JSON schemas, the explanations fall back to plain JSON mode.
|
|
101
101
|
|
|
102
|
+
### Vercel AI Gateway
|
|
103
|
+
|
|
104
|
+
One key for many models. Set `AI_GATEWAY_API_KEY` from your Vercel dashboard and pick a model as `<provider>/<model>`:
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
export AI_GATEWAY_API_KEY=...
|
|
108
|
+
aitd run --site https://yourshop.com --journey purchase --model google/gemini-3.6-flash
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Without `--model` it uses `anthropic/claude-opus-5.5`. Usage and costs show in Vercel's AI Gateway dashboard and are billed by Vercel. To see which AI a run will use, run `aitd`: the last line says, for example, `AI: vercel (anthropic/claude-opus-5.5) · also set: anthropic (pick with --provider)`.
|
|
112
|
+
|
|
102
113
|
### Cloudflare AI Gateway
|
|
103
114
|
|
|
104
115
|
To see logs, costs and rate limits for every AI call, send them through [Cloudflare AI Gateway](https://developers.cloudflare.com/ai-gateway/). Your provider key stays the same:
|
|
@@ -431,9 +442,9 @@ The exit code is `1` when findings reach `--fail-on` (default `broken`), so it c
|
|
|
431
442
|
Output:
|
|
432
443
|
|
|
433
444
|
- `report.html`: one file with four tabs. Links work across tabs (a finding's "Where" chip opens that step), and every view has its own URL you can bookmark or share.
|
|
434
|
-
- **Overview**: problem counts, the AI summary (most important problem first, plus things worth checking that the findings don't cover), the journeys with their problem counts,
|
|
445
|
+
- **Overview**: problem counts, the AI summary (most important problem first, plus things worth checking that the findings don't cover), the journeys with their problem counts, a **This run** card (platforms, AI provider and model, plan, journeys, viewports, language, version), and, with `--against`, the [Plan vs. site](#plan-vs-site) coverage.
|
|
435
446
|
- **Findings**: grouped by severity and filterable. Each one has its impact, likely cause, evidence, numbered fix steps and the steps where it happened.
|
|
436
|
-
- **Journeys**: one journey at a time,
|
|
447
|
+
- **Journeys**: one journey at a time. A **Consent** card at the top lists the Consent Mode default and every update, one tile per signal. Below it are the steps on the left and the selected step on the right. It opens on the first step with a problem. Each step has three tabs:
|
|
437
448
|
- **Events**: each tracking hit with its parameters, consent state, the dataLayer push and request behind it, and a note when a finding points at it.
|
|
438
449
|
- **dataLayer**: every push in the step.
|
|
439
450
|
- **Network requests**: every request to the chosen platforms, decoded into a parameter table with a `?` tip on each parameter. A batched GA4 request shows each of its events.
|
package/README.tr.md
CHANGED
|
@@ -99,6 +99,17 @@ ai-tag-debugger run --site https://yourshop.com --journey add_to_cart \
|
|
|
99
99
|
|
|
100
100
|
Model kimliğini sağlayıcınızın dokümantasyonundan alın. Bayrakların yerine `OPENAI_COMPATIBLE_BASE_URL` ve `OPENAI_COMPATIBLE_MODEL` değişkenlerini ya da ayar dosyasında `"provider"`, `"base_url"` ve `"model"` alanlarını da kullanabilirsiniz. API katı JSON şemalarını döndüremezse açıklamalar düz JSON moduna geçer.
|
|
101
101
|
|
|
102
|
+
### Vercel AI Gateway
|
|
103
|
+
|
|
104
|
+
Tek anahtarla birçok model. Vercel panelinizden `AI_GATEWAY_API_KEY` alın ve modeli `<sağlayıcı>/<model>` olarak seçin:
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
export AI_GATEWAY_API_KEY=...
|
|
108
|
+
aitd run --site https://yourshop.com --journey purchase --model google/gemini-3.6-flash
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
`--model` verilmezse `anthropic/claude-opus-5.5` kullanılır. Kullanım ve maliyet Vercel'in AI Gateway panelinde görünür ve Vercel tarafından faturalandırılır. Hangi yapay zekânın kullanılacağını görmek için `aitd` çalıştırın: son satır örneğin `AI: vercel (anthropic/claude-opus-5.5) · also set: anthropic (pick with --provider)` der.
|
|
112
|
+
|
|
102
113
|
### Cloudflare AI Gateway
|
|
103
114
|
|
|
104
115
|
Her AI çağrısının kayıtlarını, maliyetini ve limitlerini görmek için çağrıları [Cloudflare AI Gateway](https://developers.cloudflare.com/ai-gateway/) üzerinden gönderin. Sağlayıcı anahtarınız aynı kalır:
|
|
@@ -431,9 +442,9 @@ aitd mcp [--http] [--port <n>] [--host <adres>] [--token <gizli>] [--public-url
|
|
|
431
442
|
Çıktı:
|
|
432
443
|
|
|
433
444
|
- `report.html`: dört sekmeli tek bir dosya. Bağlantılar sekmeler arasında çalışır (bir bulgunun "Nerede" çipi o adımı açar) ve her görünümün paylaşılabilir ya da yer imine eklenebilir kendi URL'si vardır.
|
|
434
|
-
- **Genel bakış**: sorun sayıları, yapay zekâ özeti (en önemli sorun önce, ve bulguların kapsamadığı kontrol edilmeye değer şeyler), yolculuklar ve sorun sayıları,
|
|
445
|
+
- **Genel bakış**: sorun sayıları, yapay zekâ özeti (en önemli sorun önce, ve bulguların kapsamadığı kontrol edilmeye değer şeyler), yolculuklar ve sorun sayıları, bir **Bu çalıştırma** kartı (platformlar, yapay zekâ sağlayıcısı ve modeli, plan, yolculuklar, ekranlar, dil, sürüm) ve `--against` ile [Plan ve site](#plan-ve-site) kapsamı.
|
|
435
446
|
- **Bulgular**: önem düzeyine göre gruplu ve filtrelenebilir. Her birinde etkisi, olası nedeni, kanıtı, numaralı düzeltme adımları ve olayın yaşandığı adımlar bulunur.
|
|
436
|
-
- **Yolculuklar**: her seferinde bir yolculuk
|
|
447
|
+
- **Yolculuklar**: her seferinde bir yolculuk. Üstteki **Onay** kartı Consent Mode varsayılanını ve her güncellemeyi, sinyal başına bir kutuyla gösterir. Altında solda adımları, sağda seçili adım. Sorunlu ilk adımda açılır. Her adımın üç sekmesi vardır:
|
|
437
448
|
- **Event'ler**: her takip isteği, parametreleri, çerez onayı durumu, arkasındaki dataLayer gönderimi ve isteği ve bir bulgu buraya işaret ediyorsa bir not.
|
|
438
449
|
- **dataLayer**: adımdaki her gönderim.
|
|
439
450
|
- **Ağ istekleri**: seçilen platformlara giden her istek; her parametrede bir `?` ipucuyla bir parametre tablosuna çözülmüş. Toplu bir GA4 isteği, içindeki her event'i gösterir.
|
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.
|
|
4
|
+
"version": "0.12.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": {
|
package/src/audit.js
CHANGED
|
@@ -9,7 +9,7 @@ import { VIEWPORTS } from "./browser.js";
|
|
|
9
9
|
import { checkRun, groupFindings, planCheck, summarize } from "./checks.js";
|
|
10
10
|
import { explainFindings, renderCsv, renderHtml, renderMarkdown } from "./report.js";
|
|
11
11
|
import { LANGUAGES, messages } from "./i18n.js";
|
|
12
|
-
import { createProvider } from "./providers.js";
|
|
12
|
+
import { createProvider, alsoSet } from "./providers.js";
|
|
13
13
|
import { filterFindings, JOURNEY_PRESETS, planRun } from "./journeys.js";
|
|
14
14
|
import { resolveProviders } from "./parsers.js";
|
|
15
15
|
import { SAVED_SITE_FILE, writeSavedSite } from "./replay.js";
|
|
@@ -40,13 +40,14 @@ export async function loadConfig(configFile) {
|
|
|
40
40
|
* previous: the site's last saved run (see previousRun), null when there is none, or undefined to skip
|
|
41
41
|
* the "Changed since last run" section.
|
|
42
42
|
*/
|
|
43
|
-
export async function writeReports({ outDir, config, plan, runs, findings, explained, lang, against = null, branding = config.branding !== false, previous = undefined }) {
|
|
43
|
+
export async function writeReports({ outDir, config, plan, runs, findings, explained, lang, ai = null, against = null, branding = config.branding !== false, previous = undefined }) {
|
|
44
44
|
await mkdir(outDir, { recursive: true });
|
|
45
|
-
const
|
|
45
|
+
const site = new URL(config.site).hostname;
|
|
46
|
+
const title = messages(lang).ui.title(site);
|
|
46
47
|
const generatedAt = new Date().toISOString().slice(0, 16).replace("T", " ") + " UTC";
|
|
47
48
|
const check = against ? { plan_id: against.id ?? null, ...planCheck(plan, runs, findings) } : null;
|
|
48
49
|
const changes = previous === undefined ? null : compareRuns(previous, { findings, planCheck: check });
|
|
49
|
-
const report = { title, generatedAt, findings, explained, runs, plan, lang, branding, against: against?.label ?? null, planCheck: check, changes };
|
|
50
|
+
const report = { title, site, ai, generatedAt, findings, explained, runs, plan, lang, branding, against: against?.label ?? null, planCheck: check, changes };
|
|
50
51
|
await writeFile(path.join(outDir, "report.md"), renderMarkdown(report));
|
|
51
52
|
await writeFile(path.join(outDir, "report.html"), renderHtml(report));
|
|
52
53
|
await writeFile(path.join(outDir, "timeline.csv"), renderCsv(report));
|
|
@@ -102,7 +103,7 @@ export async function runAudit(opts) {
|
|
|
102
103
|
}
|
|
103
104
|
|
|
104
105
|
const provider = useAi ? await createProvider({ name: opts.provider ?? config.provider, model: opts.model ?? config.model, baseUrl: opts.baseUrl ?? config.base_url }) : null;
|
|
105
|
-
if (provider) log(`Using ${provider.name} (${provider.model})${provider.via ? ` via ${provider.via}` : ""}`);
|
|
106
|
+
if (provider) log(`Using ${provider.name} (${provider.model})${provider.via ? ` via ${provider.via}` : ""}${alsoSet(provider.key)}`);
|
|
106
107
|
|
|
107
108
|
if (opts.saveSite) await mkdir(opts.saveSite, { recursive: true });
|
|
108
109
|
const runs = [];
|
|
@@ -139,7 +140,7 @@ export async function runAudit(opts) {
|
|
|
139
140
|
// Runs saved in the site's runs folder are compared with the one before; a run sent to --out is not.
|
|
140
141
|
const previous = opts.outDir ? undefined : await previousRun(opts.dataDir, config.site);
|
|
141
142
|
const outDir = path.resolve(opts.outDir ?? (await newRunDir(opts.dataDir, config.site)).dir);
|
|
142
|
-
const reportPath = await writeReports({ outDir, config, plan, runs, findings, explained, lang, against, branding: opts.branding ?? config.branding !== false, previous });
|
|
143
|
+
const reportPath = await writeReports({ outDir, config, plan, runs, findings, explained, lang, ai: provider ? { name: provider.name, model: provider.model } : null, against, branding: opts.branding ?? config.branding !== false, previous });
|
|
143
144
|
const counts = summarize(groupFindings(findings));
|
|
144
145
|
return { journeys, plan, runs, findings, explained, counts, reportPath, outDir, lang, ...(against ? { againstId: against.id } : {}), ...(saveError ? { saveError } : {}) };
|
|
145
146
|
}
|
package/src/brand.js
CHANGED
|
@@ -7,8 +7,8 @@ export const LOGOS = {
|
|
|
7
7
|
"stacked-dark": "data:image/webp;base64,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",
|
|
8
8
|
"horizontal-light": "data:image/webp;base64,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",
|
|
9
9
|
"horizontal-dark": "data:image/webp;base64,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",
|
|
10
|
-
"atd-lockup-light": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMDcuMDQgNTIiIHJvbGU9ImltZyIgYXJpYS1sYWJlbD0iYWkgdGFnIGRlYnVnZ2VyIj48dGl0bGU+YWkgdGFnIGRlYnVnZ2VyPC90aXRsZT48ZyB0cmFuc2Zvcm09InNjYWxlKDEuNjIpIj48ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9Im0xZGciIHgxPSIwIiB5MT0iMCIgeDI9IjEiIHkyPSIxIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiM0RjhFRjciLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMyQjVCRDciLz48L2xpbmVhckdyYWRpZW50PjxtYXNrIGlkPSJtMWRpIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSItOCIgeT0iLTgiIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PHJlY3QgeD0iLTgiIHk9Ii04IiB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIGZpbGw9IiNmZmYiLz48Y2lyY2xlIGN4PSI4LjYiIGN5PSIxMiIgcj0iMS45IiBmaWxsPSIjMDAwIi8+PHJlY3QgeD0iMTMuMiIgeT0iOS4wIiB3aWR0aD0iMy4yIiBoZWlnaHQ9IjYuNCIgcng9Ii42IiBmaWxsPSIjMDAwIi8+PHJlY3QgeD0iMTcuMyIgeT0iNi40IiB3aWR0aD0iMy4yIiBoZWlnaHQ9IjkiIHJ4PSIuNiIgZmlsbD0iIzAwMCIvPjxyZWN0IHg9IjIxLjQiIHk9IjEwLjQiIHdpZHRoPSIzLjIiIGhlaWdodD0iNSIgcng9Ii42IiBmaWxsPSIjMDAwIi8+PC9tYXNrPjxtYXNrIGlkPSJtMWRvIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSItOCIgeT0iLTgiIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PHJlY3QgeD0iLTgiIHk9Ii04IiB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIGZpbGw9IiNmZmYiLz48Y2lyY2xlIGN4PSIyMy40IiBjeT0iMjMuNCIgcj0iNy42IiBmaWxsPSIjMDAwIi8+PHBhdGggZD0iTTI3LjIgMjcuMkwzMC40IDMwLjQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLXdpZHRoPSI3LjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjwvbWFzaz48L2RlZnM+PGcgbWFzaz0idXJsKCNtMWRvKSI+PGcgdHJhbnNmb3JtPSIiPjxnIG1hc2s9InVybCgjbTFkaSkiPjxwb2x5Z29uIHBvaW50cz0iMi42LDEyIDkuNCw0LjIgMjguNCw0LjIgMjguNCwxOS44IDkuNCwxOS44IiBmaWxsPSJ1cmwoI20xZGcpIiBzdHJva2U9InVybCgjbTFkZykiIHN0cm9rZS13aWR0aD0iNC4yIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+PC9nPjwvZz48L2c+PGNpcmNsZSBjeD0iMjMuNCIgY3k9IjIzLjQiIHI9IjUuMiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjOENCQkZGIiBzdHJva2Utd2lkdGg9IjIuNiIvPjxwYXRoIGQ9Ik0yNy43OTk5OTk5OTk5OTk5OTcgMjcuNzk5OTk5OTk5OTk5OTk3TDI5LjQgMjkuNCIgc3Ryb2tlPSIjOENCQkZGIiBzdHJva2Utd2lkdGg9IjMuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PC9nPjxwYXRoIGQ9Ik02OS42MTYgMzcuNTQ0UTY3LjcxMiAzNy41NDQgNjYuMjgzOTk5OTk5OTk5OTkgMzYuNzk2UTY0Ljg1NiAzNi4wNDggNjQuMDIzIDM0LjczOTAwMDAwMDAwMDAwNFE2My4xOSAzMy40MyA2My4xOSAzMS43M1E2My4xOSAyOS44NiA2NC4xNTg5OTk5OTk5OTk5OSAyOC41Njc5OTk5OTk5OTk5OThRNjUuMTI4IDI3LjI3NiA2Ni43NDMgMjYuNTk1OTk5OTk5OTk5OTk3UTY4LjM1OCAyNS45MTU5OTk5OTk5OTk5OTcgNzAuMzMgMjUuOTE1OTk5OTk5OTk5OTk3UTcxLjQ1MiAyNS45MTU5OTk5OTk5OTk5OTcgNzIuMzcgMjYuMDY5UTczLjI4OCAyNi4yMjIgNzQuMDAyMDAwMDAwMDAwMDEgMjYuNDI2MDAwMDAwMDAwMDAyUTc0LjcxNjAwMDAwMDAwMDAxIDI2LjYzIDc1LjEyNCAyNi44NjhWMjUuOTVRNzUuMTI0IDI0LjI1IDczLjkgMjMuMjNRNzIuNjc2IDIyLjIxIDcwLjczOCAyMi4yMVE2OS40MTIgMjIuMjEgNjguMjIyMDAwMDAwMDAwMDEgMjIuODA1UTY3LjAzMiAyMy40IDY2LjI4NCAyNC40Mkw2My44MDIgMjIuNDgyUTY0LjU1IDIxLjQyNzk5OTk5OTk5OTk5NyA2NS42MjEwMDAwMDAwMDAwMSAyMC42OFE2Ni42OTIwMDAwMDAwMDAwMSAxOS45MzIgNjguMDE4IDE5LjUyNFE2OS4zNDQgMTkuMTE2IDcwLjg0IDE5LjExNlE3NC41OCAxOS4xMTYgNzYuNjIgMjAuOTY5UTc4LjY2IDIyLjgyMiA3OC42NiAyNi4xNTRWMzcuMEg3NS4xMjRWMzQuODU4SDc0LjkyUTc0LjQ0NCAzNS41MzggNzMuNjc5IDM2LjE1UTcyLjkxNCAzNi43NjIgNzEuODk0IDM3LjE1M1E3MC44NzQgMzcuNTQ0IDY5LjYxNiAzNy41NDRaTTcwLjI2MiAzNC41NTJRNzEuNjkgMzQuNTUyIDcyLjc3Nzk5OTk5OTk5OTk5IDMzLjg3MlE3My44NjYgMzMuMTkyIDc0LjQ5NSAzMi4wODdRNzUuMTI0IDMwLjk4MiA3NS4xMjQgMjkuNjg5OTk5OTk5OTk5OTk4UTc0LjM0MiAyOS4yNDc5OTk5OTk5OTk5OTggNzMuMjg4IDI4Ljk1OVE3Mi4yMzQgMjguNjcgNzEuMDEgMjguNjdRNjguOCAyOC42NyA2Ny44NDggMjkuNTU0MDAwMDAwMDAwMDAyUTY2Ljg5NiAzMC40MzggNjYuODk2IDMxLjc2NFE2Ni44OTYgMzIuOTg4IDY3Ljc5NyAzMy43Njk5OTk5OTk5OTk5OTZRNjguNjk4MDAwMDAwMDAwMDEgMzQuNTUyIDcwLjI2MiAzNC41NTJaTTgyLjI5OCAzNy4wVjE5LjY2SDg1Ljk3VjM3LjBaTTg0LjEzNCAxNy4xMVE4My4xMTQgMTcuMTEgODIuMzgzMDAwMDAwMDAwMDEgMTYuMzc4OTk5OTk5OTk5OTk4UTgxLjY1MiAxNS42NDggODEuNjUyIDE0LjYyOFE4MS42NTIgMTMuNTczOTk5OTk5OTk5OTk4IDgyLjM4MzAwMDAwMDAwMDAxIDEyLjg3Njk5OTk5OTk5OTk5OVE4My4xMTQgMTIuMTggODQuMTM0IDEyLjE4UTg1LjE4OCAxMi4xOCA4NS45MDIgMTIuODc2OTk5OTk5OTk5OTk5UTg2LjYxNiAxMy41NzM5OTk5OTk5OTk5OTggODYuNjE2IDE0LjYyOFE4Ni42MTYgMTUuNjQ4IDg1LjkwMiAxNi4zNzg5OTk5OTk5OTk5OThRODUuMTg4IDE3LjExIDg0LjEzNCAxNy4xMVpNOTYuMjA0IDIyLjg1NTk5OTk5OTk5OTk5OFYxOS42Nkg5OS40MzRWMjIuODU1OTk5OTk5OTk5OTk4Wk0xMDQuNTM0IDM3LjI3MlExMDIuMTIgMzcuMjcyIDEwMC42OTIwMDAwMDAwMDAwMSAzNS44NDM5OTk5OTk5OTk5OTRROTkuMjY0MDAwMDAwMDAwMDEgMzQuNDE2IDk5LjI2NDAwMDAwMDAwMDAxIDMxLjk2OFYxNC43NjRIMTAyLjkzNlYzMS4xODZRMTAyLjkzNiAzMi41NDYgMTAzLjQ4IDMzLjE5MlExMDQuMDI0IDMzLjgzOCAxMDUuMjE0IDMzLjgzOFExMDUuNzU4MDAwMDAwMDAwMDEgMzMuODM4IDEwNi4yMzQwMDAwMDAwMDAwMSAzMy42ODVRMTA2LjcxMDAwMDAwMDAwMDAxIDMzLjUzMiAxMDcuMjg4MDAwMDAwMDAwMDEgMzMuMTkyVjM2Ljc2MlExMDYuNjQyMDAwMDAwMDAwMDEgMzcuMCAxMDUuOTYyMDAwMDAwMDAwMDIgMzcuMTM1OTk5OTk5OTk5OTk2UTEwNS4yODIwMDAwMDAwMDAwMSAzNy4yNzIgMTA0LjUzNCAzNy4yNzJaTTEwMi43MzIgMjIuODU1OTk5OTk5OTk5OTk4VjE5LjY2SDEwNy4xNTJWMjIuODU1OTk5OTk5OTk5OTk4Wk0xMTUuODU2MDAwMDAwMDAwMDEgMzcuNTQ0UTExMy45NTIwMDAwMDAwMDAwMSAzNy41NDQgMTEyLjUyNCAzNi43OTZRMTExLjA5NiAzNi4wNDggMTEwLjI2MyAzNC43MzkwMDAwMDAwMDAwMDRRMTA5LjQzIDMzLjQzIDEwOS40MyAzMS43M1ExMDkuNDMgMjkuODYgMTEwLjM5OSAyOC41Njc5OTk5OTk5OTk5OThRMTExLjM2ODAwMDAwMDAwMDAxIDI3LjI3NiAxMTIuOTgzIDI2LjU5NTk5OTk5OTk5OTk5N1ExMTQuNTk4MDAwMDAwMDAwMDEgMjUuOTE1OTk5OTk5OTk5OTk3IDExNi41NzAwMDAwMDAwMDAwMSAyNS45MTU5OTk5OTk5OTk5OTdRMTE3LjY5MjAwMDAwMDAwMDAxIDI1LjkxNTk5OTk5OTk5OTk5NyAxMTguNjEwMDAwMDAwMDAwMDEgMjYuMDY5UTExOS41MjggMjYuMjIyIDEyMC4yNDIwMDAwMDAwMDAwMiAyNi40MjYwMDAwMDAwMDAwMDJRMTIwLjk1NjAwMDAwMDAwMDAyIDI2LjYzIDEyMS4zNjQgMjYuODY4VjI1Ljk1UTEyMS4zNjQgMjQuMjUgMTIwLjE0MDAwMDAwMDAwMDAxIDIzLjIzUTExOC45MTYwMDAwMDAwMDAwMSAyMi4yMSAxMTYuOTc4MDAwMDAwMDAwMDEgMjIuMjFRMTE1LjY1MjAwMDAwMDAwMDAyIDIyLjIxIDExNC40NjIwMDAwMDAwMDAwMiAyMi44MDVRMTEzLjI3MiAyMy40IDExMi41MjQwMDAwMDAwMDAwMiAyNC40MkwxMTAuMDQyMDAwMDAwMDAwMDIgMjIuNDgyUTExMC43OSAyMS40Mjc5OTk5OTk5OTk5OTcgMTExLjg2MTAwMDAwMDAwMDAyIDIwLjY4UTExMi45MzIwMDAwMDAwMDAwMiAxOS45MzIgMTE0LjI1ODAwMDAwMDAwMDAxIDE5LjUyNFExMTUuNTg0IDE5LjExNiAxMTcuMDgwMDAwMDAwMDAwMDEgMTkuMTE2UTEyMC44MjAwMDAwMDAwMDAwMSAxOS4xMTYgMTIyLjg2MDAwMDAwMDAwMDAxIDIwLjk2OVExMjQuOSAyMi44MjIgMTI0LjkgMjYuMTU0VjM3LjBIMTIxLjM2NFYzNC44NThIMTIxLjE2MDAwMDAwMDAwMDAxUTEyMC42ODQwMDAwMDAwMDAwMSAzNS41MzggMTE5LjkxOTAwMDAwMDAwMDAxIDM2LjE1UTExOS4xNTQwMDAwMDAwMDAwMSAzNi43NjIgMTE4LjEzNDAwMDAwMDAwMDAxIDM3LjE1M1ExMTcuMTE0IDM3LjU0NCAxMTUuODU2MDAwMDAwMDAwMDEgMzcuNTQ0Wk0xMTYuNTAyMDAwMDAwMDAwMDEgMzQuNTUyUTExNy45MyAzNC41NTIgMTE5LjAxOCAzMy44NzJRMTIwLjEwNjAwMDAwMDAwMDAxIDMzLjE5MiAxMjAuNzM1MDAwMDAwMDAwMDEgMzIuMDg3UTEyMS4zNjQgMzAuOTgyIDEyMS4zNjQgMjkuNjg5OTk5OTk5OTk5OTk4UTEyMC41ODIwMDAwMDAwMDAwMSAyOS4yNDc5OTk5OTk5OTk5OTggMTE5LjUyOCAyOC45NTlRMTE4LjQ3NCAyOC42NyAxMTcuMjUwMDAwMDAwMDAwMDEgMjguNjdRMTE1LjA0IDI4LjY3IDExNC4wODgwMDAwMDAwMDAwMSAyOS41NTQwMDAwMDAwMDAwMDJRMTEzLjEzNjAwMDAwMDAwMDAxIDMwLjQzOCAxMTMuMTM2MDAwMDAwMDAwMDEgMzEuNzY0UTExMy4xMzYwMDAwMDAwMDAwMSAzMi45ODggMTE0LjAzNyAzMy43Njk5OTk5OTk5OTk5OTZRMTE0LjkzODAwMDAwMDAwMDAyIDM0LjU1MiAxMTYuNTAyMDAwMDAwMDAwMDEgMzQuNTUyWk0xMzYuMzU4IDQ0Ljg4OFExMzQuMDggNDQuODg4IDEzMi40MzEgNDQuMTU3UTEzMC43ODIgNDMuNDI2IDEyOS43NjIgNDIuMjg3MDAwMDAwMDAwMDA2UTEyOC43NDIwMDAwMDAwMDAwMiA0MS4xNDggMTI4LjMgMzkuOTU4TDEzMS43MDAwMDAwMDAwMDAwMiAzOC41M1ExMzIuMjQ0IDM5Ljg5IDEzMy40NTEwMDAwMDAwMDAwMiA0MC43NTcwMDAwMDAwMDAwMDVRMTM0LjY1ODAwMDAwMDAwMDAyIDQxLjYyNCAxMzYuMzU4IDQxLjYyNFExMzguNzcyMDAwMDAwMDAwMDIgNDEuNjI0IDE0MC4xMzIgNDAuMTk2UTE0MS40OTIwMDAwMDAwMDAwMiAzOC43NjggMTQxLjQ5MjAwMDAwMDAwMDAyIDM2LjE1VjM0LjQ4NEgxNDEuMjg4UTE0MC40NzIgMzUuNjc0IDEzOS4wNDQgMzYuNDIyUTEzNy42MTYgMzcuMTcgMTM1Ljc0NiAzNy4xN1ExMzMuNTM2IDM3LjE3IDEzMS42ODMgMzYuMDQ4UTEyOS44MyAzNC45MjYgMTI4LjcyNTAwMDAwMDAwMDAyIDMyLjkwM1ExMjcuNjIgMzAuODggMTI3LjYyIDI4LjE2UTEyNy42MiAyNS40MDYgMTI4LjcyNTAwMDAwMDAwMDAyIDIzLjM4M1ExMjkuODMgMjEuMzYgMTMxLjY4MyAyMC4yMzhRMTMzLjUzNiAxOS4xMTYgMTM1Ljc0NiAxOS4xMTZRMTM3LjYxNiAxOS4xMTYgMTM5LjA0NCAxOS44NDdRMTQwLjQ3MiAyMC41NzggMTQxLjI4OCAyMS44MzZIMTQxLjQ5MjAwMDAwMDAwMDAyVjE5LjY2SDE0NC45OTRWMzYuMDgyUTE0NC45OTQgMzguOTA0IDE0My44ODkgNDAuODc2MDAwMDAwMDAwMDA1UTE0Mi43ODQwMDAwMDAwMDAwMiA0Mi44NDggMTQwLjg0NiA0My44Njc5OTk5OTk5OTk5OTVRMTM4LjkwODAwMDAwMDAwMDAyIDQ0Ljg4OCAxMzYuMzU4IDQ0Ljg4OFpNMTM2LjM5MiAzMy44MzhRMTM3Ljc1MiAzMy44MzggMTM4LjkyNSAzMy4xNzVRMTQwLjA5OCAzMi41MTIgMTQwLjc5NTAwMDAwMDAwMDAyIDMxLjIzNzAwMDAwMDAwMDAwMlExNDEuNDkyMDAwMDAwMDAwMDIgMjkuOTYyIDE0MS40OTIwMDAwMDAwMDAwMiAyOC4xNlExNDEuNDkyMDAwMDAwMDAwMDIgMjYuMjU2IDE0MC43OTUwMDAwMDAwMDAwMiAyNC45OTc5OTk5OTk5OTk5OThRMTQwLjA5OCAyMy43NCAxMzguOTI1IDIzLjA5NFExMzcuNzUyIDIyLjQ0OCAxMzYuMzkyIDIyLjQ0OFExMzUuMDMyIDIyLjQ0OCAxMzMuODU5IDIzLjA5NFExMzIuNjg2IDIzLjc0IDEzMS45NzIgMjUuMDE1UTEzMS4yNTggMjYuMjkgMTMxLjI1OCAyOC4xNlExMzEuMjU4IDI5Ljk5NiAxMzEuOTcyIDMxLjI3MVExMzIuNjg2IDMyLjU0NiAxMzMuODU5IDMzLjE5MlExMzUuMDMyIDMzLjgzOCAxMzYuMzkyIDMzLjgzOFpNMTYzLjg2NCAzNy41NDRRMTYxLjUxOCAzNy41NDQgMTU5LjYxNCAzNi4zNTRRMTU3LjcxIDM1LjE2NCAxNTYuNjIyIDMzLjA5UTE1NS41MzQgMzEuMDE2IDE1NS41MzQgMjguMzNRMTU1LjUzNCAyNS42NDQgMTU2LjYyMiAyMy41N1ExNTcuNzEgMjEuNDk2IDE1OS42MTQgMjAuMzA1OTk5OTk5OTk5OTk3UTE2MS41MTggMTkuMTE2IDE2My44NjQgMTkuMTE2UTE2NS4yMjQgMTkuMTE2IDE2Ni4zMTIgMTkuNTI0UTE2Ny40IDE5LjkzMiAxNjguMTk5IDIwLjU5NVExNjguOTk4IDIxLjI1OCAxNjkuNDQgMjIuMDA2SDE2OS42NDRMMTY5LjQ0IDE5LjU5MlYxMi42NTU5OTk5OTk5OTk5OTlIMTczLjA3OFYzNy4wSDE2OS42NDRWMzQuNjg4SDE2OS40NFExNjguOTk4IDM1LjQwMiAxNjguMTk5IDM2LjA2NVExNjcuNCAzNi43MjggMTY2LjMxMiAzNy4xMzU5OTk5OTk5OTk5OTZRMTY1LjIyNCAzNy41NDQgMTYzLjg2NCAzNy41NDRaTTE2NC40MDggMzQuMTc4UTE2NS43NjggMzQuMTc4IDE2Ni45NzUgMzMuNDY0UTE2OC4xODIgMzIuNzUgMTY4LjkxMyAzMS40NDFRMTY5LjY0NCAzMC4xMzE5OTk5OTk5OTk5OTggMTY5LjY0NCAyOC4zM1ExNjkuNjQ0IDI2LjUyOCAxNjguOTEzIDI1LjIxODk5OTk5OTk5OTk5OFExNjguMTgyIDIzLjkwOTk5OTk5OTk5OTk5NyAxNjYuOTc1IDIzLjE5NTk5OTk5OTk5OTk5OFExNjUuNzY4IDIyLjQ4MiAxNjQuNDA4IDIyLjQ4MlExNjMuMDQ4IDIyLjQ4MiAxNjEuODU4IDIzLjE5NTk5OTk5OTk5OTk5OFExNjAuNjY4IDIzLjkwOTk5OTk5OTk5OTk5NyAxNTkuOTIwMDAwMDAwMDAwMDIgMjUuMjE4OTk5OTk5OTk5OTk4UTE1OS4xNzIgMjYuNTI4IDE1OS4xNzIgMjguMzNRMTU5LjE3MiAzMC4wOTggMTU5LjkyMDAwMDAwMDAwMDAyIDMxLjQyNFExNjAuNjY4IDMyLjc1IDE2MS44NTggMzMuNDY0UTE2My4wNDggMzQuMTc4IDE2NC40MDggMzQuMTc4Wk0xODQuOTEgMzcuNTQ0UTE4Mi4zNTk5OTk5OTk5OTk5OSAzNy41NDQgMTgwLjM1Mzk5OTk5OTk5OTk4IDM2LjM1NFExNzguMzQ3OTk5OTk5OTk5OTggMzUuMTY0IDE3Ny4yMDkgMzMuMDlRMTc2LjA3IDMxLjAxNiAxNzYuMDcgMjguMzYzOTk5OTk5OTk5OTk3UTE3Ni4wNyAyNS44ODE5OTk5OTk5OTk5OTggMTc3LjE1ODAwMDAwMDAwMDAyIDIzLjc3Mzk5OTk5OTk5OTk5N1ExNzguMjQ2IDIxLjY2NTk5OTk5OTk5OTk5NyAxODAuMjAxMDAwMDAwMDAwMDIgMjAuMzkxUTE4Mi4xNTYgMTkuMTE2IDE4NC43MDYgMTkuMTE2UTE4Ny4zOTIgMTkuMTE2IDE4OS4yNzkgMjAuMjcyUTE5MS4xNjYgMjEuNDI3OTk5OTk5OTk5OTk3IDE5Mi4xNTIgMjMuNDMzOTk5OTk5OTk5OTk3UTE5My4xMzggMjUuNDM5OTk5OTk5OTk5OTk4IDE5My4xMzggMjcuOTU2UTE5My4xMzggMjguMzMgMTkzLjEyMDk5OTk5OTk5OTk4IDI4LjYzNlExOTMuMTAzOTk5OTk5OTk5OTggMjguOTQyIDE5My4wNyAyOS4xMTJIMTc4LjE0NFYyNi4zNTc5OTk5OTk5OTk5OTdIMTg5LjVRMTg5LjQ2NiAyNS43MTIgMTg5LjE2IDI0Ljk4MVExODguODUzOTk5OTk5OTk5OTggMjQuMjUgMTg4LjI3NiAyMy42Mzc5OTk5OTk5OTk5OThRMTg3LjY5OCAyMy4wMjYgMTg2LjgxNDAwMDAwMDAwMDAyIDIyLjYzNDk5OTk5OTk5OTk5OFExODUuOTMgMjIuMjQ0IDE4NC43NCAyMi4yNDRRMTgzLjI0NCAyMi4yNDQgMTgyLjA4OCAyMy4wMDlRMTgwLjkzMiAyMy43NzQgMTgwLjI4NiAyNS4xMzRRMTc5LjY0IDI2LjQ5NCAxNzkuNjQgMjguMjk2UTE3OS42NCAzMC4yNjggMTgwLjM4Nzk5OTk5OTk5OTk4IDMxLjU5NFExODEuMTM2IDMyLjkyIDE4Mi4zNiAzMy42UTE4My41ODQgMzQuMjggMTg1LjAxMiAzNC4yOFExODYuNzQ2IDM0LjI4IDE4Ny45MTg5OTk5OTk5OTk5OCAzMy40ODFRMTg5LjA5MTk5OTk5OTk5OTk4IDMyLjY4MiAxODkuNzcyIDMxLjQ5MkwxOTIuNzk4IDMyLjk1NFExOTEuNjc2IDM0Ljk5NCAxODkuNzM4IDM2LjI2OVExODcuOCAzNy41NDQgMTg0LjkxIDM3LjU0NFpNMjA1LjM0NCAzNy41NDRRMjA0LjAxOCAzNy41NDQgMjAyLjkzIDM3LjEzNTk5OTk5OTk5OTk5NlEyMDEuODQyIDM2LjcyOCAyMDEuMDQzIDM2LjA2NVEyMDAuMjQ0IDM1LjQwMiAxOTkuNzY4IDM0LjY4OEgxOTkuNTY0VjM3LjBIMTk2LjA5NlYxMi42NTU5OTk5OTk5OTk5OTlIMTk5Ljc2OFYxOS41OTJMMTk5LjU2NCAyMi4wMDZIMTk5Ljc2OFEyMDAuMjQ0IDIxLjI1OCAyMDEuMDQzIDIwLjU5NVEyMDEuODQyIDE5LjkzMiAyMDIuOTMgMTkuNTI0UTIwNC4wMTggMTkuMTE2IDIwNS4zNDQgMTkuMTE2UTIwNy43MjQgMTkuMTE2IDIwOS41OTQgMjAuMzA1OTk5OTk5OTk5OTk3UTIxMS40NjQgMjEuNDk2IDIxMi41NjkwMDAwMDAwMDAwMiAyMy41N1EyMTMuNjc0IDI1LjY0NCAyMTMuNjc0IDI4LjMzUTIxMy42NzQgMzEuMDE2IDIxMi41NjkwMDAwMDAwMDAwMiAzMy4wOVEyMTEuNDY0IDM1LjE2NCAyMDkuNTk0IDM2LjM1NFEyMDcuNzI0IDM3LjU0NCAyMDUuMzQ0IDM3LjU0NFpNMjA0LjggMzQuMTc4UTIwNi4xNiAzNC4xNzggMjA3LjM2NzAwMDAwMDAwMDAyIDMzLjQ2NFEyMDguNTc0IDMyLjc1IDIwOS4zMDUgMzEuNDI0UTIxMC4wMzYgMzAuMDk4IDIxMC4wMzYgMjguMzNRMjEwLjAzNiAyNi41MjggMjA5LjMwNSAyNS4yMTg5OTk5OTk5OTk5OThRMjA4LjU3NCAyMy45MDk5OTk5OTk5OTk5OTcgMjA3LjM2NzAwMDAwMDAwMDAyIDIzLjE5NTk5OTk5OTk5OTk5OFEyMDYuMTYgMjIuNDgyIDIwNC44IDIyLjQ4MlEyMDMuNDQgMjIuNDgyIDIwMi4yNSAyMy4xOTU5OTk5OTk5OTk5OThRMjAxLjA2IDIzLjkwOTk5OTk5OTk5OTk5NyAyMDAuMzEyIDI1LjIxODk5OTk5OTk5OTk5OFExOTkuNTY0IDI2LjUyOCAxOTkuNTY0IDI4LjMzUTE5OS41NjQgMzAuMTMxOTk5OTk5OTk5OTk4IDIwMC4zMTIgMzEuNDQxUTIwMS4wNiAzMi43NSAyMDIuMjUgMzMuNDY0UTIwMy40NCAzNC4xNzggMjA0LjggMzQuMTc4Wk0yMjIuOTIyIDM3LjU0NFEyMTkuNzI2IDM3LjU0NCAyMTguMTExIDM1LjYyM1EyMTYuNDk2IDMzLjcwMiAyMTYuNDk2IDMwLjQwNFYxOS42NkgyMjAuMTY4VjI5Ljg5NFEyMjAuMTY4IDMyLjA3IDIyMS4yMDQ5OTk5OTk5OTk5OCAzMy4xMjM5OTk5OTk5OTk5OTVRMjIyLjI0MiAzNC4xNzggMjIzLjgwNiAzNC4xNzhRMjI1LjIzNCAzNC4xNzggMjI2LjI1NDAwMDAwMDAwMDAyIDMzLjQ0N1EyMjcuMjc0IDMyLjcxNiAyMjcuODM1IDMxLjUyNlEyMjguMzk2MDAwMDAwMDAwMDIgMzAuMzM2IDIyOC4zOTYwMDAwMDAwMDAwMiAyOC45NzZWMTkuNjZIMjMyLjAzNFYzNy4wSDIyOC42VjM0LjY1Mzk5OTk5OTk5OTk5NkgyMjguMzk2MDAwMDAwMDAwMDJRMjI3LjkyMDAwMDAwMDAwMDAyIDM1LjQ3IDIyNy4wNyAzNi4xMTZRMjI2LjIyIDM2Ljc2MiAyMjUuMTY2IDM3LjE1M1EyMjQuMTEyIDM3LjU0NCAyMjIuOTIyIDM3LjU0NFpNMjQzLjc2NCA0NC44ODhRMjQxLjQ4NjAwMDAwMDAwMDAyIDQ0Ljg4OCAyMzkuODM3MDAwMDAwMDAwMDIgNDQuMTU3UTIzOC4xODgwMDAwMDAwMDAwMiA0My40MjYgMjM3LjE2OCA0Mi4yODcwMDAwMDAwMDAwMDZRMjM2LjE0ODAwMDAwMDAwMDAyIDQxLjE0OCAyMzUuNzA2MDAwMDAwMDAwMDIgMzkuOTU4TDIzOS4xMDYwMDAwMDAwMDAwMiAzOC41M1EyMzkuNjUgMzkuODkgMjQwLjg1NzAwMDAwMDAwMDAzIDQwLjc1NzAwMDAwMDAwMDAwNVEyNDIuMDY0MDAwMDAwMDAwMDIgNDEuNjI0IDI0My43NjQgNDEuNjI0UTI0Ni4xNzgwMDAwMDAwMDAwMyA0MS42MjQgMjQ3LjUzOCA0MC4xOTZRMjQ4Ljg5ODAwMDAwMDAwMDAyIDM4Ljc2OCAyNDguODk4MDAwMDAwMDAwMDIgMzYuMTVWMzQuNDg0SDI0OC42OTQwMDAwMDAwMDAwMlEyNDcuODc4MDAwMDAwMDAwMDEgMzUuNjc0IDI0Ni40NTAwMDAwMDAwMDAwMiAzNi40MjJRMjQ1LjAyMjAwMDAwMDAwMDAyIDM3LjE3IDI0My4xNTIwMDAwMDAwMDAwMiAzNy4xN1EyNDAuOTQyIDM3LjE3IDIzOS4wODkgMzYuMDQ4UTIzNy4yMzYwMDAwMDAwMDAwMiAzNC45MjYgMjM2LjEzMTAwMDAwMDAwMDAzIDMyLjkwM1EyMzUuMDI2IDMwLjg4IDIzNS4wMjYgMjguMTZRMjM1LjAyNiAyNS40MDYgMjM2LjEzMTAwMDAwMDAwMDAzIDIzLjM4M1EyMzcuMjM2MDAwMDAwMDAwMDIgMjEuMzYgMjM5LjA4OSAyMC4yMzhRMjQwLjk0MiAxOS4xMTYgMjQzLjE1MjAwMDAwMDAwMDAyIDE5LjExNlEyNDUuMDIyMDAwMDAwMDAwMDIgMTkuMTE2IDI0Ni40NTAwMDAwMDAwMDAwMiAxOS44NDdRMjQ3Ljg3ODAwMDAwMDAwMDAxIDIwLjU3OCAyNDguNjk0MDAwMDAwMDAwMDIgMjEuODM2SDI0OC44OTgwMDAwMDAwMDAwMlYxOS42NkgyNTIuNFYzNi4wODJRMjUyLjQgMzguOTA0IDI1MS4yOTUwMDAwMDAwMDAwMiA0MC44NzYwMDAwMDAwMDAwMDVRMjUwLjE5MDAwMDAwMDAwMDAzIDQyLjg0OCAyNDguMjUyIDQzLjg2Nzk5OTk5OTk5OTk5NVEyNDYuMzE0MDAwMDAwMDAwMDIgNDQuODg4IDI0My43NjQgNDQuODg4Wk0yNDMuNzk4IDMzLjgzOFEyNDUuMTU4MDAwMDAwMDAwMDIgMzMuODM4IDI0Ni4zMzEwMDAwMDAwMDAwMiAzMy4xNzVRMjQ3LjUwNDAwMDAwMDAwMDAyIDMyLjUxMiAyNDguMjAxMDAwMDAwMDAwMDIgMzEuMjM3MDAwMDAwMDAwMDAyUTI0OC44OTgwMDAwMDAwMDAwMiAyOS45NjIgMjQ4Ljg5ODAwMDAwMDAwMDAyIDI4LjE2UTI0OC44OTgwMDAwMDAwMDAwMiAyNi4yNTYgMjQ4LjIwMTAwMDAwMDAwMDAyIDI0Ljk5Nzk5OTk5OTk5OTk5OFEyNDcuNTA0MDAwMDAwMDAwMDIgMjMuNzQgMjQ2LjMzMTAwMDAwMDAwMDAyIDIzLjA5NFEyNDUuMTU4MDAwMDAwMDAwMDIgMjIuNDQ4IDI0My43OTggMjIuNDQ4UTI0Mi40MzgwMDAwMDAwMDAwMiAyMi40NDggMjQxLjI2NTAwMDAwMDAwMDAxIDIzLjA5NFEyNDAuMDkyIDIzLjc0IDIzOS4zNzgwMDAwMDAwMDAwMSAyNS4wMTVRMjM4LjY2NDAwMDAwMDAwMDAyIDI2LjI5IDIzOC42NjQwMDAwMDAwMDAwMiAyOC4xNlEyMzguNjY0MDAwMDAwMDAwMDIgMjkuOTk2IDIzOS4zNzgwMDAwMDAwMDAwMSAzMS4yNzFRMjQwLjA5MiAzMi41NDYgMjQxLjI2NTAwMDAwMDAwMDAxIDMzLjE5MlEyNDIuNDM4MDAwMDAwMDAwMDIgMzMuODM4IDI0My43OTggMzMuODM4Wk0yNjQuMDk2IDQ0Ljg4OFEyNjEuODE4IDQ0Ljg4OCAyNjAuMTY5IDQ0LjE1N1EyNTguNTIgNDMuNDI2IDI1Ny41IDQyLjI4NzAwMDAwMDAwMDAwNlEyNTYuNDggNDEuMTQ4IDI1Ni4wMzggMzkuOTU4TDI1OS40MzggMzguNTNRMjU5Ljk4MiAzOS44OSAyNjEuMTg5IDQwLjc1NzAwMDAwMDAwMDAwNVEyNjIuMzk2IDQxLjYyNCAyNjQuMDk2IDQxLjYyNFEyNjYuNTEgNDEuNjI0IDI2Ny44NyA0MC4xOTZRMjY5LjIzIDM4Ljc2OCAyNjkuMjMgMzYuMTVWMzQuNDg0SDI2OS4wMjZRMjY4LjIxMDAwMDAwMDAwMDA0IDM1LjY3NCAyNjYuNzgyMDAwMDAwMDAwMDQgMzYuNDIyUTI2NS4zNTQgMzcuMTcgMjYzLjQ4NCAzNy4xN1EyNjEuMjc0IDM3LjE3IDI1OS40MjEgMzYuMDQ4UTI1Ny41NjggMzQuOTI2IDI1Ni40NjI5OTk5OTk5OTk5NyAzMi45MDNRMjU1LjM1OCAzMC44OCAyNTUuMzU4IDI4LjE2UTI1NS4zNTggMjUuNDA2IDI1Ni40NjI5OTk5OTk5OTk5NyAyMy4zODNRMjU3LjU2OCAyMS4zNiAyNTkuNDIxIDIwLjIzOFEyNjEuMjc0IDE5LjExNiAyNjMuNDg0IDE5LjExNlEyNjUuMzU0IDE5LjExNiAyNjYuNzgyMDAwMDAwMDAwMDQgMTkuODQ3UTI2OC4yMTAwMDAwMDAwMDAwNCAyMC41NzggMjY5LjAyNiAyMS44MzZIMjY5LjIzVjE5LjY2SDI3Mi43MzJWMzYuMDgyUTI3Mi43MzIgMzguOTA0IDI3MS42MjcgNDAuODc2MDAwMDAwMDAwMDA1UTI3MC41MjIgNDIuODQ4IDI2OC41ODQgNDMuODY3OTk5OTk5OTk5OTk1UTI2Ni42NDYgNDQuODg4IDI2NC4wOTYgNDQuODg4Wk0yNjQuMTMgMzMuODM4UTI2NS40OSAzMy44MzggMjY2LjY2MyAzMy4xNzVRMjY3LjgzNiAzMi41MTIgMjY4LjUzMyAzMS4yMzcwMDAwMDAwMDAwMDJRMjY5LjIzIDI5Ljk2MiAyNjkuMjMgMjguMTZRMjY5LjIzIDI2LjI1NiAyNjguNTMzIDI0Ljk5Nzk5OTk5OTk5OTk5OFEyNjcuODM2IDIzLjc0IDI2Ni42NjMgMjMuMDk0UTI2NS40OSAyMi40NDggMjY0LjEzIDIyLjQ0OFEyNjIuNzcgMjIuNDQ4IDI2MS41OTcgMjMuMDk0UTI2MC40MjQgMjMuNzQgMjU5LjcxIDI1LjAxNVEyNTguOTk2IDI2LjI5IDI1OC45OTYgMjguMTZRMjU4Ljk5NiAyOS45OTYgMjU5LjcxIDMxLjI3MVEyNjAuNDI0IDMyLjU0NiAyNjEuNTk3IDMzLjE5MlEyNjIuNzcgMzMuODM4IDI2NC4xMyAzMy44MzhaTTI4NC41MyAzNy41NDRRMjgxLjk4IDM3LjU0NCAyNzkuOTc0MDAwMDAwMDAwMDUgMzYuMzU0UTI3Ny45NjggMzUuMTY0IDI3Ni44MjkgMzMuMDlRMjc1LjY5IDMxLjAxNiAyNzUuNjkgMjguMzYzOTk5OTk5OTk5OTk3UTI3NS42OSAyNS44ODE5OTk5OTk5OTk5OTggMjc2Ljc3OCAyMy43NzM5OTk5OTk5OTk5OTdRMjc3Ljg2NiAyMS42NjU5OTk5OTk5OTk5OTcgMjc5LjgyMSAyMC4zOTFRMjgxLjc3NiAxOS4xMTYgMjg0LjMyNiAxOS4xMTZRMjg3LjAxMiAxOS4xMTYgMjg4Ljg5OSAyMC4yNzJRMjkwLjc4NiAyMS40Mjc5OTk5OTk5OTk5OTcgMjkxLjc3MiAyMy40MzM5OTk5OTk5OTk5OTdRMjkyLjc1OCAyNS40Mzk5OTk5OTk5OTk5OTggMjkyLjc1OCAyNy45NTZRMjkyLjc1OCAyOC4zMyAyOTIuNzQxIDI4LjYzNlEyOTIuNzI0IDI4Ljk0MiAyOTIuNjkgMjkuMTEySDI3Ny43NjRWMjYuMzU3OTk5OTk5OTk5OTk3SDI4OS4xMlEyODkuMDg2IDI1LjcxMiAyODguNzggMjQuOTgxUTI4OC40NzQgMjQuMjUgMjg3Ljg5NTk5OTk5OTk5OTk2IDIzLjYzNzk5OTk5OTk5OTk5OFEyODcuMzE4IDIzLjAyNiAyODYuNDMzOTk5OTk5OTk5OTcgMjIuNjM0OTk5OTk5OTk5OTk4UTI4NS41NSAyMi4yNDQgMjg0LjM2IDIyLjI0NFEyODIuODY0IDIyLjI0NCAyODEuNzA3OTk5OTk5OTk5OTcgMjMuMDA5UTI4MC41NTIgMjMuNzc0IDI3OS45MDYgMjUuMTM0UTI3OS4yNiAyNi40OTQgMjc5LjI2IDI4LjI5NlEyNzkuMjYgMzAuMjY4IDI4MC4wMDggMzEuNTk0UTI4MC43NTYgMzIuOTIgMjgxLjk4IDMzLjZRMjgzLjIwNCAzNC4yOCAyODQuNjMyIDM0LjI4UTI4Ni4zNjYgMzQuMjggMjg3LjUzOSAzMy40ODFRMjg4LjcxMiAzMi42ODIgMjg5LjM5MiAzMS40OTJMMjkyLjQxOCAzMi45NTRRMjkxLjI5NiAzNC45OTQgMjg5LjM1OCAzNi4yNjlRMjg3LjQyIDM3LjU0NCAyODQuNTMgMzcuNTQ0Wk0yOTUuNzE2IDM3LjBWMTkuNjZIMjk5LjE4NFYyMi4yMUgyOTkuMzg4UTI5OS43OTYgMjEuMzI2IDMwMC41NjEwMDAwMDAwMDAwNCAyMC42NDZRMzAxLjMyNiAxOS45NjU5OTk5OTk5OTk5OTggMzAyLjMyOSAxOS41NThRMzAzLjMzMiAxOS4xNSAzMDQuNDIgMTkuMTVRMzA1LjEzNCAxOS4xNSAzMDUuNjI3IDE5LjIzNVEzMDYuMTIgMTkuMzIgMzA2LjUyOCAxOS40OVYyMy4yOThRMzA1Ljg4MiAyMy4wMjYgMzA1LjIxOSAyMi44NTZRMzA0LjU1NiAyMi42ODYgMzAzLjg0MiAyMi42ODZRMzAyLjU1IDIyLjY4NiAzMDEuNTQ3IDIzLjM4M1EzMDAuNTQ0IDI0LjA4IDI5OS45NjYgMjUuMjM1OTk5OTk5OTk5OTk3UTI5OS4zODggMjYuMzkyIDI5OS4zODggMjcuODJWMzcuMFoiIGZpbGw9IiMwQTBFMUEiLz48L3N2Zz4K",
|
|
11
|
-
"atd-lockup-dark": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMDcuMDQgNTIiIHJvbGU9ImltZyIgYXJpYS1sYWJlbD0iYWkgdGFnIGRlYnVnZ2VyIj48dGl0bGU+YWkgdGFnIGRlYnVnZ2VyPC90aXRsZT48ZyB0cmFuc2Zvcm09InNjYWxlKDEuNjIpIj48ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9Im0xZWciIHgxPSIwIiB5MT0iMCIgeDI9IjEiIHkyPSIxIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiM0RjhFRjciLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMyQjVCRDciLz48L2xpbmVhckdyYWRpZW50PjxtYXNrIGlkPSJtMWVpIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSItOCIgeT0iLTgiIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PHJlY3QgeD0iLTgiIHk9Ii04IiB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIGZpbGw9IiNmZmYiLz48Y2lyY2xlIGN4PSI4LjYiIGN5PSIxMiIgcj0iMS45IiBmaWxsPSIjMDAwIi8+PHJlY3QgeD0iMTMuMiIgeT0iOS4wIiB3aWR0aD0iMy4yIiBoZWlnaHQ9IjYuNCIgcng9Ii42IiBmaWxsPSIjMDAwIi8+PHJlY3QgeD0iMTcuMyIgeT0iNi40IiB3aWR0aD0iMy4yIiBoZWlnaHQ9IjkiIHJ4PSIuNiIgZmlsbD0iIzAwMCIvPjxyZWN0IHg9IjIxLjQiIHk9IjEwLjQiIHdpZHRoPSIzLjIiIGhlaWdodD0iNSIgcng9Ii42IiBmaWxsPSIjMDAwIi8+PC9tYXNrPjxtYXNrIGlkPSJtMWVvIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSItOCIgeT0iLTgiIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PHJlY3QgeD0iLTgiIHk9Ii04IiB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIGZpbGw9IiNmZmYiLz48Y2lyY2xlIGN4PSIyMy40IiBjeT0iMjMuNCIgcj0iNy42IiBmaWxsPSIjMDAwIi8+PHBhdGggZD0iTTI3LjIgMjcuMkwzMC40IDMwLjQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLXdpZHRoPSI3LjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjwvbWFzaz48L2RlZnM+PGcgbWFzaz0idXJsKCNtMWVvKSI+PGcgdHJhbnNmb3JtPSIiPjxnIG1hc2s9InVybCgjbTFlaSkiPjxwb2x5Z29uIHBvaW50cz0iMi42LDEyIDkuNCw0LjIgMjguNCw0LjIgMjguNCwxOS44IDkuNCwxOS44IiBmaWxsPSJ1cmwoI20xZWcpIiBzdHJva2U9InVybCgjbTFlZykiIHN0cm9rZS13aWR0aD0iNC4yIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+PC9nPjwvZz48L2c+PGNpcmNsZSBjeD0iMjMuNCIgY3k9IjIzLjQiIHI9IjUuMiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjOENCQkZGIiBzdHJva2Utd2lkdGg9IjIuNiIvPjxwYXRoIGQ9Ik0yNy43OTk5OTk5OTk5OTk5OTcgMjcuNzk5OTk5OTk5OTk5OTk3TDI5LjQgMjkuNCIgc3Ryb2tlPSIjOENCQkZGIiBzdHJva2Utd2lkdGg9IjMuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PC9nPjxwYXRoIGQ9Ik02OS42MTYgMzcuNTQ0UTY3LjcxMiAzNy41NDQgNjYuMjgzOTk5OTk5OTk5OTkgMzYuNzk2UTY0Ljg1NiAzNi4wNDggNjQuMDIzIDM0LjczOTAwMDAwMDAwMDAwNFE2My4xOSAzMy40MyA2My4xOSAzMS43M1E2My4xOSAyOS44NiA2NC4xNTg5OTk5OTk5OTk5OSAyOC41Njc5OTk5OTk5OTk5OThRNjUuMTI4IDI3LjI3NiA2Ni43NDMgMjYuNTk1OTk5OTk5OTk5OTk3UTY4LjM1OCAyNS45MTU5OTk5OTk5OTk5OTcgNzAuMzMgMjUuOTE1OTk5OTk5OTk5OTk3UTcxLjQ1MiAyNS45MTU5OTk5OTk5OTk5OTcgNzIuMzcgMjYuMDY5UTczLjI4OCAyNi4yMjIgNzQuMDAyMDAwMDAwMDAwMDEgMjYuNDI2MDAwMDAwMDAwMDAyUTc0LjcxNjAwMDAwMDAwMDAxIDI2LjYzIDc1LjEyNCAyNi44NjhWMjUuOTVRNzUuMTI0IDI0LjI1IDczLjkgMjMuMjNRNzIuNjc2IDIyLjIxIDcwLjczOCAyMi4yMVE2OS40MTIgMjIuMjEgNjguMjIyMDAwMDAwMDAwMDEgMjIuODA1UTY3LjAzMiAyMy40IDY2LjI4NCAyNC40Mkw2My44MDIgMjIuNDgyUTY0LjU1IDIxLjQyNzk5OTk5OTk5OTk5NyA2NS42MjEwMDAwMDAwMDAwMSAyMC42OFE2Ni42OTIwMDAwMDAwMDAwMSAxOS45MzIgNjguMDE4IDE5LjUyNFE2OS4zNDQgMTkuMTE2IDcwLjg0IDE5LjExNlE3NC41OCAxOS4xMTYgNzYuNjIgMjAuOTY5UTc4LjY2IDIyLjgyMiA3OC42NiAyNi4xNTRWMzcuMEg3NS4xMjRWMzQuODU4SDc0LjkyUTc0LjQ0NCAzNS41MzggNzMuNjc5IDM2LjE1UTcyLjkxNCAzNi43NjIgNzEuODk0IDM3LjE1M1E3MC44NzQgMzcuNTQ0IDY5LjYxNiAzNy41NDRaTTcwLjI2MiAzNC41NTJRNzEuNjkgMzQuNTUyIDcyLjc3Nzk5OTk5OTk5OTk5IDMzLjg3MlE3My44NjYgMzMuMTkyIDc0LjQ5NSAzMi4wODdRNzUuMTI0IDMwLjk4MiA3NS4xMjQgMjkuNjg5OTk5OTk5OTk5OTk4UTc0LjM0MiAyOS4yNDc5OTk5OTk5OTk5OTggNzMuMjg4IDI4Ljk1OVE3Mi4yMzQgMjguNjcgNzEuMDEgMjguNjdRNjguOCAyOC42NyA2Ny44NDggMjkuNTU0MDAwMDAwMDAwMDAyUTY2Ljg5NiAzMC40MzggNjYuODk2IDMxLjc2NFE2Ni44OTYgMzIuOTg4IDY3Ljc5NyAzMy43Njk5OTk5OTk5OTk5OTZRNjguNjk4MDAwMDAwMDAwMDEgMzQuNTUyIDcwLjI2MiAzNC41NTJaTTgyLjI5OCAzNy4wVjE5LjY2SDg1Ljk3VjM3LjBaTTg0LjEzNCAxNy4xMVE4My4xMTQgMTcuMTEgODIuMzgzMDAwMDAwMDAwMDEgMTYuMzc4OTk5OTk5OTk5OTk4UTgxLjY1MiAxNS42NDggODEuNjUyIDE0LjYyOFE4MS42NTIgMTMuNTczOTk5OTk5OTk5OTk4IDgyLjM4MzAwMDAwMDAwMDAxIDEyLjg3Njk5OTk5OTk5OTk5OVE4My4xMTQgMTIuMTggODQuMTM0IDEyLjE4UTg1LjE4OCAxMi4xOCA4NS45MDIgMTIuODc2OTk5OTk5OTk5OTk5UTg2LjYxNiAxMy41NzM5OTk5OTk5OTk5OTggODYuNjE2IDE0LjYyOFE4Ni42MTYgMTUuNjQ4IDg1LjkwMiAxNi4zNzg5OTk5OTk5OTk5OThRODUuMTg4IDE3LjExIDg0LjEzNCAxNy4xMVpNOTYuMjA0IDIyLjg1NTk5OTk5OTk5OTk5OFYxOS42Nkg5OS40MzRWMjIuODU1OTk5OTk5OTk5OTk4Wk0xMDQuNTM0IDM3LjI3MlExMDIuMTIgMzcuMjcyIDEwMC42OTIwMDAwMDAwMDAwMSAzNS44NDM5OTk5OTk5OTk5OTRROTkuMjY0MDAwMDAwMDAwMDEgMzQuNDE2IDk5LjI2NDAwMDAwMDAwMDAxIDMxLjk2OFYxNC43NjRIMTAyLjkzNlYzMS4xODZRMTAyLjkzNiAzMi41NDYgMTAzLjQ4IDMzLjE5MlExMDQuMDI0IDMzLjgzOCAxMDUuMjE0IDMzLjgzOFExMDUuNzU4MDAwMDAwMDAwMDEgMzMuODM4IDEwNi4yMzQwMDAwMDAwMDAwMSAzMy42ODVRMTA2LjcxMDAwMDAwMDAwMDAxIDMzLjUzMiAxMDcuMjg4MDAwMDAwMDAwMDEgMzMuMTkyVjM2Ljc2MlExMDYuNjQyMDAwMDAwMDAwMDEgMzcuMCAxMDUuOTYyMDAwMDAwMDAwMDIgMzcuMTM1OTk5OTk5OTk5OTk2UTEwNS4yODIwMDAwMDAwMDAwMSAzNy4yNzIgMTA0LjUzNCAzNy4yNzJaTTEwMi43MzIgMjIuODU1OTk5OTk5OTk5OTk4VjE5LjY2SDEwNy4xNTJWMjIuODU1OTk5OTk5OTk5OTk4Wk0xMTUuODU2MDAwMDAwMDAwMDEgMzcuNTQ0UTExMy45NTIwMDAwMDAwMDAwMSAzNy41NDQgMTEyLjUyNCAzNi43OTZRMTExLjA5NiAzNi4wNDggMTEwLjI2MyAzNC43MzkwMDAwMDAwMDAwMDRRMTA5LjQzIDMzLjQzIDEwOS40MyAzMS43M1ExMDkuNDMgMjkuODYgMTEwLjM5OSAyOC41Njc5OTk5OTk5OTk5OThRMTExLjM2ODAwMDAwMDAwMDAxIDI3LjI3NiAxMTIuOTgzIDI2LjU5NTk5OTk5OTk5OTk5N1ExMTQuNTk4MDAwMDAwMDAwMDEgMjUuOTE1OTk5OTk5OTk5OTk3IDExNi41NzAwMDAwMDAwMDAwMSAyNS45MTU5OTk5OTk5OTk5OTdRMTE3LjY5MjAwMDAwMDAwMDAxIDI1LjkxNTk5OTk5OTk5OTk5NyAxMTguNjEwMDAwMDAwMDAwMDEgMjYuMDY5UTExOS41MjggMjYuMjIyIDEyMC4yNDIwMDAwMDAwMDAwMiAyNi40MjYwMDAwMDAwMDAwMDJRMTIwLjk1NjAwMDAwMDAwMDAyIDI2LjYzIDEyMS4zNjQgMjYuODY4VjI1Ljk1UTEyMS4zNjQgMjQuMjUgMTIwLjE0MDAwMDAwMDAwMDAxIDIzLjIzUTExOC45MTYwMDAwMDAwMDAwMSAyMi4yMSAxMTYuOTc4MDAwMDAwMDAwMDEgMjIuMjFRMTE1LjY1MjAwMDAwMDAwMDAyIDIyLjIxIDExNC40NjIwMDAwMDAwMDAwMiAyMi44MDVRMTEzLjI3MiAyMy40IDExMi41MjQwMDAwMDAwMDAwMiAyNC40MkwxMTAuMDQyMDAwMDAwMDAwMDIgMjIuNDgyUTExMC43OSAyMS40Mjc5OTk5OTk5OTk5OTcgMTExLjg2MTAwMDAwMDAwMDAyIDIwLjY4UTExMi45MzIwMDAwMDAwMDAwMiAxOS45MzIgMTE0LjI1ODAwMDAwMDAwMDAxIDE5LjUyNFExMTUuNTg0IDE5LjExNiAxMTcuMDgwMDAwMDAwMDAwMDEgMTkuMTE2UTEyMC44MjAwMDAwMDAwMDAwMSAxOS4xMTYgMTIyLjg2MDAwMDAwMDAwMDAxIDIwLjk2OVExMjQuOSAyMi44MjIgMTI0LjkgMjYuMTU0VjM3LjBIMTIxLjM2NFYzNC44NThIMTIxLjE2MDAwMDAwMDAwMDAxUTEyMC42ODQwMDAwMDAwMDAwMSAzNS41MzggMTE5LjkxOTAwMDAwMDAwMDAxIDM2LjE1UTExOS4xNTQwMDAwMDAwMDAwMSAzNi43NjIgMTE4LjEzNDAwMDAwMDAwMDAxIDM3LjE1M1ExMTcuMTE0IDM3LjU0NCAxMTUuODU2MDAwMDAwMDAwMDEgMzcuNTQ0Wk0xMTYuNTAyMDAwMDAwMDAwMDEgMzQuNTUyUTExNy45MyAzNC41NTIgMTE5LjAxOCAzMy44NzJRMTIwLjEwNjAwMDAwMDAwMDAxIDMzLjE5MiAxMjAuNzM1MDAwMDAwMDAwMDEgMzIuMDg3UTEyMS4zNjQgMzAuOTgyIDEyMS4zNjQgMjkuNjg5OTk5OTk5OTk5OTk4UTEyMC41ODIwMDAwMDAwMDAwMSAyOS4yNDc5OTk5OTk5OTk5OTggMTE5LjUyOCAyOC45NTlRMTE4LjQ3NCAyOC42NyAxMTcuMjUwMDAwMDAwMDAwMDEgMjguNjdRMTE1LjA0IDI4LjY3IDExNC4wODgwMDAwMDAwMDAwMSAyOS41NTQwMDAwMDAwMDAwMDJRMTEzLjEzNjAwMDAwMDAwMDAxIDMwLjQzOCAxMTMuMTM2MDAwMDAwMDAwMDEgMzEuNzY0UTExMy4xMzYwMDAwMDAwMDAwMSAzMi45ODggMTE0LjAzNyAzMy43Njk5OTk5OTk5OTk5OTZRMTE0LjkzODAwMDAwMDAwMDAyIDM0LjU1MiAxMTYuNTAyMDAwMDAwMDAwMDEgMzQuNTUyWk0xMzYuMzU4IDQ0Ljg4OFExMzQuMDggNDQuODg4IDEzMi40MzEgNDQuMTU3UTEzMC43ODIgNDMuNDI2IDEyOS43NjIgNDIuMjg3MDAwMDAwMDAwMDA2UTEyOC43NDIwMDAwMDAwMDAwMiA0MS4xNDggMTI4LjMgMzkuOTU4TDEzMS43MDAwMDAwMDAwMDAwMiAzOC41M1ExMzIuMjQ0IDM5Ljg5IDEzMy40NTEwMDAwMDAwMDAwMiA0MC43NTcwMDAwMDAwMDAwMDVRMTM0LjY1ODAwMDAwMDAwMDAyIDQxLjYyNCAxMzYuMzU4IDQxLjYyNFExMzguNzcyMDAwMDAwMDAwMDIgNDEuNjI0IDE0MC4xMzIgNDAuMTk2UTE0MS40OTIwMDAwMDAwMDAwMiAzOC43NjggMTQxLjQ5MjAwMDAwMDAwMDAyIDM2LjE1VjM0LjQ4NEgxNDEuMjg4UTE0MC40NzIgMzUuNjc0IDEzOS4wNDQgMzYuNDIyUTEzNy42MTYgMzcuMTcgMTM1Ljc0NiAzNy4xN1ExMzMuNTM2IDM3LjE3IDEzMS42ODMgMzYuMDQ4UTEyOS44MyAzNC45MjYgMTI4LjcyNTAwMDAwMDAwMDAyIDMyLjkwM1ExMjcuNjIgMzAuODggMTI3LjYyIDI4LjE2UTEyNy42MiAyNS40MDYgMTI4LjcyNTAwMDAwMDAwMDAyIDIzLjM4M1ExMjkuODMgMjEuMzYgMTMxLjY4MyAyMC4yMzhRMTMzLjUzNiAxOS4xMTYgMTM1Ljc0NiAxOS4xMTZRMTM3LjYxNiAxOS4xMTYgMTM5LjA0NCAxOS44NDdRMTQwLjQ3MiAyMC41NzggMTQxLjI4OCAyMS44MzZIMTQxLjQ5MjAwMDAwMDAwMDAyVjE5LjY2SDE0NC45OTRWMzYuMDgyUTE0NC45OTQgMzguOTA0IDE0My44ODkgNDAuODc2MDAwMDAwMDAwMDA1UTE0Mi43ODQwMDAwMDAwMDAwMiA0Mi44NDggMTQwLjg0NiA0My44Njc5OTk5OTk5OTk5OTVRMTM4LjkwODAwMDAwMDAwMDAyIDQ0Ljg4OCAxMzYuMzU4IDQ0Ljg4OFpNMTM2LjM5MiAzMy44MzhRMTM3Ljc1MiAzMy44MzggMTM4LjkyNSAzMy4xNzVRMTQwLjA5OCAzMi41MTIgMTQwLjc5NTAwMDAwMDAwMDAyIDMxLjIzNzAwMDAwMDAwMDAwMlExNDEuNDkyMDAwMDAwMDAwMDIgMjkuOTYyIDE0MS40OTIwMDAwMDAwMDAwMiAyOC4xNlExNDEuNDkyMDAwMDAwMDAwMDIgMjYuMjU2IDE0MC43OTUwMDAwMDAwMDAwMiAyNC45OTc5OTk5OTk5OTk5OThRMTQwLjA5OCAyMy43NCAxMzguOTI1IDIzLjA5NFExMzcuNzUyIDIyLjQ0OCAxMzYuMzkyIDIyLjQ0OFExMzUuMDMyIDIyLjQ0OCAxMzMuODU5IDIzLjA5NFExMzIuNjg2IDIzLjc0IDEzMS45NzIgMjUuMDE1UTEzMS4yNTggMjYuMjkgMTMxLjI1OCAyOC4xNlExMzEuMjU4IDI5Ljk5NiAxMzEuOTcyIDMxLjI3MVExMzIuNjg2IDMyLjU0NiAxMzMuODU5IDMzLjE5MlExMzUuMDMyIDMzLjgzOCAxMzYuMzkyIDMzLjgzOFpNMTYzLjg2NCAzNy41NDRRMTYxLjUxOCAzNy41NDQgMTU5LjYxNCAzNi4zNTRRMTU3LjcxIDM1LjE2NCAxNTYuNjIyIDMzLjA5UTE1NS41MzQgMzEuMDE2IDE1NS41MzQgMjguMzNRMTU1LjUzNCAyNS42NDQgMTU2LjYyMiAyMy41N1ExNTcuNzEgMjEuNDk2IDE1OS42MTQgMjAuMzA1OTk5OTk5OTk5OTk3UTE2MS41MTggMTkuMTE2IDE2My44NjQgMTkuMTE2UTE2NS4yMjQgMTkuMTE2IDE2Ni4zMTIgMTkuNTI0UTE2Ny40IDE5LjkzMiAxNjguMTk5IDIwLjU5NVExNjguOTk4IDIxLjI1OCAxNjkuNDQgMjIuMDA2SDE2OS42NDRMMTY5LjQ0IDE5LjU5MlYxMi42NTU5OTk5OTk5OTk5OTlIMTczLjA3OFYzNy4wSDE2OS42NDRWMzQuNjg4SDE2OS40NFExNjguOTk4IDM1LjQwMiAxNjguMTk5IDM2LjA2NVExNjcuNCAzNi43MjggMTY2LjMxMiAzNy4xMzU5OTk5OTk5OTk5OTZRMTY1LjIyNCAzNy41NDQgMTYzLjg2NCAzNy41NDRaTTE2NC40MDggMzQuMTc4UTE2NS43NjggMzQuMTc4IDE2Ni45NzUgMzMuNDY0UTE2OC4xODIgMzIuNzUgMTY4LjkxMyAzMS40NDFRMTY5LjY0NCAzMC4xMzE5OTk5OTk5OTk5OTggMTY5LjY0NCAyOC4zM1ExNjkuNjQ0IDI2LjUyOCAxNjguOTEzIDI1LjIxODk5OTk5OTk5OTk5OFExNjguMTgyIDIzLjkwOTk5OTk5OTk5OTk5NyAxNjYuOTc1IDIzLjE5NTk5OTk5OTk5OTk5OFExNjUuNzY4IDIyLjQ4MiAxNjQuNDA4IDIyLjQ4MlExNjMuMDQ4IDIyLjQ4MiAxNjEuODU4IDIzLjE5NTk5OTk5OTk5OTk5OFExNjAuNjY4IDIzLjkwOTk5OTk5OTk5OTk5NyAxNTkuOTIwMDAwMDAwMDAwMDIgMjUuMjE4OTk5OTk5OTk5OTk4UTE1OS4xNzIgMjYuNTI4IDE1OS4xNzIgMjguMzNRMTU5LjE3MiAzMC4wOTggMTU5LjkyMDAwMDAwMDAwMDAyIDMxLjQyNFExNjAuNjY4IDMyLjc1IDE2MS44NTggMzMuNDY0UTE2My4wNDggMzQuMTc4IDE2NC40MDggMzQuMTc4Wk0xODQuOTEgMzcuNTQ0UTE4Mi4zNTk5OTk5OTk5OTk5OSAzNy41NDQgMTgwLjM1Mzk5OTk5OTk5OTk4IDM2LjM1NFExNzguMzQ3OTk5OTk5OTk5OTggMzUuMTY0IDE3Ny4yMDkgMzMuMDlRMTc2LjA3IDMxLjAxNiAxNzYuMDcgMjguMzYzOTk5OTk5OTk5OTk3UTE3Ni4wNyAyNS44ODE5OTk5OTk5OTk5OTggMTc3LjE1ODAwMDAwMDAwMDAyIDIzLjc3Mzk5OTk5OTk5OTk5N1ExNzguMjQ2IDIxLjY2NTk5OTk5OTk5OTk5NyAxODAuMjAxMDAwMDAwMDAwMDIgMjAuMzkxUTE4Mi4xNTYgMTkuMTE2IDE4NC43MDYgMTkuMTE2UTE4Ny4zOTIgMTkuMTE2IDE4OS4yNzkgMjAuMjcyUTE5MS4xNjYgMjEuNDI3OTk5OTk5OTk5OTk3IDE5Mi4xNTIgMjMuNDMzOTk5OTk5OTk5OTk3UTE5My4xMzggMjUuNDM5OTk5OTk5OTk5OTk4IDE5My4xMzggMjcuOTU2UTE5My4xMzggMjguMzMgMTkzLjEyMDk5OTk5OTk5OTk4IDI4LjYzNlExOTMuMTAzOTk5OTk5OTk5OTggMjguOTQyIDE5My4wNyAyOS4xMTJIMTc4LjE0NFYyNi4zNTc5OTk5OTk5OTk5OTdIMTg5LjVRMTg5LjQ2NiAyNS43MTIgMTg5LjE2IDI0Ljk4MVExODguODUzOTk5OTk5OTk5OTggMjQuMjUgMTg4LjI3NiAyMy42Mzc5OTk5OTk5OTk5OThRMTg3LjY5OCAyMy4wMjYgMTg2LjgxNDAwMDAwMDAwMDAyIDIyLjYzNDk5OTk5OTk5OTk5OFExODUuOTMgMjIuMjQ0IDE4NC43NCAyMi4yNDRRMTgzLjI0NCAyMi4yNDQgMTgyLjA4OCAyMy4wMDlRMTgwLjkzMiAyMy43NzQgMTgwLjI4NiAyNS4xMzRRMTc5LjY0IDI2LjQ5NCAxNzkuNjQgMjguMjk2UTE3OS42NCAzMC4yNjggMTgwLjM4Nzk5OTk5OTk5OTk4IDMxLjU5NFExODEuMTM2IDMyLjkyIDE4Mi4zNiAzMy42UTE4My41ODQgMzQuMjggMTg1LjAxMiAzNC4yOFExODYuNzQ2IDM0LjI4IDE4Ny45MTg5OTk5OTk5OTk5OCAzMy40ODFRMTg5LjA5MTk5OTk5OTk5OTk4IDMyLjY4MiAxODkuNzcyIDMxLjQ5MkwxOTIuNzk4IDMyLjk1NFExOTEuNjc2IDM0Ljk5NCAxODkuNzM4IDM2LjI2OVExODcuOCAzNy41NDQgMTg0LjkxIDM3LjU0NFpNMjA1LjM0NCAzNy41NDRRMjA0LjAxOCAzNy41NDQgMjAyLjkzIDM3LjEzNTk5OTk5OTk5OTk5NlEyMDEuODQyIDM2LjcyOCAyMDEuMDQzIDM2LjA2NVEyMDAuMjQ0IDM1LjQwMiAxOTkuNzY4IDM0LjY4OEgxOTkuNTY0VjM3LjBIMTk2LjA5NlYxMi42NTU5OTk5OTk5OTk5OTlIMTk5Ljc2OFYxOS41OTJMMTk5LjU2NCAyMi4wMDZIMTk5Ljc2OFEyMDAuMjQ0IDIxLjI1OCAyMDEuMDQzIDIwLjU5NVEyMDEuODQyIDE5LjkzMiAyMDIuOTMgMTkuNTI0UTIwNC4wMTggMTkuMTE2IDIwNS4zNDQgMTkuMTE2UTIwNy43MjQgMTkuMTE2IDIwOS41OTQgMjAuMzA1OTk5OTk5OTk5OTk3UTIxMS40NjQgMjEuNDk2IDIxMi41NjkwMDAwMDAwMDAwMiAyMy41N1EyMTMuNjc0IDI1LjY0NCAyMTMuNjc0IDI4LjMzUTIxMy42NzQgMzEuMDE2IDIxMi41NjkwMDAwMDAwMDAwMiAzMy4wOVEyMTEuNDY0IDM1LjE2NCAyMDkuNTk0IDM2LjM1NFEyMDcuNzI0IDM3LjU0NCAyMDUuMzQ0IDM3LjU0NFpNMjA0LjggMzQuMTc4UTIwNi4xNiAzNC4xNzggMjA3LjM2NzAwMDAwMDAwMDAyIDMzLjQ2NFEyMDguNTc0IDMyLjc1IDIwOS4zMDUgMzEuNDI0UTIxMC4wMzYgMzAuMDk4IDIxMC4wMzYgMjguMzNRMjEwLjAzNiAyNi41MjggMjA5LjMwNSAyNS4yMTg5OTk5OTk5OTk5OThRMjA4LjU3NCAyMy45MDk5OTk5OTk5OTk5OTcgMjA3LjM2NzAwMDAwMDAwMDAyIDIzLjE5NTk5OTk5OTk5OTk5OFEyMDYuMTYgMjIuNDgyIDIwNC44IDIyLjQ4MlEyMDMuNDQgMjIuNDgyIDIwMi4yNSAyMy4xOTU5OTk5OTk5OTk5OThRMjAxLjA2IDIzLjkwOTk5OTk5OTk5OTk5NyAyMDAuMzEyIDI1LjIxODk5OTk5OTk5OTk5OFExOTkuNTY0IDI2LjUyOCAxOTkuNTY0IDI4LjMzUTE5OS41NjQgMzAuMTMxOTk5OTk5OTk5OTk4IDIwMC4zMTIgMzEuNDQxUTIwMS4wNiAzMi43NSAyMDIuMjUgMzMuNDY0UTIwMy40NCAzNC4xNzggMjA0LjggMzQuMTc4Wk0yMjIuOTIyIDM3LjU0NFEyMTkuNzI2IDM3LjU0NCAyMTguMTExIDM1LjYyM1EyMTYuNDk2IDMzLjcwMiAyMTYuNDk2IDMwLjQwNFYxOS42NkgyMjAuMTY4VjI5Ljg5NFEyMjAuMTY4IDMyLjA3IDIyMS4yMDQ5OTk5OTk5OTk5OCAzMy4xMjM5OTk5OTk5OTk5OTVRMjIyLjI0MiAzNC4xNzggMjIzLjgwNiAzNC4xNzhRMjI1LjIzNCAzNC4xNzggMjI2LjI1NDAwMDAwMDAwMDAyIDMzLjQ0N1EyMjcuMjc0IDMyLjcxNiAyMjcuODM1IDMxLjUyNlEyMjguMzk2MDAwMDAwMDAwMDIgMzAuMzM2IDIyOC4zOTYwMDAwMDAwMDAwMiAyOC45NzZWMTkuNjZIMjMyLjAzNFYzNy4wSDIyOC42VjM0LjY1Mzk5OTk5OTk5OTk5NkgyMjguMzk2MDAwMDAwMDAwMDJRMjI3LjkyMDAwMDAwMDAwMDAyIDM1LjQ3IDIyNy4wNyAzNi4xMTZRMjI2LjIyIDM2Ljc2MiAyMjUuMTY2IDM3LjE1M1EyMjQuMTEyIDM3LjU0NCAyMjIuOTIyIDM3LjU0NFpNMjQzLjc2NCA0NC44ODhRMjQxLjQ4NjAwMDAwMDAwMDAyIDQ0Ljg4OCAyMzkuODM3MDAwMDAwMDAwMDIgNDQuMTU3UTIzOC4xODgwMDAwMDAwMDAwMiA0My40MjYgMjM3LjE2OCA0Mi4yODcwMDAwMDAwMDAwMDZRMjM2LjE0ODAwMDAwMDAwMDAyIDQxLjE0OCAyMzUuNzA2MDAwMDAwMDAwMDIgMzkuOTU4TDIzOS4xMDYwMDAwMDAwMDAwMiAzOC41M1EyMzkuNjUgMzkuODkgMjQwLjg1NzAwMDAwMDAwMDAzIDQwLjc1NzAwMDAwMDAwMDAwNVEyNDIuMDY0MDAwMDAwMDAwMDIgNDEuNjI0IDI0My43NjQgNDEuNjI0UTI0Ni4xNzgwMDAwMDAwMDAwMyA0MS42MjQgMjQ3LjUzOCA0MC4xOTZRMjQ4Ljg5ODAwMDAwMDAwMDAyIDM4Ljc2OCAyNDguODk4MDAwMDAwMDAwMDIgMzYuMTVWMzQuNDg0SDI0OC42OTQwMDAwMDAwMDAwMlEyNDcuODc4MDAwMDAwMDAwMDEgMzUuNjc0IDI0Ni40NTAwMDAwMDAwMDAwMiAzNi40MjJRMjQ1LjAyMjAwMDAwMDAwMDAyIDM3LjE3IDI0My4xNTIwMDAwMDAwMDAwMiAzNy4xN1EyNDAuOTQyIDM3LjE3IDIzOS4wODkgMzYuMDQ4UTIzNy4yMzYwMDAwMDAwMDAwMiAzNC45MjYgMjM2LjEzMTAwMDAwMDAwMDAzIDMyLjkwM1EyMzUuMDI2IDMwLjg4IDIzNS4wMjYgMjguMTZRMjM1LjAyNiAyNS40MDYgMjM2LjEzMTAwMDAwMDAwMDAzIDIzLjM4M1EyMzcuMjM2MDAwMDAwMDAwMDIgMjEuMzYgMjM5LjA4OSAyMC4yMzhRMjQwLjk0MiAxOS4xMTYgMjQzLjE1MjAwMDAwMDAwMDAyIDE5LjExNlEyNDUuMDIyMDAwMDAwMDAwMDIgMTkuMTE2IDI0Ni40NTAwMDAwMDAwMDAwMiAxOS44NDdRMjQ3Ljg3ODAwMDAwMDAwMDAxIDIwLjU3OCAyNDguNjk0MDAwMDAwMDAwMDIgMjEuODM2SDI0OC44OTgwMDAwMDAwMDAwMlYxOS42NkgyNTIuNFYzNi4wODJRMjUyLjQgMzguOTA0IDI1MS4yOTUwMDAwMDAwMDAwMiA0MC44NzYwMDAwMDAwMDAwMDVRMjUwLjE5MDAwMDAwMDAwMDAzIDQyLjg0OCAyNDguMjUyIDQzLjg2Nzk5OTk5OTk5OTk5NVEyNDYuMzE0MDAwMDAwMDAwMDIgNDQuODg4IDI0My43NjQgNDQuODg4Wk0yNDMuNzk4IDMzLjgzOFEyNDUuMTU4MDAwMDAwMDAwMDIgMzMuODM4IDI0Ni4zMzEwMDAwMDAwMDAwMiAzMy4xNzVRMjQ3LjUwNDAwMDAwMDAwMDAyIDMyLjUxMiAyNDguMjAxMDAwMDAwMDAwMDIgMzEuMjM3MDAwMDAwMDAwMDAyUTI0OC44OTgwMDAwMDAwMDAwMiAyOS45NjIgMjQ4Ljg5ODAwMDAwMDAwMDAyIDI4LjE2UTI0OC44OTgwMDAwMDAwMDAwMiAyNi4yNTYgMjQ4LjIwMTAwMDAwMDAwMDAyIDI0Ljk5Nzk5OTk5OTk5OTk5OFEyNDcuNTA0MDAwMDAwMDAwMDIgMjMuNzQgMjQ2LjMzMTAwMDAwMDAwMDAyIDIzLjA5NFEyNDUuMTU4MDAwMDAwMDAwMDIgMjIuNDQ4IDI0My43OTggMjIuNDQ4UTI0Mi40MzgwMDAwMDAwMDAwMiAyMi40NDggMjQxLjI2NTAwMDAwMDAwMDAxIDIzLjA5NFEyNDAuMDkyIDIzLjc0IDIzOS4zNzgwMDAwMDAwMDAwMSAyNS4wMTVRMjM4LjY2NDAwMDAwMDAwMDAyIDI2LjI5IDIzOC42NjQwMDAwMDAwMDAwMiAyOC4xNlEyMzguNjY0MDAwMDAwMDAwMDIgMjkuOTk2IDIzOS4zNzgwMDAwMDAwMDAwMSAzMS4yNzFRMjQwLjA5MiAzMi41NDYgMjQxLjI2NTAwMDAwMDAwMDAxIDMzLjE5MlEyNDIuNDM4MDAwMDAwMDAwMDIgMzMuODM4IDI0My43OTggMzMuODM4Wk0yNjQuMDk2IDQ0Ljg4OFEyNjEuODE4IDQ0Ljg4OCAyNjAuMTY5IDQ0LjE1N1EyNTguNTIgNDMuNDI2IDI1Ny41IDQyLjI4NzAwMDAwMDAwMDAwNlEyNTYuNDggNDEuMTQ4IDI1Ni4wMzggMzkuOTU4TDI1OS40MzggMzguNTNRMjU5Ljk4MiAzOS44OSAyNjEuMTg5IDQwLjc1NzAwMDAwMDAwMDAwNVEyNjIuMzk2IDQxLjYyNCAyNjQuMDk2IDQxLjYyNFEyNjYuNTEgNDEuNjI0IDI2Ny44NyA0MC4xOTZRMjY5LjIzIDM4Ljc2OCAyNjkuMjMgMzYuMTVWMzQuNDg0SDI2OS4wMjZRMjY4LjIxMDAwMDAwMDAwMDA0IDM1LjY3NCAyNjYuNzgyMDAwMDAwMDAwMDQgMzYuNDIyUTI2NS4zNTQgMzcuMTcgMjYzLjQ4NCAzNy4xN1EyNjEuMjc0IDM3LjE3IDI1OS40MjEgMzYuMDQ4UTI1Ny41NjggMzQuOTI2IDI1Ni40NjI5OTk5OTk5OTk5NyAzMi45MDNRMjU1LjM1OCAzMC44OCAyNTUuMzU4IDI4LjE2UTI1NS4zNTggMjUuNDA2IDI1Ni40NjI5OTk5OTk5OTk5NyAyMy4zODNRMjU3LjU2OCAyMS4zNiAyNTkuNDIxIDIwLjIzOFEyNjEuMjc0IDE5LjExNiAyNjMuNDg0IDE5LjExNlEyNjUuMzU0IDE5LjExNiAyNjYuNzgyMDAwMDAwMDAwMDQgMTkuODQ3UTI2OC4yMTAwMDAwMDAwMDAwNCAyMC41NzggMjY5LjAyNiAyMS44MzZIMjY5LjIzVjE5LjY2SDI3Mi43MzJWMzYuMDgyUTI3Mi43MzIgMzguOTA0IDI3MS42MjcgNDAuODc2MDAwMDAwMDAwMDA1UTI3MC41MjIgNDIuODQ4IDI2OC41ODQgNDMuODY3OTk5OTk5OTk5OTk1UTI2Ni42NDYgNDQuODg4IDI2NC4wOTYgNDQuODg4Wk0yNjQuMTMgMzMuODM4UTI2NS40OSAzMy44MzggMjY2LjY2MyAzMy4xNzVRMjY3LjgzNiAzMi41MTIgMjY4LjUzMyAzMS4yMzcwMDAwMDAwMDAwMDJRMjY5LjIzIDI5Ljk2MiAyNjkuMjMgMjguMTZRMjY5LjIzIDI2LjI1NiAyNjguNTMzIDI0Ljk5Nzk5OTk5OTk5OTk5OFEyNjcuODM2IDIzLjc0IDI2Ni42NjMgMjMuMDk0UTI2NS40OSAyMi40NDggMjY0LjEzIDIyLjQ0OFEyNjIuNzcgMjIuNDQ4IDI2MS41OTcgMjMuMDk0UTI2MC40MjQgMjMuNzQgMjU5LjcxIDI1LjAxNVEyNTguOTk2IDI2LjI5IDI1OC45OTYgMjguMTZRMjU4Ljk5NiAyOS45OTYgMjU5LjcxIDMxLjI3MVEyNjAuNDI0IDMyLjU0NiAyNjEuNTk3IDMzLjE5MlEyNjIuNzcgMzMuODM4IDI2NC4xMyAzMy44MzhaTTI4NC41MyAzNy41NDRRMjgxLjk4IDM3LjU0NCAyNzkuOTc0MDAwMDAwMDAwMDUgMzYuMzU0UTI3Ny45NjggMzUuMTY0IDI3Ni44MjkgMzMuMDlRMjc1LjY5IDMxLjAxNiAyNzUuNjkgMjguMzYzOTk5OTk5OTk5OTk3UTI3NS42OSAyNS44ODE5OTk5OTk5OTk5OTggMjc2Ljc3OCAyMy43NzM5OTk5OTk5OTk5OTdRMjc3Ljg2NiAyMS42NjU5OTk5OTk5OTk5OTcgMjc5LjgyMSAyMC4zOTFRMjgxLjc3NiAxOS4xMTYgMjg0LjMyNiAxOS4xMTZRMjg3LjAxMiAxOS4xMTYgMjg4Ljg5OSAyMC4yNzJRMjkwLjc4NiAyMS40Mjc5OTk5OTk5OTk5OTcgMjkxLjc3MiAyMy40MzM5OTk5OTk5OTk5OTdRMjkyLjc1OCAyNS40Mzk5OTk5OTk5OTk5OTggMjkyLjc1OCAyNy45NTZRMjkyLjc1OCAyOC4zMyAyOTIuNzQxIDI4LjYzNlEyOTIuNzI0IDI4Ljk0MiAyOTIuNjkgMjkuMTEySDI3Ny43NjRWMjYuMzU3OTk5OTk5OTk5OTk3SDI4OS4xMlEyODkuMDg2IDI1LjcxMiAyODguNzggMjQuOTgxUTI4OC40NzQgMjQuMjUgMjg3Ljg5NTk5OTk5OTk5OTk2IDIzLjYzNzk5OTk5OTk5OTk5OFEyODcuMzE4IDIzLjAyNiAyODYuNDMzOTk5OTk5OTk5OTcgMjIuNjM0OTk5OTk5OTk5OTk4UTI4NS41NSAyMi4yNDQgMjg0LjM2IDIyLjI0NFEyODIuODY0IDIyLjI0NCAyODEuNzA3OTk5OTk5OTk5OTcgMjMuMDA5UTI4MC41NTIgMjMuNzc0IDI3OS45MDYgMjUuMTM0UTI3OS4yNiAyNi40OTQgMjc5LjI2IDI4LjI5NlEyNzkuMjYgMzAuMjY4IDI4MC4wMDggMzEuNTk0UTI4MC43NTYgMzIuOTIgMjgxLjk4IDMzLjZRMjgzLjIwNCAzNC4yOCAyODQuNjMyIDM0LjI4UTI4Ni4zNjYgMzQuMjggMjg3LjUzOSAzMy40ODFRMjg4LjcxMiAzMi42ODIgMjg5LjM5MiAzMS40OTJMMjkyLjQxOCAzMi45NTRRMjkxLjI5NiAzNC45OTQgMjg5LjM1OCAzNi4yNjlRMjg3LjQyIDM3LjU0NCAyODQuNTMgMzcuNTQ0Wk0yOTUuNzE2IDM3LjBWMTkuNjZIMjk5LjE4NFYyMi4yMUgyOTkuMzg4UTI5OS43OTYgMjEuMzI2IDMwMC41NjEwMDAwMDAwMDAwNCAyMC42NDZRMzAxLjMyNiAxOS45NjU5OTk5OTk5OTk5OTggMzAyLjMyOSAxOS41NThRMzAzLjMzMiAxOS4xNSAzMDQuNDIgMTkuMTVRMzA1LjEzNCAxOS4xNSAzMDUuNjI3IDE5LjIzNVEzMDYuMTIgMTkuMzIgMzA2LjUyOCAxOS40OVYyMy4yOThRMzA1Ljg4MiAyMy4wMjYgMzA1LjIxOSAyMi44NTZRMzA0LjU1NiAyMi42ODYgMzAzLjg0MiAyMi42ODZRMzAyLjU1IDIyLjY4NiAzMDEuNTQ3IDIzLjM4M1EzMDAuNTQ0IDI0LjA4IDI5OS45NjYgMjUuMjM1OTk5OTk5OTk5OTk3UTI5OS4zODggMjYuMzkyIDI5OS4zODggMjcuODJWMzcuMFoiIGZpbGw9IiNGMEY0RkYiLz48L3N2Zz4K",
|
|
12
|
-
"atd-icon": "data:image/svg+xml;base64,
|
|
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
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==",
|
|
14
14
|
};
|
package/src/checks.js
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import { messages } from "./i18n.js";
|
|
5
5
|
import { isOwnAddress } from "./redact.js";
|
|
6
6
|
|
|
7
|
+
const platformName = (p) => ({ meta: "Meta", tiktok: "TikTok" })[p] ?? p;
|
|
7
8
|
const NON_GOOGLE_AD_PLATFORMS = new Set(["meta", "tiktok"]);
|
|
8
9
|
const GOOGLE_PLATFORMS = new Set(["ga4", "google_ads"]);
|
|
9
10
|
|
|
@@ -136,6 +137,7 @@ export function checkRun(plan, run, { lang = "en" } = {}) {
|
|
|
136
137
|
// Platforms are compared in lower case ("GA4" in a plan is ga4). Planned events for
|
|
137
138
|
// providers the user chose not to check are left out, and listed in one info line.
|
|
138
139
|
plan = { ...plan, events: plan.events.map((e) => ({ ...e, platform: String(e.platform ?? "").toLowerCase() })) };
|
|
140
|
+
const hasPlan = plan.events.length > 0;
|
|
139
141
|
if (run.providers) {
|
|
140
142
|
const skipped = plan.events.filter((e) => !run.providers.includes(e.platform) && expectedIn(e, run.journeyId));
|
|
141
143
|
plan = { ...plan, events: plan.events.filter((e) => run.providers.includes(e.platform)) };
|
|
@@ -279,7 +281,9 @@ export function checkRun(plan, run, { lang = "en" } = {}) {
|
|
|
279
281
|
const own = run.hits.filter((h) => h.platform === platform);
|
|
280
282
|
return { platform, server: names(own.filter((h) => h.delivery === "server")), browser: names(own.filter((h) => h.delivery !== "server")) };
|
|
281
283
|
}).filter((p) => p.server.length);
|
|
282
|
-
|
|
284
|
+
// Only name the platforms whose server-side copies this run would have checked.
|
|
285
|
+
const unseenServer = ["meta", "tiktok"].filter((p) => !run.providers || run.providers.includes(p)).map(platformName);
|
|
286
|
+
for (const p of byPlatform) findings.push({ ...base, severity: "info", check: "server_side", platform: p.platform, detail: d.serverSide(p.platform, p.server, p.browser, unseenServer) });
|
|
283
287
|
}
|
|
284
288
|
const serverVendors = [...new Set((run.network ?? []).map((c) => c.provider).filter((p) => p === "stape" || p === "elevar"))];
|
|
285
289
|
if (serverVendors.length || serverHits.length) {
|
|
@@ -408,9 +412,9 @@ export function checkRun(plan, run, { lang = "en" } = {}) {
|
|
|
408
412
|
findings.push({ ...base, severity: "warning", check: "pii_datalayer", step: stepLabel(plainPush.step), detail: d.piiDataLayer(plainPush.userData.plain) });
|
|
409
413
|
}
|
|
410
414
|
|
|
411
|
-
// Events that are not in the plan.
|
|
415
|
+
// Events that are not in the plan. Without a plan every event would be listed, which says nothing.
|
|
412
416
|
const unplanned = [...new Set(run.hits.filter((h) => !planEventFor(h)).map((h) => key(h.platform, h.name)))];
|
|
413
|
-
if (unplanned.length) {
|
|
417
|
+
if (hasPlan && unplanned.length) {
|
|
414
418
|
findings.push({ ...base, severity: "info", check: "unplanned_events", detail: d.unplanned(unplanned) });
|
|
415
419
|
}
|
|
416
420
|
|
package/src/help.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { LANGUAGES } from "./i18n.js";
|
|
2
|
-
import { PROVIDERS } from "./providers.js";
|
|
2
|
+
import { PROVIDERS, aiStatus } from "./providers.js";
|
|
3
3
|
import { JOURNEY_PRESETS } from "./journeys.js";
|
|
4
4
|
|
|
5
5
|
const journeys = Object.keys(JOURNEY_PRESETS).join(", ");
|
|
@@ -103,5 +103,6 @@ const HELP = { run: RUN, plan: PLAN, replay: REPLAY, mcp: MCP };
|
|
|
103
103
|
|
|
104
104
|
/** Help text for a command, or the top-level help when the command is unknown or missing. */
|
|
105
105
|
export function helpText(command) {
|
|
106
|
-
|
|
106
|
+
// The main help ends with which AI a run would use, so a mix of exported keys is never a surprise.
|
|
107
|
+
return HELP[command] ?? `${MAIN}\n\n${aiStatus()}`;
|
|
107
108
|
}
|
package/src/i18n.js
CHANGED
|
@@ -104,6 +104,23 @@ const en = {
|
|
|
104
104
|
stepsCol: "Steps",
|
|
105
105
|
problemsCol: "Problems",
|
|
106
106
|
scopeCard: "Scope",
|
|
107
|
+
site: "Site",
|
|
108
|
+
runCard: "This run",
|
|
109
|
+
runPlatforms: "Platforms",
|
|
110
|
+
runAi: "AI",
|
|
111
|
+
runAiOn: (name, model) => `On · ${name}${model ? ` · ${model}` : ""}`,
|
|
112
|
+
runAiOff: "Off",
|
|
113
|
+
runPlan: "Plan",
|
|
114
|
+
runPlanEvents: (n) => `${n} ${n === 1 ? "event" : "events"}`,
|
|
115
|
+
runNoPlan: "None",
|
|
116
|
+
runJourneys: "Journeys",
|
|
117
|
+
runViewports: "Viewports",
|
|
118
|
+
runLanguage: "Language",
|
|
119
|
+
runVersion: "Version",
|
|
120
|
+
consentDefault: "Default",
|
|
121
|
+
consentUpdate: "Update",
|
|
122
|
+
consentLead: "Consent Mode commands the site sent, in order.",
|
|
123
|
+
consentNone: "The site sent no Consent Mode commands on this journey.",
|
|
107
124
|
skippedLine: (list, n) => `${n} out-of-scope ${n === 1 ? "request was" : "requests were"} skipped: ${list}.`,
|
|
108
125
|
findingHint: "Open a finding to see its likely cause, evidence and fix steps.",
|
|
109
126
|
spread: (j, s) => `${j} ${j === 1 ? "journey" : "journeys"}${s ? ` · ${s} ${s === 1 ? "step" : "steps"}` : ""}`,
|
|
@@ -138,7 +155,7 @@ const en = {
|
|
|
138
155
|
purchaseCurrency: (platform, name, c) => `${platform} ${q(name)} was sent with currency ${q(c)}, which is not a 3-letter ISO 4217 code in capitals (such as USD, EUR or TRY). Platforms may drop the revenue or convert it wrongly.`,
|
|
139
156
|
purchaseItemsEmpty: (platform, name) => `${platform} ${q(name)} was sent with no items, so product and item reports get nothing for this order.`,
|
|
140
157
|
purchaseMismatch: (id, diffs) => `GA4 and Meta reported ${id ? `order ${q(id)}` : "the purchase"} differently: ${diffs.map(([f, g, m]) => `${f} ${q(g)} in GA4 and ${q(m)} in Meta`).join("; ")}. One of the tags reads the wrong data.`,
|
|
141
|
-
serverSide: (platform, server, browser) => `${platform}: ${server.map(q).join(", ")} ${server.length === 1 ? "was" : "were"} sent to a server container on the site's own domain (server-side tagging)${browser.length ? `; ${browser.map(q).join(", ")} went directly from the browser` : ""}. Server-side copies of
|
|
158
|
+
serverSide: (platform, server, browser, unseen = []) => `${platform}: ${server.map(q).join(", ")} ${server.length === 1 ? "was" : "were"} sent to a server container on the site's own domain (server-side tagging)${browser.length ? `; ${browser.map(q).join(", ")} went directly from the browser` : ""}.${unseen.length ? ` Server-side copies of ${unseen.join(" and ")} events never pass through the browser, so they can't be seen here.` : ""}`,
|
|
142
159
|
dedupIdMissing: (platform, name) => `${platform} ${q(name)} was sent from the browser without an event ID, while a server-side setup was seen on this site. If the server also sends this event, ${platform} can't match the two and counts it twice.`,
|
|
143
160
|
consentDefaultMissing: () => "No Google Consent Mode default command (gtag('consent', 'default', ...)) was found in the dataLayer.",
|
|
144
161
|
consentDefaultLate: () => "The Consent Mode default was set after the first tracking hit was sent.",
|
|
@@ -263,6 +280,23 @@ const tr = {
|
|
|
263
280
|
stepsCol: "Adım",
|
|
264
281
|
problemsCol: "Sorun",
|
|
265
282
|
scopeCard: "Kapsam",
|
|
283
|
+
site: "Site",
|
|
284
|
+
runCard: "Bu çalıştırma",
|
|
285
|
+
runPlatforms: "Platformlar",
|
|
286
|
+
runAi: "Yapay zekâ",
|
|
287
|
+
runAiOn: (name, model) => `Açık · ${name}${model ? ` · ${model}` : ""}`,
|
|
288
|
+
runAiOff: "Kapalı",
|
|
289
|
+
runPlan: "Plan",
|
|
290
|
+
runPlanEvents: (n) => `${n} olay`,
|
|
291
|
+
runNoPlan: "Yok",
|
|
292
|
+
runJourneys: "Yolculuklar",
|
|
293
|
+
runViewports: "Ekranlar",
|
|
294
|
+
runLanguage: "Dil",
|
|
295
|
+
runVersion: "Sürüm",
|
|
296
|
+
consentDefault: "Varsayılan",
|
|
297
|
+
consentUpdate: "Güncelleme",
|
|
298
|
+
consentLead: "Sitenin gönderdiği Consent Mode komutları, sırasıyla.",
|
|
299
|
+
consentNone: "Site bu yolculukta Consent Mode komutu göndermedi.",
|
|
266
300
|
skippedLine: (list, n) => `Kapsam dışı ${n} istek atlandı: ${list}.`,
|
|
267
301
|
findingHint: "Bir bulguyu açınca olası neden, kanıt ve çözüm adımları görünür.",
|
|
268
302
|
spread: (j, s) => `${j} yolculuk${s ? ` · ${s} adım` : ""}`,
|
|
@@ -297,7 +331,7 @@ const tr = {
|
|
|
297
331
|
purchaseCurrency: (platform, name, c) => `${platform} ${q(name)} ${q(c)} para birimiyle gönderildi; bu, büyük harfli 3 harfli bir ISO 4217 kodu değil (USD, EUR veya TRY gibi). Platformlar geliri atabilir veya yanlış çevirebilir.`,
|
|
298
332
|
purchaseItemsEmpty: (platform, name) => `${platform} ${q(name)} ürün listesi boş gönderildi, bu yüzden ürün raporları bu siparişten veri alamaz.`,
|
|
299
333
|
purchaseMismatch: (id, diffs) => `GA4 ve Meta ${id ? `${q(id)} siparişini` : "satın almayı"} farklı bildirdi: ${diffs.map(([f, g, m]) => `${f === "value" ? "değer" : "para birimi"} GA4'te ${q(g)}, Meta'da ${q(m)}`).join("; ")}. Etiketlerden biri yanlış veriyi okuyor.`,
|
|
300
|
-
serverSide: (platform, server, browser) => `${platform}: ${server.map(q).join(", ")} sitenin kendi alan adındaki bir sunucu konteynerine gönderildi (sunucu tarafı etiketleme)${browser.length ? `; ${browser.map(q).join(", ")} doğrudan tarayıcıdan gitti` : ""}.
|
|
334
|
+
serverSide: (platform, server, browser, unseen = []) => `${platform}: ${server.map(q).join(", ")} sitenin kendi alan adındaki bir sunucu konteynerine gönderildi (sunucu tarafı etiketleme)${browser.length ? `; ${browser.map(q).join(", ")} doğrudan tarayıcıdan gitti` : ""}.${unseen.length ? ` ${unseen.join(" ve ")} olaylarının sunucu tarafı kopyaları tarayıcıdan geçmez, bu yüzden burada görünmez.` : ""}`,
|
|
301
335
|
dedupIdMissing: (platform, name) => `${platform} ${q(name)} tarayıcıdan olay kimliği olmadan gönderildi; sitede sunucu tarafı bir kurulum görüldü. Sunucu da bu olayı gönderiyorsa ${platform} ikisini eşleştiremez ve iki kez sayar.`,
|
|
302
336
|
consentDefaultMissing: () => "dataLayer'da Google Consent Mode varsayılan komutu (gtag('consent', 'default', ...)) bulunamadı.",
|
|
303
337
|
consentDefaultLate: () => "Consent Mode varsayılanı, ilk izleme isteği gönderildikten sonra ayarlandı.",
|
package/src/providers.js
CHANGED
|
@@ -11,6 +11,8 @@ export const PROVIDERS = {
|
|
|
11
11
|
anthropic: { label: "Anthropic (Claude)", env: "ANTHROPIC_API_KEY", defaultModel: "claude-opus-5-5" },
|
|
12
12
|
openai: { label: "OpenAI", env: "OPENAI_API_KEY", defaultModel: "gpt-5.5" },
|
|
13
13
|
gemini: { label: "Google Gemini", env: "GEMINI_API_KEY", defaultModel: "gemini-pro-latest" },
|
|
14
|
+
// Vercel AI Gateway: one key, any model as "<provider>/<model>". OpenAI-compatible API.
|
|
15
|
+
vercel: { label: "Vercel AI Gateway", env: "AI_GATEWAY_API_KEY", defaultModel: "anthropic/claude-opus-5.5" },
|
|
14
16
|
// Any API that speaks the OpenAI chat completions protocol. Needs a base URL and a model.
|
|
15
17
|
"openai-compatible": { label: "OpenAI-compatible API", env: "OPENAI_COMPATIBLE_API_KEY", defaultModel: null },
|
|
16
18
|
};
|
|
@@ -22,16 +24,17 @@ export function resolveProviderName(name, env = process.env) {
|
|
|
22
24
|
return name;
|
|
23
25
|
}
|
|
24
26
|
if (env.OPENAI_COMPATIBLE_BASE_URL) return "openai-compatible";
|
|
27
|
+
if (env.AI_GATEWAY_API_KEY) return "vercel";
|
|
25
28
|
if (env.ANTHROPIC_API_KEY) return "anthropic";
|
|
26
29
|
if (env.OPENAI_API_KEY) return "openai";
|
|
27
30
|
if (env.GEMINI_API_KEY || env.GOOGLE_API_KEY) return "gemini";
|
|
28
31
|
return "anthropic";
|
|
29
32
|
}
|
|
30
33
|
|
|
31
|
-
const NO_API_KEY = `No AI provider key found. Set one of ANTHROPIC_API_KEY, OPENAI_API_KEY or
|
|
34
|
+
const NO_API_KEY = `No AI provider key found. Set one of ANTHROPIC_API_KEY, OPENAI_API_KEY, GEMINI_API_KEY or AI_GATEWAY_API_KEY for Vercel AI Gateway (or OPENAI_COMPATIBLE_BASE_URL for an OpenAI-compatible API), or pick one with --provider. To run without any AI model, replay saved steps with --no-ai.`;
|
|
32
35
|
|
|
33
36
|
function hasApiKey(env) {
|
|
34
|
-
return Boolean(env.OPENAI_COMPATIBLE_BASE_URL || env.ANTHROPIC_API_KEY || env.ANTHROPIC_AUTH_TOKEN || env.OPENAI_API_KEY || env.GEMINI_API_KEY || env.GOOGLE_API_KEY);
|
|
37
|
+
return Boolean(env.OPENAI_COMPATIBLE_BASE_URL || env.AI_GATEWAY_API_KEY || env.ANTHROPIC_API_KEY || env.ANTHROPIC_AUTH_TOKEN || env.OPENAI_API_KEY || env.GEMINI_API_KEY || env.GOOGLE_API_KEY);
|
|
35
38
|
}
|
|
36
39
|
|
|
37
40
|
/**
|
|
@@ -42,6 +45,12 @@ function hasApiKey(env) {
|
|
|
42
45
|
export async function createProvider(opts = {}, env = process.env) {
|
|
43
46
|
// A bare client (tests, embedding) is an Anthropic client unless named otherwise.
|
|
44
47
|
const name = opts.client && !opts.name ? "anthropic" : opts.baseUrl && !opts.name ? "openai-compatible" : resolveProviderName(opts.name, env);
|
|
48
|
+
const provider = await buildProvider(name, opts, env);
|
|
49
|
+
provider.key = name; // The PROVIDERS key, for status lines.
|
|
50
|
+
return provider;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
async function buildProvider(name, opts, env) {
|
|
45
54
|
// With no provider named and no key set, the SDK would only fail at the first step with an
|
|
46
55
|
// unclear auth error, after the browser has started. A named provider skips this check, since
|
|
47
56
|
// its SDK may find credentials elsewhere (an Anthropic profile, Google Cloud credentials).
|
|
@@ -56,6 +65,10 @@ export async function createProvider(opts = {}, env = process.env) {
|
|
|
56
65
|
const client = opts.client ?? new (await import("openai")).default({ baseURL, apiKey });
|
|
57
66
|
return openaiProvider(client, model, { compatible: true, label: new URL(baseURL).host });
|
|
58
67
|
}
|
|
68
|
+
if (name === "vercel") {
|
|
69
|
+
const client = opts.client ?? new (await import("openai")).default({ baseURL: VERCEL_GATEWAY, apiKey: env.AI_GATEWAY_API_KEY });
|
|
70
|
+
return { ...openaiProvider(client, opts.model ?? PROVIDERS.vercel.defaultModel, { compatible: true }), name: "vercel" };
|
|
71
|
+
}
|
|
59
72
|
const model = opts.model ?? PROVIDERS[name].defaultModel;
|
|
60
73
|
const gateway = gatewayOptions(name, env);
|
|
61
74
|
const provider = await builtInProvider(name, model, gateway, opts.client, env);
|
|
@@ -73,6 +86,34 @@ async function builtInProvider(name, model, gateway, client, env) {
|
|
|
73
86
|
return geminiProvider(client ?? new GoogleGenAI({ ...(apiKey ? { apiKey } : {}), ...httpOptions }), model);
|
|
74
87
|
}
|
|
75
88
|
|
|
89
|
+
const VERCEL_GATEWAY = "https://ai-gateway.vercel.sh/v1";
|
|
90
|
+
|
|
91
|
+
const KEY_PROVIDERS = [
|
|
92
|
+
["vercel", (env) => env.AI_GATEWAY_API_KEY],
|
|
93
|
+
["anthropic", (env) => env.ANTHROPIC_API_KEY || env.ANTHROPIC_AUTH_TOKEN],
|
|
94
|
+
["openai", (env) => env.OPENAI_API_KEY],
|
|
95
|
+
["gemini", (env) => env.GEMINI_API_KEY || env.GOOGLE_API_KEY],
|
|
96
|
+
["openai-compatible", (env) => env.OPENAI_COMPATIBLE_BASE_URL],
|
|
97
|
+
];
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* One line saying which AI aitd would use and why, e.g.
|
|
101
|
+
* "AI: anthropic (claude-opus-5-5) via Cloudflare AI Gateway · also set: gemini (pick with --provider)".
|
|
102
|
+
*/
|
|
103
|
+
export function aiStatus(opts = {}, env = process.env) {
|
|
104
|
+
if (!opts.name && !KEY_PROVIDERS.some(([, has]) => has(env))) return "AI: no key set (ANTHROPIC_API_KEY, OPENAI_API_KEY, GEMINI_API_KEY or AI_GATEWAY_API_KEY)";
|
|
105
|
+
const name = resolveProviderName(opts.name, env);
|
|
106
|
+
const model = opts.model ?? (name === "openai-compatible" ? env.OPENAI_COMPATIBLE_MODEL : PROVIDERS[name].defaultModel) ?? "no model set";
|
|
107
|
+
const via = name !== "vercel" && gatewayOptions(name, env).baseURL ? " via Cloudflare AI Gateway" : "";
|
|
108
|
+
return `AI: ${name} (${model})${via}${alsoSet(name, env)}`;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/** " · also set: gemini (pick with --provider)" when keys for other providers are set too. */
|
|
112
|
+
export function alsoSet(name, env = process.env) {
|
|
113
|
+
const others = KEY_PROVIDERS.filter(([n, has]) => n !== name && has(env)).map(([n]) => n);
|
|
114
|
+
return others.length ? ` · also set: ${others.join(", ")} (pick with --provider)` : "";
|
|
115
|
+
}
|
|
116
|
+
|
|
76
117
|
// Cloudflare AI Gateway path for each provider, appended to AI_GATEWAY_URL.
|
|
77
118
|
const GATEWAY_PATHS = { anthropic: "anthropic", openai: "openai", gemini: "google-ai-studio" };
|
|
78
119
|
|
package/src/report.js
CHANGED
|
@@ -488,6 +488,19 @@ function stepDetail(m, lang, findings, run, ri, step, isDefault) {
|
|
|
488
488
|
}
|
|
489
489
|
|
|
490
490
|
/** One journey: a sticky step list on the left and the selected step on the right. It opens on the first step with a problem. */
|
|
491
|
+
/** Every Consent Mode command of a journey (default, then updates), one tile per signal. */
|
|
492
|
+
function consentCard(m, run) {
|
|
493
|
+
const cmds = run.dataLayerLog.filter((e) => isConsentEntry(e.value) && (e.value[1] === "default" || e.value[1] === "update"));
|
|
494
|
+
const head = `<div class="card-h"><div class="card-t">${m.ui.consent}</div><div class="card-d">${cmds.length ? m.ui.consentLead : m.ui.consentNone}</div></div>`;
|
|
495
|
+
if (!cmds.length) return `<div class="card jconsent">${head}<div class="card-c"></div></div>`;
|
|
496
|
+
const items = cmds.map((e) => {
|
|
497
|
+
const step = run.steps.find((s) => s.index === e.step);
|
|
498
|
+
const sigs = Object.entries(e.value[2] ?? {}).filter(([, v]) => typeof v === "string");
|
|
499
|
+
return `<li><div class="ch"><b>${e.value[1] === "default" ? m.ui.consentDefault : m.ui.consentUpdate}</b><span class="muted xs">${step ? `${step.index} · ${escapeHtml(step.label)}` : ""}</span></div><div class="sigs">${sigs.map(([k, v]) => `<span class="sig"><span>${escapeHtml(k)}</span><span class="${v === "granted" ? "granted" : "denied"}">${escapeHtml(v)}</span></span>`).join("")}</div></li>`;
|
|
500
|
+
});
|
|
501
|
+
return `<div class="card jconsent">${head}<div class="card-c"><ol class="ctl">${items.join("")}</ol></div></div>`;
|
|
502
|
+
}
|
|
503
|
+
|
|
491
504
|
function journeyPanel(m, lang, findings, run, ri, flagged) {
|
|
492
505
|
const steps = run.steps.filter((s) => s.index > 0);
|
|
493
506
|
const def = steps.find((s) => flagged.has(stepAnchor(ri, s.index))) ?? steps[0];
|
|
@@ -503,7 +516,7 @@ function journeyPanel(m, lang, findings, run, ri, flagged) {
|
|
|
503
516
|
? `<div class="jgrid2"><nav class="stepnav" aria-label="${m.ui.stepsNav}"><ol>${nav}</ol></nav><div class="sdetails">${steps.map((s) => stepDetail(m, lang, findings, run, ri, s, s === def)).join("\n")}</div></div>`
|
|
504
517
|
: `<p class="empty">${m.ui.noSteps}</p>`;
|
|
505
518
|
return `<article class="jpanel" id="j${ri}"><header class="jhead"><div><h2>${escapeHtml(run.journeyId)} <span class="muted">· ${escapeHtml(run.viewport)}</span></h2>${run.note ? `<p class="muted xs">${escapeHtml(run.note)}</p>` : ""}</div>${run.completed ? badge("ok", m.ui.completed) : badge("warning", m.ui.notCompleted)}</header>
|
|
506
|
-
${body}</article>`;
|
|
519
|
+
${consentCard(m, run)}${body}</article>`;
|
|
507
520
|
}
|
|
508
521
|
|
|
509
522
|
function journeysTab(m, lang, findings, runs, flagged) {
|
|
@@ -521,7 +534,7 @@ function evidenceHtml(evidence) {
|
|
|
521
534
|
return `<pre>${escapeHtml(evidence)}</pre>`;
|
|
522
535
|
}
|
|
523
536
|
|
|
524
|
-
function findingCard(m, runs, f, open) {
|
|
537
|
+
function findingCard(m, runs, f, open, aiRan) {
|
|
525
538
|
const e = f.explanation;
|
|
526
539
|
const steps = fixSteps(e);
|
|
527
540
|
const journeysN = new Set(f.where.map((w) => `${w.journey}|${w.viewport}`)).size;
|
|
@@ -543,14 +556,14 @@ function findingCard(m, runs, f, open) {
|
|
|
543
556
|
<span class="fhead"><span class="ftitle">${detailHtml(f.detail)}</span><span class="fmeta">${f.platform ? `<span class="ptag p-${safeKey(f.platform)}">${escapeHtml(platformLabel(f.platform))}</span>` : ""}<span>${escapeHtml(m.ui.spread(journeysN, stepsN))}</span></span></span>
|
|
544
557
|
${badge(f.severity, m.severity[f.severity])}${icon.chevron}</summary>
|
|
545
558
|
<div class="fbody">${e?.impact ? `<div class="impact">${ic(ICON.impact, 16)}<div><span class="impact-l">${m.ui.impact}</span>${fmt(e.impact)}</div></div>` : ""}
|
|
546
|
-
<div class="fcols"><div class="fcol">${sec("cause", m.ui.likelyCause)}
|
|
559
|
+
<div class="fcols"><div class="fcol">${e?.likely_cause ? `${sec("cause", m.ui.likelyCause)}<p>${fmt(e.likely_cause)}</p>` : aiRan || f.severity === "info" ? "" : `${sec("cause", m.ui.likelyCause)}<p class="muted">${m.ui.noExplanation}</p>`}${evidence ? `${sec("evidence", m.ui.evidence)}${evidence}` : ""}</div>
|
|
547
560
|
<div class="fcol">${steps.length ? `${sec("fix", m.ui.fixSteps)}<ol class="fix-steps">${steps.map((t) => `<li><span>${fmt(t)}</span></li>`).join("")}</ol>` : ""}${sec("where", m.ui.where)}<div class="where">${chips}</div></div></div></div></details></li>`;
|
|
548
561
|
}
|
|
549
562
|
|
|
550
563
|
const FINDING_SEVERITIES = ["broken", "risk", "warning", "info"];
|
|
551
564
|
const SEV_COLOR = { broken: "var(--danger-dot)", risk: "var(--risk)", warning: "var(--warn-dot)", info: "var(--accent)" };
|
|
552
565
|
|
|
553
|
-
function findingsTab(m, runs, rows) {
|
|
566
|
+
function findingsTab(m, runs, rows, aiRan) {
|
|
554
567
|
const problems = rows.filter((f) => f.severity !== "ok");
|
|
555
568
|
if (!problems.length) return `<p class="empty">${m.ui.noProblems}</p>`;
|
|
556
569
|
const n = Object.fromEntries(FINDING_SEVERITIES.map((s) => [s, problems.filter((f) => f.severity === s).length]));
|
|
@@ -563,7 +576,7 @@ function findingsTab(m, runs, rows) {
|
|
|
563
576
|
return `<div class="filter-host">${radios}
|
|
564
577
|
<div class="sevbar" aria-hidden="true">${bar}</div><div class="sevlegend">${legend}</div>
|
|
565
578
|
<div class="toolbar"><div class="sevfilter" role="group" aria-label="${m.ui.filterBy}">${labels}</div><span class="muted xs">${m.ui.findingHint}</span></div>
|
|
566
|
-
<ul class="flist">${sorted.map((f, i) => findingCard(m, runs, f, i === 0 && f.severity !== "info")).join("")}</ul></div>`;
|
|
579
|
+
<ul class="flist">${sorted.map((f, i) => findingCard(m, runs, f, i === 0 && f.severity !== "info", aiRan)).join("")}</ul></div>`;
|
|
567
580
|
}
|
|
568
581
|
|
|
569
582
|
function summaryCard(m, explained, problems) {
|
|
@@ -592,7 +605,23 @@ function skippedTotals(runs) {
|
|
|
592
605
|
|
|
593
606
|
const callProvider = (c) => safeKey(c.provider ?? providerOf(c.url)?.key ?? c.vendor);
|
|
594
607
|
|
|
595
|
-
|
|
608
|
+
/** The run's settings: platforms checked, AI model, plan, journeys, viewports, language and version. */
|
|
609
|
+
function runCard(m, runs, provs, { ai, plan, lang }) {
|
|
610
|
+
const uniq = (xs) => [...new Set(xs)];
|
|
611
|
+
const ptags = provs.map((k) => `<span class="ptag p-${safeKey(k)}">${escapeHtml(platformLabel(k))}</span>`).join("");
|
|
612
|
+
const rows = [
|
|
613
|
+
[m.ui.runPlatforms, ptags || '<span class="muted">–</span>'],
|
|
614
|
+
[m.ui.runAi, escapeHtml(ai ? m.ui.runAiOn(ai.name, ai.model) : m.ui.runAiOff)],
|
|
615
|
+
[m.ui.runPlan, escapeHtml(plan?.events?.length ? m.ui.runPlanEvents(plan.events.length) : m.ui.runNoPlan)],
|
|
616
|
+
[m.ui.runJourneys, escapeHtml(uniq(runs.map((r) => r.journeyId)).join(", ") || "–")],
|
|
617
|
+
[m.ui.runViewports, escapeHtml(uniq(runs.map((r) => r.viewport)).join(", ") || "–")],
|
|
618
|
+
[m.ui.runLanguage, escapeHtml(messages(lang).name)],
|
|
619
|
+
[m.ui.runVersion, `<code>${escapeHtml(VERSION)}</code>`],
|
|
620
|
+
];
|
|
621
|
+
return `<div class="card"><div class="card-h"><div class="card-t">${m.ui.runCard}</div></div><div class="card-c"><dl class="run">${rows.map(([k, v]) => `<dt>${k}</dt><dd>${v}</dd>`).join("")}</dl></div></div>`;
|
|
622
|
+
}
|
|
623
|
+
|
|
624
|
+
function overviewTab(m, findings, rows, counts, explained, runs, info) {
|
|
596
625
|
const problems = rows.filter((f) => f.severity !== "ok").length;
|
|
597
626
|
const metric = (sev) => `<div class="card metric ${sev}"><div class="k">${m.severity[sev]}</div><div class="v">${counts[sev]}</div></div>`;
|
|
598
627
|
const journeyRows = runs.map((r, ri) => {
|
|
@@ -607,7 +636,7 @@ function overviewTab(m, findings, rows, counts, explained, runs) {
|
|
|
607
636
|
<div class="ov-grid">${summaryCard(m, explained, problems)}
|
|
608
637
|
<div class="stack">
|
|
609
638
|
${runs.length ? `<div class="card"><div class="card-h"><div class="card-t">${m.ui.tabJourneys}</div></div><div class="card-c tight"><div class="tscroll"><table class="dt"><thead><tr><th>${m.ui.journey}</th><th>${m.ui.stepsCol}</th><th>${m.ui.problemsCol}</th></tr></thead><tbody>${journeyRows.join("")}</tbody></table></div></div></div>` : ""}
|
|
610
|
-
${
|
|
639
|
+
${runCard(m, runs, provs, info)}${skippedN ? `<p class="muted xs scope-skipped">${escapeHtml(m.ui.skippedLine(skipped.map(([v]) => v).join(", "), skippedN))}</p>` : ""}
|
|
611
640
|
</div></div></div>`;
|
|
612
641
|
}
|
|
613
642
|
|
|
@@ -729,16 +758,16 @@ function navCss(runs) {
|
|
|
729
758
|
|
|
730
759
|
export const CSS = `
|
|
731
760
|
:root{
|
|
732
|
-
--bg:#FFFFFF;--page:#F7F9FC;--fg:#0A0E1A;--muted:#5A6480;--muted-bg:#
|
|
733
|
-
--accent:#
|
|
734
|
-
--danger:#
|
|
735
|
-
--shadow-sm:
|
|
761
|
+
--bg:#FFFFFF;--page:#F7F9FC;--fg:#0A0E1A;--muted:#5A6480;--muted-bg:#EEF2F8;--border:#DCE2EE;--input:#848EA6;
|
|
762
|
+
--accent:#2E6CDB;--accent-fg:#2459C0;--accent-bg:#EBF1FE;--orange:#D9531E;
|
|
763
|
+
--danger:#C8323A;--danger-bg:#FCE9EA;--warn:#8C6106;--warn-bg:#FBF1DC;--warn-dot:#C99A2E;--risk:#B8441A;--risk-bg:#FFF0E8;--danger-dot:#C8323A;--ok:#17805A;--ok-bg:#E3F3EC;
|
|
764
|
+
--shadow-sm:none;--radius:6px;
|
|
736
765
|
--font-sans:'Google Sans',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;--font-mono:'Google Sans Code',ui-monospace,SFMono-Regular,Menlo,monospace}
|
|
737
766
|
@media (prefers-color-scheme:dark){:root{
|
|
738
|
-
--bg:#141927;--page:#0A0E1A;--fg:#F0F4FF;--muted:#8892AA;--muted-bg:#182035;--border:#1E2640;--input:#
|
|
739
|
-
--accent-fg:#
|
|
767
|
+
--bg:#141927;--page:#0A0E1A;--fg:#F0F4FF;--muted:#8892AA;--muted-bg:#182035;--border:#1E2640;--input:#5F6B93;--accent:#4F8EF7;--orange:#FF6D33;
|
|
768
|
+
--accent-fg:#8CBBFF;--accent-bg:#1A2F5C;--danger:#F2545B;--danger-bg:#3A1F22;--warn:#E8B44A;--warn-bg:#33290F;--warn-dot:#E8B44A;--risk:#FF6D33;--risk-bg:#2A1A0F;--danger-dot:#F2545B;--ok:#3FB98A;--ok-bg:#12302A;--shadow-sm:none}}
|
|
740
769
|
*{box-sizing:border-box}
|
|
741
|
-
html{scroll-padding-top:64px}
|
|
770
|
+
html{scroll-padding-top:64px;scrollbar-gutter:stable;overflow-y:scroll}
|
|
742
771
|
body{margin:0;min-height:100vh;display:flex;flex-direction:column;background:var(--page);color:var(--fg);font:400 14px/1.6 var(--font-sans);-webkit-font-smoothing:antialiased}
|
|
743
772
|
a{color:var(--accent-fg);text-decoration:none}
|
|
744
773
|
h1,h2,h3,h4,h5,h6{margin:0;font-weight:500;line-height:1.3}
|
|
@@ -755,7 +784,21 @@ code{font-size:12px;background:var(--muted-bg);padding:1px 5px;border-radius:4px
|
|
|
755
784
|
.product-logo img{display:block;height:26px;width:auto}
|
|
756
785
|
.byline{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.byline:hover{opacity:.85}
|
|
757
786
|
.logo-h img{display:block;height:18px;width:auto}
|
|
758
|
-
.title{margin-top:
|
|
787
|
+
.title{margin-top:20px;display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px}
|
|
788
|
+
.site{display:flex;align-items:center;gap:10px;min-width:0}
|
|
789
|
+
.site .k{font:500 11px/1.4 var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:var(--muted-bg);border:1px solid var(--border);border-radius:2px;padding:2px 6px}
|
|
790
|
+
.site .v{font-size:20px;font-weight:700;letter-spacing:-.01em;color:var(--fg);overflow-wrap:anywhere}
|
|
791
|
+
.run{margin:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px 16px;font-size:13px}
|
|
792
|
+
.run dt{color:var(--muted)}.run dd{margin:0;display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;min-width:0;overflow-wrap:anywhere}
|
|
793
|
+
.ptag.off{opacity:.55;text-decoration:line-through}
|
|
794
|
+
.ctl{list-style:none;margin:0;padding:0;display:grid;gap:12px}
|
|
795
|
+
.ctl>li{border:1px solid var(--border);border-radius:var(--radius);padding:12px;background:var(--page)}
|
|
796
|
+
.ctl .ch{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px;font-size:13px;margin-bottom:8px}
|
|
797
|
+
.ctl .ch b{font-weight:600}
|
|
798
|
+
.sigs{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:6px}
|
|
799
|
+
.sig{display:flex;justify-content:space-between;gap:8px;align-items:center;border:1px solid var(--border);border-radius:4px;padding:5px 10px;font:12px var(--font-mono);background:var(--bg)}
|
|
800
|
+
.sig .granted{color:var(--ok)}.sig .denied{color:var(--danger)}
|
|
801
|
+
.jconsent{margin-bottom:16px}
|
|
759
802
|
.eyebrow{font:500 12px var(--font-mono);color:var(--accent-fg);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}
|
|
760
803
|
.title .meta{margin-top:4px;font-size:12px;color:var(--muted)}
|
|
761
804
|
.toptabs{position:sticky;top:0;z-index:10;background:var(--page);border-bottom:1px solid var(--border);margin-top:16px}
|
|
@@ -828,7 +871,7 @@ table.dt a{color:var(--fg)}table.dt a:hover{color:var(--accent-fg)}
|
|
|
828
871
|
.missing{display:inline-block;padding:0 6px;border-radius:4px;background:var(--danger-bg);color:var(--danger)}
|
|
829
872
|
.fix-steps{list-style:none;margin:0;padding:0;display:grid;gap:10px;counter-reset:fx}
|
|
830
873
|
.fix-steps li{display:grid;grid-template-columns:22px 1fr;gap:10px;counter-increment:fx}
|
|
831
|
-
.fix-steps li::before{content:counter(fx);display:inline-grid;place-items:center;width:22px;height:22px;border-radius:
|
|
874
|
+
.fix-steps li::before{content:counter(fx);display:inline-grid;place-items:center;width:22px;height:22px;border-radius:4px;background:var(--accent-bg);color:var(--accent-fg);font:500 12px var(--font-mono)}
|
|
832
875
|
.where{display:flex;flex-wrap:wrap;gap:6px}
|
|
833
876
|
.chip{display:inline-flex;align-items:center;gap:8px;padding:4px 10px 4px 4px;border:1px solid var(--border);border-radius:var(--radius);color:var(--fg);font-size:12px;background:var(--bg)}
|
|
834
877
|
span.chip{padding-left:10px}
|
|
@@ -889,8 +932,8 @@ body>main{flex:1 0 auto;width:100%}
|
|
|
889
932
|
.filter>input:checked+label .n{background:transparent;color:inherit}
|
|
890
933
|
.filter>input:focus-visible+label{outline:2px solid var(--accent);outline-offset:2px}
|
|
891
934
|
.filter>label:last-of-type{margin-bottom:4px}
|
|
892
|
-
.dot{display:inline-block;width:
|
|
893
|
-
.dot.p-ga4,.ptag.p-ga4::before{background:
|
|
935
|
+
.dot{display:inline-block;width:12px;height:12px;border-radius:2px;background:var(--muted);vertical-align:-2px}
|
|
936
|
+
.dot.p-ga4,.ptag.p-ga4::before{background:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHJlY3QgeD0iMTUiIHk9IjIiIHdpZHRoPSI2IiBoZWlnaHQ9IjIwIiByeD0iMyIgZmlsbD0iI0Y5QUIwMCIvPjxyZWN0IHg9IjkiIHk9IjkiIHdpZHRoPSI2IiBoZWlnaHQ9IjEzIiByeD0iMyIgZmlsbD0iI0UzNzQwMCIvPjxjaXJjbGUgY3g9IjYiIGN5PSIxOSIgcj0iMyIgZmlsbD0iI0UzNzQwMCIvPjwvc3ZnPg==") center/contain no-repeat}.dot.p-google_ads,.ptag.p-google_ads::before{background:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHJlY3QgeD0iOS41IiB5PSIxLjUiIHdpZHRoPSI2IiBoZWlnaHQ9IjIxIiByeD0iMyIgdHJhbnNmb3JtPSJyb3RhdGUoMzAgMTIuNSAxMikiIGZpbGw9IiNGQkJDMDQiLz48cmVjdCB4PSI4LjUiIHk9IjEuNSIgd2lkdGg9IjYiIGhlaWdodD0iMjEiIHJ4PSIzIiB0cmFuc2Zvcm09InJvdGF0ZSgtMzAgMTEuNSAxMikiIGZpbGw9IiM0Mjg1RjQiLz48Y2lyY2xlIGN4PSI1LjUiIGN5PSIxOC41IiByPSIzIiBmaWxsPSIjMzRBODUzIi8+PC9zdmc+") center/contain no-repeat}.dot.p-meta,.ptag.p-meta::before{background:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTIuNSAxNS41YzAtNC40IDIuMy05IDUtOSAzLjQgMCA2IDExIDkuNSAxMSAyLjIgMCA0LjUtMi42IDQuNS02LjVTMTkuOCA2LjUgMTcuNSA2LjVjLTMuNCAwLTYgMTEtOS44IDExLTIuOSAwLTUuMi0uNy01LjItMnoiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzA4NjZGRiIgc3Ryb2tlLXdpZHRoPSIyLjQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz48L3N2Zz4=") center/contain no-repeat}.dot.p-tiktok,.ptag.p-tiktok::before{background:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PGcgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIyLjYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PHBhdGggZD0iTTEzIDN2MTEuNWEzLjUgMy41IDAgMSAxLTMtMy40Nk0xMyAzYy41IDIuNSAyLjUgNCA1IDQiIHN0cm9rZT0iIzI1RjRFRSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEgLTEpIi8+PHBhdGggZD0iTTEzIDN2MTEuNWEzLjUgMy41IDAgMSAxLTMtMy40Nk0xMyAzYy41IDIuNSAyLjUgNCA1IDQiIHN0cm9rZT0iI0ZFMkM1NSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMSAxKSIvPjxwYXRoIGQ9Ik0xMyAzdjExLjVhMy41IDMuNSAwIDEgMS0zLTMuNDZNMTMgM2MuNSAyLjUgMi41IDQgNSA0IiBzdHJva2U9IiMxMTEiLz48L2c+PC9zdmc+") center/contain no-repeat}
|
|
894
937
|
.evlist{list-style:none;margin:0;padding:0;border:1px solid var(--border);border-radius:var(--radius);flex-basis:100%;min-width:0}
|
|
895
938
|
.evlist>li+li{border-top:1px solid var(--border)}
|
|
896
939
|
summary{cursor:pointer;list-style:none}summary::-webkit-details-marker{display:none}
|
|
@@ -905,7 +948,7 @@ summary:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-of
|
|
|
905
948
|
.event .meta{font-size:12px;color:var(--muted)}
|
|
906
949
|
.event .time,.time{font-size:12px;color:var(--muted);margin-left:auto}
|
|
907
950
|
.ptag{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}
|
|
908
|
-
.ptag::before{content:"";width:
|
|
951
|
+
.ptag::before{content:"";width:14px;height:14px;flex:none;border-radius:2px;background:var(--muted)}
|
|
909
952
|
.event-body{padding:4px 12px 16px}
|
|
910
953
|
.flagnote{margin:4px 0 12px;padding:8px 12px;border-radius:var(--radius);background:var(--warn-bg);color:var(--warn)}
|
|
911
954
|
.flagnote.broken{background:var(--danger-bg);color:var(--danger)}.flagnote.risk{background:var(--risk-bg);color:var(--risk)}
|
|
@@ -965,7 +1008,7 @@ pre{margin:8px 0 0;font-size:12px;line-height:1.5;background:var(--muted-bg);bor
|
|
|
965
1008
|
@media print{.toptabs,.jtabs,.stepnav,.filter>label,.filter>input,.tabs.seg>label,.sevfilter{display:none}.tabpanel,.jpanel,.sdetail,.tabs.seg>.panel{display:block!important}.jpanel{margin-bottom:32px}.sdetail{margin-bottom:16px;break-inside:avoid-page}details>*{display:block}}
|
|
966
1009
|
`;
|
|
967
1010
|
|
|
968
|
-
export function renderHtml({ title, generatedAt, findings, explained, runs, plan = null, lang = "en", branding = true, against = null, planCheck = null, changes = null }) {
|
|
1011
|
+
export function renderHtml({ title, site = null, ai = null, generatedAt, findings, explained, runs, plan = null, lang = "en", branding = true, against = null, planCheck = null, changes = null }) {
|
|
969
1012
|
const m = messages(lang);
|
|
970
1013
|
const rows = attachExplanations(findings, explained);
|
|
971
1014
|
const counts = summarize(rows);
|
|
@@ -985,15 +1028,14 @@ export function renderHtml({ title, generatedAt, findings, explained, runs, plan
|
|
|
985
1028
|
${navCss(runs)}</style></head><body>
|
|
986
1029
|
<div class="topbar"><div class="wrap"><span class="product-logo">${logo("atd-lockup", "AI Tag Debugger", 26, "logo-atd")}</span>${branding ? `<a href="https://analitikisler.com" class="byline" rel="noopener noreferrer"><span>${m.ui.by}</span>${logo("horizontal", "Analitik İşler", 18, "logo-h")}</a>` : ""}</div></div>
|
|
987
1030
|
<header class="wrap title">
|
|
988
|
-
<
|
|
989
|
-
<h1>${escapeHtml(title)}</h1>
|
|
1031
|
+
<h1 class="site"><span class="k">${m.ui.site}</span><span class="v">${escapeHtml(site ?? title)}</span></h1>
|
|
990
1032
|
<div class="meta">${escapeHtml(generatedAt)} · ${escapeHtml(m.ui.headerMeta(runs.length, checkedProviders(runs).length))} · ai-tag-debugger ${VERSION}</div>${against ? `\n<div class="meta">${escapeHtml(m.ui.checkedAgainst(against))}</div>` : ""}
|
|
991
1033
|
</header>
|
|
992
1034
|
<nav class="toptabs" aria-label="${m.ui.sections}"><div class="wrap">
|
|
993
1035
|
<a href="#overview">${m.ui.tabOverview}</a><a href="#findings">${m.ui.findings} <span class="n">${problems}</span></a><a href="#journeys">${m.ui.tabJourneys} <span class="n">${runs.length}</span></a><a href="#scope">${m.ui.tabScope}</a></div></nav>
|
|
994
1036
|
<main class="wrap">
|
|
995
|
-
<section class="tabpanel" id="overview" aria-label="${m.ui.tabOverview}">${changes ? changesCard(m, changes) : ""}${planCheck ? planVsSiteCard(m, planCheck) : ""}${overviewTab(m, findings, rows, counts, explained, runs)}</section>
|
|
996
|
-
<section class="tabpanel" id="findings" aria-label="${m.ui.findings}">${findingsTab(m, runs, rows)}</section>
|
|
1037
|
+
<section class="tabpanel" id="overview" aria-label="${m.ui.tabOverview}">${changes ? changesCard(m, changes) : ""}${planCheck ? planVsSiteCard(m, planCheck) : ""}${overviewTab(m, findings, rows, counts, explained, runs, { ai, plan, lang })}</section>
|
|
1038
|
+
<section class="tabpanel" id="findings" aria-label="${m.ui.findings}">${findingsTab(m, runs, rows, Boolean(explained))}</section>
|
|
997
1039
|
<section class="tabpanel" id="journeys" aria-label="${m.ui.tabJourneys}">${journeysTab(m, lang, findings, runs, flagged)}</section>
|
|
998
1040
|
<section class="tabpanel" id="scope" aria-label="${m.ui.tabScope}"><div class="stack">${coverageCard(m, plan, runs)}${providersCard(m, runs)}</div></section>
|
|
999
1041
|
</main>
|