@eggjs/tegg-controller-plugin 3.57.0 → 3.57.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.
|
@@ -6,6 +6,7 @@ import { ControllerRegister } from '../../ControllerRegister';
|
|
|
6
6
|
import { SSEServerTransport } from '@modelcontextprotocol/sdk/server/sse.js';
|
|
7
7
|
import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
8
8
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
9
|
+
import { JSONRPCMessage } from '@modelcontextprotocol/sdk/types.js';
|
|
9
10
|
import { MCPProtocols } from '@eggjs/mcp-proxy/types';
|
|
10
11
|
export interface MCPControllerHook {
|
|
11
12
|
preSSEInitHandle?: (ctx: Context, transport: SSEServerTransport, register: MCPControllerRegister) => Promise<void>;
|
|
@@ -16,6 +17,9 @@ export interface MCPControllerHook {
|
|
|
16
17
|
schemaLoader?: (controllerMeta: MCPControllerMeta, meta: MCPPromptMeta | MCPToolMeta) => Promise<Parameters<McpServer['tool']>['2'] | Parameters<McpServer['prompt']>['2']>;
|
|
17
18
|
checkAndRunProxy?: (ctx: Context, type: MCPProtocols, sessionId: string) => Promise<boolean>;
|
|
18
19
|
}
|
|
20
|
+
declare class InnerSSEServerTransport extends SSEServerTransport {
|
|
21
|
+
send(message: JSONRPCMessage): Promise<void>;
|
|
22
|
+
}
|
|
19
23
|
export declare class MCPControllerRegister implements ControllerRegister {
|
|
20
24
|
static instance?: MCPControllerRegister;
|
|
21
25
|
readonly app: Application;
|
|
@@ -23,7 +27,7 @@ export declare class MCPControllerRegister implements ControllerRegister {
|
|
|
23
27
|
private readonly router;
|
|
24
28
|
private controllerProtos;
|
|
25
29
|
private registeredControllerProtos;
|
|
26
|
-
transports: Record<string,
|
|
30
|
+
transports: Record<string, InnerSSEServerTransport>;
|
|
27
31
|
sseConnections: Map<string, {
|
|
28
32
|
res: ServerResponse;
|
|
29
33
|
intervalId: NodeJS.Timeout;
|
|
@@ -34,6 +38,10 @@ export declare class MCPControllerRegister implements ControllerRegister {
|
|
|
34
38
|
private mcpConfig;
|
|
35
39
|
statelessTransport: StreamableHTTPServerTransport;
|
|
36
40
|
streamTransports: Record<string, StreamableHTTPServerTransport>;
|
|
41
|
+
sseTransportsRequestMap: Map<InnerSSEServerTransport, Record<string, {
|
|
42
|
+
resolve: (value: PromiseLike<null> | null) => void;
|
|
43
|
+
reject: (reason?: any) => void;
|
|
44
|
+
}>>;
|
|
37
45
|
static hooks: MCPControllerHook[];
|
|
38
46
|
static create(proto: EggPrototype, controllerMeta: ControllerMetadata, app: Application): MCPControllerRegister;
|
|
39
47
|
constructor(_proto: EggPrototype, controllerMeta: MCPControllerMeta, app: Application);
|
|
@@ -42,10 +50,11 @@ export declare class MCPControllerRegister implements ControllerRegister {
|
|
|
42
50
|
mcpStatelessStreamServerInit(): void;
|
|
43
51
|
mcpStreamServerInit(): void;
|
|
44
52
|
mcpServerInit(): void;
|
|
45
|
-
sseCtxStorageRun(ctx: Context, transport: SSEServerTransport
|
|
53
|
+
sseCtxStorageRun(ctx: Context, transport: SSEServerTransport): void;
|
|
46
54
|
mcpServerRegister(): void;
|
|
47
55
|
mcpPromptRegister(controllerProto: EggPrototype, promptMeta: MCPPromptMeta): Promise<void>;
|
|
48
56
|
mcpToolRegister(controllerProto: EggPrototype, toolMeta: MCPToolMeta): Promise<void>;
|
|
49
57
|
mcpResourceRegister(controllerProto: EggPrototype, resourceMeta: MCPResourceMeta): Promise<void>;
|
|
50
58
|
register(): Promise<void>;
|
|
51
59
|
}
|
|
60
|
+
export {};
|
|
@@ -13,9 +13,33 @@ const streamableHttp_js_1 = require("@modelcontextprotocol/sdk/server/streamable
|
|
|
13
13
|
const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
|
|
14
14
|
const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
|
|
15
15
|
const types_1 = require("@eggjs/mcp-proxy/types");
|
|
16
|
+
const await_event_1 = __importDefault(require("await-event"));
|
|
16
17
|
const raw_body_1 = __importDefault(require("raw-body"));
|
|
17
18
|
const content_type_1 = __importDefault(require("content-type"));
|
|
18
19
|
const MCPConfig_1 = require("./MCPConfig");
|
|
20
|
+
class InnerSSEServerTransport extends sse_js_1.SSEServerTransport {
|
|
21
|
+
async send(message) {
|
|
22
|
+
var _a, _b;
|
|
23
|
+
let res = null;
|
|
24
|
+
try {
|
|
25
|
+
await super.send(message);
|
|
26
|
+
}
|
|
27
|
+
catch (e) {
|
|
28
|
+
res = e;
|
|
29
|
+
}
|
|
30
|
+
finally {
|
|
31
|
+
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
32
|
+
const map = (_a = MCPControllerRegister.instance) === null || _a === void 0 ? void 0 : _a.sseTransportsRequestMap.get(this);
|
|
33
|
+
if (map && 'id' in message) {
|
|
34
|
+
const { resolve, reject } = (_b = map[message.id]) !== null && _b !== void 0 ? _b : {};
|
|
35
|
+
if (resolve) {
|
|
36
|
+
res ? reject(res) : resolve(res);
|
|
37
|
+
delete map[message.id];
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
19
43
|
class MCPControllerRegister {
|
|
20
44
|
static create(proto, controllerMeta, app) {
|
|
21
45
|
(0, node_assert_1.default)(controllerMeta.type === tegg_1.ControllerType.MCP, 'controller meta type is not MCP');
|
|
@@ -31,6 +55,8 @@ class MCPControllerRegister {
|
|
|
31
55
|
this.transports = {};
|
|
32
56
|
this.sseConnections = new Map();
|
|
33
57
|
this.streamTransports = {};
|
|
58
|
+
// eslint-disable-next-line no-spaced-func
|
|
59
|
+
this.sseTransportsRequestMap = new Map();
|
|
34
60
|
this.app = app;
|
|
35
61
|
this.eggContainerFactory = app.eggContainerFactory;
|
|
36
62
|
this.router = app.router;
|
|
@@ -93,6 +119,7 @@ class MCPControllerRegister {
|
|
|
93
119
|
await ctx.app.ctxStorage.run(ctx, async () => {
|
|
94
120
|
await mw(ctx, async () => {
|
|
95
121
|
await self.statelessTransport.handleRequest(ctx.req, ctx.res);
|
|
122
|
+
await (0, await_event_1.default)(ctx.res, 'close');
|
|
96
123
|
});
|
|
97
124
|
});
|
|
98
125
|
return;
|
|
@@ -189,6 +216,7 @@ class MCPControllerRegister {
|
|
|
189
216
|
await ctx.app.ctxStorage.run(ctx, async () => {
|
|
190
217
|
await mw(ctx, async () => {
|
|
191
218
|
await transport.handleRequest(ctx.req, ctx.res, body);
|
|
219
|
+
await (0, await_event_1.default)(ctx.res, 'close');
|
|
192
220
|
});
|
|
193
221
|
});
|
|
194
222
|
}
|
|
@@ -221,6 +249,7 @@ class MCPControllerRegister {
|
|
|
221
249
|
await ctx.app.ctxStorage.run(ctx, async () => {
|
|
222
250
|
await mw(ctx, async () => {
|
|
223
251
|
await transport.handleRequest(ctx.req, ctx.res);
|
|
252
|
+
await (0, await_event_1.default)(ctx.res, 'close');
|
|
224
253
|
});
|
|
225
254
|
});
|
|
226
255
|
return;
|
|
@@ -252,7 +281,7 @@ class MCPControllerRegister {
|
|
|
252
281
|
const self = this;
|
|
253
282
|
const initHandler = async (ctx) => {
|
|
254
283
|
var _a;
|
|
255
|
-
const transport = new
|
|
284
|
+
const transport = new InnerSSEServerTransport(self.mcpConfig.sseMessagePath, ctx.res);
|
|
256
285
|
const id = transport.sessionId;
|
|
257
286
|
if (MCPControllerRegister.hooks.length > 0) {
|
|
258
287
|
for (const hook of MCPControllerRegister.hooks) {
|
|
@@ -287,19 +316,43 @@ class MCPControllerRegister {
|
|
|
287
316
|
]);
|
|
288
317
|
}
|
|
289
318
|
sseCtxStorageRun(ctx, transport) {
|
|
319
|
+
const self = this;
|
|
290
320
|
const mw = this.app.middleware.teggCtxLifecycleMiddleware();
|
|
291
321
|
const closeFunc = transport.onclose;
|
|
292
322
|
transport.onclose = (...args) => {
|
|
293
323
|
closeFunc === null || closeFunc === void 0 ? void 0 : closeFunc(...args);
|
|
324
|
+
delete self.transports[transport.sessionId];
|
|
325
|
+
self.sseTransportsRequestMap.delete(transport);
|
|
294
326
|
};
|
|
295
327
|
transport.onerror = error => {
|
|
296
|
-
|
|
328
|
+
self.app.logger.error('session %s error %o', transport.sessionId, error);
|
|
297
329
|
};
|
|
298
330
|
const messageFunc = transport.onmessage;
|
|
331
|
+
self.sseTransportsRequestMap.set(transport, {});
|
|
299
332
|
transport.onmessage = async (...args) => {
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
333
|
+
// 这里需要 new 一个新的 ctx,否则 ContextProto 会未被初始化
|
|
334
|
+
const socket = new node_net_1.Socket();
|
|
335
|
+
const req = new node_http_1.IncomingMessage(socket);
|
|
336
|
+
const res = new node_http_1.ServerResponse(req);
|
|
337
|
+
req.method = 'POST';
|
|
338
|
+
req.url = self.mcpConfig.sseInitPath;
|
|
339
|
+
req.headers = {
|
|
340
|
+
accept: 'application/json, text/event-stream',
|
|
341
|
+
'content-type': 'application/json',
|
|
342
|
+
};
|
|
343
|
+
const newCtx = self.app.createContext(req, res);
|
|
344
|
+
await ctx.app.ctxStorage.run(newCtx, async () => {
|
|
345
|
+
await mw(newCtx, async () => {
|
|
346
|
+
messageFunc(...args);
|
|
347
|
+
if ((0, types_js_1.isJSONRPCRequest)(args[0])) {
|
|
348
|
+
const map = self.sseTransportsRequestMap.get(transport);
|
|
349
|
+
const wait = new Promise((resolve, reject) => {
|
|
350
|
+
if ('id' in args[0]) {
|
|
351
|
+
map[args[0].id] = { resolve, reject };
|
|
352
|
+
}
|
|
353
|
+
});
|
|
354
|
+
await wait;
|
|
355
|
+
}
|
|
303
356
|
});
|
|
304
357
|
});
|
|
305
358
|
};
|
|
@@ -520,4 +573,4 @@ class MCPControllerRegister {
|
|
|
520
573
|
}
|
|
521
574
|
exports.MCPControllerRegister = MCPControllerRegister;
|
|
522
575
|
MCPControllerRegister.hooks = [];
|
|
523
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTUNQQ29udHJvbGxlclJlZ2lzdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiTUNQQ29udHJvbGxlclJlZ2lzdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUVBLDhEQUFpQztBQUNqQyx5Q0FBa0U7QUFDbEUsdUNBQWtDO0FBRWxDLHNDQVFxQjtBQUlyQixvRUFBNkU7QUFDN0UsMEZBQW1HO0FBQ25HLG9FQUFvRTtBQUNwRSxpRUFBeUY7QUFDekYsa0RBQXNEO0FBRXRELHdEQUFrQztBQUNsQyxnRUFBdUM7QUFFdkMsMkNBQXdDO0FBa0J4QyxNQUFhLHFCQUFxQjtJQWlCaEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFtQixFQUFFLGNBQWtDLEVBQUUsR0FBZ0I7UUFDckYsSUFBQSxxQkFBTSxFQUFDLGNBQWMsQ0FBQyxJQUFJLEtBQUsscUJBQWMsQ0FBQyxHQUFHLEVBQUUsaUNBQWlDLENBQUMsQ0FBQztRQUN0RixJQUFJLENBQUMscUJBQXFCLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDcEMscUJBQXFCLENBQUMsUUFBUSxHQUFHLElBQUkscUJBQXFCLENBQUMsS0FBSyxFQUFFLGNBQW1DLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDOUcsQ0FBQztRQUNELHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUQsT0FBTyxxQkFBcUIsQ0FBQyxRQUFRLENBQUM7SUFDeEMsQ0FBQztJQUVELFlBQVksTUFBb0IsRUFBRSxjQUFpQyxFQUFFLEdBQWdCO1FBckI3RSxxQkFBZ0IsR0FBbUIsRUFBRSxDQUFDO1FBQ3RDLCtCQUEwQixHQUFtQixFQUFFLENBQUM7UUFDeEQsZUFBVSxHQUF1QyxFQUFFLENBQUM7UUFDcEQsbUJBQWMsR0FBRyxJQUFJLEdBQUcsRUFBK0QsQ0FBQztRQU14RixxQkFBZ0IsR0FBa0QsRUFBRSxDQUFDO1FBYW5FLElBQUksQ0FBQyxHQUFHLEdBQUcs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
|
|
576
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTUNQQ29udHJvbGxlclJlZ2lzdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiTUNQQ29udHJvbGxlclJlZ2lzdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUVBLDhEQUFpQztBQUNqQyx5Q0FBa0U7QUFDbEUsdUNBQWtDO0FBRWxDLHNDQVFxQjtBQUlyQixvRUFBNkU7QUFDN0UsMEZBQW1HO0FBQ25HLG9FQUFvRTtBQUNwRSxpRUFBMkc7QUFDM0csa0RBQXNEO0FBQ3RELDhEQUFxQztBQUVyQyx3REFBa0M7QUFDbEMsZ0VBQXVDO0FBRXZDLDJDQUF3QztBQWtCeEMsTUFBTSx1QkFBd0IsU0FBUSwyQkFBa0I7SUFDdEQsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUF1Qjs7UUFDaEMsSUFBSSxHQUFHLEdBQWlCLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUM7WUFDSCxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUIsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxHQUFHLEdBQUcsQ0FBVSxDQUFDO1FBQ25CLENBQUM7Z0JBQVMsQ0FBQztZQUNULG1FQUFtRTtZQUNuRSxNQUFNLEdBQUcsR0FBRyxNQUFBLHFCQUFxQixDQUFDLFFBQVEsMENBQUUsdUJBQXVCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzlFLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDM0IsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFBLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLG1DQUFJLEVBQUUsQ0FBQztnQkFDbEQsSUFBSSxPQUFPLEVBQUUsQ0FBQztvQkFDWixHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUNqQyxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3pCLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7Q0FDRjtBQUdELE1BQWEscUJBQXFCO0lBeUJoQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQW1CLEVBQUUsY0FBa0MsRUFBRSxHQUFnQjtRQUNyRixJQUFBLHFCQUFNLEVBQUMsY0FBYyxDQUFDLElBQUksS0FBSyxxQkFBYyxDQUFDLEdBQUcsRUFBRSxpQ0FBaUMsQ0FBQyxDQUFDO1FBQ3RGLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNwQyxxQkFBcUIsQ0FBQyxRQUFRLEdBQUcsSUFBSSxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsY0FBbUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM5RyxDQUFDO1FBQ0QscUJBQXFCLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1RCxPQUFPLHFCQUFxQixDQUFDLFFBQVEsQ0FBQztJQUN4QyxDQUFDO0lBRUQsWUFBWSxNQUFvQixFQUFFLGNBQWlDLEVBQUUsR0FBZ0I7UUE3QjdFLHFCQUFnQixHQUFtQixFQUFFLENBQUM7UUFDdEMsK0JBQTBCLEdBQW1CLEVBQUUsQ0FBQztRQUN4RCxlQUFVLEdBQTRDLEVBQUUsQ0FBQztRQUN6RCxtQkFBYyxHQUFHLElBQUksR0FBRyxFQUErRCxDQUFDO1FBTXhGLHFCQUFnQixHQUFrRCxFQUFFLENBQUM7UUFDckUsMENBQTBDO1FBQzFDLDRCQUF1QixHQUFHLElBQUksR0FBRyxFQU03QixDQUFDO1FBYUgsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsbUJBQW1CLEdBQUcsR0FBRyxDQUFDLG1CQUFtQixDQUFDO1FBQ25ELElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztRQUV6QixJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztRQUVyQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUkscUJBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxNQUFNLENBQUMsT0FBTyxDQUFDLElBQXVCO1FBQ3BDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsK0JBQStCO1FBQzFDLElBQUkscUJBQXFCLENBQUMsUUFBUSxJQUFJLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQ3hGLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDN0csdUNBQXVDO1lBQ3ZDLDRDQUE0QztZQUM1QyxNQUFNLE1BQU0sR0FBRyxJQUFJLGlCQUFNLEVBQUUsQ0FBQztZQUM1QixNQUFNLEdBQUcsR0FBRyxJQUFJLDJCQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDeEMsTUFBTSxHQUFHLEdBQUcsSUFBSSwwQkFBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3BDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQ3BCLEdBQUcsQ0FBQyxHQUFHLEdBQUcscUJBQXFCLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQztZQUN2RSxHQUFHLENBQUMsT0FBTyxHQUFHO2dCQUNaLE1BQU0sRUFBRSxxQ0FBcUM7Z0JBQzdDLGNBQWMsRUFBRSxrQkFBa0I7YUFDbkMsQ0FBQztZQUNGLE1BQU0sUUFBUSxHQUFHO2dCQUNmLE9BQU8sRUFBRSxLQUFLO2dCQUNkLEVBQUUsRUFBRSxDQUFDO2dCQUNMLE1BQU0sRUFBRSxZQUFZO2dCQUNwQixNQUFNLEVBQUU7b0JBQ04sZUFBZSxFQUFFLFlBQVk7b0JBQzdCLFlBQVksRUFBRSxFQUNiO29CQUNELFVBQVUsRUFBRTt3QkFDVixJQUFJLEVBQUUsYUFBYTt3QkFDbkIsT0FBTyxFQUFFLE9BQU87cUJBQ2pCO2lCQUNGO2FBQ0YsQ0FBQztZQUNGLE1BQU0scUJBQXFCLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzVGLENBQUM7SUFDSCxDQUFDO0lBRUQsNEJBQTRCO1FBQzFCLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ3hDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQztRQUNsQixNQUFNLFNBQVMsR0FBa0MsSUFBSSxpREFBNkIsQ0FBQztZQUNqRixrQkFBa0IsRUFBRSxTQUFTO1NBQzlCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxrQkFBa0IsR0FBRyxTQUFTLENBQUM7UUFDcEMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUM1RCxNQUFNLFdBQVcsR0FBRyxLQUFLLEVBQUUsR0FBWSxFQUFFLEVBQUU7O1lBQ3pDLElBQUkscUJBQXFCLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDM0MsS0FBSyxNQUFNLElBQUksSUFBSSxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDL0MsTUFBTSxDQUFBLE1BQUEsSUFBSSxDQUFDLFNBQVMscURBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQSxDQUFDO2dCQUNsRCxDQUFDO1lBQ0gsQ0FBQztZQUNELEdBQUcsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3BCLEdBQUcsQ0FBQyxHQUFHLENBQUM7Z0JBQ04sY0FBYyxFQUFFLG1CQUFtQjtnQkFDbkMsbUJBQW1CLEVBQUUsU0FBUzthQUMvQixDQUFDLENBQUM7WUFFSCxNQUFNLEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxJQUFJLEVBQUU7Z0JBQzNDLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxLQUFLLElBQUksRUFBRTtvQkFDdkIsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUM5RCxNQUFNLElBQUEscUJBQVUsRUFBQyxHQUFHLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUNyQyxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1lBQ0gsT0FBTztRQUNULENBQUMsQ0FBQztRQUNGLE9BQU8sQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDekMsNkJBQTZCO1lBQzdCLElBQUksQ0FBQyxTQUFTLENBQUMsbUJBQW1CO1lBQ2xDLEdBQUcsRUFBRTtZQUNMLFdBQVc7U0FDWixDQUFDLENBQUM7UUFDSCxxQkFBcUI7UUFDckIsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7UUFDdEMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7UUFDdEMsTUFBTSxVQUFVLEdBQUcsS0FBSyxFQUFFLEdBQVksRUFBRSxFQUFFO1lBQ3hDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDO1lBQ2pCLEdBQUcsQ0FBQyxJQUFJLEdBQUc7Z0JBQ1QsT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsS0FBSyxFQUFFO29CQUNMLElBQUksRUFBRSxDQUFDLEtBQUs7b0JBQ1osT0FBTyxFQUFFLHFCQUFxQjtpQkFDL0I7Z0JBQ0QsRUFBRSxFQUFFLElBQUk7YUFDVCxDQUFDO1FBQ0osQ0FBQyxDQUFDO1FBQ0YsT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUN4Qyw2QkFBNkI7WUFDN0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUI7WUFDbEMsR0FBRyxFQUFFO1lBQ0wsVUFBVTtTQUNYLENBQUMsQ0FBQztRQUNILE9BQU8sQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDeEMsNkJBQTZCO1lBQzdCLElBQUksQ0FBQyxTQUFTLENBQUMsbUJBQW1CO1lBQ2xDLEdBQUcsRUFBRTtZQUNMLFVBQVU7U0FDWCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO1FBQ3RDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQztRQUNsQixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1FBQzVELE1BQU0sV0FBVyxHQUFHLEtBQUssRUFBRSxHQUFZLEVBQUUsRUFBRTs7WUFDekMsR0FBRyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDcEIsSUFBSSxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUMzQyxLQUFLLE1BQU0sSUFBSSxJQUFJLHFCQUFxQixDQUFDLEtBQUssRUFBRSxDQUFDO29CQUMvQyxNQUFNLENBQUEsTUFBQSxJQUFJLENBQUMsU0FBUyxxREFBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFBLENBQUM7Z0JBQ2xELENBQUM7WUFDSCxDQUFDO1lBQ0QsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQXVCLENBQUM7WUFDMUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNmLE1BQU0sRUFBRSxHQUFHLHNCQUFXLENBQUMsS0FBSyxDQUFDLE1BQUEsR0FBRyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLG1DQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUVwRSxJQUFJLElBQUksQ0FBQztnQkFFVCxJQUFJLENBQUM7b0JBQ0gsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFBLGtCQUFVLEVBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTt3QkFDeEMsS0FBSyxFQUFFLEtBQUs7d0JBQ1osUUFBUSxFQUFFLE1BQUEsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLG1DQUFJLE9BQU87cUJBQzNDLENBQUMsQ0FBQztvQkFFSCxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDN0IsQ0FBQztnQkFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO29CQUNYLEdBQUcsQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDO29CQUNqQixHQUFHLENBQUMsSUFBSSxHQUFHO3dCQUNULE9BQU8sRUFBRSxLQUFLO3dCQUNkLEtBQUssRUFBRTs0QkFDTCxJQUFJLEVBQUUsQ0FBQyxLQUFLOzRCQUNaLE9BQU8sRUFBRSxxQ0FBcUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO3lCQUM3RDt3QkFDRCxFQUFFLEVBQUUsSUFBSTtxQkFDVCxDQUFDO29CQUNGLE9BQU87Z0JBQ1QsQ0FBQztnQkFFRCxJQUFJLElBQUEsOEJBQW1CLEVBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDOUIsR0FBRyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7b0JBQ3BCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDO29CQUM3QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUM7b0JBQ2xCLE1BQU0sU0FBUyxHQUFHLElBQUksaURBQTZCLENBQUM7d0JBQ2xELGtCQUFrQixFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsa0JBQWtCLEVBQUU7d0JBQzdELFVBQVU7d0JBQ1Ysb0JBQW9CLEVBQUUsS0FBSyxJQUFJLEVBQUU7OzRCQUMvQixJQUFJLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0NBQzNDLEtBQUssTUFBTSxJQUFJLElBQUkscUJBQXFCLENBQUMsS0FBSyxFQUFFLENBQUM7b0NBQy9DLE1BQU0sQ0FBQSxNQUFBLElBQUksQ0FBQywwQkFBMEIscURBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFBLENBQUM7Z0NBQ3BGLENBQUM7NEJBQ0gsQ0FBQzt3QkFDSCxDQUFDO3FCQUNGLENBQUMsQ0FBQztvQkFFSCxHQUFHLENBQUMsR0FBRyxDQUFDO3dCQUNOLGNBQWMsRUFBRSxtQkFBbUI7d0JBQ25DLG1CQUFtQixFQUFFLFNBQVM7cUJBQy9CLENBQUMsQ0FBQztvQkFFSCxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO29CQUV4QyxNQUFNLEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxJQUFJLEVBQUU7d0JBQzNDLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxLQUFLLElBQUksRUFBRTs0QkFDdkIsTUFBTSxTQUFTLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQzs0QkFDdEQsTUFBTSxJQUFBLHFCQUFVLEVBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQzt3QkFDckMsQ0FBQyxDQUFDLENBQUM7b0JBQ0wsQ0FBQyxDQUFDLENBQUM7Z0JBQ0wsQ0FBQztxQkFBTSxDQUFDO29CQUNOLEdBQUcsQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDO29CQUNqQixHQUFHLENBQUMsSUFBSSxHQUFHO3dCQUNULE9BQU8sRUFBRSxLQUFLO3dCQUNkLEtBQUssRUFBRTs0QkFDTCxJQUFJLEVBQUUsQ0FBQyxLQUFLOzRCQUNaLE9BQU8sRUFBRSwyQ0FBMkM7eUJBQ3JEO3dCQUNELEVBQUUsRUFBRSxJQUFJO3FCQUNULENBQUM7b0JBQ0YsT0FBTztnQkFDVCxDQUFDO1lBQ0gsQ0FBQztpQkFBTSxJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUNyQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ25ELElBQUksU0FBUyxFQUFFLENBQUM7b0JBQ2QsSUFBSSxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO3dCQUMzQyxLQUFLLE1BQU0sSUFBSSxJQUFJLHFCQUFxQixDQUFDLEtBQUssRUFBRSxDQUFDOzRCQUMvQyxNQUFNLENBQUEsTUFBQSxJQUFJLENBQUMsU0FBUyxxREFBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFBLENBQUM7d0JBQ2xELENBQUM7b0JBQ0gsQ0FBQztvQkFDRCxHQUFHLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztvQkFDcEIsR0FBRyxDQUFDLEdBQUcsQ0FBQzt3QkFDTixjQUFjLEVBQUUsbUJBQW1CO3dCQUNuQyxtQkFBbUIsRUFBRSxTQUFTO3FCQUMvQixDQUFDLENBQUM7b0JBQ0gsTUFBTSxHQUFHLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssSUFBSSxFQUFFO3dCQUMzQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxJQUFJLEVBQUU7NEJBQ3ZCLE1BQU0sU0FBUyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQzs0QkFDaEQsTUFBTSxJQUFBLHFCQUFVLEVBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQzt3QkFDckMsQ0FBQyxDQUFDLENBQUM7b0JBQ0wsQ0FBQyxDQUFDLENBQUM7b0JBQ0gsT0FBTztnQkFDVCxDQUFDO2dCQUNELElBQUkscUJBQXFCLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDM0MsS0FBSyxNQUFNLElBQUksSUFBSSxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQzt3QkFDL0MsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFBLE1BQUEsSUFBSSxDQUFDLGdCQUFnQixxREFBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxvQkFBWSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQSxDQUFDO3dCQUN2RyxJQUFJLE9BQU8sRUFBRSxDQUFDOzRCQUNaLE9BQU87d0JBQ1QsQ0FBQztvQkFDSCxDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDO1lBQ0QsT0FBTztRQUNULENBQUMsQ0FBQztRQUNGLE9BQU8sQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDeEMsb0JBQW9CO1lBQ3BCLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVTtZQUN6QixHQUFHLEVBQUU7WUFDTCxXQUFXO1NBQ1osQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGFBQWE7UUFDWCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztRQUNuQyxvRkFBb0Y7UUFDcEYsdUJBQXVCO1FBQ3ZCLDJDQUEyQztRQUMzQyxJQUFJO1FBQ0osTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLE1BQU0sV0FBVyxHQUFHLEtBQUssRUFBRSxHQUFZLEVBQUUsRUFBRTs7WUFDekMsTUFBTSxTQUFTLEdBQUcsSUFBSSx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdEYsTUFBTSxFQUFFLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQztZQUMvQixJQUFJLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzNDLEtBQUssTUFBTSxJQUFJLElBQUkscUJBQXFCLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQy9DLE1BQU0sQ0FBQSxNQUFBLElBQUksQ0FBQyxnQkFBZ0IscURBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFBLENBQUM7Z0JBQzFFLENBQUM7WUFDSCxDQUFDO1lBQ0QsNEZBQTRGO1lBQzVGLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2xDLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO29CQUMxRCxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2dCQUNuQyxDQUFDO3FCQUFNLENBQUM7b0JBQ04sYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO29CQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDakMsQ0FBQztZQUNILENBQUMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7WUFDMUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUM7WUFDaEMsR0FBRyxDQUFDLEdBQUcsQ0FBQztnQkFDTixjQUFjLEVBQUUsbUJBQW1CO2dCQUNuQyxtQkFBbUIsRUFBRSxTQUFTO2FBQy9CLENBQUMsQ0FBQztZQUNILEdBQUcsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDeEMsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUMxRCxDQUFDLENBQUM7UUFDRixPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ3JDLGNBQWM7WUFDZCxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVc7WUFDMUIsR0FBRyxFQUFFO1lBQ0wsV0FBVztTQUNaLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxHQUFZLEVBQUUsU0FBNkI7UUFDMUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLDBCQUEwQixFQUFFLENBQUM7UUFDNUQsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQztRQUNwQyxTQUFTLENBQUMsT0FBTyxHQUFHLENBQUMsR0FBRyxJQUFJLEVBQUUsRUFBRTtZQUM5QixTQUFTLGFBQVQsU0FBUyx1QkFBVCxTQUFTLENBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUNyQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakQsQ0FBQyxDQUFDO1FBQ0YsU0FBUyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsRUFBRTtZQUMxQixJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMscUJBQXFCLEVBQUUsU0FBUyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMzRSxDQUFDLENBQUM7UUFDRixNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDO1FBQ3hDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELFNBQVMsQ0FBQyxTQUFTLEdBQUcsS0FBSyxFQUFFLEdBQUcsSUFBd0IsRUFBRSxFQUFFO1lBQzFELDJDQUEyQztZQUMzQyxNQUFNLE1BQU0sR0FBRyxJQUFJLGlCQUFNLEVBQUUsQ0FBQztZQUM1QixNQUFNLEdBQUcsR0FBRyxJQUFJLDJCQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDeEMsTUFBTSxHQUFHLEdBQUcsSUFBSSwwQkFBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3BDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQ3BCLEdBQUcsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUM7WUFDckMsR0FBRyxDQUFDLE9BQU8sR0FBRztnQkFDWixNQUFNLEVBQUUscUNBQXFDO2dCQUM3QyxjQUFjLEVBQUUsa0JBQWtCO2FBQ25DLENBQUM7WUFDRixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUF1QixDQUFDO1lBQ3RFLE1BQU0sR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxLQUFLLElBQUksRUFBRTtnQkFDOUMsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLEtBQUssSUFBSSxFQUFFO29CQUMxQixXQUFZLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztvQkFDdEIsSUFBSSxJQUFBLDJCQUFnQixFQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7d0JBQzlCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFFLENBQUM7d0JBQ3pELE1BQU0sSUFBSSxHQUFHLElBQUksT0FBTyxDQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFOzRCQUNqRCxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQ0FDcEIsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQzs0QkFDeEMsQ0FBQzt3QkFDSCxDQUFDLENBQUMsQ0FBQzt3QkFDSCxNQUFNLElBQUksQ0FBQztvQkFDYixDQUFDO2dCQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDcEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLG9GQUFvRjtRQUNwRix1QkFBdUI7UUFDdkIsMkNBQTJDO1FBQzNDLElBQUk7UUFDSixNQUFNLGFBQWEsR0FBRyxLQUFLLEVBQUUsR0FBWSxFQUFFLEVBQUU7O1lBQzNDLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1lBRXRDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO2dCQUMvQixJQUFJLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQzNDLEtBQUssTUFBTSxJQUFJLElBQUkscUJBQXFCLENBQUMsS0FBSyxFQUFFLENBQUM7d0JBQy9DLE1BQU0sQ0FBQSxNQUFBLElBQUksQ0FBQyxtQkFBbUIscURBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQSxDQUFDO29CQUM1RCxDQUFDO2dCQUNILENBQUM7Z0JBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUNsRCxJQUFJLENBQUM7b0JBQ0gsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN2RSxDQUFDO2dCQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7b0JBQ2YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDRCQUE0QixFQUFFLEtBQUssQ0FBQyxDQUFDO29CQUMzRCxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQzt3QkFDekIsR0FBRyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7d0JBQ2pCLEdBQUcsQ0FBQyxJQUFJLEdBQUc7NEJBQ1QsT0FBTyxFQUFFLEtBQUs7NEJBQ2QsS0FBSyxFQUFFO2dDQUNMLElBQUksRUFBRSxDQUFDLEtBQUs7Z0NBQ1osT0FBTyxFQUFFLG1CQUFtQixLQUFLLENBQUMsT0FBTyxFQUFFOzZCQUM1Qzs0QkFDRCxFQUFFLEVBQUUsSUFBSTt5QkFDVCxDQUFDO29CQUNKLENBQUM7Z0JBQ0gsQ0FBQztnQkFDRCxPQUFPO1lBQ1QsQ0FBQztZQUNELElBQUkscUJBQXFCLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDM0MsS0FBSyxNQUFNLElBQUksSUFBSSxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDL0MsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFBLE1BQUEsSUFBSSxDQUFDLGdCQUFnQixxREFBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxvQkFBWSxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQSxDQUFDO29CQUNwRyxJQUFJLE9BQU8sRUFBRSxDQUFDO3dCQUNaLE9BQU87b0JBQ1QsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUMsQ0FBQztRQUNGLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDckMsaUJBQWlCO1lBQ2pCLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYztZQUM3QixHQUFHLEVBQUU7WUFDTCxhQUFhO1NBQ2QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxlQUE2QixFQUFFLFVBQXlCOztRQUM5RSxNQUFNLGNBQWMsR0FBRyxlQUFlLENBQUMsV0FBVyxDQUFDLDJCQUFvQixDQUFzQixDQUFDO1FBQzlGLE1BQU0sSUFBSSxHQUFVLENBQUUsTUFBQSxVQUFVLENBQUMsT0FBTyxtQ0FBSSxVQUFVLENBQUMsSUFBSSxDQUFFLENBQUM7UUFDOUQsSUFBSSxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDO1FBQ1gsSUFBSSxNQUFBLFVBQVUsQ0FBQyxNQUFNLDBDQUFFLFVBQVUsRUFBRSxDQUFDO1lBQ2xDLE1BQU0sR0FBRyxNQUFBLFVBQVUsQ0FBQyxNQUFNLDBDQUFFLFVBQVUsQ0FBQztZQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BCLENBQUM7YUFBTSxJQUFJLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbEQsS0FBSyxNQUFNLElBQUksSUFBSSxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDL0MsTUFBTSxHQUFHLE1BQU0sQ0FBQSxNQUFBLElBQUksQ0FBQyxZQUFZLHFEQUFHLGNBQWMsRUFBRSxVQUFVLENBQUMsQ0FBQSxDQUFDO2dCQUMvRCxJQUFJLE1BQU0sRUFBRSxDQUFDO29CQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ2xCLE1BQU07Z0JBQ1IsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBQ0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLE1BQU0sT0FBTyxHQUFHLEtBQUssRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFO1lBQ2hDLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLG9CQUFvQixDQUFDLGVBQWUsRUFBRSxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDMUcsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQztZQUMzQixNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzVDLElBQUksT0FBTyxHQUFVLEVBQUUsQ0FBQztZQUN4QixJQUFJLE1BQU0sSUFBSSxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ2hDLCtCQUErQjtnQkFDL0IsT0FBTyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUUzQyw4QkFBOEI7Z0JBQzlCLElBQUksVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUNyQixPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDdEMsQ0FBQztZQUNILENBQUM7aUJBQU0sSUFBSSxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQzVCLDRCQUE0QjtnQkFDNUIsT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEMsQ0FBQztZQUNELE9BQU8sR0FBRyxDQUFFLEdBQUcsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFFLENBQUM7WUFDbEMsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDckQsQ0FBQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFJLElBQXdDLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLEdBQUksSUFBd0MsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFRCxLQUFLLENBQUMsZUFBZSxDQUFDLGVBQTZCLEVBQUUsUUFBcUI7O1FBQ3hFLE1BQU0sY0FBYyxHQUFHLGVBQWUsQ0FBQyxXQUFXLENBQUMsMkJBQW9CLENBQXNCLENBQUM7UUFDOUYsTUFBTSxJQUFJLEdBQVUsQ0FBRSxNQUFBLFFBQVEsQ0FBQyxPQUFPLG1DQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUUsQ0FBQztRQUMxRCxJQUFJLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNsQyxDQUFDO1FBQ0QsSUFBSSxNQUFNLENBQUM7UUFDWCxJQUFJLE1BQUEsUUFBUSxDQUFDLE1BQU0sMENBQUUsVUFBVSxFQUFFLENBQUM7WUFDaEMsTUFBTSxHQUFHLE1BQUEsUUFBUSxDQUFDLE1BQU0sMENBQUUsVUFBVSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBQSxRQUFRLENBQUMsTUFBTSwwQ0FBRSxVQUFVLENBQUMsQ0FBQztRQUN6QyxDQUFDO2FBQU0sSUFBSSxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2xELEtBQUssTUFBTSxJQUFJLElBQUkscUJBQXFCLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQy9DLE1BQU0sR0FBRyxNQUFNLENBQUEsTUFBQSxJQUFJLENBQUMsWUFBWSxxREFBRyxjQUFjLEVBQUUsUUFBUSxDQUFDLENBQUEsQ0FBQztnQkFDN0QsSUFBSSxNQUFNLEVBQUUsQ0FBQztvQkFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUNsQixNQUFNO2dCQUNSLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUNELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQztRQUNsQixNQUFNLE9BQU8sR0FBRyxLQUFLLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRTtZQUNoQyxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxvQkFBb0IsQ0FBQyxlQUFlLEVBQUUsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzFHLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUM7WUFDM0IsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMxQyxJQUFJLE9BQU8sR0FBVSxFQUFFLENBQUM7WUFDeEIsSUFBSSxNQUFNLElBQUksUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUM5QiwrQkFBK0I7Z0JBQy9CLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFFekMsOEJBQThCO2dCQUM5QixJQUFJLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDbkIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BDLENBQUM7WUFDSCxDQUFDO2lCQUFNLElBQUksUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUMxQiw0QkFBNEI7Z0JBQzVCLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLENBQUM7WUFDRCxPQUFPLEdBQUcsQ0FBRSxHQUFHLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBRSxDQUFDO1lBQ2xDLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3JELENBQUMsQ0FBQztRQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBSSxJQUF3QyxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxHQUFJLElBQXdDLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRUQsS0FBSyxDQUFDLG1CQUFtQixDQUFDLGVBQTZCLEVBQUUsWUFBNkI7O1FBQ3BGLE1BQU0sSUFBSSxHQUFVLENBQUUsTUFBQSxZQUFZLENBQUMsT0FBTyxtQ0FBSSxZQUFZLENBQUMsSUFBSSxDQUFFLENBQUM7UUFDbEUsSUFBSSxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDOUIsQ0FBQztRQUNELElBQUksWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzFCLE1BQU0sUUFBUSxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUM7WUFDdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0QixDQUFDO1FBQ0QsSUFBSSxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkMsQ0FBQztRQUNELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQztRQUNsQixNQUFNLE9BQU8sR0FBRyxLQUFLLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRTtZQUNoQyxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxvQkFBb0IsQ0FBQyxlQUFlLEVBQUUsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzFHLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUM7WUFDM0IsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM5QyxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNsRCxDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUksSUFBd0MsQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsR0FBSSxJQUF3QyxDQUFDLENBQUM7SUFDakYsQ0FBQztJQUVELEtBQUssQ0FBQyxRQUFROztRQUNaLE1BQU0sU0FBUyxHQUFHLElBQUksR0FBRyxFQUErQixDQUFDO1FBQ3pELE1BQU0sV0FBVyxHQUFHLElBQUksR0FBRyxFQUFpQyxDQUFDO1FBQzdELE1BQU0sT0FBTyxHQUFHLElBQUksR0FBRyxFQUE2QixDQUFDO1FBQ3JELEtBQUssTUFBTSxLQUFLLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDMUMsSUFBSSxJQUFJLENBQUMsMEJBQTBCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3BELFNBQVM7WUFDWCxDQUFDO1lBQ0QsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQywyQkFBb0IsQ0FBc0IsQ0FBQztZQUM5RSxLQUFLLE1BQU0sTUFBTSxJQUFJLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDdEMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDL0IsQ0FBQztZQUNELEtBQUssTUFBTSxRQUFRLElBQUksUUFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUMxQyxXQUFXLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNuQyxDQUFDO1lBQ0QsS0FBSyxNQUFNLElBQUksSUFBSSxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ2xDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzNCLENBQUM7WUFDRCxJQUFJLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlDLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxrQkFBUyxDQUFDO2dCQUM3QixJQUFJLEVBQUUsTUFBQSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksbUNBQUksYUFBYSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksU0FBUztnQkFDckUsT0FBTyxFQUFFLE1BQUEsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLG1DQUFJLE9BQU87YUFDaEQsRUFBRSxFQUFFLFlBQVksRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDdEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksa0JBQVMsQ0FBQztnQkFDdEMsSUFBSSxFQUFFLE1BQUEsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLG1DQUFJLGFBQWEsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLG1CQUFtQjtnQkFDL0UsT0FBTyxFQUFFLE1BQUEsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLG1DQUFJLE9BQU87YUFDaEQsRUFBRSxFQUFFLFlBQVksRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDdEMsSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQzNCLENBQUM7UUFDRCxLQUFLLE1BQU0sQ0FBRSxNQUFNLEVBQUUsZUFBZSxDQUFFLElBQUksU0FBUyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFDOUQsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFDRCxLQUFLLE1BQU0sQ0FBRSxJQUFJLEVBQUUsZUFBZSxDQUFFLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFDMUQsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwRCxDQUFDO1FBQ0QsS0FBSyxNQUFNLENBQUUsUUFBUSxFQUFFLGVBQWUsQ0FBRSxJQUFJLFdBQVcsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQ2xFLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUM1RCxDQUFDO0lBQ0gsQ0FBQzs7QUExaUJILHNEQTJpQkM7QUFwaEJRLDJCQUFLLEdBQXdCLEVBQUUsQUFBMUIsQ0FBMkIifQ==
|
package/package.json
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"tegg"
|
|
8
8
|
]
|
|
9
9
|
},
|
|
10
|
-
"version": "3.57.
|
|
10
|
+
"version": "3.57.2",
|
|
11
11
|
"description": "controller decorator for egg",
|
|
12
12
|
"keywords": [
|
|
13
13
|
"egg",
|
|
@@ -48,15 +48,16 @@
|
|
|
48
48
|
"node": ">=14.0.0"
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"@eggjs/egg-module-common": "^3.57.
|
|
52
|
-
"@eggjs/mcp-proxy": "^3.57.
|
|
51
|
+
"@eggjs/egg-module-common": "^3.57.2",
|
|
52
|
+
"@eggjs/mcp-proxy": "^3.57.2",
|
|
53
53
|
"@eggjs/router": "^2.0.1",
|
|
54
|
-
"@eggjs/tegg": "^3.57.
|
|
55
|
-
"@eggjs/tegg-common-util": "^3.57.
|
|
56
|
-
"@eggjs/tegg-loader": "^3.57.
|
|
57
|
-
"@eggjs/tegg-metadata": "^3.57.
|
|
58
|
-
"@eggjs/tegg-runtime": "^3.57.
|
|
54
|
+
"@eggjs/tegg": "^3.57.2",
|
|
55
|
+
"@eggjs/tegg-common-util": "^3.57.2",
|
|
56
|
+
"@eggjs/tegg-loader": "^3.57.2",
|
|
57
|
+
"@eggjs/tegg-metadata": "^3.57.2",
|
|
58
|
+
"@eggjs/tegg-runtime": "^3.57.2",
|
|
59
59
|
"@modelcontextprotocol/sdk": "^1.10.0",
|
|
60
|
+
"await-event": "^2.1.0",
|
|
60
61
|
"content-type": "^1.0.5",
|
|
61
62
|
"egg-errors": "^2.3.0",
|
|
62
63
|
"globby": "^10.0.2",
|
|
@@ -66,9 +67,9 @@
|
|
|
66
67
|
"sdk-base": "^4.2.0"
|
|
67
68
|
},
|
|
68
69
|
"devDependencies": {
|
|
69
|
-
"@eggjs/module-test-util": "^3.57.
|
|
70
|
-
"@eggjs/tegg-config": "^3.57.
|
|
71
|
-
"@eggjs/tegg-plugin": "^3.57.
|
|
70
|
+
"@eggjs/module-test-util": "^3.57.2",
|
|
71
|
+
"@eggjs/tegg-config": "^3.57.2",
|
|
72
|
+
"@eggjs/tegg-plugin": "^3.57.2",
|
|
72
73
|
"@types/mocha": "^10.0.1",
|
|
73
74
|
"@types/node": "^20.2.4",
|
|
74
75
|
"cross-env": "^7.0.3",
|
|
@@ -82,5 +83,5 @@
|
|
|
82
83
|
"publishConfig": {
|
|
83
84
|
"access": "public"
|
|
84
85
|
},
|
|
85
|
-
"gitHead": "
|
|
86
|
+
"gitHead": "c8080b147f2fd4539ccccb8374fe4500e25ac25c"
|
|
86
87
|
}
|