@dbx-tools/appkit-generator 0.9.138 → 0.9.139
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/index.ts +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +2 -2
- package/lib/src/plugin.d.ts +3 -3
- package/lib/src/research.js +5 -5
- package/lib/src/workflow.d.ts +2 -2
- package/package.json +9 -9
- package/src/research.ts +4 -4
package/index.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// Hand edits are overwritten on the next watch; this file is read-only.
|
|
4
4
|
|
|
5
5
|
export const PACKAGE_IDENTIFIER = "@dbx-tools/appkit-generator";
|
|
6
|
-
export const PACKAGE_VERSION = "0.9.
|
|
6
|
+
export const PACKAGE_VERSION = "0.9.139";
|
|
7
7
|
export * as assets from "./src/assets.ts";
|
|
8
8
|
export * as config from "./src/config.ts";
|
|
9
9
|
export * as dashboard from "./src/dashboard.ts";
|
package/lib/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare const PACKAGE_IDENTIFIER = "@dbx-tools/appkit-generator";
|
|
2
|
-
export declare const PACKAGE_VERSION = "0.9.
|
|
2
|
+
export declare const PACKAGE_VERSION = "0.9.139";
|
|
3
3
|
export * as assets from "./src/assets.ts";
|
|
4
4
|
export * as config from "./src/config.ts";
|
|
5
5
|
export * as dashboard from "./src/dashboard.ts";
|
package/lib/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Regenerated from the exporting modules in ./src.
|
|
3
3
|
// Hand edits are overwritten on the next watch; this file is read-only.
|
|
4
4
|
export const PACKAGE_IDENTIFIER = "@dbx-tools/appkit-generator";
|
|
5
|
-
export const PACKAGE_VERSION = "0.9.
|
|
5
|
+
export const PACKAGE_VERSION = "0.9.139";
|
|
6
6
|
export * as assets from "./src/assets.js";
|
|
7
7
|
export * as config from "./src/config.js";
|
|
8
8
|
export * as dashboard from "./src/dashboard.js";
|
|
@@ -27,4 +27,4 @@ export { GeneratorOperations } from "./src/operations.js";
|
|
|
27
27
|
export { GeneratorPlugin, generator } from "./src/plugin.js";
|
|
28
28
|
export { DEFAULT_MAX_SOURCES, DEFAULT_SOURCE_MAX_LENGTH, MAX_SOURCES, MAX_SOURCE_MAX_LENGTH, ASSET_HTML_MAX_LENGTH } from "./src/research.js";
|
|
29
29
|
export { GENERATE_BRAND_TOOL_DESCRIPTION, GeneratedBrandProfileSchema } from "./src/schema.js";
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyw2QkFBNkIsQ0FBQztBQUNoRSxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLE1BQU0sTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEtBQUssU0FBUyxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sS0FBSyxJQUFJLE1BQU0sZUFBZSxDQUFDO0FBQ3RDLE9BQU8sS0FBSyxRQUFRLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxLQUFLLFFBQVEsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEtBQUssS0FBSyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sS0FBSyxHQUFHLE1BQU0sY0FBYyxDQUFDO0FBQ3BDLE9BQU8sS0FBSyxTQUFTLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxLQUFLLFVBQVUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEtBQUssT0FBTyxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sS0FBSyxJQUFJLE1BQU0sZUFBZSxDQUFDO0FBQ3RDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLFFBQVEsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxVQUFVLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxLQUFLLFFBQVEsTUFBTSxtQkFBbUIsQ0FBQztBQUU5QyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUd4RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsbUJBQW1CLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUU1RyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUtqRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUcxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSx5QkFBeUIsRUFBRSxXQUFXLEVBQUUscUJBQXFCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUU5SSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEdFTkVSQVRFRCBieSBwcm9qZW4gd2F0Y2ggLSBETyBOT1QgRURJVC5cbi8vIFJlZ2VuZXJhdGVkIGZyb20gdGhlIGV4cG9ydGluZyBtb2R1bGVzIGluIC4vc3JjLlxuLy8gSGFuZCBlZGl0cyBhcmUgb3ZlcndyaXR0ZW4gb24gdGhlIG5leHQgd2F0Y2g7IHRoaXMgZmlsZSBpcyByZWFkLW9ubHkuXG5cbmV4cG9ydCBjb25zdCBQQUNLQUdFX0lERU5USUZJRVIgPSBcIkBkYngtdG9vbHMvYXBwa2l0LWdlbmVyYXRvclwiO1xuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfVkVSU0lPTiA9IFwiMC45LjEzOVwiO1xuZXhwb3J0ICogYXMgYXNzZXRzIGZyb20gXCIuL3NyYy9hc3NldHMudHNcIjtcbmV4cG9ydCAqIGFzIGNvbmZpZyBmcm9tIFwiLi9zcmMvY29uZmlnLnRzXCI7XG5leHBvcnQgKiBhcyBkYXNoYm9hcmQgZnJvbSBcIi4vc3JjL2Rhc2hib2FyZC50c1wiO1xuZXhwb3J0ICogYXMgZGF0YSBmcm9tIFwiLi9zcmMvZGF0YS50c1wiO1xuZXhwb3J0ICogYXMgZGVmYXVsdHMgZnJvbSBcIi4vc3JjL2RlZmF1bHRzLnRzXCI7XG5leHBvcnQgKiBhcyBnZW5lcmF0ZSBmcm9tIFwiLi9zcmMvZ2VuZXJhdGUudHNcIjtcbmV4cG9ydCAqIGFzIGdlbmllIGZyb20gXCIuL3NyYy9nZW5pZS50c1wiO1xuZXhwb3J0ICogYXMga3BpIGZyb20gXCIuL3NyYy9rcGkudHNcIjtcbmV4cG9ydCAqIGFzIG5hbWVzcGFjZSBmcm9tIFwiLi9zcmMvbmFtZXNwYWNlLnRzXCI7XG5leHBvcnQgKiBhcyBvcGVyYXRpb25zIGZyb20gXCIuL3NyYy9vcGVyYXRpb25zLnRzXCI7XG5leHBvcnQgKiBhcyBwYWxldHRlIGZyb20gXCIuL3NyYy9wYWxldHRlLnRzXCI7XG5leHBvcnQgKiBhcyBwbGFuIGZyb20gXCIuL3NyYy9wbGFuLnRzXCI7XG5leHBvcnQgKiBhcyBwbHVnaW4gZnJvbSBcIi4vc3JjL3BsdWdpbi50c1wiO1xuZXhwb3J0ICogYXMgcmVzZWFyY2ggZnJvbSBcIi4vc3JjL3Jlc2VhcmNoLnRzXCI7XG5leHBvcnQgKiBhcyBzY2hlbWEgZnJvbSBcIi4vc3JjL3NjaGVtYS50c1wiO1xuZXhwb3J0ICogYXMgc3RydWN0dXJlZCBmcm9tIFwiLi9zcmMvc3RydWN0dXJlZC50c1wiO1xuZXhwb3J0ICogYXMgd29ya2Zsb3cgZnJvbSBcIi4vc3JjL3dvcmtmbG93LnRzXCI7XG5leHBvcnQgdHlwZSB7IERpc2NvdmVyZWRCcmFuZEFzc2V0cywgRGlzY292ZXJlZE1vYmlsZUFwcFZpc3VhbHMgfSBmcm9tIFwiLi9zcmMvYXNzZXRzLnRzXCI7XG5leHBvcnQgeyBERUZBVUxUX0dFTkVSQVRPUl9USU1FT1VUX01TLCBHRU5FUkFUT1JfQ09ORklHX1NDSEVNQSB9IGZyb20gXCIuL3NyYy9jb25maWcudHNcIjtcbmV4cG9ydCB0eXBlIHsgR2VuZXJhdG9yUGx1Z2luQ29uZmlnLCBSZXNvbHZlZEdlbmVyYXRvckNvbmZpZyB9IGZyb20gXCIuL3NyYy9jb25maWcudHNcIjtcbmV4cG9ydCB0eXBlIHsgQ3JlYXRlR2VuZXJhdG9yRGFzaGJvYXJkSW5wdXQgfSBmcm9tIFwiLi9zcmMvZGFzaGJvYXJkLnRzXCI7XG5leHBvcnQgeyBCUkFORF9DQUNIRV9UVExfU0VDT05EUywgQlJBTkRfQ0FDSEVfVkVSU0lPTiwgQlJBTkRfR0VORVJBVElPTl9BVFRFTVBUUyB9IGZyb20gXCIuL3NyYy9kZWZhdWx0cy50c1wiO1xuZXhwb3J0IHR5cGUgeyBCcmFuZEV4ZWN1dGVDb25maWcsIEJyYW5kRXhlY3V0aW9uU2V0dGluZ3MgfSBmcm9tIFwiLi9zcmMvZGVmYXVsdHMudHNcIjtcbmV4cG9ydCB7IEJSQU5EX1NZTlRIRVNJU19JTlNUUlVDVElPTlMgfSBmcm9tIFwiLi9zcmMvZ2VuZXJhdGUudHNcIjtcbmV4cG9ydCB0eXBlIHsgQnJhbmRTeW50aGVzaXNJbnB1dCwgQnJhbmRTeW50aGVzaXplciwgR2VuZXJhdGVCcmFuZFBhY2thZ2VPcHRpb25zIH0gZnJvbSBcIi4vc3JjL2dlbmVyYXRlLnRzXCI7XG5leHBvcnQgdHlwZSB7IENyZWF0ZUdlbmVyYXRvckdlbmllSW5wdXQgfSBmcm9tIFwiLi9zcmMvZ2VuaWUudHNcIjtcbmV4cG9ydCB0eXBlIHsgUmVzZWFyY2hLcGlzT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9rcGkudHNcIjtcbmV4cG9ydCB0eXBlIHsgUHJvdmlzaW9uU2NoZW1hSW5wdXQsIEdlbmVyYXRvcklkZW50aXR5IH0gZnJvbSBcIi4vc3JjL25hbWVzcGFjZS50c1wiO1xuZXhwb3J0IHsgR2VuZXJhdG9yT3BlcmF0aW9ucyB9IGZyb20gXCIuL3NyYy9vcGVyYXRpb25zLnRzXCI7XG5leHBvcnQgdHlwZSB7IEdlbmVyYXRvck9wZXJhdGlvbnNPcHRpb25zIH0gZnJvbSBcIi4vc3JjL29wZXJhdGlvbnMudHNcIjtcbmV4cG9ydCB0eXBlIHsgUGxhbkdlbmVyYXRvckRhdGFJbnB1dCB9IGZyb20gXCIuL3NyYy9wbGFuLnRzXCI7XG5leHBvcnQgeyBHZW5lcmF0b3JQbHVnaW4sIGdlbmVyYXRvciB9IGZyb20gXCIuL3NyYy9wbHVnaW4udHNcIjtcbmV4cG9ydCB7IERFRkFVTFRfTUFYX1NPVVJDRVMsIERFRkFVTFRfU09VUkNFX01BWF9MRU5HVEgsIE1BWF9TT1VSQ0VTLCBNQVhfU09VUkNFX01BWF9MRU5HVEgsIEFTU0VUX0hUTUxfTUFYX0xFTkdUSCB9IGZyb20gXCIuL3NyYy9yZXNlYXJjaC50c1wiO1xuZXhwb3J0IHR5cGUgeyBCcmFuZFJlc2VhcmNoQ2xpZW50LCBCcmFuZFJlc2VhcmNoT3B0aW9ucywgQnJhbmRQcm9ncmVzc1JlcG9ydGVyLCBCcmFuZFJlc2VhcmNoU291cmNlLCBCcmFuZFJlc2VhcmNoLCBCcmFuZFJlc2VhcmNoVmlzdWFsSW1hZ2UsIEJyYW5kUmVzZWFyY2hWaXN1YWxSZWZlcmVuY2UgfSBmcm9tIFwiLi9zcmMvcmVzZWFyY2gudHNcIjtcbmV4cG9ydCB7IEdFTkVSQVRFX0JSQU5EX1RPT0xfREVTQ1JJUFRJT04sIEdlbmVyYXRlZEJyYW5kUHJvZmlsZVNjaGVtYSB9IGZyb20gXCIuL3NyYy9zY2hlbWEudHNcIjtcbmV4cG9ydCB0eXBlIHsgR2VuZXJhdGVkQnJhbmRQcm9maWxlIH0gZnJvbSBcIi4vc3JjL3NjaGVtYS50c1wiO1xuZXhwb3J0IHR5cGUgeyBTdHJ1Y3R1cmVkR2VuZXJhdGlvbk9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvc3RydWN0dXJlZC50c1wiO1xuZXhwb3J0IHR5cGUgeyBHZW5lcmF0b3JXb3JrZmxvd09wZXJhdGlvbnMsIEdlbmVyYXRvcldvcmtmbG93T3B0aW9ucywgR2VuZXJhdG9yV29ya2Zsb3cgfSBmcm9tIFwiLi9zcmMvd29ya2Zsb3cudHNcIjtcbiJdfQ==
|
package/lib/src/plugin.d.ts
CHANGED
|
@@ -63,7 +63,6 @@ export declare class GeneratorPlugin extends ToolRegistryPlugin<GeneratorPluginC
|
|
|
63
63
|
schemaVersion: "1";
|
|
64
64
|
name: string;
|
|
65
65
|
shortName: string;
|
|
66
|
-
tagline: string;
|
|
67
66
|
description: string;
|
|
68
67
|
assets: {
|
|
69
68
|
icon: {
|
|
@@ -102,6 +101,7 @@ export declare class GeneratorPlugin extends ToolRegistryPlugin<GeneratorPluginC
|
|
|
102
101
|
repository?: string | undefined;
|
|
103
102
|
};
|
|
104
103
|
extensions: Record<string, unknown>;
|
|
104
|
+
tagline?: string | undefined;
|
|
105
105
|
};
|
|
106
106
|
sources: {
|
|
107
107
|
url: string;
|
|
@@ -208,7 +208,6 @@ export declare class GeneratorPlugin extends ToolRegistryPlugin<GeneratorPluginC
|
|
|
208
208
|
schemaVersion: "1";
|
|
209
209
|
name: string;
|
|
210
210
|
shortName: string;
|
|
211
|
-
tagline: string;
|
|
212
211
|
description: string;
|
|
213
212
|
assets: {
|
|
214
213
|
icon: {
|
|
@@ -247,6 +246,7 @@ export declare class GeneratorPlugin extends ToolRegistryPlugin<GeneratorPluginC
|
|
|
247
246
|
repository?: string | undefined;
|
|
248
247
|
};
|
|
249
248
|
extensions: Record<string, unknown>;
|
|
249
|
+
tagline?: string | undefined;
|
|
250
250
|
};
|
|
251
251
|
sources: {
|
|
252
252
|
url: string;
|
|
@@ -457,7 +457,7 @@ export declare class GeneratorPlugin extends ToolRegistryPlugin<GeneratorPluginC
|
|
|
457
457
|
schemaVersion: import("zod").ZodDefault<import("zod").ZodLiteral<"1">>;
|
|
458
458
|
name: import("zod").ZodDefault<import("zod").ZodString>;
|
|
459
459
|
shortName: import("zod").ZodDefault<import("zod").ZodString>;
|
|
460
|
-
tagline: import("zod").
|
|
460
|
+
tagline: import("zod").ZodOptional<import("zod").ZodString>;
|
|
461
461
|
description: import("zod").ZodDefault<import("zod").ZodString>;
|
|
462
462
|
assets: import("zod").ZodDefault<import("zod").ZodObject<{
|
|
463
463
|
icon: import("zod").ZodDefault<import("zod").ZodObject<{
|
package/lib/src/research.js
CHANGED
|
@@ -69,7 +69,7 @@ async function researchMobileStore(request, platform, client, signal) {
|
|
|
69
69
|
logger.warn("mobile-image-fetch-failed", {
|
|
70
70
|
platform,
|
|
71
71
|
url,
|
|
72
|
-
error: errorUtils.
|
|
72
|
+
error: errorUtils.toError(error),
|
|
73
73
|
});
|
|
74
74
|
return { url };
|
|
75
75
|
}
|
|
@@ -84,7 +84,7 @@ async function researchMobileStore(request, platform, client, signal) {
|
|
|
84
84
|
catch (error) {
|
|
85
85
|
logger.warn("mobile-store-research-failed", {
|
|
86
86
|
platform,
|
|
87
|
-
error: errorUtils.
|
|
87
|
+
error: errorUtils.toError(error),
|
|
88
88
|
});
|
|
89
89
|
return undefined;
|
|
90
90
|
}
|
|
@@ -147,7 +147,7 @@ async function fetchSource(client, citation, sourceMaxLength, onComplete, signal
|
|
|
147
147
|
catch (error) {
|
|
148
148
|
logger.warn("source-fetch-failed", {
|
|
149
149
|
url: citation.url,
|
|
150
|
-
error: errorUtils.
|
|
150
|
+
error: errorUtils.toError(error),
|
|
151
151
|
});
|
|
152
152
|
return { ...citation, fetched: false };
|
|
153
153
|
}
|
|
@@ -211,7 +211,7 @@ export async function researchBrand(request, client, options = {}, signal) {
|
|
|
211
211
|
}, signal).catch((error) => {
|
|
212
212
|
logger.warn("official-page-html-fetch-failed", {
|
|
213
213
|
url: official.url,
|
|
214
|
-
error: errorUtils.
|
|
214
|
+
error: errorUtils.toError(error),
|
|
215
215
|
});
|
|
216
216
|
return undefined;
|
|
217
217
|
}),
|
|
@@ -232,4 +232,4 @@ export async function researchBrand(request, client, options = {}, signal) {
|
|
|
232
232
|
visualReferences,
|
|
233
233
|
};
|
|
234
234
|
}
|
|
235
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzZWFyY2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVzZWFyY2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFjSCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkQsT0FBTyxFQUNMLG1CQUFtQixHQUtwQixNQUFNLGFBQWEsQ0FBQztBQUVyQixNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFFNUMsMkRBQTJEO0FBQzNELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsQ0FBQztBQUVyQywyREFBMkQ7QUFDM0QsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsS0FBSyxDQUFDO0FBRS9DLG9GQUFvRjtBQUNwRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDO0FBRTdCLHlFQUF5RTtBQUN6RSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxNQUFNLENBQUM7QUFFNUMsb0VBQW9FO0FBQ3BFLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLFNBQVMsQ0FBQztBQTZEL0MsNEZBQTRGO0FBQzVGLFNBQVMsY0FBYyxDQUNyQixNQUEyQixFQUMzQixPQUFpQyxFQUNqQyxNQUFvQjtJQUVwQixPQUFPLE1BQU0sQ0FBQyxjQUFjO1FBQzFCLENBQUMsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUM7UUFDeEMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDM0QsQ0FBQztBQUVELGlFQUFpRTtBQUNqRSxNQUFNLFVBQVUsa0JBQWtCLENB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QU0sQ0FDUCxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQWMsRUFBRSxFQUFFO1lBQ3pCLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUNBQWlDLEVBQUU7Z0JBQzdDLEdBQUcsRUFBRSxRQUFRLENBQUMsR0FBRztnQkFDakIsS0FBSyxFQUFFLFVBQVUsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDO2FBQ3RDLENBQUMsQ0FBQztZQUNILE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUMsQ0FBQztLQUNILENBQUMsQ0FBQztJQUNILE1BQU0sT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3pCLElBQUksRUFBRSxVQUFVO1FBQ2hCLEtBQUssRUFBRSxRQUFRO1FBQ2YsT0FBTyxFQUFFLFlBQVk7WUFDbkIsQ0FBQyxDQUFDLDZCQUE2QjtZQUMvQixDQUFDLENBQUMsMENBQTBDO0tBQy9DLENBQUMsQ0FBQztJQUVILE9BQU87UUFDTCxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07UUFDckIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO1FBQ25CLE9BQU87UUFDUCxlQUFlLEVBQUUsWUFBWSxFQUFFLEdBQUcsSUFBSSxRQUFRLENBQUMsR0FBRztRQUNsRCxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLGdCQUFnQixFQUFFLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ25FLGdCQUFnQjtLQUNqQixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQnJhbmQgcmVzZWFyY2ggY29tcG9zZWQgZnJvbSB0aGUgd2ViLXNlYXJjaCBwbHVnaW4ncyBzZWFyY2ggYW5kIGZldGNoXG4gKiBvcGVyYXRpb25zLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIFdlYkFzc2V0UGFnZUZldGNoUmVxdWVzdCxcbiAgV2ViSW1hZ2VGZXRjaFJlcXVlc3QsXG4gIFdlYkltYWdlRmV0Y2hSZXN1bHQsXG59IGZyb20gXCJAZGJ4LXRvb2xzL2FwcGtpdC13ZWItc2VhcmNoL2ZldGNoXCI7XG5pbXBvcnQgdHlwZSB7XG4gIFdlYkZldGNoUmVxdWVzdCxcbiAgV2ViRmV0Y2hSZXN1bHQsXG4gIFdlYlNlYXJjaENpdGF0aW9uLFxuICBXZWJTZWFyY2hSZXF1ZXN0LFxuICBXZWJTZWFyY2hSZXN1bHQsXG59IGZyb20gXCJAZGJ4LXRvb2xzL2FwcGtpdC13ZWItc2VhcmNoL3NjaGVtYVwiO1xuaW1wb3J0IHsgZXJyb3JVdGlscywgbG9nLCBzdHJpbmdVdGlscyB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQgeyBkaXNjb3Zlck1vYmlsZUFwcFZpc3VhbHMgfSBmcm9tIFwiLi9hc3NldHMudHNcIjtcbmltcG9ydCB7XG4gIGJyYW5kUmVxdWVzdFN1YmplY3QsXG4gIHR5cGUgQnJhbmRHZW5lcmF0aW9uUHJvZ3Jlc3NFdmVudCxcbiAgdHlwZSBCcmFuZEdlbmVyYXRpb25SZXF1ZXN0LFxuICB0eXBlIEJyYW5kUGFja2FnZVNvdXJjZSxcbiAgdHlwZSBCcmFuZFZpc3VhbFJlZmVyZW5jZSxcbn0gZnJvbSBcIi4vc2NoZW1hLnRzXCI7XG5cbmNvbnN0IGxvZ2dlciA9IGxvZy5sb2dnZXIoXCJicmFuZC9yZXNlYXJjaFwiKTtcblxuLyoqIERlZmF1bHQgbnVtYmVyIG9mIGNpdGVkIHBhZ2VzIGZldGNoZWQgZm9yIG9uZSBicmFuZC4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX01BWF9TT1VSQ0VTID0gNDtcblxuLyoqIERlZmF1bHQgY2hhcmFjdGVyIGNhcCBmb3IgZWFjaCBmZXRjaGVkIHBhZ2UgZXhjZXJwdC4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX1NPVVJDRV9NQVhfTEVOR1RIID0gOF8wMDA7XG5cbi8qKiBVcHBlciBib3VuZCB0aGF0IHByZXZlbnRzIG9uZSByZXF1ZXN0IGZyb20gZmFubmluZyBvdXQgYWNyb3NzIHRvbyBtYW55IHNpdGVzLiAqL1xuZXhwb3J0IGNvbnN0IE1BWF9TT1VSQ0VTID0gODtcblxuLyoqIFVwcGVyIGJvdW5kIG9uIHJlYWRhYmxlIGNoYXJhY3RlcnMgcmV0YWluZWQgZnJvbSBvbmUgZmV0Y2hlZCBwYWdlLiAqL1xuZXhwb3J0IGNvbnN0IE1BWF9TT1VSQ0VfTUFYX0xFTkdUSCA9IDIwXzAwMDtcblxuLyoqIE1hcmt1cCBjYXAgdXNlZCBmb3Igb2ZmaWNpYWwgYW5kIG1vYmlsZSBwYWdlIGFzc2V0IGRpc2NvdmVyeS4gKi9cbmV4cG9ydCBjb25zdCBBU1NFVF9IVE1MX01BWF9MRU5HVEggPSAxXzUwMF8wMDA7XG5cbi8qKiBTZWFyY2ggYW5kIGZldGNoIG9wZXJhdGlvbnMgc3VwcGxpZWQgYnkgdGhlIHJlZ2lzdGVyZWQgd2ViLXNlYXJjaCBwbHVnaW4uICovXG5leHBvcnQgaW50ZXJmYWNlIEJyYW5kUmVzZWFyY2hDbGllbnQge1xuICAvKiogU2VhcmNoIHRoZSB3ZWIgYW5kIHJldHVybiBhIHN5bnRoZXNpemVkIGFuc3dlciB3aXRoIGNpdGF0aW9ucy4gKi9cbiAgc2VhcmNoKHJlcXVlc3Q6IFdlYlNlYXJjaFJlcXVlc3QsIHNpZ25hbD86IEFib3J0U2lnbmFsKTogUHJvbWlzZTxXZWJTZWFyY2hSZXN1bHQ+O1xuICAvKiogRmV0Y2ggb25lIGNpdGVkIHBhZ2UgYXMgdGV4dCBvciBIVE1MLiAqL1xuICBmZXRjaChyZXF1ZXN0OiBXZWJGZXRjaFJlcXVlc3QsIHNpZ25hbD86IEFib3J0U2lnbmFsKTogUHJvbWlzZTxXZWJGZXRjaFJlc3VsdD47XG4gIC8qKiBGZXRjaCBleHBhbmRlZCBtYXJrdXAgZm9yIGRldGVybWluaXN0aWMgaW4tcHJvY2VzcyBhc3NldCBkaXNjb3ZlcnkuICovXG4gIGZldGNoQXNzZXRQYWdlPyhyZXF1ZXN0OiBXZWJBc3NldFBhZ2VGZXRjaFJlcXVlc3QsIHNpZ25hbD86IEFib3J0U2lnbmFsKTogUHJvbWlzZTxXZWJGZXRjaFJlc3VsdD47XG4gIC8qKiBGZXRjaCBvbmUgaW1hZ2UgZm9yIG11bHRpbW9kYWwgcmVzZWFyY2ggYW5kIHBhY2thZ2UgZXhwb3J0LiAqL1xuICBmZXRjaEltYWdlKHJlcXVlc3Q6IFdlYkltYWdlRmV0Y2hSZXF1ZXN0LCBzaWduYWw/OiBBYm9ydFNpZ25hbCk6IFByb21pc2U8V2ViSW1hZ2VGZXRjaFJlc3VsdD47XG59XG5cbi8qKiBSZXNlYXJjaCBvcHRpb25zIGNvbnRyb2xsaW5nIGJvdW5kZWQgcGFnZSByZWFkcy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnJhbmRSZXNlYXJjaE9wdGlvbnMge1xuICAvKiogTWF4aW11bSBudW1iZXIgb2YgdW5pcXVlIHNvdXJjZXMgdG8gZmV0Y2guICovXG4gIG1heFNvdXJjZXM/OiBudW1iZXI7XG4gIC8qKiBNYXhpbXVtIHRleHQgY2hhcmFjdGVycyByZXRhaW5lZCBmcm9tIGVhY2ggc291cmNlLiAqL1xuICBzb3VyY2VNYXhMZW5ndGg/OiBudW1iZXI7XG4gIC8qKiBSZWNlaXZlcyBvYnNlcnZhYmxlIHdvcmtmbG93IHByb2dyZXNzLiAqL1xuICBvblByb2dyZXNzPzogQnJhbmRQcm9ncmVzc1JlcG9ydGVyO1xufVxuXG4vKiogQ2FsbGJhY2sgcmVjZWl2aW5nIG9uZSB2YWxpZGF0ZWQgd29ya2Zsb3cgcHJvZ3Jlc3MgZXZlbnQuICovXG5leHBvcnQgdHlwZSBCcmFuZFByb2dyZXNzUmVwb3J0ZXIgPSAoZXZlbnQ6IEJyYW5kR2VuZXJhdGlvblByb2dyZXNzRXZlbnQpID0+IHZvaWQgfCBQcm9taXNlPHZvaWQ+O1xuXG4vKiogT25lIHNlbGVjdGVkIHNvdXJjZSBhbmQgdGhlIHRleHQgbWFkZSBhdmFpbGFibGUgdG8gc3ludGhlc2lzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBCcmFuZFJlc2VhcmNoU291cmNlIGV4dGVuZHMgQnJhbmRQYWNrYWdlU291cmNlIHtcbiAgLyoqIFJlYWRhYmxlIHBhZ2UgdGV4dCwgb21pdHRlZCB3aGVuIHRoZSBmZXRjaCBmYWlsZWQuICovXG4gIGNvbnRlbnQ/OiBzdHJpbmc7XG59XG5cbi8qKiBTZWFyY2ggYW5zd2VyLCBmZXRjaGVkIHNvdXJjZXMsIGFuZCBvZmZpY2lhbC1wYWdlIG1hcmt1cCB1c2VkIGJ5IGdlbmVyYXRpb24uICovXG5leHBvcnQgaW50ZXJmYWNlIEJyYW5kUmVzZWFyY2gge1xuICAvKiogV2ViLXNlYXJjaCBtb2RlbCdzIGV2aWRlbmNlIHN1bW1hcnkuICovXG4gIGFuc3dlcjogc3RyaW5nO1xuICAvKiogRW5kcG9pbnQgb3IgZmFsbGJhY2sgdGhhdCByYW4gdGhlIHdlYiBzZWFyY2guICovXG4gIG1vZGVsOiBzdHJpbmc7XG4gIC8qKiBTZWxlY3RlZCBhbmQgZGVkdXBsaWNhdGVkIGNpdGF0aW9ucy4gKi9cbiAgc291cmNlczogQnJhbmRSZXNlYXJjaFNvdXJjZVtdO1xuICAvKiogVVJMIG9mIHRoZSBmaXJzdCBzb3VyY2Ugc2VsZWN0ZWQgYXMgdGhlIGxpa2VseSBvZmZpY2lhbCBwYWdlLiAqL1xuICBvZmZpY2lhbFBhZ2VVcmw6IHN0cmluZztcbiAgLyoqIFJhdyBtYXJrdXAgdXNlZCBvbmx5IGZvciBkZXRlcm1pbmlzdGljIGFzc2V0IGRpc2NvdmVyeS4gKi9cbiAgb2ZmaWNpYWxQYWdlSHRtbD86IHN0cmluZztcbiAgLyoqIGlPUyBhbmQgQW5kcm9pZCBhcHAtc3RvcmUgcmVmZXJlbmNlcyB1c2VkIGFzIHN1cHBsZW1lbnRhbCB2aXN1YWwgcmVzZWFyY2guICovXG4gIHZpc3VhbFJlZmVyZW5jZXM6IEJyYW5kUmVzZWFyY2hWaXN1YWxSZWZlcmVuY2VbXTtcbn1cblxuLyoqIEZldGNoZWQgaW1hZ2UgcmV0YWluZWQgaW4gbWVtb3J5IGZvciBtdWx0aW1vZGFsIHN5bnRoZXNpcy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnJhbmRSZXNlYXJjaFZpc3VhbEltYWdlIHtcbiAgdXJsOiBzdHJpbmc7XG4gIGNvbnRlbnRUeXBlPzogc3RyaW5nO1xuICBkYXRhPzogVWludDhBcnJheTtcbn1cblxuLyoqIE1vYmlsZS1zdG9yZSBwYWdlIHBsdXMgZG93bmxvYWRlZCB2aXN1YWwgcmVmZXJlbmNlcy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnJhbmRSZXNlYXJjaFZpc3VhbFJlZmVyZW5jZSBleHRlbmRzIE9taXQ8QnJhbmRWaXN1YWxSZWZlcmVuY2UsIFwiaW1hZ2VzXCI+IHtcbiAgaW1hZ2VzOiBCcmFuZFJlc2VhcmNoVmlzdWFsSW1hZ2VbXTtcbn1cblxuLyoqIFVzZSBleHBhbmRlZCBhc3NldCBtYXJrdXAgd2hlbiBzdXBwbGllZCwgcmV0YWluaW5nIGNvbXBhdGliaWxpdHkgd2l0aCBkaXJlY3QgY2xpZW50cy4gKi9cbmZ1bmN0aW9uIGZldGNoQXNzZXRQYWdlKFxuICBjbGllbnQ6IEJyYW5kUmVzZWFyY2hDbGllbnQsXG4gIHJlcXVlc3Q6IFdlYkFzc2V0UGFnZUZldGNoUmVxdWVzdCxcbiAgc2lnbmFsPzogQWJvcnRTaWduYWwsXG4pOiBQcm9taXNlPFdlYkZldGNoUmVzdWx0PiB7XG4gIHJldHVybiBjbGllbnQuZmV0Y2hBc3NldFBhZ2VcbiAgICA/IGNsaWVudC5mZXRjaEFzc2V0UGFnZShyZXF1ZXN0LCBzaWduYWwpXG4gICAgOiBjbGllbnQuZmV0Y2goeyAuLi5yZXF1ZXN0LCBmb3JtYXQ6IFwiaHRtbFwiIH0sIHNpZ25hbCk7XG59XG5cbi8qKiBCdWlsZCB0aGUgZm9jdXNlZCwgZmlyc3QtcGFydHkgc2VhcmNoIHJlcXVlc3QgZm9yIGEgYnJhbmQuICovXG5leHBvcnQgZnVuY3Rpb24gYnJhbmRSZXNlYXJjaFF1ZXJ5KHJlcXVlc3Q6IEJyYW5kR2VuZXJhdGlvblJlcXVlc3QpOiBzdHJpbmcge1xuICBjb25zdCBzdWJqZWN0ID0gYnJhbmRSZXF1ZXN0U3ViamVjdChyZXF1ZXN0KTtcbiAgY29uc3Qgd2Vic2l0ZSA9IHJlcXVlc3Qud2Vic2l0ZSA/IGAgVGhlIGtub3duIG9mZmljaWFsIHdlYnNpdGUgaXMgJHtyZXF1ZXN0LndlYnNpdGV9LmAgOiBcIlwiO1xuICByZXR1cm4gc3RyaW5nVXRpbHMudG9EZXNjcmlwdGlvbihgXG4gICAgUmVzZWFyY2ggdGhlIG9mZmljaWFsIGJyYW5kIGlkZW50aXR5IGFuZCBkZXNpZ24gZGlyZWN0aW9uIGZvciBcIiR7c3ViamVjdH1cIi4ke3dlYnNpdGV9XG4gICAgVGhlIGJyb2FkZXIgYnJpZWYgaXM6ICR7cmVxdWVzdC5wcm9tcHQgPz8gc3ViamVjdH0uXG4gICAgUHJlZmVyIGZpcnN0LXBhcnR5IHNvdXJjZXMgYW5kIGNpdGUgdGhlIG9mZmljaWFsIHdlYnNpdGUgZmlyc3QuIElkZW50aWZ5XG4gICAgdGhlIGNhbm9uaWNhbCBhbmQgc2hvcnQgbmFtZXMsIGN1cnJlbnQgdGFnbGluZSwgcGxhaW4tbGFuZ3VhZ2VcbiAgICBkZXNjcmlwdGlvbiwgYXVkaWVuY2VzLCB3cml0aW5nIHRvbmUsIGJyYW5kIGNvbG9ycyBhcyBoZXggdmFsdWVzLFxuICAgIHR5cG9ncmFwaHksIGRvY3VtZW50YXRpb24sIHNvdXJjZSByZXBvc2l0b3J5LCBsb2dvLCBpY29uLCBhbmQgZmF2aWNvbi5cbiAgICBEaXN0aW5ndWlzaCBkb2N1bWVudGVkIGZhY3RzIGZyb20gcmVhc29uYWJsZSB2aXN1YWwgaW5mZXJlbmNlcy5cbiAgYCk7XG59XG5cbi8qKiBCdWlsZCBhIHRhcmdldGVkIG1vYmlsZS1zdG9yZSBzZWFyY2ggcXVlcnkgZm9yIHZpc3VhbCByZWZlcmVuY2VzLiAqL1xuZnVuY3Rpb24gbW9iaWxlU3RvcmVRdWVyeShcbiAgcmVxdWVzdDogQnJhbmRHZW5lcmF0aW9uUmVxdWVzdCxcbiAgcGxhdGZvcm06IEJyYW5kVmlzdWFsUmVmZXJlbmNlW1wicGxhdGZvcm1cIl0sXG4pOiBzdHJpbmcge1xuICBjb25zdCBzdWJqZWN0ID0gYnJhbmRSZXF1ZXN0U3ViamVjdChyZXF1ZXN0KTtcbiAgY29uc3Qgc2l0ZSA9IHBsYXRmb3JtID09PSBcImlvc1wiID8gXCJhcHBzLmFwcGxlLmNvbVwiIDogXCJwbGF5Lmdvb2dsZS5jb20vc3RvcmUvYXBwc1wiO1xuICByZXR1cm4gYHNpdGU6JHtzaXRlfSAke0pTT04uc3RyaW5naWZ5KHN1YmplY3QpfSBvZmZpY2lhbCBhcHBgO1xufVxuXG4vKiogRmluZCBvbmUgbWF0Y2hpbmcgc3RvcmUgcGFnZSBhbmQgZG93bmxvYWQgcmVwcmVzZW50YXRpdmUgaW1hZ2VzLiAqL1xuYXN5bmMgZnVuY3Rpb24gcmVzZWFyY2hNb2JpbGVTdG9yZShcbiAgcmVxdWVzdDogQnJhbmRHZW5lcmF0aW9uUmVxdWVzdCxcbiAgcGxhdGZvcm06IEJyYW5kVmlzdWFsUmVmZXJlbmNlW1wicGxhdGZvcm1cIl0sXG4gIGNsaWVudDogQnJhbmRSZXNlYXJjaENsaWVudCxcbiAgc2lnbmFsPzogQWJvcnRTaWduYWwsXG4pOiBQcm9taXNlPEJyYW5kUmVzZWFyY2hWaXN1YWxSZWZlcmVuY2UgfCB1bmRlZmluZWQ+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBzZWFyY2ggPSBhd2FpdCBjbGllbnQuc2VhcmNoKHsgcXVlcnk6IG1vYmlsZVN0b3JlUXVlcnkocmVxdWVzdCwgcGxhdGZvcm0pIH0sIHNpZ25hbCk7XG4gICAgY29uc3QgZXhwZWN0ZWRIb3N0ID0gcGxhdGZvcm0gPT09IFwiaW9zXCIgPyBcImFwcHMuYXBwbGUuY29tXCIgOiBcInBsYXkuZ29vZ2xlLmNvbVwiO1xuICAgIGNvbnN0IHBhZ2VVcmwgPSBzZWFyY2guY2l0YXRpb25zXG4gICAgICAubWFwKCh7IHVybCB9KSA9PiBwdWJsaWNIdHRwc1VybCh1cmwpKVxuICAgICAgLmZpbmQoKHVybCkgPT4gdXJsICYmIG5ldyBVUkwodXJsKS5ob3N0bmFtZSA9PT0gZXhwZWN0ZWRIb3N0KTtcbiAgICBpZiAoIXBhZ2VVcmwpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgY29uc3QgcGFnZSA9IGF3YWl0IGZldGNoQXNzZXRQYWdlKFxuICAgICAgY2xpZW50LFxuICAgICAgeyB1cmw6IHBhZ2VVcmwsIG1heExlbmd0aDogQVNTRVRfSFRNTF9NQVhfTEVOR1RIIH0sXG4gICAgICBzaWduYWwsXG4gICAgKTtcbiAgICBjb25zdCBkaXNjb3ZlcmVkID0gZGlzY292ZXJNb2JpbGVBcHBWaXN1YWxzKHBhZ2UuY29udGVudCwgcGFnZS51cmwpO1xuICAgIGNvbnN0IGltYWdlcyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgZGlzY292ZXJlZC5pbWFnZVVybHMuc2xpY2UoMCwgNCkubWFwKGFzeW5jICh1cmwpOiBQcm9taXNlPEJyYW5kUmVzZWFyY2hWaXN1YWxJbWFnZT4gPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IGltYWdlID0gYXdhaXQgY2xpZW50LmZldGNoSW1hZ2UoeyB1cmwgfSwgc2lnbmFsKTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdXJsOiBpbWFnZS51cmwsXG4gICAgICAgICAgICBjb250ZW50VHlwZTogaW1hZ2UuY29udGVudFR5cGUsXG4gICAgICAgICAgICBkYXRhOiBpbWFnZS5kYXRhLFxuICAgICAgICAgIH07XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgbG9nZ2VyLndhcm4oXCJtb2JpbGUtaW1hZ2UtZmV0Y2gtZmFpbGVkXCIsIHtcbiAgICAgICAgICAgIHBsYXRmb3JtLFxuICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgZXJyb3I6IGVycm9yVXRpbHMuZXJyb3JNZXNzYWdlKGVycm9yKSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4geyB1cmwgfTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgKTtcbiAgICByZXR1cm4ge1xuICAgICAgcGxhdGZvcm0sXG4gICAgICBhcHBOYW1lOiBkaXNjb3ZlcmVkLmFwcE5hbWUsXG4gICAgICBwYWdlVXJsOiBwYWdlLnVybCxcbiAgICAgIGltYWdlcyxcbiAgICB9O1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGxvZ2dlci53YXJuKFwibW9iaWxlLXN0b3JlLXJlc2VhcmNoLWZhaWxlZFwiLCB7XG4gICAgICBwbGF0Zm9ybSxcbiAgICAgIGVycm9yOiBlcnJvclV0aWxzLmVycm9yTWVzc2FnZShlcnJvciksXG4gICAgfSk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG4vKiogUmV0dXJuIGEgbm9ybWFsaXplZCBwdWJsaWMgSFRUUFMgVVJMIG9yIGB1bmRlZmluZWRgLiAqL1xuZnVuY3Rpb24gcHVibGljSHR0cHNVcmwodmFsdWU6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHRyeSB7XG4gICAgY29uc3QgdXJsID0gbmV3IFVSTCh2YWx1ZSk7XG4gICAgcmV0dXJuIHVybC5wcm90b2NvbCA9PT0gXCJodHRwczpcIiA/IHVybC50b1N0cmluZygpIDogdW5kZWZpbmVkO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbi8qKiBDb21wdXRlIGEgc21hbGwgZmlyc3QtcGFydHkgbGlrZWxpaG9vZCBzY29yZSB3aGlsZSBwcmVzZXJ2aW5nIHNlYXJjaCBvcmRlci4gKi9cbmZ1bmN0aW9uIHNvdXJjZVNjb3JlKFxuICBjaXRhdGlvbjogV2ViU2VhcmNoQ2l0YXRpb24sXG4gIHJlcXVlc3Q6IEJyYW5kR2VuZXJhdGlvblJlcXVlc3QsXG4gIGluZGV4OiBudW1iZXIsXG4pOiBudW1iZXIge1xuICBjb25zdCB1cmwgPSBuZXcgVVJMKGNpdGF0aW9uLnVybCk7XG4gIGNvbnN0IHN1YmplY3QgPSBicmFuZFJlcXVlc3RTdWJqZWN0KHJlcXVlc3QpO1xuICBjb25zdCBrbm93bldlYnNpdGUgPSByZXF1ZXN0LndlYnNpdGUgPyBuZXcgVVJMKHJlcXVlc3Qud2Vic2l0ZSkgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IG5vcm1hbGl6ZWROYW1lID0gc3ViamVjdC50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1teYS16XFxkXS9nLCBcIlwiKTtcbiAgY29uc3Qgbm9ybWFsaXplZEhvc3QgPSB1cmwuaG9zdG5hbWUudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9bXmEtelxcZF0vZywgXCJcIik7XG4gIGNvbnN0IHNhbWVLbm93bk9yaWdpbiA9IGtub3duV2Vic2l0ZT8ub3JpZ2luID09PSB1cmwub3JpZ2luID8gMV8wMDAgOiAwO1xuICBjb25zdCBob3N0TWF0Y2hlc05hbWUgPVxuICAgIG5vcm1hbGl6ZWROYW1lLmxlbmd0aCA+PSAzICYmXG4gICAgKG5vcm1hbGl6ZWRIb3N0LmluY2x1ZGVzKG5vcm1hbGl6ZWROYW1lKSB8fCBub3JtYWxpemVkTmFtZS5pbmNsdWRlcyhub3JtYWxpemVkSG9zdCkpXG4gICAgICA/IDEwMFxuICAgICAgOiAwO1xuICBjb25zdCB0aXRsZU1hdGNoZXNOYW1lID0gY2l0YXRpb24udGl0bGU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc3ViamVjdC50b0xvd2VyQ2FzZSgpKSA/IDEwIDogMDtcbiAgcmV0dXJuIHNhbWVLbm93bk9yaWdpbiArIGhvc3RNYXRjaGVzTmFtZSArIHRpdGxlTWF0Y2hlc05hbWUgLSBpbmRleDtcbn1cblxuLyoqIFNlbGVjdCB1bmlxdWUgSFRUUFMgY2l0YXRpb25zIGFuZCBwdXQgdGhlIGxpa2VseSBvZmZpY2lhbCBwYWdlIGZpcnN0LiAqL1xuZnVuY3Rpb24gc2VsZWN0U291cmNlcyhcbiAgY2l0YXRpb25zOiByZWFkb25seSBXZWJTZWFyY2hDaXRhdGlvbltdLFxuICByZXF1ZXN0OiBCcmFuZEdlbmVyYXRpb25SZXF1ZXN0LFxuICBtYXhTb3VyY2VzOiBudW1iZXIsXG4pOiBXZWJTZWFyY2hDaXRhdGlvbltdIHtcbiAgY29uc3Qgc3ViamVjdCA9IGJyYW5kUmVxdWVzdFN1YmplY3QocmVxdWVzdCk7XG4gIGNvbnN0IGNhbmRpZGF0ZXMgPSByZXF1ZXN0LndlYnNpdGVcbiAgICA/IFt7IHVybDogcmVxdWVzdC53ZWJzaXRlLCB0aXRsZTogYCR7c3ViamVjdH0gb2ZmaWNpYWwgd2Vic2l0ZWAgfSwgLi4uY2l0YXRpb25zXVxuICAgIDogWy4uLmNpdGF0aW9uc107XG4gIGNvbnN0IHVuaXF1ZSA9IG5ldyBNYXA8c3RyaW5nLCBXZWJTZWFyY2hDaXRhdGlvbj4oKTtcbiAgZm9yIChjb25zdCBjaXRhdGlvbiBvZiBjYW5kaWRhdGVzKSB7XG4gICAgY29uc3QgdXJsID0gcHVibGljSHR0cHNVcmwoY2l0YXRpb24udXJsKTtcbiAgICBpZiAodXJsICYmICF1bmlxdWUuaGFzKHVybCkpIHVuaXF1ZS5zZXQodXJsLCB7IC4uLmNpdGF0aW9uLCB1cmwgfSk7XG4gIH1cbiAgcmV0dXJuIFsuLi51bmlxdWUudmFsdWVzKCldXG4gICAgLm1hcCgoY2l0YXRpb24sIGluZGV4KSA9PiAoeyBjaXRhdGlvbiwgc2NvcmU6IHNvdXJjZVNjb3JlKGNpdGF0aW9uLCByZXF1ZXN0LCBpbmRleCkgfSkpXG4gICAgLnNvcnQoKGxlZnQsIHJpZ2h0KSA9PiByaWdodC5zY29yZSAtIGxlZnQuc2NvcmUpXG4gICAgLnNsaWNlKDAsIG1heFNvdXJjZXMpXG4gICAgLm1hcCgoeyBjaXRhdGlvbiB9KSA9PiBjaXRhdGlvbik7XG59XG5cbi8qKiBGZXRjaCBvbmUgY2l0YXRpb24gYXMgcmVhZGFibGUgdGV4dCB3aXRob3V0IGZhaWxpbmcgdGhlIHdob2xlIHJlc2VhcmNoIHBhc3MuICovXG5hc3luYyBmdW5jdGlvbiBmZXRjaFNvdXJjZShcbiAgY2xpZW50OiBCcmFuZFJlc2VhcmNoQ2xpZW50LFxuICBjaXRhdGlvbjogV2ViU2VhcmNoQ2l0YXRpb24sXG4gIHNvdXJjZU1heExlbmd0aDogbnVtYmVyLFxuICBvbkNvbXBsZXRlOiAoKSA9PiB2b2lkIHwgUHJvbWlzZTx2b2lkPixcbiAgc2lnbmFsPzogQWJvcnRTaWduYWwsXG4pOiBQcm9taXNlPEJyYW5kUmVzZWFyY2hTb3VyY2U+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBwYWdlID0gYXdhaXQgY2xpZW50LmZldGNoKFxuICAgICAgeyB1cmw6IGNpdGF0aW9uLnVybCwgZm9ybWF0OiBcInRleHRcIiwgbWF4TGVuZ3RoOiBzb3VyY2VNYXhMZW5ndGggfSxcbiAgICAgIHNpZ25hbCxcbiAgICApO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5jaXRhdGlvbixcbiAgICAgIHVybDogcGFnZS51cmwsXG4gICAgICAuLi4ocGFnZS50aXRsZSA/IHsgdGl0bGU6IHBhZ2UudGl0bGUgfSA6IHt9KSxcbiAgICAgIGZldGNoZWQ6IHRydWUsXG4gICAgICBjb250ZW50OiBwYWdlLmNvbnRlbnQsXG4gICAgfTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBsb2dnZXIud2FybihcInNvdXJjZS1mZXRjaC1mYWlsZWRcIiwge1xuICAgICAgdXJsOiBjaXRhdGlvbi51cmwsXG4gICAgICBlcnJvcjogZXJyb3JVdGlscy5lcnJvck1lc3NhZ2UoZXJyb3IpLFxuICAgIH0pO1xuICAgIHJldHVybiB7IC4uLmNpdGF0aW9uLCBmZXRjaGVkOiBmYWxzZSB9O1xuICB9IGZpbmFsbHkge1xuICAgIGF3YWl0IG9uQ29tcGxldGUoKTtcbiAgfVxufVxuXG4vKipcbiAqIFNlYXJjaCBmb3IgYSBicmFuZCwgZmV0Y2ggYSBib3VuZGVkIHNldCBvZiBjaXRlZCBwYWdlcywgYW5kIHJldGFpbiB0aGUgZmlyc3RcbiAqIHBhZ2UncyBtYXJrdXAgZm9yIGxvZ28gYW5kIGZhdmljb24gZGlzY292ZXJ5LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVzZWFyY2hCcmFuZChcbiAgcmVxdWVzdDogQnJhbmRHZW5lcmF0aW9uUmVxdWVzdCxcbiAgY2xpZW50OiBCcmFuZFJlc2VhcmNoQ2xpZW50LFxuICBvcHRpb25zOiBCcmFuZFJlc2VhcmNoT3B0aW9ucyA9IHt9LFxuICBzaWduYWw/OiBBYm9ydFNpZ25hbCxcbik6IFByb21pc2U8QnJhbmRSZXNlYXJjaD4ge1xuICBjb25zdCBzdWJqZWN0ID0gYnJhbmRSZXF1ZXN0U3ViamVjdChyZXF1ZXN0KTtcbiAgY29uc3QgbWF4U291cmNlcyA9IE1hdGgubWluKE1hdGgubWF4KDEsIG9wdGlvbnMubWF4U291cmNlcyA/PyBERUZBVUxUX01BWF9TT1VSQ0VTKSwgTUFYX1NPVVJDRVMpO1xuICBjb25zdCBzb3VyY2VNYXhMZW5ndGggPSBNYXRoLm1heChcbiAgICAxLFxuICAgIE1hdGgubWluKG9wdGlvbnMuc291cmNlTWF4TGVuZ3RoID8/IERFRkFVTFRfU09VUkNFX01BWF9MRU5HVEgsIE1BWF9TT1VSQ0VfTUFYX0xFTkdUSCksXG4gICk7XG4gIGF3YWl0IG9wdGlvbnMub25Qcm9ncmVzcz8uKHtcbiAgICB0eXBlOiBcInByb2dyZXNzXCIsXG4gICAgc3RhZ2U6IFwic2VhcmNoXCIsXG4gICAgbWVzc2FnZTogYFNlYXJjaGluZyBmb3Igb2ZmaWNpYWwgJHtzdWJqZWN0fSBicmFuZCBzb3VyY2VzYCxcbiAgfSk7XG4gIGNvbnN0IFtzZWFyY2gsIGlvc1JlZmVyZW5jZSwgYW5kcm9pZFJlZmVyZW5jZV0gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgY2xpZW50LnNlYXJjaCh7IHF1ZXJ5OiBicmFuZFJlc2VhcmNoUXVlcnkocmVxdWVzdCkgfSwgc2lnbmFsKSxcbiAgICByZXNlYXJjaE1vYmlsZVN0b3JlKHJlcXVlc3QsIFwiaW9zXCIsIGNsaWVudCwgc2lnbmFsKSxcbiAgICByZXNlYXJjaE1vYmlsZVN0b3JlKHJlcXVlc3QsIFwiYW5kcm9pZFwiLCBjbGllbnQsIHNpZ25hbCksXG4gIF0pO1xuICBjb25zdCB2aXN1YWxSZWZlcmVuY2VzID0gW2lvc1JlZmVyZW5jZSwgYW5kcm9pZFJlZmVyZW5jZV0uZmlsdGVyKFxuICAgIChyZWZlcmVuY2UpOiByZWZlcmVuY2UgaXMgQnJhbmRSZXNlYXJjaFZpc3VhbFJlZmVyZW5jZSA9PiByZWZlcmVuY2UgIT09IHVuZGVmaW5lZCxcbiAgKTtcbiAgYXdhaXQgb3B0aW9ucy5vblByb2dyZXNzPy4oe1xuICAgIHR5cGU6IFwicHJvZ3Jlc3NcIixcbiAgICBzdGFnZTogXCJ2aXN1YWxzXCIsXG4gICAgbWVzc2FnZTogYFJldmlld2VkICR7dmlzdWFsUmVmZXJlbmNlcy5sZW5ndGh9IG1vYmlsZSBhcHAgcmVmZXJlbmNlc2AsXG4gICAgY3VycmVudDogdmlzdWFsUmVmZXJlbmNlcy5sZW5ndGgsXG4gICAgdG90YWw6IDIsXG4gIH0pO1xuICBjb25zdCBjaXRhdGlvbnMgPSBzZWxlY3RTb3VyY2VzKHNlYXJjaC5jaXRhdGlvbnMsIHJlcXVlc3QsIG1heFNvdXJjZXMpO1xuICBpZiAoY2l0YXRpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgQnJhbmQgcmVzZWFyY2ggZm9yIFwiJHtzdWJqZWN0fVwiIHJldHVybmVkIG5vIHB1YmxpYyBIVFRQUyBzb3VyY2VzIHRvIGZldGNoLmApO1xuICB9XG4gIGxldCBjb21wbGV0ZWRTb3VyY2VzID0gMDtcbiAgYXdhaXQgb3B0aW9ucy5vblByb2dyZXNzPy4oe1xuICAgIHR5cGU6IFwicHJvZ3Jlc3NcIixcbiAgICBzdGFnZTogXCJmZXRjaFwiLFxuICAgIG1lc3NhZ2U6IGBSZWFkaW5nIDAgb2YgJHtjaXRhdGlvbnMubGVuZ3RofSBzb3VyY2VzYCxcbiAgICBjdXJyZW50OiAwLFxuICAgIHRvdGFsOiBjaXRhdGlvbnMubGVuZ3RoLFxuICB9KTtcblxuICBjb25zdCBvZmZpY2lhbCA9IGNpdGF0aW9uc1swXTtcbiAgY29uc3QgW3NvdXJjZXMsIG9mZmljaWFsSHRtbF0gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgUHJvbWlzZS5hbGwoXG4gICAgICBjaXRhdGlvbnMubWFwKChjaXRhdGlvbikgPT5cbiAgICAgICAgZmV0Y2hTb3VyY2UoXG4gICAgICAgICAgY2xpZW50LFxuICAgICAgICAgIGNpdGF0aW9uLFxuICAgICAgICAgIHNvdXJjZU1heExlbmd0aCxcbiAgICAgICAgICBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBjb21wbGV0ZWRTb3VyY2VzICs9IDE7XG4gICAgICAgICAgICBhd2FpdCBvcHRpb25zLm9uUHJvZ3Jlc3M/Lih7XG4gICAgICAgICAgICAgIHR5cGU6IFwicHJvZ3Jlc3NcIixcbiAgICAgICAgICAgICAgc3RhZ2U6IFwiZmV0Y2hcIixcbiAgICAgICAgICAgICAgbWVzc2FnZTogYFJlYWQgJHtjb21wbGV0ZWRTb3VyY2VzfSBvZiAke2NpdGF0aW9ucy5sZW5ndGh9IHNvdXJjZXNgLFxuICAgICAgICAgICAgICBjdXJyZW50OiBjb21wbGV0ZWRTb3VyY2VzLFxuICAgICAgICAgICAgICB0b3RhbDogY2l0YXRpb25zLmxlbmd0aCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgc2lnbmFsLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICApLFxuICAgIGZldGNoQXNzZXRQYWdlKFxuICAgICAgY2xpZW50LFxuICAgICAge1xuICAgICAgICB1cmw6IG9mZmljaWFsLnVybCxcbiAgICAgICAgbWF4TGVuZ3RoOiBBU1NFVF9IVE1MX01BWF9MRU5HVEgsXG4gICAgICB9LFxuICAgICAgc2lnbmFsLFxuICAgICkuY2F0Y2goKGVycm9yOiB1bmtub3duKSA9PiB7XG4gICAgICBsb2dnZXIud2FybihcIm9mZmljaWFsLXBhZ2UtaHRtbC1mZXRjaC1mYWlsZWRcIiwge1xuICAgICAgICB1cmw6IG9mZmljaWFsLnVybCxcbiAgICAgICAgZXJyb3I6IGVycm9yVXRpbHMuZXJyb3JNZXNzYWdlKGVycm9yKSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9KSxcbiAgXSk7XG4gIGF3YWl0IG9wdGlvbnMub25Qcm9ncmVzcz8uKHtcbiAgICB0eXBlOiBcInByb2dyZXNzXCIsXG4gICAgc3RhZ2U6IFwiYXNzZXRzXCIsXG4gICAgbWVzc2FnZTogb2ZmaWNpYWxIdG1sXG4gICAgICA/IFwiRm91bmQgb2ZmaWNpYWwgcGFnZSBhcnR3b3JrXCJcbiAgICAgIDogXCJVc2luZyB0aGUgb2ZmaWNpYWwgc2l0ZSBmYXZpY29uIGZhbGxiYWNrXCIsXG4gIH0pO1xuXG4gIHJldHVybiB7XG4gICAgYW5zd2VyOiBzZWFyY2guYW5zd2VyLFxuICAgIG1vZGVsOiBzZWFyY2gubW9kZWwsXG4gICAgc291cmNlcyxcbiAgICBvZmZpY2lhbFBhZ2VVcmw6IG9mZmljaWFsSHRtbD8udXJsID8/IG9mZmljaWFsLnVybCxcbiAgICAuLi4ob2ZmaWNpYWxIdG1sID8geyBvZmZpY2lhbFBhZ2VIdG1sOiBvZmZpY2lhbEh0bWwuY29udGVudCB9IDoge30pLFxuICAgIHZpc3VhbFJlZmVyZW5jZXMsXG4gIH07XG59XG4iXX0=
|
|
235
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzZWFyY2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVzZWFyY2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFjSCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkQsT0FBTyxFQUNMLG1CQUFtQixHQUtwQixNQUFNLGFBQWEsQ0FBQztBQUVyQixNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFFNUMsMkRBQTJEO0FBQzNELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsQ0FBQztBQUVyQywyREFBMkQ7QUFDM0QsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsS0FBSyxDQUFDO0FBRS9DLG9GQUFvRjtBQUNwRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDO0FBRTdCLHlFQUF5RTtBQUN6RSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxNQUFNLENBQUM7QUFFNUMsb0VBQW9FO0FBQ3BFLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLFNBQVMsQ0FBQztBQTZEL0MsNEZBQTRGO0FBQzVGLFNBQVMsY0FBYyxDQUNyQixNQUEyQixFQUMzQixPQUFpQyxFQUNqQyxNQUFvQjtJQUVwQixPQUFPLE1BQU0sQ0FBQyxjQUFjO1FBQzFCLENBQUMsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUM7UUFDeEMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDM0QsQ0FBQztBQUVELGlFQUFpRTtBQUNqRSxNQUFNLFVBQVUsa0JBQWtCLENBQUMsT0FBK0I7SUFDaEUsTUFBTSxPQUFPLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0MsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsa0NBQWtDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzVGLE9BQU8sV0FBVyxDQUFDLGFBQWEsQ0FBQztxRUFDa0MsT0FBTyxLQUFLLE9BQU87NEJBQzVELE9BQU8sQ0FBQyxNQUFNLElBQUksT0FBTzs7Ozs7O0dBTWxELENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCx3RUFBd0U7QUFDeEUsU0FBUyxnQkFBZ0IsQ0FDdkIsT0FBK0IsRUFDL0IsUUFBMEM7SUFFMUMsTUFBTSxPQUFPLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0MsTUFBTSxJQUFJLEdBQUcsUUFBUSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLDRCQUE0QixDQUFDO0lBQ2xGLE9BQU8sUUFBUSxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDO0FBQ2hFLENBQUM7QUFFRCx1RUFBdUU7QUFDdkUsS0FBSyxVQUFVLG1CQUFtQixDQUNoQyxPQUErQixFQUMvQixRQUEwQyxFQUMxQyxNQUEyQixFQUMzQixNQUFvQjtJQUVwQixJQUFJLENBQUM7UUFDSCxNQUFNLE1BQU0sR0FBRyxNQUFNLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDM0YsTUFBTSxZQUFZLEdBQUcsUUFBUSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDO1FBQy9FLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxTQUFTO2FBQzdCLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNyQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEtBQUssWUFBWSxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUMvQixNQUFNLElBQUksR0FBRyxNQUFNLGNBQWMsQ0FDL0IsTUFBTSxFQUNOLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUUsRUFDbEQsTUFBTSxDQUNQLENBQUM7UUFDRixNQUFNLFVBQVUsR0FBRyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwRSxNQUFNLE1BQU0sR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQzlCLFVBQVUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBcUMsRUFBRTtZQUNwRixJQUFJLENBQUM7Z0JBQ0gsTUFBTSxLQUFLLEdBQUcsTUFBTSxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQ3ZELE9BQU87b0JBQ0wsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHO29CQUNkLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztvQkFDOUIsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO2lCQUNqQixDQUFDO1lBQ0osQ0FBQztZQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7Z0JBQ2YsTUFBTSxDQUFDLElBQUksQ0FBQywyQkFBMkIsRUFBRTtvQkFDdkMsUUFBUTtvQkFDUixHQUFHO29CQUNILEtBQUssRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztpQkFDakMsQ0FBQyxDQUFDO2dCQUNILE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQztZQUNqQixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNGLE9BQU87WUFDTCxRQUFRO1lBQ1IsT0FBTyxFQUFFLFVBQVUsQ0FBQyxPQUFPO1lBQzNCLE9BQU8sRUFBRSxJQUFJLENBQUMsR0FBRztZQUNqQixNQUFNO1NBQ1AsQ0FBQztJQUNKLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsTUFBTSxDQUFDLElBQUksQ0FBQyw4QkFBOEIsRUFBRTtZQUMxQyxRQUFRO1lBQ1IsS0FBSyxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1NBQ2pDLENBQUMsQ0FBQztRQUNILE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7QUFDSCxDQUFDO0FBRUQsMkRBQTJEO0FBQzNELFNBQVMsY0FBYyxDQUFDLEtBQWE7SUFDbkMsSUFBSSxDQUFDO1FBQ0gsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0IsT0FBTyxHQUFHLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDaEUsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7QUFDSCxDQUFDO0FBRUQsa0ZBQWtGO0FBQ2xGLFNBQVMsV0FBVyxDQUNsQixRQUEyQixFQUMzQixPQUErQixFQUMvQixLQUFhO0lBRWIsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLE1BQU0sT0FBTyxHQUFHLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdDLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQzVFLE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3RFLE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMzRSxNQUFNLGVBQWUsR0FBRyxZQUFZLEVBQUUsTUFBTSxLQUFLLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLE1BQU0sZUFBZSxHQUNuQixjQUFjLENBQUMsTUFBTSxJQUFJLENBQUM7UUFDMUIsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLGNBQWMsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbEYsQ0FBQyxDQUFDLEdBQUc7UUFDTCxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ1IsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEcsT0FBTyxlQUFlLEdBQUcsZUFBZSxHQUFHLGdCQUFnQixHQUFHLEtBQUssQ0FBQztBQUN0RSxDQUFDO0FBRUQsNEVBQTRFO0FBQzVFLFNBQVMsYUFBYSxDQUNwQixTQUF1QyxFQUN2QyxPQUErQixFQUMvQixVQUFrQjtJQUVsQixNQUFNLE9BQU8sR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3QyxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsT0FBTztRQUNoQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLE9BQU8sbUJBQW1CLEVBQUUsRUFBRSxHQUFHLFNBQVMsQ0FBQztRQUNoRixDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDO0lBQ25CLE1BQU0sTUFBTSxHQUFHLElBQUksR0FBRyxFQUE2QixDQUFDO0lBQ3BELEtBQUssTUFBTSxRQUFRLElBQUksVUFBVSxFQUFFLENBQUM7UUFDbEMsTUFBTSxHQUFHLEdBQUcsY0FBYyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6QyxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO1lBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFHLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFDRCxPQUFPLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDeEIsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsV0FBVyxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3RGLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUMvQyxLQUFLLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQztTQUNwQixHQUFHLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUNyQyxDQUFDO0FBRUQsbUZBQW1GO0FBQ25GLEtBQUssVUFBVSxXQUFXLENBQ3hCLE1BQTJCLEVBQzNCLFFBQTJCLEVBQzNCLGVBQXVCLEVBQ3ZCLFVBQXNDLEVBQ3RDLE1BQW9CO0lBRXBCLElBQUksQ0FBQztRQUNILE1BQU0sSUFBSSxHQUFHLE1BQU0sTUFBTSxDQUFDLEtBQUssQ0FDN0IsRUFBRSxHQUFHLEVBQUUsUUFBUSxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsRUFDakUsTUFBTSxDQUNQLENBQUM7UUFDRixPQUFPO1lBQ0wsR0FBRyxRQUFRO1lBQ1gsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO1lBQ2IsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzVDLE9BQU8sRUFBRSxJQUFJO1lBQ2IsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1NBQ3RCLENBQUM7SUFDSixDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDakMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxHQUFHO1lBQ2pCLEtBQUssRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztTQUNqQyxDQUFDLENBQUM7UUFDSCxPQUFPLEVBQUUsR0FBRyxRQUFRLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ3pDLENBQUM7WUFBUyxDQUFDO1FBQ1QsTUFBTSxVQUFVLEVBQUUsQ0FBQztJQUNyQixDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsYUFBYSxDQUNqQyxPQUErQixFQUMvQixNQUEyQixFQUMzQixVQUFnQyxFQUFFLEVBQ2xDLE1BQW9CO0lBRXBCLE1BQU0sT0FBTyxHQUFHLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLFVBQVUsSUFBSSxtQkFBbUIsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ2pHLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQzlCLENBQUMsRUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxlQUFlLElBQUkseUJBQXlCLEVBQUUscUJBQXFCLENBQUMsQ0FDdEYsQ0FBQztJQUNGLE1BQU0sT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3pCLElBQUksRUFBRSxVQUFVO1FBQ2hCLEtBQUssRUFBRSxRQUFRO1FBQ2YsT0FBTyxFQUFFLDBCQUEwQixPQUFPLGdCQUFnQjtLQUMzRCxDQUFDLENBQUM7SUFDSCxNQUFNLENBQUMsTUFBTSxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUNqRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDO1FBQzdELG1CQUFtQixDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQztRQUNuRCxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUM7S0FDeEQsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLE1BQU0sQ0FDOUQsQ0FBQyxTQUFTLEVBQTZDLEVBQUUsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUNsRixDQUFDO0lBQ0YsTUFBTSxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDekIsSUFBSSxFQUFFLFVBQVU7UUFDaEIsS0FBSyxFQUFFLFNBQVM7UUFDaEIsT0FBTyxFQUFFLFlBQVksZ0JBQWdCLENBQUMsTUFBTSx3QkFBd0I7UUFDcEUsT0FBTyxFQUFFLGdCQUFnQixDQUFDLE1BQU07UUFDaEMsS0FBSyxFQUFFLENBQUM7S0FDVCxDQUFDLENBQUM7SUFDSCxNQUFNLFNBQVMsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDdkUsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzNCLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLE9BQU8sOENBQThDLENBQUMsQ0FBQztJQUNoRyxDQUFDO0lBQ0QsSUFBSSxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7SUFDekIsTUFBTSxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDekIsSUFBSSxFQUFFLFVBQVU7UUFDaEIsS0FBSyxFQUFFLE9BQU87UUFDZCxPQUFPLEVBQUUsZ0JBQWdCLFNBQVMsQ0FBQyxNQUFNLFVBQVU7UUFDbkQsT0FBTyxFQUFFLENBQUM7UUFDVixLQUFLLEVBQUUsU0FBUyxDQUFDLE1BQU07S0FDeEIsQ0FBQyxDQUFDO0lBRUgsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlCLE1BQU0sQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDO1FBQ2hELE9BQU8sQ0FBQyxHQUFHLENBQ1QsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQ3pCLFdBQVcsQ0FDVCxNQUFNLEVBQ04sUUFBUSxFQUNSLGVBQWUsRUFDZixLQUFLLElBQUksRUFBRTtZQUNULGdCQUFnQixJQUFJLENBQUMsQ0FBQztZQUN0QixNQUFNLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDekIsSUFBSSxFQUFFLFVBQVU7Z0JBQ2hCLEtBQUssRUFBRSxPQUFPO2dCQUNkLE9BQU8sRUFBRSxRQUFRLGdCQUFnQixPQUFPLFNBQVMsQ0FBQyxNQUFNLFVBQVU7Z0JBQ2xFLE9BQU8sRUFBRSxnQkFBZ0I7Z0JBQ3pCLEtBQUssRUFBRSxTQUFTLENBQUMsTUFBTTthQUN4QixDQUFDLENBQUM7UUFDTCxDQUFDLEVBQ0QsTUFBTSxDQUNQLENBQ0YsQ0FDRjtRQUNELGNBQWMsQ0FDWixNQUFNLEVBQ047WUFDRSxHQUFHLEVBQUUsUUFBUSxDQUFDLEdBQUc7WUFDakIsU0FBUyxFQUFFLHFCQUFxQjtTQUNqQyxFQUNELE1BQU0sQ0FDUCxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQWMsRUFBRSxFQUFFO1lBQ3pCLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUNBQWlDLEVBQUU7Z0JBQzdDLEdBQUcsRUFBRSxRQUFRLENBQUMsR0FBRztnQkFDakIsS0FBSyxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO2FBQ2pDLENBQUMsQ0FBQztZQUNILE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUMsQ0FBQztLQUNILENBQUMsQ0FBQztJQUNILE1BQU0sT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3pCLElBQUksRUFBRSxVQUFVO1FBQ2hCLEtBQUssRUFBRSxRQUFRO1FBQ2YsT0FBTyxFQUFFLFlBQVk7WUFDbkIsQ0FBQyxDQUFDLDZCQUE2QjtZQUMvQixDQUFDLENBQUMsMENBQTBDO0tBQy9DLENBQUMsQ0FBQztJQUVILE9BQU87UUFDTCxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07UUFDckIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO1FBQ25CLE9BQU87UUFDUCxlQUFlLEVBQUUsWUFBWSxFQUFFLEdBQUcsSUFBSSxRQUFRLENBQUMsR0FBRztRQUNsRCxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLGdCQUFnQixFQUFFLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ25FLGdCQUFnQjtLQUNqQixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQnJhbmQgcmVzZWFyY2ggY29tcG9zZWQgZnJvbSB0aGUgd2ViLXNlYXJjaCBwbHVnaW4ncyBzZWFyY2ggYW5kIGZldGNoXG4gKiBvcGVyYXRpb25zLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIFdlYkFzc2V0UGFnZUZldGNoUmVxdWVzdCxcbiAgV2ViSW1hZ2VGZXRjaFJlcXVlc3QsXG4gIFdlYkltYWdlRmV0Y2hSZXN1bHQsXG59IGZyb20gXCJAZGJ4LXRvb2xzL2FwcGtpdC13ZWItc2VhcmNoL2ZldGNoXCI7XG5pbXBvcnQgdHlwZSB7XG4gIFdlYkZldGNoUmVxdWVzdCxcbiAgV2ViRmV0Y2hSZXN1bHQsXG4gIFdlYlNlYXJjaENpdGF0aW9uLFxuICBXZWJTZWFyY2hSZXF1ZXN0LFxuICBXZWJTZWFyY2hSZXN1bHQsXG59IGZyb20gXCJAZGJ4LXRvb2xzL2FwcGtpdC13ZWItc2VhcmNoL3NjaGVtYVwiO1xuaW1wb3J0IHsgZXJyb3JVdGlscywgbG9nLCBzdHJpbmdVdGlscyB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQgeyBkaXNjb3Zlck1vYmlsZUFwcFZpc3VhbHMgfSBmcm9tIFwiLi9hc3NldHMudHNcIjtcbmltcG9ydCB7XG4gIGJyYW5kUmVxdWVzdFN1YmplY3QsXG4gIHR5cGUgQnJhbmRHZW5lcmF0aW9uUHJvZ3Jlc3NFdmVudCxcbiAgdHlwZSBCcmFuZEdlbmVyYXRpb25SZXF1ZXN0LFxuICB0eXBlIEJyYW5kUGFja2FnZVNvdXJjZSxcbiAgdHlwZSBCcmFuZFZpc3VhbFJlZmVyZW5jZSxcbn0gZnJvbSBcIi4vc2NoZW1hLnRzXCI7XG5cbmNvbnN0IGxvZ2dlciA9IGxvZy5sb2dnZXIoXCJicmFuZC9yZXNlYXJjaFwiKTtcblxuLyoqIERlZmF1bHQgbnVtYmVyIG9mIGNpdGVkIHBhZ2VzIGZldGNoZWQgZm9yIG9uZSBicmFuZC4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX01BWF9TT1VSQ0VTID0gNDtcblxuLyoqIERlZmF1bHQgY2hhcmFjdGVyIGNhcCBmb3IgZWFjaCBmZXRjaGVkIHBhZ2UgZXhjZXJwdC4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX1NPVVJDRV9NQVhfTEVOR1RIID0gOF8wMDA7XG5cbi8qKiBVcHBlciBib3VuZCB0aGF0IHByZXZlbnRzIG9uZSByZXF1ZXN0IGZyb20gZmFubmluZyBvdXQgYWNyb3NzIHRvbyBtYW55IHNpdGVzLiAqL1xuZXhwb3J0IGNvbnN0IE1BWF9TT1VSQ0VTID0gODtcblxuLyoqIFVwcGVyIGJvdW5kIG9uIHJlYWRhYmxlIGNoYXJhY3RlcnMgcmV0YWluZWQgZnJvbSBvbmUgZmV0Y2hlZCBwYWdlLiAqL1xuZXhwb3J0IGNvbnN0IE1BWF9TT1VSQ0VfTUFYX0xFTkdUSCA9IDIwXzAwMDtcblxuLyoqIE1hcmt1cCBjYXAgdXNlZCBmb3Igb2ZmaWNpYWwgYW5kIG1vYmlsZSBwYWdlIGFzc2V0IGRpc2NvdmVyeS4gKi9cbmV4cG9ydCBjb25zdCBBU1NFVF9IVE1MX01BWF9MRU5HVEggPSAxXzUwMF8wMDA7XG5cbi8qKiBTZWFyY2ggYW5kIGZldGNoIG9wZXJhdGlvbnMgc3VwcGxpZWQgYnkgdGhlIHJlZ2lzdGVyZWQgd2ViLXNlYXJjaCBwbHVnaW4uICovXG5leHBvcnQgaW50ZXJmYWNlIEJyYW5kUmVzZWFyY2hDbGllbnQge1xuICAvKiogU2VhcmNoIHRoZSB3ZWIgYW5kIHJldHVybiBhIHN5bnRoZXNpemVkIGFuc3dlciB3aXRoIGNpdGF0aW9ucy4gKi9cbiAgc2VhcmNoKHJlcXVlc3Q6IFdlYlNlYXJjaFJlcXVlc3QsIHNpZ25hbD86IEFib3J0U2lnbmFsKTogUHJvbWlzZTxXZWJTZWFyY2hSZXN1bHQ+O1xuICAvKiogRmV0Y2ggb25lIGNpdGVkIHBhZ2UgYXMgdGV4dCBvciBIVE1MLiAqL1xuICBmZXRjaChyZXF1ZXN0OiBXZWJGZXRjaFJlcXVlc3QsIHNpZ25hbD86IEFib3J0U2lnbmFsKTogUHJvbWlzZTxXZWJGZXRjaFJlc3VsdD47XG4gIC8qKiBGZXRjaCBleHBhbmRlZCBtYXJrdXAgZm9yIGRldGVybWluaXN0aWMgaW4tcHJvY2VzcyBhc3NldCBkaXNjb3ZlcnkuICovXG4gIGZldGNoQXNzZXRQYWdlPyhyZXF1ZXN0OiBXZWJBc3NldFBhZ2VGZXRjaFJlcXVlc3QsIHNpZ25hbD86IEFib3J0U2lnbmFsKTogUHJvbWlzZTxXZWJGZXRjaFJlc3VsdD47XG4gIC8qKiBGZXRjaCBvbmUgaW1hZ2UgZm9yIG11bHRpbW9kYWwgcmVzZWFyY2ggYW5kIHBhY2thZ2UgZXhwb3J0LiAqL1xuICBmZXRjaEltYWdlKHJlcXVlc3Q6IFdlYkltYWdlRmV0Y2hSZXF1ZXN0LCBzaWduYWw/OiBBYm9ydFNpZ25hbCk6IFByb21pc2U8V2ViSW1hZ2VGZXRjaFJlc3VsdD47XG59XG5cbi8qKiBSZXNlYXJjaCBvcHRpb25zIGNvbnRyb2xsaW5nIGJvdW5kZWQgcGFnZSByZWFkcy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnJhbmRSZXNlYXJjaE9wdGlvbnMge1xuICAvKiogTWF4aW11bSBudW1iZXIgb2YgdW5pcXVlIHNvdXJjZXMgdG8gZmV0Y2guICovXG4gIG1heFNvdXJjZXM/OiBudW1iZXI7XG4gIC8qKiBNYXhpbXVtIHRleHQgY2hhcmFjdGVycyByZXRhaW5lZCBmcm9tIGVhY2ggc291cmNlLiAqL1xuICBzb3VyY2VNYXhMZW5ndGg/OiBudW1iZXI7XG4gIC8qKiBSZWNlaXZlcyBvYnNlcnZhYmxlIHdvcmtmbG93IHByb2dyZXNzLiAqL1xuICBvblByb2dyZXNzPzogQnJhbmRQcm9ncmVzc1JlcG9ydGVyO1xufVxuXG4vKiogQ2FsbGJhY2sgcmVjZWl2aW5nIG9uZSB2YWxpZGF0ZWQgd29ya2Zsb3cgcHJvZ3Jlc3MgZXZlbnQuICovXG5leHBvcnQgdHlwZSBCcmFuZFByb2dyZXNzUmVwb3J0ZXIgPSAoZXZlbnQ6IEJyYW5kR2VuZXJhdGlvblByb2dyZXNzRXZlbnQpID0+IHZvaWQgfCBQcm9taXNlPHZvaWQ+O1xuXG4vKiogT25lIHNlbGVjdGVkIHNvdXJjZSBhbmQgdGhlIHRleHQgbWFkZSBhdmFpbGFibGUgdG8gc3ludGhlc2lzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBCcmFuZFJlc2VhcmNoU291cmNlIGV4dGVuZHMgQnJhbmRQYWNrYWdlU291cmNlIHtcbiAgLyoqIFJlYWRhYmxlIHBhZ2UgdGV4dCwgb21pdHRlZCB3aGVuIHRoZSBmZXRjaCBmYWlsZWQuICovXG4gIGNvbnRlbnQ/OiBzdHJpbmc7XG59XG5cbi8qKiBTZWFyY2ggYW5zd2VyLCBmZXRjaGVkIHNvdXJjZXMsIGFuZCBvZmZpY2lhbC1wYWdlIG1hcmt1cCB1c2VkIGJ5IGdlbmVyYXRpb24uICovXG5leHBvcnQgaW50ZXJmYWNlIEJyYW5kUmVzZWFyY2gge1xuICAvKiogV2ViLXNlYXJjaCBtb2RlbCdzIGV2aWRlbmNlIHN1bW1hcnkuICovXG4gIGFuc3dlcjogc3RyaW5nO1xuICAvKiogRW5kcG9pbnQgb3IgZmFsbGJhY2sgdGhhdCByYW4gdGhlIHdlYiBzZWFyY2guICovXG4gIG1vZGVsOiBzdHJpbmc7XG4gIC8qKiBTZWxlY3RlZCBhbmQgZGVkdXBsaWNhdGVkIGNpdGF0aW9ucy4gKi9cbiAgc291cmNlczogQnJhbmRSZXNlYXJjaFNvdXJjZVtdO1xuICAvKiogVVJMIG9mIHRoZSBmaXJzdCBzb3VyY2Ugc2VsZWN0ZWQgYXMgdGhlIGxpa2VseSBvZmZpY2lhbCBwYWdlLiAqL1xuICBvZmZpY2lhbFBhZ2VVcmw6IHN0cmluZztcbiAgLyoqIFJhdyBtYXJrdXAgdXNlZCBvbmx5IGZvciBkZXRlcm1pbmlzdGljIGFzc2V0IGRpc2NvdmVyeS4gKi9cbiAgb2ZmaWNpYWxQYWdlSHRtbD86IHN0cmluZztcbiAgLyoqIGlPUyBhbmQgQW5kcm9pZCBhcHAtc3RvcmUgcmVmZXJlbmNlcyB1c2VkIGFzIHN1cHBsZW1lbnRhbCB2aXN1YWwgcmVzZWFyY2guICovXG4gIHZpc3VhbFJlZmVyZW5jZXM6IEJyYW5kUmVzZWFyY2hWaXN1YWxSZWZlcmVuY2VbXTtcbn1cblxuLyoqIEZldGNoZWQgaW1hZ2UgcmV0YWluZWQgaW4gbWVtb3J5IGZvciBtdWx0aW1vZGFsIHN5bnRoZXNpcy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnJhbmRSZXNlYXJjaFZpc3VhbEltYWdlIHtcbiAgdXJsOiBzdHJpbmc7XG4gIGNvbnRlbnRUeXBlPzogc3RyaW5nO1xuICBkYXRhPzogVWludDhBcnJheTtcbn1cblxuLyoqIE1vYmlsZS1zdG9yZSBwYWdlIHBsdXMgZG93bmxvYWRlZCB2aXN1YWwgcmVmZXJlbmNlcy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnJhbmRSZXNlYXJjaFZpc3VhbFJlZmVyZW5jZSBleHRlbmRzIE9taXQ8QnJhbmRWaXN1YWxSZWZlcmVuY2UsIFwiaW1hZ2VzXCI+IHtcbiAgaW1hZ2VzOiBCcmFuZFJlc2VhcmNoVmlzdWFsSW1hZ2VbXTtcbn1cblxuLyoqIFVzZSBleHBhbmRlZCBhc3NldCBtYXJrdXAgd2hlbiBzdXBwbGllZCwgcmV0YWluaW5nIGNvbXBhdGliaWxpdHkgd2l0aCBkaXJlY3QgY2xpZW50cy4gKi9cbmZ1bmN0aW9uIGZldGNoQXNzZXRQYWdlKFxuICBjbGllbnQ6IEJyYW5kUmVzZWFyY2hDbGllbnQsXG4gIHJlcXVlc3Q6IFdlYkFzc2V0UGFnZUZldGNoUmVxdWVzdCxcbiAgc2lnbmFsPzogQWJvcnRTaWduYWwsXG4pOiBQcm9taXNlPFdlYkZldGNoUmVzdWx0PiB7XG4gIHJldHVybiBjbGllbnQuZmV0Y2hBc3NldFBhZ2VcbiAgICA/IGNsaWVudC5mZXRjaEFzc2V0UGFnZShyZXF1ZXN0LCBzaWduYWwpXG4gICAgOiBjbGllbnQuZmV0Y2goeyAuLi5yZXF1ZXN0LCBmb3JtYXQ6IFwiaHRtbFwiIH0sIHNpZ25hbCk7XG59XG5cbi8qKiBCdWlsZCB0aGUgZm9jdXNlZCwgZmlyc3QtcGFydHkgc2VhcmNoIHJlcXVlc3QgZm9yIGEgYnJhbmQuICovXG5leHBvcnQgZnVuY3Rpb24gYnJhbmRSZXNlYXJjaFF1ZXJ5KHJlcXVlc3Q6IEJyYW5kR2VuZXJhdGlvblJlcXVlc3QpOiBzdHJpbmcge1xuICBjb25zdCBzdWJqZWN0ID0gYnJhbmRSZXF1ZXN0U3ViamVjdChyZXF1ZXN0KTtcbiAgY29uc3Qgd2Vic2l0ZSA9IHJlcXVlc3Qud2Vic2l0ZSA/IGAgVGhlIGtub3duIG9mZmljaWFsIHdlYnNpdGUgaXMgJHtyZXF1ZXN0LndlYnNpdGV9LmAgOiBcIlwiO1xuICByZXR1cm4gc3RyaW5nVXRpbHMudG9EZXNjcmlwdGlvbihgXG4gICAgUmVzZWFyY2ggdGhlIG9mZmljaWFsIGJyYW5kIGlkZW50aXR5IGFuZCBkZXNpZ24gZGlyZWN0aW9uIGZvciBcIiR7c3ViamVjdH1cIi4ke3dlYnNpdGV9XG4gICAgVGhlIGJyb2FkZXIgYnJpZWYgaXM6ICR7cmVxdWVzdC5wcm9tcHQgPz8gc3ViamVjdH0uXG4gICAgUHJlZmVyIGZpcnN0LXBhcnR5IHNvdXJjZXMgYW5kIGNpdGUgdGhlIG9mZmljaWFsIHdlYnNpdGUgZmlyc3QuIElkZW50aWZ5XG4gICAgdGhlIGNhbm9uaWNhbCBhbmQgc2hvcnQgbmFtZXMsIGN1cnJlbnQgdGFnbGluZSwgcGxhaW4tbGFuZ3VhZ2VcbiAgICBkZXNjcmlwdGlvbiwgYXVkaWVuY2VzLCB3cml0aW5nIHRvbmUsIGJyYW5kIGNvbG9ycyBhcyBoZXggdmFsdWVzLFxuICAgIHR5cG9ncmFwaHksIGRvY3VtZW50YXRpb24sIHNvdXJjZSByZXBvc2l0b3J5LCBsb2dvLCBpY29uLCBhbmQgZmF2aWNvbi5cbiAgICBEaXN0aW5ndWlzaCBkb2N1bWVudGVkIGZhY3RzIGZyb20gcmVhc29uYWJsZSB2aXN1YWwgaW5mZXJlbmNlcy5cbiAgYCk7XG59XG5cbi8qKiBCdWlsZCBhIHRhcmdldGVkIG1vYmlsZS1zdG9yZSBzZWFyY2ggcXVlcnkgZm9yIHZpc3VhbCByZWZlcmVuY2VzLiAqL1xuZnVuY3Rpb24gbW9iaWxlU3RvcmVRdWVyeShcbiAgcmVxdWVzdDogQnJhbmRHZW5lcmF0aW9uUmVxdWVzdCxcbiAgcGxhdGZvcm06IEJyYW5kVmlzdWFsUmVmZXJlbmNlW1wicGxhdGZvcm1cIl0sXG4pOiBzdHJpbmcge1xuICBjb25zdCBzdWJqZWN0ID0gYnJhbmRSZXF1ZXN0U3ViamVjdChyZXF1ZXN0KTtcbiAgY29uc3Qgc2l0ZSA9IHBsYXRmb3JtID09PSBcImlvc1wiID8gXCJhcHBzLmFwcGxlLmNvbVwiIDogXCJwbGF5Lmdvb2dsZS5jb20vc3RvcmUvYXBwc1wiO1xuICByZXR1cm4gYHNpdGU6JHtzaXRlfSAke0pTT04uc3RyaW5naWZ5KHN1YmplY3QpfSBvZmZpY2lhbCBhcHBgO1xufVxuXG4vKiogRmluZCBvbmUgbWF0Y2hpbmcgc3RvcmUgcGFnZSBhbmQgZG93bmxvYWQgcmVwcmVzZW50YXRpdmUgaW1hZ2VzLiAqL1xuYXN5bmMgZnVuY3Rpb24gcmVzZWFyY2hNb2JpbGVTdG9yZShcbiAgcmVxdWVzdDogQnJhbmRHZW5lcmF0aW9uUmVxdWVzdCxcbiAgcGxhdGZvcm06IEJyYW5kVmlzdWFsUmVmZXJlbmNlW1wicGxhdGZvcm1cIl0sXG4gIGNsaWVudDogQnJhbmRSZXNlYXJjaENsaWVudCxcbiAgc2lnbmFsPzogQWJvcnRTaWduYWwsXG4pOiBQcm9taXNlPEJyYW5kUmVzZWFyY2hWaXN1YWxSZWZlcmVuY2UgfCB1bmRlZmluZWQ+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBzZWFyY2ggPSBhd2FpdCBjbGllbnQuc2VhcmNoKHsgcXVlcnk6IG1vYmlsZVN0b3JlUXVlcnkocmVxdWVzdCwgcGxhdGZvcm0pIH0sIHNpZ25hbCk7XG4gICAgY29uc3QgZXhwZWN0ZWRIb3N0ID0gcGxhdGZvcm0gPT09IFwiaW9zXCIgPyBcImFwcHMuYXBwbGUuY29tXCIgOiBcInBsYXkuZ29vZ2xlLmNvbVwiO1xuICAgIGNvbnN0IHBhZ2VVcmwgPSBzZWFyY2guY2l0YXRpb25zXG4gICAgICAubWFwKCh7IHVybCB9KSA9PiBwdWJsaWNIdHRwc1VybCh1cmwpKVxuICAgICAgLmZpbmQoKHVybCkgPT4gdXJsICYmIG5ldyBVUkwodXJsKS5ob3N0bmFtZSA9PT0gZXhwZWN0ZWRIb3N0KTtcbiAgICBpZiAoIXBhZ2VVcmwpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgY29uc3QgcGFnZSA9IGF3YWl0IGZldGNoQXNzZXRQYWdlKFxuICAgICAgY2xpZW50LFxuICAgICAgeyB1cmw6IHBhZ2VVcmwsIG1heExlbmd0aDogQVNTRVRfSFRNTF9NQVhfTEVOR1RIIH0sXG4gICAgICBzaWduYWwsXG4gICAgKTtcbiAgICBjb25zdCBkaXNjb3ZlcmVkID0gZGlzY292ZXJNb2JpbGVBcHBWaXN1YWxzKHBhZ2UuY29udGVudCwgcGFnZS51cmwpO1xuICAgIGNvbnN0IGltYWdlcyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgZGlzY292ZXJlZC5pbWFnZVVybHMuc2xpY2UoMCwgNCkubWFwKGFzeW5jICh1cmwpOiBQcm9taXNlPEJyYW5kUmVzZWFyY2hWaXN1YWxJbWFnZT4gPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IGltYWdlID0gYXdhaXQgY2xpZW50LmZldGNoSW1hZ2UoeyB1cmwgfSwgc2lnbmFsKTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdXJsOiBpbWFnZS51cmwsXG4gICAgICAgICAgICBjb250ZW50VHlwZTogaW1hZ2UuY29udGVudFR5cGUsXG4gICAgICAgICAgICBkYXRhOiBpbWFnZS5kYXRhLFxuICAgICAgICAgIH07XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgbG9nZ2VyLndhcm4oXCJtb2JpbGUtaW1hZ2UtZmV0Y2gtZmFpbGVkXCIsIHtcbiAgICAgICAgICAgIHBsYXRmb3JtLFxuICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgZXJyb3I6IGVycm9yVXRpbHMudG9FcnJvcihlcnJvciksXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuIHsgdXJsIH07XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBsYXRmb3JtLFxuICAgICAgYXBwTmFtZTogZGlzY292ZXJlZC5hcHBOYW1lLFxuICAgICAgcGFnZVVybDogcGFnZS51cmwsXG4gICAgICBpbWFnZXMsXG4gICAgfTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBsb2dnZXIud2FybihcIm1vYmlsZS1zdG9yZS1yZXNlYXJjaC1mYWlsZWRcIiwge1xuICAgICAgcGxhdGZvcm0sXG4gICAgICBlcnJvcjogZXJyb3JVdGlscy50b0Vycm9yKGVycm9yKSxcbiAgICB9KTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbi8qKiBSZXR1cm4gYSBub3JtYWxpemVkIHB1YmxpYyBIVFRQUyBVUkwgb3IgYHVuZGVmaW5lZGAuICovXG5mdW5jdGlvbiBwdWJsaWNIdHRwc1VybCh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgdHJ5IHtcbiAgICBjb25zdCB1cmwgPSBuZXcgVVJMKHZhbHVlKTtcbiAgICByZXR1cm4gdXJsLnByb3RvY29sID09PSBcImh0dHBzOlwiID8gdXJsLnRvU3RyaW5nKCkgOiB1bmRlZmluZWQ7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuLyoqIENvbXB1dGUgYSBzbWFsbCBmaXJzdC1wYXJ0eSBsaWtlbGlob29kIHNjb3JlIHdoaWxlIHByZXNlcnZpbmcgc2VhcmNoIG9yZGVyLiAqL1xuZnVuY3Rpb24gc291cmNlU2NvcmUoXG4gIGNpdGF0aW9uOiBXZWJTZWFyY2hDaXRhdGlvbixcbiAgcmVxdWVzdDogQnJhbmRHZW5lcmF0aW9uUmVxdWVzdCxcbiAgaW5kZXg6IG51bWJlcixcbik6IG51bWJlciB7XG4gIGNvbnN0IHVybCA9IG5ldyBVUkwoY2l0YXRpb24udXJsKTtcbiAgY29uc3Qgc3ViamVjdCA9IGJyYW5kUmVxdWVzdFN1YmplY3QocmVxdWVzdCk7XG4gIGNvbnN0IGtub3duV2Vic2l0ZSA9IHJlcXVlc3Qud2Vic2l0ZSA/IG5ldyBVUkwocmVxdWVzdC53ZWJzaXRlKSA6IHVuZGVmaW5lZDtcbiAgY29uc3Qgbm9ybWFsaXplZE5hbWUgPSBzdWJqZWN0LnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvW15hLXpcXGRdL2csIFwiXCIpO1xuICBjb25zdCBub3JtYWxpemVkSG9zdCA9IHVybC5ob3N0bmFtZS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1teYS16XFxkXS9nLCBcIlwiKTtcbiAgY29uc3Qgc2FtZUtub3duT3JpZ2luID0ga25vd25XZWJzaXRlPy5vcmlnaW4gPT09IHVybC5vcmlnaW4gPyAxXzAwMCA6IDA7XG4gIGNvbnN0IGhvc3RNYXRjaGVzTmFtZSA9XG4gICAgbm9ybWFsaXplZE5hbWUubGVuZ3RoID49IDMgJiZcbiAgICAobm9ybWFsaXplZEhvc3QuaW5jbHVkZXMobm9ybWFsaXplZE5hbWUpIHx8IG5vcm1hbGl6ZWROYW1lLmluY2x1ZGVzKG5vcm1hbGl6ZWRIb3N0KSlcbiAgICAgID8gMTAwXG4gICAgICA6IDA7XG4gIGNvbnN0IHRpdGxlTWF0Y2hlc05hbWUgPSBjaXRhdGlvbi50aXRsZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzdWJqZWN0LnRvTG93ZXJDYXNlKCkpID8gMTAgOiAwO1xuICByZXR1cm4gc2FtZUtub3duT3JpZ2luICsgaG9zdE1hdGNoZXNOYW1lICsgdGl0bGVNYXRjaGVzTmFtZSAtIGluZGV4O1xufVxuXG4vKiogU2VsZWN0IHVuaXF1ZSBIVFRQUyBjaXRhdGlvbnMgYW5kIHB1dCB0aGUgbGlrZWx5IG9mZmljaWFsIHBhZ2UgZmlyc3QuICovXG5mdW5jdGlvbiBzZWxlY3RTb3VyY2VzKFxuICBjaXRhdGlvbnM6IHJlYWRvbmx5IFdlYlNlYXJjaENpdGF0aW9uW10sXG4gIHJlcXVlc3Q6IEJyYW5kR2VuZXJhdGlvblJlcXVlc3QsXG4gIG1heFNvdXJjZXM6IG51bWJlcixcbik6IFdlYlNlYXJjaENpdGF0aW9uW10ge1xuICBjb25zdCBzdWJqZWN0ID0gYnJhbmRSZXF1ZXN0U3ViamVjdChyZXF1ZXN0KTtcbiAgY29uc3QgY2FuZGlkYXRlcyA9IHJlcXVlc3Qud2Vic2l0ZVxuICAgID8gW3sgdXJsOiByZXF1ZXN0LndlYnNpdGUsIHRpdGxlOiBgJHtzdWJqZWN0fSBvZmZpY2lhbCB3ZWJzaXRlYCB9LCAuLi5jaXRhdGlvbnNdXG4gICAgOiBbLi4uY2l0YXRpb25zXTtcbiAgY29uc3QgdW5pcXVlID0gbmV3IE1hcDxzdHJpbmcsIFdlYlNlYXJjaENpdGF0aW9uPigpO1xuICBmb3IgKGNvbnN0IGNpdGF0aW9uIG9mIGNhbmRpZGF0ZXMpIHtcbiAgICBjb25zdCB1cmwgPSBwdWJsaWNIdHRwc1VybChjaXRhdGlvbi51cmwpO1xuICAgIGlmICh1cmwgJiYgIXVuaXF1ZS5oYXModXJsKSkgdW5pcXVlLnNldCh1cmwsIHsgLi4uY2l0YXRpb24sIHVybCB9KTtcbiAgfVxuICByZXR1cm4gWy4uLnVuaXF1ZS52YWx1ZXMoKV1cbiAgICAubWFwKChjaXRhdGlvbiwgaW5kZXgpID0+ICh7IGNpdGF0aW9uLCBzY29yZTogc291cmNlU2NvcmUoY2l0YXRpb24sIHJlcXVlc3QsIGluZGV4KSB9KSlcbiAgICAuc29ydCgobGVmdCwgcmlnaHQpID0+IHJpZ2h0LnNjb3JlIC0gbGVmdC5zY29yZSlcbiAgICAuc2xpY2UoMCwgbWF4U291cmNlcylcbiAgICAubWFwKCh7IGNpdGF0aW9uIH0pID0+IGNpdGF0aW9uKTtcbn1cblxuLyoqIEZldGNoIG9uZSBjaXRhdGlvbiBhcyByZWFkYWJsZSB0ZXh0IHdpdGhvdXQgZmFpbGluZyB0aGUgd2hvbGUgcmVzZWFyY2ggcGFzcy4gKi9cbmFzeW5jIGZ1bmN0aW9uIGZldGNoU291cmNlKFxuICBjbGllbnQ6IEJyYW5kUmVzZWFyY2hDbGllbnQsXG4gIGNpdGF0aW9uOiBXZWJTZWFyY2hDaXRhdGlvbixcbiAgc291cmNlTWF4TGVuZ3RoOiBudW1iZXIsXG4gIG9uQ29tcGxldGU6ICgpID0+IHZvaWQgfCBQcm9taXNlPHZvaWQ+LFxuICBzaWduYWw/OiBBYm9ydFNpZ25hbCxcbik6IFByb21pc2U8QnJhbmRSZXNlYXJjaFNvdXJjZT4ge1xuICB0cnkge1xuICAgIGNvbnN0IHBhZ2UgPSBhd2FpdCBjbGllbnQuZmV0Y2goXG4gICAgICB7IHVybDogY2l0YXRpb24udXJsLCBmb3JtYXQ6IFwidGV4dFwiLCBtYXhMZW5ndGg6IHNvdXJjZU1heExlbmd0aCB9LFxuICAgICAgc2lnbmFsLFxuICAgICk7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmNpdGF0aW9uLFxuICAgICAgdXJsOiBwYWdlLnVybCxcbiAgICAgIC4uLihwYWdlLnRpdGxlID8geyB0aXRsZTogcGFnZS50aXRsZSB9IDoge30pLFxuICAgICAgZmV0Y2hlZDogdHJ1ZSxcbiAgICAgIGNvbnRlbnQ6IHBhZ2UuY29udGVudCxcbiAgICB9O1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGxvZ2dlci53YXJuKFwic291cmNlLWZldGNoLWZhaWxlZFwiLCB7XG4gICAgICB1cmw6IGNpdGF0aW9uLnVybCxcbiAgICAgIGVycm9yOiBlcnJvclV0aWxzLnRvRXJyb3IoZXJyb3IpLFxuICAgIH0pO1xuICAgIHJldHVybiB7IC4uLmNpdGF0aW9uLCBmZXRjaGVkOiBmYWxzZSB9O1xuICB9IGZpbmFsbHkge1xuICAgIGF3YWl0IG9uQ29tcGxldGUoKTtcbiAgfVxufVxuXG4vKipcbiAqIFNlYXJjaCBmb3IgYSBicmFuZCwgZmV0Y2ggYSBib3VuZGVkIHNldCBvZiBjaXRlZCBwYWdlcywgYW5kIHJldGFpbiB0aGUgZmlyc3RcbiAqIHBhZ2UncyBtYXJrdXAgZm9yIGxvZ28gYW5kIGZhdmljb24gZGlzY292ZXJ5LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVzZWFyY2hCcmFuZChcbiAgcmVxdWVzdDogQnJhbmRHZW5lcmF0aW9uUmVxdWVzdCxcbiAgY2xpZW50OiBCcmFuZFJlc2VhcmNoQ2xpZW50LFxuICBvcHRpb25zOiBCcmFuZFJlc2VhcmNoT3B0aW9ucyA9IHt9LFxuICBzaWduYWw/OiBBYm9ydFNpZ25hbCxcbik6IFByb21pc2U8QnJhbmRSZXNlYXJjaD4ge1xuICBjb25zdCBzdWJqZWN0ID0gYnJhbmRSZXF1ZXN0U3ViamVjdChyZXF1ZXN0KTtcbiAgY29uc3QgbWF4U291cmNlcyA9IE1hdGgubWluKE1hdGgubWF4KDEsIG9wdGlvbnMubWF4U291cmNlcyA/PyBERUZBVUxUX01BWF9TT1VSQ0VTKSwgTUFYX1NPVVJDRVMpO1xuICBjb25zdCBzb3VyY2VNYXhMZW5ndGggPSBNYXRoLm1heChcbiAgICAxLFxuICAgIE1hdGgubWluKG9wdGlvbnMuc291cmNlTWF4TGVuZ3RoID8/IERFRkFVTFRfU09VUkNFX01BWF9MRU5HVEgsIE1BWF9TT1VSQ0VfTUFYX0xFTkdUSCksXG4gICk7XG4gIGF3YWl0IG9wdGlvbnMub25Qcm9ncmVzcz8uKHtcbiAgICB0eXBlOiBcInByb2dyZXNzXCIsXG4gICAgc3RhZ2U6IFwic2VhcmNoXCIsXG4gICAgbWVzc2FnZTogYFNlYXJjaGluZyBmb3Igb2ZmaWNpYWwgJHtzdWJqZWN0fSBicmFuZCBzb3VyY2VzYCxcbiAgfSk7XG4gIGNvbnN0IFtzZWFyY2gsIGlvc1JlZmVyZW5jZSwgYW5kcm9pZFJlZmVyZW5jZV0gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgY2xpZW50LnNlYXJjaCh7IHF1ZXJ5OiBicmFuZFJlc2VhcmNoUXVlcnkocmVxdWVzdCkgfSwgc2lnbmFsKSxcbiAgICByZXNlYXJjaE1vYmlsZVN0b3JlKHJlcXVlc3QsIFwiaW9zXCIsIGNsaWVudCwgc2lnbmFsKSxcbiAgICByZXNlYXJjaE1vYmlsZVN0b3JlKHJlcXVlc3QsIFwiYW5kcm9pZFwiLCBjbGllbnQsIHNpZ25hbCksXG4gIF0pO1xuICBjb25zdCB2aXN1YWxSZWZlcmVuY2VzID0gW2lvc1JlZmVyZW5jZSwgYW5kcm9pZFJlZmVyZW5jZV0uZmlsdGVyKFxuICAgIChyZWZlcmVuY2UpOiByZWZlcmVuY2UgaXMgQnJhbmRSZXNlYXJjaFZpc3VhbFJlZmVyZW5jZSA9PiByZWZlcmVuY2UgIT09IHVuZGVmaW5lZCxcbiAgKTtcbiAgYXdhaXQgb3B0aW9ucy5vblByb2dyZXNzPy4oe1xuICAgIHR5cGU6IFwicHJvZ3Jlc3NcIixcbiAgICBzdGFnZTogXCJ2aXN1YWxzXCIsXG4gICAgbWVzc2FnZTogYFJldmlld2VkICR7dmlzdWFsUmVmZXJlbmNlcy5sZW5ndGh9IG1vYmlsZSBhcHAgcmVmZXJlbmNlc2AsXG4gICAgY3VycmVudDogdmlzdWFsUmVmZXJlbmNlcy5sZW5ndGgsXG4gICAgdG90YWw6IDIsXG4gIH0pO1xuICBjb25zdCBjaXRhdGlvbnMgPSBzZWxlY3RTb3VyY2VzKHNlYXJjaC5jaXRhdGlvbnMsIHJlcXVlc3QsIG1heFNvdXJjZXMpO1xuICBpZiAoY2l0YXRpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgQnJhbmQgcmVzZWFyY2ggZm9yIFwiJHtzdWJqZWN0fVwiIHJldHVybmVkIG5vIHB1YmxpYyBIVFRQUyBzb3VyY2VzIHRvIGZldGNoLmApO1xuICB9XG4gIGxldCBjb21wbGV0ZWRTb3VyY2VzID0gMDtcbiAgYXdhaXQgb3B0aW9ucy5vblByb2dyZXNzPy4oe1xuICAgIHR5cGU6IFwicHJvZ3Jlc3NcIixcbiAgICBzdGFnZTogXCJmZXRjaFwiLFxuICAgIG1lc3NhZ2U6IGBSZWFkaW5nIDAgb2YgJHtjaXRhdGlvbnMubGVuZ3RofSBzb3VyY2VzYCxcbiAgICBjdXJyZW50OiAwLFxuICAgIHRvdGFsOiBjaXRhdGlvbnMubGVuZ3RoLFxuICB9KTtcblxuICBjb25zdCBvZmZpY2lhbCA9IGNpdGF0aW9uc1swXTtcbiAgY29uc3QgW3NvdXJjZXMsIG9mZmljaWFsSHRtbF0gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgUHJvbWlzZS5hbGwoXG4gICAgICBjaXRhdGlvbnMubWFwKChjaXRhdGlvbikgPT5cbiAgICAgICAgZmV0Y2hTb3VyY2UoXG4gICAgICAgICAgY2xpZW50LFxuICAgICAgICAgIGNpdGF0aW9uLFxuICAgICAgICAgIHNvdXJjZU1heExlbmd0aCxcbiAgICAgICAgICBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBjb21wbGV0ZWRTb3VyY2VzICs9IDE7XG4gICAgICAgICAgICBhd2FpdCBvcHRpb25zLm9uUHJvZ3Jlc3M/Lih7XG4gICAgICAgICAgICAgIHR5cGU6IFwicHJvZ3Jlc3NcIixcbiAgICAgICAgICAgICAgc3RhZ2U6IFwiZmV0Y2hcIixcbiAgICAgICAgICAgICAgbWVzc2FnZTogYFJlYWQgJHtjb21wbGV0ZWRTb3VyY2VzfSBvZiAke2NpdGF0aW9ucy5sZW5ndGh9IHNvdXJjZXNgLFxuICAgICAgICAgICAgICBjdXJyZW50OiBjb21wbGV0ZWRTb3VyY2VzLFxuICAgICAgICAgICAgICB0b3RhbDogY2l0YXRpb25zLmxlbmd0aCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgc2lnbmFsLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICApLFxuICAgIGZldGNoQXNzZXRQYWdlKFxuICAgICAgY2xpZW50LFxuICAgICAge1xuICAgICAgICB1cmw6IG9mZmljaWFsLnVybCxcbiAgICAgICAgbWF4TGVuZ3RoOiBBU1NFVF9IVE1MX01BWF9MRU5HVEgsXG4gICAgICB9LFxuICAgICAgc2lnbmFsLFxuICAgICkuY2F0Y2goKGVycm9yOiB1bmtub3duKSA9PiB7XG4gICAgICBsb2dnZXIud2FybihcIm9mZmljaWFsLXBhZ2UtaHRtbC1mZXRjaC1mYWlsZWRcIiwge1xuICAgICAgICB1cmw6IG9mZmljaWFsLnVybCxcbiAgICAgICAgZXJyb3I6IGVycm9yVXRpbHMudG9FcnJvcihlcnJvciksXG4gICAgICB9KTtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSksXG4gIF0pO1xuICBhd2FpdCBvcHRpb25zLm9uUHJvZ3Jlc3M/Lih7XG4gICAgdHlwZTogXCJwcm9ncmVzc1wiLFxuICAgIHN0YWdlOiBcImFzc2V0c1wiLFxuICAgIG1lc3NhZ2U6IG9mZmljaWFsSHRtbFxuICAgICAgPyBcIkZvdW5kIG9mZmljaWFsIHBhZ2UgYXJ0d29ya1wiXG4gICAgICA6IFwiVXNpbmcgdGhlIG9mZmljaWFsIHNpdGUgZmF2aWNvbiBmYWxsYmFja1wiLFxuICB9KTtcblxuICByZXR1cm4ge1xuICAgIGFuc3dlcjogc2VhcmNoLmFuc3dlcixcbiAgICBtb2RlbDogc2VhcmNoLm1vZGVsLFxuICAgIHNvdXJjZXMsXG4gICAgb2ZmaWNpYWxQYWdlVXJsOiBvZmZpY2lhbEh0bWw/LnVybCA/PyBvZmZpY2lhbC51cmwsXG4gICAgLi4uKG9mZmljaWFsSHRtbCA/IHsgb2ZmaWNpYWxQYWdlSHRtbDogb2ZmaWNpYWxIdG1sLmNvbnRlbnQgfSA6IHt9KSxcbiAgICB2aXN1YWxSZWZlcmVuY2VzLFxuICB9O1xufVxuIl19
|
package/lib/src/workflow.d.ts
CHANGED
|
@@ -40,7 +40,6 @@ export declare function createGeneratorWorkflow(operations: GeneratorWorkflowOpe
|
|
|
40
40
|
schemaVersion: "1";
|
|
41
41
|
name: string;
|
|
42
42
|
shortName: string;
|
|
43
|
-
tagline: string;
|
|
44
43
|
description: string;
|
|
45
44
|
assets: {
|
|
46
45
|
icon: {
|
|
@@ -79,6 +78,7 @@ export declare function createGeneratorWorkflow(operations: GeneratorWorkflowOpe
|
|
|
79
78
|
repository?: string | undefined;
|
|
80
79
|
};
|
|
81
80
|
extensions: Record<string, unknown>;
|
|
81
|
+
tagline?: string | undefined;
|
|
82
82
|
};
|
|
83
83
|
sources: {
|
|
84
84
|
url: string;
|
|
@@ -185,7 +185,6 @@ export declare function createGeneratorWorkflow(operations: GeneratorWorkflowOpe
|
|
|
185
185
|
schemaVersion: "1";
|
|
186
186
|
name: string;
|
|
187
187
|
shortName: string;
|
|
188
|
-
tagline: string;
|
|
189
188
|
description: string;
|
|
190
189
|
assets: {
|
|
191
190
|
icon: {
|
|
@@ -224,6 +223,7 @@ export declare function createGeneratorWorkflow(operations: GeneratorWorkflowOpe
|
|
|
224
223
|
repository?: string | undefined;
|
|
225
224
|
};
|
|
226
225
|
extensions: Record<string, unknown>;
|
|
226
|
+
tagline?: string | undefined;
|
|
227
227
|
};
|
|
228
228
|
sources: {
|
|
229
229
|
url: string;
|
package/package.json
CHANGED
|
@@ -25,14 +25,14 @@
|
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"@databricks/appkit": "0.81.0",
|
|
27
27
|
"@databricks/sdk-experimental": "^0.17.0",
|
|
28
|
-
"@dbx-tools/appkit": "^0.9.
|
|
29
|
-
"@dbx-tools/appkit-mastra": "^0.9.
|
|
30
|
-
"@dbx-tools/appkit-web-search": "^0.9.
|
|
31
|
-
"@dbx-tools/core": "^0.9.
|
|
32
|
-
"@dbx-tools/genie": "^0.9.
|
|
33
|
-
"@dbx-tools/shared-core": "^0.9.
|
|
34
|
-
"@dbx-tools/shared-generator": "^0.9.
|
|
35
|
-
"@dbx-tools/shared-genie": "^0.9.
|
|
28
|
+
"@dbx-tools/appkit": "^0.9.139",
|
|
29
|
+
"@dbx-tools/appkit-mastra": "^0.9.139",
|
|
30
|
+
"@dbx-tools/appkit-web-search": "^0.9.139",
|
|
31
|
+
"@dbx-tools/core": "^0.9.139",
|
|
32
|
+
"@dbx-tools/genie": "^0.9.139",
|
|
33
|
+
"@dbx-tools/shared-core": "^0.9.139",
|
|
34
|
+
"@dbx-tools/shared-generator": "^0.9.139",
|
|
35
|
+
"@dbx-tools/shared-genie": "^0.9.139",
|
|
36
36
|
"@mastra/core": "1.71.0",
|
|
37
37
|
"ai": "^7.0.0",
|
|
38
38
|
"cheerio": "^1.2.0",
|
|
@@ -124,7 +124,7 @@
|
|
|
124
124
|
"./package.json": "./package.json"
|
|
125
125
|
}
|
|
126
126
|
},
|
|
127
|
-
"version": "0.9.
|
|
127
|
+
"version": "0.9.139",
|
|
128
128
|
"types": "./lib/index.d.ts",
|
|
129
129
|
"dbxToolsConfig": {
|
|
130
130
|
"tags": [
|
package/src/research.ts
CHANGED
|
@@ -172,7 +172,7 @@ async function researchMobileStore(
|
|
|
172
172
|
logger.warn("mobile-image-fetch-failed", {
|
|
173
173
|
platform,
|
|
174
174
|
url,
|
|
175
|
-
error: errorUtils.
|
|
175
|
+
error: errorUtils.toError(error),
|
|
176
176
|
});
|
|
177
177
|
return { url };
|
|
178
178
|
}
|
|
@@ -187,7 +187,7 @@ async function researchMobileStore(
|
|
|
187
187
|
} catch (error) {
|
|
188
188
|
logger.warn("mobile-store-research-failed", {
|
|
189
189
|
platform,
|
|
190
|
-
error: errorUtils.
|
|
190
|
+
error: errorUtils.toError(error),
|
|
191
191
|
});
|
|
192
192
|
return undefined;
|
|
193
193
|
}
|
|
@@ -269,7 +269,7 @@ async function fetchSource(
|
|
|
269
269
|
} catch (error) {
|
|
270
270
|
logger.warn("source-fetch-failed", {
|
|
271
271
|
url: citation.url,
|
|
272
|
-
error: errorUtils.
|
|
272
|
+
error: errorUtils.toError(error),
|
|
273
273
|
});
|
|
274
274
|
return { ...citation, fetched: false };
|
|
275
275
|
} finally {
|
|
@@ -358,7 +358,7 @@ export async function researchBrand(
|
|
|
358
358
|
).catch((error: unknown) => {
|
|
359
359
|
logger.warn("official-page-html-fetch-failed", {
|
|
360
360
|
url: official.url,
|
|
361
|
-
error: errorUtils.
|
|
361
|
+
error: errorUtils.toError(error),
|
|
362
362
|
});
|
|
363
363
|
return undefined;
|
|
364
364
|
}),
|