@inferevents/mcp 0.5.3 → 1.0.2
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/api-client.d.ts +141 -59
- package/dist/api-client.d.ts.map +1 -1
- package/dist/api-client.js +59 -69
- package/dist/api-client.js.map +1 -1
- package/dist/config.d.ts +2 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +19 -0
- package/dist/config.js.map +1 -1
- package/dist/index.js +0 -0
- package/dist/remote.d.ts +1 -1
- package/dist/remote.d.ts.map +1 -1
- package/dist/remote.js +5 -0
- package/dist/remote.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +90 -186
- package/dist/server.js.map +1 -1
- package/dist/tool-result.d.ts +34 -0
- package/dist/tool-result.d.ts.map +1 -0
- package/dist/tool-result.js +30 -0
- package/dist/tool-result.js.map +1 -0
- package/dist/tools/annotate-span.d.ts +7 -0
- package/dist/tools/annotate-span.d.ts.map +1 -0
- package/dist/tools/annotate-span.js +16 -0
- package/dist/tools/annotate-span.js.map +1 -0
- package/dist/tools/annotate-trace.d.ts +7 -0
- package/dist/tools/annotate-trace.d.ts.map +1 -0
- package/dist/tools/annotate-trace.js +16 -0
- package/dist/tools/annotate-trace.js.map +1 -0
- package/dist/tools/create-project.d.ts.map +1 -1
- package/dist/tools/create-project.js +39 -7
- package/dist/tools/create-project.js.map +1 -1
- package/dist/tools/deprecated-tools.d.ts +16 -0
- package/dist/tools/deprecated-tools.d.ts.map +1 -0
- package/dist/tools/deprecated-tools.js +78 -0
- package/dist/tools/deprecated-tools.js.map +1 -0
- package/dist/tools/deprecated.d.ts +25 -0
- package/dist/tools/deprecated.d.ts.map +1 -0
- package/dist/tools/deprecated.js +42 -0
- package/dist/tools/deprecated.js.map +1 -0
- package/dist/tools/get-cost-stats.d.ts +18 -0
- package/dist/tools/get-cost-stats.d.ts.map +1 -0
- package/dist/tools/get-cost-stats.js +88 -0
- package/dist/tools/get-cost-stats.js.map +1 -0
- package/dist/tools/get-error-spans.d.ts +8 -0
- package/dist/tools/get-error-spans.d.ts.map +1 -0
- package/dist/tools/get-error-spans.js +25 -0
- package/dist/tools/get-error-spans.js.map +1 -0
- package/dist/tools/get-insights.d.ts.map +1 -1
- package/dist/tools/get-insights.js +74 -109
- package/dist/tools/get-insights.js.map +1 -1
- package/dist/tools/get-latency-stats.d.ts +7 -0
- package/dist/tools/get-latency-stats.d.ts.map +1 -0
- package/dist/tools/get-latency-stats.js +28 -0
- package/dist/tools/get-latency-stats.js.map +1 -0
- package/dist/tools/get-project-summary.d.ts +0 -39
- package/dist/tools/get-project-summary.d.ts.map +1 -1
- package/dist/tools/get-project-summary.js +101 -79
- package/dist/tools/get-project-summary.js.map +1 -1
- package/dist/tools/get-span.d.ts +6 -0
- package/dist/tools/get-span.d.ts.map +1 -0
- package/dist/tools/get-span.js +30 -0
- package/dist/tools/get-span.js.map +1 -0
- package/dist/tools/get-token-usage.d.ts +7 -0
- package/dist/tools/get-token-usage.d.ts.map +1 -0
- package/dist/tools/get-token-usage.js +25 -0
- package/dist/tools/get-token-usage.js.map +1 -0
- package/dist/tools/get-trace.d.ts +6 -0
- package/dist/tools/get-trace.d.ts.map +1 -0
- package/dist/tools/get-trace.js +28 -0
- package/dist/tools/get-trace.js.map +1 -0
- package/dist/tools/list-spans.d.ts +15 -0
- package/dist/tools/list-spans.d.ts.map +1 -0
- package/dist/tools/list-spans.js +19 -0
- package/dist/tools/list-spans.js.map +1 -0
- package/dist/tools/schemas.d.ts +45 -0
- package/dist/tools/schemas.d.ts.map +1 -0
- package/dist/tools/schemas.js +86 -0
- package/dist/tools/schemas.js.map +1 -0
- package/dist/tools/switch-project.d.ts.map +1 -1
- package/dist/tools/switch-project.js +56 -5
- package/dist/tools/switch-project.js.map +1 -1
- package/package.json +2 -2
- package/dist/tools/annotate-thread.d.ts +0 -11
- package/dist/tools/annotate-thread.d.ts.map +0 -1
- package/dist/tools/annotate-thread.js +0 -23
- package/dist/tools/annotate-thread.js.map +0 -1
- package/dist/tools/get-event-counts.d.ts +0 -23
- package/dist/tools/get-event-counts.d.ts.map +0 -1
- package/dist/tools/get-event-counts.js +0 -50
- package/dist/tools/get-event-counts.js.map +0 -1
- package/dist/tools/get-ontology.d.ts +0 -9
- package/dist/tools/get-ontology.d.ts.map +0 -1
- package/dist/tools/get-ontology.js +0 -62
- package/dist/tools/get-ontology.js.map +0 -1
- package/dist/tools/get-retention.d.ts +0 -11
- package/dist/tools/get-retention.d.ts.map +0 -1
- package/dist/tools/get-retention.js +0 -87
- package/dist/tools/get-retention.js.map +0 -1
- package/dist/tools/get-top-events.d.ts +0 -11
- package/dist/tools/get-top-events.d.ts.map +0 -1
- package/dist/tools/get-top-events.js +0 -74
- package/dist/tools/get-top-events.js.map +0 -1
- package/dist/tools/get-user-journey.d.ts +0 -10
- package/dist/tools/get-user-journey.d.ts.map +0 -1
- package/dist/tools/get-user-journey.js +0 -143
- package/dist/tools/get-user-journey.js.map +0 -1
- package/dist/tools/update-ontology.d.ts +0 -37
- package/dist/tools/update-ontology.d.ts.map +0 -1
- package/dist/tools/update-ontology.js +0 -51
- package/dist/tools/update-ontology.js.map +0 -1
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { miniBarChart, sanitize } from "../charts.js";
|
|
3
|
-
import { getTip } from "../tips.js";
|
|
4
|
-
export const getUserJourneySchema = {
|
|
5
|
-
user_id: z.string().describe("The user ID to look up"),
|
|
6
|
-
time_range: z
|
|
7
|
-
.string()
|
|
8
|
-
.optional()
|
|
9
|
-
.describe('Time range to filter events: "last_24h", "last_7d", "last_30d", or ISO range'),
|
|
10
|
-
limit: z
|
|
11
|
-
.number()
|
|
12
|
-
.optional()
|
|
13
|
-
.describe("Max events to return (default 50, max 200)"),
|
|
14
|
-
};
|
|
15
|
-
const SESSION_GAP_MS = 30 * 60 * 1000; // 30 minutes
|
|
16
|
-
export async function handleGetUserJourney(client, input) {
|
|
17
|
-
const result = await client.getUserJourney({
|
|
18
|
-
userId: input.user_id,
|
|
19
|
-
timeRange: input.time_range,
|
|
20
|
-
limit: input.limit,
|
|
21
|
-
});
|
|
22
|
-
const chart = [];
|
|
23
|
-
if (result.warning) {
|
|
24
|
-
chart.push(`⚠️ ${result.warning}`);
|
|
25
|
-
chart.push("");
|
|
26
|
-
}
|
|
27
|
-
chart.push(`User Journey: ${input.user_id}`);
|
|
28
|
-
if (input.time_range) {
|
|
29
|
-
chart.push(`Time range: ${input.time_range}`);
|
|
30
|
-
}
|
|
31
|
-
chart.push(`${"─".repeat(50)}`);
|
|
32
|
-
chart.push(`Events: ${result.events.length}`);
|
|
33
|
-
if (result.events.length === 0) {
|
|
34
|
-
chart.push("");
|
|
35
|
-
chart.push("No events found for this user. Check that the user ID is correct");
|
|
36
|
-
chart.push("and that events have been tracked.");
|
|
37
|
-
return "Present this to the user exactly as-is:\n\n```\n" + chart.join("\n") + "\n```";
|
|
38
|
-
}
|
|
39
|
-
chart.push("");
|
|
40
|
-
// Group events into sessions (30min gap)
|
|
41
|
-
const sessions = [];
|
|
42
|
-
let currentSession = [];
|
|
43
|
-
let lastTime = null;
|
|
44
|
-
for (const event of result.events) {
|
|
45
|
-
const time = new Date(event.timestamp);
|
|
46
|
-
if (lastTime && time.getTime() - lastTime.getTime() > SESSION_GAP_MS) {
|
|
47
|
-
if (currentSession.length > 0) {
|
|
48
|
-
sessions.push({
|
|
49
|
-
events: currentSession,
|
|
50
|
-
start: new Date(currentSession[0].timestamp),
|
|
51
|
-
end: new Date(currentSession[currentSession.length - 1].timestamp),
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
currentSession = [];
|
|
55
|
-
}
|
|
56
|
-
currentSession.push(event);
|
|
57
|
-
lastTime = time;
|
|
58
|
-
}
|
|
59
|
-
if (currentSession.length > 0) {
|
|
60
|
-
sessions.push({
|
|
61
|
-
events: currentSession,
|
|
62
|
-
start: new Date(currentSession[0].timestamp),
|
|
63
|
-
end: new Date(currentSession[currentSession.length - 1].timestamp),
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
// Render sessions
|
|
67
|
-
for (let i = 0; i < sessions.length; i++) {
|
|
68
|
-
const session = sessions[i];
|
|
69
|
-
const duration = Math.round((session.end.getTime() - session.start.getTime()) / 60000);
|
|
70
|
-
const dateStr = session.start.toLocaleDateString("en-US", {
|
|
71
|
-
month: "short",
|
|
72
|
-
day: "numeric",
|
|
73
|
-
});
|
|
74
|
-
const timeStr = session.start.toLocaleTimeString("en-US", {
|
|
75
|
-
hour: "2-digit",
|
|
76
|
-
minute: "2-digit",
|
|
77
|
-
hour12: false,
|
|
78
|
-
});
|
|
79
|
-
const durationStr = duration < 1 ? "<1 min" : duration < 60 ? `${duration} min` : `${(duration / 60).toFixed(1)} hrs`;
|
|
80
|
-
chart.push(`Session ${i + 1} — ${dateStr} ${timeStr} (${durationStr}, ${session.events.length} events)`);
|
|
81
|
-
for (const event of session.events) {
|
|
82
|
-
const ts = new Date(event.timestamp).toLocaleTimeString("en-US", {
|
|
83
|
-
hour: "2-digit",
|
|
84
|
-
minute: "2-digit",
|
|
85
|
-
second: "2-digit",
|
|
86
|
-
hour12: false,
|
|
87
|
-
});
|
|
88
|
-
const propsEntries = Object.entries(event.properties).filter(([, v]) => v !== null);
|
|
89
|
-
let propStr = "";
|
|
90
|
-
if (propsEntries.length > 0) {
|
|
91
|
-
const formatted = propsEntries
|
|
92
|
-
.slice(0, 3) // show max 3 props inline
|
|
93
|
-
.map(([k, v]) => `${sanitize(k)}=${sanitize(v)}`)
|
|
94
|
-
.join(", ");
|
|
95
|
-
const more = propsEntries.length > 3 ? ` +${propsEntries.length - 3} more` : "";
|
|
96
|
-
propStr = ` — ${formatted}${more}`;
|
|
97
|
-
}
|
|
98
|
-
// Icon by event type
|
|
99
|
-
let icon = "·";
|
|
100
|
-
if (event.event_name === "error")
|
|
101
|
-
icon = "✗";
|
|
102
|
-
else if (event.event_name === "page_view")
|
|
103
|
-
icon = "○";
|
|
104
|
-
else if (event.event_name === "click")
|
|
105
|
-
icon = "●";
|
|
106
|
-
else if (event.event_name === "form_submit")
|
|
107
|
-
icon = "▸";
|
|
108
|
-
else if (event.event_name === "session_start")
|
|
109
|
-
icon = "▶";
|
|
110
|
-
else if (event.event_name.includes("signup") || event.event_name.includes("register"))
|
|
111
|
-
icon = "✓";
|
|
112
|
-
else if (event.event_name.includes("purchase") || event.event_name.includes("pay"))
|
|
113
|
-
icon = "$";
|
|
114
|
-
chart.push(` ${ts} ${icon} ${event.event_name}${propStr}`);
|
|
115
|
-
}
|
|
116
|
-
chart.push("");
|
|
117
|
-
}
|
|
118
|
-
// Event frequency summary with bar chart
|
|
119
|
-
const eventCounts = new Map();
|
|
120
|
-
for (const event of result.events) {
|
|
121
|
-
eventCounts.set(event.event_name, (eventCounts.get(event.event_name) ?? 0) + 1);
|
|
122
|
-
}
|
|
123
|
-
const sorted = [...eventCounts.entries()].sort((a, b) => b[1] - a[1]);
|
|
124
|
-
chart.push("Event Frequency");
|
|
125
|
-
chart.push(miniBarChart(sorted.map(([key, count]) => ({ key, count }))));
|
|
126
|
-
// Time span
|
|
127
|
-
if (result.events.length >= 2) {
|
|
128
|
-
const first = new Date(result.events[0].timestamp);
|
|
129
|
-
const last = new Date(result.events[result.events.length - 1].timestamp);
|
|
130
|
-
const spanMs = Math.abs(last.getTime() - first.getTime());
|
|
131
|
-
const spanDays = spanMs / (1000 * 60 * 60 * 24);
|
|
132
|
-
chart.push("");
|
|
133
|
-
if (spanDays < 1) {
|
|
134
|
-
chart.push(`Total span: ${(spanMs / 60000).toFixed(0)} minutes across ${sessions.length} session(s)`);
|
|
135
|
-
}
|
|
136
|
-
else {
|
|
137
|
-
chart.push(`Total span: ${spanDays.toFixed(1)} days across ${sessions.length} session(s)`);
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
const output = "Present this chart to the user exactly as-is:\n\n```\n" + chart.join("\n") + "\n```" + getTip("afterJourney");
|
|
141
|
-
return output;
|
|
142
|
-
}
|
|
143
|
-
//# sourceMappingURL=get-user-journey.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get-user-journey.js","sourceRoot":"","sources":["../../src/tools/get-user-journey.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import type { ApiClient } from "../api-client.js";
|
|
3
|
-
export declare const updateOntologySchema: {
|
|
4
|
-
entries: z.ZodArray<z.ZodObject<{
|
|
5
|
-
event_name: z.ZodString;
|
|
6
|
-
category: z.ZodEnum<["activation", "engagement", "monetization", "referral", "noise"]>;
|
|
7
|
-
funnel_stage: z.ZodOptional<z.ZodNumber>;
|
|
8
|
-
description: z.ZodOptional<z.ZodString>;
|
|
9
|
-
success_indicator: z.ZodOptional<z.ZodBoolean>;
|
|
10
|
-
status: z.ZodDefault<z.ZodEnum<["proposed", "confirmed", "rejected"]>>;
|
|
11
|
-
}, "strip", z.ZodTypeAny, {
|
|
12
|
-
event_name: string;
|
|
13
|
-
status: "proposed" | "confirmed" | "rejected";
|
|
14
|
-
category: "activation" | "engagement" | "monetization" | "referral" | "noise";
|
|
15
|
-
funnel_stage?: number | undefined;
|
|
16
|
-
description?: string | undefined;
|
|
17
|
-
success_indicator?: boolean | undefined;
|
|
18
|
-
}, {
|
|
19
|
-
event_name: string;
|
|
20
|
-
category: "activation" | "engagement" | "monetization" | "referral" | "noise";
|
|
21
|
-
status?: "proposed" | "confirmed" | "rejected" | undefined;
|
|
22
|
-
funnel_stage?: number | undefined;
|
|
23
|
-
description?: string | undefined;
|
|
24
|
-
success_indicator?: boolean | undefined;
|
|
25
|
-
}>, "many">;
|
|
26
|
-
};
|
|
27
|
-
export declare function handleUpdateOntology(client: ApiClient, params: {
|
|
28
|
-
entries: Array<{
|
|
29
|
-
event_name: string;
|
|
30
|
-
category: string;
|
|
31
|
-
funnel_stage?: number;
|
|
32
|
-
description?: string;
|
|
33
|
-
success_indicator?: boolean;
|
|
34
|
-
status?: string;
|
|
35
|
-
}>;
|
|
36
|
-
}): Promise<string>;
|
|
37
|
-
//# sourceMappingURL=update-ontology.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"update-ontology.d.ts","sourceRoot":"","sources":["../../src/tools/update-ontology.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;CA8BhC,CAAC;AAEF,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE;IAAE,OAAO,EAAE,KAAK,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC,CAAA;CAAE,GACH,OAAO,CAAC,MAAM,CAAC,CAwBjB"}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
export const updateOntologySchema = {
|
|
3
|
-
entries: z
|
|
4
|
-
.array(z.object({
|
|
5
|
-
event_name: z.string().describe("The event name to classify"),
|
|
6
|
-
category: z
|
|
7
|
-
.enum(["activation", "engagement", "monetization", "referral", "noise"])
|
|
8
|
-
.describe("Product category for this event"),
|
|
9
|
-
funnel_stage: z
|
|
10
|
-
.number()
|
|
11
|
-
.int()
|
|
12
|
-
.optional()
|
|
13
|
-
.describe("Optional funnel position (0 = earliest). Events are ordered by this value."),
|
|
14
|
-
description: z
|
|
15
|
-
.string()
|
|
16
|
-
.optional()
|
|
17
|
-
.describe("Optional human-readable description of what this event means"),
|
|
18
|
-
success_indicator: z
|
|
19
|
-
.boolean()
|
|
20
|
-
.optional()
|
|
21
|
-
.describe("Whether this event indicates a successful outcome (default false)"),
|
|
22
|
-
status: z
|
|
23
|
-
.enum(["proposed", "confirmed", "rejected"])
|
|
24
|
-
.default("confirmed")
|
|
25
|
-
.describe("Status of this classification. Use 'proposed' when suggesting to the developer, 'confirmed' when the developer agrees."),
|
|
26
|
-
}))
|
|
27
|
-
.min(1)
|
|
28
|
-
.max(100)
|
|
29
|
-
.describe("List of event ontology entries to create or update"),
|
|
30
|
-
};
|
|
31
|
-
export async function handleUpdateOntology(client, params) {
|
|
32
|
-
const result = await client.updateOntology(params.entries);
|
|
33
|
-
const lines = [];
|
|
34
|
-
if (result.updated === result.total) {
|
|
35
|
-
lines.push(`Updated ${result.updated} event ontology entries.`);
|
|
36
|
-
}
|
|
37
|
-
else {
|
|
38
|
-
lines.push(`Updated ${result.updated} of ${result.total} entries.`);
|
|
39
|
-
}
|
|
40
|
-
lines.push("");
|
|
41
|
-
lines.push("Summary of changes:");
|
|
42
|
-
for (const entry of params.entries) {
|
|
43
|
-
const status = entry.status ?? "confirmed";
|
|
44
|
-
const stage = entry.funnel_stage !== undefined ? ` (stage ${entry.funnel_stage})` : "";
|
|
45
|
-
lines.push(` ${entry.event_name} → ${entry.category}${stage} [${status}]`);
|
|
46
|
-
}
|
|
47
|
-
lines.push("");
|
|
48
|
-
lines.push("Use `get_ontology` to view the full event ontology.");
|
|
49
|
-
return lines.join("\n");
|
|
50
|
-
}
|
|
51
|
-
//# sourceMappingURL=update-ontology.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"update-ontology.js","sourceRoot":"","sources":["../../src/tools/update-ontology.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,OAAO,EAAE,CAAC;SACP,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;QACP,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QAC7D,QAAQ,EAAE,CAAC;aACR,IAAI,CAAC,CAAC,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;aACvE,QAAQ,CAAC,iCAAiC,CAAC;QAC9C,YAAY,EAAE,CAAC;aACZ,MAAM,EAAE;aACR,GAAG,EAAE;aACL,QAAQ,EAAE;aACV,QAAQ,CAAC,4EAA4E,CAAC;QACzF,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,8DAA8D,CAAC;QAC3E,iBAAiB,EAAE,CAAC;aACjB,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CAAC,mEAAmE,CAAC;QAChF,MAAM,EAAE,CAAC;aACN,IAAI,CAAC,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;aAC3C,OAAO,CAAC,WAAW,CAAC;aACpB,QAAQ,CAAC,wHAAwH,CAAC;KACtI,CAAC,CACH;SACA,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,CAAC,oDAAoD,CAAC;CAClE,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAiB,EACjB,MAOI;IAEJ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE3D,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,OAAO,0BAA0B,CAAC,CAAC;IAClE,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,OAAO,OAAO,MAAM,CAAC,KAAK,WAAW,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAElC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,WAAW,CAAC;QAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACvF,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,UAAU,MAAM,KAAK,CAAC,QAAQ,GAAG,KAAK,KAAK,MAAM,GAAG,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;IAElE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|