Merge updated approval base into bundle platform support

This commit is contained in:
creatixchu committed 2026-10-21 10:42:25 +08:00
commit be0c971766
48 files changed
+408 -91

No files matched your search

@@ -9,8 +9,8 @@
en: 2ba6c43b20a3d347
zh: 5647179ddaa38ad9
/agent-note-ship-experimental-capabilities-as-optional-bundles/decision:
en: d6328ba2b218f2ac
zh: 3731561313b1ad5e
en: 191ca8bffb101db2
zh: 1365bef5cd830a5c
/agent-note-ship-experimental-capabilities-as-optional-bundles/alternatives-considered:
en: d6f40bf02df37ab7
zh: e5b85ce9d41e8754
@@ -10,7 +10,7 @@ The Web plugin page offered two optional bundles, Agent Teams and voice input. A
## Decision
`OPTIONAL_BUNDLES` owns the installation's default-off selections, including maintained optional capabilities and experimental capabilities. Every bundle declares `icon` and exports `./locale/*.json` with `meta.title` and `meta.description`; the Official group displays that metadata. A bundle's presentation does not determine its [experimental status](../../../../packages/experimental/README.md#status). The isolation check validates admission and still rejects experimental dependencies of nonexperimental bundles.
`OPTIONAL_BUNDLES` owns the installation's default-off selections, including maintained optional capabilities and experimental capabilities. Every bundle declares `icon` and exports `./locale/*.json` with `meta.title` and `meta.description`; the [plugin manager page](../../../../packages/client/ui-plugin-manager/README.md#use-this-package) displays that metadata for eligible bundles and retains explicit activation for default-hidden ones. A bundle's presentation does not determine its [experimental status](../../../../packages/experimental/README.md#status). The isolation check validates admission and still rejects experimental dependencies of nonexperimental bundles.
An optional bundle's dependencies are downloaded with every `dsh` installation. [Reasoning translation](2026-10-05-anonymous-reasoning-translation.md) uses three experimental packages without adding third-party runtime dependencies. Admission therefore considers installation cost and whether a switch supplies a usable composition without an additional configuration form. External browser and Cua Driver providers remain explicit compositions because they add substantial runtimes or require an external executable. Stagehand requires model credentials; Python PTC replaces a core provider and conflicts with TypeScript workflow consumers. Demonstrative hooks, webhooks, and mods stay outside the list. [Session Inspector](../feature/2026-09-24-session-inspector.md) owns the Inspector's distinct activation behavior.
@@ -10,7 +10,7 @@ Web 插件页只提供两个可选 bundle:Agent Teams 与语音输入。Auto r
## 决策
`OPTIONAL_BUNDLES` 管理安装随附且默认关闭的选项,包括维护中的可选能力与实验性能力。每个 bundle 声明 `icon`,并导出带 `meta.title` 与 `meta.description` 的 `./locale/*.json`;官方分组显示这些元数据。Bundle 的展示方式不决定其[实验性状态](../../../../packages/experimental/README.zh.md#status)。隔离检查校验准入,并继续拒绝非实验 bundle 的实验性依赖。
`OPTIONAL_BUNDLES` 管理安装随附且默认关闭的选项,包括维护中的可选能力与实验性能力。每个 bundle 声明 `icon`,并导出带 `meta.title` 与 `meta.description` 的 `./locale/*.json`;[插件管理页](../../../../packages/client/ui-plugin-manager/README.zh.md#use-this-package)为符合展示条件的组合包显示这些元数据,并保留默认隐藏项的显式启用入口。Bundle 的展示方式不决定其[实验性状态](../../../../packages/experimental/README.zh.md#status)。隔离检查校验准入,并继续拒绝非实验 bundle 的实验性依赖。
可选 bundle 的依赖随每次 `dsh` 安装下载。[思考过程翻译](2026-10-05-anonymous-reasoning-translation.zh.md)使用三个实验包,不增加第三方运行时依赖。因此准入需要考虑安装成本,以及开关能否在不增加配置表单的情况下提供可用组合。外部浏览器与 Cua Driver 提供方仍使用显式组合,因为它们会增加较大的运行时或要求外部可执行文件。Stagehand 需要模型凭据;Python PTC 替换核心提供方,并与 TypeScript workflow 消费方冲突。演示性钩子、webhook 与模组不进入名单。[Session Inspector](../feature/2026-09-24-session-inspector.zh.md) 管理 Inspector 特有的激活行为。
+3 -1
View File
@@ -153,7 +153,9 @@ it.skipIf(process.platform !== 'darwin')('keeps system requests pending until fr
{ method: 'openPermissionSettings', params: { permission: 'accessibility' } },
])
expect(events.every(event => ['permissionStatus', 'requestPermission', 'openPermissionSettings', 'applicationIcons', 'getApp'].includes(event.method))).toBe(true)
await plugins.locator('[data-detail-document] h1').waitFor()
const preview = plugins.locator('[data-detail-document] img')
await preview.waitFor()
await preview.evaluate(async (image: HTMLImageElement) => { await image.decode() })
const trace = await page.evaluateHandle(() => {
const errors: string[] = []
const stable = [...document.querySelectorAll('[data-cua-settings] [role="alert"]')].map(node => node.textContent?.trim())
+2 -2
View File
@@ -9,7 +9,6 @@ import { readFile } from 'node:fs/promises'
import { fileURLToPath } from 'node:url'
import type { Browser, Locator, Page } from 'playwright'
import { chromium } from 'playwright'
import { ON_DEMAND_BUNDLES, OPTIONAL_BUNDLES } from '@deepseek-ai/dsh-app-boot'
import { afterAll, beforeAll, describe, expect, it, onTestFailed } from 'vitest'
import { join } from 'node:path'
import {
@@ -111,8 +110,9 @@ describe('web e2e: plugin configuration pages', () => {
await more.focus()
await page.keyboard.press('Enter')
await panel.getByRole('heading', { name: '实验性插件', exact: true, level: 1 }).waitFor()
const bundles = await scaffold.ctx.pluginManager.listBundles()
expect(await panel.locator('[data-plugin-group="more"] [data-plugin-package]').count())
.toBe(OPTIONAL_BUNDLES.length + ON_DEMAND_BUNDLES.length)
.toBe(bundles.filter(bundle => bundle.official && (bundle.listedByDefault !== false || bundle.enabled || bundle.installed)).length)
expect(await basic.count()).toBe(0)
expect(await extensions.count()).toBe(0)
expect(await panel.locator('[data-plugin-group="bundles"]').count()).toBe(0)
+38 -4
View File
@@ -8,7 +8,7 @@ import { fileURLToPath } from 'node:url'
import type { Browser, Locator, Page } from 'playwright'
import { chromium } from 'playwright'
import { FiberState } from '@deepseek-ai/cordis'
import { ON_DEMAND_BUNDLES, OPTIONAL_BUNDLES } from '@deepseek-ai/dsh-app-boot'
import { readProfileManifest } from '@deepseek-ai/dsh-app-boot'
import { createUserMessage } from '@deepseek-ai/dsh-llm'
import { afterAll, beforeAll, describe, expect, it, onTestFailed, onTestFinished, vi } from 'vitest'
import { join } from 'node:path'
@@ -664,8 +664,14 @@ describe('web e2e: plugin manager', () => {
expect(await panel.getByText(/Cordis|Chrome DevTools/).count()).toBe(0)
await panel.getByRole('button', { name: '更多', exact: true }).click()
await panel.getByRole('heading', { name: '实验性插件', exact: true, level: 1 }).waitFor()
const bundles = await scaffold.ctx.pluginManager.listBundles()
expect(await panel.locator('[data-plugin-group="more"] [data-plugin-package]').count())
.toBe(OPTIONAL_BUNDLES.length + ON_DEMAND_BUNDLES.length)
.toBe(bundles.filter(bundle => bundle.official && (bundle.listedByDefault !== false || bundle.enabled || bundle.installed)).length)
for (const name of ['@deepseek-ai/dsh-experimental-session-search', '@deepseek-ai/dsh-experimental-ralph-bundle']) {
expect((await scaffold.ctx.pluginManager.listBundles()).find(bundle => bundle.name === name))
.toMatchObject({ enabled: false, optional: true, availability: 'installation', listedByDefault: false })
expect(await panel.locator(`[data-plugin-package="${name}"]`).count()).toBe(0)
}
const cards = await panel.locator('[data-plugin-group="more"] [data-plugin-package]').all()
expect(await Promise.all(cards.map(async card => [
await card.getAttribute('data-plugin-package'),
@@ -679,10 +685,8 @@ describe('web e2e: plugin manager', () => {
['@deepseek-ai/dsh-experimental-tool-worktree', 1],
['@deepseek-ai/dsh-experimental-cot-translation-bundle', 1],
['@deepseek-ai/dsh-experimental-terminal-bundle', 1],
['@deepseek-ai/dsh-experimental-session-search', 1],
['@deepseek-ai/dsh-experimental-session-titles-bundle', 1],
['@deepseek-ai/dsh-experimental-badge-skill-bundle', 1],
['@deepseek-ai/dsh-experimental-ralph-bundle', 1],
['@deepseek-ai/dsh-experimental-plugin-market-bundle', 1],
['@deepseek-ai/dsh-subagent-codex', 0],
['@deepseek-ai/dsh-subagent-claude-code', 0],
@@ -703,6 +707,36 @@ describe('web e2e: plugin manager', () => {
expect(tripwire.pageErrors).toEqual([])
}, 60_000)
it('enables both default-hidden shipped bundles by name without adding a profile dependency', async () => {
onTestFailed(() => saveFailureShot(page, 'web-e2e-plugin-manager-bundled-enable'))
const profileDir = join(scaffold.harnessHome, 'profiles', 'scaffold')
const before = readProfileManifest('dsh', profileDir).dependencies
for (const [name, title] of [
['@deepseek-ai/dsh-experimental-session-search', '会话搜索'],
['@deepseek-ai/dsh-experimental-ralph-bundle', 'Ralph 循环'],
] as const) {
const panel = await openPluginsPanel()
expect(await panel.locator(`[data-plugin-package="${name}"]`).count()).toBe(0)
await panel.getByRole('button', { name: '添加插件', exact: true }).click()
const dialog = page.getByRole('dialog', { name: '添加插件', exact: true })
await dialog.getByRole('textbox', { name: '包名或地址', exact: true }).fill(name)
await dialog.getByRole('button', { name: '安装', exact: true }).click()
const ready = page.getByRole('dialog', { name: '插件已随 DSH 提供', exact: true })
await ready.waitFor()
expect((await scaffold.ctx.pluginManager.listBundles()).find(bundle => bundle.name === name)?.enabled).toBe(false)
expect(await ready.getByText('无需下载,启用即可使用', { exact: true }).count()).toBe(1)
await ready.getByRole('button', { name: '立即启用', exact: true }).click()
const card = panel.locator(`[data-plugin-package="${name}"]`)
await card.waitFor()
expect((await scaffold.ctx.pluginManager.listBundles()).find(bundle => bundle.name === name)?.enabled).toBe(true)
expect(readProfileManifest('dsh', profileDir).dependencies).toEqual(before)
await card.getByRole('switch', { name: `启用 ${title}`, exact: true }).click()
await card.waitFor({ state: 'hidden' })
expect((await scaffold.ctx.pluginManager.listBundles()).find(bundle => bundle.name === name)?.enabled).toBe(false)
}
expect(tripwire.pageErrors).toEqual([])
}, 60_000)
it('keeps off-state switch thumbs light in both themes', async () => {
// The off-state thumb must stay light so an operable toggle cannot read as
// disabled, whose only other difference is reduced opacity.
+4 -4
View File
@@ -56,10 +56,10 @@ This matrix shows which packages dispatch each harness-owned event and which pac
| `llm/adapters-updated` | `emit` | [`packages/llm/llm/src/types.ts:23`](../packages/llm/llm/src/types.ts) | [`llm`](../packages/llm/llm) (`events.dispatch`) | [`acp`](../packages/acp/acp), `remotes` |
| `llm/stream` | `waterfall` | [`packages/llm/llm/src/index.ts:75`](../packages/llm/llm/src/index.ts) | [`llm`](../packages/llm/llm) (`waterfall`) | [`llm-replay`](../packages/test-support/llm-replay), [`session-checkpoint-policy`](../packages/session/session-checkpoint-policy), [`session-title`](../packages/session/session-title) |
| `permission-presets/catalog-changed` | `emit` | [`packages/interaction/permission-presets/src/types.ts:48`](../packages/interaction/permission-presets/src/types.ts) | [`permission-presets`](../packages/interaction/permission-presets) (`events.dispatch`) | `remotes` |
| `plugin-manager/changed` | `emit` | [`packages/boot/plugin-manager/src/types.ts:392`](../packages/boot/plugin-manager/src/types.ts) | [`plugin-manager`](../packages/boot/plugin-manager) (`emit`) | `remotes` |
| `plugin-manager/install-log` | `emit` | [`packages/boot/plugin-manager/src/types.ts:398`](../packages/boot/plugin-manager/src/types.ts) | [`plugin-manager`](../packages/boot/plugin-manager) (`emit`) | `remotes` |
| `plugin-manager/install-state` | `emit` | [`packages/boot/plugin-manager/src/types.ts:405`](../packages/boot/plugin-manager/src/types.ts) | [`plugin-manager`](../packages/boot/plugin-manager) (`emit`) | `remotes` |
| `plugin-manager/update-state` | `emit` | [`packages/boot/plugin-manager/src/types.ts:412`](../packages/boot/plugin-manager/src/types.ts) | [`plugin-manager`](../packages/boot/plugin-manager) (`emit`) | `remotes` |
| `plugin-manager/changed` | `emit` | [`packages/boot/plugin-manager/src/types.ts:394`](../packages/boot/plugin-manager/src/types.ts) | [`plugin-manager`](../packages/boot/plugin-manager) (`emit`) | `remotes` |
| `plugin-manager/install-log` | `emit` | [`packages/boot/plugin-manager/src/types.ts:400`](../packages/boot/plugin-manager/src/types.ts) | [`plugin-manager`](../packages/boot/plugin-manager) (`emit`) | `remotes` |
| `plugin-manager/install-state` | `emit` | [`packages/boot/plugin-manager/src/types.ts:407`](../packages/boot/plugin-manager/src/types.ts) | [`plugin-manager`](../packages/boot/plugin-manager) (`emit`) | `remotes` |
| `plugin-manager/update-state` | `emit` | [`packages/boot/plugin-manager/src/types.ts:414`](../packages/boot/plugin-manager/src/types.ts) | [`plugin-manager`](../packages/boot/plugin-manager) (`emit`) | `remotes` |
| `plugin-market/changed` | `emit` | [`packages/boot/plugin-market/src/types.ts:168`](../packages/boot/plugin-market/src/types.ts) | [`plugin-market`](../packages/boot/plugin-market) (`emit`) | `remotes` |
| `schedule/changed` | `emit` | [`packages/schedule/schedule/src/types.ts:478`](../packages/schedule/schedule/src/types.ts) | [`schedule`](../packages/schedule/schedule) (`emit`) | `remotes` |
| `schedule/resolve-agent` | `waterfall` | [`packages/schedule/schedule/src/index.ts:74`](../packages/schedule/schedule/src/index.ts) | [`schedule`](../packages/schedule/schedule) (`waterfall`) | `server` |
+4 -4
View File
@@ -58,10 +58,10 @@
| `llm/adapters-updated` | `emit` | [`packages/llm/llm/src/types.ts:23`](../packages/llm/llm/src/types.ts) | [`llm`](../packages/llm/llm) (`events.dispatch`) | [`acp`](../packages/acp/acp), `remotes` |
| `llm/stream` | `waterfall` | [`packages/llm/llm/src/index.ts:75`](../packages/llm/llm/src/index.ts) | [`llm`](../packages/llm/llm) (`waterfall`) | [`llm-replay`](../packages/test-support/llm-replay), [`session-checkpoint-policy`](../packages/session/session-checkpoint-policy), [`session-title`](../packages/session/session-title) |
| `permission-presets/catalog-changed` | `emit` | [`packages/interaction/permission-presets/src/types.ts:48`](../packages/interaction/permission-presets/src/types.ts) | [`permission-presets`](../packages/interaction/permission-presets) (`events.dispatch`) | `remotes` |
| `plugin-manager/changed` | `emit` | [`packages/boot/plugin-manager/src/types.ts:392`](../packages/boot/plugin-manager/src/types.ts) | [`plugin-manager`](../packages/boot/plugin-manager) (`emit`) | `remotes` |
| `plugin-manager/install-log` | `emit` | [`packages/boot/plugin-manager/src/types.ts:398`](../packages/boot/plugin-manager/src/types.ts) | [`plugin-manager`](../packages/boot/plugin-manager) (`emit`) | `remotes` |
| `plugin-manager/install-state` | `emit` | [`packages/boot/plugin-manager/src/types.ts:405`](../packages/boot/plugin-manager/src/types.ts) | [`plugin-manager`](../packages/boot/plugin-manager) (`emit`) | `remotes` |
| `plugin-manager/update-state` | `emit` | [`packages/boot/plugin-manager/src/types.ts:412`](../packages/boot/plugin-manager/src/types.ts) | [`plugin-manager`](../packages/boot/plugin-manager) (`emit`) | `remotes` |
| `plugin-manager/changed` | `emit` | [`packages/boot/plugin-manager/src/types.ts:394`](../packages/boot/plugin-manager/src/types.ts) | [`plugin-manager`](../packages/boot/plugin-manager) (`emit`) | `remotes` |
| `plugin-manager/install-log` | `emit` | [`packages/boot/plugin-manager/src/types.ts:400`](../packages/boot/plugin-manager/src/types.ts) | [`plugin-manager`](../packages/boot/plugin-manager) (`emit`) | `remotes` |
| `plugin-manager/install-state` | `emit` | [`packages/boot/plugin-manager/src/types.ts:407`](../packages/boot/plugin-manager/src/types.ts) | [`plugin-manager`](../packages/boot/plugin-manager) (`emit`) | `remotes` |
| `plugin-manager/update-state` | `emit` | [`packages/boot/plugin-manager/src/types.ts:414`](../packages/boot/plugin-manager/src/types.ts) | [`plugin-manager`](../packages/boot/plugin-manager) (`emit`) | `remotes` |
| `plugin-market/changed` | `emit` | [`packages/boot/plugin-market/src/types.ts:168`](../packages/boot/plugin-market/src/types.ts) | [`plugin-market`](../packages/boot/plugin-market) (`emit`) | `remotes` |
| `schedule/changed` | `emit` | [`packages/schedule/schedule/src/types.ts:478`](../packages/schedule/schedule/src/types.ts) | [`schedule`](../packages/schedule/schedule) (`emit`) | `remotes` |
| `schedule/resolve-agent` | `waterfall` | [`packages/schedule/schedule/src/index.ts:74`](../packages/schedule/schedule/src/index.ts) | [`schedule`](../packages/schedule/schedule) (`waterfall`) | `server` |
@@ -15,8 +15,8 @@
en: 87679c51aa3693f5
zh: 11684a48a5806afb
/deepseek-ai-dsh-plugin-manager/use-this-package:
en: 4319dce9376ca6d9
zh: fe130b81e4f2dda2
en: 77ee67943d46c6ae
zh: 3e2522ba4775962c
/deepseek-ai-dsh-plugin-manager/use-this-package/version-compatibility-and-exemptions:
en: 483285658e267dd5
zh: 846bec2daac59a96
+1 -1
View File
@@ -41,7 +41,7 @@ A plugin toggle updates only `disabled` in the last matching override in the pro
Bundle platform declarations are checked before saving an enabled selection. Unsupported Hosts return `unsupported-platform`. The bundle remains visible with its display metadata and can still be deselected. Automatic activation after a package operation uses the same check. The agent-facing next step asks the user to run the bundle on a supported Host.
A selected bundle that cannot load remains in `listBundles` with an `error`; `enabled` records the saved selection, not successful loading. The plugin page shows the error and allows deselection. A broken bundle cannot be enabled. Management bundles remain protected if their files become unreadable.
`listBundles` retains default-hidden bundles and projects each package’s `dsh.bundle.listedByDefault` declaration for GUI consumers; it does not change selection or activation. A non-boolean declaration returns a metadata diagnostic. A selected bundle that cannot load remains in `listBundles` with an `error`; `enabled` records the saved selection, not successful loading. The plugin page shows the error and allows deselection. A broken bundle cannot be enabled. Management bundles remain protected if their files become unreadable.
`listBundles` includes optional display `meta` for each bundle and its declared plugin rows, including disabled bundles. The Client selects a language from these values. The separate `description` field is the bundle's raw `package.json.description`; a metadata diagnostic does not block management. `source` gives a profile dependency as a spec `pnpm add` accepts: a git address or URL as recorded without the user information of an http(s) URL (a query string stays as recorded), a `file:` or `link:` path made absolute against the profile or the home directory for `~`, and a registry range, tag, or alias after the package name, as is any spec of a package installed under another name; a bundle the installation supplies has none, even when the profile also depends on it, because the installation's copy is the one that loads. The `plugin_manager` tool omits UI display metadata and update eligibility from list results.
+1 -1
View File
@@ -41,7 +41,7 @@ kind: "package-reference"
组合包的平台声明会在保存启用选择前检查。Host 不受支持时返回 `unsupported-platform`。组合包仍保留显示信息,并允许取消选择。包操作后的自动启用执行同一检查。给模型的下一步说明会提示用户在受支持的 Host 上运行该组合包。
已选择但无法加载的组合包仍会出现在 `listBundles` 中,并携带 `error`;`enabled` 表示保存的选择,不代表加载成功。插件页面显示错误并允许取消选择。损坏的组合包无法启用。管理组合包的文件变得不可读后仍受保护。
`listBundles` 保留默认隐藏的组合包,并投影各包的 `dsh.bundle.listedByDefault` 声明供 GUI 使用;它不改变选入或激活行为。声明不是布尔值时返回元数据诊断。已选择但无法加载的组合包仍会出现在 `listBundles` 中,并携带 `error`;`enabled` 表示保存的选择,不代表加载成功。插件页面显示错误并允许取消选择。损坏的组合包无法启用。管理组合包的文件变得不可读后仍受保护。
`listBundles` 为各组合包及其声明的插件行提供可选的展示 `meta`,包括已禁用的组合包。Client 从这些值中选择语言。单独的 `description` 字段是该组合包原始的 `package.json.description`;元信息诊断不会阻止管理操作。`source` 以 `pnpm add` 接受的 spec 给出 profile 依赖:git 地址或 URL 按记录给出,但去掉 http(s) URL 的 user information(查询字符串保持原样);`file:` 或 `link:` 路径按 profile 目录解析为绝对路径,`~` 展开为主目录;注册表版本范围、标签或别名接在包名的 `@` 之后,以别名安装的包的 spec 也是如此。安装提供的组合包没有该字段,即使 profile 也依赖它,因为实际加载的是安装中的副本。`plugin_manager` 工具的列表结果不包含 UI 展示元信息和更新资格。
+8 -2
View File
@@ -511,6 +511,7 @@ export class PluginManager extends TypertRemoteService {
const readOnlyReason = this.protectsManager(name) ? 'management-required' as const : undefined
let availability: BundleInfo['availability'] = 'missing'
let version: string | undefined
let listing: Pick<BundleInfo, 'listedByDefault'> = {}
try {
const info = bundleManifest(name, this.profile.dir, this.profile.installAnchor)
availability = shipped ? 'installation' : 'profile'
@@ -521,6 +522,11 @@ export class PluginManager extends TypertRemoteService {
continue
}
version = info.version
const listedByDefault = info.dsh?.bundle?.listedByDefault
if (listedByDefault !== undefined) {
if (typeof listedByDefault !== 'boolean') throw new Error('dsh.bundle.listedByDefault must be a boolean')
listing = { listedByDefault }
}
const compatibility = evaluatePluginCompatibility(info, exemptions)
if (compatibility !== undefined && !compatibility.exempted) throw new ManagementFailure('incompatible-version', [incompatiblePlugin(compatibility)])
const dir = resolveBundleDir('dsh', name, this.profile.installAnchor, this.profile.dir)
@@ -529,7 +535,7 @@ export class PluginManager extends TypertRemoteService {
try { assertBundlePlatform(info.dsh?.bundle?.platforms, process.platform) }
catch (error) { platformError = managementError(error) }
const error = targetError ?? platformError
bundles.push({ name, official, availability, ...target, ...(version === undefined ? {} : { version }),
bundles.push({ name, official, availability, ...listing, ...target, ...(version === undefined ? {} : { version }),
...(info.description === undefined || info.description === '' ? {} : { description: info.description }),
...meta === undefined ? {} : { meta },
...sourceOf(info.name), enabled, installed, optional, removable: removable && readOnlyReason === undefined,
@@ -538,7 +544,7 @@ export class PluginManager extends TypertRemoteService {
...error === undefined ? {} : { error } })
} catch (error) {
if (enabled || installed || optional || offered !== undefined) {
bundles.push({ name, official, availability, ...catalogMeta, ...target, ...(version === undefined ? {} : { version }),
bundles.push({ name, official, availability, ...listing, ...catalogMeta, ...target, ...(version === undefined ? {} : { version }),
...sourceOf(), enabled, installed, optional, removable: removable && readOnlyReason === undefined,
...(readOnlyReason === undefined ? {} : { readOnlyReason }),
error: targetError ?? managementError(error), rows: [], overrides: [] })
+2 -2
View File
@@ -129,8 +129,8 @@ export function apply(ctx: Context): void {
const rows = args.action === 'list_plugins' ? await manager.listPlugins() : await manager.listBundles()
const entries = rows.slice(offset, offset + limit).map(({ meta: _meta, ...row }) =>
'rows' in row
// The tool offers no update action, so update eligibility stays out of the model's view.
? (({ updatable: _updatable, ...bundle }) => ({
// GUI listing and update eligibility do not change the tool's management operations.
? (({ updatable: _updatable, listedByDefault: _listedByDefault, ...bundle }) => ({
...bundle, rows: bundle.rows.map(({ meta: _rowMeta, ...declared }) => declared),
}))(row)
: row)
@@ -83,6 +83,8 @@ export interface BundleInfo {
meta?: PluginLocalizedMeta
/** Untranslated `description` of this bundle's package manifest. */
description?: string
/** GUI listing before explicit selection or profile installation; omission means true. */
listedByDefault?: boolean
/** Selected in the profile manifest; a load error means its layer was skipped. */
enabled: boolean
/** Whether the profile declares this dependency; availability separately reports whether its files can be read. */
@@ -376,6 +376,25 @@ it('describes a bundle by its manifest and patch: one-liner, rows without a live
expect((await manager.listBundles()).find(row => row.name === 'described')?.rows).toEqual([{ rowId: 'described-row', moduleName }])
})
it('projects each bundle\'s default GUI listing without changing its selection, and reports invalid declarations', async () => {
const { manager, dir } = await fixture()
const path = join(dir, 'node_modules', 'extra', 'package.json')
const manifest = JSON.parse(readFileSync(path, 'utf8')) as { dsh: { bundle: { patch: string; listedByDefault?: boolean | string } } }
for (const listedByDefault of [false, true, undefined]) {
if (listedByDefault === undefined) delete manifest.dsh.bundle.listedByDefault
else manifest.dsh.bundle.listedByDefault = listedByDefault
writeFileSync(path, JSON.stringify(manifest))
const entry = (await manager.listBundles()).find(row => row.name === 'extra')
expect(entry?.listedByDefault).toBe(listedByDefault)
expect(entry?.enabled).toBe(true)
expect(entry?.error).toBeUndefined()
}
manifest.dsh.bundle.listedByDefault = 'hidden'
writeFileSync(path, JSON.stringify(manifest))
expect((await manager.listBundles()).find(row => row.name === 'extra')).toMatchObject({ enabled: true,
error: { diagnostic: 'dsh.bundle.listedByDefault must be a boolean' } })
})
it('names where each installed bundle comes from as a spec pnpm installs', async () => {
const { manager, dir, bundle, profile } = await fixture()
const recorded: Record<string, string> = {
@@ -223,7 +223,7 @@ it('paginates inventories with an explicit continuation and total', async () =>
expect(resultText(await call({ action: 'list_bundles' }))).toContain('"name":"bundle"')
})
it('keeps UI translation metadata out of model-facing plugin and bundle lists', async () => {
it('keeps UI translation and listing metadata out of model-facing plugin and bundle lists', async () => {
const { call, manager } = await fixture()
const meta = { title: { en: 'Plugin', zh: '插件' }, error: 'UI-only diagnostic' }
manager.listPlugins.mockImplementationOnce(async () => [{ entryId: 'include:plugin', enabled: true, meta }])
@@ -231,7 +231,7 @@ it('keeps UI translation metadata out of model-facing plugin and bundle lists',
entries: [{ entryId: 'include:plugin', enabled: true }], total: 1, nextOffset: null,
})
manager.listBundles.mockImplementationOnce(async () => [{
name: 'bundle', source: 'bundle@^1.0.0', enabled: true, meta, rows: [{ rowId: 'plugin', moduleName: 'plugin', meta }],
name: 'bundle', source: 'bundle@^1.0.0', enabled: true, listedByDefault: false, meta, rows: [{ rowId: 'plugin', moduleName: 'plugin', meta }],
}])
expect(JSON.parse(resultText(await call({ action: 'list_bundles' })))).toEqual({
entries: [{ name: 'bundle', source: 'bundle@^1.0.0', enabled: true, rows: [{ rowId: 'plugin', moduleName: 'plugin' }] }], total: 1, nextOffset: null,
@@ -15,8 +15,8 @@
en: d152484eb41ac6b4
zh: 09388d293f9be9cb
/deepseek-ai-dsh-client-ui-plugin-manager/use-this-package:
en: b4db83e8011bcf21
zh: c9a5e6af7a2251a0
en: 0244bb106721d125
zh: cff1ea332f0493ed
/deepseek-ai-dsh-client-ui-plugin-manager/use-this-package/installing-a-bundle:
en: fcb2e69c8b028c0a
zh: d505a075679974eb
+3 -1
View File
@@ -27,7 +27,9 @@ Use the **Plugins** entry in the Web sidebar to manage the profile's installed b
<a id="use-this-package"></a>
## Use this package
Select **Plugins** in the sidebar. The information button uses an 11px caption-colored icon in a 20px square hover area, with a 4px gap after the subtitle. It explains that this page configures official plugins and installs or manages other plugins, while **Settings → Built-in plugins** shows the built-in inventory and runtime status. Hover or focus shows the shared tooltip; clicking keeps it open until another click, Escape, Tab, or an outside click. The page reads the inventory and the bundles through `api-remotes` when first opened; a Host without a managed profile shows the page as unavailable. **Built-in plugin settings** lists official configuration pages by their configured order: Subagent, web search, agent loop, then shell. **Experimental plugins** shows the primary optional bundles, with **More** beside its heading opening a separate page of the same title. That page lists all offered official bundles, including those on the main list, with Codex and Claude Code subagents last. Its back button returns to the main list, where **Installed plugins** remains below Experimental plugins. Bundle details return to the list they were opened from. Catalog entries keep their position after installation or removal. **Installed plugins** lists other profile bundles. Installation-carried optional bundles have no uninstall action. Experimental packages retain the **Experimental** marker on both lists. Switching on a bundle that page holds back adds it to the main list in the position that page shows it, and switching it off leaves it on that page alone; other bundles keep their place on both. A dependency without a bundle patch is not a plugin and is not listed unless the profile selects it, in which case it carries a problem tag. Global configuration remains in the Settings **Built-in plugins** section.
[Ralph loops](../../experimental/ralph-bundle/README.md) and [Session search](../../experimental/session-search/README.md) remain bundled but are hidden from both plugin lists unless the profile enables or separately installs them. Existing selections remain manageable; switching off an installation-carried copy hides it again. Enter either exact package name in **Add plugin**, then choose **Enable now** to use the shipped copy without downloading it again. Sidebar session search is independent.
Select **Plugins** in the sidebar. The information button uses an 11px caption-colored icon in a 20px square hover area, with a 4px gap after the subtitle. It explains that this page configures official plugins and installs or manages other plugins, while **Settings → Built-in plugins** shows the built-in inventory and runtime status. Hover or focus shows the shared tooltip; clicking keeps it open until another click, Escape, Tab, or an outside click. The page reads the inventory and the bundles through `api-remotes` when first opened; a Host without a managed profile shows the page as unavailable. **Built-in plugin settings** lists official configuration pages by their configured order: Subagent, web search, agent loop, then shell. **Experimental plugins** shows the primary optional bundles, with **More** beside its heading opening a separate page of the same title. That page lists the official bundles eligible for display, including those on the main list, with Codex and Claude Code subagents last. Its back button returns to the main list, where **Installed plugins** remains below Experimental plugins. Bundle details return to the list they were opened from. Catalog entries keep their position after installation or removal. **Installed plugins** lists other profile bundles. Installation-carried optional bundles have no uninstall action. Experimental packages retain the **Experimental** marker on both lists. Switching on a bundle that page holds back adds it to the main list in the position that page shows it, and switching it off leaves it on that page alone unless its manifest hides unselected bundles; other bundles keep their place on both. A dependency without a bundle patch is not a plugin and is not listed unless the profile selects it, in which case it carries a problem tag. Global configuration remains in the Settings **Built-in plugins** section.
The heading moves its complete action group to another line when space is insufficient. Action labels stay on one line, and the information button follows the subtitle text. Hover styling applies only where the pointer can hover, so a tap leaves no card, row, or menu option in its hover state; cards and icon actions answer a touch-down with the pressed fill instead. The install, registry, and filter fields take a 16px face under a coarse pointer, which keeps iOS Safari from zooming a focused field.
@@ -27,7 +27,9 @@ kind: "package-reference"
<a id="use-this-package"></a>
## 使用本包
在侧栏选择**插件**。信息按钮使用 11px 的 caption 色图标和 20px 方形悬停区域,与副标题间隔 4px。它说明当前页用于配置官方插件、安装和管理其他插件,**设置 → 内置插件**则展示内置插件列表及运行状态。悬停或聚焦显示共享 tooltip;点击后保持展开,直至再次点击、Escape、Tab 或外部点击。页面首次打开时通过 `api-remotes` 读取清单与组合包;没有受管 profile 的 Host 上页面显示为不可用。**内置插件配置**按配置的顺序列出官方配置页:子智能体、网页搜索、Agent 循环、终端。**实验性插件**展示主要的可选组合包,标题旁的**更多**打开同名的独立页面。该页列出全部官方组合包,也包含主列表已有的条目,Codex 和 Claude Code 子智能体排在最后。返回按钮回到主列表,**已安装插件**保持在实验性插件下方。组合包详情返回打开它的列表。目录条目在安装或移除后保持原位置。**已安装插件**列出其他 profile 组合包。安装随附的可选组合包没有卸载操作。实验性包在两个列表中均保留**实验性**标签。开启仅在该页列出的组合包会按该页中的位置把它加入主列表,关闭后它只留在该页;其他组合包在两个列表中均保持原位。没有组合包 patch 的依赖不是插件,除非 profile 选中了它才会带异常标签列出。全局配置仍在设置的**内置插件**分区中编辑。
[Ralph 循环](../../experimental/ralph-bundle/README.zh.md)和[会话搜索](../../experimental/session-search/README.zh.md)仍随包提供,但默认不在两个插件列表中展示,只有 profile 启用或另行安装后才显示。已有的启用状态仍可管理;关闭随安装提供的版本后,它会再次隐藏。在**添加插件**中输入准确包名,再选择**立即启用**,即可使用随包提供的版本,无需再次下载。侧栏会话搜索独立于此功能。
在侧栏选择**插件**。信息按钮使用 11px 的 caption 色图标和 20px 方形悬停区域,与副标题间隔 4px。它说明当前页用于配置官方插件、安装和管理其他插件,**设置 → 内置插件**则展示内置插件列表及运行状态。悬停或聚焦显示共享 tooltip;点击后保持展开,直至再次点击、Escape、Tab 或外部点击。页面首次打开时通过 `api-remotes` 读取清单与组合包;没有受管 profile 的 Host 上页面显示为不可用。**内置插件配置**按配置的顺序列出官方配置页:子智能体、网页搜索、Agent 循环、终端。**实验性插件**展示主要的可选组合包,标题旁的**更多**打开同名的独立页面。该页列出符合展示条件的官方组合包,也包含主列表已有的条目,Codex 和 Claude Code 子智能体排在最后。返回按钮回到主列表,**已安装插件**保持在实验性插件下方。组合包详情返回打开它的列表。目录条目在安装或移除后保持原位置。**已安装插件**列出其他 profile 组合包。安装随附的可选组合包没有卸载操作。实验性包在两个列表中均保留**实验性**标签。开启仅在该页列出的组合包会按该页中的位置把它加入主列表,关闭后它只留在该页,但 manifest 声明默认隐藏的组合包会从该页消失;其他组合包在两个列表中均保持原位。没有组合包 patch 的依赖不是插件,除非 profile 选中了它才会带异常标签列出。全局配置仍在设置的**内置插件**分区中编辑。
空间不足时,页头将整个操作组移到下一行。操作文案保持单行,信息按钮紧随副标题文字。悬停样式只在可悬停的指针下生效,点按不会让卡片、行或菜单项停留在悬停态;卡片与图标操作改以按下填充回馈触摸。安装、注册表与筛选输入框在粗指针下使用 16px 字号,iOS Safari 不会因聚焦而放大页面。
@@ -112,7 +112,7 @@ const EXTENSION_BUNDLES = [
'@deepseek-ai/dsh-experimental-auto-review',
'@deepseek-ai/dsh-experimental-inspector-profile',
]
/** The optional bundles the main list holds back until the profile picks them; the More list shows them from the start. */
/** The optional bundles the main list holds back until selected; the More list includes eligible entries. */
const MORE_BUNDLES = [
'@deepseek-ai/dsh-cua-bundle',
'@deepseek-ai/dsh-experimental-tool-worktree',
@@ -1334,7 +1334,7 @@ function InstallDialog({
</Modal>
)
}
const heading = t(SCREEN_TITLE_KEYS[phase])
const heading = t(phase === 'done' && install.subject?.bundled ? 'installBundledTitle' : SCREEN_TITLE_KEYS[phase])
const pending = isInstallPending(phase)
const cancellable = phase === 'starting' || phase === 'running' || phase === 'unconfirmed'
const stoppable = cancellable || phase === 'failed' || phase === 'unknown'
@@ -1394,6 +1394,7 @@ function InstallDialog({
: <IconWarningOutlineRegular size={28} />}
</span>
<h2 className={css.wizardTitle} role={phase === 'failed' ? 'alert' : 'status'}>{heading}</h2>
{phase === 'done' && subject?.bundled ? <p className={css.wizardSub}>{t('installBundledDescription')}</p> : null}
{phase === 'failed' ? <p className={css.wizardSub}>{failureText(install.failure, t, install)}</p> : null}
{attemptLine === null ? null : <p className={css.wizardSub}>{attemptLine}</p>}
{uncertaintyText === null ? null : <p className={css.wizardSub} role="alert">{uncertaintyText}</p>}
@@ -1438,10 +1439,12 @@ function InstallDialog({
? <p className={css.result} role="status">{t('installDoneApproved', { names: install.approvedBuilds.join(', ') })}</p>
: null}
<div className={css.wizardFoot}>
<button type="button" className={css.detailsToggle} aria-expanded={install.detailsOpen} onClick={onToggleDetails}>
<span>{t(install.detailsOpen ? 'installDetailsHide' : 'installDetailsShow')}</span>
<IconChevronDownOutlineRegular className={css.detailsChevron} aria-hidden="true" />
</button>
{subject?.bundled ? null : (
<button type="button" className={css.detailsToggle} aria-expanded={install.detailsOpen} onClick={onToggleDetails}>
<span>{t(install.detailsOpen ? 'installDetailsHide' : 'installDetailsShow')}</span>
<IconChevronDownOutlineRegular className={css.detailsChevron} aria-hidden="true" />
</button>
)}
{uncertainty === 'result' ? <Button variant="outline" size="sm" className={css.footAction} onClick={onReconcile}>{t('installReconcile')}</Button> : null}
{pending
? (
@@ -1562,11 +1565,12 @@ export function PluginManagerPage(props: PluginManagerPageProps): ReactNode {
// selected name the Host cannot read; the installation's other bundles are inspected in the Settings
// Plugins section's Plugin list tab.
const listed = state.packages.filter(pkg => !BUILTIN_PROFILE_BUNDLES.has(pkg.name)
&& (pkg.listedByDefault !== false || pkg.enabled || pkg.installed)
&& (pkg.installed || pkg.official || pkg.error !== undefined))
const mine = listed.filter(pkg => !pkg.official)
const official = listed.filter(pkg => pkg.official)
// Both lists read one order over every offered bundle: the main list holds the always-held ones plus the held-back
// ones the profile enabled, and the More list holds all of them, so enabling a bundle from the More list pins it
// Both lists read one order over the eligible bundles: the main list holds the always-held ones plus the held-back
// ones the profile enabled, and the More list holds the eligible ones, so enabling a bundle from the More list pins it
// to the main list without moving it among its neighbours there.
const ordered = orderOptionalBundles(official)
const pinned = new Set(official.filter(pinnedToMainList).map(pkg => pkg.name))
@@ -1580,7 +1584,7 @@ export function PluginManagerPage(props: PluginManagerPageProps): ReactNode {
const onInstalled = tab === INSTALLED_TAB
const showsCards = !onInstalled || (openPkg === undefined && openItem === undefined)
const detailFromMore = (view.kind === 'package' || view.kind === 'row')
&& (view.from === 'more' || (MORE_BUNDLES.includes(view.name) && !pinned.has(view.name)))
&& (view.from === 'more' || (openPkg !== undefined && MORE_BUNDLES.includes(view.name) && !pinned.has(view.name)))
const showsMoreList = onInstalled && showsCards && (view.kind === 'more' || detailFromMore)
const showsMainList = showsCards && !showsMoreList
const installedCards = onInstalled && showsCards
@@ -105,6 +105,8 @@ export const zh = {
installProblemInvalid: '无法识别这个包名或地址:{reason}',
installProblemInstalled: '该插件已安装。如需升级,请卸载后重新安装',
installProblemShipped: '该插件随 DSH 提供,升级 DSH 即可获得新版本',
installBundledTitle: '插件已随 DSH 提供',
installBundledDescription: '无需下载,启用即可使用',
installProblemNotFound: '未找到相关插件',
installProblemNotPackage: '该路径不存在或不是有效的插件包',
installProblemNotBundle: '这个包没有声明组合包,无法作为插件安装:{reason}',
@@ -398,6 +400,8 @@ export const en = {
installProblemInvalid: 'This is not a package name or address that can be installed: {reason}',
installProblemInstalled: 'This plugin is already installed. To upgrade it, uninstall it and install it again',
installProblemShipped: 'This plugin ships with DSH; upgrading DSH updates it',
installBundledTitle: 'This plugin ships with DSH',
installBundledDescription: 'Enable it without downloading another copy',
installProblemNotFound: 'No such plugin was found',
installProblemNotPackage: 'The path does not exist or is not a valid plugin package',
installProblemNotBundle: 'This package declares no bundle, so it cannot be installed as a plugin: {reason}',
@@ -113,6 +113,8 @@ export interface PackageView {
readonly meta?: PluginLocalizedMeta
/** Whether the profile declares this dependency; availability separately describes its readable files. */
readonly installed: boolean
/** GUI listing before explicit selection or profile installation; omission means true. */
readonly listedByDefault?: boolean
/** Present for a profile dependency the installation does not also supply: the spec `pnpm add` accepts. */
readonly source?: string
/** Whether the installation ships the bundle for the person to switch on: official, off until selected, never removable. */
@@ -133,6 +135,8 @@ export interface PackageView {
/** The typed spec as the Host read it, on the installing, installed, and failed screens. */
export type InstallSubject = Extract<PluginSpecInspection, { status: 'accepted' }> & {
readonly spec: string
/** The installation already provides this bundle; only explicit enablement remains. */
readonly bundled?: true
/** Present for a catalog install or update: desired selection after installation. */
readonly selection?: boolean
/** Save an exact dependency version through the generic installer. */
@@ -247,9 +251,9 @@ export interface InstallState {
readonly runs: readonly InstallRun[]
/** Whether the run's command and output are unfolded, including after reopening. */
readonly detailsOpen: boolean
/** The bundle the finished run added; ordinary installs await enablement, catalog operations carry their selection. */
/** The bundle ready for enablement, from an install run or the installation; catalog operations carry their selection. */
readonly installed: string | null
/** The version the finished run installed, when its manifest declares one; null otherwise. */
/** The available bundle's manifest version; null when undeclared. */
readonly installedVersion: string | null
/** Whether the finished run's bundle waits for the next start to load. */
readonly restartRequired: boolean
@@ -554,6 +558,7 @@ export function packageView(bundle: BundleInfo, plugins: readonly PluginInfo[]):
availability: bundle.availability,
...bundle.installTarget === undefined ? {} : { installTarget: bundle.installTarget },
installed: bundle.installed,
...bundle.listedByDefault === undefined ? {} : { listedByDefault: bundle.listedByDefault },
optional: bundle.optional,
removable: bundle.removable,
updatable: bundle.updatable,
@@ -748,7 +753,7 @@ export class PluginManagerController {
void this.cancelInstall()
return
}
if (this.getSnapshot().install.phase === 'checking') this.finishAnalytics('cancelled')
if (this.getSnapshot().install.phase === 'checking' || this.getSnapshot().install.subject?.bundled) this.finishAnalytics('cancelled')
this.abortInspect()
this.registryRead = undefined
this.patch({ install: IDLE_INSTALL })
@@ -1147,9 +1152,9 @@ export class PluginManagerController {
}
/**
* Check the typed spec, then install it. The Host reads what the spec
* names first; a refused spec returns to the field with the reason, an
* accepted one becomes the subject the next screens show while pnpm runs.
* Offer a default-hidden shipped bundle for explicit enablement, or check
* and install the typed spec. A refused spec returns to the field with its
* reason; an accepted one becomes the subject shown while pnpm runs.
*/
private async runInstall(): Promise<void> {
const state = this.getSnapshot()
@@ -1160,9 +1165,20 @@ export class PluginManagerController {
this.analyticsAttempt = { input: sanitizeInstallInput(spec), started: Date.now() }
this.ctx.get('productAnalytics')?.track('plugin_install_click', { input_value: sanitizeInstallInput(spec) })
}
// A name the list already shows is refused at once, before the Host is asked.
const listed = state.packages.find(pkg => pkg.name === spec)
const catalogSubject = install.subject?.selection === undefined || install.subject.spec !== spec ? undefined : install.subject
if (listed?.availability === 'installation' && listed.optional && listed.listedByDefault === false
&& !listed.enabled && listed.error === undefined && listed.readOnlyReason === undefined) {
this.abortInspect()
this.patch({ install: {
...IDLE_INSTALL, open: true, spec, registries: install.registries, registry: install.registry,
phase: 'done', installed: listed.name, installedVersion: listed.version ?? null,
subject: { status: 'accepted', kind: 'registry', bundle: true, name: listed.name, spec, registry: null, bundled: true,
...listed.version === undefined ? {} : { version: listed.version },
...listed.description === undefined ? {} : { description: listed.description } },
} })
return
}
if (listed !== undefined && listed.availability !== 'missing' && catalogSubject === undefined) {
this.finishAnalytics('failed', 'already-installed')
this.patchInstall({ phase: 'idle', inputError: { problem: listed.availability === 'installation' ? 'shipped' : 'already-installed', reason: spec } })
@@ -1399,9 +1415,8 @@ export class PluginManagerController {
}
/**
* Enable the bundle the finished install added, then close the dialog and
* mark it in the list. A refusal toasts and still closes: the list shows
* what did not switch on.
* Enable the bundle ready from an install or the installation, then close the dialog and
* mark it in the list. A refusal toasts and still closes.
*/
private async enableInstalled(): Promise<void> {
const install = this.getSnapshot().install
@@ -1411,6 +1426,8 @@ export class PluginManagerController {
if (name !== null) {
const result = await this.ctx.remote.pluginManager.setBundleEnabled(name, true)
if (this.disposed) return
this.finishAnalytics(result.ok && result.value.application !== 'failed' ? 'success' : 'failed',
result.ok ? result.value.error?.code : result.error.code, name)
try {
this.applied(result, name)
if (result.ok && (result.value.application === 'applied' || result.value.application === 'restart-required')) this.trackToggle(name, true)
@@ -1079,7 +1079,7 @@ describe('PluginManagerPage', () => {
'plugins.row.config:dsh-better-sidebar#sidebar': view => view === 'summary' ? 'The sidebar row.' : <form aria-label="row form" />,
}
it('keeps configuration and installed plugins on the main list and shows all official plugins on the secondary page', () => {
it('keeps configuration and installed plugins on the main list and shows eligible official plugins on the secondary page', () => {
const team = '@deepseek-ai/dsh-experimental-agent-team-profile'
renderTab(
{ packages: [
@@ -1088,6 +1088,8 @@ describe('PluginManagerPage', () => {
pkg({ name: '@deepseek-ai/dsh-subagent-claude-code', official: true, availability: 'missing', installed: false, enabled: false }),
pkg({ name: '@deepseek-ai/dsh-subagent-codex', official: true, enabled: false }),
pkg({ name: '@deepseek-ai/dsh-experimental-tool-worktree', official: true, enabled: false }),
pkg({ name: '@deepseek-ai/dsh-experimental-session-search', installed: false, optional: true, enabled: false, listedByDefault: false }),
pkg({ name: '@deepseek-ai/dsh-experimental-ralph-bundle', installed: false, optional: true, enabled: false, listedByDefault: false }),
pkg({ name: '@acme/new-official', official: true }),
pkg(),
] },
@@ -1135,6 +1137,37 @@ describe('PluginManagerPage', () => {
expect(screen.getByRole('heading', { name: en.basicTitle })).toBeTruthy()
})
it.each([
'@deepseek-ai/dsh-experimental-session-search',
'@deepseek-ai/dsh-experimental-ralph-bundle',
'@acme/shipped-exploration',
])('omits %s from default lists while retaining explicit profile selections and installations', (name) => {
const entry = pkg({ name, installed: false, optional: true, removable: false, enabled: false, listedByDefault: false })
const other = pkg({ name: '@deepseek-ai/dsh-experimental-terminal-bundle', installed: false, optional: true, enabled: false })
const { actions, navigation, set, setLanguage } = renderTab({ packages: [other, entry] })
const card = () => document.querySelector(`[data-plugin-package="${name}"]`)
for (const dict of [en, zh]) {
setLanguage(dict)
expect(card()).toBeNull()
fireEvent.click(screen.getByRole('button', { name: dict.moreAction }))
expect(card()).toBeNull()
fireEvent.click(screen.getByRole('button', { name: dict.backToList }))
}
setLanguage(en)
set({ packages: [other, { ...entry, enabled: true }] })
expect(card()).not.toBeNull()
fireEvent.click(screen.getByRole('button', { name: en.openDetail.replace('{name}', name) }))
fireEvent.click(screen.getByRole('switch', { name: en.enableToggle.replace('{name}', name) }))
expect(actions.setEnabled).toHaveBeenCalledExactlyOnceWith(name, false)
set({ packages: [other, entry] })
expect(card()).toBeNull()
expect(document.querySelector('[data-plugin-detail]')).toBeNull()
expect(document.querySelector('[data-plugin-group="more"]')).toBeNull()
act(() => { navigation.actions.setView({ kind: 'more' }) })
set({ packages: [other, { ...entry, installed: true, availability: 'profile' }] })
expect(card()).not.toBeNull()
})
it.each([en, zh])('keeps disabled CUA on the secondary page with experimental labels', (dict) => {
const name = '@deepseek-ai/dsh-cua-bundle'
const entry = (enabled: boolean) => pkg({ name, official: true, enabled, meta: { title: 'Computer Use' } })
@@ -1755,6 +1788,21 @@ describe('PluginManagerPage', () => {
expect(actions.closeInstall).toHaveBeenCalledTimes(1)
})
it.each([en, zh])('offers an existing bundled plugin without claiming a download or installation', (dict) => {
const name = '@acme/shipped-exploration'
const { actions, setLanguage } = renderTab({ install: {
...IDLE_INSTALL, open: true, spec: name, phase: 'done', installed: name, installedVersion: '1.0.0',
subject: { status: 'accepted', spec: name, name, kind: 'registry', registry: null, bundle: true, bundled: true, version: '1.0.0' },
} })
setLanguage(dict)
expect(screen.getByText(dict.installBundledTitle)).toBeTruthy()
expect(screen.getByText(dict.installBundledDescription)).toBeTruthy()
expect(screen.queryByText(dict.installedTitle)).toBeNull()
expect(screen.queryByRole('button', { name: dict.installDetailsShow })).toBeNull()
fireEvent.click(screen.getByRole('button', { name: dict.installEnableNow }))
expect(actions.enableInstalled).toHaveBeenCalledExactlyOnceWith()
})
it('asks to allow the scripts a blocked install left pending, retries with them, and says what was allowed', () => {
const subject = { spec: 'dsh-x', status: 'accepted', kind: 'registry', name: 'dsh-x', bundle: true, registry: null } as const
const { actions, set } = renderTab({
@@ -702,6 +702,81 @@ describe('PluginManagerController', () => {
await vi.waitFor(() => { expect(state().install.inputError).toEqual({ problem: 'unknown', reason: 'offline' }) })
})
it('offers a default-hidden shipped bundle by name, permits cancellation, and enables without installing', async () => {
let enabled = false
const shipped: BundleInfo = { ...BUNDLE, name: '@acme/shipped-exploration', installed: false, official: true,
availability: 'installation', optional: true, removable: false, listedByDefault: false }
const { plugins, face, state, controller, track } = bench({
listBundles: vi.fn(() => Promise.resolve(ok([{ ...shipped, enabled }]))),
setBundleEnabled: vi.fn(() => { enabled = true; return Promise.resolve(ok(APPLIED)) }),
})
await controller.load()
expect(state().packages[0]?.listedByDefault).toBe(false)
face.openInstall()
face.editInstallSpec(shipped.name)
face.runInstall()
expect(state().install).toMatchObject({ phase: 'done', installed: shipped.name, subject: { bundled: true }, runs: [] })
expect(plugins.setBundleEnabled).not.toHaveBeenCalled()
face.closeInstall()
expect(enabled).toBe(false)
expect(track).toHaveBeenCalledWith('install_plugin_result', expect.objectContaining({ error_reason: 'user_cancelled' }))
face.openInstall()
face.editInstallSpec(shipped.name)
face.runInstall()
face.enableInstalled()
face.enableInstalled()
await vi.waitFor(() => { expect(state().install.open).toBe(false) })
expect(plugins.setBundleEnabled).toHaveBeenCalledExactlyOnceWith(shipped.name, true)
expect(state().packages[0]?.enabled).toBe(true)
expect(state().highlight).toBe(shipped.name)
expect(plugins.inspect).not.toHaveBeenCalled()
expect(plugins.installBundle).not.toHaveBeenCalled()
expect(track).toHaveBeenCalledWith('install_plugin_result', expect.objectContaining({ is_success: true, plugin_name: shipped.name }))
// The same name cannot start another activation after it is enabled.
face.openInstall()
face.editInstallSpec(shipped.name)
face.runInstall()
expect(state().install.inputError?.problem).toBe('shipped')
})
it('reports a refused bundled activation without downloading a replacement', async () => {
const shipped: BundleInfo = { ...BUNDLE, name: '@acme/shipped-exploration', installed: false, official: true,
availability: 'installation', optional: true, removable: false, listedByDefault: false }
const { plugins, face, state, controller } = bench({
listBundles: vi.fn(() => Promise.resolve(ok([shipped]))),
setBundleEnabled: vi.fn(() => Promise.resolve(ok(failed({ code: 'operation-error', diagnostic: 'activation refused' })))),
})
await controller.load()
face.openInstall()
face.editInstallSpec(shipped.name)
face.runInstall()
face.enableInstalled()
await vi.waitFor(() => { expect(state().install.open).toBe(false) })
expect(state().notice).toMatchObject({ kind: 'failed', action: 'enable', packageName: shipped.name, reason: 'activation refused' })
expect(state().packages[0]?.enabled).toBe(false)
expect(plugins.installBundle).not.toHaveBeenCalled()
})
it('accepts a bundled package without optional version or description and reports a lost activation reply', async () => {
const shipped: BundleInfo = { name: '@acme/shipped-exploration', installed: false, official: true, enabled: false,
availability: 'installation', optional: true, removable: false, updatable: false, listedByDefault: false, rows: [], overrides: [] }
const { plugins, face, state, controller } = bench({
listBundles: vi.fn(() => Promise.resolve(ok([shipped]))),
setBundleEnabled: vi.fn(() => Promise.resolve(refused('gateway/internal', 'offline'))),
})
await controller.load()
face.openInstall()
face.editInstallSpec(shipped.name)
face.runInstall()
expect(state().install.installedVersion).toBeNull()
expect(state().install.subject).not.toHaveProperty('version')
expect(state().install.subject).not.toHaveProperty('description')
face.enableInstalled()
await vi.waitFor(() => { expect(state().install.open).toBe(false) })
expect(state().notice).toMatchObject({ kind: 'failed', action: 'enable', reason: 'offline' })
expect(plugins.installBundle).not.toHaveBeenCalled()
})
it('leaves the check or the failed screen for the spec at once', async () => {
const inspectGate = deferred<ReturnType<typeof ok<typeof INSPECTED>>>()
const { plugins, face, state, controller } = bench({
+2 -2
View File
@@ -9,8 +9,8 @@
en: 18bc48bb66b3e516
zh: 51f2340a5c921f36
/packages-experimental/summary:
en: 18477c54ce3a4fe0
zh: 9382579479ad1dd8
en: 2b62fffc1ec9dd24
zh: cf1624878774c7df
/packages-experimental/table-of-contents:
en: cd24cc2ef2ec742e
zh: 7db21f509a8620a5
+1 -1
View File
@@ -9,7 +9,7 @@ English | [中文](README.zh.md)
## Summary
Install and compose experimental capabilities explicitly, without a product-support commitment. Package naming and publication follow the [experimental package policy](../../scripts/experimental-package-policy.ts). The [optional-bundle rule](../../.agents/notes/implemented/architecture/2026-09-21-experimental-capabilities-as-optional-bundles.md) determines which capabilities ship switched off with the installation for explicit selection in the GUI plugin manager’s Official group.
Install and compose experimental capabilities explicitly, without a product-support commitment. Package naming and publication follow the [experimental package policy](../../scripts/experimental-package-policy.ts). The [optional-bundle rule](../../.agents/notes/implemented/architecture/2026-09-21-experimental-capabilities-as-optional-bundles.md) determines which capabilities ship switched off with the installation for explicit selection. The [plugin manager page](../client/ui-plugin-manager/README.md#use-this-package) owns which bundles appear by default and how to enable hidden ones.
## Table of Contents
+1 -1
View File
@@ -9,7 +9,7 @@ kind: "package-group"
## 概述
实验性能力可按需安装和组合,但不提供产品支持承诺。包命名和发布遵循[实验包策略](../../scripts/experimental-package-policy.ts)。[可选组合规则](../../.agents/notes/implemented/architecture/2026-09-21-experimental-capabilities-as-optional-bundles.zh.md)决定哪些能力以默认关闭状态随安装提供,并在 GUI 插件管理器的官方分组显式启用。
实验性能力可按需安装和组合,但不提供产品支持承诺。包命名和发布遵循[实验包策略](../../scripts/experimental-package-policy.ts)。[可选组合规则](../../.agents/notes/implemented/architecture/2026-09-21-experimental-capabilities-as-optional-bundles.zh.md)决定哪些能力以默认关闭状态随安装提供,以便显式选入。[插件管理页](../client/ui-plugin-manager/README.zh.md#use-this-package)管理哪些组合包默认展示,以及如何启用隐藏项。
## 目录
@@ -0,0 +1 @@
![An instruction to add meeting notes, with the notes entered in the macOS Notes app](preview.svg)
@@ -0,0 +1 @@
![将会议要点填入备忘录的指令,以及 macOS 备忘录中的输入结果](preview.zh.svg)
@@ -0,0 +1,33 @@
<svg xmlns="http://www.w3.org/2000/svg" width="640" height="300" viewBox="0 0 640 300">
<rect width="640" height="300" fill="#F5F6FC"/>
<rect x="32" y="27" width="3" height="10" rx="1.5" fill="#4D6BFE"/>
<path d="M48.58 31.13Q48.5 30.82 48.36 30.56Q48.22 30.3 48 30.11Q47.78 29.92 47.485 29.815Q47.19 29.71 46.8 29.71Q46.23 29.71 45.815 29.94Q45.4 30.17 45.14 30.555Q44.88 30.94 44.755 31.43Q44.63 31.92 44.63 32.43Q44.63 32.94 44.755 33.43Q44.88 33.92 45.14 34.305Q45.4 34.69 45.815 34.92Q46.23 35.15 46.8 35.15Q47.22 35.15 47.54 35.005Q47.86 34.86 48.09 34.605Q48.32 34.35 48.45 34.01Q48.58 33.67 48.62 33.28H49.84Q49.8 33.92 49.565 34.45Q49.33 34.98 48.93 35.365Q48.53 35.75 47.99 35.96Q47.45 36.17 46.8 36.17Q46 36.17 45.365 35.875Q44.73 35.58 44.29 35.07Q43.85 34.56 43.615 33.88Q43.38 33.2 43.38 32.43Q43.38 31.67 43.615 30.99Q43.85 30.31 44.29 29.8Q44.73 29.29 45.365 28.99Q46 28.69 46.8 28.69Q47.4 28.69 47.93 28.855Q48.46 29.02 48.865 29.335Q49.27 29.65 49.52 30.1Q49.77 30.55 49.83 31.13ZM55.37 29.71Q54.8 29.71 54.385 29.94Q53.97 30.17 53.71 30.555Q53.45 30.94 53.325 31.43Q53.2 31.92 53.2 32.43Q53.2 32.94 53.325 33.43Q53.45 33.92 53.71 34.305Q53.97 34.69 54.385 34.92Q54.8 35.15 55.37 35.15Q55.94 35.15 56.355 34.92Q56.77 34.69 57.03 34.305Q57.29 33.92 57.415 33.43Q57.54 32.94 57.54 32.43Q57.54 31.92 57.415 31.43Q57.29 30.94 57.03 30.555Q56.77 30.17 56.355 29.94Q55.94 29.71 55.37 29.71ZM55.37 28.69Q56.17 28.69 56.805 28.99Q57.44 29.29 57.88 29.8Q58.32 30.31 58.555 30.99Q58.79 31.67 58.79 32.43Q58.79 33.2 58.555 33.88Q58.32 34.56 57.88 35.07Q57.44 35.58 56.805 35.875Q56.17 36.17 55.37 36.17Q54.57 36.17 53.935 35.875Q53.3 35.58 52.86 35.07Q52.42 34.56 52.185 33.88Q51.95 33.2 51.95 32.43Q51.95 31.67 52.185 30.99Q52.42 30.31 52.86 29.8Q53.3 29.29 53.935 28.99Q54.57 28.69 55.37 28.69ZM61.26 28.86H63.02L64.99 34.45H65.01L66.93 28.86H68.67V36H67.48V30.49H67.46L65.48 36H64.45L62.47 30.49H62.45V36H61.26ZM71.52 28.86H74.67Q75.43 28.86 75.91 29.08Q76.39 29.3 76.65 29.63Q76.91 29.96 77.005 30.35Q77.1 30.74 77.1 31.07Q77.1 31.4 77.005 31.785Q76.91 32.17 76.65 32.5Q76.39 32.83 75.91 33.045Q75.43 33.26 74.67 33.26H72.77V36H71.52ZM72.77 32.24H74.6Q74.81 32.24 75.03 32.18Q75.25 32.12 75.435 31.985Q75.62 31.85 75.735 31.625Q75.85 31.4 75.85 31.06Q75.85 30.71 75.75 30.48Q75.65 30.25 75.48 30.115Q75.31 29.98 75.09 29.93Q74.87 29.88 74.62 29.88H72.77ZM79.46 28.86H80.71V33.02Q80.71 33.38 80.745 33.75Q80.78 34.12 80.945 34.415Q81.11 34.71 81.445 34.9Q81.78 35.09 82.39 35.09Q83 35.09 83.335 34.9Q83.67 34.71 83.835 34.415Q84 34.12 84.035 33.75Q84.07 33.38 84.07 33.02V28.86H85.32V33.43Q85.32 34.12 85.11 34.63Q84.9 35.14 84.515 35.485Q84.13 35.83 83.59 36Q83.05 36.17 82.39 36.17Q81.73 36.17 81.19 36Q80.65 35.83 80.265 35.485Q79.88 35.14 79.67 34.63Q79.46 34.12 79.46 33.43ZM87.43 28.86H93.21V29.94H90.94V36H89.69V29.94H87.43ZM95.39 28.86H100.53V29.94H96.64V31.81H100.24V32.83H96.64V34.92H100.6V36H95.39ZM103.04 28.86H106.45Q107.63 28.86 108.22 29.37Q108.81 29.88 108.81 30.79Q108.81 31.3 108.66 31.635Q108.51 31.97 108.31 32.175Q108.11 32.38 107.915 32.47Q107.72 32.56 107.63 32.59V32.61Q107.79 32.63 107.975 32.71Q108.16 32.79 108.32 32.965Q108.48 33.14 108.585 33.42Q108.69 33.7 108.69 34.12Q108.69 34.75 108.785 35.265Q108.88 35.78 109.08 36H107.74Q107.6 35.77 107.575 35.49Q107.55 35.21 107.55 34.95Q107.55 34.46 107.49 34.105Q107.43 33.75 107.27 33.515Q107.11 33.28 106.835 33.17Q106.56 33.06 106.13 33.06H104.29V36H103.04ZM104.29 32.11H106.34Q106.94 32.11 107.25 31.825Q107.56 31.54 107.56 30.97Q107.56 30.63 107.46 30.415Q107.36 30.2 107.185 30.08Q107.01 29.96 106.785 29.92Q106.56 29.88 106.32 29.88H104.29ZM115.48 28.86H116.73V33.02Q116.73 33.38 116.765 33.75Q116.8 34.12 116.965 34.415Q117.13 34.71 117.465 34.9Q117.8 35.09 118.41 35.09Q119.02 35.09 119.355 34.9Q119.69 34.71 119.855 34.415Q120.02 34.12 120.055 33.75Q120.09 33.38 120.09 33.02V28.86H121.34V33.43Q121.34 34.12 121.13 34.63Q120.92 35.14 120.535 35.485Q120.15 35.83 119.61 36Q119.07 36.17 118.41 36.17Q117.75 36.17 117.21 36Q116.67 35.83 116.285 35.485Q115.9 35.14 115.69 34.63Q115.48 34.12 115.48 33.43ZM124.95 33.62Q124.95 34.03 125.09 34.32Q125.23 34.61 125.48 34.795Q125.73 34.98 126.055 35.065Q126.38 35.15 126.76 35.15Q127.17 35.15 127.46 35.055Q127.75 34.96 127.93 34.81Q128.11 34.66 128.19 34.465Q128.27 34.27 128.27 34.07Q128.27 33.66 128.085 33.465Q127.9 33.27 127.68 33.19Q127.3 33.05 126.795 32.925Q126.29 32.8 125.55 32.6Q125.09 32.48 124.785 32.285Q124.48 32.09 124.3 31.85Q124.12 31.61 124.045 31.34Q123.97 31.07 123.97 30.79Q123.97 30.25 124.195 29.855Q124.42 29.46 124.79 29.2Q125.16 28.94 125.63 28.815Q126.1 28.69 126.58 28.69Q127.14 28.69 127.635 28.835Q128.13 28.98 128.505 29.27Q128.88 29.56 129.1 29.985Q129.32 30.41 129.32 30.97H128.07Q128.02 30.28 127.6 29.995Q127.18 29.71 126.53 29.71Q126.31 29.71 126.08 29.755Q125.85 29.8 125.66 29.905Q125.47 30.01 125.345 30.19Q125.22 30.37 125.22 30.64Q125.22 31.02 125.455 31.235Q125.69 31.45 126.07 31.56Q126.11 31.57 126.385 31.645Q126.66 31.72 127 31.81Q127.34 31.9 127.665 31.985Q127.99 32.07 128.13 32.11Q128.48 32.22 128.74 32.41Q129 32.6 129.175 32.845Q129.35 33.09 129.435 33.37Q129.52 33.65 129.52 33.93Q129.52 34.53 129.275 34.955Q129.03Line truncated
<path d="M47.1 69.849 46.734 75H33.196V74.133Q33.489 74.109 34.045 74.048Q34.6 73.987 34.82 73.889Q35.186 73.73 35.351 73.425Q35.516 73.12 35.516 72.644V60.242Q35.516 59.827 35.375 59.509Q35.235 59.192 34.82 58.997Q34.539 58.85 34.032 58.71Q33.526 58.569 33.196 58.545V57.678H40.508V58.545Q40.167 58.557 39.623 58.667Q39.08 58.777 38.836 58.862Q38.421 59.009 38.268 59.363Q38.116 59.717 38.116 60.12V71.753Q38.116 72.559 38.195 73.004Q38.274 73.45 38.567 73.694Q38.848 73.914 39.404 73.981Q39.959 74.048 40.96 74.048Q41.412 74.048 41.9 74.023Q42.388 73.999 42.828 73.926Q43.255 73.853 43.615 73.724Q43.975 73.596 44.146 73.401Q44.646 72.839 45.312 71.698Q45.977 70.557 46.233 69.849ZM58.66 72.168Q57.903 73.608 56.634 74.463Q55.364 75.317 53.716 75.317Q52.264 75.317 51.171 74.805Q50.079 74.292 49.371 73.413Q48.663 72.534 48.315 71.362Q47.967 70.19 47.967 68.884Q47.967 67.712 48.339 66.583Q48.711 65.454 49.432 64.551Q50.127 63.684 51.159 63.153Q52.19 62.622 53.472 62.622Q54.791 62.622 55.73 63.037Q56.67 63.452 57.256 64.172Q57.818 64.856 58.093 65.784Q58.367 66.711 58.367 67.798V68.604H50.396Q50.396 69.788 50.622 70.752Q50.848 71.716 51.336 72.449Q51.812 73.157 52.581 73.566Q53.35 73.975 54.412 73.975Q55.499 73.975 56.286 73.468Q57.073 72.961 57.806 71.643ZM55.962 67.578Q55.962 66.895 55.846 66.113Q55.73 65.332 55.474 64.807Q55.193 64.246 54.705 63.892Q54.217 63.538 53.448 63.538Q52.166 63.538 51.318 64.606Q50.469 65.674 50.396 67.578ZM67.486 74.475Q66.692 74.805 65.984 75.031Q65.276 75.256 64.251 75.256Q62.737 75.256 62.121 74.493Q61.504 73.73 61.504 72.339V64.185H59.332V63.013H61.553V59.265H63.775V63.013H67.229V64.185H63.799V70.911Q63.799 71.667 63.854 72.174Q63.909 72.681 64.117 73.059Q64.312 73.413 64.703 73.596Q65.093 73.779 65.752 73.779Q66.058 73.779 66.65 73.724Q67.242 73.669 67.486 73.584ZM91.619 66.443Q91.619 68.652 90.789 70.276Q89.959 71.899 88.628 72.937Q87.286 73.975 85.613 74.487Q83.941 75 82.159 75H74.981V74.133Q75.335 74.133 75.903 74.066Q76.47 73.999 76.653 73.914Q77.02 73.755 77.184 73.444Q77.349 73.132 77.349 72.693V60.193Q77.349 59.778 77.209 59.448Q77.068 59.119 76.653 58.923Q76.275 58.74 75.835 58.655Q75.396 58.569 75.079 58.545V57.678H82.647Q84.209 57.678 85.723 58.16Q87.237 58.643 88.36 59.46Q89.886 60.547 90.752 62.305Q91.619 64.062 91.619 66.443ZM88.628 66.431Q88.628 64.685 88.165 63.275Q87.701 61.865 86.81 60.815Q85.967 59.814 84.74 59.241Q83.514 58.667 82.012 58.667Q81.512 58.667 80.883 58.685Q80.254 58.704 79.949 58.716V72.034Q79.949 73.145 80.596 73.572Q81.243 73.999 82.586 73.999Q84.136 73.999 85.296 73.45Q86.456 72.9 87.176 71.924Q87.933 70.898 88.281 69.55Q88.628 68.201 88.628 66.431ZM104.534 67.053Q105.083 67.664 105.346 68.39Q105.608 69.116 105.608 70.081Q105.608 72.375 103.912 73.865Q102.215 75.354 99.7 75.354Q98.541 75.354 97.381 74.994Q96.221 74.634 95.379 74.121L94.854 75.012H93.877L93.707 69.08H94.695Q95 70.178 95.409 71.063Q95.818 71.948 96.49 72.717Q97.125 73.438 97.973 73.865Q98.821 74.292 99.944 74.292Q100.787 74.292 101.415 74.072Q102.044 73.853 102.435 73.45Q102.825 73.047 103.014 72.504Q103.204 71.96 103.204 71.252Q103.204 70.215 102.618 69.318Q102.032 68.42 100.872 67.957Q100.079 67.639 99.053 67.255Q98.028 66.87 97.283 66.528Q95.818 65.869 95.007 64.801Q94.195 63.733 94.195 62.012Q94.195 61.023 94.598 60.168Q95 59.314 95.745 58.643Q96.453 58.008 97.417 57.648Q98.382 57.288 99.432 57.288Q100.628 57.288 101.574 57.654Q102.52 58.02 103.301 58.508L103.802 57.678H104.778L104.876 63.428H103.887Q103.619 62.439 103.283 61.536Q102.947 60.632 102.41 59.9Q101.885 59.192 101.128 58.771Q100.372 58.35 99.273 58.35Q98.113 58.35 97.295 59.094Q96.478 59.839 96.478 60.913Q96.478 62.036 97.002 62.775Q97.527 63.513 98.528 63.989Q99.419 64.417 100.28 64.728Q101.141 65.039 101.946 65.393Q102.679 65.71 103.356 66.113Q104.034 66.516 104.534 67.053ZM125.713 75H118.523V74.133Q118.816 74.109 119.372 74.06Q119.927 74.011 120.135 73.914Q120.501 73.767 120.672 73.468Q120.843 73.169 120.843 72.693V66.528H112.701V72.559Q112.701 72.986 112.841 73.279Q112.981 73.572 113.396 73.792Q113.604 73.901 114.135 74.011Q114.666 74.121 114.971 74.133V75H107.781V74.133Q108.074 74.109 108.63 74.06Q109.185 74.011 109.393 73.914Q109.759 73.767 109.93 73.468Q110.101 73.169 110.101 72.693V60.193Q110.101 59.802 109.942 59.479Q109.783 59.155 109.393 58.972Q109.063 58.813 108.593 58.691Q108.123 58.569 107.781 58.545V57.678H114.971V58.545Q114.629 58.557 114.135 58.655Q113.641 58.752 113.396 58.838Q112.981 58.984 112.841 59.326Q112.701 59.668 112.701 60.071V65.442H120.843V60.193Q120.843 59.802 120.684 59.479Q120.525 59.155 120.135 58.972Q119.805 58.813 119.335 58.691Q118.865 58.569 118.523 58.545V57.678H125.713V58.545Q125.372 58.557 124.877 58.655Q124.383 58.752 124.139 58.838Q123.724 58.984 123.583 59.326Q123.443 59.668 123.443 60.071V72.559Q123.443 72.986 123.583 73.279Q123.724 73.572 124.139 73.792Q124.346 73.901 124.877 74.011Q125.408 74.121 125.713 74.133ZM146.771 74.78 142.852 75.049 142.669 74.878V73.352H142.596Q142Line truncated
<path d="M33.014 90.718V100H34.249V96.035H37.265Q37.72 96.035 37.993 96.172Q38.266 96.308 38.435 96.536Q38.604 96.763 38.682 97.069Q38.76 97.374 38.812 97.712Q38.877 98.05 38.89 98.401Q38.903 98.752 38.916 99.058Q38.929 99.363 38.974 99.61Q39.02 99.857 39.15 100H40.528Q40.333 99.766 40.236 99.46Q40.138 99.155 40.086 98.817Q40.034 98.479 40.021 98.128Q40.008 97.777 39.982 97.439Q39.943 97.101 39.871 96.789Q39.8 96.477 39.65 96.224Q39.501 95.97 39.248 95.788Q38.994 95.606 38.591 95.528V95.502Q39.436 95.268 39.82 94.631Q40.203 93.994 40.203 93.149Q40.203 92.018 39.456 91.368Q38.708 90.718 37.382 90.718ZM36.823 94.995H34.249V91.758H37.317Q38.188 91.758 38.578 92.2Q38.968 92.642 38.968 93.344Q38.968 93.851 38.793 94.169Q38.617 94.488 38.325 94.677Q38.032 94.865 37.642 94.93Q37.252 94.995 36.823 94.995ZM46.404 95.996H42.543Q42.569 95.606 42.712 95.261Q42.855 94.917 43.102 94.657Q43.349 94.397 43.694 94.248Q44.038 94.098 44.467 94.098Q44.883 94.098 45.228 94.248Q45.572 94.397 45.826 94.65Q46.079 94.904 46.228 95.255Q46.378 95.606 46.404 95.996ZM47.47 97.868H46.378Q46.235 98.531 45.787 98.856Q45.338 99.181 44.636 99.181Q44.09 99.181 43.687 98.999Q43.284 98.817 43.024 98.511Q42.764 98.206 42.647 97.809Q42.53 97.413 42.543 96.971H47.574Q47.6 96.36 47.463 95.684Q47.327 95.008 46.969 94.436Q46.612 93.864 46.02 93.494Q45.429 93.123 44.532 93.123Q43.843 93.123 43.264 93.383Q42.686 93.643 42.264 94.111Q41.841 94.579 41.607 95.216Q41.373 95.853 41.373 96.62Q41.399 97.387 41.6 98.037Q41.802 98.687 42.205 99.155Q42.608 99.623 43.2 99.883Q43.791 100.143 44.597 100.143Q45.741 100.143 46.495 99.571Q47.249 98.999 47.47 97.868ZM54.672 99.974Q54.386 100.143 53.879 100.143Q53.45 100.143 53.197 99.903Q52.943 99.662 52.943 99.116Q52.488 99.662 51.883 99.903Q51.279 100.143 50.577 100.143Q50.122 100.143 49.713 100.039Q49.303 99.935 49.004 99.714Q48.705 99.493 48.529 99.136Q48.354 98.778 48.354 98.271Q48.354 97.699 48.549 97.335Q48.744 96.971 49.062 96.744Q49.381 96.516 49.791 96.399Q50.2 96.282 50.629 96.204Q51.084 96.113 51.494 96.067Q51.903 96.022 52.215 95.938Q52.527 95.853 52.709 95.691Q52.891 95.528 52.891 95.216Q52.891 94.852 52.755 94.631Q52.618 94.41 52.404 94.293Q52.189 94.176 51.922 94.137Q51.656 94.098 51.396 94.098Q50.694 94.098 50.226 94.364Q49.758 94.631 49.719 95.372H48.614Q48.64 94.748 48.874 94.319Q49.108 93.89 49.498 93.624Q49.888 93.357 50.389 93.24Q50.889 93.123 51.461 93.123Q51.916 93.123 52.365 93.188Q52.813 93.253 53.177 93.454Q53.541 93.656 53.762 94.02Q53.983 94.384 53.983 94.969V98.427Q53.983 98.817 54.029 98.999Q54.074 99.181 54.334 99.181Q54.477 99.181 54.672 99.116ZM52.878 96.529Q52.67 96.685 52.332 96.757Q51.994 96.828 51.623 96.874Q51.253 96.919 50.876 96.977Q50.499 97.036 50.2 97.166Q49.901 97.296 49.713 97.537Q49.524 97.777 49.524 98.193Q49.524 98.466 49.635 98.654Q49.745 98.843 49.921 98.96Q50.096 99.077 50.33 99.129Q50.564 99.181 50.824 99.181Q51.37 99.181 51.76 99.031Q52.15 98.882 52.397 98.655Q52.644 98.427 52.761 98.161Q52.878 97.894 52.878 97.66ZM56.505 96.698Q56.505 96.204 56.609 95.736Q56.713 95.268 56.947 94.904Q57.181 94.54 57.571 94.319Q57.961 94.098 58.52 94.098Q59.092 94.098 59.495 94.312Q59.898 94.527 60.151 94.878Q60.405 95.229 60.522 95.691Q60.639 96.152 60.639 96.646Q60.639 97.114 60.529 97.569Q60.418 98.024 60.171 98.382Q59.924 98.739 59.534 98.96Q59.144 99.181 58.585 99.181Q58.052 99.181 57.656 98.973Q57.259 98.765 57.006 98.414Q56.752 98.063 56.629 97.614Q56.505 97.166 56.505 96.698ZM61.705 100V90.718H60.6V94.176H60.574Q60.392 93.877 60.126 93.675Q59.859 93.474 59.56 93.351Q59.261 93.227 58.962 93.175Q58.663 93.123 58.403 93.123Q57.636 93.123 57.058 93.403Q56.479 93.682 56.096 94.156Q55.712 94.631 55.524 95.268Q55.335 95.905 55.335 96.62Q55.335 97.335 55.53 97.972Q55.725 98.609 56.109 99.09Q56.492 99.571 57.071 99.857Q57.649 100.143 58.429 100.143Q59.131 100.143 59.716 99.896Q60.301 99.649 60.574 99.09H60.6V100ZM68.556 93.279V91.264H67.451V93.279H66.307V94.254H67.451V98.531Q67.451 98.999 67.542 99.285Q67.633 99.571 67.822 99.727Q68.01 99.883 68.316 99.941Q68.621 100 69.05 100H69.895V99.025H69.388Q69.128 99.025 68.966 99.006Q68.803 98.986 68.712 98.921Q68.621 98.856 68.589 98.739Q68.556 98.622 68.556 98.427V94.254H69.895V93.279ZM71.117 90.718V100H72.222V96.204Q72.222 95.749 72.346 95.365Q72.469 94.982 72.716 94.696Q72.963 94.41 73.334 94.254Q73.704 94.098 74.211 94.098Q74.848 94.098 75.212 94.462Q75.576 94.826 75.576 95.45V100H76.681V95.58Q76.681 95.034 76.571 94.585Q76.46 94.137 76.187 93.812Q75.914 93.487 75.472 93.305Q75.03 93.123 74.367 93.123Q74.068 93.123 73.75 93.188Q73.431 93.253 73.139 93.389Q72.846 93.526 72.612 93.74Q72.378 93.955 72.248 94.267H72.222V90.718ZM83.012 95.996H79.151Q79.177 95.606 79.32 95.261Q79.463 94.917 79.71 94.657Q79.957 94.397 80.302 94.248Q80.646 94.098 81.075 94.098Q81.491 94.098 81.835 94.248Q82.18 94.397 82.434 94.65Q82.687 94.904 82.837 95.255Q82.986 95.606 83.012 95.996ZM84.078 97.868H82.986Q82.843 98.531 82.394 98.856Q81.946 99.181 81.244 99.181QLine truncated
<rect x="32" y="136" width="211" height="103" rx="12" fill="#FFFFFF" stroke="#E1E6F1"/>
<path d="M51.62 157.2 48.94 152.86H50.39L52.28 156.06L54.14 152.86H55.54L52.87 157.2V160H51.62ZM59.88 153.71Q59.31 153.71 58.895 153.94Q58.48 154.17 58.22 154.555Q57.96 154.94 57.835 155.43Q57.71 155.92 57.71 156.43Q57.71 156.94 57.835 157.43Q57.96 157.92 58.22 158.305Q58.48 158.69 58.895 158.92Q59.31 159.15 59.88 159.15Q60.45 159.15 60.865 158.92Q61.28 158.69 61.54 158.305Q61.8 157.92 61.925 157.43Q62.05 156.94 62.05 156.43Q62.05 155.92 61.925 155.43Q61.8 154.94 61.54 154.555Q61.28 154.17 60.865 153.94Q60.45 153.71 59.88 153.71ZM59.88 152.69Q60.68 152.69 61.315 152.99Q61.95 153.29 62.39 153.8Q62.83 154.31 63.065 154.99Q63.3 155.67 63.3 156.43Q63.3 157.2 63.065 157.88Q62.83 158.56 62.39 159.07Q61.95 159.58 61.315 159.875Q60.68 160.17 59.88 160.17Q59.08 160.17 58.445 159.875Q57.81 159.58 57.37 159.07Q56.93 158.56 56.695 157.88Q56.46 157.2 56.46 156.43Q56.46 155.67 56.695 154.99Q56.93 154.31 57.37 153.8Q57.81 153.29 58.445 152.99Q59.08 152.69 59.88 152.69ZM64.96 152.86H66.21V157.02Q66.21 157.38 66.245 157.75Q66.28 158.12 66.445 158.415Q66.61 158.71 66.945 158.9Q67.28 159.09 67.89 159.09Q68.5 159.09 68.835 158.9Q69.17 158.71 69.335 158.415Q69.5 158.12 69.535 157.75Q69.57 157.38 69.57 157.02V152.86H70.82V157.43Q70.82 158.12 70.61 158.63Q70.4 159.14 70.015 159.485Q69.63 159.83 69.09 160Q68.55 160.17 67.89 160.17Q67.23 160.17 66.69 160Q66.15 159.83 65.765 159.485Q65.38 159.14 65.17 158.63Q64.96 158.12 64.96 157.43ZM72.86 152.86H76.27Q77.45 152.86 78.04 153.37Q78.63 153.88 78.63 154.79Q78.63 155.3 78.48 155.635Q78.33 155.97 78.13 156.175Q77.93 156.38 77.735 156.47Q77.54 156.56 77.45 156.59V156.61Q77.61 156.63 77.795 156.71Q77.98 156.79 78.14 156.965Q78.3 157.14 78.405 157.42Q78.51 157.7 78.51 158.12Q78.51 158.75 78.605 159.265Q78.7 159.78 78.9 160H77.56Q77.42 159.77 77.395 159.49Q77.37 159.21 77.37 158.95Q77.37 158.46 77.31 158.105Q77.25 157.75 77.09 157.515Q76.93 157.28 76.655 157.17Q76.38 157.06 75.95 157.06H74.11V160H72.86ZM74.11 156.11H76.16Q76.76 156.11 77.07 155.825Q77.38 155.54 77.38 154.97Q77.38 154.63 77.28 154.415Q77.18 154.2 77.005 154.08Q76.83 153.96 76.605 153.92Q76.38 153.88 76.14 153.88H74.11ZM83.88 152.86H87.29Q88.47 152.86 89.06 153.37Q89.65 153.88 89.65 154.79Q89.65 155.3 89.5 155.635Q89.35 155.97 89.15 156.175Q88.95 156.38 88.755 156.47Q88.56 156.56 88.47 156.59V156.61Q88.63 156.63 88.815 156.71Q89 156.79 89.16 156.965Q89.32 157.14 89.425 157.42Q89.53 157.7 89.53 158.12Q89.53 158.75 89.625 159.265Q89.72 159.78 89.92 160H88.58Q88.44 159.77 88.415 159.49Q88.39 159.21 88.39 158.95Q88.39 158.46 88.33 158.105Q88.27 157.75 88.11 157.515Q87.95 157.28 87.675 157.17Q87.4 157.06 86.97 157.06H85.13V160H83.88ZM85.13 156.11H87.18Q87.78 156.11 88.09 155.825Q88.4 155.54 88.4 154.97Q88.4 154.63 88.3 154.415Q88.2 154.2 88.025 154.08Q87.85 153.96 87.625 153.92Q87.4 153.88 87.16 153.88H85.13ZM91.52 152.86H96.66V153.94H92.77V155.81H96.37V156.83H92.77V158.92H96.73V160H91.52ZM104.79 159.97 104.18 160.65 103.14 159.74Q102.74 159.97 102.31 160.07Q101.88 160.17 101.46 160.17Q100.66 160.17 100.025 159.875Q99.39 159.58 98.95 159.07Q98.51 158.56 98.275 157.88Q98.04 157.2 98.04 156.43Q98.04 155.67 98.275 154.99Q98.51 154.31 98.95 153.8Q99.39 153.29 100.025 152.99Q100.66 152.69 101.46 152.69Q102.26 152.69 102.895 152.99Q103.53 153.29 103.97 153.8Q104.41 154.31 104.645 154.99Q104.88 155.67 104.88 156.43Q104.88 156.8 104.82 157.175Q104.76 157.55 104.64 157.91Q104.52 158.27 104.33 158.595Q104.14 158.92 103.87 159.17ZM101.54 158.35 102.14 157.66 103.01 158.42Q103.35 158.01 103.49 157.49Q103.63 156.97 103.63 156.43Q103.63 155.92 103.505 155.43Q103.38 154.94 103.12 154.555Q102.86 154.17 102.445 153.94Q102.03 153.71 101.46 153.71Q100.89 153.71 100.475 153.94Q100.06 154.17 99.8 154.555Q99.54 154.94 99.415 155.43Q99.29 155.92 99.29 156.43Q99.29 156.94 99.415 157.43Q99.54 157.92 99.8 158.305Q100.06 158.69 100.475 158.92Q100.89 159.15 101.46 159.15Q101.66 159.15 101.865 159.11Q102.07 159.07 102.26 158.98ZM106.54 152.86H107.79V157.02Q107.79 157.38 107.825 157.75Q107.86 158.12 108.025 158.415Q108.19 158.71 108.525 158.9Q108.86 159.09 109.47 159.09Q110.08 159.09 110.415 158.9Q110.75 158.71 110.915 158.415Q111.08 158.12 111.115 157.75Q111.15 157.38 111.15 157.02V152.86H112.4V157.43Q112.4 158.12 112.19 158.63Q111.98 159.14 111.595 159.485Q111.21 159.83 110.67 160Q110.13 160.17 109.47 160.17Q108.81 160.17 108.27 160Q107.73 159.83 107.345 159.485Q106.96 159.14 106.75 158.63Q106.54 158.12 106.54 157.43ZM114.44 152.86H119.58V153.94H115.69V155.81H119.29V156.83H115.69V158.92H119.65V160H114.44ZM122.16 157.62Q122.16 158.03 122.3 158.32Q122.44 158.61 122.69 158.795Q122.94 158.98 123.265 159.065Q123.59 159.15 123.97 159.15Q124.38 159.15 124.67 159.055Q124.96 158.96 125.14 158.81Q125.32 158.66 125.4 158.465Q125.48 158.27 125.48 158.07Q125.48 157.66 125.295 157.465Q125.11 157.27 124.89 157.19Q124.51 157.05 124.005 156.925Q123.5 156.8 122.76 156.6Q122.3 156.48 121.995 156.285Q121.69 156.09 121.51 155.85Q121.33 155.61 121.255 155.34Q121.18 155.07 121.18Line truncated
<path d="M53.539 176.862H55.8L60.475 189H58.197L57.058 185.787H52.213L51.074 189H48.881ZM52.791 184.172H56.497L54.678 178.953H54.627ZM69.638 189H67.802V187.81H67.768Q67.377 188.575 66.629 188.906Q65.881 189.238 65.048 189.238Q64.011 189.238 63.237 188.873Q62.464 188.507 61.954 187.878Q61.444 187.249 61.189 186.391Q60.934 185.532 60.934 184.546Q60.934 183.356 61.257 182.489Q61.58 181.622 62.115 181.061Q62.651 180.5 63.339 180.237Q64.028 179.973 64.742 179.973Q65.15 179.973 65.575 180.05Q66 180.126 66.391 180.296Q66.782 180.466 67.113 180.73Q67.445 180.993 67.666 181.35H67.7V176.862H69.638ZM62.872 184.699Q62.872 185.26 63.017 185.804Q63.161 186.348 63.459 186.773Q63.756 187.198 64.215 187.453Q64.674 187.708 65.303 187.708Q65.949 187.708 66.416 187.436Q66.884 187.164 67.181 186.722Q67.479 186.28 67.624 185.728Q67.768 185.175 67.768 184.597Q67.768 183.135 67.114 182.319Q66.459 181.503 65.337 181.503Q64.657 181.503 64.189 181.784Q63.722 182.064 63.424 182.514Q63.127 182.965 62.999 183.534Q62.872 184.104 62.872 184.699ZM80.025 189H78.189V187.81H78.155Q77.764 188.575 77.016 188.906Q76.268 189.238 75.435 189.238Q74.398 189.238 73.624 188.873Q72.851 188.507 72.341 187.878Q71.831 187.249 71.576 186.391Q71.321 185.532 71.321 184.546Q71.321 183.356 71.644 182.489Q71.967 181.622 72.502 181.061Q73.038 180.5 73.726 180.237Q74.415 179.973 75.129 179.973Q75.537 179.973 75.962 180.05Q76.387 180.126 76.778 180.296Q77.169 180.466 77.5 180.73Q77.832 180.993 78.053 181.35H78.087V176.862H80.025ZM73.259 184.699Q73.259 185.26 73.404 185.804Q73.548 186.348 73.846 186.773Q74.143 187.198 74.602 187.453Q75.061 187.708 75.69 187.708Q76.336 187.708 76.803 187.436Q77.271 187.164 77.569 186.722Q77.866 186.28 78.011 185.728Q78.155 185.175 78.155 184.597Q78.155 183.135 77.501 182.319Q76.846 181.503 75.724 181.503Q75.044 181.503 74.576 181.784Q74.109 182.064 73.811 182.514Q73.514 182.965 73.386 183.534Q73.259 184.104 73.259 184.699ZM85.975 180.211H87.437V177.576H89.375V180.211H91.126V181.656H89.375V186.348Q89.375 186.654 89.4 186.875Q89.426 187.096 89.519 187.249Q89.613 187.402 89.8 187.478Q89.987 187.555 90.31 187.555Q90.514 187.555 90.718 187.547Q90.922 187.538 91.126 187.487V188.983Q90.803 189.017 90.497 189.051Q90.191 189.085 89.868 189.085Q89.103 189.085 88.635 188.94Q88.168 188.796 87.904 188.516Q87.641 188.235 87.547 187.81Q87.454 187.385 87.437 186.841V181.656H85.975ZM92.52 176.862H94.458V181.367H94.492Q94.849 180.772 95.555 180.373Q96.26 179.973 97.127 179.973Q98.572 179.973 99.405 180.721Q100.238 181.469 100.238 182.965V189H98.3V183.475Q98.266 182.438 97.858 181.97Q97.45 181.503 96.583 181.503Q96.09 181.503 95.699 181.681Q95.308 181.86 95.036 182.175Q94.764 182.489 94.611 182.914Q94.458 183.339 94.458 183.815V189H92.52ZM108.313 183.832Q108.279 183.373 108.117 182.948Q107.956 182.523 107.675 182.209Q107.395 181.894 106.995 181.698Q106.596 181.503 106.103 181.503Q105.593 181.503 105.176 181.681Q104.76 181.86 104.462 182.175Q104.165 182.489 103.986 182.914Q103.808 183.339 103.791 183.832ZM103.791 185.107Q103.791 185.617 103.935 186.093Q104.08 186.569 104.369 186.926Q104.658 187.283 105.1 187.495Q105.542 187.708 106.154 187.708Q107.004 187.708 107.522 187.343Q108.041 186.977 108.296 186.246H110.132Q109.979 186.96 109.605 187.521Q109.231 188.082 108.704 188.464Q108.177 188.847 107.522 189.043Q106.868 189.238 106.154 189.238Q105.117 189.238 104.318 188.898Q103.519 188.558 102.966 187.946Q102.414 187.334 102.133 186.484Q101.853 185.634 101.853 184.614Q101.853 183.679 102.15 182.838Q102.448 181.996 103 181.358Q103.553 180.721 104.335 180.347Q105.117 179.973 106.103 179.973Q107.14 179.973 107.965 180.406Q108.789 180.84 109.333 181.554Q109.877 182.268 110.123 183.195Q110.37 184.121 110.251 185.107ZM116.456 180.211H118.292V181.435H118.343Q118.564 181.112 118.819 180.84Q119.074 180.568 119.388 180.381Q119.703 180.194 120.111 180.084Q120.519 179.973 121.046 179.973Q121.845 179.973 122.534 180.33Q123.222 180.687 123.511 181.435Q124.004 180.755 124.65 180.364Q125.296 179.973 126.265 179.973Q127.659 179.973 128.433 180.653Q129.206 181.333 129.206 182.931V189H127.268V183.866Q127.268 183.339 127.234 182.906Q127.2 182.472 127.038 182.157Q126.877 181.843 126.554 181.673Q126.231 181.503 125.67 181.503Q124.684 181.503 124.242 182.115Q123.8 182.727 123.8 183.849V189H121.862V183.356Q121.862 182.438 121.53 181.97Q121.199 181.503 120.315 181.503Q119.941 181.503 119.593 181.656Q119.244 181.809 118.981 182.098Q118.717 182.387 118.555 182.812Q118.394 183.237 118.394 183.781V189H116.456ZM137.281 183.832Q137.247 183.373 137.086 182.948Q136.924 182.523 136.644 182.209Q136.363 181.894 135.964 181.698Q135.564 181.503 135.071 181.503Q134.561 181.503 134.144 181.681Q133.728 181.86 133.43 182.175Q133.133 182.489 132.954 182.914Q132.776 183.339 132.759 183.832ZM132.759 185.107Q132.759 185.617 132.904 186.093Q133.048 186.569 133.337 186.926Q133.626 187.283 134.068 187.495Q134.51 187.708 135.122 187.708Q135.972 187.708 136.49 187.343Q137.009 186.977 137.264 186.246H139.1Line truncated
<path d="M50.02 205.211H51.856V206.503L51.89 206.537Q52.332 205.806 53.046 205.389Q53.76 204.973 54.627 204.973Q56.072 204.973 56.905 205.721Q57.738 206.469 57.738 207.965V214H55.8V208.475Q55.766 207.438 55.358 206.97Q54.95 206.503 54.083 206.503Q53.59 206.503 53.199 206.681Q52.808 206.86 52.536 207.175Q52.264 207.489 52.111 207.914Q51.958 208.339 51.958 208.815V214H50.02ZM63.807 214.238Q62.753 214.238 61.928 213.889Q61.104 213.541 60.535 212.929Q59.965 212.317 59.668 211.467Q59.37 210.617 59.37 209.597Q59.37 208.594 59.668 207.744Q59.965 206.894 60.535 206.282Q61.104 205.67 61.928 205.322Q62.753 204.973 63.807 204.973Q64.861 204.973 65.686 205.322Q66.51 205.67 67.079 206.282Q67.649 206.894 67.947 207.744Q68.244 208.594 68.244 209.597Q68.244 210.617 67.947 211.467Q67.649 212.317 67.079 212.929Q66.51 213.541 65.686 213.889Q64.861 214.238 63.807 214.238ZM63.807 212.708Q64.453 212.708 64.929 212.436Q65.405 212.164 65.711 211.722Q66.017 211.28 66.161 210.728Q66.306 210.175 66.306 209.597Q66.306 209.036 66.161 208.475Q66.017 207.914 65.711 207.481Q65.405 207.047 64.929 206.775Q64.453 206.503 63.807 206.503Q63.161 206.503 62.685 206.775Q62.209 207.047 61.903 207.481Q61.597 207.914 61.453 208.475Q61.308 209.036 61.308 209.597Q61.308 210.175 61.453 210.728Q61.597 211.28 61.903 211.722Q62.209 212.164 62.685 212.436Q63.161 212.708 63.807 212.708ZM68.975 205.211H70.437V202.576H72.375V205.211H74.126V206.656H72.375V211.348Q72.375 211.654 72.4 211.875Q72.426 212.096 72.519 212.249Q72.613 212.402 72.8 212.478Q72.987 212.555 73.31 212.555Q73.514 212.555 73.718 212.547Q73.922 212.538 74.126 212.487V213.983Q73.803 214.017 73.497 214.051Q73.191 214.085 72.868 214.085Q72.103 214.085 71.635 213.94Q71.168 213.796 70.904 213.516Q70.641 213.235 70.547 212.81Q70.454 212.385 70.437 211.841V206.656H68.975ZM81.555 208.832Q81.521 208.373 81.359 207.948Q81.198 207.523 80.918 207.209Q80.637 206.894 80.237 206.698Q79.838 206.503 79.345 206.503Q78.835 206.503 78.418 206.681Q78.002 206.86 77.704 207.175Q77.407 207.489 77.228 207.914Q77.05 208.339 77.033 208.832ZM77.033 210.107Q77.033 210.617 77.178 211.093Q77.322 211.569 77.611 211.926Q77.9 212.283 78.342 212.495Q78.784 212.708 79.396 212.708Q80.246 212.708 80.764 212.343Q81.283 211.977 81.538 211.246H83.374Q83.221 211.96 82.847 212.521Q82.473 213.082 81.946 213.464Q81.419 213.847 80.764 214.043Q80.11 214.238 79.396 214.238Q78.359 214.238 77.56 213.898Q76.761 213.558 76.209 212.946Q75.656 212.334 75.376 211.484Q75.095 210.634 75.095 209.614Q75.095 208.679 75.392 207.838Q75.69 206.996 76.243 206.358Q76.795 205.721 77.577 205.347Q78.359 204.973 79.345 204.973Q80.382 204.973 81.207 205.406Q82.031 205.84 82.575 206.554Q83.119 207.268 83.365 208.195Q83.612 209.121 83.493 210.107ZM86.434 211.178Q86.519 212.028 87.08 212.368Q87.641 212.708 88.423 212.708Q88.695 212.708 89.043 212.666Q89.392 212.623 89.698 212.504Q90.004 212.385 90.2 212.155Q90.395 211.926 90.378 211.552Q90.361 211.178 90.106 210.94Q89.851 210.702 89.451 210.558Q89.052 210.413 88.542 210.311Q88.032 210.209 87.505 210.09Q86.961 209.971 86.459 209.801Q85.958 209.631 85.558 209.342Q85.159 209.053 84.921 208.602Q84.683 208.152 84.683 207.489Q84.683 206.775 85.031 206.291Q85.38 205.806 85.915 205.509Q86.451 205.211 87.106 205.092Q87.76 204.973 88.355 204.973Q89.035 204.973 89.655 205.118Q90.276 205.262 90.778 205.585Q91.279 205.908 91.611 206.426Q91.942 206.945 92.027 207.676H90.004Q89.868 206.979 89.367 206.741Q88.865 206.503 88.219 206.503Q88.015 206.503 87.734 206.537Q87.454 206.571 87.207 206.665Q86.961 206.758 86.791 206.937Q86.621 207.115 86.621 207.404Q86.621 207.761 86.868 207.982Q87.114 208.203 87.513 208.347Q87.913 208.492 88.423 208.594Q88.933 208.696 89.477 208.815Q90.004 208.934 90.514 209.104Q91.024 209.274 91.423 209.563Q91.823 209.852 92.07 210.294Q92.316 210.736 92.316 211.382Q92.316 212.164 91.959 212.708Q91.602 213.252 91.032 213.592Q90.463 213.932 89.766 214.085Q89.069 214.238 88.389 214.238Q87.556 214.238 86.85 214.051Q86.145 213.864 85.626 213.481Q85.108 213.099 84.811 212.529Q84.513 211.96 84.496 211.178ZM97.637 205.211H99.099V202.576H101.037V205.211H102.788V206.656H101.037V211.348Q101.037 211.654 101.062 211.875Q101.088 212.096 101.181 212.249Q101.275 212.402 101.462 212.478Q101.649 212.555 101.972 212.555Q102.176 212.555 102.38 212.547Q102.584 212.538 102.788 212.487V213.983Q102.465 214.017 102.159 214.051Q101.853 214.085 101.53 214.085Q100.765 214.085 100.297 213.94Q99.83 213.796 99.567 213.516Q99.303 213.235 99.21 212.81Q99.116 212.385 99.099 211.841V206.656H97.637ZM108.211 214.238Q107.157 214.238 106.333 213.889Q105.508 213.541 104.939 212.929Q104.369 212.317 104.072 211.467Q103.774 210.617 103.774 209.597Q103.774 208.594 104.072 207.744Q104.369 206.894 104.939 206.282Q105.508 205.67 106.333 205.322Q107.157 204.973 108.211 204.973Q109.265 204.973 110.09 205.322Q110.914 205.67 111.484 206.282Q112.053 206.894 112.351 207.744Q112.648 208.594 112.648 209.597Q112.648 210.617 112.351 211.467Q112.053 212.317 111.48Line truncated
<path d="M257 187H279M274 182L279 187L274 192" fill="none" stroke="#95A5D4" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"/>
<rect x="294" y="123" width="314" height="145" rx="12" fill="#FFFFFF" stroke="#DCE2EF"/>
<path d="M306 123H596Q608 123 608 135V151H294V135Q294 123 306 123Z" fill="#F9FAFD"/>
<path d="M294 151H608" stroke="#E4E8F1"/>
<circle cx="309" cy="137" r="3" fill="#E4ABAE"/>
<circle cx="320" cy="137" r="3" fill="#E4CEA1"/>
<circle cx="331" cy="137" r="3" fill="#A9C9B4"/>
<path d="M438.53 133.86V141H439.43V135.27H439.45L443.18 141H444.22V133.86H443.32V139.65H443.3L439.54 133.86ZM446.24 138.42Q446.24 137.95 446.365 137.585Q446.49 137.22 446.71 136.97Q446.93 136.72 447.225 136.59Q447.52 136.46 447.85 136.46Q448.18 136.46 448.475 136.59Q448.77 136.72 448.99 136.97Q449.21 137.22 449.335 137.585Q449.46 137.95 449.46 138.42Q449.46 138.89 449.335 139.255Q449.21 139.62 448.99 139.865Q448.77 140.11 448.475 140.24Q448.18 140.37 447.85 140.37Q447.52 140.37 447.225 140.24Q446.93 140.11 446.71 139.865Q446.49 139.62 446.365 139.255Q446.24 138.89 446.24 138.42ZM445.34 138.42Q445.34 138.99 445.5 139.48Q445.66 139.97 445.98 140.335Q446.3 140.7 446.77 140.905Q447.24 141.11 447.85 141.11Q448.47 141.11 448.935 140.905Q449.4 140.7 449.72 140.335Q450.04 139.97 450.2 139.48Q450.36 138.99 450.36 138.42Q450.36 137.85 450.2 137.355Q450.04 136.86 449.72 136.495Q449.4 136.13 448.935 135.92Q448.47 135.71 447.85 135.71Q447.24 135.71 446.77 135.92Q446.3 136.13 445.98 136.495Q445.66 136.86 445.5 137.355Q445.34 137.85 445.34 138.42ZM452.54 135.83V134.28H451.69V135.83H450.81V136.58H451.69V139.87Q451.69 140.23 451.76 140.45Q451.83 140.67 451.975 140.79Q452.12 140.91 452.355 140.955Q452.59 141 452.92 141H453.57V140.25H453.18Q452.98 140.25 452.855 140.235Q452.73 140.22 452.66 140.17Q452.59 140.12 452.565 140.03Q452.54 139.94 452.54 139.79V136.58H453.57V135.83ZM458.1 137.92H455.13Q455.15 137.62 455.26 137.355Q455.37 137.09 455.56 136.89Q455.75 136.69 456.015 136.575Q456.28 136.46 456.61 136.46Q456.93 136.46 457.195 136.575Q457.46 136.69 457.655 136.885Q457.85 137.08 457.965 137.35Q458.08 137.62 458.1 137.92ZM458.92 139.36H458.08Q457.97 139.87 457.625 140.12Q457.28 140.37 456.74 140.37Q456.32 140.37 456.01 140.23Q455.7 140.09 455.5 139.855Q455.3 139.62 455.21 139.315Q455.12 139.01 455.13 138.67H459Q459.02 138.2 458.915 137.68Q458.81 137.16 458.535 136.72Q458.26 136.28 457.805 135.995Q457.35 135.71 456.66 135.71Q456.13 135.71 455.685 135.91Q455.24 136.11 454.915 136.47Q454.59 136.83 454.41 137.32Q454.23 137.81 454.23 138.4Q454.25 138.99 454.405 139.49Q454.56 139.99 454.87 140.35Q455.18 140.71 455.635 140.91Q456.09 141.11 456.71 141.11Q457.59 141.11 458.17 140.67Q458.75 140.23 458.92 139.36ZM460.4 139.37H459.55Q459.57 139.85 459.75 140.185Q459.93 140.52 460.23 140.725Q460.53 140.93 460.92 141.02Q461.31 141.11 461.74 141.11Q462.13 141.11 462.525 141.035Q462.92 140.96 463.235 140.77Q463.55 140.58 463.745 140.27Q463.94 139.96 463.94 139.49Q463.94 139.12 463.795 138.87Q463.65 138.62 463.415 138.455Q463.18 138.29 462.875 138.19Q462.57 138.09 462.25 138.02Q461.95 137.95 461.65 137.885Q461.35 137.82 461.11 137.725Q460.87 137.63 460.715 137.485Q460.56 137.34 460.56 137.12Q460.56 136.92 460.66 136.795Q460.76 136.67 460.92 136.595Q461.08 136.52 461.275 136.49Q461.47 136.46 461.66 136.46Q461.87 136.46 462.075 136.505Q462.28 136.55 462.45 136.65Q462.62 136.75 462.73 136.915Q462.84 137.08 462.86 137.33H463.71Q463.68 136.86 463.51 136.545Q463.34 136.23 463.055 136.045Q462.77 135.86 462.4 135.785Q462.03 135.71 461.59 135.71Q461.25 135.71 460.905 135.795Q460.56 135.88 460.285 136.055Q460.01 136.23 459.835 136.51Q459.66 136.79 459.66 137.18Q459.66 137.68 459.91 137.96Q460.16 138.24 460.535 138.395Q460.91 138.55 461.35 138.635Q461.79 138.72 462.165 138.825Q462.54 138.93 462.79 139.1Q463.04 139.27 463.04 139.6Q463.04 139.84 462.92 139.995Q462.8 140.15 462.615 140.23Q462.43 140.31 462.21 140.34Q461.99 140.37 461.79 140.37Q461.53 140.37 461.285 140.32Q461.04 140.27 460.845 140.155Q460.65 140.04 460.53 139.845Q460.41 139.65 460.4 139.37Z" fill="#77829A"/>
<path d="M294.5 151.5H337V267.5H306Q294.5 267.5 294.5 256Z" fill="#F7F8FC"/>
<path d="M337 152V268" stroke="#E9ECF4"/>
<rect x="304" y="164" width="24" height="21" rx="5" fill="#E9EDFD"/>
<path d="M311 170H321M311 174H321M311 178H317" stroke="#8496D5" stroke-width="1.2" stroke-linecap="round"/>
<path d="M311 198H321M311 202H318M311 221H321M311 225H318" stroke="#C2CADA" stroke-width="1.2" stroke-linecap="round"/>
<path d="M355.036 167.004H357.5L360.258 174.83H360.286L362.974 167.004H365.41V177H363.744V169.286H363.716L360.944 177H359.502L356.73 169.286H356.702V177H355.036ZM372.256 172.744Q372.228 172.366 372.095 172.016Q371.962 171.666 371.731 171.407Q371.5 171.148 371.171 170.987Q370.842 170.826 370.436 170.826Q370.016 170.826 369.673 170.973Q369.33 171.12 369.085 171.379Q368.84 171.638 368.693 171.988Q368.546 172.338 368.532 172.744ZM368.532 173.794Q368.532 174.214 368.651 174.606Q368.77 174.998 369.008 175.292Q369.246 175.586 369.61 175.761Q369.974 175.936 370.478 175.936Q371.178 175.936 371.605 175.635Q372.032 175.334 372.242 174.732H373.754Q373.628 175.32 373.32 175.782Q373.012 176.244 372.578 176.559Q372.144 176.874 371.605 177.035Q371.066 177.196 370.478 177.196Q369.624 177.196 368.966 176.916Q368.308 176.636 367.853 176.132Q367.398 175.628 367.167 174.928Q366.936 174.228 366.936 173.388Q366.936 172.618 367.181 171.925Q367.426 171.232 367.881 170.707Q368.336 170.182 368.98 169.874Q369.624 169.566 370.436 169.566Q371.29 169.566 371.969 169.923Q372.648 170.28 373.096 170.868Q373.544 171.456 373.747 172.219Q373.95 172.982 373.852 173.794ZM380.04 172.744Q380.012 172.366 379.879 172.016Q379.746 171.666 379.515 171.407Q379.284 171.148 378.955 170.987Q378.626 170.826 378.22 170.826Q377.8 170.826 377.457 170.973Q377.114 171.12 376.869 171.379Q376.624 171.638 376.477 171.988Q376.33 172.338 376.316 172.744ZM376.316 173.794Q376.316 174.214 376.435 174.606Q376.554 174.998 376.792 175.292Q377.03 175.586 377.394 175.761Q377.758 175.936 378.262 175.936Q378.962 175.936 379.389 175.635Q379.816 175.334 380.026 174.732H381.538Q381.412 175.32 381.104 175.782Q380.796 176.244 380.362 176.559Q379.928 176.874 379.389 177.035Q378.85 177.196 378.262 177.196Q377.408 177.196 376.75 176.916Q376.092 176.636 375.637 176.132Q375.182 175.628 374.951 174.928Q374.72 174.228 374.72 173.388Q374.72 172.618 374.965 171.925Q375.21 171.232 375.665 170.707Q376.12 170.182 376.764 169.874Q377.408 169.566 378.22 169.566Q379.074 169.566 379.753 169.923Q380.432 170.28 380.88 170.868Q381.328 171.456 381.531 172.219Q381.734 172.982 381.636 173.794ZM382.126 169.762H383.33V167.592H384.926V169.762H386.368V170.952H384.926V174.816Q384.926 175.068 384.947 175.25Q384.968 175.432 385.045 175.558Q385.122 175.684 385.276 175.747Q385.43 175.81 385.696 175.81Q385.864 175.81 386.032 175.803Q386.2 175.796 386.368 175.754V176.986Q386.102 177.014 385.85 177.042Q385.598 177.07 385.332 177.07Q384.702 177.07 384.317 176.951Q383.932 176.832 383.715 176.601Q383.498 176.37 383.421 176.02Q383.344 175.67 383.33 175.222V170.952H382.126ZM387.558 167.004H389.154V168.516H387.558ZM387.558 169.762H389.154V177H387.558ZM390.89 169.762H392.402V170.826L392.43 170.854Q392.794 170.252 393.382 169.909Q393.97 169.566 394.684 169.566Q395.874 169.566 396.56 170.182Q397.246 170.798 397.246 172.03V177H395.65V172.45Q395.622 171.596 395.286 171.211Q394.95 170.826 394.236 170.826Q393.83 170.826 393.508 170.973Q393.186 171.12 392.962 171.379Q392.738 171.638 392.612 171.988Q392.486 172.338 392.486 172.73V177H390.89ZM405.618 176.622Q405.618 178.26 404.701 179.065Q403.784 179.87 402.062 179.87Q401.516 179.87 400.963 179.758Q400.41 179.646 399.955 179.38Q399.5 179.114 399.192 178.68Q398.884 178.246 398.828 177.616H400.424Q400.494 177.952 400.662 178.162Q400.83 178.372 401.061 178.491Q401.292 178.61 401.572 178.645Q401.852 178.68 402.16 178.68Q403.126 178.68 403.574 178.204Q404.022 177.728 404.022 176.832V175.726H403.994Q403.658 176.328 403.077 176.664Q402.496 177 401.824 177Q400.956 177 400.347 176.699Q399.738 176.398 399.339 175.873Q398.94 175.348 398.758 174.662Q398.576 173.976 398.576 173.192Q398.576 172.464 398.8 171.806Q399.024 171.148 399.444 170.651Q399.864 170.154 400.473 169.86Q401.082 169.566 401.852 169.566Q402.538 169.566 403.112 169.853Q403.686 170.14 403.994 170.756H404.022V169.762H405.618ZM402.076 175.74Q402.608 175.74 402.979 175.523Q403.35 175.306 403.581 174.949Q403.812 174.592 403.917 174.137Q404.022 173.682 404.022 173.22Q404.022 172.758 403.91 172.324Q403.798 171.89 403.567 171.554Q403.336 171.218 402.965 171.022Q402.594 170.826 402.076 170.826Q401.544 170.826 401.18 171.05Q400.816 171.274 400.592 171.631Q400.368 171.988 400.27 172.443Q400.172 172.898 400.172 173.346Q400.172 173.794 400.284 174.221Q400.396 174.648 400.627 174.984Q400.858 175.32 401.215 175.53Q401.572 175.74 402.076 175.74ZM411.12 169.762H412.632V170.826L412.66 170.854Q413.024 170.252 413.612 169.909Q414.2 169.566 414.914 169.566Q416.104 169.566 416.79 170.182Q417.476 170.798 417.476 172.03V177H415.88V172.45Q415.852 171.596 415.516 171.211Q415.18 170.826 414.466 170.826Q414.06 170.826 413.738 170.973Q413.416 171.12 413.192 171.379Q412.968 171.638 412.842 171.988Q412.716 172.338 412.716 172.73V177H411.12ZM422.474 177.196Q421.606 177.196 420.927 176.909Q420.248 176.622 419.779 176.118Q419.31 175.614 419.065 174.914Q418.82 174.214 418.82 173.374Q418.82 172.548 419.065 171.848Q419.31 171.148 419.779 170.644Q420.248 170.14 4Line truncated
<rect x="348" y="205" width="244" height="23" rx="5" fill="#EDF1FF"/>
<circle cx="356" cy="194" r="1.6" fill="#A6B0C4"/>
<path d="M371.38 192.511H372.425Q372.337 191.884 372.051 191.406Q371.765 190.927 371.336 190.608Q370.907 190.289 370.357 190.124Q369.807 189.959 369.191 189.959Q368.289 189.959 367.591 190.284Q366.892 190.608 366.424 191.169Q365.957 191.73 365.715 192.483Q365.473 193.237 365.473 194.095Q365.473 194.953 365.698 195.701Q365.924 196.449 366.375 196.999Q366.826 197.549 367.508 197.863Q368.19 198.176 369.103 198.176Q370.61 198.176 371.479 197.351Q372.348 196.526 372.502 195.041H371.457Q371.424 195.525 371.259 195.943Q371.094 196.361 370.803 196.663Q370.511 196.966 370.11 197.137Q369.708 197.307 369.191 197.307Q368.487 197.307 367.981 197.043Q367.475 196.779 367.151 196.334Q366.826 195.888 366.672 195.288Q366.518 194.689 366.518 194.018Q366.518 193.402 366.672 192.83Q366.826 192.258 367.151 191.812Q367.475 191.367 367.976 191.103Q368.476 190.839 369.18 190.839Q370.005 190.839 370.605 191.257Q371.204 191.675 371.38 192.511ZM374.328 195.162Q374.328 194.645 374.466 194.244Q374.603 193.842 374.845 193.567Q375.087 193.292 375.411 193.149Q375.736 193.006 376.099 193.006Q376.462 193.006 376.786 193.149Q377.111 193.292 377.353 193.567Q377.595 193.842 377.733 194.244Q377.87 194.645 377.87 195.162Q377.87 195.679 377.733 196.081Q377.595 196.482 377.353 196.751Q377.111 197.021 376.786 197.164Q376.462 197.307 376.099 197.307Q375.736 197.307 375.411 197.164Q375.087 197.021 374.845 196.751Q374.603 196.482 374.466 196.081Q374.328 195.679 374.328 195.162ZM373.338 195.162Q373.338 195.789 373.514 196.328Q373.69 196.867 374.042 197.268Q374.394 197.67 374.911 197.895Q375.428 198.121 376.099 198.121Q376.781 198.121 377.293 197.895Q377.804 197.67 378.156 197.268Q378.508 196.867 378.684 196.328Q378.86 195.789 378.86 195.162Q378.86 194.535 378.684 193.99Q378.508 193.446 378.156 193.044Q377.804 192.643 377.293 192.412Q376.781 192.181 376.099 192.181Q375.428 192.181 374.911 192.412Q374.394 192.643 374.042 193.044Q373.69 193.446 373.514 193.99Q373.338 194.535 373.338 195.162ZM379.96 192.313V198H380.895V194.788Q380.895 194.403 381 194.078Q381.104 193.754 381.313 193.512Q381.522 193.27 381.836 193.138Q382.149 193.006 382.578 193.006Q383.117 193.006 383.425 193.314Q383.733 193.622 383.733 194.15V198H384.668V194.26Q384.668 193.798 384.575 193.418Q384.481 193.039 384.25 192.764Q384.019 192.489 383.645 192.335Q383.271 192.181 382.71 192.181Q381.445 192.181 380.862 193.215H380.84V192.313ZM386.461 193.138V198H387.396V193.138H388.496V192.313H387.396V191.521Q387.396 191.147 387.583 191.015Q387.77 190.883 388.111 190.883Q388.232 190.883 388.375 190.899Q388.518 190.916 388.639 190.96V190.146Q388.507 190.102 388.337 190.08Q388.166 190.058 388.034 190.058Q387.264 190.058 386.863 190.416Q386.461 190.773 386.461 191.466V192.313H385.504V193.138ZM390.322 191.29V190.146H389.387V191.29ZM389.387 192.313V198H390.322V192.313ZM391.741 192.313V198H392.676V195.47Q392.676 194.92 392.786 194.496Q392.896 194.073 393.138 193.776Q393.38 193.479 393.776 193.325Q394.172 193.171 394.733 193.171V192.181Q393.974 192.159 393.479 192.489Q392.984 192.819 392.643 193.512H392.621V192.313ZM395.437 192.313V198H396.372V194.458Q396.372 194.293 396.454 194.046Q396.537 193.798 396.718 193.567Q396.9 193.336 397.192 193.171Q397.483 193.006 397.89 193.006Q398.209 193.006 398.413 193.1Q398.616 193.193 398.737 193.363Q398.858 193.534 398.908 193.765Q398.957 193.996 398.957 194.271V198H399.892V194.458Q399.892 193.798 400.288 193.402Q400.684 193.006 401.377 193.006Q401.718 193.006 401.933 193.105Q402.147 193.204 402.268 193.375Q402.389 193.545 402.433 193.776Q402.477 194.007 402.477 194.271V198H403.412V193.831Q403.412 193.391 403.274 193.077Q403.137 192.764 402.889 192.566Q402.642 192.368 402.296 192.274Q401.949 192.181 401.52 192.181Q400.959 192.181 400.491 192.434Q400.024 192.687 399.738 193.149Q399.562 192.621 399.133 192.401Q398.704 192.181 398.176 192.181Q396.977 192.181 396.339 193.149H396.317V192.313ZM409.176 192.313V190.608H408.241V192.313H407.273V193.138H408.241V196.757Q408.241 197.153 408.318 197.395Q408.395 197.637 408.554 197.769Q408.714 197.901 408.972 197.951Q409.231 198 409.594 198H410.309V197.175H409.88Q409.66 197.175 409.522 197.159Q409.385 197.142 409.308 197.087Q409.231 197.032 409.203 196.933Q409.176 196.834 409.176 196.669V193.138H410.309V192.313ZM411.343 190.146V198H412.278V194.788Q412.278 194.403 412.382 194.078Q412.487 193.754 412.696 193.512Q412.905 193.27 413.218 193.138Q413.532 193.006 413.961 193.006Q414.5 193.006 414.808 193.314Q415.116 193.622 415.116 194.15V198H416.051V194.26Q416.051 193.798 415.957 193.418Q415.864 193.039 415.633 192.764Q415.402 192.489 415.028 192.335Q414.654 192.181 414.093 192.181Q413.84 192.181 413.57 192.236Q413.301 192.291 413.053 192.406Q412.806 192.522 412.608 192.703Q412.41 192.885 412.3 193.149H412.278V190.146ZM421.408 194.612H418.141Q418.163 194.282 418.284 193.99Q418.405 193.699 418.614 193.479Q418.823 193.259 419.114 193.132Q419.406 193.006 419.769 193.006Q420.121 193.006 420.412 193.132Q420.704 193.259 420.918 193.474Q421.133 193.Line truncated
<circle cx="356" cy="216" r="1.6" fill="#4D6BFE"/>
<path d="M365.858 212.146V220H366.903V216.403H370.511V215.523H366.903V213.026H371.017V212.146ZM373.008 213.29V212.146H372.073V213.29ZM372.073 214.313V220H373.008V214.313ZM374.46 214.313V220H375.395V216.788Q375.395 216.403 375.5 216.078Q375.604 215.754 375.813 215.512Q376.022 215.27 376.336 215.138Q376.649 215.006 377.078 215.006Q377.617 215.006 377.925 215.314Q378.233 215.622 378.233 216.15V220H379.168V216.26Q379.168 215.798 379.075 215.418Q378.981 215.039 378.75 214.764Q378.519 214.489 378.145 214.335Q377.771 214.181 377.21 214.181Q375.945 214.181 375.362 215.215H375.34V214.313ZM381.566 213.29V212.146H380.631V213.29ZM380.631 214.313V220H381.566V214.313ZM383.59 218.207H382.655Q382.677 218.735 382.875 219.103Q383.073 219.472 383.403 219.697Q383.733 219.923 384.162 220.022Q384.591 220.121 385.064 220.121Q385.493 220.121 385.928 220.038Q386.362 219.956 386.709 219.747Q387.055 219.538 387.269 219.197Q387.484 218.856 387.484 218.339Q387.484 217.932 387.325 217.657Q387.165 217.382 386.907 217.201Q386.648 217.019 386.312 216.909Q385.977 216.799 385.625 216.722Q385.295 216.645 384.965 216.574Q384.635 216.502 384.371 216.398Q384.107 216.293 383.937 216.133Q383.766 215.974 383.766 215.732Q383.766 215.512 383.876 215.375Q383.986 215.237 384.162 215.154Q384.338 215.072 384.553 215.039Q384.767 215.006 384.976 215.006Q385.207 215.006 385.433 215.055Q385.658 215.105 385.845 215.215Q386.032 215.325 386.153 215.506Q386.274 215.688 386.296 215.963H387.231Q387.198 215.446 387.011 215.099Q386.824 214.753 386.51 214.549Q386.197 214.346 385.79 214.264Q385.383 214.181 384.899 214.181Q384.525 214.181 384.146 214.274Q383.766 214.368 383.464 214.56Q383.161 214.753 382.969 215.061Q382.776 215.369 382.776 215.798Q382.776 216.348 383.051 216.656Q383.326 216.964 383.739 217.135Q384.151 217.305 384.635 217.399Q385.119 217.492 385.532 217.608Q385.944 217.723 386.219 217.91Q386.494 218.097 386.494 218.46Q386.494 218.724 386.362 218.894Q386.23 219.065 386.027 219.153Q385.823 219.241 385.581 219.274Q385.339 219.307 385.119 219.307Q384.833 219.307 384.564 219.252Q384.294 219.197 384.08 219.07Q383.865 218.944 383.733 218.729Q383.601 218.515 383.59 218.207ZM388.518 212.146V220H389.453V216.788Q389.453 216.403 389.558 216.078Q389.662 215.754 389.871 215.512Q390.08 215.27 390.394 215.138Q390.707 215.006 391.136 215.006Q391.675 215.006 391.983 215.314Q392.291 215.622 392.291 216.15V220H393.226V216.26Q393.226 215.798 393.133 215.418Q393.039 215.039 392.808 214.764Q392.577 214.489 392.203 214.335Q391.829 214.181 391.268 214.181Q391.015 214.181 390.745 214.236Q390.476 214.291 390.228 214.406Q389.981 214.522 389.783 214.703Q389.585 214.885 389.475 215.149H389.453V212.146ZM398.99 214.313V212.608H398.055V214.313H397.087V215.138H398.055V218.757Q398.055 219.153 398.132 219.395Q398.209 219.637 398.369 219.769Q398.528 219.901 398.787 219.951Q399.045 220 399.408 220H400.123V219.175H399.694Q399.474 219.175 399.337 219.159Q399.199 219.142 399.122 219.087Q399.045 219.032 399.018 218.933Q398.99 218.834 398.99 218.669V215.138H400.123V214.313ZM401.157 212.146V220H402.092V216.788Q402.092 216.403 402.197 216.078Q402.301 215.754 402.51 215.512Q402.719 215.27 403.032 215.138Q403.346 215.006 403.775 215.006Q404.314 215.006 404.622 215.314Q404.93 215.622 404.93 216.15V220H405.865V216.26Q405.865 215.798 405.771 215.418Q405.678 215.039 405.447 214.764Q405.216 214.489 404.842 214.335Q404.468 214.181 403.907 214.181Q403.654 214.181 403.385 214.236Q403.115 214.291 402.867 214.406Q402.62 214.522 402.422 214.703Q402.224 214.885 402.114 215.149H402.092V212.146ZM411.222 216.612H407.955Q407.977 216.282 408.098 215.99Q408.219 215.699 408.428 215.479Q408.637 215.259 408.928 215.132Q409.22 215.006 409.583 215.006Q409.935 215.006 410.226 215.132Q410.518 215.259 410.732 215.474Q410.947 215.688 411.073 215.985Q411.2 216.282 411.222 216.612ZM412.124 218.196H411.2Q411.079 218.757 410.699 219.032Q410.32 219.307 409.726 219.307Q409.264 219.307 408.923 219.153Q408.582 218.999 408.362 218.74Q408.142 218.482 408.043 218.147Q407.944 217.811 407.955 217.437H412.212Q412.234 216.92 412.118 216.348Q412.003 215.776 411.7 215.292Q411.398 214.808 410.897 214.495Q410.397 214.181 409.638 214.181Q409.055 214.181 408.565 214.401Q408.076 214.621 407.718 215.017Q407.361 215.413 407.163 215.952Q406.965 216.491 406.965 217.14Q406.987 217.789 407.157 218.339Q407.328 218.889 407.669 219.285Q408.01 219.681 408.51 219.901Q409.011 220.121 409.693 220.121Q410.661 220.121 411.299 219.637Q411.937 219.153 412.124 218.196ZM416.92 217.206Q416.92 216.788 417.008 216.392Q417.096 215.996 417.294 215.688Q417.492 215.38 417.822 215.193Q418.152 215.006 418.625 215.006Q419.109 215.006 419.45 215.188Q419.791 215.369 420.005 215.666Q420.22 215.963 420.319 216.353Q420.418 216.744 420.418 217.162Q420.418 217.558 420.324 217.943Q420.231 218.328 420.022 218.63Q419.813 218.933 419.483 219.12Q419.153 219.307 418.68 219.307Q418.229 219.307 417.893 219.131Q417.558 218.955 417.343 218.658Q417.129 218.361 417.024 217.981Q416.92 217.602 4Line truncated
<circle cx="356" cy="240" r="1.6" fill="#A6B0C4"/>
<path d="M371.38 238.511H372.425Q372.337 237.884 372.051 237.406Q371.765 236.927 371.336 236.608Q370.907 236.289 370.357 236.124Q369.807 235.959 369.191 235.959Q368.289 235.959 367.591 236.284Q366.892 236.608 366.424 237.169Q365.957 237.73 365.715 238.483Q365.473 239.237 365.473 240.095Q365.473 240.953 365.698 241.701Q365.924 242.449 366.375 242.999Q366.826 243.549 367.508 243.863Q368.19 244.176 369.103 244.176Q370.61 244.176 371.479 243.351Q372.348 242.526 372.502 241.041H371.457Q371.424 241.525 371.259 241.943Q371.094 242.361 370.803 242.663Q370.511 242.966 370.11 243.137Q369.708 243.307 369.191 243.307Q368.487 243.307 367.981 243.043Q367.475 242.779 367.151 242.334Q366.826 241.888 366.672 241.288Q366.518 240.689 366.518 240.018Q366.518 239.402 366.672 238.83Q366.826 238.258 367.151 237.812Q367.475 237.367 367.976 237.103Q368.476 236.839 369.18 236.839Q370.005 236.839 370.605 237.257Q371.204 237.675 371.38 238.511ZM374.328 241.162Q374.328 240.645 374.466 240.244Q374.603 239.842 374.845 239.567Q375.087 239.292 375.411 239.149Q375.736 239.006 376.099 239.006Q376.462 239.006 376.786 239.149Q377.111 239.292 377.353 239.567Q377.595 239.842 377.733 240.244Q377.87 240.645 377.87 241.162Q377.87 241.679 377.733 242.081Q377.595 242.482 377.353 242.751Q377.111 243.021 376.786 243.164Q376.462 243.307 376.099 243.307Q375.736 243.307 375.411 243.164Q375.087 243.021 374.845 242.751Q374.603 242.482 374.466 242.081Q374.328 241.679 374.328 241.162ZM373.338 241.162Q373.338 241.789 373.514 242.328Q373.69 242.867 374.042 243.268Q374.394 243.67 374.911 243.895Q375.428 244.121 376.099 244.121Q376.781 244.121 377.293 243.895Q377.804 243.67 378.156 243.268Q378.508 242.867 378.684 242.328Q378.86 241.789 378.86 241.162Q378.86 240.535 378.684 239.99Q378.508 239.446 378.156 239.044Q377.804 238.643 377.293 238.412Q376.781 238.181 376.099 238.181Q375.428 238.181 374.911 238.412Q374.394 238.643 374.042 239.044Q373.69 239.446 373.514 239.99Q373.338 240.535 373.338 241.162ZM380.015 236.146V244H380.95V236.146ZM382.457 236.146V244H383.392V236.146ZM388.793 240.612H385.526Q385.548 240.282 385.669 239.99Q385.79 239.699 385.999 239.479Q386.208 239.259 386.5 239.132Q386.791 239.006 387.154 239.006Q387.506 239.006 387.798 239.132Q388.089 239.259 388.304 239.474Q388.518 239.688 388.644 239.985Q388.771 240.282 388.793 240.612ZM389.695 242.196H388.771Q388.65 242.757 388.271 243.032Q387.891 243.307 387.297 243.307Q386.835 243.307 386.494 243.153Q386.153 242.999 385.933 242.74Q385.713 242.482 385.614 242.147Q385.515 241.811 385.526 241.437H389.783Q389.805 240.92 389.69 240.348Q389.574 239.776 389.272 239.292Q388.969 238.808 388.469 238.495Q387.968 238.181 387.209 238.181Q386.626 238.181 386.137 238.401Q385.647 238.621 385.29 239.017Q384.932 239.413 384.734 239.952Q384.536 240.491 384.536 241.14Q384.558 241.789 384.729 242.339Q384.899 242.889 385.24 243.285Q385.581 243.681 386.082 243.901Q386.582 244.121 387.264 244.121Q388.232 244.121 388.87 243.637Q389.508 243.153 389.695 242.196ZM394.612 240.139H395.58Q395.525 239.633 395.316 239.264Q395.107 238.896 394.783 238.654Q394.458 238.412 394.035 238.297Q393.611 238.181 393.127 238.181Q392.456 238.181 391.95 238.418Q391.444 238.654 391.109 239.067Q390.773 239.479 390.608 240.035Q390.443 240.59 390.443 241.228Q390.443 241.866 390.614 242.399Q390.784 242.933 391.12 243.318Q391.455 243.703 391.956 243.912Q392.456 244.121 393.105 244.121Q394.194 244.121 394.827 243.549Q395.459 242.977 395.613 241.921H394.656Q394.568 242.581 394.178 242.944Q393.787 243.307 393.094 243.307Q392.654 243.307 392.335 243.131Q392.016 242.955 391.818 242.663Q391.62 242.372 391.527 241.998Q391.433 241.624 391.433 241.228Q391.433 240.799 391.521 240.398Q391.609 239.996 391.812 239.688Q392.016 239.38 392.357 239.193Q392.698 239.006 393.204 239.006Q393.798 239.006 394.15 239.303Q394.502 239.6 394.612 240.139ZM397.956 238.313V236.608H397.021V238.313H396.053V239.138H397.021V242.757Q397.021 243.153 397.098 243.395Q397.175 243.637 397.335 243.769Q397.494 243.901 397.753 243.951Q398.011 244 398.374 244H399.089V243.175H398.66Q398.44 243.175 398.303 243.159Q398.165 243.142 398.088 243.087Q398.011 243.032 397.984 242.933Q397.956 242.834 397.956 242.669V239.138H399.089V238.313ZM403.566 239.138V244H404.501V239.138H405.601V238.313H404.501V237.521Q404.501 237.147 404.688 237.015Q404.875 236.883 405.216 236.883Q405.337 236.883 405.48 236.899Q405.623 236.916 405.744 236.96V236.146Q405.612 236.102 405.441 236.08Q405.271 236.058 405.139 236.058Q404.369 236.058 403.967 236.416Q403.566 236.773 403.566 237.466V238.313H402.609V239.138ZM410.386 240.612H407.119Q407.141 240.282 407.262 239.99Q407.383 239.699 407.592 239.479Q407.801 239.259 408.092 239.132Q408.384 239.006 408.747 239.006Q409.099 239.006 409.39 239.132Q409.682 239.259 409.896 239.474Q410.111 239.688 410.237 239.985Q410.364 240.282 410.386 240.612ZM411.288 242.196H410.364Q410.243 242.757 409.863 243.032Q409.484 243.307 408.89 243.307Q408.428 243.307 408.087 243.153Q407.746 242.999 407.526 242.74Q4Line truncated
<path d="M494.556 209V223" stroke="#4D6BFE" stroke-width="1.25" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 122 KiB

@@ -0,0 +1,33 @@
<svg xmlns="http://www.w3.org/2000/svg" width="640" height="300" viewBox="0 0 640 300">
<rect width="640" height="300" fill="#F5F6FC"/>
<rect x="32" y="27" width="3" height="10" rx="1.5" fill="#4D6BFE"/>
<path d="M48.58 31.13Q48.5 30.82 48.36 30.56Q48.22 30.3 48 30.11Q47.78 29.92 47.485 29.815Q47.19 29.71 46.8 29.71Q46.23 29.71 45.815 29.94Q45.4 30.17 45.14 30.555Q44.88 30.94 44.755 31.43Q44.63 31.92 44.63 32.43Q44.63 32.94 44.755 33.43Q44.88 33.92 45.14 34.305Q45.4 34.69 45.815 34.92Q46.23 35.15 46.8 35.15Q47.22 35.15 47.54 35.005Q47.86 34.86 48.09 34.605Q48.32 34.35 48.45 34.01Q48.58 33.67 48.62 33.28H49.84Q49.8 33.92 49.565 34.45Q49.33 34.98 48.93 35.365Q48.53 35.75 47.99 35.96Q47.45 36.17 46.8 36.17Q46 36.17 45.365 35.875Q44.73 35.58 44.29 35.07Q43.85 34.56 43.615 33.88Q43.38 33.2 43.38 32.43Q43.38 31.67 43.615 30.99Q43.85 30.31 44.29 29.8Q44.73 29.29 45.365 28.99Q46 28.69 46.8 28.69Q47.4 28.69 47.93 28.855Q48.46 29.02 48.865 29.335Q49.27 29.65 49.52 30.1Q49.77 30.55 49.83 31.13ZM55.37 29.71Q54.8 29.71 54.385 29.94Q53.97 30.17 53.71 30.555Q53.45 30.94 53.325 31.43Q53.2 31.92 53.2 32.43Q53.2 32.94 53.325 33.43Q53.45 33.92 53.71 34.305Q53.97 34.69 54.385 34.92Q54.8 35.15 55.37 35.15Q55.94 35.15 56.355 34.92Q56.77 34.69 57.03 34.305Q57.29 33.92 57.415 33.43Q57.54 32.94 57.54 32.43Q57.54 31.92 57.415 31.43Q57.29 30.94 57.03 30.555Q56.77 30.17 56.355 29.94Q55.94 29.71 55.37 29.71ZM55.37 28.69Q56.17 28.69 56.805 28.99Q57.44 29.29 57.88 29.8Q58.32 30.31 58.555 30.99Q58.79 31.67 58.79 32.43Q58.79 33.2 58.555 33.88Q58.32 34.56 57.88 35.07Q57.44 35.58 56.805 35.875Q56.17 36.17 55.37 36.17Q54.57 36.17 53.935 35.875Q53.3 35.58 52.86 35.07Q52.42 34.56 52.185 33.88Q51.95 33.2 51.95 32.43Q51.95 31.67 52.185 30.99Q52.42 30.31 52.86 29.8Q53.3 29.29 53.935 28.99Q54.57 28.69 55.37 28.69ZM61.26 28.86H63.02L64.99 34.45H65.01L66.93 28.86H68.67V36H67.48V30.49H67.46L65.48 36H64.45L62.47 30.49H62.45V36H61.26ZM71.52 28.86H74.67Q75.43 28.86 75.91 29.08Q76.39 29.3 76.65 29.63Q76.91 29.96 77.005 30.35Q77.1 30.74 77.1 31.07Q77.1 31.4 77.005 31.785Q76.91 32.17 76.65 32.5Q76.39 32.83 75.91 33.045Q75.43 33.26 74.67 33.26H72.77V36H71.52ZM72.77 32.24H74.6Q74.81 32.24 75.03 32.18Q75.25 32.12 75.435 31.985Q75.62 31.85 75.735 31.625Q75.85 31.4 75.85 31.06Q75.85 30.71 75.75 30.48Q75.65 30.25 75.48 30.115Q75.31 29.98 75.09 29.93Q74.87 29.88 74.62 29.88H72.77ZM79.46 28.86H80.71V33.02Q80.71 33.38 80.745 33.75Q80.78 34.12 80.945 34.415Q81.11 34.71 81.445 34.9Q81.78 35.09 82.39 35.09Q83 35.09 83.335 34.9Q83.67 34.71 83.835 34.415Q84 34.12 84.035 33.75Q84.07 33.38 84.07 33.02V28.86H85.32V33.43Q85.32 34.12 85.11 34.63Q84.9 35.14 84.515 35.485Q84.13 35.83 83.59 36Q83.05 36.17 82.39 36.17Q81.73 36.17 81.19 36Q80.65 35.83 80.265 35.485Q79.88 35.14 79.67 34.63Q79.46 34.12 79.46 33.43ZM87.43 28.86H93.21V29.94H90.94V36H89.69V29.94H87.43ZM95.39 28.86H100.53V29.94H96.64V31.81H100.24V32.83H96.64V34.92H100.6V36H95.39ZM103.04 28.86H106.45Q107.63 28.86 108.22 29.37Q108.81 29.88 108.81 30.79Q108.81 31.3 108.66 31.635Q108.51 31.97 108.31 32.175Q108.11 32.38 107.915 32.47Q107.72 32.56 107.63 32.59V32.61Q107.79 32.63 107.975 32.71Q108.16 32.79 108.32 32.965Q108.48 33.14 108.585 33.42Q108.69 33.7 108.69 34.12Q108.69 34.75 108.785 35.265Q108.88 35.78 109.08 36H107.74Q107.6 35.77 107.575 35.49Q107.55 35.21 107.55 34.95Q107.55 34.46 107.49 34.105Q107.43 33.75 107.27 33.515Q107.11 33.28 106.835 33.17Q106.56 33.06 106.13 33.06H104.29V36H103.04ZM104.29 32.11H106.34Q106.94 32.11 107.25 31.825Q107.56 31.54 107.56 30.97Q107.56 30.63 107.46 30.415Q107.36 30.2 107.185 30.08Q107.01 29.96 106.785 29.92Q106.56 29.88 106.32 29.88H104.29ZM115.48 28.86H116.73V33.02Q116.73 33.38 116.765 33.75Q116.8 34.12 116.965 34.415Q117.13 34.71 117.465 34.9Q117.8 35.09 118.41 35.09Q119.02 35.09 119.355 34.9Q119.69 34.71 119.855 34.415Q120.02 34.12 120.055 33.75Q120.09 33.38 120.09 33.02V28.86H121.34V33.43Q121.34 34.12 121.13 34.63Q120.92 35.14 120.535 35.485Q120.15 35.83 119.61 36Q119.07 36.17 118.41 36.17Q117.75 36.17 117.21 36Q116.67 35.83 116.285 35.485Q115.9 35.14 115.69 34.63Q115.48 34.12 115.48 33.43ZM124.95 33.62Q124.95 34.03 125.09 34.32Q125.23 34.61 125.48 34.795Q125.73 34.98 126.055 35.065Q126.38 35.15 126.76 35.15Q127.17 35.15 127.46 35.055Q127.75 34.96 127.93 34.81Q128.11 34.66 128.19 34.465Q128.27 34.27 128.27 34.07Q128.27 33.66 128.085 33.465Q127.9 33.27 127.68 33.19Q127.3 33.05 126.795 32.925Q126.29 32.8 125.55 32.6Q125.09 32.48 124.785 32.285Q124.48 32.09 124.3 31.85Q124.12 31.61 124.045 31.34Q123.97 31.07 123.97 30.79Q123.97 30.25 124.195 29.855Q124.42 29.46 124.79 29.2Q125.16 28.94 125.63 28.815Q126.1 28.69 126.58 28.69Q127.14 28.69 127.635 28.835Q128.13 28.98 128.505 29.27Q128.88 29.56 129.1 29.985Q129.32 30.41 129.32 30.97H128.07Q128.02 30.28 127.6 29.995Q127.18 29.71 126.53 29.71Q126.31 29.71 126.08 29.755Q125.85 29.8 125.66 29.905Q125.47 30.01 125.345 30.19Q125.22 30.37 125.22 30.64Q125.22 31.02 125.455 31.235Q125.69 31.45 126.07 31.56Q126.11 31.57 126.385 31.645Q126.66 31.72 127 31.81Q127.34 31.9 127.665 31.985Q127.99 32.07 128.13 32.11Q128.48 32.22 128.74 32.41Q129 32.6 129.175 32.845Q129.35 33.09 129.435 33.37Q129.52 33.65 129.52 33.93Q129.52 34.53 129.275 34.955Q129.03Line truncated
<path d="M48.075 65.025H52L53.5 63.2L55 64.975Q55.275 65.275 55.275 65.5Q55.275 65.725 54.775 65.725H48.075V76.9H52.95L54.5 74.975L56.175 76.95Q56.375 77.2 56.375 77.4Q56.375 77.6 55.95 77.6H41.9Q40.85 77.6 40.2 77.875L39.325 76.775Q40.25 76.9 41.4 76.9H46.275V59.05Q46.275 57.65 46.2 56.3L48.65 57.325Q48.975 57.475 48.975 57.662Q48.975 57.85 48.625 58.075L48.075 58.475ZM35.65 57.175Q37.475 57.925 38.5 58.638Q39.525 59.35 39.525 60.1Q39.525 60.85 39.025 61.487Q38.525 62.125 38.075 62.125Q37.625 62.125 37.5 61.25Q37.2 59.225 35.45 57.425ZM38.65 75.1 42.625 71.425 42.9 71.7Q38.1 77.6 37.825 78.325Q37.7 78.65 37.538 78.65Q37.375 78.65 37.15 78.425L36.025 77.1Q36.625 76.625 36.8 76.325Q36.975 76.025 36.975 75.45V65.75H35.2Q34.1 65.75 33.5 66.075L32.625 64.975Q33.775 65.05 34.7 65.05H36.85L37.675 63.775L39.375 65.05Q39.65 65.275 39.65 65.425Q39.65 65.575 39.375 65.75L38.65 66.275Z" fill="#253047"/><path d="M81.036 67.443Q81.036 69.652 80.206 71.276Q79.375 72.899 78.045 73.937Q76.702 74.975 75.03 75.487Q73.357 76 71.575 76H64.397V75.133Q64.751 75.133 65.319 75.066Q65.887 74.999 66.07 74.914Q66.436 74.755 66.601 74.444Q66.766 74.132 66.766 73.693V61.193Q66.766 60.778 66.625 60.448Q66.485 60.119 66.07 59.923Q65.691 59.74 65.252 59.655Q64.812 59.569 64.495 59.545V58.678H72.063Q73.626 58.678 75.14 59.16Q76.653 59.643 77.776 60.46Q79.302 61.547 80.169 63.305Q81.036 65.062 81.036 67.443ZM78.045 67.431Q78.045 65.685 77.581 64.275Q77.117 62.865 76.226 61.815Q75.384 60.814 74.157 60.241Q72.93 59.667 71.429 59.667Q70.928 59.667 70.3 59.685Q69.671 59.704 69.366 59.716V73.034Q69.366 74.145 70.013 74.572Q70.66 74.999 72.002 74.999Q73.553 74.999 74.712 74.45Q75.872 73.9 76.592 72.924Q77.349 71.898 77.697 70.55Q78.045 69.201 78.045 67.431ZM93.951 68.053Q94.5 68.664 94.762 69.39Q95.025 70.116 95.025 71.081Q95.025 73.375 93.328 74.865Q91.631 76.354 89.117 76.354Q87.957 76.354 86.797 75.994Q85.638 75.634 84.795 75.121L84.271 76.012H83.294L83.123 70.08H84.112Q84.417 71.178 84.826 72.063Q85.235 72.948 85.906 73.717Q86.541 74.438 87.389 74.865Q88.238 75.292 89.361 75.292Q90.203 75.292 90.832 75.072Q91.46 74.853 91.851 74.45Q92.242 74.047 92.431 73.504Q92.62 72.96 92.62 72.252Q92.62 71.215 92.034 70.318Q91.448 69.42 90.289 68.957Q89.495 68.639 88.47 68.255Q87.444 67.87 86.7 67.528Q85.235 66.869 84.423 65.801Q83.611 64.733 83.611 63.012Q83.611 62.023 84.014 61.168Q84.417 60.314 85.162 59.643Q85.87 59.008 86.834 58.648Q87.798 58.288 88.848 58.288Q90.044 58.288 90.99 58.654Q91.937 59.02 92.718 59.508L93.218 58.678H94.195L94.292 64.428H93.304Q93.035 63.439 92.699 62.536Q92.364 61.632 91.827 60.9Q91.302 60.192 90.545 59.771Q89.788 59.35 88.689 59.35Q87.53 59.35 86.712 60.094Q85.894 60.839 85.894 61.913Q85.894 63.036 86.419 63.775Q86.944 64.513 87.945 64.989Q88.836 65.417 89.697 65.728Q90.557 66.039 91.363 66.393Q92.095 66.71 92.773 67.113Q93.45 67.516 93.951 68.053ZM115.13 76H107.94V75.133Q108.233 75.109 108.788 75.06Q109.344 75.011 109.551 74.914Q109.917 74.767 110.088 74.468Q110.259 74.169 110.259 73.693V67.528H102.117V73.559Q102.117 73.986 102.258 74.279Q102.398 74.572 102.813 74.792Q103.021 74.901 103.552 75.011Q104.083 75.121 104.388 75.133V76H97.198V75.133Q97.491 75.109 98.046 75.06Q98.602 75.011 98.809 74.914Q99.175 74.767 99.346 74.468Q99.517 74.169 99.517 73.693V61.193Q99.517 60.802 99.358 60.479Q99.2 60.155 98.809 59.972Q98.479 59.813 98.01 59.691Q97.54 59.569 97.198 59.545V58.678H104.388V59.545Q104.046 59.557 103.552 59.655Q103.057 59.752 102.813 59.838Q102.398 59.984 102.258 60.326Q102.117 60.668 102.117 61.071V66.442H110.259V61.193Q110.259 60.802 110.101 60.479Q109.942 60.155 109.551 59.972Q109.222 59.813 108.752 59.691Q108.282 59.569 107.94 59.545V58.678H115.13V59.545Q114.788 59.557 114.294 59.655Q113.799 59.752 113.555 59.838Q113.14 59.984 113 60.326Q112.859 60.668 112.859 61.071V73.559Q112.859 73.986 113 74.279Q113.14 74.572 113.555 74.792Q113.763 74.901 114.294 75.011Q114.825 75.121 115.13 75.133Z" fill="#253047"/><path d="M128.675 66.2 130.925 65.125 131.15 65.475 128.675 67.15V75.575Q128.675 76.7 128.438 77.275Q128.2 77.85 127.4 78.362Q126.6 78.875 126.325 78.875Q126.15 78.875 126.15 78.425Q126.15 77.825 125.65 77.45Q125.15 77.075 123.625 76.65L123.7 76.275Q125.025 76.375 125.763 76.375Q126.5 76.375 126.737 76.225Q126.975 76.075 126.975 75.7V68.375Q125.2 69.8 124.75 70.45Q124.6 70.65 124.5 70.65Q124.4 70.65 124.3 70.55L123.125 68.85L126.975 67.025V62.4H125.825Q124.775 62.4 124.125 62.675L123.225 61.6Q124.175 61.725 125.3 61.725H126.975V59.675Q126.975 57.65 126.875 55.55L129.125 56.45Q129.45 56.6 129.45 56.762Q129.45 56.925 129.125 57.15L128.675 57.475V61.725H129.35L130.575 60.3L131.9 61.875Q132.05 62.075 132.05 62.237Q132.05 62.4 131.725 62.4H128.675ZM135.35 57.575H140.4L141.25 56.4L142.9 57.7Q143.1 57.85 143.1 57.95Q143.1 58.05 142.9 58.175L142.325 58.525V59.65L142.45 61.55Q142.45 61.975 141.75 62.388Q141.05 62.8 140.825 62.8Q140.6 62.8 140.6 62.45V61.75H135.425Q135.4 62.3 134.775 62.587Q134.15 62.875 133.863 62.875Q133Line truncated
<path d="M34.639 94.254V99.038H42.413V94.254H34.639ZM41.503 98.206H35.549V97.062H41.503V98.206ZM35.549 96.269V95.086H41.503V96.269H35.549ZM33.183 90.549V91.407H37.2C36.186 92.317 34.639 93.084 32.559 93.682L33.053 94.514C35.328 93.695 36.979 92.655 37.993 91.407H38.071V93.838H38.981V91.407H39.059C40.021 92.681 41.672 93.708 44.012 94.501L44.415 93.656C42.361 93.11 40.853 92.356 39.878 91.407H43.869V90.549H38.981V89.353H38.071V90.549H33.183ZM32.923 100.052V100.923H44.09V100.052H32.923ZM46.586 91.771V92.577H50.278C50.109 92.863 49.914 93.162 49.706 93.461H45.884V94.293H49.056C48.133 95.385 46.963 96.399 45.546 97.361L46.053 98.167C46.859 97.621 47.587 97.036 48.25 96.438V101.313H49.147V100.754H55.023V101.313H55.92V95.19H49.472C49.719 94.904 49.953 94.605 50.187 94.293H57.22V93.461H50.759C50.928 93.175 51.097 92.889 51.253 92.577H56.466V91.771H51.63C51.76 91.446 51.89 91.108 52.007 90.757C53.645 90.627 55.075 90.432 56.31 90.159L55.881 89.418C53.45 89.912 50.395 90.159 46.703 90.159L46.976 90.939C48.458 90.939 49.836 90.9 51.11 90.822C50.98 91.134 50.85 91.459 50.707 91.771H46.586ZM49.147 97.556H55.023V98.375H49.147V97.556ZM55.023 96.828H49.147V95.957H55.023V96.828ZM49.147 99.103H55.023V99.987H49.147V99.103ZM60.041 89.886V95.047H62.472C61.614 95.97 60.275 96.724 58.468 97.322L58.962 98.141C61.042 97.322 62.537 96.295 63.447 95.047H65.54C65.865 95.528 66.294 95.996 66.84 96.438H66.073V101.326H67.009V96.581C67.815 97.218 68.855 97.777 70.116 98.245L70.519 97.426C68.712 96.841 67.373 96.048 66.515 95.047H69.011V89.886H60.041ZM68.114 94.215H64.955V92.837H68.114V94.215ZM64.045 94.215H60.938V92.837H64.045V94.215ZM60.938 92.057V90.718H64.045V92.057H60.938ZM64.955 90.718H68.114V92.057H64.955V90.718ZM62.199 96.425C62.186 97.374 62.03 98.154 61.744 98.778C61.354 99.506 60.561 100.104 59.391 100.585L60.015 101.339C61.393 100.741 62.29 99.974 62.68 99.038C62.979 98.323 63.135 97.452 63.135 96.425H62.199ZM71.715 89.899V90.809H77.123C77.019 91.381 76.85 91.927 76.642 92.473H72.456V101.339H73.353V100.689H81.686V101.339H82.583V92.473H77.591C77.799 91.94 77.968 91.381 78.072 90.809H83.285V89.899H71.715ZM73.353 99.831V93.318H75.147V99.831H73.353ZM76.018 99.831V98.167H78.982V99.831H76.018ZM79.853 99.831V93.318H81.686V99.831H79.853ZM76.018 97.348V95.762H78.982V97.348H76.018ZM76.018 94.93V93.318H78.982V94.93H76.018ZM86.249 98.18 85.664 98.726C86.145 99.09 86.626 99.519 87.107 100.039C87.523 100.481 87.9 100.923 88.212 101.365L88.862 100.819C88.55 100.377 88.173 99.922 87.744 99.48C87.25 98.96 86.743 98.531 86.249 98.18ZM102.824 89.405V93.201H99.288V97.374H107.894V93.201H103.747V91.55H108.791V90.666H103.747V89.405H102.824ZM106.958 96.503H100.224V94.085H106.958V96.503ZM99.262 97.946C98.794 99.012 98.235 99.935 97.585 100.702L98.352 101.261C99.002 100.429 99.561 99.454 100.055 98.323L99.262 97.946ZM102.096 98.323 101.225 98.505C101.472 99.324 101.68 100.26 101.862 101.326L102.798 101.118C102.59 100.117 102.356 99.181 102.096 98.323ZM104.813 98.193 103.929 98.375C104.319 99.22 104.644 100.195 104.904 101.3L105.827 101.092C105.541 100.052 105.203 99.077 104.813 98.193ZM107.478 97.933 106.724 98.414C107.517 99.48 108.141 100.442 108.596 101.326L109.376 100.78C108.934 99.974 108.31 99.025 107.478 97.933ZM111.768 91.303V92.2H116.019V94.358H110.767V95.268H116.019V99.857H112.964V96.399H112.067V100.728H120.049V101.326H120.946V96.399H120.049V99.857H116.981V95.268H122.246V94.358H116.981V92.2H121.18V91.303H116.981V89.47H116.019V91.303H111.768ZM131.047 97.127V99.974H127.498V100.884H135.441V99.974H131.983V97.127H134.96V96.256H128.018V97.127H131.047ZM125.119 101.183C125.873 101.183 126.263 100.806 126.263 100.052V96.217C126.64 96.048 127.017 95.866 127.394 95.684V94.735C127.03 94.93 126.653 95.112 126.263 95.294V92.772H127.342V91.875H126.263V89.392H125.301V91.875H123.715V92.772H125.301V95.684C124.716 95.892 124.118 96.074 123.507 96.23L123.741 97.166C124.261 96.997 124.781 96.815 125.301 96.62V99.818C125.301 100.156 125.132 100.325 124.794 100.325C124.469 100.325 124.131 100.299 123.78 100.273L123.975 101.183H125.119ZM131.398 89.236 130.449 89.392C130.683 89.808 130.904 90.289 131.112 90.809H127.888V93.266H128.772V91.654H134.232V93.266H135.103V90.809H132.048C131.84 90.224 131.619 89.704 131.398 89.236ZM130.189 92.46C129.695 93.578 128.954 94.475 127.979 95.151L128.655 95.736C129.63 95.06 130.41 94.072 131.008 92.785L130.189 92.46ZM132.698 92.434 131.905 92.772C132.685 93.604 133.387 94.566 134.024 95.632L134.843 95.216C134.219 94.202 133.504 93.266 132.698 92.434ZM139.406 89.301C138.782 91.329 137.794 93.136 136.416 94.696L136.715 95.697C137.209 95.177 137.664 94.631 138.08 94.059V101.313H139.003V92.629C139.523 91.706 139.952 90.731 140.29 89.704L139.406 89.301ZM141.59 90.159C141.304 91.888 140.771 93.357 139.978 94.553L140.576 95.333C141.057 94.657 141.46 93.89 141.785 93.032H143.995V96.165H140.173V97.062H143.995V101.248H144.931V97.062H148.402V96.165H144.931V93.032H147.921V92.122H144.931V89.418H143.995V92.122H142.084C142.266 91.55 142.409 90.926Line truncated
<rect x="32" y="136" width="211" height="103" rx="12" fill="#FFFFFF" stroke="#E1E6F1"/>
<path d="M50.54 155.76V161.03H51.49V154.39C51.91 153.69 52.24 152.94 52.5 152.16L51.61 151.74C51.12 153.28 50.35 154.63 49.31 155.79L49.62 156.8C49.94 156.46 50.25 156.12 50.54 155.76ZM57.27 155.78 56.43 156.06C56.89 157.18 57.31 158.46 57.69 159.91L58.52 159.53C58.17 158.2 57.75 156.95 57.27 155.78ZM53.74 153.86H57.29C57.15 154.32 56.97 154.74 56.77 155.1L57.68 155.36C57.92 154.76 58.11 154.16 58.27 153.56V152.94H54.07C54.17 152.64 54.26 152.32 54.35 151.99L53.46 151.8C53.15 153.08 52.62 154.27 51.87 155.38L52.69 155.89C53.09 155.27 53.44 154.6 53.74 153.86ZM54.89 160.96C55.53 160.96 55.85 160.63 55.85 159.98V154.59H54.93V159.74C54.93 160 54.81 160.13 54.57 160.13C54.2 160.13 53.81 160.1 53.4 160.06L53.61 160.96H54.89ZM53.3 155.88C52.9 157.31 52.43 158.49 51.9 159.42L52.79 159.74C53.35 158.7 53.8 157.5 54.15 156.12L53.3 155.88ZM63.13 153.45H61.59C61.78 152.97 61.93 152.46 62.03 151.91L61.08 151.78C61 152.36 60.86 152.91 60.68 153.45H59.73V160.7H60.64V159.89H62.22V160.41H63.13V153.45ZM60.64 159.01V157.04H62.22V159.01H60.64ZM60.64 156.19V154.35H62.22V156.19H60.64ZM64.93 155.85 64.16 156.33C64.8 157.14 65.32 157.87 65.7 158.53L66.45 158C66.1 157.38 65.59 156.67 64.93 155.85ZM68.29 153.46H65.2C65.36 152.97 65.5 152.45 65.6 151.89L64.66 151.77C64.42 153.15 63.96 154.32 63.3 155.28L63.87 156.03C64.25 155.53 64.57 154.98 64.85 154.38H67.36C67.34 157.23 67.31 158.91 67.25 159.41C67.19 159.83 66.96 160.04 66.56 160.04C66.24 160.04 65.86 160.02 65.42 160L65.65 160.87C66.15 160.9 66.51 160.92 66.71 160.92C67.56 160.92 68.04 160.56 68.14 159.84C68.24 159.04 68.29 156.91 68.29 153.46ZM74.21 153.9C75.43 153.66 76.72 153.29 78.08 152.8L77.56 152.05C76.49 152.49 75.37 152.83 74.21 153.07V151.84H73.29V154.57C73.29 155.25 73.61 155.59 74.25 155.59H77.14C77.54 155.59 77.84 155.51 78.04 155.35C78.25 155.19 78.4 154.68 78.48 153.83L77.6 153.55C77.56 154.12 77.49 154.46 77.39 154.57C77.29 154.66 77.15 154.71 76.97 154.71H74.54C74.32 154.71 74.21 154.59 74.21 154.37V153.9ZM70.8 160.94C71.43 160.94 71.75 160.61 71.75 159.95V157.25C72.13 157.11 72.5 156.95 72.87 156.79V155.82C72.51 156 72.13 156.16 71.75 156.31V154.55H72.78V153.64H71.75V151.84H70.84V153.64H69.57V154.55H70.84V156.63C70.36 156.78 69.88 156.91 69.39 157.01L69.62 157.96C70.03 157.84 70.44 157.72 70.84 157.58V159.71C70.84 159.96 70.71 160.09 70.47 160.09C70.18 160.09 69.87 160.07 69.55 160.03L69.76 160.94H70.8ZM78.11 156.22H73.37V161.03H74.31V160.59H77.16V161.03H78.11V156.22ZM74.31 159.75V158.81H77.16V159.75H74.31ZM74.31 157.97V157.05H77.16V157.97H74.31ZM83.25 154.15 82.77 154.87C83.46 155.15 84.13 155.53 84.78 156.01L85.26 155.27C84.65 154.83 83.98 154.46 83.25 154.15ZM82.28 158.14 81.75 158.92C83.15 159.42 84.52 160.12 85.85 161L86.38 160.18C85.96 159.9 85.53 159.65 85.07 159.41C85.91 158.73 86.65 157.97 87.29 157.13V156.32H80.58V157.22H86.1C85.46 157.91 84.83 158.49 84.21 158.97C83.6 158.67 82.96 158.39 82.28 158.14ZM83.68 151.89C82.54 153.22 81.11 154.33 79.39 155.23L79.86 156.08C81.58 155.15 82.96 154.05 84 152.77C85.15 154.07 86.54 155.13 88.16 155.94L88.63 155.09C87.01 154.31 85.57 153.25 84.32 151.89H83.68Z" fill="#77829A"/>
<path d="M59.132 177.406V181.826H56.99V177.406H59.132ZM60.628 181.826V177.406H62.838V181.826H60.628ZM54.712 181.758C54.27 181.996 53.828 182.234 53.386 182.455V179.599H54.763V178.052H53.386V175.111H51.788V178.052H49.935V179.599H51.788V183.152C51.108 183.407 50.411 183.628 49.697 183.798L50.088 185.328C50.666 185.141 51.227 184.937 51.788 184.733V188.677C51.788 189.017 51.601 189.204 51.261 189.204C50.853 189.204 50.428 189.17 49.986 189.102L50.343 190.683H51.822C52.859 190.683 53.386 190.139 53.386 189.068V184.036C53.828 183.832 54.27 183.611 54.712 183.373V181.758ZM64.368 175.859H55.392V188.847C55.392 189.833 55.936 190.326 57.058 190.326H63.059C64.028 190.292 64.64 189.884 64.912 189.068C65.099 188.558 65.252 187.725 65.388 186.569L63.875 186.093C63.739 187.3 63.603 188.031 63.501 188.303C63.331 188.609 63.008 188.779 62.532 188.813H57.721C57.228 188.813 56.99 188.609 56.99 188.235V183.322H64.368V175.859ZM73.905 175.026C71.933 177.253 69.451 179.106 66.476 180.602L67.343 182.166C68.397 181.588 69.383 180.976 70.301 180.33V181.673H78.75V180.398C79.634 181.044 80.569 181.622 81.589 182.149L82.473 180.585C79.685 179.225 77.237 177.372 75.095 175.026H73.905ZM70.556 180.143C72.086 179.038 73.395 177.814 74.5 176.471C75.639 177.831 76.948 179.055 78.41 180.143H70.556ZM67.632 183.56V185.124H71.61C70.964 186.314 70.182 187.436 69.264 188.507C69.094 188.694 68.822 188.847 68.431 188.949L68.873 190.343C72.851 190.105 76.166 189.782 78.801 189.374C79.124 189.833 79.43 190.292 79.719 190.734L81.062 189.782C80.212 188.541 79.022 187.079 77.475 185.396L76.217 186.195C76.829 186.875 77.39 187.538 77.9 188.201C75.622 188.473 73.276 188.677 70.828 188.813C71.831 187.759 72.715 186.535 73.48 185.124H81.402V183.56H67.632ZM92.894 174.958 91.687 175.842C92.656 177.168 93.438 178.375 94.033 179.497L95.308 178.613C94.747 177.559 93.948 176.352 92.894 174.958ZM96.957 175.876C96.481 179.344 95.529 182.217 94.067 184.512C92.605 182.438 91.483 179.888 90.701 176.862L89.307 177.644C90.242 180.874 91.5 183.611 93.098 185.838C91.84 187.385 90.276 188.575 88.423 189.425L89.307 190.802C91.194 189.952 92.809 188.728 94.152 187.164C95.444 188.66 96.923 189.884 98.623 190.802L99.575 189.408C97.892 188.524 96.413 187.351 95.121 185.872C96.821 183.39 97.943 180.16 98.487 176.199L96.957 175.876ZM86.009 175.196 84.887 176.267C86.06 177.168 86.978 178.018 87.641 178.834L88.746 177.712C87.998 176.879 87.08 176.046 86.009 175.196ZM83.697 180.126V181.673H86.077V187.776C86.077 188.116 85.924 188.405 85.635 188.626L86.247 190.105C87.403 189.306 88.491 188.422 89.511 187.436L89.069 185.719C88.559 186.229 88.083 186.688 87.624 187.096V180.126H83.697ZM100.935 175.638V177.083H105.814V178.324H101.955V182.829H106.256C106.035 183.22 105.797 183.611 105.559 184.019H100.714V185.515H104.641C104.301 186.059 103.927 186.603 103.553 187.147C104.862 187.453 106.171 187.793 107.48 188.184C105.984 188.694 103.859 189.085 101.139 189.391L101.751 190.819C105.389 190.326 108.007 189.663 109.605 188.847C111.424 189.442 113.243 190.122 115.045 190.887L116.048 189.561C114.348 188.915 112.682 188.337 111.067 187.844C111.832 187.164 112.376 186.399 112.716 185.515H116.269V184.019H107.395C107.599 183.645 107.82 183.254 108.075 182.829H115.045V178.324H111.186V177.083H116.065V175.638H100.935ZM109.316 187.334C108.126 187.011 106.97 186.739 105.831 186.501L106.494 185.515H111.033C110.693 186.229 110.115 186.824 109.316 187.334ZM109.639 178.324H107.361V177.083H109.639V178.324ZM113.498 181.452H111.186V179.701H113.498V181.452ZM109.639 181.452H107.361V179.701H109.639V181.452ZM105.814 181.452H103.502V179.701H105.814V181.452ZM124.429 175.162V179.973H119.839V185.736H131.433V179.973H126.027V178.171H132.504V176.658H126.027V175.162H124.429ZM129.818 184.24H121.437V181.486H129.818V184.24ZM119.805 186.297C119.193 187.64 118.479 188.796 117.663 189.765L118.989 190.734C119.805 189.68 120.536 188.422 121.148 186.96L119.805 186.297ZM123.851 186.841 122.338 187.164C122.661 188.201 122.933 189.408 123.137 190.768L124.769 190.394C124.497 189.119 124.191 187.929 123.851 186.841ZM127.387 186.62 125.874 186.926C126.35 188.031 126.758 189.306 127.081 190.734L128.679 190.36C128.305 189.017 127.88 187.776 127.387 186.62ZM130.787 186.246 129.495 187.079C130.515 188.439 131.314 189.697 131.909 190.819L133.252 189.884C132.674 188.847 131.858 187.64 130.787 186.246Z" fill="#253047"/>
<path d="M55.154 201.182V202.576H59.2C59.166 202.848 59.115 203.12 59.064 203.426H56.055V211.212H54.661V209.818C54.151 210.022 53.641 210.226 53.114 210.413V205.619H54.729V204.089H53.114V200.128H51.567V204.089H49.799V205.619H51.567V210.889C50.938 211.059 50.292 211.195 49.629 211.314L50.037 212.878C51.618 212.487 53.131 212.011 54.559 211.433V212.64H57.908C56.973 213.405 55.817 214.085 54.44 214.663L55.392 215.87C56.854 215.19 58.061 214.408 59.047 213.524L58.027 212.64H61.971L61.002 213.524C62.158 214.187 63.246 214.969 64.266 215.853L65.235 214.731C64.249 213.932 63.195 213.235 62.073 212.64H65.422V211.212H63.943V203.426H60.594L60.747 202.576H64.827V201.182H60.917L61.019 200.196L59.455 199.975L59.353 201.182H55.154ZM57.568 211.212V210.362H62.43V211.212H57.568ZM57.568 209.257V208.458H62.43V209.257H57.568ZM57.568 207.353V206.571H62.43V207.353H57.568ZM57.568 205.466V204.667H62.43V205.466H57.568ZM68.329 200.23 67.207 201.301C68.431 202.287 69.366 203.188 70.029 204.038L71.185 202.882C70.403 201.998 69.451 201.114 68.329 200.23ZM78.053 215.462H81.946L82.337 213.864C81.878 213.898 81.215 213.932 80.365 213.949C79.498 213.966 78.648 213.983 77.832 213.983C76.523 213.983 75.401 213.966 74.449 213.949C73.463 213.915 72.732 213.762 72.239 213.524C71.814 213.303 71.406 212.963 71.032 212.504C70.947 212.402 70.862 212.334 70.794 212.266V205.823H66.986V207.319H69.281V212.13C68.601 212.47 67.836 213.337 66.986 214.714L68.176 215.819C69.043 214.289 69.655 213.524 69.995 213.524C70.199 213.524 70.403 213.66 70.624 213.949C71.134 214.527 71.712 214.935 72.392 215.139C73.089 215.309 73.973 215.411 75.061 215.428C76.132 215.445 77.135 215.462 78.053 215.462ZM72.188 202.61V204.123H74.058V205.33C74.058 205.959 74.024 206.554 73.956 207.132H71.593V208.662H73.65C73.276 210.022 72.613 211.042 71.661 211.722L72.63 213.014C73.888 212.062 74.738 210.617 75.214 208.662H77.917V213.286H79.481V208.662H82.048V207.132H79.481V204.123H81.504V202.61H79.481V200.06H77.917V202.61H75.605V200.043H74.058V202.61H72.188ZM75.605 204.123H77.917V207.132H75.486C75.554 206.452 75.605 205.738 75.605 204.956V204.123ZM97.025 208.152H86.315C88.27 207.71 90.021 207.098 91.568 206.35C93.54 207.302 95.886 207.999 98.623 208.407L99.32 206.979C96.957 206.673 94.883 206.163 93.115 205.483C94.492 204.599 95.682 203.562 96.668 202.372V201.148H89.987C90.191 200.842 90.412 200.536 90.633 200.213L89.035 199.856C87.743 201.675 86.196 203.086 84.411 204.106L85.448 205.364C86.247 204.854 86.995 204.293 87.709 203.647C88.372 204.31 89.137 204.922 90.021 205.483C88.185 206.248 86.077 206.792 83.68 207.115L84.377 208.526C84.921 208.441 85.465 208.339 86.009 208.22V215.751H87.539V215.105H95.495V215.751H97.025V208.152ZM88.661 202.729 88.831 202.559H94.628C93.744 203.392 92.707 204.123 91.534 204.769C90.429 204.191 89.477 203.511 88.661 202.729ZM87.539 213.745V212.249H90.735V213.745H87.539ZM92.265 213.745V212.249H95.495V213.745H92.265ZM87.539 210.957V209.495H90.735V210.957H87.539ZM92.265 209.495H95.495V210.957H92.265V209.495ZM102.992 203.443V208.169H114.756V206.588H104.624V203.443H115.64V201.879H109.452C109.231 201.165 108.993 200.536 108.755 199.992L107.072 200.281C107.344 200.757 107.582 201.301 107.82 201.879H101.173V203.443H102.992ZM102.244 209.733C101.938 211.28 101.411 212.725 100.697 214.068L102.057 214.952C102.805 213.575 103.4 211.943 103.825 210.056L102.244 209.733ZM109.112 208.747 107.582 209.257C108.143 210.175 108.653 211.229 109.112 212.419L110.557 211.773C110.149 210.702 109.673 209.699 109.112 208.747ZM114.195 209.444 112.682 209.954C113.481 211.229 114.212 212.708 114.858 214.391L116.303 213.745C115.708 212.215 115.011 210.787 114.195 209.444ZM111.101 215.496C111.764 215.496 112.257 215.343 112.563 215.037C112.886 214.714 113.124 213.745 113.277 212.113L111.73 211.62C111.679 212.742 111.577 213.405 111.424 213.643C111.288 213.847 111.084 213.949 110.812 213.949H106.902C106.528 213.949 106.341 213.677 106.341 213.15V209.342H104.692V213.473C104.692 214.816 105.253 215.496 106.392 215.496H111.101ZM119.873 200.604V202.049H128.271V203.392H120.451V204.786H128.271V206.095H118.173V207.574H124.599V209.495C122.729 211.144 120.502 212.555 117.935 213.728L118.581 215.224C120.893 214.017 122.899 212.674 124.599 211.178V213.66C124.599 214.119 124.446 214.357 124.157 214.357C123.596 214.357 123.001 214.306 122.372 214.238L122.729 215.768H124.701C125.687 215.768 126.197 215.19 126.197 214.034V211.093C127.693 212.725 129.648 214.119 132.096 215.275L132.912 213.847C131.212 213.116 129.733 212.283 128.441 211.331C129.597 210.702 130.617 209.818 131.518 208.696L130.277 207.659C129.461 208.866 128.475 209.784 127.336 210.43C126.928 210.073 126.554 209.699 126.197 209.308V207.574H132.844V206.095H129.92V200.604H119.873ZM120.213 207.931 119.142 208.968C120.23 209.716 121.08 210.413 121.692 211.059L122.746 210.005C122.066 209.325 121.216 208.628 120.213 207.931Z" fill="#253047"/>
<path d="M257 187H279M274 182L279 187L274 192" fill="none" stroke="#95A5D4" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"/>
<rect x="294" y="123" width="314" height="145" rx="12" fill="#FFFFFF" stroke="#DCE2EF"/>
<path d="M306 123H596Q608 123 608 135V151H294V135Q294 123 306 123Z" fill="#F9FAFD"/>
<path d="M294 151H608" stroke="#E4E8F1"/>
<circle cx="309" cy="137" r="3" fill="#E4ABAE"/>
<circle cx="320" cy="137" r="3" fill="#E4CEA1"/>
<circle cx="331" cy="137" r="3" fill="#A9C9B4"/>
<path d="M444.16 137.64H437.86V142H438.55V141.56H443.47V142H444.16V137.64ZM438.55 140.94V139.88H440.66V140.94H438.55ZM441.34 140.94V139.88H443.47V140.94H441.34ZM438.55 139.3V138.24H440.66V139.3H438.55ZM441.34 138.24H443.47V139.3H441.34V138.24ZM439.67 132.71C438.94 133.78 438.01 134.64 436.89 135.29L437.35 135.85C437.85 135.53 438.32 135.18 438.76 134.78C439.22 135.25 439.75 135.67 440.35 136.03C439.23 136.53 437.93 136.89 436.43 137.1L436.74 137.73C438.39 137.46 439.83 137.02 441.05 136.41C442.21 136.99 443.61 137.4 445.25 137.65L445.56 137.01C444.08 136.81 442.81 136.49 441.73 136.03C442.61 135.49 443.36 134.85 443.98 134.09V133.54H439.91C440.07 133.33 440.23 133.11 440.38 132.87L439.67 132.71ZM439.19 134.37 439.39 134.17H443.09C442.51 134.75 441.82 135.26 441.02 135.7C440.3 135.32 439.69 134.88 439.19 134.37ZM447.87 134.7V137.49H454.64V136.78H448.59V134.7H455.17V134H451.5C451.35 133.54 451.19 133.14 451.01 132.79L450.27 132.92C450.45 133.24 450.62 133.6 450.78 134H446.72V134.7H447.87ZM447.47 138.52C447.26 139.46 446.93 140.31 446.47 141.08L447.07 141.48C447.54 140.69 447.91 139.75 448.17 138.67L447.47 138.52ZM451.21 137.96 450.53 138.18C450.87 138.72 451.19 139.34 451.47 140.05L452.12 139.76C451.86 139.12 451.56 138.52 451.21 137.96ZM454.22 138.37 453.54 138.59C454.02 139.34 454.46 140.2 454.85 141.18L455.5 140.89C455.14 140 454.71 139.16 454.22 138.37ZM452.52 141.85C452.89 141.85 453.16 141.76 453.32 141.58C453.51 141.37 453.64 140.8 453.72 139.86L453.03 139.64C453 140.37 452.93 140.81 452.81 140.97C452.73 141.09 452.59 141.16 452.39 141.16H449.99C449.73 141.16 449.6 140.99 449.6 140.65V138.26H448.87V140.8C448.87 141.5 449.17 141.85 449.77 141.85H452.52ZM457.72 133.21V133.86H462.76V134.86H458.06V135.49H462.76V136.46H456.72V137.11H460.58V138.36C459.47 139.38 458.15 140.25 456.61 140.98L456.9 141.65C458.32 140.89 459.55 140.05 460.58 139.11V140.94C460.58 141.23 460.47 141.38 460.27 141.38C459.93 141.38 459.58 141.36 459.21 141.33L459.36 142.01H460.51C461.03 142.01 461.3 141.71 461.3 141.11V139.05C462.2 140.09 463.42 140.97 464.96 141.69L465.32 141.05C464.26 140.59 463.34 140.05 462.56 139.44C463.28 139.06 463.91 138.51 464.47 137.79L463.92 137.33C463.4 138.07 462.78 138.64 462.07 139.04C461.79 138.79 461.54 138.53 461.3 138.25V137.11H465.29V136.46H463.49V133.21H457.72ZM457.8 137.49 457.32 137.95C457.98 138.4 458.49 138.83 458.87 139.23L459.33 138.76C458.92 138.34 458.41 137.91 457.8 137.49Z" fill="#77829A"/>
<path d="M294.5 151.5H337V267.5H306Q294.5 267.5 294.5 256Z" fill="#F7F8FC"/>
<path d="M337 152V268" stroke="#E9ECF4"/>
<rect x="304" y="164" width="24" height="21" rx="5" fill="#E9EDFD"/>
<path d="M311 170H321M311 174H321M311 178H317" stroke="#8496D5" stroke-width="1.2" stroke-linecap="round"/>
<path d="M311 198H321M311 202H318M311 221H321M311 225H318" stroke="#C2CADA" stroke-width="1.2" stroke-linecap="round"/>
<path d="M360.51 165.492C358.886 167.326 356.842 168.852 354.392 170.084L355.106 171.372C355.974 170.896 356.786 170.392 357.542 169.86V170.966H364.5V169.916C365.228 170.448 365.998 170.924 366.838 171.358L367.566 170.07C365.27 168.95 363.254 167.424 361.49 165.492H360.51ZM357.752 169.706C359.012 168.796 360.09 167.788 361 166.682C361.938 167.802 363.016 168.81 364.22 169.706H357.752ZM355.344 172.52V173.808H358.62C358.088 174.788 357.444 175.712 356.688 176.594C356.548 176.748 356.324 176.874 356.002 176.958L356.366 178.106C359.642 177.91 362.372 177.644 364.542 177.308C364.808 177.686 365.06 178.064 365.298 178.428L366.404 177.644C365.704 176.622 364.724 175.418 363.45 174.032L362.414 174.69C362.918 175.25 363.38 175.796 363.8 176.342C361.924 176.566 359.992 176.734 357.976 176.846C358.802 175.978 359.53 174.97 360.16 173.808H366.684V172.52H355.344ZM376.148 165.436 375.154 166.164C375.952 167.256 376.596 168.25 377.086 169.174L378.136 168.446C377.674 167.578 377.016 166.584 376.148 165.436ZM379.494 166.192C379.102 169.048 378.318 171.414 377.114 173.304C375.91 171.596 374.986 169.496 374.342 167.004L373.194 167.648C373.964 170.308 375 172.562 376.316 174.396C375.28 175.67 373.992 176.65 372.466 177.35L373.194 178.484C374.748 177.784 376.078 176.776 377.184 175.488C378.248 176.72 379.466 177.728 380.866 178.484L381.65 177.336C380.264 176.608 379.046 175.642 377.982 174.424C379.382 172.38 380.306 169.72 380.754 166.458L379.494 166.192ZM370.478 165.632 369.554 166.514C370.52 167.256 371.276 167.956 371.822 168.628L372.732 167.704C372.116 167.018 371.36 166.332 370.478 165.632ZM368.574 169.692V170.966H370.534V175.992C370.534 176.272 370.408 176.51 370.17 176.692L370.674 177.91C371.626 177.252 372.522 176.524 373.362 175.712L372.998 174.298C372.578 174.718 372.186 175.096 371.808 175.432V169.692H368.574ZM382.77 165.996V167.186H386.788V168.208H383.61V171.918H387.152C386.97 172.24 386.774 172.562 386.578 172.898H382.588V174.13H385.822C385.542 174.578 385.234 175.026 384.926 175.474C386.004 175.726 387.082 176.006 388.16 176.328C386.928 176.748 385.178 177.07 382.938 177.322L383.442 178.498C386.438 178.092 388.594 177.546 389.91 176.874C391.408 177.364 392.906 177.924 394.39 178.554L395.216 177.462C393.816 176.93 392.444 176.454 391.114 176.048C391.744 175.488 392.192 174.858 392.472 174.13H395.398V172.898H388.09C388.258 172.59 388.44 172.268 388.65 171.918H394.39V168.208H391.212V167.186H395.23V165.996H382.77ZM389.672 175.628C388.692 175.362 387.74 175.138 386.802 174.942L387.348 174.13H391.086C390.806 174.718 390.33 175.208 389.672 175.628ZM389.938 168.208H388.062V167.186H389.938V168.208ZM393.116 170.784H391.212V169.342H393.116V170.784ZM389.938 170.784H388.062V169.342H389.938V170.784ZM386.788 170.784H384.884V169.342H386.788V170.784ZM402.118 165.604V169.566H398.338V174.312H407.886V169.566H403.434V168.082H408.768V166.836H403.434V165.604H402.118ZM406.556 173.08H399.654V170.812H406.556V173.08ZM398.31 174.774C397.806 175.88 397.218 176.832 396.546 177.63L397.638 178.428C398.31 177.56 398.912 176.524 399.416 175.32L398.31 174.774ZM401.642 175.222 400.396 175.488C400.662 176.342 400.886 177.336 401.054 178.456L402.398 178.148C402.174 177.098 401.922 176.118 401.642 175.222ZM404.554 175.04 403.308 175.292C403.7 176.202 404.036 177.252 404.302 178.428L405.618 178.12C405.31 177.014 404.96 175.992 404.554 175.04ZM407.354 174.732 406.29 175.418C407.13 176.538 407.788 177.574 408.278 178.498L409.384 177.728C408.908 176.874 408.236 175.88 407.354 174.732Z" fill="#253047"/>
<rect x="348" y="205" width="244" height="23" rx="5" fill="#EDF1FF"/>
<circle cx="356" cy="194" r="1.6" fill="#A6B0C4"/>
<path d="M370.474 190.191V191.146H368.381V191.836H370.474V192.975H368.036V193.699H373.728V192.975H371.279V191.836H373.349V191.146H371.279V190.191H370.474ZM375.212 189.065H366.599V193.71C366.575 195.677 366.253 197.298 365.632 198.575L366.253 199.138C367.012 197.736 367.404 195.895 367.426 193.642V189.835H374.396V197.862C374.396 198.161 374.235 198.322 373.913 198.322C373.464 198.322 372.981 198.31 372.464 198.287L372.682 199.07H374.166C374.856 199.07 375.212 198.759 375.212 198.149V189.065ZM368.507 194.573V197.436H373.154V194.573H368.507ZM372.36 196.712H369.312V195.274H372.36V196.712ZM377.914 189.478V190.284H386.608V189.478H377.914ZM378.685 193.458V194.262H385.827V193.458H378.685ZM377.063 197.713V198.541H387.437V197.713H377.063ZM394.026 194.205H395.51V195.677H394.014C394.014 195.573 394.026 195.47 394.026 195.378V194.205ZM393.957 196.401H395.51V198.943H396.257V196.401H397.798V197.942C397.798 198.173 397.683 198.299 397.453 198.299C397.2 198.299 396.935 198.276 396.648 198.253L396.844 199H397.695C398.281 199 398.58 198.736 398.58 198.219V191.33H396.648C396.993 190.985 397.338 190.548 397.683 190.042V189.456H394.911C395.026 189.226 395.153 188.995 395.268 188.754L394.474 188.582C393.888 189.778 393.14 190.755 392.232 191.502L392.75 192.112C392.911 191.974 393.083 191.813 393.255 191.652V195.424C393.233 196.689 392.945 197.747 392.37 198.575L392.968 199.115C393.497 198.38 393.819 197.482 393.957 196.401ZM395.751 191.33H393.566C393.888 190.974 394.199 190.583 394.486 190.157H396.728C396.406 190.594 396.084 190.985 395.751 191.33ZM397.798 195.677H396.257V194.205H397.798V195.677ZM397.798 193.469H396.257V192.066H397.798V193.469ZM395.51 192.066V193.469H394.026V192.066H395.51ZM388.771 189.249V190.054H390.07C389.805 191.721 389.265 193.204 388.437 194.504L388.92 195.274C389.127 194.952 389.334 194.619 389.529 194.262V198.77H390.312V197.897H392.324V192.664H390.231C390.507 191.859 390.726 190.985 390.875 190.054H392.611V189.249H388.771ZM390.312 197.149V193.423H391.565V197.149H390.312ZM406.711 188.662C406.711 190.893 406.538 192.721 406.216 194.159C405.779 195.873 404.882 197.287 403.548 198.414L404.111 199.093C405.641 197.827 406.618 196.195 407.055 194.216C407.113 193.917 407.171 193.619 407.228 193.297C407.872 195.573 408.803 197.506 410.034 199.07L410.632 198.38C409.125 196.655 408.067 194.309 407.458 191.364C407.527 190.536 407.562 189.628 407.562 188.662H406.711ZM401.363 188.72 400.788 189.283C401.616 189.904 402.283 190.502 402.766 191.065L403.329 190.49C402.8 189.893 402.145 189.306 401.363 188.72ZM400.017 192.124V192.917H401.708V197.402C401.708 197.586 401.616 197.758 401.443 197.897L401.765 198.632C402.57 198.103 403.329 197.494 404.043 196.815L403.836 195.964C403.364 196.413 402.916 196.804 402.502 197.149V192.124H400.017ZM411.748 190.306V191.1H414.956C414.945 191.491 414.921 192.043 414.887 192.768C414.829 193.86 414.611 194.849 414.22 195.734C413.817 196.62 413.001 197.575 411.782 198.609L412.38 199.185C413.392 198.368 414.174 197.471 414.738 196.482C415.151 195.723 415.439 194.883 415.589 193.952H419.613C419.591 195.539 419.556 196.585 419.487 197.069C419.349 197.874 418.993 198.287 418.406 198.31C418.003 198.31 417.509 198.299 416.911 198.276L417.164 199.024C417.67 199.047 418.118 199.07 418.486 199.07C419.395 199.035 419.959 198.529 420.188 197.552C420.338 196.907 420.43 195.447 420.453 193.17H415.68V193.147L415.784 191.1H421.844V190.306H417.543C417.267 189.628 416.969 189.042 416.647 188.559L415.865 188.846C416.198 189.306 416.474 189.8 416.704 190.306H411.748ZM427.468 190.445C427.238 190.767 426.985 191.1 426.721 191.434H423.685V192.101H426.18C425.904 192.423 425.616 192.744 425.317 193.089C426.111 193.239 426.904 193.411 427.709 193.619C426.697 193.94 425.317 194.101 423.57 194.101L424.018 194.78C425.973 194.757 427.548 194.458 428.756 193.894C429.918 194.205 431.079 194.561 432.229 194.976L432.712 194.343C431.642 193.987 430.596 193.676 429.584 193.423C430.055 193.078 430.493 192.641 430.906 192.101H432.839V191.434H427.629C427.813 191.192 428.009 190.939 428.216 190.663L427.468 190.445ZM428.664 193.193C427.94 193.009 427.226 192.859 426.525 192.744C426.697 192.56 426.893 192.342 427.1 192.101H430.021C429.676 192.514 429.216 192.871 428.664 193.193ZM432.873 189.513H428.699C428.56 189.168 428.423 188.846 428.262 188.559L427.399 188.697C427.572 188.95 427.733 189.214 427.882 189.513H423.627V191.135H424.409V190.214H432.091V191.135H432.873V189.513ZM423.328 195.447V196.183H427.111C426.399 196.919 425.087 197.575 423.178 198.149L423.639 198.886C425.709 198.126 427.111 197.23 427.848 196.195V199.127H428.699V196.229C429.55 197.287 430.976 198.149 432.976 198.805L433.333 198.081C431.574 197.609 430.274 196.976 429.446 196.183H433.183V195.447H428.699V194.55H427.848V195.447H423.328Z" fill="#77829A"/>
<circle cx="356" cy="216" r="1.6" fill="#4D6BFE"/>
<path d="M370.474 212.191V213.146H368.381V213.836H370.474V214.975H368.036V215.699H373.728V214.975H371.279V213.836H373.349V213.146H371.279V212.191H370.474ZM375.212 211.065H366.599V215.71C366.575 217.677 366.253 219.298 365.632 220.575L366.253 221.138C367.012 219.736 367.404 217.895 367.426 215.642V211.835H374.396V219.862C374.396 220.161 374.235 220.322 373.913 220.322C373.464 220.322 372.981 220.31 372.464 220.287L372.682 221.07H374.166C374.856 221.07 375.212 220.759 375.212 220.149V211.065ZM368.507 216.573V219.436H373.154V216.573H368.507ZM372.36 218.712H369.312V217.274H372.36V218.712ZM378.168 214.905V215.71H380.606L379.743 219.839H377.144V220.655H387.368V219.839H385.481V214.905H381.606L382.204 212.077H386.93V211.272H377.581V212.077H381.376L380.778 214.905H378.168ZM380.571 219.839 381.433 215.71H384.642V219.839H380.571ZM398.615 211.835H394.21C394.072 211.375 393.923 210.972 393.773 210.605L392.841 210.766C393.002 211.088 393.14 211.444 393.279 211.835H388.863V214.411H389.702V212.64H397.775V214.411H398.615V211.835ZM390.507 213.974V214.779H396.947V213.974H390.507ZM388.748 216.136V216.929H391.933V217.01C391.899 217.907 391.657 218.631 391.197 219.184C390.691 219.724 389.817 220.149 388.563 220.471L389.035 221.208C390.323 220.851 391.255 220.357 391.829 219.736C392.404 219.046 392.715 218.137 392.75 217.01V216.929H394.682V219.827C394.682 220.587 395.026 220.977 395.74 220.977H397.683C398.074 220.977 398.35 220.863 398.534 220.655C398.741 220.425 398.879 219.747 398.948 218.643L398.166 218.39C398.12 219.264 398.051 219.781 397.959 219.954C397.878 220.103 397.74 220.184 397.534 220.184H396.004C395.671 220.184 395.51 220 395.51 219.655V216.929H398.764V216.136H388.748ZM408.056 210.57 407.527 211.076C408.113 211.524 408.574 211.95 408.918 212.364H406.768C406.745 211.812 406.733 211.226 406.733 210.582H405.882C405.882 211.202 405.894 211.789 405.917 212.364H401.168V216.194C401.133 218.068 400.753 219.529 400.017 220.587L400.65 221.15C401.501 219.908 401.961 218.252 402.007 216.194V215.849H403.997C403.974 217.113 403.939 217.941 403.87 218.333C403.801 218.655 403.64 218.827 403.387 218.839C403.077 218.839 402.697 218.827 402.248 218.804L402.502 219.552C402.87 219.575 403.203 219.597 403.479 219.597C404.054 219.575 404.411 219.321 404.56 218.827C404.709 218.263 404.801 217.01 404.825 215.066H402.007V213.157H405.952C406.043 214.595 406.204 215.803 406.457 216.768C406.584 217.263 406.733 217.723 406.894 218.149C406.101 219.149 405.123 219.908 403.974 220.425L404.433 221.115C405.514 220.632 406.457 219.931 407.262 218.988C407.435 219.345 407.63 219.667 407.837 219.942C408.389 220.632 408.907 220.977 409.39 220.977C409.908 220.977 410.298 220.207 410.575 218.678L409.827 218.263C409.654 219.448 409.459 220.046 409.252 220.058C409.022 220.058 408.712 219.781 408.332 219.23C408.148 218.965 407.976 218.643 407.815 218.275C408.55 217.24 409.149 215.952 409.608 214.434L408.861 214.112C408.505 215.343 408.044 216.423 407.469 217.344C407.389 217.09 407.308 216.826 407.24 216.538C407.033 215.71 406.883 214.583 406.803 213.157H410.344V212.364H408.942L409.471 211.835C409.079 211.41 408.608 210.984 408.056 210.57ZM421.787 211.444H418.59C418.475 211.099 418.372 210.8 418.257 210.524L417.417 210.662C417.532 210.904 417.647 211.168 417.739 211.444H414.703V213.56H415.519V212.203H420.971V213.572H421.787V211.444ZM415.531 213.123V213.836H417.842V214.675H415.163V218.815H421.304V214.675H418.625V213.836H420.947V213.123H415.531ZM420.499 218.102H418.625V217.079H420.499V218.102ZM417.842 218.102H415.968V217.079H417.842V218.102ZM415.968 216.412V215.388H417.842V216.412H415.968ZM418.625 215.388H420.499V216.412H418.625V215.388ZM419.406 219.149 418.993 219.758C419.889 220.103 420.775 220.587 421.626 221.185L422.086 220.483C421.281 219.954 420.384 219.517 419.406 219.149ZM417.038 219.137C416.279 219.655 415.347 220.115 414.243 220.506L414.749 221.161C415.876 220.736 416.842 220.242 417.624 219.667L417.038 219.137ZM412.3 210.777 411.713 211.34C412.575 211.962 413.254 212.548 413.76 213.1L414.346 212.513C413.795 211.927 413.104 211.352 412.3 210.777ZM412.104 213.514 411.517 214.089C412.334 214.71 412.978 215.285 413.438 215.837L414.024 215.25C413.507 214.675 412.863 214.089 412.104 213.514ZM413.565 216.665C413.036 218.022 412.426 219.356 411.713 220.655L412.472 220.989C413.139 219.724 413.737 218.379 414.289 216.952L413.565 216.665ZM427.64 221.012C428.353 221.012 428.71 220.655 428.71 219.965V214.975H433.149V214.158H423.351V214.975H427.87V219.758C427.87 220.081 427.698 220.253 427.353 220.253C426.916 220.253 426.467 220.23 425.985 220.207L426.157 221.012H427.64ZM425.122 216.239C424.719 217.643 424.075 218.919 423.19 220.069L423.914 220.518C424.788 219.368 425.455 217.999 425.938 216.412L425.122 216.239ZM431.194 216.125 430.447 216.377C431.183 217.55 431.861 218.896 432.482 220.425L433.241 220.081C432.666 218.678 431.976 217.367 431.194 216.125ZM424.409 211.237V212.042H432.125V211.237H424.409Z" fill="#253047"/>
<circle cx="356" cy="240" r="1.6" fill="#A6B0C4"/>
<path d="M366.035 236.433V238.434H367.875C367.058 239.043 366.253 239.492 365.449 239.768L365.805 240.435C366.518 240.078 367.208 239.619 367.887 239.043V240.355H368.623V239.17C369.06 239.4 369.611 239.745 370.255 240.194L370.681 239.561C369.991 239.204 369.301 238.894 368.623 238.618V238.434H370.474V236.433H368.623V235.789H370.762V235.145H368.623V234.605H367.887V235.145H365.621V235.789H367.887V236.433H366.035ZM369.807 237.87H368.623V237.008H369.807V237.87ZM367.887 237.87H366.702V237.008H367.887V237.87ZM372.279 236.261H374.292C374.154 237.123 373.855 237.813 373.406 238.331L373.349 238.388C372.82 237.928 372.383 237.376 372.05 236.709C372.118 236.571 372.199 236.422 372.279 236.261ZM372.774 238.848C372.291 239.159 371.67 239.423 370.888 239.63L371.175 240.309C372.072 240.055 372.808 239.722 373.372 239.331C373.97 239.768 374.66 240.113 375.465 240.366L375.89 239.71C375.154 239.492 374.51 239.193 373.947 238.825L373.993 238.779C374.522 238.135 374.867 237.296 375.028 236.261H375.695V235.548H372.555C372.647 235.26 372.74 234.961 372.808 234.639L372.072 234.547C371.82 235.674 371.337 236.64 370.623 237.422L371.106 238.031C371.279 237.836 371.452 237.629 371.613 237.411C371.923 237.94 372.314 238.423 372.774 238.848ZM370.255 241.47V244.161H368.243V241.999H367.484V244.161H365.644V244.897H375.856V244.161H371.084V243.161H374.603V242.447H371.084V241.47H375.304V240.745H366.219V241.47H370.255ZM381.284 235.065V240.377H383.688V241.734H381.089V242.517H383.688V244.012H380.606V244.805H387.529V244.012H384.515V242.517H387.103V241.734H384.515V240.377H386.908V235.065H381.284ZM386.114 239.642H384.515V238.089H386.114V239.642ZM383.688 239.642H382.077V238.089H383.688V239.642ZM382.077 237.364V235.8H383.688V237.364H382.077ZM384.515 235.8H386.114V237.364H384.515V235.8ZM377.224 238.871V239.665H378.478V242.551C377.983 242.689 377.478 242.804 376.971 242.896L377.178 243.69C378.397 243.391 379.536 243.023 380.594 242.585V241.78C380.18 241.964 379.766 242.125 379.329 242.275V239.665H380.594V238.871H379.329V236.145H380.732V235.363H377.063V236.145H378.478V238.871H377.224ZM391.703 238.882C392.117 240.274 392.933 241.516 394.152 242.608C393.152 243.345 391.91 243.977 390.438 244.483L390.898 245.185C392.439 244.632 393.75 243.954 394.808 243.137C395.808 243.897 397.05 244.587 398.546 245.185L398.994 244.46C397.591 243.931 396.395 243.321 395.406 242.631C396.567 241.573 397.373 240.309 397.81 238.837V238.101H390.887V236.157C393.589 236.088 396.027 235.846 398.212 235.433L397.821 234.72C395.521 235.168 392.933 235.41 390.058 235.444V238.998C389.99 241.344 389.483 243.172 388.541 244.506L389.127 245.115C390.219 243.597 390.806 241.55 390.887 238.998V238.882H391.703ZM394.75 242.125C393.635 241.183 392.876 240.101 392.485 238.882H396.97C396.544 240.113 395.808 241.194 394.75 242.125ZM404.629 235.237V237.491H406.779V238.215H403.997V238.928H410.368V238.215H407.584V237.491H409.758V235.237H407.584V234.593H406.779V235.237H404.629ZM409.034 236.835H407.584V235.904H409.034V236.835ZM406.779 236.835H405.353V235.904H406.779V236.835ZM409.62 239.688H404.652V243.103H405.423V240.377H408.849V243.103H409.62V239.688ZM407.987 243.149 407.573 243.747C408.401 244.092 409.217 244.564 410.011 245.161L410.459 244.471C409.712 243.942 408.884 243.506 407.987 243.149ZM406.688 240.826V241.953C406.664 242.608 406.446 243.149 406.043 243.563C405.595 243.954 404.813 244.276 403.697 244.506L404.146 245.208C405.308 244.931 406.147 244.541 406.653 244.058C407.182 243.529 407.458 242.827 407.493 241.953V240.826H406.688ZM401.651 237.319H403.123C402.904 237.756 402.674 238.147 402.421 238.492L403.019 238.963C403.375 238.48 403.697 237.893 403.997 237.203V236.56H401.88C402.019 236.019 402.145 235.444 402.248 234.823L401.443 234.685C401.168 236.525 400.661 237.986 399.902 239.066L400.42 239.699C400.914 239.055 401.329 238.262 401.651 237.319ZM401.593 238.825V243.736C401.593 243.942 401.501 244.092 401.329 244.196L401.662 244.897C402.548 244.541 403.329 244.081 403.997 243.529L403.847 242.758C403.353 243.207 402.87 243.563 402.387 243.827V238.825H401.593Z" fill="#77829A"/>
<path d="M436.0 209V223" stroke="#4D6BFE" stroke-width="1.25" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 59 KiB

+30 -7
View File
@@ -1,12 +1,35 @@
<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="15.5" cy="15.5" r="8.5" fill="url(#a)" />
<circle cx="15.5" cy="15.5" r="5" fill="#FFFFFF" />
<path d="M13.2 15.5L14.9 17.2L18.2 13.9" stroke="#145AF3" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" />
<path d="M22 22L29 29" stroke="#145AF3" stroke-width="3.2" stroke-linecap="round" />
<!--
Computer Use plugin icon.
Adapted from Lucide "mouse-pointer-click" (https://lucide.dev/icons/mouse-pointer-click).
Changes: solid-filled pointer, project palette, 36x36 canvas.
ISC License
Copyright (c) 2026 Lucide Icons and Contributors
https://github.com/lucide-icons/lucide/blob/main/LICENSE
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-->
<g transform="translate(4.036 4.036) scale(1.2201)">
<path d="M9.037 9.69a.498.498 0 0 1 .653-.653l11 4.5a.5.5 0 0 1-.074.949l-4.349 1.041a1 1 0 0 0-.74.739l-1.04 4.35a.5.5 0 0 1-.95.074z" fill="url(#g)" stroke="url(#g)" stroke-width="2" stroke-linejoin="round" />
<path d="M14 4.1 12 6" stroke="#51CFDB" stroke-width="2" stroke-linecap="round" />
<path d="m5.1 8-2.9-.8" stroke="#51CFDB" stroke-width="2" stroke-linecap="round" />
<path d="m6 12-1.9 2" stroke="#51CFDB" stroke-width="2" stroke-linecap="round" />
<path d="M7.2 2.2 8 5.1" stroke="#51CFDB" stroke-width="2" stroke-linecap="round" />
</g>
<defs>
<linearGradient id="a" x1="7" y1="7" x2="24" y2="24" gradientUnits="userSpaceOnUse">
<stop stop-color="#7CB7FF" />
<stop offset="1" stop-color="#45D9E7" />
<linearGradient id="g" x1="9" y1="9" x2="21" y2="21" gradientUnits="userSpaceOnUse">
<stop stop-color="#86B8F5" />
<stop offset="1" stop-color="#5269E1" />
</linearGradient>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 642 B

After

Width:  |  Height:  |  Size: 2.0 KiB

@@ -1,6 +1,7 @@
{
"meta": {
"title": "Computer Use",
"description": "Currently supports macOS; Windows support is in development. Loads Computer Use for existing and new PTC sessions. Switch to PTC mode and grant Accessibility and Screen Recording permissions to use it."
"description": "Currently supports macOS; Windows support is in development. Loads Computer Use for existing and new PTC sessions. Switch to PTC mode and grant Accessibility and Screen Recording permissions to use it.",
"detail": "docs/DETAIL.md"
}
}
@@ -1,6 +1,7 @@
{
"meta": {
"title": "Computer Use",
"description": "目前仅支持 macOS,Windows 支持正在开发中。为已有及新建 PTC 会话加载 Computer Use。请切换到 PTC 模式来使用,并授予辅助功能和屏幕录制权限。"
"description": "目前仅支持 macOS,Windows 支持正在开发中。为已有及新建 PTC 会话加载 Computer Use。请切换到 PTC 模式来使用,并授予辅助功能和屏幕录制权限。",
"detail": "docs/DETAIL.zh.md"
}
}
@@ -27,6 +27,7 @@
"files": [
"icon.svg",
"locale/*.json",
"docs",
"lib/index.js",
"cordis.patch.yml",
"lib/types/**/*.d.ts"
@@ -9,14 +9,14 @@
en: d1c47cc0dd1ea81c
zh: a0ff6438eb9ccbf4
/deepseek-ai-dsh-experimental-ralph-bundle/summary:
en: 2d0d6090157ea5ec
zh: 55c9669c4bf44cb9
en: 11a7f36c084f2b46
zh: e299c5cb709bbbaa
/deepseek-ai-dsh-experimental-ralph-bundle/table-of-contents:
en: d152484eb41ac6b4
zh: 988e839059414d27
/deepseek-ai-dsh-experimental-ralph-bundle/use-this-package:
en: bb91c59b7a474054
zh: 2ae97c4106a71c74
en: e423bf3c3a338f6f
zh: 2cfa3e08fe8e36b4
/deepseek-ai-dsh-experimental-ralph-bundle/understand-the-implementation:
en: c796a041544eabd2
zh: 25e5d4f4965e3f30
+3 -3
View File
@@ -9,7 +9,7 @@ English | [中文](README.zh.md)
## Summary
Add the experimental Ralph tool to every Agent as a global tool for human-requested repeated work with fresh child agents. It ships switched off in Web and Desktop. Select it in Plugins to enable it.
Add the experimental Ralph tool to every Agent as a global tool for human-requested repeated work with fresh child agents. It ships switched off in Web and Desktop and is hidden from the default plugin lists.
## Table of Contents
@@ -25,9 +25,9 @@ Add the experimental Ralph tool to every Agent as a global tool for human-reques
<a id="use-this-package"></a>
## Use this package
In Web or Desktop, open Plugins and enable **Ralph loops** in Official. Switch it off to remove its profile layer.
In **Plugins → Add plugin**, enter `@deepseek-ai/dsh-experimental-ralph-bundle`, choose **Install**, then **Enable now**. DSH uses the shipped copy without downloading another one. Alternatively, add the name to `dsh.profile.bundles` in the target [profile](../../boot/app-boot/README.md#profiles)'s `package.json`. HMR applies the selection live when enabled; otherwise restart the application. The enabled bundle appears in Plugins; switching it off removes its profile layer and hides its card again. A separately installed profile dependency remains listed while disabled.
Enabling or disabling the bundle registers or removes its global tools in the running Host, so every Agent sees the change on its next request, in every preset including minimal.
With HMR enabled, enabling or disabling the bundle registers or removes its global tools in the running Host, so every Agent sees the change on its next request, in every preset including minimal.
-----
@@ -9,7 +9,7 @@ kind: "package-bundle"
## 概述
为所有智能体添加实验性 Ralph 全局工具,使用新的子智能体执行用户要求的循环工作。 Web 和 Desktop 随附此功能,默认关闭。在插件页选择它即可启用。
为所有智能体添加实验性 Ralph 全局工具,使用新的子智能体执行用户要求的循环工作。Web 和 Desktop 随附此功能,默认关闭,且不在默认插件列表中展示。
## 目录
@@ -25,9 +25,9 @@ kind: "package-bundle"
<a id="use-this-package"></a>
## 使用此包
在 Web 或 Desktop 中打开插件页,在官方分组启用 **Ralph 循环**。关闭后移除其配置层。
在**插件 → 添加插件**中输入 `@deepseek-ai/dsh-experimental-ralph-bundle`,选择**安装**,再选择**立即启用**。DSH 使用随包提供的版本,无需再次下载。也可在目标 [profile](../../boot/app-boot/README.zh.md#profiles) 的 `package.json` 中,将包名加入 `dsh.profile.bundles`。开启 HMR 时选择即时生效;否则需重启应用。启用后的组合包会出现在插件页;关闭时移除其配置层,并再次隐藏卡片。另行安装到 profile 的依赖在关闭后仍会列出。
启用或关闭组合包会在运行中的 Host 注册或移除其全局工具,因此所有预设(包括 minimal)中的每个智能体都会在下一次请求时看到变化。
开启 HMR 时,启用或关闭组合包会在运行中的 Host 注册或移除其全局工具,因此所有预设(包括 minimal)中的每个智能体都会在下一次请求时看到变化。
-----
@@ -35,7 +35,8 @@
"license": "MIT",
"dsh": {
"bundle": {
"patch": "./cordis.patch.yml"
"patch": "./cordis.patch.yml",
"listedByDefault": false
}
},
"dependencies": {
@@ -9,14 +9,14 @@
en: f4f9c83d1dd36580
zh: f34e5a1c0df5e469
/deepseek-ai-dsh-experimental-session-search/summary:
en: 3461520fc9a6b225
zh: aeedca620262e8ae
en: b97bf7f544470659
zh: ca0cc17a5806963f
/deepseek-ai-dsh-experimental-session-search/table-of-contents:
en: d152484eb41ac6b4
zh: 988e839059414d27
/deepseek-ai-dsh-experimental-session-search/use-this-package:
en: 29e4de34bed1ed2e
zh: 539638a62c0a99c3
en: 5ab81c3861e28980
zh: da1a615153b4ea4b
/deepseek-ai-dsh-experimental-session-search/understand-the-implementation:
en: 7c40cb34ffc89ed4
zh: ce6ff516434ba582
@@ -9,7 +9,7 @@ English | [中文](README.zh.md)
## Summary
Give every Agent five experimental read-only global tools to search earlier sessions. The content index opens on the first search and is shared by all Agents. The bundle ships switched off in Web and Desktop. Select it in Plugins to enable it.
Give every Agent five experimental read-only global tools to search earlier sessions. The content index opens on the first search and is shared by all Agents. The bundle ships switched off in Web and Desktop and is hidden from the default plugin lists.
## Table of Contents
@@ -25,9 +25,9 @@ Give every Agent five experimental read-only global tools to search earlier sess
<a id="use-this-package"></a>
## Use this package
In Web or Desktop, open Plugins and enable **Session search** in Official. Switch it off to remove its profile layer.
In **Plugins → Add plugin**, enter `@deepseek-ai/dsh-experimental-session-search`, choose **Install**, then **Enable now**. DSH uses the shipped copy without downloading another one. Alternatively, add the name to `dsh.profile.bundles` in the target [profile](../../boot/app-boot/README.md#profiles)'s `package.json`. HMR applies the selection live when enabled; otherwise restart the application. The enabled bundle appears in Plugins; switching it off removes its profile layer and hides its card again. A separately installed profile dependency remains listed while disabled.
Enabling or disabling the bundle registers or removes its global tools in the running Host, so every Agent sees the change on its next request, in every preset including minimal.
With HMR enabled, enabling or disabling the bundle registers or removes its global tools in the running Host, so every Agent sees the change on its next request, in every preset including minimal.
This bundle enables Agent search tools. Sidebar search keeps its existing behavior.
@@ -9,7 +9,7 @@ kind: "package-bundle"
## 概述
为所有智能体提供五个实验性只读全局工具,用于搜索历史会话。内容索引在首次搜索时打开,由所有智能体共享。Web 和 Desktop 随附此配置包,默认关闭。在插件页选择它即可启用。
为所有智能体提供五个实验性只读全局工具,用于搜索历史会话。内容索引在首次搜索时打开,由所有智能体共享。Web 和 Desktop 随附此配置包,默认关闭,且不在默认插件列表中展示。
## 目录
@@ -25,9 +25,9 @@ kind: "package-bundle"
<a id="use-this-package"></a>
## 使用此包
在 Web 或 Desktop 中打开插件页,在官方分组启用 **会话搜索**。关闭后移除其配置层。
在**插件 → 添加插件**中输入 `@deepseek-ai/dsh-experimental-session-search`,选择**安装**,再选择**立即启用**。DSH 使用随包提供的版本,无需再次下载。也可在目标 [profile](../../boot/app-boot/README.zh.md#profiles) 的 `package.json` 中,将包名加入 `dsh.profile.bundles`。开启 HMR 时选择即时生效;否则需重启应用。启用后的组合包会出现在插件页;关闭时移除其配置层,并再次隐藏卡片。另行安装到 profile 的依赖在关闭后仍会列出。
启用或关闭组合包会在运行中的 Host 注册或移除其全局工具,因此所有预设(包括 minimal)中的每个智能体都会在下一次请求时看到变化。
开启 HMR 时,启用或关闭组合包会在运行中的 Host 注册或移除其全局工具,因此所有预设(包括 minimal)中的每个智能体都会在下一次请求时看到变化。
此配置包启用智能体的搜索工具。侧边栏搜索保留现有行为。
@@ -35,7 +35,8 @@
"license": "MIT",
"dsh": {
"bundle": {
"patch": "./cordis.patch.yml"
"patch": "./cordis.patch.yml",
"listedByDefault": false
}
},
"dependencies": {
@@ -5139,7 +5139,7 @@ export const TYPE_API: readonly TypeApiEntry[] = [
},
{
name: 'BundleInfo',
declaration: 'export interface BundleInfo {\n name: string;\n official: boolean;\n availability: \'installation\' | \'profile\' | \'missing\';\n installTarget?: {\n spec: string;\n version: string;\n };\n version?: string;\n meta?: PluginLocalizedMeta;\n description?: string;\n enabled: boolean;\n installed: boolean;\n source?: string;\n optional: boolean;\n removable: boolean;\n updatable: boolean;\n readOnlyReason?: ReadOnlyReason;\n error?: ManagementError;\n rows: BundleRowInfo[];\n overrides: string[];\n}',
declaration: 'export interface BundleInfo {\n name: string;\n official: boolean;\n availability: \'installation\' | \'profile\' | \'missing\';\n installTarget?: {\n spec: string;\n version: string;\n };\n version?: string;\n meta?: PluginLocalizedMeta;\n description?: string;\n listedByDefault?: boolean;\n enabled: boolean;\n installed: boolean;\n source?: string;\n optional: boolean;\n removable: boolean;\n updatable: boolean;\n readOnlyReason?: ReadOnlyReason;\n error?: ManagementError;\n rows: BundleRowInfo[];\n overrides: string[];\n}',
},
{
name: 'BundleRowInfo',
@@ -15,8 +15,8 @@
en: d152484eb41ac6b4
zh: 1db86285abf6c499
/deepseek-ai-dsh-package-manifest/use-this-package:
en: 2b4a2b115906bad1
zh: df5642f9ed0741ff
en: ac9b9f0adac9bbfa
zh: 0c6a9548836e756e
/deepseek-ai-dsh-package-manifest/understand-the-implementation:
en: 41ec449dee927f04
zh: ec1b583bd9025d84
+2
View File
@@ -45,6 +45,8 @@ const manifest: DshPackageManifest = {
`DshPackageManifest` describes the package.json fields used by DSH, with required `name` and `version`; it includes dependency, peer, and optional dependency declarations but is not an exhaustive npm schema. Local profile readers use `Partial<DshPackageManifest>` because profiles need no published version. `DshManifest` describes only public author fields under `dsh`. `DshBundleManifest.patch` is one patch file path or an ordered list of them, each relative to the package root; the launcher applies a list in order as one bundle layer. TypeScript checks the example and erases `import type`; these interfaces do not parse JSON or write a file.
`DshBundleManifest.listedByDefault` is an optional boolean, defaulting to true. False hides an installation-carried bundle from the default GUI lists until the profile enables or installs it; the management inventory remains complete. [Plugin Manager](../../client/ui-plugin-manager/README.md#use-this-package) owns the display and explicit activation paths.
The following metadata fields are optional. Omitting them leaves the format version or compatible host versions undeclared; readers do not infer defaults.
| Field | Meaning |
@@ -45,6 +45,8 @@ const manifest: DshPackageManifest = {
`DshPackageManifest` 描述 DSH 使用的 package.json 字段,其中 `name` 和 `version` 必填;它包含普通依赖、peer 依赖及可选依赖声明,未覆盖 npm 的所有字段。本地 profile 读取方使用 `Partial<DshPackageManifest>`,因为 profile 无需发布版本。`DshManifest` 仅描述 `dsh` 下的公共作者字段。`DshBundleManifest.patch` 是一个 patch 文件路径,或一个有序的路径列表,均相对于包根目录;launcher 按列表顺序把它们作为同一个组合包层应用。TypeScript 检查示例并删除 `import type`;这些接口不解析 JSON,也不写入文件。
`DshBundleManifest.listedByDefault` 为可选布尔值,默认为 true。false 使随安装提供的组合包在 profile 启用或安装它之前不出现在默认 GUI 列表中;管理清单仍保持完整。[插件管理页](../../client/ui-plugin-manager/README.zh.md#use-this-package)管理展示与显式启用入口。
以下元数据字段均可选。省略时,格式版本或兼容的宿主版本保持未声明状态;读取方不推断默认值。
| 字段 | 含义 |
@@ -73,6 +73,8 @@ export interface DshBundleManifest {
platforms?: string[]
/** One patch file path, or an ordered list applied in sequence, each relative to the declaring package root. */
patch: string | string[]
/** Show the bundle in GUI lists before the profile enables or installs it; omission means true. */
listedByDefault?: boolean
}
/** The bundle composition declared by a profile directory. */