@aman_asmuei/amem 0.19.0 → 0.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +6 -7
- package/dist/cli.js.map +1 -1
- package/dist/dashboard.d.ts +1 -1
- package/dist/dashboard.js +1 -1
- package/dist/dashboard.js.map +1 -1
- package/dist/index.js +3 -7
- package/dist/index.js.map +1 -1
- package/dist/tools/advanced.d.ts +1 -1
- package/dist/tools/advanced.js +1 -5
- package/dist/tools/advanced.js.map +1 -1
- package/dist/tools/graph.d.ts +1 -1
- package/dist/tools/graph.js +1 -2
- package/dist/tools/graph.js.map +1 -1
- package/dist/tools/index.d.ts +2 -2
- package/dist/tools/index.js +2 -2
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/log.d.ts +1 -1
- package/dist/tools/log.js +1 -2
- package/dist/tools/log.js.map +1 -1
- package/dist/tools/memory.d.ts +1 -2
- package/dist/tools/memory.js +16 -22
- package/dist/tools/memory.js.map +1 -1
- package/dist/tools/reminders.d.ts +1 -1
- package/dist/tools/reminders.js +4 -5
- package/dist/tools/reminders.js.map +1 -1
- package/dist/tools/versions.d.ts +1 -1
- package/dist/tools/versions.js +3 -4
- package/dist/tools/versions.js.map +1 -1
- package/dist/tools.test.js +1 -2
- package/dist/tools.test.js.map +1 -1
- package/package.json +3 -9
- package/dist/ann.d.ts +0 -26
- package/dist/ann.js +0 -155
- package/dist/ann.js.map +0 -1
- package/dist/auto-relate.d.ts +0 -14
- package/dist/auto-relate.js +0 -47
- package/dist/auto-relate.js.map +0 -1
- package/dist/config.d.ts +0 -51
- package/dist/config.js +0 -130
- package/dist/config.js.map +0 -1
- package/dist/database.d.ts +0 -165
- package/dist/database.js +0 -831
- package/dist/database.js.map +0 -1
- package/dist/database.test.d.ts +0 -1
- package/dist/database.test.js +0 -275
- package/dist/database.test.js.map +0 -1
- package/dist/doctor.d.ts +0 -23
- package/dist/doctor.js +0 -107
- package/dist/doctor.js.map +0 -1
- package/dist/embeddings.d.ts +0 -38
- package/dist/embeddings.js +0 -251
- package/dist/embeddings.js.map +0 -1
- package/dist/embeddings.test.d.ts +0 -1
- package/dist/embeddings.test.js +0 -106
- package/dist/embeddings.test.js.map +0 -1
- package/dist/extractor.d.ts +0 -13
- package/dist/extractor.js +0 -89
- package/dist/extractor.js.map +0 -1
- package/dist/memory.d.ts +0 -134
- package/dist/memory.js +0 -432
- package/dist/memory.js.map +0 -1
- package/dist/memory.test.d.ts +0 -1
- package/dist/memory.test.js +0 -172
- package/dist/memory.test.js.map +0 -1
- package/dist/query-expand.d.ts +0 -9
- package/dist/query-expand.js +0 -71
- package/dist/query-expand.js.map +0 -1
- package/dist/reflection.d.ts +0 -82
- package/dist/reflection.js +0 -414
- package/dist/reflection.js.map +0 -1
- package/dist/reflection.test.d.ts +0 -1
- package/dist/reflection.test.js +0 -453
- package/dist/reflection.test.js.map +0 -1
- package/dist/repair.d.ts +0 -8
- package/dist/repair.js +0 -90
- package/dist/repair.js.map +0 -1
- package/dist/schemas.d.ts +0 -1075
- package/dist/schemas.js +0 -311
- package/dist/schemas.js.map +0 -1
- package/dist/sync.d.ts +0 -85
- package/dist/sync.js +0 -304
- package/dist/sync.js.map +0 -1
- package/dist/tools/helpers.d.ts +0 -7
- package/dist/tools/helpers.js +0 -23
- package/dist/tools/helpers.js.map +0 -1
package/dist/sync.js
DELETED
|
@@ -1,304 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Sync engine: imports Claude Code auto-memory files into amem.
|
|
3
|
-
*
|
|
4
|
-
* Claude Code stores auto-memory as markdown files with YAML frontmatter:
|
|
5
|
-
* ~/.claude/projects/<escaped-path>/memory/MEMORY.md (index)
|
|
6
|
-
* ~/.claude/projects/<escaped-path>/memory/<name>.md (individual memories)
|
|
7
|
-
*
|
|
8
|
-
* Frontmatter format:
|
|
9
|
-
* ---
|
|
10
|
-
* name: <title>
|
|
11
|
-
* description: <one-line summary>
|
|
12
|
-
* type: user | feedback | project | reference
|
|
13
|
-
* ---
|
|
14
|
-
* <markdown body>
|
|
15
|
-
*
|
|
16
|
-
* Type mapping (Claude auto-memory → amem):
|
|
17
|
-
* feedback → correction (user corrections, constraints)
|
|
18
|
-
* project → decision (project-level decisions, architecture)
|
|
19
|
-
* user → preference (user profile, preferences)
|
|
20
|
-
* reference → topology (pointers to external resources, codebase locations)
|
|
21
|
-
*/
|
|
22
|
-
import path from "node:path";
|
|
23
|
-
import os from "node:os";
|
|
24
|
-
import fs from "node:fs";
|
|
25
|
-
import { generateEmbedding } from "./embeddings.js";
|
|
26
|
-
// ── Type mapping ────────────────────────────────────────
|
|
27
|
-
const CLAUDE_TO_AMEM_TYPE = {
|
|
28
|
-
feedback: "correction",
|
|
29
|
-
project: "decision",
|
|
30
|
-
user: "preference",
|
|
31
|
-
reference: "topology",
|
|
32
|
-
};
|
|
33
|
-
const CLAUDE_TO_CONFIDENCE = {
|
|
34
|
-
feedback: 1.0, // Corrections are high-confidence
|
|
35
|
-
project: 0.85,
|
|
36
|
-
user: 0.8,
|
|
37
|
-
reference: 0.7,
|
|
38
|
-
};
|
|
39
|
-
function parseFrontmatter(content, filePath) {
|
|
40
|
-
const match = content.match(/^---\s*\n([\s\S]*?)\n---\s*\n([\s\S]*)$/);
|
|
41
|
-
if (!match)
|
|
42
|
-
return null;
|
|
43
|
-
const frontmatter = match[1];
|
|
44
|
-
const body = match[2].trim();
|
|
45
|
-
// Simple YAML key-value parser (no dependency needed)
|
|
46
|
-
const fields = {};
|
|
47
|
-
for (const line of frontmatter.split("\n")) {
|
|
48
|
-
const kv = line.match(/^(\w+)\s*:\s*(.+)$/);
|
|
49
|
-
if (kv)
|
|
50
|
-
fields[kv[1]] = kv[2].trim();
|
|
51
|
-
}
|
|
52
|
-
if (!fields.name || !fields.type)
|
|
53
|
-
return null;
|
|
54
|
-
return {
|
|
55
|
-
name: fields.name,
|
|
56
|
-
description: fields.description || "",
|
|
57
|
-
type: fields.type,
|
|
58
|
-
body,
|
|
59
|
-
filePath,
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
// ── Discovery ───────────────────────────────────────────
|
|
63
|
-
/**
|
|
64
|
-
* Find all Claude auto-memory directories.
|
|
65
|
-
* Returns map of project path → memory directory.
|
|
66
|
-
*/
|
|
67
|
-
export function discoverClaudeMemories() {
|
|
68
|
-
const claudeDir = path.join(os.homedir(), ".claude", "projects");
|
|
69
|
-
const results = new Map();
|
|
70
|
-
if (!fs.existsSync(claudeDir))
|
|
71
|
-
return results;
|
|
72
|
-
try {
|
|
73
|
-
for (const entry of fs.readdirSync(claudeDir)) {
|
|
74
|
-
const memDir = path.join(claudeDir, entry, "memory");
|
|
75
|
-
if (fs.existsSync(memDir) && fs.statSync(memDir).isDirectory()) {
|
|
76
|
-
// Decode project path from directory name
|
|
77
|
-
const projectPath = entry.replace(/^-/, "/").replace(/-/g, "/");
|
|
78
|
-
results.set(projectPath, memDir);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
catch {
|
|
83
|
-
// Permission errors etc.
|
|
84
|
-
}
|
|
85
|
-
return results;
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Read all memory files from a Claude auto-memory directory.
|
|
89
|
-
*/
|
|
90
|
-
export function readClaudeMemoryDir(memDir) {
|
|
91
|
-
const files = [];
|
|
92
|
-
try {
|
|
93
|
-
for (const name of fs.readdirSync(memDir)) {
|
|
94
|
-
if (name === "MEMORY.md")
|
|
95
|
-
continue; // Skip index file
|
|
96
|
-
if (!name.endsWith(".md"))
|
|
97
|
-
continue;
|
|
98
|
-
const filePath = path.join(memDir, name);
|
|
99
|
-
const content = fs.readFileSync(filePath, "utf-8");
|
|
100
|
-
const parsed = parseFrontmatter(content, filePath);
|
|
101
|
-
if (parsed)
|
|
102
|
-
files.push(parsed);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
catch {
|
|
106
|
-
// Read errors
|
|
107
|
-
}
|
|
108
|
-
return files;
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Sync Claude auto-memory into amem.
|
|
112
|
-
*
|
|
113
|
-
* @param db - amem database
|
|
114
|
-
* @param projectFilter - only sync this project path (optional, syncs all if omitted)
|
|
115
|
-
* @param dryRun - preview without writing (default: false)
|
|
116
|
-
*/
|
|
117
|
-
export async function syncFromClaude(db, projectFilter, dryRun = false) {
|
|
118
|
-
const discovered = discoverClaudeMemories();
|
|
119
|
-
const result = {
|
|
120
|
-
imported: 0,
|
|
121
|
-
skipped: 0,
|
|
122
|
-
updated: 0,
|
|
123
|
-
details: [],
|
|
124
|
-
projectsScanned: 0,
|
|
125
|
-
};
|
|
126
|
-
for (const [projectPath, memDir] of discovered) {
|
|
127
|
-
if (projectFilter && !projectPath.includes(projectFilter))
|
|
128
|
-
continue;
|
|
129
|
-
result.projectsScanned++;
|
|
130
|
-
const files = readClaudeMemoryDir(memDir);
|
|
131
|
-
const scope = `project:${projectPath}`;
|
|
132
|
-
for (const file of files) {
|
|
133
|
-
const amemType = CLAUDE_TO_AMEM_TYPE[file.type];
|
|
134
|
-
if (!amemType) {
|
|
135
|
-
result.skipped++;
|
|
136
|
-
result.details.push({
|
|
137
|
-
action: "skipped",
|
|
138
|
-
name: file.name,
|
|
139
|
-
type: file.type,
|
|
140
|
-
reason: `Unknown Claude memory type: ${file.type}`,
|
|
141
|
-
});
|
|
142
|
-
continue;
|
|
143
|
-
}
|
|
144
|
-
// Build the memory content: combine name + body for richness
|
|
145
|
-
const content = file.body.length > 0
|
|
146
|
-
? `${file.name}: ${file.body}`
|
|
147
|
-
: file.name;
|
|
148
|
-
// Truncate very long memories (Claude project overviews can be huge)
|
|
149
|
-
const truncated = content.length > 5000
|
|
150
|
-
? content.slice(0, 5000) + "\n\n[truncated from Claude auto-memory]"
|
|
151
|
-
: content;
|
|
152
|
-
// Check for existing duplicate by content hash
|
|
153
|
-
const existing = db.findByContentHash(truncated);
|
|
154
|
-
if (existing) {
|
|
155
|
-
result.skipped++;
|
|
156
|
-
result.details.push({
|
|
157
|
-
action: "skipped",
|
|
158
|
-
name: file.name,
|
|
159
|
-
type: amemType,
|
|
160
|
-
reason: "Already exists in amem (content hash match)",
|
|
161
|
-
});
|
|
162
|
-
continue;
|
|
163
|
-
}
|
|
164
|
-
// Check for semantic near-duplicate by name
|
|
165
|
-
const nameMatch = db.fullTextSearch(file.name, 1);
|
|
166
|
-
if (nameMatch.length > 0 && nameMatch[0].content.includes(file.name.split(":")[0])) {
|
|
167
|
-
result.skipped++;
|
|
168
|
-
result.details.push({
|
|
169
|
-
action: "skipped",
|
|
170
|
-
name: file.name,
|
|
171
|
-
type: amemType,
|
|
172
|
-
reason: `Similar memory already exists: "${nameMatch[0].content.slice(0, 60)}..."`,
|
|
173
|
-
});
|
|
174
|
-
continue;
|
|
175
|
-
}
|
|
176
|
-
if (dryRun) {
|
|
177
|
-
result.imported++;
|
|
178
|
-
result.details.push({
|
|
179
|
-
action: "imported",
|
|
180
|
-
name: file.name,
|
|
181
|
-
type: amemType,
|
|
182
|
-
reason: "(dry run)",
|
|
183
|
-
});
|
|
184
|
-
continue;
|
|
185
|
-
}
|
|
186
|
-
// Generate embedding and store
|
|
187
|
-
const embedding = await generateEmbedding(truncated);
|
|
188
|
-
const confidence = CLAUDE_TO_CONFIDENCE[file.type] ?? 0.7;
|
|
189
|
-
// Use global scope for user/feedback, project scope for project/reference
|
|
190
|
-
const memScope = (file.type === "user" || file.type === "feedback") ? "global" : scope;
|
|
191
|
-
const tags = ["claude-sync", file.type];
|
|
192
|
-
if (file.description) {
|
|
193
|
-
// Extract potential tags from description
|
|
194
|
-
const words = file.description.toLowerCase().split(/[\s,\-]+/);
|
|
195
|
-
for (const w of words) {
|
|
196
|
-
if (w.length > 3 && w.length < 20 && !tags.includes(w)) {
|
|
197
|
-
tags.push(w);
|
|
198
|
-
if (tags.length >= 8)
|
|
199
|
-
break;
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
db.insertMemory({
|
|
204
|
-
content: truncated,
|
|
205
|
-
type: amemType,
|
|
206
|
-
tags,
|
|
207
|
-
confidence,
|
|
208
|
-
source: "claude-auto-memory",
|
|
209
|
-
embedding,
|
|
210
|
-
scope: memScope,
|
|
211
|
-
});
|
|
212
|
-
result.imported++;
|
|
213
|
-
result.details.push({
|
|
214
|
-
action: "imported",
|
|
215
|
-
name: file.name,
|
|
216
|
-
type: amemType,
|
|
217
|
-
});
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
return result;
|
|
221
|
-
}
|
|
222
|
-
/**
|
|
223
|
-
* Export shareable memories as a JSON file for team sync.
|
|
224
|
-
* Filters out private/personal memories (type=preference with non-global scope).
|
|
225
|
-
*/
|
|
226
|
-
export async function exportForTeam(db, outputDir, options) {
|
|
227
|
-
const { userId, includeTypes, minConfidence } = options;
|
|
228
|
-
const allowedTypes = includeTypes ?? ["correction", "decision", "pattern", "topology", "fact"];
|
|
229
|
-
const all = db.getAll();
|
|
230
|
-
const filtered = all.filter((m) => {
|
|
231
|
-
// Filter out private/personal preferences (non-global scope)
|
|
232
|
-
if (m.type === "preference" && m.scope !== "global")
|
|
233
|
-
return false;
|
|
234
|
-
// Only include allowed types
|
|
235
|
-
if (!allowedTypes.includes(m.type))
|
|
236
|
-
return false;
|
|
237
|
-
// Min confidence filter
|
|
238
|
-
if (minConfidence !== undefined && m.confidence < minConfidence)
|
|
239
|
-
return false;
|
|
240
|
-
return true;
|
|
241
|
-
});
|
|
242
|
-
const memories = filtered.map((m) => ({
|
|
243
|
-
content: m.content,
|
|
244
|
-
type: m.type,
|
|
245
|
-
tags: m.tags,
|
|
246
|
-
confidence: m.confidence,
|
|
247
|
-
source: m.source,
|
|
248
|
-
scope: m.scope,
|
|
249
|
-
createdAt: m.createdAt,
|
|
250
|
-
}));
|
|
251
|
-
const exportData = {
|
|
252
|
-
version: 1,
|
|
253
|
-
userId,
|
|
254
|
-
exportedAt: Date.now(),
|
|
255
|
-
memories,
|
|
256
|
-
};
|
|
257
|
-
const timestamp = Date.now();
|
|
258
|
-
const fileName = `amem-team-${userId}-${timestamp}.json`;
|
|
259
|
-
const filePath = path.join(outputDir, fileName);
|
|
260
|
-
fs.mkdirSync(outputDir, { recursive: true });
|
|
261
|
-
fs.writeFileSync(filePath, JSON.stringify(exportData, null, 2) + "\n");
|
|
262
|
-
return { file: filePath, count: memories.length };
|
|
263
|
-
}
|
|
264
|
-
/**
|
|
265
|
-
* Import a teammate's exported memory file.
|
|
266
|
-
* Deduplicates by content hash and lowers confidence by 0.1 for second-hand memories.
|
|
267
|
-
*/
|
|
268
|
-
export async function importFromTeam(db, filePath, options) {
|
|
269
|
-
const dryRun = options?.dryRun ?? false;
|
|
270
|
-
const raw = fs.readFileSync(filePath, "utf-8");
|
|
271
|
-
const data = JSON.parse(raw);
|
|
272
|
-
const fromUser = data.userId;
|
|
273
|
-
let imported = 0;
|
|
274
|
-
let skipped = 0;
|
|
275
|
-
for (const entry of data.memories) {
|
|
276
|
-
// Dedup: skip if content already exists
|
|
277
|
-
const existing = db.findByContentHash(entry.content);
|
|
278
|
-
if (existing) {
|
|
279
|
-
skipped++;
|
|
280
|
-
continue;
|
|
281
|
-
}
|
|
282
|
-
if (dryRun) {
|
|
283
|
-
imported++;
|
|
284
|
-
continue;
|
|
285
|
-
}
|
|
286
|
-
// Lower confidence by 0.1 for second-hand memories, floor at 0.1
|
|
287
|
-
const confidence = Math.max(0.1, entry.confidence - 0.1);
|
|
288
|
-
// Tag with team-sync and the original userId
|
|
289
|
-
const tags = [...entry.tags, "team-sync", `from:${fromUser}`];
|
|
290
|
-
const embedding = await generateEmbedding(entry.content);
|
|
291
|
-
db.insertMemory({
|
|
292
|
-
content: entry.content,
|
|
293
|
-
type: entry.type,
|
|
294
|
-
tags,
|
|
295
|
-
confidence,
|
|
296
|
-
source: `team-sync:${fromUser}`,
|
|
297
|
-
embedding,
|
|
298
|
-
scope: entry.scope,
|
|
299
|
-
});
|
|
300
|
-
imported++;
|
|
301
|
-
}
|
|
302
|
-
return { imported, skipped, from: fromUser };
|
|
303
|
-
}
|
|
304
|
-
//# sourceMappingURL=sync.js.map
|
package/dist/sync.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/helpers.d.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { type MemoryTypeValue } from "../memory.js";
|
|
2
|
-
export declare const MEMORY_TYPES: ("correction" | "decision" | "pattern" | "preference" | "topology" | "fact")[];
|
|
3
|
-
export declare const CHARACTER_LIMIT = 50000;
|
|
4
|
-
export declare const SHORT_ID_LENGTH = 8;
|
|
5
|
-
export declare const TYPE_ORDER: MemoryTypeValue[];
|
|
6
|
-
export declare function shortId(id: string): string;
|
|
7
|
-
export declare function formatAge(timestamp: number): string;
|
package/dist/tools/helpers.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { MemoryType } from "../memory.js";
|
|
2
|
-
export const MEMORY_TYPES = Object.values(MemoryType);
|
|
3
|
-
export const CHARACTER_LIMIT = 50_000;
|
|
4
|
-
export const SHORT_ID_LENGTH = 8;
|
|
5
|
-
export const TYPE_ORDER = ["correction", "decision", "pattern", "preference", "topology", "fact"];
|
|
6
|
-
export function shortId(id) {
|
|
7
|
-
return id.slice(0, SHORT_ID_LENGTH);
|
|
8
|
-
}
|
|
9
|
-
export function formatAge(timestamp) {
|
|
10
|
-
const ms = Date.now() - timestamp;
|
|
11
|
-
const minutes = Math.floor(ms / 60000);
|
|
12
|
-
if (minutes < 60)
|
|
13
|
-
return `${minutes}m ago`;
|
|
14
|
-
const hours = Math.floor(minutes / 60);
|
|
15
|
-
if (hours < 24)
|
|
16
|
-
return `${hours}h ago`;
|
|
17
|
-
const days = Math.floor(hours / 24);
|
|
18
|
-
if (days < 30)
|
|
19
|
-
return `${days}d ago`;
|
|
20
|
-
const months = Math.floor(days / 30);
|
|
21
|
-
return `${months}mo ago`;
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/tools/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAwB,MAAM,cAAc,CAAC;AAEhE,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACtD,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC;AACtC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC;AAEjC,MAAM,CAAC,MAAM,UAAU,GAAsB,CAAC,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;AAErH,MAAM,UAAU,OAAO,CAAC,EAAU;IAChC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,SAAiB;IACzC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IAClC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC;IACvC,IAAI,OAAO,GAAG,EAAE;QAAE,OAAO,GAAG,OAAO,OAAO,CAAC;IAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IACvC,IAAI,KAAK,GAAG,EAAE;QAAE,OAAO,GAAG,KAAK,OAAO,CAAC;IACvC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;IACpC,IAAI,IAAI,GAAG,EAAE;QAAE,OAAO,GAAG,IAAI,OAAO,CAAC;IACrC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;IACrC,OAAO,GAAG,MAAM,QAAQ,CAAC;AAC3B,CAAC"}
|