@dbx-tools/appkit-mastra 0.9.95 → 0.9.99

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -100,7 +100,7 @@ Benefits of importing the package:
100
100
 
101
101
  - `mastra()` registers a full AppKit plugin named `mastra`.
102
102
  - `agents.createAgent()` keeps agent definitions typed and applies the default
103
- Databricks workspace/skill mounts and Databricks Sandbox command execution.
103
+ Databricks workspace skill paths and Monty command execution.
104
104
  - `agents.tool()` lets the same AppKit-shaped tool body work in this Mastra
105
105
  plugin.
106
106
  - `genie.GENIE_INSTRUCTIONS` and `plugins.genie.toolkit()` give agents a
@@ -269,21 +269,122 @@ and memory configs.
269
269
  ## Workspace Skills
270
270
 
271
271
  Every `agents.createAgent()` gets a default Mastra `Workspace` from
272
- `workspaces.createWorkspace()`. It mounts Databricks Workspace files through the
273
- current OBO user's `WorkspaceClient`, so Mastra can discover Assistant-style
274
- `SKILL.md` files at request time.
272
+ `workspaces.databricksWorkspace()`. Most apps do not need workspace
273
+ configuration: the default scans `/Workspace/.assistant/skills` and the current
274
+ user's `~/.assistant/skills` path for `SKILL.md` files.
275
+
276
+ Pass paths directly when an agent needs a different filesystem scope:
277
+
278
+ ```ts
279
+ const analyst = agents.createAgent({
280
+ instructions: "Use the project files and skills when relevant.",
281
+ workspace: workspaces.databricksWorkspace({
282
+ assistantPaths: false,
283
+ paths: ["~/project"],
284
+ }),
285
+ });
286
+ ```
287
+
288
+ Paths mount at the same absolute path that they identify. `~` resolves to the
289
+ current user's Databricks workspace home, so `~/project` exposes only that
290
+ subtree. A path that is missing or inaccessible for the current request is
291
+ skipped. Production Databricks mounts require a forwarded token with
292
+ `workspace`, `workspace.workspace`, or `all-apis` scope.
293
+
294
+ Use an options object only when a path needs additional behavior:
295
+
296
+ ```ts
297
+ const workspace = workspaces.databricksWorkspace({
298
+ assistantPaths: false,
299
+ paths: [
300
+ {
301
+ path: "/Workspace/Shared/runbooks",
302
+ skills: ["skills"],
303
+ writable: true,
304
+ createRoot: false,
305
+ },
306
+ {
307
+ path: "/Workspace/Shared/templates",
308
+ readable: false,
309
+ },
310
+ ({ requestContext }) =>
311
+ requestContext.get("team") === "platform" ? "~/platform" : false,
312
+ ],
313
+ });
314
+ ```
315
+
316
+ `readable: false` keeps a mount available to file tools without scanning it for
317
+ skills. `skills` contains relative roots within that path. `writable` controls
318
+ whether the filesystem attempts mutations; Databricks permissions still decide
319
+ whether an operation succeeds. `mount` can expose the path at a different
320
+ Mastra path when required.
321
+
322
+ `/tmp` is opt-in. An explicit `/tmp` path maps to a stable user-scoped directory
323
+ under the host operating system's ephemeral temp location. `/tmp/project` maps
324
+ to a child directory and exposes only `/tmp/project`, not the rest of `/tmp`.
325
+ The location can survive process restarts while the host retains its temp
326
+ storage, but it is not durable storage.
327
+
328
+ The shortcut returns a native Mastra workspace and accepts native `mounts`,
329
+ `tools`, and workspace options. Use the config helper when composing the result
330
+ with another Mastra provider:
331
+
332
+ ```ts
333
+ import { Workspace } from "@mastra/core/workspace";
334
+
335
+ export const workspace = new Workspace({
336
+ ...workspaces.databricksWorkspaceConfig({
337
+ assistantPaths: false,
338
+ paths: ["~/project", "/tmp/project"],
339
+ }),
340
+ sandbox: mySandbox,
341
+ });
342
+ ```
275
343
 
276
344
  Mastra's native `WorkspaceSkills` owns discovery, indexing, refreshes, and lazy
277
345
  reads of references, scripts, templates, and assets. dbx-tools does not keep a
278
346
  second skill catalogue or skill-specific cache.
279
347
 
280
348
  When the app registers `filesCache()` from `@dbx-tools/appkit/files-cache`,
281
- auto-created workspaces retain one filesystem source per user and set of actual
282
- mount paths. Page refreshes and later turns reuse that source, allowing Mastra
283
- to retain its native parsed catalogue while the files cache handles repeated
284
- filesystem metadata operations. Each operation resolves the active request's
285
- OBO client, so the retained source does not retain an old token. Explicit
286
- caller-owned workspaces remain unchanged.
349
+ default workspaces and workspaces created with `databricksWorkspace()` retain
350
+ one filesystem source per user and set of actual mount paths. Page refreshes
351
+ and later turns reuse that source, allowing Mastra to retain its native parsed
352
+ catalogue while the files cache handles repeated filesystem metadata
353
+ operations. Each operation resolves the active request's OBO client, so the
354
+ retained source does not retain an old token. Other caller-owned Mastra
355
+ workspaces remain unchanged.
356
+
357
+ ```ts
358
+ import { filesCache } from "@dbx-tools/appkit/files-cache";
359
+
360
+ await createApp({
361
+ plugins: [server(), filesCache(), mastra({ agents: { analyst } })],
362
+ });
363
+ ```
364
+
365
+ The plugin is detected from the AppKit plugin context. If it is not registered,
366
+ filesystem caching is disabled. When it is registered, its app-lifetime
367
+ `FilesCacheManager` is the single owner of the process-local, user-scoped LRU.
368
+ Filesystem values do not use AppKit's `CacheManager`: that cache can write
369
+ through to Lakebase, while file reads need a local-only fast path. Existing
370
+ Lakebase-backed AppKit caching remains unchanged.
371
+
372
+ The default file cache stores `exists`, `readdir`, and `stat` results for every
373
+ mounted Databricks path. `readFile` is cached only under configured skill roots,
374
+ so ordinary file contents remain live. Directory listings therefore remain
375
+ cached. Set `cache: false` on `databricksWorkspace()` to disable this behavior,
376
+ `true` to select the defaults explicitly, or provide operation/path filters.
377
+ Explicit filters replace the defaults and are ORed:
378
+
379
+ ```ts
380
+ const workspace = workspaces.databricksWorkspace({
381
+ paths: ["~/project"],
382
+ cache: [
383
+ { operations: ["exists", "readdir", "stat"], paths: "**" },
384
+ { operations: "readFile", paths: "~/project/skills/**" },
385
+ ],
386
+ });
387
+ ```
287
388
 
288
389
  Mastra exposes its native skill search and loading tools. Save or update a
289
390
  skill with the native workspace file tools by writing
@@ -292,18 +393,17 @@ skill search processor, or pass `{ topK, minScore, ttlMs }` to tune it.
292
393
 
293
394
  Workspace access policy stays on Mastra's native `Workspace.tools` owner. By
294
395
  default, mounted files are readable without approval. Write, edit, AST edit,
295
- delete, and mkdir run without approval only inside
296
- `/Workspace/Users/<email>` for the authenticated user. Mutations under
297
- organization mounts, `/tmp`, or any other path require approval.
298
- `workspaceTools` accepts Mastra's complete `WorkspaceToolsConfig`, so global or
299
- per-tool settings can change approval, enablement, read-before-write, hooks,
300
- and output limits:
396
+ delete, and mkdir run without approval inside the current user's Databricks
397
+ workspace home and under explicit `/tmp` mounts. Mutations elsewhere require
398
+ approval. Pass native Mastra tool configuration directly to the workspace
399
+ shortcut:
301
400
 
302
401
  ```ts
303
402
  import { WORKSPACE_TOOLS } from "@mastra/core/workspace";
304
403
 
305
- mastra({
306
- workspaceTools: {
404
+ const workspace = workspaces.databricksWorkspace({
405
+ paths: ["~/project"],
406
+ tools: {
307
407
  requireApproval: false,
308
408
  [WORKSPACE_TOOLS.FILESYSTEM.WRITE_FILE]: {
309
409
  requireApproval: true,
@@ -317,77 +417,12 @@ File-tool and sandbox-command policies are independent. Disable
317
417
  `WORKSPACE_TOOLS.SANDBOX.EXECUTE_COMMAND` when an agent must not bypass file
318
418
  approvals by writing through shell commands.
319
419
 
320
- Locations are a named map (`skillFolders`), so an app refers to a tree by name
321
- rather than repeating a path. Databricks paths mount at their actual workspace
322
- location and carry relative `skills` roots plus their own policy: `readable`
323
- (scanned for `SKILL.md`, default `true`) and `writable` (default `true` for
324
- `/Workspace` roots, `false` elsewhere).
325
- `DEFAULT_SKILL_FOLDERS` supplies these:
326
-
327
- | Name | Mount | Skill root | Readable | Writable |
328
- | --------------------- | ------------------------------------ | ------------------- | -------- | -------- |
329
- | `organization-skills` | `/Workspace/.assistant` | `skills` | yes | yes |
330
- | `personal-skills` | `/Workspace/Users/<email>` | `.assistant/skills` | yes | yes |
331
-
332
- Every workspace also has an isolated local scratch filesystem mounted at
333
- `/tmp`. Organization and personal mounts are probed independently on first
334
- load. A missing or inaccessible Databricks path is skipped, so `/tmp` and any
335
- accessible mounts remain available.
336
-
337
- Organization writes are enabled at the filesystem layer, require approval, and
338
- still depend on the caller's Databricks permissions. The existing
339
- `/Workspace/.assistant` root is never created automatically.
340
-
341
- Skill roots are expanded to concrete skill directories before Mastra scans
342
- them. The first root wins duplicate directory names, so organization skills
343
- override same-named personal skills while unique personal skills remain
344
- available.
345
-
346
- A consuming library merges over that map: a matching name overrides the
347
- default, `false` disables it, and any other name adds a location. A folder
348
- points at a Databricks `path` (a literal, or a function resolving one per
349
- request) or supplies a ready `filesystem` for anything the OBO client cannot
350
- reach.
351
-
352
- ```ts
353
- const agent = agents.createAgent({
354
- instructions: "Use mounted workspace skills when relevant.",
355
- workspace: workspaces.createWorkspace({
356
- skillFolders: {
357
- // Point an existing name somewhere else.
358
- "organization-skills": {
359
- path: "/Workspace/Shared/.assistant",
360
- skills: ["skills"],
361
- },
362
- // Drop a default entirely.
363
- "personal-skills": false,
364
- // Add an app-owned tree the agent may write back to.
365
- runbooks: {
366
- path: "/Workspace/Shared/runbooks",
367
- skills: ["skills"],
368
- writable: true,
369
- },
370
- // Mount for file tools without adding it to skill discovery.
371
- templates: { path: "/Workspace/Shared/templates", readable: false },
372
- // Any Mastra filesystem works, including per-request ones.
373
- volume: { filesystem: ({ requestContext }) => volumeFor(requestContext) },
374
- },
375
- mounts: [
376
- async () => ({
377
- mounts: { "/reference": myFilesystem },
378
- skillPaths: ["/reference/skills"],
379
- }),
380
- ],
381
- }),
382
- });
383
- ```
384
-
385
- A folder whose location resolves to `undefined` is skipped for that request,
386
- which is how `personal-skills` drops out when no user email is stamped.
387
- `assistantSkills: false` starts from an empty map, leaving only the
388
- `skillFolders` given. Production workspace mounts require a forwarded token
389
- with `workspace`, `workspace.workspace`, or `all-apis` scope. Development mode
390
- skips that gate for local iteration.
420
+ Databricks mounts verify read access with an uncached root status request before
421
+ the first cached read can succeed. The first mutation is always sent to
422
+ Databricks and marks write access only after it succeeds; failed checks are not
423
+ retained. This keeps a retained filesystem source from treating an old cache
424
+ entry as proof that the current user can still access the path, without creating
425
+ temporary write-probe files.
391
426
 
392
427
  ## Workspace Sandbox
393
428
 
@@ -397,7 +432,8 @@ Monty's native subprocess worker is preferred because Bun's Linux
397
432
  `worker_threads` support cannot reliably host the WASM worker. The WASM entry is
398
433
  loaded only when native import fails. Databricks App staging declares the Linux
399
434
  native package directly so deployment does not depend on transitive optional
400
- dependency installation.
435
+ dependency installation. The shared pool starts with one worker and can scale
436
+ to `max(4, available processors * 2)` workers per app process.
401
437
 
402
438
  Opt into the Beta
403
439
  [Databricks Sandbox](https://docs.databricks.com/aws/en/compute/serverless/sandbox)
@@ -458,17 +494,15 @@ mastra({ agents: analyst, sandbox: "databricks" });
458
494
 
459
495
  const localAgent = agents.createAgent({
460
496
  instructions: "Run only trusted local commands.",
461
- workspace: workspaces.createWorkspace({
497
+ workspace: workspaces.databricksWorkspace({
462
498
  sandbox: myMastraSandbox,
463
499
  }),
464
500
  });
465
501
  ```
466
502
 
467
503
  An explicit agent `workspace` always wins over plugin-level `sandbox` config, so
468
- providers never run in parallel accidentally. `workspaces.createWorkspace()`
469
- also accepts a custom resolver for per-request provider selection. A per-agent
470
- workspace resolver returning `undefined` explicitly disables the workspace for
471
- that agent.
504
+ providers never run in parallel accidentally. A per-agent workspace resolver
505
+ returning `undefined` explicitly disables the workspace for that agent.
472
506
 
473
507
  ## Remote Skills
474
508
 
@@ -499,7 +533,7 @@ one that was in the workspace all along. Resolution per source:
499
533
  staging dir. A non-URL source (e.g. bare `owner/repo`) without the `skills`
500
534
  package installed cannot be resolved this way and fails.
501
535
 
502
- The default destination is the Databricks organization skills tree
536
+ The default destination is the shared Databricks Assistant skills tree
503
537
  (`/Workspace/.assistant/skills`), so provisioned skills persist across restarts and are picked up by
504
538
  the built-in Assistant-skills mount. Pass `userEmail` to target that user's
505
539
  `/Workspace/Users/<email>/.assistant/skills` instead, or `databricksBasePath` for an
@@ -1142,13 +1176,10 @@ client that talks to these routes.
1142
1176
  adapter.
1143
1177
  - `montySandbox` - Python-only Pydantic Monty fallback using Node subprocess
1144
1178
  workers.
1145
- - `workspaces` / `filesystems` - Mastra workspace creation with a default
1146
- Databricks sandbox plus named
1147
- `skillFolders` (defaults `organization-skills` / `personal-skills`, overridable
1148
- by consumers); `filesystems(fs)` wraps any `@dbx-tools/shared-fs`
1149
- `FileSystem` (including `@dbx-tools/databricks` / `@dbx-tools/fs`) as a
1150
- Mastra mount, with `scratchFilesystem` (fresh `tmpFS` + random id) when no
1151
- other mount resolves.
1179
+ - `workspaces` / `filesystems` - native Mastra workspace configuration from
1180
+ Databricks paths, opt-in user-scoped temp paths, and caller-supplied mounts;
1181
+ `filesystems(fs)` wraps any `@dbx-tools/shared-fs` `FileSystem` (including
1182
+ `@dbx-tools/databricks` / `@dbx-tools/fs`) as a Mastra mount.
1152
1183
  - `remote-skills` - startup provisioning of remote `SKILL.md` sources into the
1153
1184
  Databricks Assistant skills tree (or a local temp dir): the `"aitools"`
1154
1185
  constant reads Databricks' own skill repo directly, and any other source goes
package/index.ts CHANGED
@@ -3,7 +3,7 @@
3
3
  // Hand edits are overwritten on the next watch; this file is read-only.
4
4
 
5
5
  export const PACKAGE_IDENTIFIER = "@dbx-tools/appkit-mastra";
6
- export const PACKAGE_VERSION = "0.9.95";
6
+ export const PACKAGE_VERSION = "0.9.99";
7
7
  export * as agents from "./src/agents.ts";
8
8
  export * as chart from "./src/chart.ts";
9
9
  export * as chat from "./src/chat.ts";
@@ -82,6 +82,6 @@ export { TRACE_IO_LIMIT, MLFLOW_SPAN_INPUTS_ATTR, MLFLOW_SPAN_OUTPUTS_ATTR, CHAT
82
82
  export type { ChatTurnTelemetryOptions, ChatTraceTagValue } from "./src/telemetry.ts";
83
83
  export { MLFLOW_TRACE_TAG_PREFIX, MLFLOW_AGENT_TAG, MLFLOW_GENIE_TAG, MLFLOW_OBO_AUTH_TAG, MLFLOW_SP_AUTH_TAG, MLFLOW_LOCAL_TAG, MLFLOW_AGENT_TAG_ATTR, MLFLOW_GENIE_TAG_ATTR, APPKIT_AGENT_TRACE_ROOT_ATTR, MLFLOW_OBO_AUTH_TAG_ATTR, MLFLOW_SP_AUTH_TAG_ATTR, MLFLOW_LOCAL_TAG_ATTR } from "./src/trace-attributes.ts";
84
84
  export type { SchemaIssues } from "./src/validation.ts";
85
- export { DEFAULT_SKILL_FOLDERS } from "./src/workspaces.ts";
86
- export type { WorkspaceMountContext, SkillFolderValue, SkillFolderOptions, WorkspaceMountContribution, WorkspaceMountResolver, DefaultSkillFolderName, WorkspaceSandboxSelection, CreateWorkspaceOptions } from "./src/workspaces.ts";
85
+ export { DEFAULT_DATABRICKS_WORKSPACE_PATHS } from "./src/workspaces.ts";
86
+ export type { DatabricksWorkspaceContext, DatabricksWorkspacePathOptions, DatabricksWorkspacePath, DatabricksWorkspacePathValue, DatabricksWorkspaceCacheFilter, DatabricksWorkspaceCache, WorkspaceSandboxSelection, DatabricksWorkspaceOptions } from "./src/workspaces.ts";
87
87
  export * from "./exports.ts";
package/lib/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export declare const PACKAGE_IDENTIFIER = "@dbx-tools/appkit-mastra";
2
- export declare const PACKAGE_VERSION = "0.9.95";
2
+ export declare const PACKAGE_VERSION = "0.9.99";
3
3
  export * as agents from "./src/agents.ts";
4
4
  export * as chart from "./src/chart.ts";
5
5
  export * as chat from "./src/chat.ts";
@@ -78,6 +78,6 @@ export { TRACE_IO_LIMIT, MLFLOW_SPAN_INPUTS_ATTR, MLFLOW_SPAN_OUTPUTS_ATTR, CHAT
78
78
  export type { ChatTurnTelemetryOptions, ChatTraceTagValue } from "./src/telemetry.ts";
79
79
  export { MLFLOW_TRACE_TAG_PREFIX, MLFLOW_AGENT_TAG, MLFLOW_GENIE_TAG, MLFLOW_OBO_AUTH_TAG, MLFLOW_SP_AUTH_TAG, MLFLOW_LOCAL_TAG, MLFLOW_AGENT_TAG_ATTR, MLFLOW_GENIE_TAG_ATTR, APPKIT_AGENT_TRACE_ROOT_ATTR, MLFLOW_OBO_AUTH_TAG_ATTR, MLFLOW_SP_AUTH_TAG_ATTR, MLFLOW_LOCAL_TAG_ATTR } from "./src/trace-attributes.ts";
80
80
  export type { SchemaIssues } from "./src/validation.ts";
81
- export { DEFAULT_SKILL_FOLDERS } from "./src/workspaces.ts";
82
- export type { WorkspaceMountContext, SkillFolderValue, SkillFolderOptions, WorkspaceMountContribution, WorkspaceMountResolver, DefaultSkillFolderName, WorkspaceSandboxSelection, CreateWorkspaceOptions } from "./src/workspaces.ts";
81
+ export { DEFAULT_DATABRICKS_WORKSPACE_PATHS } from "./src/workspaces.ts";
82
+ export type { DatabricksWorkspaceContext, DatabricksWorkspacePathOptions, DatabricksWorkspacePath, DatabricksWorkspacePathValue, DatabricksWorkspaceCacheFilter, DatabricksWorkspaceCache, WorkspaceSandboxSelection, DatabricksWorkspaceOptions } from "./src/workspaces.ts";
83
83
  export * from "./exports.ts";
package/lib/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
  // Regenerated from the exporting modules in ./src.
3
3
  // Hand edits are overwritten on the next watch; this file is read-only.
4
4
  export const PACKAGE_IDENTIFIER = "@dbx-tools/appkit-mastra";
5
- export const PACKAGE_VERSION = "0.9.95";
5
+ export const PACKAGE_VERSION = "0.9.99";
6
6
  export * as agents from "./src/agents.js";
7
7
  export * as chart from "./src/chart.js";
8
8
  export * as chat from "./src/chat.js";
@@ -60,6 +60,6 @@ export { TYPOGRAPHY_RULE } from "./src/style.js";
60
60
  export { TITLE_INSTRUCTIONS } from "./src/summarize.js";
61
61
  export { TRACE_IO_LIMIT, MLFLOW_SPAN_INPUTS_ATTR, MLFLOW_SPAN_OUTPUTS_ATTR, CHAT_MESSAGES_ATTR, CHAT_RESPONSE_ATTR, CHAT_IDENTITY_ATTR, CHAT_GENIE_USED_ATTR, MLFLOW_SPAN_TYPE_ATTR, GEN_AI_OPERATION_NAME_ATTR, MLFLOW_USER_ATTR, MLFLOW_SESSION_ATTR, MLFLOW_SPAN_TYPE_AGENT, MLFLOW_SPAN_TYPE_GENIE } from "./src/telemetry.js";
62
62
  export { MLFLOW_TRACE_TAG_PREFIX, MLFLOW_AGENT_TAG, MLFLOW_GENIE_TAG, MLFLOW_OBO_AUTH_TAG, MLFLOW_SP_AUTH_TAG, MLFLOW_LOCAL_TAG, MLFLOW_AGENT_TAG_ATTR, MLFLOW_GENIE_TAG_ATTR, APPKIT_AGENT_TRACE_ROOT_ATTR, MLFLOW_OBO_AUTH_TAG_ATTR, MLFLOW_SP_AUTH_TAG_ATTR, MLFLOW_LOCAL_TAG_ATTR } from "./src/trace-attributes.js";
63
- export { DEFAULT_SKILL_FOLDERS } from "./src/workspaces.js";
63
+ export { DEFAULT_DATABRICKS_WORKSPACE_PATHS } from "./src/workspaces.js";
64
64
  export * from "./exports.js";
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRywwQkFBMEIsQ0FBQztBQUM3RCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLEtBQUssTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEtBQUssSUFBSSxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxRQUFRLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxLQUFLLFVBQVUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEtBQUssV0FBVyxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sS0FBSyxLQUFLLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxLQUFLLFFBQVEsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEtBQUssR0FBRyxNQUFNLGNBQWMsQ0FBQztBQUNwQyxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLEtBQUssTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEtBQUssWUFBWSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxhQUFhLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxLQUFLLFdBQVcsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxVQUFVLE1BQU0scUJBQXFCLENBQUM7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QU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXhELE9BQU8sRUFBRSxjQUFjLEVBQUUsdUJBQXVCLEVBQUUsd0JBQXdCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQUUscUJBQXFCLEVBQUUsMEJBQTBCLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsc0JBQXNCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVuVSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUUscUJBQXFCLEVBQUUsNEJBQTRCLEVBQUUsd0JBQXdCLEVBQUUsdUJBQXVCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV6VCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUU1RCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEdFTkVSQVRFRCBieSBwcm9qZW4gd2F0Y2ggLSBETyBOT1QgRURJVC5cbi8vIFJlZ2VuZXJhdGVkIGZyb20gdGhlIGV4cG9ydGluZyBtb2R1bGVzIGluIC4vc3JjLlxuLy8gSGFuZCBlZGl0cyBhcmUgb3ZlcndyaXR0ZW4gb24gdGhlIG5leHQgd2F0Y2g7IHRoaXMgZmlsZSBpcyByZWFkLW9ubHkuXG5cbmV4cG9ydCBjb25zdCBQQUNLQUdFX0lERU5USUZJRVIgPSBcIkBkYngtdG9vbHMvYXBwa2l0LW1hc3RyYVwiO1xuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfVkVSU0lPTiA9IFwiMC45Ljk1XCI7XG5leHBvcnQgKiBhcyBhZ2VudHMgZnJvbSBcIi4vc3JjL2FnZW50cy50c1wiO1xuZXhwb3J0ICogYXMgY2hhcnQgZnJvbSBcIi4vc3JjL2NoYXJ0LnRzXCI7XG5leHBvcnQgKiBhcyBjaGF0IGZyb20gXCIuL3NyYy9jaGF0LnRzXCI7XG5leHBvcnQgKiBhcyBjb25maWcgZnJvbSBcIi4vc3JjL2NvbmZpZy50c1wiO1xuZXhwb3J0ICogYXMgZGVmYXVsdHMgZnJvbSBcIi4vc3JjL2RlZmF1bHRzLnRzXCI7XG5leHBvcnQgKiBhcyBldmFsdWF0aW9uIGZyb20gXCIuL3NyYy9ldmFsdWF0aW9uLnRzXCI7XG5leHBvcnQgKiBhcyBmaWxlc3lzdGVtcyBmcm9tIFwiLi9zcmMvZmlsZXN5c3RlbXMudHNcIjtcbmV4cG9ydCAqIGFzIGdlbmllIGZyb20gXCIuL3NyYy9nZW5pZS50c1wiO1xuZXhwb3J0ICogYXMgaWRlbnRpdHkgZnJvbSBcIi4vc3JjL2lkZW50aXR5LnRzXCI7XG5leHBvcnQgKiBhcyBtY3AgZnJvbSBcIi4vc3JjL21jcC50c1wiO1xuZXhwb3J0ICogYXMgbWVtb3J5IGZyb20gXCIuL3NyYy9tZW1vcnkudHNcIjtcbmV4cG9ydCAqIGFzIG1sZmxvdyBmcm9tIFwiLi9zcmMvbWxmbG93LnRzXCI7XG5leHBvcnQgKiBhcyBtb2RlbCBmcm9tIFwiLi9zcmMvbW9kZWwudHNcIjtcbmV4cG9ydCAqIGFzIG1vbnR5U2FuZGJveCBmcm9tIFwiLi9zcmMvbW9udHktc2FuZGJveC50c1wiO1xuZXhwb3J0ICogYXMgb2JzZXJ2YWJpbGl0eSBmcm9tIFwiLi9zcmMvb2JzZXJ2YWJpbGl0eS50c1wiO1xuZXhwb3J0ICogYXMgb3BlbmFwaVRvb2wgZnJvbSBcIi4vc3JjL29wZW5hcGktdG9vbC50c1wiO1xuZXhwb3J0ICogYXMgcGx1Z2luIGZyb20gXCIuL3NyYy9wbHVnaW4udHNcIjtcbmV4cG9ydCAqIGFzIHByb2Nlc3NvcnMgZnJvbSBcIi4vc3JjL3Byb2Nlc3NvcnMudHNcIjtcbmV4cG9ydCAqIGFzIHJlbW90ZVNraWxscyBmcm9tIFwiLi9zcmMvcmVtb3RlLXNraWxscy50c1wiO1xuZXhwb3J0ICogYXMgcmVzdCBmcm9tIFwiLi9zcmMvcmVzdC50c1wiO1xuZXhwb3J0ICogYXMgc2FuZGJveCBmcm9tIFwiLi9zcmMvc2FuZGJveC50c1wiO1xuZXhwb3J0ICogYXMgc2VydmVyIGZyb20gXCIuL3NyYy9zZXJ2ZXIudHNcIjtcbmV4cG9ydCAqIGFzIHNlcnZpbmcgZnJvbSBcIi4vc3JjL3NlcnZpbmcudHNcIjtcbmV4cG9ydCAqIGFzIHNlcnZpbmdTYW5pdGl6ZSBmcm9tIFwiLi9zcmMvc2VydmluZy1zYW5pdGl6ZS50c1wiO1xuZXhwb3J0ICogYXMgc2tpbGxQYXRocyBmcm9tIFwiLi9zcmMvc2tpbGwtcGF0aHMudHNcIjtcbmV4cG9ydCAqIGFzIHN0YXRlbWVudCBmcm9tIFwiLi9zcmMvc3RhdGVtZW50LnRzXCI7XG5leHBvcnQgKiBhcyBzdG9yYWdlU2NoZW1hIGZyb20gXCIuL3NyYy9zdG9yYWdlLXNjaGVtYS50c1wiO1xuZXhwb3J0ICogYXMgc3R5bGUgZnJvbSBcIi4vc3JjL3N0eWxlLnRzXCI7XG5leHBvcnQgKiBhcyBzdW1tYXJpemUgZnJvbSBcIi4vc3JjL3N1bW1hcml6ZS50c1wiO1xuZXhwb3J0ICogYXMgdGVsZW1ldHJ5IGZyb20gXCIuL3NyYy90ZWxlbWV0cnkudHNcIjtcbmV4cG9ydCAqIGFzIHRyYWNlQXR0cmlidXRlcyBmcm9tIFwiLi9zcmMvdHJhY2UtYXR0cmlidXRlcy50c1wiO1xuZXhwb3J0ICogYXMgdmFsaWRhdGlvbiBmcm9tIFwiLi9zcmMvdmFsaWRhdGlvbi50c1wiO1xuZXhwb3J0ICogYXMgd29ya3NwYWNlcyBmcm9tIFwiLi9zcmMvd29ya3NwYWNlcy50c1wiO1xuZXhwb3J0ICogYXMgd3JpdGVyIGZyb20gXCIuL3NyYy93cml0ZXIudHNcIjtcbmV4cG9ydCB7IEZBTExCQUNLX0FHRU5UX0lELCBERUZBVUxUX0FHRU5UX01BWF9TVEVQUywgREVGQVVMVF9TVFlMRV9JTlNUUlVDVElPTlMgfSBmcm9tIFwiLi9zcmMvYWdlbnRzLnRzXCI7XG5leHBvcnQgdHlwZSB7IE1hc3RyYVRvb2xzLCBBcHBLaXRUb29sT3B0aW9ucywgVG9vbGtpdE9wdGlvbnMsIE1hc3RyYVBsdWdpblRvb2xraXRQcm92aWRlciwgTWFzdHJhUGx1Z2lucywgTWFzdHJhVG9vbHNGbiwgTWFzdHJhQWdlbnRXb3Jrc3BhY2VSZXNvbHZlciwgTWFzdHJhQWdlbnREZWZpbml0aW9uLCBBbnlNYXN0cmFBZ2VudERlZmluaXRpb24sIE1hc3RyYVN0b3JhZ2VDb25maWdPdmVycmlkZSwgTWFzdHJhTWVtb3J5Q29uZmlnT3ZlcnJpZGUsIEFnZW50RGVmYXVsdE1vZGVsLCBCdWlsdEFnZW50cyB9IGZyb20gXCIuL3NyYy9hZ2VudHMudHNcIjtcbmV4cG9ydCB7IGNoYXJ0UGxhblNjaGVtYSwgY2hhcnRQbGFubmVyUmVxdWVzdFNjaGVtYSwgY2hhcnRUb29sT3V0cHV0U2NoZW1hIH0gZnJvbSBcIi4vc3JjL2NoYXJ0LnRzXCI7XG5leHBvcnQgdHlwZSB7IENoYXJ0UGxhbm5lclJlcXVlc3QsIENoYXJ0VG9vbE91dHB1dCwgUHJlcGFyZUNoYXJ0T3B0aW9ucywgRmV0Y2hDaGFydE9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvY2hhcnQudHNcIjtcbmV4cG9ydCB7IE1BU1RSQV9VU0VSX0tFWSwgTUFTVFJBX1VTRVJfTkFNRV9LRVksIE1BU1RSQV9VU0VSX0VNQUlMX0tFWSwgTUFTVFJBX1JFUVVFU1RfSURfS0VZLCBNQVNUUkFfU0NPUEVTX0tFWSwgVFJBQ0VfUkVRVUVTVF9DT05URVhUX0tFWVMsIE1BU1RSQV9DT05GSUdfU0NIRU1BIH0gZnJvbSBcIi4vc3JjL2NvbmZpZy50c1wiO1xuZXhwb3J0IHR5cGUgeyBVc2VyLCBNYXN0cmFNZW1vcnlDb25maWcsIE1hc3RyYVdvcmtzcGFjZVNraWxsc0NvbmZpZywgTWFzdHJhTWNwQ29uZmlnLCBNYXN0cmFQbHVnaW5Db25maWcgfSBmcm9tIFwiLi9zcmMvY29uZmlnLnRzXCI7XG5leHBvcnQgeyBtb2RlbENhdGFsb2d1ZURlZmF1bHRzLCBnZW5pZVN1Z2dlc3Rpb25EZWZhdWx0cywgc3RhdGVtZW50RGF0YURlZmF1bHRzLCBjaGFydEZldGNoRGVmYXVsdHMsIGZlZWRiYWNrV3JpdGVEZWZhdWx0cyB9IGZyb20gXCIuL3NyYy9kZWZhdWx0cy50c1wiO1xuZXhwb3J0IHR5cGUgeyBNYXN0cmFFdmFsRHJpdmVyT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9ldmFsdWF0aW9uLnRzXCI7XG5leHBvcnQgeyBNYXN0cmFGaWxlU3lzdGVtQWRhcHRlciwgTW91bnRlZENvbXBvc2l0ZUZpbGVzeXN0ZW0gfSBmcm9tIFwiLi9zcmMvZmlsZXN5c3RlbXMudHNcIjtcbmV4cG9ydCB0eXBlIHsgTWFzdHJhRmlsZVN5c3RlbUFkYXB0ZXJPcHRpb25zIH0gZnJvbSBcIi4vc3JjL2ZpbGVzeXN0ZW1zLnRzXCI7XG5leHBvcnQgeyBERUZBVUxUX0dFTklFX0FMSUFTLCBHRU5JRV9JTlNUUlVDVElPTlMgfSBmcm9tIFwiLi9zcmMvZ2VuaWUudHNcIjtcbmV4cG9ydCB0eXBlIHsgR2VuaWVTcGFjZUNvbmZpZywgR2VuaWVTcGFjZXNDb25maWcgfSBmcm9tIFwiLi9zcmMvZ2VuaWUudHNcIjtcbmV4cG9ydCB7IElERU5USVRZX0VOViwgSURFTlRJVFlfTU9ERVMsIERFRkFVTFRfSURFTlRJVFlfTU9ERSwgVVNFUl9JRF9IRUFERVIsIFVTRVJfRU1BSUxfSEVBREVSLCByZXF1ZXN0VXNlcklkLCByZXF1ZXN0VXNlckVtYWlsLCB1c2VTZXJ2aWNlUHJpbmNpcGFsIH0gZnJvbSBcIi4vc3JjL2lkZW50aXR5LnRzXCI7XG5leHBvcnQgdHlwZSB7IE1hc3RyYUlkZW50aXR5TW9kZSB9IGZyb20gXCIuL3NyYy9pZGVudGl0eS50c1wiO1xuZXhwb3J0IHR5cGUgeyBSZXNvbHZlZE1jcCB9IGZyb20gXCIuL3NyYy9tY3AudHNcIjtcbmV4cG9ydCB7IE1lbW9yeUJ1aWxkZXIgfSBmcm9tIFwiLi9zcmMvbWVtb3J5LnRzXCI7XG5leHBvcnQgeyBBZ2VudFRyYWNlU3BhblByb2Nlc3NvciB9IGZyb20gXCIuL3NyYy9tbGZsb3cudHNcIjtcbmV4cG9ydCB0eXBlIHsgQXBwTWxmbG93VHJhY2VJbmZvLCBMb2dGZWVkYmFja1BhcmFtcyB9IGZyb20gXCIuL3NyYy9tbGZsb3cudHNcIjtcbmV4cG9ydCB7IFJFU1BPTlNFU19QUk9WSURFUl9PUFRJT05TIH0gZnJvbSBcIi4vc3JjL21vZGVsLnRzXCI7XG5leHBvcnQgdHlwZSB7IEJ1aWxkTW9kZWxPdmVycmlkZXMgfSBmcm9tIFwiLi9zcmMvbW9kZWwudHNcIjtcbmV4cG9ydCB7IE1vbnR5U2FuZGJveCB9IGZyb20gXCIuL3NyYy9tb250eS1zYW5kYm94LnRzXCI7XG5leHBvcnQgdHlwZSB7IE1vbnR5U2FuZGJveE9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvbW9udHktc2FuZGJveC50c1wiO1xuZXhwb3J0IHR5cGUgeyBCdWlsZE9ic2VydmFiaWxpdHlPcHRpb25zIH0gZnJvbSBcIi4vc3JjL29ic2VydmFiaWxpdHkudHNcIjtcbmV4cG9ydCB0eXBlIHsgT3BlbkFwaUh0dHBNZXRob2QsIE9wZW5BcGlUb29sLCBPcGVuQXBpVG9vbHNPcHRpb25zIH0gZnJvbSBcIi4vc3JjL29wZW5hcGktdG9vbC50c1wiO1xuZXhwb3J0IHsgTWFzdHJhUGx1Z2luLCBtYXN0cmEgfSBmcm9tIFwiLi9zcmMvcGx1Z2luLnRzXCI7XG5leHBvcnQgeyBzdHJpcFN0YWxlQ2hhcnRzUHJvY2Vzc29yIH0gZnJvbSBcIi4vc3JjL3Byb2Nlc3NvcnMudHNcIjtcbmV4cG9ydCB7IEFJVE9PTFNfU09VUkNFIH0gZnJvbSBcIi4vc3JjL3JlbW90ZS1za2lsbHMudHNcIjtcbmV4cG9ydCB0eXBlIHsgQWlUb29sc1NvdXJjZSwgUmVtb3RlU2tpbGxTb3VyY2VPcHRpb25zLCBSZW1vdGVTa2lsbFNvdXJjZSwgUmVtb3RlU2tpbGxzT3B0aW9uLCBQcm92aXNpb25SZW1vdGVTa2lsbHNPcHRpb25zLCBQcm92aXNpb25lZFJlbW90ZVNraWxscywgUmVtb3RlU2tpbGxDYWNoZUVudHJ5LCBSZW1vdGVTa2lsbHNNZXRhZGF0YSB9IGZyb20gXCIuL3NyYy9yZW1vdGUtc2tpbGxzLnRzXCI7XG5leHBvcnQgdHlwZSB7IERhdGFicmlja3NGZXRjaEluaXQgfSBmcm9tIFwiLi9zcmMvcmVzdC50c1wiO1xuZXhwb3J0IHsgRGF0YWJyaWNrc1NhbmRib3ggfSBmcm9tIFwiLi9zcmMvc2FuZGJveC50c1wiO1xuZXhwb3J0IHR5cGUgeyBEYXRhYnJpY2tzU2FuZGJveE9wdGlvbnMsIERhdGFicmlja3NXb3Jrc3BhY2VTYW5kYm94T3B0aW9ucyB9IGZyb20gXCIuL3NyYy9zYW5kYm94LnRzXCI7XG5leHBvcnQgeyBNYXN0cmFTZXJ2ZXIgfSBmcm9tIFwiLi9zcmMvc2VydmVyLnRzXCI7XG5leHBvcnQgdHlwZSB7IEF0dHJpYnV0ZWRJZGVudGl0eSwgTWFzdHJhQXBpR2F0ZU9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvc2VydmVyLnRzXCI7XG5leHBvcnQgeyBNQVNUUkFfTU9ERUxfT1ZFUlJJREVfS0VZLCBNQVNUUkFfUkVTT0xWRURfTU9ERUxfS0VZIH0gZnJvbSBcIi4vc3JjL3NlcnZpbmcudHNcIjtcbmV4cG9ydCB0eXBlIHsgTW9kZWxPdmVycmlkZVJlcXVlc3QgfSBmcm9tIFwiLi9zcmMvc2VydmluZy50c1wiO1xuZXhwb3J0IHsgT1JHQU5JWkFUSU9OX0FTU0lTVEFOVF9QQVRILCBPUkdBTklaQVRJT05fU0tJTExTX1BBVEggfSBmcm9tIFwiLi9zcmMvc2tpbGwtcGF0aHMudHNcIjtcbmV4cG9ydCB7IFNUQVRFTUVOVF9ST1dfQ0FQIH0gZnJvbSBcIi4vc3JjL3N0YXRlbWVudC50c1wiO1xuZXhwb3J0IHsgVFlQT0dSQVBIWV9SVUxFIH0gZnJvbSBcIi4vc3JjL3N0eWxlLnRzXCI7XG5leHBvcnQgeyBUSVRMRV9JTlNUUlVDVElPTlMgfSBmcm9tIFwiLi9zcmMvc3VtbWFyaXplLnRzXCI7XG5leHBvcnQgdHlwZSB7IFN1bW1hcml6ZU9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvc3VtbWFyaXplLnRzXCI7XG5leHBvcnQgeyBUUkFDRV9JT19MSU1JVCwgTUxGTE9XX1NQQU5fSU5QVVRTX0FUVFIsIE1MRkxPV19TUEFOX09VVFBVVFNfQVRUUiwgQ0hBVF9NRVNTQUdFU19BVFRSLCBDSEFUX1JFU1BPTlNFX0FUVFIsIENIQVRfSURFTlRJVFlfQVRUUiwgQ0hBVF9HRU5JRV9VU0VEX0FUVFIsIE1MRkxPV19TUEFOX1RZUEVfQVRUUiwgR0VOX0FJX09QRVJBVElPTl9OQU1FX0FUVFIsIE1MRkxPV19VU0VSX0FUVFIsIE1MRkxPV19TRVNTSU9OX0FUVFIsIE1MRkxPV19TUEFOX1RZUEVfQUdFTlQsIE1MRkxPV19TUEFOX1RZUEVfR0VOSUUgfSBmcm9tIFwiLi9zcmMvdGVsZW1ldHJ5LnRzXCI7XG5leHBvcnQgdHlwZSB7IENoYXRUdXJuVGVsZW1ldHJ5T3B0aW9ucywgQ2hhdFRyYWNlVGFnVmFsdWUgfSBmcm9tIFwiLi9zcmMvdGVsZW1ldHJ5LnRzXCI7XG5leHBvcnQgeyBNTEZMT1dfVFJBQ0VfVEFHX1BSRUZJWCwgTUxGTE9XX0FHRU5UX1RBRywgTUxGTE9XX0dFTklFX1RBRywgTUxGTE9XX09CT19BVVRIX1RBRywgTUxGTE9XX1NQX0FVVEhfVEFHLCBNTEZMT1dfTE9DQUxfVEFHLCBNTEZMT1dfQUdFTlRfVEFHX0FUVFIsIE1MRkxPV19HRU5JRV9UQUdfQVRUUiwgQVBQS0lUX0FHRU5UX1RSQUNFX1JPT1RfQVRUUiwgTUxGTE9XX09CT19BVVRIX1RBR19BVFRSLCBNTEZMT1dfU1BfQVVUSF9UQUdfQVRUUiwgTUxGTE9XX0xPQ0FMX1RBR19BVFRSIH0gZnJvbSBcIi4vc3JjL3RyYWNlLWF0dHJpYnV0ZXMudHNcIjtcbmV4cG9ydCB0eXBlIHsgU2NoZW1hSXNzdWVzIH0gZnJvbSBcIi4vc3JjL3ZhbGlkYXRpb24udHNcIjtcbmV4cG9ydCB7IERFRkFVTFRfU0tJTExfRk9MREVSUyB9IGZyb20gXCIuL3NyYy93b3Jrc3BhY2VzLnRzXCI7XG5leHBvcnQgdHlwZSB7IFdvcmtzcGFjZU1vdW50Q29udGV4dCwgU2tpbGxGb2xkZXJWYWx1ZSwgU2tpbGxGb2xkZXJPcHRpb25zLCBXb3Jrc3BhY2VNb3VudENvbnRyaWJ1dGlvbiwgV29ya3NwYWNlTW91bnRSZXNvbHZlciwgRGVmYXVsdFNraWxsRm9sZGVyTmFtZSwgV29ya3NwYWNlU2FuZGJveFNlbGVjdGlvbiwgQ3JlYXRlV29ya3NwYWNlT3B0aW9ucyB9IGZyb20gXCIuL3NyYy93b3Jrc3BhY2VzLnRzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9leHBvcnRzLnRzXCI7XG4iXX0=
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRywwQkFBMEIsQ0FBQztBQUM3RCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLEtBQUssTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEtBQUssSUFBSSxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxRQUFRLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxLQUFLLFVBQVUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEtBQUssV0FBVyxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sS0FBSyxLQUFLLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxLQUFLLFFBQVEsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEtBQUssR0FBRyxNQUFNLGNBQWMsQ0FBQztBQUNwQyxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLEtBQUssTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEtBQUssWUFBWSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxhQUFhLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxLQUFLLFdBQVcsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxVQUFVLE1BQU0scUJBQXFCLENBQUM7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QU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXhELE9BQU8sRUFBRSxjQUFjLEVBQUUsdUJBQXVCLEVBQUUsd0JBQXdCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQUUscUJBQXFCLEVBQUUsMEJBQTBCLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsc0JBQXNCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVuVSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUUscUJBQXFCLEVBQUUsNEJBQTRCLEVBQUUsd0JBQXdCLEVBQUUsdUJBQXVCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV6VCxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV6RSxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEdFTkVSQVRFRCBieSBwcm9qZW4gd2F0Y2ggLSBETyBOT1QgRURJVC5cbi8vIFJlZ2VuZXJhdGVkIGZyb20gdGhlIGV4cG9ydGluZyBtb2R1bGVzIGluIC4vc3JjLlxuLy8gSGFuZCBlZGl0cyBhcmUgb3ZlcndyaXR0ZW4gb24gdGhlIG5leHQgd2F0Y2g7IHRoaXMgZmlsZSBpcyByZWFkLW9ubHkuXG5cbmV4cG9ydCBjb25zdCBQQUNLQUdFX0lERU5USUZJRVIgPSBcIkBkYngtdG9vbHMvYXBwa2l0LW1hc3RyYVwiO1xuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfVkVSU0lPTiA9IFwiMC45Ljk5XCI7XG5leHBvcnQgKiBhcyBhZ2VudHMgZnJvbSBcIi4vc3JjL2FnZW50cy50c1wiO1xuZXhwb3J0ICogYXMgY2hhcnQgZnJvbSBcIi4vc3JjL2NoYXJ0LnRzXCI7XG5leHBvcnQgKiBhcyBjaGF0IGZyb20gXCIuL3NyYy9jaGF0LnRzXCI7XG5leHBvcnQgKiBhcyBjb25maWcgZnJvbSBcIi4vc3JjL2NvbmZpZy50c1wiO1xuZXhwb3J0ICogYXMgZGVmYXVsdHMgZnJvbSBcIi4vc3JjL2RlZmF1bHRzLnRzXCI7XG5leHBvcnQgKiBhcyBldmFsdWF0aW9uIGZyb20gXCIuL3NyYy9ldmFsdWF0aW9uLnRzXCI7XG5leHBvcnQgKiBhcyBmaWxlc3lzdGVtcyBmcm9tIFwiLi9zcmMvZmlsZXN5c3RlbXMudHNcIjtcbmV4cG9ydCAqIGFzIGdlbmllIGZyb20gXCIuL3NyYy9nZW5pZS50c1wiO1xuZXhwb3J0ICogYXMgaWRlbnRpdHkgZnJvbSBcIi4vc3JjL2lkZW50aXR5LnRzXCI7XG5leHBvcnQgKiBhcyBtY3AgZnJvbSBcIi4vc3JjL21jcC50c1wiO1xuZXhwb3J0ICogYXMgbWVtb3J5IGZyb20gXCIuL3NyYy9tZW1vcnkudHNcIjtcbmV4cG9ydCAqIGFzIG1sZmxvdyBmcm9tIFwiLi9zcmMvbWxmbG93LnRzXCI7XG5leHBvcnQgKiBhcyBtb2RlbCBmcm9tIFwiLi9zcmMvbW9kZWwudHNcIjtcbmV4cG9ydCAqIGFzIG1vbnR5U2FuZGJveCBmcm9tIFwiLi9zcmMvbW9udHktc2FuZGJveC50c1wiO1xuZXhwb3J0ICogYXMgb2JzZXJ2YWJpbGl0eSBmcm9tIFwiLi9zcmMvb2JzZXJ2YWJpbGl0eS50c1wiO1xuZXhwb3J0ICogYXMgb3BlbmFwaVRvb2wgZnJvbSBcIi4vc3JjL29wZW5hcGktdG9vbC50c1wiO1xuZXhwb3J0ICogYXMgcGx1Z2luIGZyb20gXCIuL3NyYy9wbHVnaW4udHNcIjtcbmV4cG9ydCAqIGFzIHByb2Nlc3NvcnMgZnJvbSBcIi4vc3JjL3Byb2Nlc3NvcnMudHNcIjtcbmV4cG9ydCAqIGFzIHJlbW90ZVNraWxscyBmcm9tIFwiLi9zcmMvcmVtb3RlLXNraWxscy50c1wiO1xuZXhwb3J0ICogYXMgcmVzdCBmcm9tIFwiLi9zcmMvcmVzdC50c1wiO1xuZXhwb3J0ICogYXMgc2FuZGJveCBmcm9tIFwiLi9zcmMvc2FuZGJveC50c1wiO1xuZXhwb3J0ICogYXMgc2VydmVyIGZyb20gXCIuL3NyYy9zZXJ2ZXIudHNcIjtcbmV4cG9ydCAqIGFzIHNlcnZpbmcgZnJvbSBcIi4vc3JjL3NlcnZpbmcudHNcIjtcbmV4cG9ydCAqIGFzIHNlcnZpbmdTYW5pdGl6ZSBmcm9tIFwiLi9zcmMvc2VydmluZy1zYW5pdGl6ZS50c1wiO1xuZXhwb3J0ICogYXMgc2tpbGxQYXRocyBmcm9tIFwiLi9zcmMvc2tpbGwtcGF0aHMudHNcIjtcbmV4cG9ydCAqIGFzIHN0YXRlbWVudCBmcm9tIFwiLi9zcmMvc3RhdGVtZW50LnRzXCI7XG5leHBvcnQgKiBhcyBzdG9yYWdlU2NoZW1hIGZyb20gXCIuL3NyYy9zdG9yYWdlLXNjaGVtYS50c1wiO1xuZXhwb3J0ICogYXMgc3R5bGUgZnJvbSBcIi4vc3JjL3N0eWxlLnRzXCI7XG5leHBvcnQgKiBhcyBzdW1tYXJpemUgZnJvbSBcIi4vc3JjL3N1bW1hcml6ZS50c1wiO1xuZXhwb3J0ICogYXMgdGVsZW1ldHJ5IGZyb20gXCIuL3NyYy90ZWxlbWV0cnkudHNcIjtcbmV4cG9ydCAqIGFzIHRyYWNlQXR0cmlidXRlcyBmcm9tIFwiLi9zcmMvdHJhY2UtYXR0cmlidXRlcy50c1wiO1xuZXhwb3J0ICogYXMgdmFsaWRhdGlvbiBmcm9tIFwiLi9zcmMvdmFsaWRhdGlvbi50c1wiO1xuZXhwb3J0ICogYXMgd29ya3NwYWNlcyBmcm9tIFwiLi9zcmMvd29ya3NwYWNlcy50c1wiO1xuZXhwb3J0ICogYXMgd3JpdGVyIGZyb20gXCIuL3NyYy93cml0ZXIudHNcIjtcbmV4cG9ydCB7IEZBTExCQUNLX0FHRU5UX0lELCBERUZBVUxUX0FHRU5UX01BWF9TVEVQUywgREVGQVVMVF9TVFlMRV9JTlNUUlVDVElPTlMgfSBmcm9tIFwiLi9zcmMvYWdlbnRzLnRzXCI7XG5leHBvcnQgdHlwZSB7IE1hc3RyYVRvb2xzLCBBcHBLaXRUb29sT3B0aW9ucywgVG9vbGtpdE9wdGlvbnMsIE1hc3RyYVBsdWdpblRvb2xraXRQcm92aWRlciwgTWFzdHJhUGx1Z2lucywgTWFzdHJhVG9vbHNGbiwgTWFzdHJhQWdlbnRXb3Jrc3BhY2VSZXNvbHZlciwgTWFzdHJhQWdlbnREZWZpbml0aW9uLCBBbnlNYXN0cmFBZ2VudERlZmluaXRpb24sIE1hc3RyYVN0b3JhZ2VDb25maWdPdmVycmlkZSwgTWFzdHJhTWVtb3J5Q29uZmlnT3ZlcnJpZGUsIEFnZW50RGVmYXVsdE1vZGVsLCBCdWlsdEFnZW50cyB9IGZyb20gXCIuL3NyYy9hZ2VudHMudHNcIjtcbmV4cG9ydCB7IGNoYXJ0UGxhblNjaGVtYSwgY2hhcnRQbGFubmVyUmVxdWVzdFNjaGVtYSwgY2hhcnRUb29sT3V0cHV0U2NoZW1hIH0gZnJvbSBcIi4vc3JjL2NoYXJ0LnRzXCI7XG5leHBvcnQgdHlwZSB7IENoYXJ0UGxhbm5lclJlcXVlc3QsIENoYXJ0VG9vbE91dHB1dCwgUHJlcGFyZUNoYXJ0T3B0aW9ucywgRmV0Y2hDaGFydE9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvY2hhcnQudHNcIjtcbmV4cG9ydCB7IE1BU1RSQV9VU0VSX0tFWSwgTUFTVFJBX1VTRVJfTkFNRV9LRVksIE1BU1RSQV9VU0VSX0VNQUlMX0tFWSwgTUFTVFJBX1JFUVVFU1RfSURfS0VZLCBNQVNUUkFfU0NPUEVTX0tFWSwgVFJBQ0VfUkVRVUVTVF9DT05URVhUX0tFWVMsIE1BU1RSQV9DT05GSUdfU0NIRU1BIH0gZnJvbSBcIi4vc3JjL2NvbmZpZy50c1wiO1xuZXhwb3J0IHR5cGUgeyBVc2VyLCBNYXN0cmFNZW1vcnlDb25maWcsIE1hc3RyYVdvcmtzcGFjZVNraWxsc0NvbmZpZywgTWFzdHJhTWNwQ29uZmlnLCBNYXN0cmFQbHVnaW5Db25maWcgfSBmcm9tIFwiLi9zcmMvY29uZmlnLnRzXCI7XG5leHBvcnQgeyBtb2RlbENhdGFsb2d1ZURlZmF1bHRzLCBnZW5pZVN1Z2dlc3Rpb25EZWZhdWx0cywgc3RhdGVtZW50RGF0YURlZmF1bHRzLCBjaGFydEZldGNoRGVmYXVsdHMsIGZlZWRiYWNrV3JpdGVEZWZhdWx0cyB9IGZyb20gXCIuL3NyYy9kZWZhdWx0cy50c1wiO1xuZXhwb3J0IHR5cGUgeyBNYXN0cmFFdmFsRHJpdmVyT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9ldmFsdWF0aW9uLnRzXCI7XG5leHBvcnQgeyBNYXN0cmFGaWxlU3lzdGVtQWRhcHRlciwgTW91bnRlZENvbXBvc2l0ZUZpbGVzeXN0ZW0gfSBmcm9tIFwiLi9zcmMvZmlsZXN5c3RlbXMudHNcIjtcbmV4cG9ydCB0eXBlIHsgTWFzdHJhRmlsZVN5c3RlbUFkYXB0ZXJPcHRpb25zIH0gZnJvbSBcIi4vc3JjL2ZpbGVzeXN0ZW1zLnRzXCI7XG5leHBvcnQgeyBERUZBVUxUX0dFTklFX0FMSUFTLCBHRU5JRV9JTlNUUlVDVElPTlMgfSBmcm9tIFwiLi9zcmMvZ2VuaWUudHNcIjtcbmV4cG9ydCB0eXBlIHsgR2VuaWVTcGFjZUNvbmZpZywgR2VuaWVTcGFjZXNDb25maWcgfSBmcm9tIFwiLi9zcmMvZ2VuaWUudHNcIjtcbmV4cG9ydCB7IElERU5USVRZX0VOViwgSURFTlRJVFlfTU9ERVMsIERFRkFVTFRfSURFTlRJVFlfTU9ERSwgVVNFUl9JRF9IRUFERVIsIFVTRVJfRU1BSUxfSEVBREVSLCByZXF1ZXN0VXNlcklkLCByZXF1ZXN0VXNlckVtYWlsLCB1c2VTZXJ2aWNlUHJpbmNpcGFsIH0gZnJvbSBcIi4vc3JjL2lkZW50aXR5LnRzXCI7XG5leHBvcnQgdHlwZSB7IE1hc3RyYUlkZW50aXR5TW9kZSB9IGZyb20gXCIuL3NyYy9pZGVudGl0eS50c1wiO1xuZXhwb3J0IHR5cGUgeyBSZXNvbHZlZE1jcCB9IGZyb20gXCIuL3NyYy9tY3AudHNcIjtcbmV4cG9ydCB7IE1lbW9yeUJ1aWxkZXIgfSBmcm9tIFwiLi9zcmMvbWVtb3J5LnRzXCI7XG5leHBvcnQgeyBBZ2VudFRyYWNlU3BhblByb2Nlc3NvciB9IGZyb20gXCIuL3NyYy9tbGZsb3cudHNcIjtcbmV4cG9ydCB0eXBlIHsgQXBwTWxmbG93VHJhY2VJbmZvLCBMb2dGZWVkYmFja1BhcmFtcyB9IGZyb20gXCIuL3NyYy9tbGZsb3cudHNcIjtcbmV4cG9ydCB7IFJFU1BPTlNFU19QUk9WSURFUl9PUFRJT05TIH0gZnJvbSBcIi4vc3JjL21vZGVsLnRzXCI7XG5leHBvcnQgdHlwZSB7IEJ1aWxkTW9kZWxPdmVycmlkZXMgfSBmcm9tIFwiLi9zcmMvbW9kZWwudHNcIjtcbmV4cG9ydCB7IE1vbnR5U2FuZGJveCB9IGZyb20gXCIuL3NyYy9tb250eS1zYW5kYm94LnRzXCI7XG5leHBvcnQgdHlwZSB7IE1vbnR5U2FuZGJveE9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvbW9udHktc2FuZGJveC50c1wiO1xuZXhwb3J0IHR5cGUgeyBCdWlsZE9ic2VydmFiaWxpdHlPcHRpb25zIH0gZnJvbSBcIi4vc3JjL29ic2VydmFiaWxpdHkudHNcIjtcbmV4cG9ydCB0eXBlIHsgT3BlbkFwaUh0dHBNZXRob2QsIE9wZW5BcGlUb29sLCBPcGVuQXBpVG9vbHNPcHRpb25zIH0gZnJvbSBcIi4vc3JjL29wZW5hcGktdG9vbC50c1wiO1xuZXhwb3J0IHsgTWFzdHJhUGx1Z2luLCBtYXN0cmEgfSBmcm9tIFwiLi9zcmMvcGx1Z2luLnRzXCI7XG5leHBvcnQgeyBzdHJpcFN0YWxlQ2hhcnRzUHJvY2Vzc29yIH0gZnJvbSBcIi4vc3JjL3Byb2Nlc3NvcnMudHNcIjtcbmV4cG9ydCB7IEFJVE9PTFNfU09VUkNFIH0gZnJvbSBcIi4vc3JjL3JlbW90ZS1za2lsbHMudHNcIjtcbmV4cG9ydCB0eXBlIHsgQWlUb29sc1NvdXJjZSwgUmVtb3RlU2tpbGxTb3VyY2VPcHRpb25zLCBSZW1vdGVTa2lsbFNvdXJjZSwgUmVtb3RlU2tpbGxzT3B0aW9uLCBQcm92aXNpb25SZW1vdGVTa2lsbHNPcHRpb25zLCBQcm92aXNpb25lZFJlbW90ZVNraWxscywgUmVtb3RlU2tpbGxDYWNoZUVudHJ5LCBSZW1vdGVTa2lsbHNNZXRhZGF0YSB9IGZyb20gXCIuL3NyYy9yZW1vdGUtc2tpbGxzLnRzXCI7XG5leHBvcnQgdHlwZSB7IERhdGFicmlja3NGZXRjaEluaXQgfSBmcm9tIFwiLi9zcmMvcmVzdC50c1wiO1xuZXhwb3J0IHsgRGF0YWJyaWNrc1NhbmRib3ggfSBmcm9tIFwiLi9zcmMvc2FuZGJveC50c1wiO1xuZXhwb3J0IHR5cGUgeyBEYXRhYnJpY2tzU2FuZGJveE9wdGlvbnMsIERhdGFicmlja3NXb3Jrc3BhY2VTYW5kYm94T3B0aW9ucyB9IGZyb20gXCIuL3NyYy9zYW5kYm94LnRzXCI7XG5leHBvcnQgeyBNYXN0cmFTZXJ2ZXIgfSBmcm9tIFwiLi9zcmMvc2VydmVyLnRzXCI7XG5leHBvcnQgdHlwZSB7IEF0dHJpYnV0ZWRJZGVudGl0eSwgTWFzdHJhQXBpR2F0ZU9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvc2VydmVyLnRzXCI7XG5leHBvcnQgeyBNQVNUUkFfTU9ERUxfT1ZFUlJJREVfS0VZLCBNQVNUUkFfUkVTT0xWRURfTU9ERUxfS0VZIH0gZnJvbSBcIi4vc3JjL3NlcnZpbmcudHNcIjtcbmV4cG9ydCB0eXBlIHsgTW9kZWxPdmVycmlkZVJlcXVlc3QgfSBmcm9tIFwiLi9zcmMvc2VydmluZy50c1wiO1xuZXhwb3J0IHsgT1JHQU5JWkFUSU9OX0FTU0lTVEFOVF9QQVRILCBPUkdBTklaQVRJT05fU0tJTExTX1BBVEggfSBmcm9tIFwiLi9zcmMvc2tpbGwtcGF0aHMudHNcIjtcbmV4cG9ydCB7IFNUQVRFTUVOVF9ST1dfQ0FQIH0gZnJvbSBcIi4vc3JjL3N0YXRlbWVudC50c1wiO1xuZXhwb3J0IHsgVFlQT0dSQVBIWV9SVUxFIH0gZnJvbSBcIi4vc3JjL3N0eWxlLnRzXCI7XG5leHBvcnQgeyBUSVRMRV9JTlNUUlVDVElPTlMgfSBmcm9tIFwiLi9zcmMvc3VtbWFyaXplLnRzXCI7XG5leHBvcnQgdHlwZSB7IFN1bW1hcml6ZU9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvc3VtbWFyaXplLnRzXCI7XG5leHBvcnQgeyBUUkFDRV9JT19MSU1JVCwgTUxGTE9XX1NQQU5fSU5QVVRTX0FUVFIsIE1MRkxPV19TUEFOX09VVFBVVFNfQVRUUiwgQ0hBVF9NRVNTQUdFU19BVFRSLCBDSEFUX1JFU1BPTlNFX0FUVFIsIENIQVRfSURFTlRJVFlfQVRUUiwgQ0hBVF9HRU5JRV9VU0VEX0FUVFIsIE1MRkxPV19TUEFOX1RZUEVfQVRUUiwgR0VOX0FJX09QRVJBVElPTl9OQU1FX0FUVFIsIE1MRkxPV19VU0VSX0FUVFIsIE1MRkxPV19TRVNTSU9OX0FUVFIsIE1MRkxPV19TUEFOX1RZUEVfQUdFTlQsIE1MRkxPV19TUEFOX1RZUEVfR0VOSUUgfSBmcm9tIFwiLi9zcmMvdGVsZW1ldHJ5LnRzXCI7XG5leHBvcnQgdHlwZSB7IENoYXRUdXJuVGVsZW1ldHJ5T3B0aW9ucywgQ2hhdFRyYWNlVGFnVmFsdWUgfSBmcm9tIFwiLi9zcmMvdGVsZW1ldHJ5LnRzXCI7XG5leHBvcnQgeyBNTEZMT1dfVFJBQ0VfVEFHX1BSRUZJWCwgTUxGTE9XX0FHRU5UX1RBRywgTUxGTE9XX0dFTklFX1RBRywgTUxGTE9XX09CT19BVVRIX1RBRywgTUxGTE9XX1NQX0FVVEhfVEFHLCBNTEZMT1dfTE9DQUxfVEFHLCBNTEZMT1dfQUdFTlRfVEFHX0FUVFIsIE1MRkxPV19HRU5JRV9UQUdfQVRUUiwgQVBQS0lUX0FHRU5UX1RSQUNFX1JPT1RfQVRUUiwgTUxGTE9XX09CT19BVVRIX1RBR19BVFRSLCBNTEZMT1dfU1BfQVVUSF9UQUdfQVRUUiwgTUxGTE9XX0xPQ0FMX1RBR19BVFRSIH0gZnJvbSBcIi4vc3JjL3RyYWNlLWF0dHJpYnV0ZXMudHNcIjtcbmV4cG9ydCB0eXBlIHsgU2NoZW1hSXNzdWVzIH0gZnJvbSBcIi4vc3JjL3ZhbGlkYXRpb24udHNcIjtcbmV4cG9ydCB7IERFRkFVTFRfREFUQUJSSUNLU19XT1JLU1BBQ0VfUEFUSFMgfSBmcm9tIFwiLi9zcmMvd29ya3NwYWNlcy50c1wiO1xuZXhwb3J0IHR5cGUgeyBEYXRhYnJpY2tzV29ya3NwYWNlQ29udGV4dCwgRGF0YWJyaWNrc1dvcmtzcGFjZVBhdGhPcHRpb25zLCBEYXRhYnJpY2tzV29ya3NwYWNlUGF0aCwgRGF0YWJyaWNrc1dvcmtzcGFjZVBhdGhWYWx1ZSwgRGF0YWJyaWNrc1dvcmtzcGFjZUNhY2hlRmlsdGVyLCBEYXRhYnJpY2tzV29ya3NwYWNlQ2FjaGUsIFdvcmtzcGFjZVNhbmRib3hTZWxlY3Rpb24sIERhdGFicmlja3NXb3Jrc3BhY2VPcHRpb25zIH0gZnJvbSBcIi4vc3JjL3dvcmtzcGFjZXMudHNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2V4cG9ydHMudHNcIjtcbiJdfQ==
@@ -116,8 +116,8 @@ export interface AppKitToolOptions {
116
116
  * ```
117
117
  *
118
118
  * Adds the package's default workspace when the definition omits one. That
119
- * workspace carries Databricks skill mounts and Databricks Sandbox command
120
- * execution. An explicit workspace remains the caller's complete override.
119
+ * workspace carries Databricks skill mounts and Monty command execution. An
120
+ * explicit workspace remains the caller's complete override.
121
121
  */
122
122
  export declare function createAgent<TRequestContext extends Record<string, unknown> | unknown = unknown, TDefinition extends MastraAgentDefinition<TRequestContext> = MastraAgentDefinition<TRequestContext>>(def: TDefinition): TDefinition;
123
123
  /**
@@ -247,7 +247,7 @@ export interface MastraAgentDefinition<TRequestContext extends Record<string, un
247
247
  /**
248
248
  * Mastra {@link Workspace} for this agent (filesystem, sandbox, or other
249
249
  * providers). Assistant skills from Databricks workspace paths are wired
250
- * via {@link createWorkspace}.
250
+ * via {@link databricksWorkspace}.
251
251
  */
252
252
  workspace?: Workspace | MastraAgentWorkspaceResolver;
253
253
  }