@mlightcad/cad-mcp-server 1.7.8 → 1.8.0-preview.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 mlightcad
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2026 mlightcad
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,217 +1,220 @@
1
- # @mlightcad/cad-mcp-server
2
-
3
- stdio [Model Context Protocol](https://modelcontextprotocol.io) server that lets
4
- third-party agents (Claude Code, Cursor, Codex, …) drive CAD drawings through
5
- the same **script-first** API as the in-app CAD Agent.
6
-
7
- ## Why scripts, not hundreds of tools?
8
-
9
- MCP is a great way to connect agents to CAD. It is a poor place to re-export
10
- every drawing primitive as its own tool. A catalog of `draw_line`,
11
- `draw_circle`, `set_entity_layer`, … never finishes, burns tokens on every
12
- request, and still cannot cover one-off analysis (“find bolt-hole outliers by
13
- layer and report them”).
14
-
15
- This server follows the design in
16
- [Building a CAD Agent: MCP, Tools, or Let AI Write Code?](https://dev.to/mlightcad/building-a-cad-agent-mcp-tools-or-let-ai-write-code-2nc4):
17
-
18
- - **Tools** for clear lifecycle steps (open / blank drawing)
19
- - **Scripts** for combining the CAD API into analysis, edits, and verification
20
-
21
- The model writes a `cad.*` function body; the Chromium viewer runs it (headless
22
- or with a visible window). Same runtime as the in-app CAD Agent
23
- (`@mlightcad/cad-agent-core`), so external agents get flexibility without a
24
- ballooning tool list — and with lower token and round-trip cost for bulk work.
25
-
26
- ## Tools (intentionally small)
27
-
28
- | Tool | Purpose |
29
- | --- | --- |
30
- | `open_drawing` | Open a local/remote DXF/DWG, or omit `path` for a blank ISO template |
31
- | `execute_cad_script` | Run a `cad.*` JavaScript function body ([script API](https://mlightcad.github.io/cad-viewer/guide/script/overview.html)) |
32
-
33
- Both tools accept optional `visible`:
34
-
35
- | `visible` | Browser | Session lifecycle |
36
- | --- | --- | --- |
37
- | `false` / omit | Headless Chromium | Reused across tool calls; **auto-closes after idle** (default 30s) |
38
- | `true` | Visible Chromium window | Stays open so the user can watch the drawing |
39
-
40
- The agent chooses based on the user prompt (e.g. “open the browser so I can
41
- see the drawing” → `visible: true`; batch QA → headless). Changing `visible`
42
- after a session started rebuilds the browser and **resets drawing state**.
43
-
44
- There are **no** per-entity `draw_line` / `draw_circle` tools. All drawing,
45
- queries, edits, and context live inside one script call.
46
-
47
- ## Works with cad-simple-viewer and cad-viewer
48
-
49
- Both products share `AcApDocManager` from `@mlightcad/cad-simple-viewer`. This
50
- server’s runner boots that kernel (not the Vue UI package). Scripts you write
51
- for the Script panel or CAD Agent in either product are valid here, and the
52
- reverse is true.
53
-
54
- This package does **not** depend on `@mlightcad/cad-viewer`.
55
-
56
- ## Requirements
57
-
58
- - Node.js ≥ 20
59
- - Chromium for Playwright (`pnpm --filter @mlightcad/cad-mcp-server install-browser`)
60
-
61
- ## Install / run
62
-
63
- ```bash
64
- pnpm --filter @mlightcad/cad-mcp-server build
65
- pnpm --filter @mlightcad/cad-mcp-server install-browser
66
- cad-mcp-server
67
- # or: node packages/cad-mcp-server/dist/cli.js
68
- ```
69
-
70
- ### Environment variables
71
-
72
- | Variable | Purpose |
73
- | --- | --- |
74
- | `CAD_MCP_VISIBLE=1` | Default headed when tools omit `visible` |
75
- | `CAD_MCP_IDLE_CLOSE_MS` | Headless idle auto-close delay in ms (default `30000`) |
76
-
77
- ## MCP client config
78
-
79
- ### Cursor (this monorepo)
80
-
81
- `npx` from the workspace root crashes npm (Arborist + workspace link). Use the
82
- launcher, which runs npx from the OS temp directory:
83
-
84
- ```json
85
- {
86
- "mcpServers": {
87
- "cad": {
88
- "command": "node",
89
- "args": [
90
- "${workspaceFolder}/packages/cad-mcp-server/scripts/run-published.mjs"
91
- ]
92
- }
93
- }
94
- }
95
- ```
96
-
97
- Override the pin with `CAD_MCP_SERVER_VERSION` (default `1.7.8-preview.1`).
98
-
99
- To force a visible browser by default (agent can still pass `visible: false`):
100
-
101
- ```json
102
- {
103
- "mcpServers": {
104
- "cad": {
105
- "command": "node",
106
- "args": [
107
- "${workspaceFolder}/packages/cad-mcp-server/dist/cli.js"
108
- ],
109
- "env": {
110
- "CAD_MCP_VISIBLE": "1"
111
- }
112
- }
113
- }
114
- }
115
- ```
116
-
117
- ### Claude Code / Claude Desktop (outside this repo)
118
-
119
- ```json
120
- {
121
- "mcpServers": {
122
- "cad": {
123
- "command": "npx",
124
- "args": [
125
- "-y",
126
- "--package=@mlightcad/cad-mcp-server@1.7.8-preview.1",
127
- "cad-mcp-server"
128
- ]
129
- }
130
- }
131
- }
132
- ```
133
-
134
- For local monorepo development against an unbuilt/unpublished tree, point at
135
- the built CLI instead:
136
-
137
- ```json
138
- {
139
- "mcpServers": {
140
- "cad": {
141
- "command": "node",
142
- "args": [
143
- "${workspaceFolder}/packages/cad-mcp-server/dist/cli.js"
144
- ]
145
- }
146
- }
147
- }
148
- ```
149
-
150
- ## Typical flow
151
-
152
- 1. `open_drawing` with `{ "path": "./plan.dxf", "mode": "write" }`
153
- (local path or http(s) URL; omit `path` to start blank).
154
- Add `"visible": true` when the user should see the drawing.
155
- 2. `execute_cad_script` with a function body:
156
-
157
- ```js
158
- let id
159
- cad.edit.transaction('circle', tx => {
160
- id = tx.drawCircle({ center: { x: 0, y: 0 }, radius: 100 })
161
- })
162
- cad.view.zoomExtents()
163
- return cad.measure.report([
164
- cad.measure.check('r', 100, cad.measure.radius(id))
165
- ])
166
- ```
167
-
168
- `cad.view.capturePreview` is enabled; screenshots are returned as MCP image
169
- content.
170
-
171
- Save the drawing after edits:
172
-
173
- ```js
174
- cad.file.saveDxf('./plan-out.dxf')
175
- ```
176
-
177
- The MCP server writes that path (relative to the server process working
178
- directory). The DXF text is not sent back to the model; the tool result
179
- includes `savedFiles` with the absolute path. In the in-app CAD agent the same
180
- call downloads the file instead.
181
-
182
- ## Architecture
183
-
184
- ```
185
- MCP client --stdio--> cad-mcp-server (Node)
186
- |
187
- | Playwright (lazy)
188
- v
189
- Chromium (headless or headed)
190
- cad-simple-viewer + cad-agent-core
191
- createCadToolCatalog / execute_cad_script
192
- ```
193
-
194
- Headless sessions persist across tool calls until idle timeout. Headed sessions
195
- stay open until the MCP process exits.
196
-
197
- ## Library API
198
-
199
- ```ts
200
- import {
201
- createCadMcpServer,
202
- registerCadMcpTools,
203
- CadMcpSession,
204
- resolveVisible
205
- } from '@mlightcad/cad-mcp-server'
206
- ```
207
-
208
- `registerCadMcpTools` maps the same tool surface for a custom `McpServer`
209
- (e.g. a future in-page WebMCP host that already has `AcApDocManager`).
210
-
211
- ## Related packages
212
-
213
- - `@mlightcad/cad-script-core` — script host and tool catalog (data-model only; the Node side imports its `script-api` entry)
214
- - `@mlightcad/cad-agent-core` — binds the runtime to the viewer inside the Chromium runner page
215
- - `@mlightcad/cad-agent-plugin` — in-app chat agent
216
- - `@mlightcad/cad-script-plugin` — manual script console
217
- - `@mlightcad/cad-simple-viewer-cli` — AutoCAD `.scr` headless CLI (different script model)
1
+ # @mlightcad/cad-mcp-server
2
+
3
+ stdio [Model Context Protocol](https://modelcontextprotocol.io) server that lets
4
+ third-party agents (Claude Code, Cursor, Codex, …) drive CAD drawings through
5
+ the same **script-first** API as the in-app CAD Agent.
6
+
7
+ ## Why scripts, not hundreds of tools?
8
+
9
+ MCP is a great way to connect agents to CAD. It is a poor place to re-export
10
+ every drawing primitive as its own tool. A catalog of `draw_line`,
11
+ `draw_circle`, `set_entity_layer`, … never finishes, burns tokens on every
12
+ request, and still cannot cover one-off analysis (“find bolt-hole outliers by
13
+ layer and report them”).
14
+
15
+ This server follows the design in
16
+ [Building a CAD Agent: MCP, Tools, or Let AI Write Code?](https://dev.to/mlightcad/building-a-cad-agent-mcp-tools-or-let-ai-write-code-2nc4):
17
+
18
+ - **Tools** for clear lifecycle steps (open / blank drawing)
19
+ - **Scripts** for combining the CAD API into analysis, edits, and verification
20
+
21
+ The model writes a `cad.*` function body; the Chromium viewer runs it (headless
22
+ or with a visible window). Same runtime as the in-app CAD Agent
23
+ (`@mlightcad/cad-agent-core`), so external agents get flexibility without a
24
+ ballooning tool list — and with lower token and round-trip cost for bulk work.
25
+
26
+ ## Tools (intentionally small)
27
+
28
+ | Tool | Purpose |
29
+ | --- | --- |
30
+ | `open_drawing` | Open a local/remote DXF/DWG, or omit `path` for a blank ISO template |
31
+ | `execute_cad_script` | Run a `cad.*` JavaScript function body ([script API](https://mlightcad.github.io/cad-viewer/guide/script/overview.html)) |
32
+
33
+ Both tools accept optional `visible`:
34
+
35
+ | `visible` | Browser | Session lifecycle |
36
+ | --- | --- | --- |
37
+ | `false` / omit | Headless Chromium | Reused across tool calls; **auto-closes after idle** (default 30s) |
38
+ | `true` | Visible Chromium window | Stays open so the user can watch the drawing |
39
+
40
+ The agent chooses based on the user prompt (e.g. “open the browser so I can
41
+ see the drawing” → `visible: true`; batch QA → headless). Changing `visible`
42
+ after a session started rebuilds the browser and **resets drawing state**.
43
+
44
+ There are **no** per-entity `draw_line` / `draw_circle` tools. All drawing,
45
+ queries, edits, and context live inside one script call.
46
+
47
+ ## Works with cad-simple-viewer and cad-viewer
48
+
49
+ Both products share `AcApDocManager` from `@mlightcad/cad-simple-viewer`. This
50
+ server’s runner boots that kernel (not the Vue UI package). Scripts you write
51
+ for the Script panel or CAD Agent in either product are valid here, and the
52
+ reverse is true.
53
+
54
+ This package does **not** depend on `@mlightcad/cad-editor`.
55
+
56
+ ## Requirements
57
+
58
+ - Node.js ≥ 20
59
+ - Chromium for Playwright (`pnpm --filter @mlightcad/cad-mcp-server install-browser`)
60
+
61
+ ## Install / run
62
+
63
+ ```bash
64
+ pnpm --filter @mlightcad/cad-mcp-server build
65
+ pnpm --filter @mlightcad/cad-mcp-server install-browser
66
+ cad-mcp-server
67
+ # or: node packages/cad-mcp-server/dist/cli.js
68
+ ```
69
+
70
+ ### Environment variables
71
+
72
+ | Variable | Purpose |
73
+ | --- | --- |
74
+ | `CAD_MCP_VISIBLE=1` | Default headed when tools omit `visible` |
75
+ | `CAD_MCP_IDLE_CLOSE_MS` | Headless idle auto-close delay in ms (default `30000`) |
76
+
77
+ ## MCP client config
78
+
79
+ ### Cursor (this monorepo)
80
+
81
+ `npx` from the workspace root crashes npm (Arborist + workspace link). Use the
82
+ launcher, which runs npx from the OS temp directory:
83
+
84
+ ```json
85
+ {
86
+ "mcpServers": {
87
+ "cad": {
88
+ "command": "node",
89
+ "args": [
90
+ "${workspaceFolder}/packages/cad-mcp-server/scripts/run-published.mjs"
91
+ ]
92
+ }
93
+ }
94
+ }
95
+ ```
96
+
97
+ Override the pin with `CAD_MCP_SERVER_VERSION` (default `1.7.8-preview.1`).
98
+
99
+ To force a visible browser by default (agent can still pass `visible: false`):
100
+
101
+ ```json
102
+ {
103
+ "mcpServers": {
104
+ "cad": {
105
+ "command": "node",
106
+ "args": [
107
+ "${workspaceFolder}/packages/cad-mcp-server/dist/cli.js"
108
+ ],
109
+ "env": {
110
+ "CAD_MCP_VISIBLE": "1"
111
+ }
112
+ }
113
+ }
114
+ }
115
+ ```
116
+
117
+ ### Claude Code / Claude Desktop (outside this repo)
118
+
119
+ ```json
120
+ {
121
+ "mcpServers": {
122
+ "cad": {
123
+ "command": "npx",
124
+ "args": [
125
+ "-y",
126
+ "--package=@mlightcad/cad-mcp-server@1.7.8-preview.1",
127
+ "cad-mcp-server"
128
+ ]
129
+ }
130
+ }
131
+ }
132
+ ```
133
+
134
+ For local monorepo development against an unbuilt/unpublished tree, point at
135
+ the built CLI instead:
136
+
137
+ ```json
138
+ {
139
+ "mcpServers": {
140
+ "cad": {
141
+ "command": "node",
142
+ "args": [
143
+ "${workspaceFolder}/packages/cad-mcp-server/dist/cli.js"
144
+ ]
145
+ }
146
+ }
147
+ }
148
+ ```
149
+
150
+ ## Typical flow
151
+
152
+ 1. `open_drawing` with `{ "path": "./plan.dxf", "mode": "write" }`
153
+ (local path or http(s) URL; omit `path` to start blank).
154
+ Add `"visible": true` when the user should see the drawing.
155
+ 2. `execute_cad_script` with a function body:
156
+
157
+ ```js
158
+ let id
159
+ cad.edit.transaction('circle', tx => {
160
+ id = tx.drawCircle({ center: { x: 0, y: 0 }, radius: 100 })
161
+ })
162
+ cad.view.zoomExtents()
163
+ return cad.measure.report([
164
+ cad.measure.check('r', 100, cad.measure.radius(id))
165
+ ])
166
+ ```
167
+
168
+ `cad.view.capturePreview` is enabled; screenshots are returned as MCP image
169
+ content.
170
+
171
+ Save the drawing after edits:
172
+
173
+ ```js
174
+ cad.file.saveDxf('./plan-out.dxf')
175
+ cad.file.savePdf('./plan.pdf')
176
+ cad.file.saveHtml('./plan.html')
177
+ ```
178
+
179
+ The MCP server writes those paths (relative to the server process working
180
+ directory). File bodies are not sent back to the model; the tool result
181
+ includes `savedFiles` with the absolute path and byte size. In the in-app CAD
182
+ agent the same calls download the files instead. `saveHtml` uses the viewer
183
+ HTML pipeline (requires `viewer-runtime.iife.js` next to the runner page).
184
+
185
+ ## Architecture
186
+
187
+ ```
188
+ MCP client --stdio--> cad-mcp-server (Node)
189
+ |
190
+ | Playwright (lazy)
191
+ v
192
+ Chromium (headless or headed)
193
+ cad-simple-viewer + cad-agent-core
194
+ createCadToolCatalog / execute_cad_script
195
+ ```
196
+
197
+ Headless sessions persist across tool calls until idle timeout. Headed sessions
198
+ stay open until the MCP process exits.
199
+
200
+ ## Library API
201
+
202
+ ```ts
203
+ import {
204
+ createCadMcpServer,
205
+ registerCadMcpTools,
206
+ CadMcpSession,
207
+ resolveVisible
208
+ } from '@mlightcad/cad-mcp-server'
209
+ ```
210
+
211
+ `registerCadMcpTools` maps the same tool surface for a custom `McpServer`
212
+ (e.g. a future in-page WebMCP host that already has `AcApDocManager`).
213
+
214
+ ## Related packages
215
+
216
+ - `@mlightcad/cad-script-core` — script host and tool catalog (data-model only; the Node side imports its `script-api` entry)
217
+ - `@mlightcad/cad-agent-core` — binds the runtime to the viewer inside the Chromium runner page
218
+ - `@mlightcad/cad-agent-plugin` — in-app chat agent
219
+ - `@mlightcad/cad-script-plugin` — manual script console
220
+ - `@mlightcad/cad-simple-viewer-cli` — AutoCAD `.scr` headless CLI (different script model)
package/dist/session.js CHANGED
@@ -3,7 +3,7 @@ import { mkdir, readFile, writeFile } from 'node:fs/promises';
3
3
  import { createServer } from 'node:http';
4
4
  import path from 'node:path';
5
5
  import { fileURLToPath } from 'node:url';
6
- import { CAD_MCP_DXF_OUTBOX_KEY } from '@mlightcad/cad-script-core/script-api';
6
+ import { CAD_MCP_DXF_OUTBOX_KEY, CAD_MCP_FILE_OUTBOX_KEY } from '@mlightcad/cad-script-core/script-api';
7
7
  import { launchHeadlessChromium } from './headlessGpu.js';
8
8
  const DEFAULT_IDLE_CLOSE_MS = 30_000;
9
9
  async function writeDxfOutbox(page) {
@@ -34,6 +34,56 @@ async function writeDxfOutbox(page) {
34
34
  }
35
35
  return saved;
36
36
  }
37
+ async function writeFileOutbox(page) {
38
+ const items = await page.evaluate((key) => {
39
+ const host = window;
40
+ const queued = host[key] ?? [];
41
+ host[key] = [];
42
+ return queued;
43
+ }, CAD_MCP_FILE_OUTBOX_KEY);
44
+ const saved = [];
45
+ for (const item of items) {
46
+ const fileName = ensureBinaryFileName(item.fileName, item.mediaType);
47
+ const requested = item.path?.trim() || fileName;
48
+ const absolute = path.resolve(requested);
49
+ const target = ensureBinaryPath(absolute, item.mediaType);
50
+ await mkdir(path.dirname(target), { recursive: true });
51
+ const bytes = Buffer.from(item.bytesBase64, 'base64');
52
+ await writeFile(target, bytes);
53
+ saved.push({
54
+ path: target,
55
+ fileName: path.basename(target),
56
+ bytes: bytes.byteLength,
57
+ delivery: 'file'
58
+ });
59
+ }
60
+ return saved;
61
+ }
62
+ function binaryExtensionForMediaType(mediaType) {
63
+ if (mediaType.includes('pdf'))
64
+ return '.pdf';
65
+ if (mediaType.includes('zip'))
66
+ return '.zip';
67
+ if (mediaType.includes('html'))
68
+ return '.html';
69
+ return '';
70
+ }
71
+ function ensureBinaryFileName(fileName, mediaType) {
72
+ const extension = binaryExtensionForMediaType(mediaType);
73
+ if (!extension)
74
+ return fileName;
75
+ return fileName.toLowerCase().endsWith(extension)
76
+ ? fileName
77
+ : `${fileName}${extension}`;
78
+ }
79
+ function ensureBinaryPath(absolute, mediaType) {
80
+ const extension = binaryExtensionForMediaType(mediaType);
81
+ if (!extension)
82
+ return absolute;
83
+ return absolute.toLowerCase().endsWith(extension)
84
+ ? absolute
85
+ : `${absolute}${extension}`;
86
+ }
37
87
  function packageRoot() {
38
88
  return path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..');
39
89
  }
@@ -312,11 +362,24 @@ export class CadMcpSession {
312
362
  // drawings). Clear before evaluate so the prior idle timer cannot close us.
313
363
  this.clearIdleClose();
314
364
  try {
315
- const result = await this.page.evaluate(async (args) => {
316
- const api = window.__cadMcp;
317
- return api.executeCadScript(args);
318
- }, input);
319
- const written = await writeDxfOutbox(this.page);
365
+ let result;
366
+ try {
367
+ result = await this.page.evaluate(async (args) => {
368
+ const api = window.__cadMcp;
369
+ return api.executeCadScript(args);
370
+ }, input);
371
+ }
372
+ catch (error) {
373
+ // Drain any partial outbox so a failed evaluate cannot leak payloads
374
+ // into the next tool call.
375
+ await writeDxfOutbox(this.page).catch(() => []);
376
+ await writeFileOutbox(this.page).catch(() => []);
377
+ throw error;
378
+ }
379
+ const written = [
380
+ ...(await writeDxfOutbox(this.page)),
381
+ ...(await writeFileOutbox(this.page))
382
+ ];
320
383
  if (written.length) {
321
384
  result.savedFiles = written;
322
385
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}