@dbx-tools/appkit-mastra 0.9.136 → 0.9.138
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/genie-chat.js +1 -1
- package/package.json +16 -16
- package/src/genie-chat.ts +1 -5
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-mastra";
|
|
6
|
-
export const PACKAGE_VERSION = "0.9.
|
|
6
|
+
export const PACKAGE_VERSION = "0.9.138";
|
|
7
7
|
export * as agents from "./src/agents.ts";
|
|
8
8
|
export * as chart from "./src/chart.ts";
|
|
9
9
|
export * as chat from "./src/chat.ts";
|
package/lib/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare const PACKAGE_IDENTIFIER = "@dbx-tools/appkit-mastra";
|
|
2
|
-
export declare const PACKAGE_VERSION = "0.9.
|
|
2
|
+
export declare const PACKAGE_VERSION = "0.9.138";
|
|
3
3
|
export * as agents from "./src/agents.ts";
|
|
4
4
|
export * as chart from "./src/chart.ts";
|
|
5
5
|
export * as chat from "./src/chat.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-mastra";
|
|
5
|
-
export const PACKAGE_VERSION = "0.9.
|
|
5
|
+
export const PACKAGE_VERSION = "0.9.138";
|
|
6
6
|
export * as agents from "./src/agents.js";
|
|
7
7
|
export * as chart from "./src/chart.js";
|
|
8
8
|
export * as chat from "./src/chat.js";
|
|
@@ -61,4 +61,4 @@ export { TITLE_INSTRUCTIONS } from "./src/summarize.js";
|
|
|
61
61
|
export { TRACE_IO_LIMIT, MLFLOW_SPAN_INPUTS_ATTR, MLFLOW_SPAN_OUTPUTS_ATTR, CHAT_MESSAGES_ATTR, CHAT_RESPONSE_ATTR, CHAT_IDENTITY_ATTR, CHAT_GENIE_USED_ATTR, MLFLOW_SPAN_TYPE_ATTR, GEN_AI_OPERATION_NAME_ATTR, MLFLOW_USER_ATTR, MLFLOW_SESSION_ATTR, MLFLOW_SPAN_TYPE_AGENT, MLFLOW_SPAN_TYPE_GENIE, AppMlflowTraceInfoSpanProcessor } from "./src/telemetry.js";
|
|
62
62
|
export { MLFLOW_TRACE_TAG_PREFIX, MLFLOW_AGENT_TAG, MLFLOW_GENIE_TAG, MLFLOW_OBO_AUTH_TAG, MLFLOW_SP_AUTH_TAG, MLFLOW_LOCAL_TAG, MLFLOW_AGENT_TAG_ATTR, MLFLOW_GENIE_TAG_ATTR, APPKIT_AGENT_TRACE_ROOT_ATTR, MLFLOW_OBO_AUTH_TAG_ATTR, MLFLOW_SP_AUTH_TAG_ATTR, MLFLOW_LOCAL_TAG_ATTR } from "./src/trace-attributes.js";
|
|
63
63
|
export { DEFAULT_DATABRICKS_WORKSPACE_PATHS } from "./src/workspaces.js";
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRywwQkFBMEIsQ0FBQztBQUM3RCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLEtBQUssTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEtBQUssSUFBSSxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxRQUFRLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxLQUFLLFVBQVUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEtBQUssWUFBWSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxXQUFXLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxLQUFLLEtBQUssTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEtBQUssU0FBUyxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sS0FBSyxRQUFRLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxLQUFLLEdBQUcsTUFBTSxjQUFjLENBQUM7QUFDcEMsT0FBTyxLQUFLLE1BQU0sTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxLQUFLLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxLQUFLLFlBQVksTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEtBQUssYUFBYSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7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QUFDN0YsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXhELE9BQU8sRUFBRSxjQUFjLEVBQUUsdUJBQXVCLEVBQUUsd0JBQXdCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQUUscUJBQXFCLEVBQUUsMEJBQTBCLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsc0JBQXNCLEVBQUUsc0JBQXNCLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVwVyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUUscUJBQXFCLEVBQUUsNEJBQTRCLEVBQUUsd0JBQXdCLEVBQUUsdUJBQXVCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV6VCxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEdFTkVSQVRFRCBieSBwcm9qZW4gd2F0Y2ggLSBETyBOT1QgRURJVC5cbi8vIFJlZ2VuZXJhdGVkIGZyb20gdGhlIGV4cG9ydGluZyBtb2R1bGVzIGluIC4vc3JjLlxuLy8gSGFuZCBlZGl0cyBhcmUgb3ZlcndyaXR0ZW4gb24gdGhlIG5leHQgd2F0Y2g7IHRoaXMgZmlsZSBpcyByZWFkLW9ubHkuXG5cbmV4cG9ydCBjb25zdCBQQUNLQUdFX0lERU5USUZJRVIgPSBcIkBkYngtdG9vbHMvYXBwa2l0LW1hc3RyYVwiO1xuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfVkVSU0lPTiA9IFwiMC45LjEzNlwiO1xuZXhwb3J0ICogYXMgYWdlbnRzIGZyb20gXCIuL3NyYy9hZ2VudHMudHNcIjtcbmV4cG9ydCAqIGFzIGNoYXJ0IGZyb20gXCIuL3NyYy9jaGFydC50c1wiO1xuZXhwb3J0ICogYXMgY2hhdCBmcm9tIFwiLi9zcmMvY2hhdC50c1wiO1xuZXhwb3J0ICogYXMgY29uZmlnIGZyb20gXCIuL3NyYy9jb25maWcudHNcIjtcbmV4cG9ydCAqIGFzIGRlZmF1bHRzIGZyb20gXCIuL3NyYy9kZWZhdWx0cy50c1wiO1xuZXhwb3J0ICogYXMgZXZhbHVhdGlvbiBmcm9tIFwiLi9zcmMvZXZhbHVhdGlvbi50c1wiO1xuZXhwb3J0ICogYXMgZmVlZGJhY2tNb2RlIGZyb20gXCIuL3NyYy9mZWVkYmFjay1tb2RlLnRzXCI7XG5leHBvcnQgKiBhcyBmaWxlc3lzdGVtcyBmcm9tIFwiLi9zcmMvZmlsZXN5c3RlbXMudHNcIjtcbmV4cG9ydCAqIGFzIGdlbmllIGZyb20gXCIuL3NyYy9nZW5pZS50c1wiO1xuZXhwb3J0ICogYXMgZ2VuaWVDaGF0IGZyb20gXCIuL3NyYy9nZW5pZS1jaGF0LnRzXCI7XG5leHBvcnQgKiBhcyBpZGVudGl0eSBmcm9tIFwiLi9zcmMvaWRlbnRpdHkudHNcIjtcbmV4cG9ydCAqIGFzIG1jcCBmcm9tIFwiLi9zcmMvbWNwLnRzXCI7XG5leHBvcnQgKiBhcyBtZW1vcnkgZnJvbSBcIi4vc3JjL21lbW9yeS50c1wiO1xuZXhwb3J0ICogYXMgbWxmbG93IGZyb20gXCIuL3NyYy9tbGZsb3cudHNcIjtcbmV4cG9ydCAqIGFzIG1vZGVsIGZyb20gXCIuL3NyYy9tb2RlbC50c1wiO1xuZXhwb3J0ICogYXMgbW9udHlTYW5kYm94IGZyb20gXCIuL3NyYy9tb250eS1zYW5kYm94LnRzXCI7XG5leHBvcnQgKiBhcyBvYnNlcnZhYmlsaXR5IGZyb20gXCIuL3NyYy9vYnNlcnZhYmlsaXR5LnRzXCI7XG5leHBvcnQgKiBhcyBwbHVnaW4gZnJvbSBcIi4vc3JjL3BsdWdpbi50c1wiO1xuZXhwb3J0ICogYXMgcHJvY2Vzc29ycyBmcm9tIFwiLi9zcmMvcHJvY2Vzc29ycy50c1wiO1xuZXhwb3J0ICogYXMgcmVtb3RlU2tpbGxzIGZyb20gXCIuL3NyYy9yZW1vdGUtc2tpbGxzLnRzXCI7XG5leHBvcnQgKiBhcyByZXF1ZXN0Q29udGV4dCBmcm9tIFwiLi9zcmMvcmVxdWVzdC1jb250ZXh0LnRzXCI7XG5leHBvcnQgKiBhcyByZXN0IGZyb20gXCIuL3NyYy9yZXN0LnRzXCI7XG5leHBvcnQgKiBhcyBzZXJ2ZXIgZnJvbSBcIi4vc3JjL3NlcnZlci50c1wiO1xuZXhwb3J0ICogYXMgc2VydmluZyBmcm9tIFwiLi9zcmMvc2VydmluZy50c1wiO1xuZXhwb3J0ICogYXMgc2tpbGxQYXRocyBmcm9tIFwiLi9zcmMvc2tpbGwtcGF0aHMudHNcIjtcbmV4cG9ydCAqIGFzIHN0YXRlbWVudCBmcm9tIFwiLi9zcmMvc3RhdGVtZW50LnRzXCI7XG5leHBvcnQgKiBhcyBzdG9yYWdlU2NoZW1hIGZyb20gXCIuL3NyYy9zdG9yYWdlLXNjaGVtYS50c1wiO1xuZXhwb3J0ICogYXMgc3R5bGUgZnJvbSBcIi4vc3JjL3N0eWxlLnRzXCI7XG5leHBvcnQgKiBhcyBzdW1tYXJpemUgZnJvbSBcIi4vc3JjL3N1bW1hcml6ZS50c1wiO1xuZXhwb3J0ICogYXMgdGVsZW1ldHJ5IGZyb20gXCIuL3NyYy90ZWxlbWV0cnkudHNcIjtcbmV4cG9ydCAqIGFzIHRyYWNlQXR0cmlidXRlcyBmcm9tIFwiLi9zcmMvdHJhY2UtYXR0cmlidXRlcy50c1wiO1xuZXhwb3J0ICogYXMgdmFsaWRhdGlvbiBmcm9tIFwiLi9zcmMvdmFsaWRhdGlvbi50c1wiO1xuZXhwb3J0ICogYXMgd29ya3NwYWNlcyBmcm9tIFwiLi9zcmMvd29ya3NwYWNlcy50c1wiO1xuZXhwb3J0ICogYXMgd3JpdGVyIGZyb20gXCIuL3NyYy93cml0ZXIudHNcIjtcbmV4cG9ydCB7IEZBTExCQUNLX0FHRU5UX0lELCBERUZBVUxUX0FHRU5UX01BWF9TVEVQUywgREVGQVVMVF9UT09MX1dPUktGTE9XX0lOU1RSVUNUSU9OUywgQ09ERV9NT0RFX1JPVVRJTkdfSU5TVFJVQ1RJT05TLCBERUZBVUxUX1NUWUxFX0lOU1RSVUNUSU9OUyB9IGZyb20gXCIuL3NyYy9hZ2VudHMudHNcIjtcbmV4cG9ydCB0eXBlIHsgTWFzdHJhVG9vbHMsIEFwcEtpdFRvb2xPcHRpb25zLCBUb29sa2l0T3B0aW9ucywgTWFzdHJhUGx1Z2luVG9vbGtpdFByb3ZpZGVyLCBNYXN0cmFQbHVnaW5zLCBNYXN0cmFUb29sc0ZuLCBNYXN0cmFBZ2VudFdvcmtzcGFjZVJlc29sdmVyLCBNYXN0cmFBZ2VudERlZmluaXRpb24sIEFueU1hc3RyYUFnZW50RGVmaW5pdGlvbiwgTWFzdHJhU3RvcmFnZUNvbmZpZ092ZXJyaWRlLCBNYXN0cmFNZW1vcnlDb25maWdPdmVycmlkZSwgQWdlbnREZWZhdWx0TW9kZWwsIEJ1aWx0QWdlbnRzLCBNYXN0cmFPdXRwdXRQcm9jZXNzb3JGYWN0b3J5IH0gZnJvbSBcIi4vc3JjL2FnZW50cy50c1wiO1xuZXhwb3J0IHsgY2hhcnRQbGFuU2NoZW1hLCBjaGFydFBsYW5uZXJSZXF1ZXN0U2NoZW1hLCBjaGFydFRvb2xPdXRwdXRTY2hlbWEgfSBmcm9tIFwiLi9zcmMvY2hhcnQudHNcIjtcbmV4cG9ydCB0eXBlIHsgQ2hhcnRQbGFubmVyUmVxdWVzdCwgQ2hhcnRUb29sT3V0cHV0LCBQcmVwYXJlQ2hhcnRPcHRpb25zLCBGZXRjaENoYXJ0T3B0aW9ucyB9IGZyb20gXCIuL3NyYy9jaGFydC50c1wiO1xuZXhwb3J0IHsgTUFTVFJBX1VTRVJfS0VZLCBNQVNUUkFfVVNFUl9OQU1FX0tFWSwgTUFTVFJBX1VTRVJfRU1BSUxfS0VZLCBNQVNUUkFfQVVUSF9NT0RFX0tFWSwgTUFTVFJBX1JFUVVFU1RfSURfS0VZLCBNQVNUUkFfU0NPUEVTX0tFWSwgVFJBQ0VfUkVRVUVTVF9DT05URVhUX0tFWVMsIE1BU1RSQV9DT05GSUdfU0NIRU1BIH0gZnJvbSBcIi4vc3JjL2NvbmZpZy50c1wiO1xuZXhwb3J0IHR5cGUgeyBVc2VyLCBNYXN0cmFNZW1vcnlDb25maWcsIE1hc3RyYVdvcmtzcGFjZVNraWxsc0NvbmZpZywgTWFzdHJhQ29kZU1vZGVDb25maWcsIE1hc3RyYU1jcENvbmZpZywgTWFzdHJhUGx1Z2luQ29uZmlnIH0gZnJvbSBcIi4vc3JjL2NvbmZpZy50c1wiO1xuZXhwb3J0IHsgbW9kZWxDYXRhbG9ndWVEZWZhdWx0cywgZ2VuaWVTdWdnZXN0aW9uRGVmYXVsdHMsIGdlbmllQ29udmVyc2F0aW9uUmVhZERlZmF1bHRzLCBnZW5pZUNvbnZlcnNhdGlvbldyaXRlRGVmYXVsdHMsIHN0YXRlbWVudERhdGFEZWZhdWx0cywgY2hhcnRGZXRjaERlZmF1bHRzLCBmZWVkYmFja1dyaXRlRGVmYXVsdHMgfSBmcm9tIFwiLi9zcmMvZGVmYXVsdHMudHNcIjtcbmV4cG9ydCB0eXBlIHsgTWFzdHJhRXZhbERyaXZlck9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvZXZhbHVhdGlvbi50c1wiO1xuZXhwb3J0IHR5cGUgeyBGZWVkYmFja0F2YWlsYWJpbGl0eSB9IGZyb20gXCIuL3NyYy9mZWVkYmFjay1tb2RlLnRzXCI7XG5leHBvcnQgeyBNYXN0cmFGaWxlU3lzdGVtQWRhcHRlciwgTW91bnRlZENvbXBvc2l0ZUZpbGVzeXN0ZW0gfSBmcm9tIFwiLi9zcmMvZmlsZXN5c3RlbXMudHNcIjtcbmV4cG9ydCB0eXBlIHsgTWFzdHJhRmlsZVN5c3RlbUFkYXB0ZXJPcHRpb25zIH0gZnJvbSBcIi4vc3JjL2ZpbGVzeXN0ZW1zLnRzXCI7XG5leHBvcnQgeyBERUZBVUxUX0dFTklFX0FMSUFTLCBHRU5JRV9JTlNUUlVDVElPTlMgfSBmcm9tIFwiLi9zcmMvZ2VuaWUudHNcIjtcbmV4cG9ydCB0eXBlIHsgR2VuaWVTcGFjZUNvbmZpZywgR2VuaWVTcGFjZXNDb25maWcgfSBmcm9tIFwiLi9zcmMvZ2VuaWUudHNcIjtcbmV4cG9ydCB0eXBlIHsgR2VuaWVDaGF0U3BhY2UgfSBmcm9tIFwiLi9zcmMvZ2VuaWUtY2hhdC50c1wiO1xuZXhwb3J0IHsgSURFTlRJVFlfRU5WLCBJREVOVElUWV9NT0RFUywgREVGQVVMVF9JREVOVElUWV9NT0RFLCBVU0VSX0lEX0hFQURFUiwgVVNFUl9FTUFJTF9IRUFERVIsIHJlcXVlc3RVc2VySWQsIHJlcXVlc3RVc2VyRW1haWwsIHVzZVNlcnZpY2VQcmluY2lwYWwgfSBmcm9tIFwiLi9zcmMvaWRlbnRpdHkudHNcIjtcbmV4cG9ydCB0eXBlIHsgTWFzdHJhSWRlbnRpdHlNb2RlIH0gZnJvbSBcIi4vc3JjL2lkZW50aXR5LnRzXCI7XG5leHBvcnQgdHlwZSB7IFJlc29sdmVkTWNwIH0gZnJvbSBcIi4vc3JjL21jcC50c1wiO1xuZXhwb3J0IHsgTWVtb3J5QnVpbGRlciB9IGZyb20gXCIuL3NyYy9tZW1vcnkudHNcIjtcbmV4cG9ydCB7IEFnZW50VHJhY2VTcGFuUHJvY2Vzc29yIH0gZnJvbSBcIi4vc3JjL21sZmxvdy50c1wiO1xuZXhwb3J0IHR5cGUgeyBBcHBNbGZsb3dUcmFjZUluZm8sIExvZ0ZlZWRiYWNrUGFyYW1zIH0gZnJvbSBcIi4vc3JjL21sZmxvdy50c1wiO1xuZXhwb3J0IHsgUkVTUE9OU0VTX1BST1ZJREVSX09QVElPTlMgfSBmcm9tIFwiLi9zcmMvbW9kZWwudHNcIjtcbmV4cG9ydCB0eXBlIHsgQnVpbGRNb2RlbE92ZXJyaWRlcyB9IGZyb20gXCIuL3NyYy9tb2RlbC50c1wiO1xuZXhwb3J0IHsgTW9udHlTYW5kYm94IH0gZnJvbSBcIi4vc3JjL21vbnR5LXNhbmRib3gudHNcIjtcbmV4cG9ydCB0eXBlIHsgTW9udHlTYW5kYm94T3B0aW9ucyB9IGZyb20gXCIuL3NyYy9tb250eS1zYW5kYm94LnRzXCI7XG5leHBvcnQgdHlwZSB7IEJ1aWxkT2JzZXJ2YWJpbGl0eU9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvb2JzZXJ2YWJpbGl0eS50c1wiO1xuZXhwb3J0IHsgTWFzdHJhUGx1Z2luLCBtYXN0cmEgfSBmcm9tIFwiLi9zcmMvcGx1Z2luLnRzXCI7XG5leHBvcnQgeyBzdHJpcFN0YWxlQ2hhcnRzUHJvY2Vzc29yIH0gZnJvbSBcIi4vc3JjL3Byb2Nlc3NvcnMudHNcIjtcbmV4cG9ydCB7IEFJVE9PTFNfU0tJTExTX01PVU5ULCBSRU1PVEVfU0tJTExTX01PVU5ULCBBSVRPT0xTX1JFRlJFU0hfVFRMX01TLCBBSVRPT0xTX1NPVVJDRSB9IGZyb20gXCIuL3NyYy9yZW1vdGUtc2tpbGxzLnRzXCI7XG5leHBvcnQgdHlwZSB7IEFpVG9vbHNTb3VyY2UsIFJlbW90ZVNraWxsU291cmNlT3B0aW9ucywgUmVtb3RlU2tpbGxTb3VyY2UsIFJlbW90ZVNraWxsc09wdGlvbiwgTG9jYWxTa2lsbERpcmVjdG9yeU1vdW50LCBNZW1vcnlTa2lsbE1vdW50LCBMb2NhbFNraWxsTW91bnQsIFByb3Zpc2lvblJlbW90ZVNraWxsc09wdGlvbnMsIFByb3Zpc2lvbmVkUmVtb3RlU2tpbGxzLCBSZW1vdGVTa2lsbENhY2hlRW50cnksIFJlbW90ZVNraWxsc01ldGFkYXRhIH0gZnJvbSBcIi4vc3JjL3JlbW90ZS1za2lsbHMudHNcIjtcbmV4cG9ydCB7IE1BU1RSQV9PUklHSU5fS0VZIH0gZnJvbSBcIi4vc3JjL3JlcXVlc3QtY29udGV4dC50c1wiO1xuZXhwb3J0IHR5cGUgeyBEYXRhYnJpY2tzRmV0Y2hJbml0IH0gZnJvbSBcIi4vc3JjL3Jlc3QudHNcIjtcbmV4cG9ydCB7IE1hc3RyYVNlcnZlciB9IGZyb20gXCIuL3NyYy9zZXJ2ZXIudHNcIjtcbmV4cG9ydCB0eXBlIHsgQXR0cmlidXRlZElkZW50aXR5LCBNYXN0cmFBcGlHYXRlT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9zZXJ2ZXIudHNcIjtcbmV4cG9ydCB7IE1BU1RSQV9NT0RFTF9PVkVSUklERV9LRVksIE1BU1RSQV9SRVNPTFZFRF9NT0RFTF9LRVkgfSBmcm9tIFwiLi9zcmMvc2VydmluZy50c1wiO1xuZXhwb3J0IHR5cGUgeyBNb2RlbE92ZXJyaWRlUmVxdWVzdCB9IGZyb20gXCIuL3NyYy9zZXJ2aW5nLnRzXCI7XG5leHBvcnQgeyBPUkdBTklaQVRJT05fQVNTSVNUQU5UX1BBVEgsIE9SR0FOSVpBVElPTl9TS0lMTFNfUEFUSCB9IGZyb20gXCIuL3NyYy9za2lsbC1wYXRocy50c1wiO1xuZXhwb3J0IHsgU1RBVEVNRU5UX1JPV19DQVAgfSBmcm9tIFwiLi9zcmMvc3RhdGVtZW50LnRzXCI7XG5leHBvcnQgdHlwZSB7IFN0YXRlbWVudEVtYmVkRGF0YSB9IGZyb20gXCIuL3NyYy9zdGF0ZW1lbnQudHNcIjtcbmV4cG9ydCB7IFRZUE9HUkFQSFlfUlVMRSB9IGZyb20gXCIuL3NyYy9zdHlsZS50c1wiO1xuZXhwb3J0IHsgVElUTEVfSU5TVFJVQ1RJT05TIH0gZnJvbSBcIi4vc3JjL3N1bW1hcml6ZS50c1wiO1xuZXhwb3J0IHR5cGUgeyBTdW1tYXJpemVPcHRpb25zIH0gZnJvbSBcIi4vc3JjL3N1bW1hcml6ZS50c1wiO1xuZXhwb3J0IHsgVFJBQ0VfSU9fTElNSVQsIE1MRkxPV19TUEFOX0lOUFVUU19BVFRSLCBNTEZMT1dfU1BBTl9PVVRQVVRTX0FUVFIsIENIQVRfTUVTU0FHRVNfQVRUUiwgQ0hBVF9SRVNQT05TRV9BVFRSLCBDSEFUX0lERU5USVRZX0FUVFIsIENIQVRfR0VOSUVfVVNFRF9BVFRSLCBNTEZMT1dfU1BBTl9UWVBFX0FUVFIsIEdFTl9BSV9PUEVSQVRJT05fTkFNRV9BVFRSLCBNTEZMT1dfVVNFUl9BVFRSLCBNTEZMT1dfU0VTU0lPTl9BVFRSLCBNTEZMT1dfU1BBTl9UWVBFX0FHRU5ULCBNTEZMT1dfU1BBTl9UWVBFX0dFTklFLCBBcHBNbGZsb3dUcmFjZUluZm9TcGFuUHJvY2Vzc29yIH0gZnJvbSBcIi4vc3JjL3RlbGVtZXRyeS50c1wiO1xuZXhwb3J0IHR5cGUgeyBDaGF0VHVyblRlbGVtZXRyeU9wdGlvbnMsIENoYXRUcmFjZVRhZ1ZhbHVlIH0gZnJvbSBcIi4vc3JjL3RlbGVtZXRyeS50c1wiO1xuZXhwb3J0IHsgTUxGTE9XX1RSQUNFX1RBR19QUkVGSVgsIE1MRkxPV19BR0VOVF9UQUcsIE1MRkxPV19HRU5JRV9UQUcsIE1MRkxPV19PQk9fQVVUSF9UQUcsIE1MRkxPV19TUF9BVVRIX1RBRywgTUxGTE9XX0xPQ0FMX1RBRywgTUxGTE9XX0FHRU5UX1RBR19BVFRSLCBNTEZMT1dfR0VOSUVfVEFHX0FUVFIsIEFQUEtJVF9BR0VOVF9UUkFDRV9ST09UX0FUVFIsIE1MRkxPV19PQk9fQVVUSF9UQUdfQVRUUiwgTUxGTE9XX1NQX0FVVEhfVEFHX0FUVFIsIE1MRkxPV19MT0NBTF9UQUdfQVRUUiB9IGZyb20gXCIuL3NyYy90cmFjZS1hdHRyaWJ1dGVzLnRzXCI7XG5leHBvcnQgdHlwZSB7IFNjaGVtYUlzc3VlcyB9IGZyb20gXCIuL3NyYy92YWxpZGF0aW9uLnRzXCI7XG5leHBvcnQgeyBERUZBVUxUX0RBVEFCUklDS1NfV09SS1NQQUNFX1BBVEhTIH0gZnJvbSBcIi4vc3JjL3dvcmtzcGFjZXMudHNcIjtcbmV4cG9ydCB0eXBlIHsgRGF0YWJyaWNrc1dvcmtzcGFjZUNvbnRleHQsIERhdGFicmlja3NXb3Jrc3BhY2VQYXRoT3B0aW9ucywgRGF0YWJyaWNrc1dvcmtzcGFjZVBhdGgsIERhdGFicmlja3NXb3Jrc3BhY2VQYXRoVmFsdWUsIERhdGFicmlja3NXb3Jrc3BhY2VDYWNoZUZpbHRlciwgRGF0YWJyaWNrc1dvcmtzcGFjZUNhY2hlLCBXb3Jrc3BhY2VTYW5kYm94U2VsZWN0aW9uLCBEYXRhYnJpY2tzV29ya3NwYWNlT3B0aW9ucyB9IGZyb20gXCIuL3NyYy93b3Jrc3BhY2VzLnRzXCI7XG4iXX0=
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRywwQkFBMEIsQ0FBQztBQUM3RCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLEtBQUssTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEtBQUssSUFBSSxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxRQUFRLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxLQUFLLFVBQVUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEtBQUssWUFBWSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxXQUFXLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxLQUFLLEtBQUssTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEtBQUssU0FBUyxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sS0FBSyxRQUFRLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxLQUFLLEdBQUcsTUFBTSxjQUFjLENBQUM7QUFDcEMsT0FBTyxLQUFLLE1BQU0sTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxLQUFLLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxLQUFLLFlBQVksTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEtBQUssYUFBYSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLFVBQVUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEtBQUssWUFBWSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxjQUFjLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxLQUFLLElBQUksTUFBTSxlQUFlLENBQUM7QUFDdEMsT0FBTyxLQUFLLE1BQU0sTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEtBQUssT0FBTyxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sS0FBSyxVQUFVLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxLQUFLLFNBQVMsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEtBQUssYUFBYSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sS0FBSyxLQUFLLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxLQUFLLFNBQVMsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEtBQUssU0FBUyxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sS0FBSyxlQUFlLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxLQUFLLFVBQVUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEtBQUssVUFBVSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xELE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHVCQUF1QixFQUFFLGtDQUFrQyxFQUFFLDhCQUE4QixFQUFFLDBCQUEwQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFN0ssT0FBTyxFQUFFLGVBQWUsRUFBRSx5QkFBeUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRW5HLE9BQU8sRUFBRSxlQUFlLEVBQUUsb0JBQW9CLEVBQUUscUJBQXFCLEVBQUUsb0JBQW9CLEVBQUUscUJBQXFCLEVBQUUsaUJBQWlCLEVBQUUsMEJBQTBCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqTixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsNkJBQTZCLEVBQUUsOEJBQThCLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUdyTixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUzRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd6RSxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHakwsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTFELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTVELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUd0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxtQkFBbUIsRUFBRSxzQkFBc0IsRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUUzSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLHlCQUF5QixFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFeEYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0YsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXhELE9BQU8sRUFBRSxjQUFjLEVBQUUsdUJBQXVCLEVBQUUsd0JBQXdCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQUUscUJBQXFCLEVBQUUsMEJBQTBCLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsc0JBQXNCLEVBQUUsc0JBQXNCLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVwVyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUUscUJBQXFCLEVBQUUsNEJBQTRCLEVBQUUsd0JBQXdCLEVBQUUsdUJBQXVCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV6VCxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEdFTkVSQVRFRCBieSBwcm9qZW4gd2F0Y2ggLSBETyBOT1QgRURJVC5cbi8vIFJlZ2VuZXJhdGVkIGZyb20gdGhlIGV4cG9ydGluZyBtb2R1bGVzIGluIC4vc3JjLlxuLy8gSGFuZCBlZGl0cyBhcmUgb3ZlcndyaXR0ZW4gb24gdGhlIG5leHQgd2F0Y2g7IHRoaXMgZmlsZSBpcyByZWFkLW9ubHkuXG5cbmV4cG9ydCBjb25zdCBQQUNLQUdFX0lERU5USUZJRVIgPSBcIkBkYngtdG9vbHMvYXBwa2l0LW1hc3RyYVwiO1xuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfVkVSU0lPTiA9IFwiMC45LjEzOFwiO1xuZXhwb3J0ICogYXMgYWdlbnRzIGZyb20gXCIuL3NyYy9hZ2VudHMudHNcIjtcbmV4cG9ydCAqIGFzIGNoYXJ0IGZyb20gXCIuL3NyYy9jaGFydC50c1wiO1xuZXhwb3J0ICogYXMgY2hhdCBmcm9tIFwiLi9zcmMvY2hhdC50c1wiO1xuZXhwb3J0ICogYXMgY29uZmlnIGZyb20gXCIuL3NyYy9jb25maWcudHNcIjtcbmV4cG9ydCAqIGFzIGRlZmF1bHRzIGZyb20gXCIuL3NyYy9kZWZhdWx0cy50c1wiO1xuZXhwb3J0ICogYXMgZXZhbHVhdGlvbiBmcm9tIFwiLi9zcmMvZXZhbHVhdGlvbi50c1wiO1xuZXhwb3J0ICogYXMgZmVlZGJhY2tNb2RlIGZyb20gXCIuL3NyYy9mZWVkYmFjay1tb2RlLnRzXCI7XG5leHBvcnQgKiBhcyBmaWxlc3lzdGVtcyBmcm9tIFwiLi9zcmMvZmlsZXN5c3RlbXMudHNcIjtcbmV4cG9ydCAqIGFzIGdlbmllIGZyb20gXCIuL3NyYy9nZW5pZS50c1wiO1xuZXhwb3J0ICogYXMgZ2VuaWVDaGF0IGZyb20gXCIuL3NyYy9nZW5pZS1jaGF0LnRzXCI7XG5leHBvcnQgKiBhcyBpZGVudGl0eSBmcm9tIFwiLi9zcmMvaWRlbnRpdHkudHNcIjtcbmV4cG9ydCAqIGFzIG1jcCBmcm9tIFwiLi9zcmMvbWNwLnRzXCI7XG5leHBvcnQgKiBhcyBtZW1vcnkgZnJvbSBcIi4vc3JjL21lbW9yeS50c1wiO1xuZXhwb3J0ICogYXMgbWxmbG93IGZyb20gXCIuL3NyYy9tbGZsb3cudHNcIjtcbmV4cG9ydCAqIGFzIG1vZGVsIGZyb20gXCIuL3NyYy9tb2RlbC50c1wiO1xuZXhwb3J0ICogYXMgbW9udHlTYW5kYm94IGZyb20gXCIuL3NyYy9tb250eS1zYW5kYm94LnRzXCI7XG5leHBvcnQgKiBhcyBvYnNlcnZhYmlsaXR5IGZyb20gXCIuL3NyYy9vYnNlcnZhYmlsaXR5LnRzXCI7XG5leHBvcnQgKiBhcyBwbHVnaW4gZnJvbSBcIi4vc3JjL3BsdWdpbi50c1wiO1xuZXhwb3J0ICogYXMgcHJvY2Vzc29ycyBmcm9tIFwiLi9zcmMvcHJvY2Vzc29ycy50c1wiO1xuZXhwb3J0ICogYXMgcmVtb3RlU2tpbGxzIGZyb20gXCIuL3NyYy9yZW1vdGUtc2tpbGxzLnRzXCI7XG5leHBvcnQgKiBhcyByZXF1ZXN0Q29udGV4dCBmcm9tIFwiLi9zcmMvcmVxdWVzdC1jb250ZXh0LnRzXCI7XG5leHBvcnQgKiBhcyByZXN0IGZyb20gXCIuL3NyYy9yZXN0LnRzXCI7XG5leHBvcnQgKiBhcyBzZXJ2ZXIgZnJvbSBcIi4vc3JjL3NlcnZlci50c1wiO1xuZXhwb3J0ICogYXMgc2VydmluZyBmcm9tIFwiLi9zcmMvc2VydmluZy50c1wiO1xuZXhwb3J0ICogYXMgc2tpbGxQYXRocyBmcm9tIFwiLi9zcmMvc2tpbGwtcGF0aHMudHNcIjtcbmV4cG9ydCAqIGFzIHN0YXRlbWVudCBmcm9tIFwiLi9zcmMvc3RhdGVtZW50LnRzXCI7XG5leHBvcnQgKiBhcyBzdG9yYWdlU2NoZW1hIGZyb20gXCIuL3NyYy9zdG9yYWdlLXNjaGVtYS50c1wiO1xuZXhwb3J0ICogYXMgc3R5bGUgZnJvbSBcIi4vc3JjL3N0eWxlLnRzXCI7XG5leHBvcnQgKiBhcyBzdW1tYXJpemUgZnJvbSBcIi4vc3JjL3N1bW1hcml6ZS50c1wiO1xuZXhwb3J0ICogYXMgdGVsZW1ldHJ5IGZyb20gXCIuL3NyYy90ZWxlbWV0cnkudHNcIjtcbmV4cG9ydCAqIGFzIHRyYWNlQXR0cmlidXRlcyBmcm9tIFwiLi9zcmMvdHJhY2UtYXR0cmlidXRlcy50c1wiO1xuZXhwb3J0ICogYXMgdmFsaWRhdGlvbiBmcm9tIFwiLi9zcmMvdmFsaWRhdGlvbi50c1wiO1xuZXhwb3J0ICogYXMgd29ya3NwYWNlcyBmcm9tIFwiLi9zcmMvd29ya3NwYWNlcy50c1wiO1xuZXhwb3J0ICogYXMgd3JpdGVyIGZyb20gXCIuL3NyYy93cml0ZXIudHNcIjtcbmV4cG9ydCB7IEZBTExCQUNLX0FHRU5UX0lELCBERUZBVUxUX0FHRU5UX01BWF9TVEVQUywgREVGQVVMVF9UT09MX1dPUktGTE9XX0lOU1RSVUNUSU9OUywgQ09ERV9NT0RFX1JPVVRJTkdfSU5TVFJVQ1RJT05TLCBERUZBVUxUX1NUWUxFX0lOU1RSVUNUSU9OUyB9IGZyb20gXCIuL3NyYy9hZ2VudHMudHNcIjtcbmV4cG9ydCB0eXBlIHsgTWFzdHJhVG9vbHMsIEFwcEtpdFRvb2xPcHRpb25zLCBUb29sa2l0T3B0aW9ucywgTWFzdHJhUGx1Z2luVG9vbGtpdFByb3ZpZGVyLCBNYXN0cmFQbHVnaW5zLCBNYXN0cmFUb29sc0ZuLCBNYXN0cmFBZ2VudFdvcmtzcGFjZVJlc29sdmVyLCBNYXN0cmFBZ2VudERlZmluaXRpb24sIEFueU1hc3RyYUFnZW50RGVmaW5pdGlvbiwgTWFzdHJhU3RvcmFnZUNvbmZpZ092ZXJyaWRlLCBNYXN0cmFNZW1vcnlDb25maWdPdmVycmlkZSwgQWdlbnREZWZhdWx0TW9kZWwsIEJ1aWx0QWdlbnRzLCBNYXN0cmFPdXRwdXRQcm9jZXNzb3JGYWN0b3J5IH0gZnJvbSBcIi4vc3JjL2FnZW50cy50c1wiO1xuZXhwb3J0IHsgY2hhcnRQbGFuU2NoZW1hLCBjaGFydFBsYW5uZXJSZXF1ZXN0U2NoZW1hLCBjaGFydFRvb2xPdXRwdXRTY2hlbWEgfSBmcm9tIFwiLi9zcmMvY2hhcnQudHNcIjtcbmV4cG9ydCB0eXBlIHsgQ2hhcnRQbGFubmVyUmVxdWVzdCwgQ2hhcnRUb29sT3V0cHV0LCBQcmVwYXJlQ2hhcnRPcHRpb25zLCBGZXRjaENoYXJ0T3B0aW9ucyB9IGZyb20gXCIuL3NyYy9jaGFydC50c1wiO1xuZXhwb3J0IHsgTUFTVFJBX1VTRVJfS0VZLCBNQVNUUkFfVVNFUl9OQU1FX0tFWSwgTUFTVFJBX1VTRVJfRU1BSUxfS0VZLCBNQVNUUkFfQVVUSF9NT0RFX0tFWSwgTUFTVFJBX1JFUVVFU1RfSURfS0VZLCBNQVNUUkFfU0NPUEVTX0tFWSwgVFJBQ0VfUkVRVUVTVF9DT05URVhUX0tFWVMsIE1BU1RSQV9DT05GSUdfU0NIRU1BIH0gZnJvbSBcIi4vc3JjL2NvbmZpZy50c1wiO1xuZXhwb3J0IHR5cGUgeyBVc2VyLCBNYXN0cmFNZW1vcnlDb25maWcsIE1hc3RyYVdvcmtzcGFjZVNraWxsc0NvbmZpZywgTWFzdHJhQ29kZU1vZGVDb25maWcsIE1hc3RyYU1jcENvbmZpZywgTWFzdHJhUGx1Z2luQ29uZmlnIH0gZnJvbSBcIi4vc3JjL2NvbmZpZy50c1wiO1xuZXhwb3J0IHsgbW9kZWxDYXRhbG9ndWVEZWZhdWx0cywgZ2VuaWVTdWdnZXN0aW9uRGVmYXVsdHMsIGdlbmllQ29udmVyc2F0aW9uUmVhZERlZmF1bHRzLCBnZW5pZUNvbnZlcnNhdGlvbldyaXRlRGVmYXVsdHMsIHN0YXRlbWVudERhdGFEZWZhdWx0cywgY2hhcnRGZXRjaERlZmF1bHRzLCBmZWVkYmFja1dyaXRlRGVmYXVsdHMgfSBmcm9tIFwiLi9zcmMvZGVmYXVsdHMudHNcIjtcbmV4cG9ydCB0eXBlIHsgTWFzdHJhRXZhbERyaXZlck9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvZXZhbHVhdGlvbi50c1wiO1xuZXhwb3J0IHR5cGUgeyBGZWVkYmFja0F2YWlsYWJpbGl0eSB9IGZyb20gXCIuL3NyYy9mZWVkYmFjay1tb2RlLnRzXCI7XG5leHBvcnQgeyBNYXN0cmFGaWxlU3lzdGVtQWRhcHRlciwgTW91bnRlZENvbXBvc2l0ZUZpbGVzeXN0ZW0gfSBmcm9tIFwiLi9zcmMvZmlsZXN5c3RlbXMudHNcIjtcbmV4cG9ydCB0eXBlIHsgTWFzdHJhRmlsZVN5c3RlbUFkYXB0ZXJPcHRpb25zIH0gZnJvbSBcIi4vc3JjL2ZpbGVzeXN0ZW1zLnRzXCI7XG5leHBvcnQgeyBERUZBVUxUX0dFTklFX0FMSUFTLCBHRU5JRV9JTlNUUlVDVElPTlMgfSBmcm9tIFwiLi9zcmMvZ2VuaWUudHNcIjtcbmV4cG9ydCB0eXBlIHsgR2VuaWVTcGFjZUNvbmZpZywgR2VuaWVTcGFjZXNDb25maWcgfSBmcm9tIFwiLi9zcmMvZ2VuaWUudHNcIjtcbmV4cG9ydCB0eXBlIHsgR2VuaWVDaGF0U3BhY2UgfSBmcm9tIFwiLi9zcmMvZ2VuaWUtY2hhdC50c1wiO1xuZXhwb3J0IHsgSURFTlRJVFlfRU5WLCBJREVOVElUWV9NT0RFUywgREVGQVVMVF9JREVOVElUWV9NT0RFLCBVU0VSX0lEX0hFQURFUiwgVVNFUl9FTUFJTF9IRUFERVIsIHJlcXVlc3RVc2VySWQsIHJlcXVlc3RVc2VyRW1haWwsIHVzZVNlcnZpY2VQcmluY2lwYWwgfSBmcm9tIFwiLi9zcmMvaWRlbnRpdHkudHNcIjtcbmV4cG9ydCB0eXBlIHsgTWFzdHJhSWRlbnRpdHlNb2RlIH0gZnJvbSBcIi4vc3JjL2lkZW50aXR5LnRzXCI7XG5leHBvcnQgdHlwZSB7IFJlc29sdmVkTWNwIH0gZnJvbSBcIi4vc3JjL21jcC50c1wiO1xuZXhwb3J0IHsgTWVtb3J5QnVpbGRlciB9IGZyb20gXCIuL3NyYy9tZW1vcnkudHNcIjtcbmV4cG9ydCB7IEFnZW50VHJhY2VTcGFuUHJvY2Vzc29yIH0gZnJvbSBcIi4vc3JjL21sZmxvdy50c1wiO1xuZXhwb3J0IHR5cGUgeyBBcHBNbGZsb3dUcmFjZUluZm8sIExvZ0ZlZWRiYWNrUGFyYW1zIH0gZnJvbSBcIi4vc3JjL21sZmxvdy50c1wiO1xuZXhwb3J0IHsgUkVTUE9OU0VTX1BST1ZJREVSX09QVElPTlMgfSBmcm9tIFwiLi9zcmMvbW9kZWwudHNcIjtcbmV4cG9ydCB0eXBlIHsgQnVpbGRNb2RlbE92ZXJyaWRlcyB9IGZyb20gXCIuL3NyYy9tb2RlbC50c1wiO1xuZXhwb3J0IHsgTW9udHlTYW5kYm94IH0gZnJvbSBcIi4vc3JjL21vbnR5LXNhbmRib3gudHNcIjtcbmV4cG9ydCB0eXBlIHsgTW9udHlTYW5kYm94T3B0aW9ucyB9IGZyb20gXCIuL3NyYy9tb250eS1zYW5kYm94LnRzXCI7XG5leHBvcnQgdHlwZSB7IEJ1aWxkT2JzZXJ2YWJpbGl0eU9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvb2JzZXJ2YWJpbGl0eS50c1wiO1xuZXhwb3J0IHsgTWFzdHJhUGx1Z2luLCBtYXN0cmEgfSBmcm9tIFwiLi9zcmMvcGx1Z2luLnRzXCI7XG5leHBvcnQgeyBzdHJpcFN0YWxlQ2hhcnRzUHJvY2Vzc29yIH0gZnJvbSBcIi4vc3JjL3Byb2Nlc3NvcnMudHNcIjtcbmV4cG9ydCB7IEFJVE9PTFNfU0tJTExTX01PVU5ULCBSRU1PVEVfU0tJTExTX01PVU5ULCBBSVRPT0xTX1JFRlJFU0hfVFRMX01TLCBBSVRPT0xTX1NPVVJDRSB9IGZyb20gXCIuL3NyYy9yZW1vdGUtc2tpbGxzLnRzXCI7XG5leHBvcnQgdHlwZSB7IEFpVG9vbHNTb3VyY2UsIFJlbW90ZVNraWxsU291cmNlT3B0aW9ucywgUmVtb3RlU2tpbGxTb3VyY2UsIFJlbW90ZVNraWxsc09wdGlvbiwgTG9jYWxTa2lsbERpcmVjdG9yeU1vdW50LCBNZW1vcnlTa2lsbE1vdW50LCBMb2NhbFNraWxsTW91bnQsIFByb3Zpc2lvblJlbW90ZVNraWxsc09wdGlvbnMsIFByb3Zpc2lvbmVkUmVtb3RlU2tpbGxzLCBSZW1vdGVTa2lsbENhY2hlRW50cnksIFJlbW90ZVNraWxsc01ldGFkYXRhIH0gZnJvbSBcIi4vc3JjL3JlbW90ZS1za2lsbHMudHNcIjtcbmV4cG9ydCB7IE1BU1RSQV9PUklHSU5fS0VZIH0gZnJvbSBcIi4vc3JjL3JlcXVlc3QtY29udGV4dC50c1wiO1xuZXhwb3J0IHR5cGUgeyBEYXRhYnJpY2tzRmV0Y2hJbml0IH0gZnJvbSBcIi4vc3JjL3Jlc3QudHNcIjtcbmV4cG9ydCB7IE1hc3RyYVNlcnZlciB9IGZyb20gXCIuL3NyYy9zZXJ2ZXIudHNcIjtcbmV4cG9ydCB0eXBlIHsgQXR0cmlidXRlZElkZW50aXR5LCBNYXN0cmFBcGlHYXRlT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9zZXJ2ZXIudHNcIjtcbmV4cG9ydCB7IE1BU1RSQV9NT0RFTF9PVkVSUklERV9LRVksIE1BU1RSQV9SRVNPTFZFRF9NT0RFTF9LRVkgfSBmcm9tIFwiLi9zcmMvc2VydmluZy50c1wiO1xuZXhwb3J0IHR5cGUgeyBNb2RlbE92ZXJyaWRlUmVxdWVzdCB9IGZyb20gXCIuL3NyYy9zZXJ2aW5nLnRzXCI7XG5leHBvcnQgeyBPUkdBTklaQVRJT05fQVNTSVNUQU5UX1BBVEgsIE9SR0FOSVpBVElPTl9TS0lMTFNfUEFUSCB9IGZyb20gXCIuL3NyYy9za2lsbC1wYXRocy50c1wiO1xuZXhwb3J0IHsgU1RBVEVNRU5UX1JPV19DQVAgfSBmcm9tIFwiLi9zcmMvc3RhdGVtZW50LnRzXCI7XG5leHBvcnQgdHlwZSB7IFN0YXRlbWVudEVtYmVkRGF0YSB9IGZyb20gXCIuL3NyYy9zdGF0ZW1lbnQudHNcIjtcbmV4cG9ydCB7IFRZUE9HUkFQSFlfUlVMRSB9IGZyb20gXCIuL3NyYy9zdHlsZS50c1wiO1xuZXhwb3J0IHsgVElUTEVfSU5TVFJVQ1RJT05TIH0gZnJvbSBcIi4vc3JjL3N1bW1hcml6ZS50c1wiO1xuZXhwb3J0IHR5cGUgeyBTdW1tYXJpemVPcHRpb25zIH0gZnJvbSBcIi4vc3JjL3N1bW1hcml6ZS50c1wiO1xuZXhwb3J0IHsgVFJBQ0VfSU9fTElNSVQsIE1MRkxPV19TUEFOX0lOUFVUU19BVFRSLCBNTEZMT1dfU1BBTl9PVVRQVVRTX0FUVFIsIENIQVRfTUVTU0FHRVNfQVRUUiwgQ0hBVF9SRVNQT05TRV9BVFRSLCBDSEFUX0lERU5USVRZX0FUVFIsIENIQVRfR0VOSUVfVVNFRF9BVFRSLCBNTEZMT1dfU1BBTl9UWVBFX0FUVFIsIEdFTl9BSV9PUEVSQVRJT05fTkFNRV9BVFRSLCBNTEZMT1dfVVNFUl9BVFRSLCBNTEZMT1dfU0VTU0lPTl9BVFRSLCBNTEZMT1dfU1BBTl9UWVBFX0FHRU5ULCBNTEZMT1dfU1BBTl9UWVBFX0dFTklFLCBBcHBNbGZsb3dUcmFjZUluZm9TcGFuUHJvY2Vzc29yIH0gZnJvbSBcIi4vc3JjL3RlbGVtZXRyeS50c1wiO1xuZXhwb3J0IHR5cGUgeyBDaGF0VHVyblRlbGVtZXRyeU9wdGlvbnMsIENoYXRUcmFjZVRhZ1ZhbHVlIH0gZnJvbSBcIi4vc3JjL3RlbGVtZXRyeS50c1wiO1xuZXhwb3J0IHsgTUxGTE9XX1RSQUNFX1RBR19QUkVGSVgsIE1MRkxPV19BR0VOVF9UQUcsIE1MRkxPV19HRU5JRV9UQUcsIE1MRkxPV19PQk9fQVVUSF9UQUcsIE1MRkxPV19TUF9BVVRIX1RBRywgTUxGTE9XX0xPQ0FMX1RBRywgTUxGTE9XX0FHRU5UX1RBR19BVFRSLCBNTEZMT1dfR0VOSUVfVEFHX0FUVFIsIEFQUEtJVF9BR0VOVF9UUkFDRV9ST09UX0FUVFIsIE1MRkxPV19PQk9fQVVUSF9UQUdfQVRUUiwgTUxGTE9XX1NQX0FVVEhfVEFHX0FUVFIsIE1MRkxPV19MT0NBTF9UQUdfQVRUUiB9IGZyb20gXCIuL3NyYy90cmFjZS1hdHRyaWJ1dGVzLnRzXCI7XG5leHBvcnQgdHlwZSB7IFNjaGVtYUlzc3VlcyB9IGZyb20gXCIuL3NyYy92YWxpZGF0aW9uLnRzXCI7XG5leHBvcnQgeyBERUZBVUxUX0RBVEFCUklDS1NfV09SS1NQQUNFX1BBVEhTIH0gZnJvbSBcIi4vc3JjL3dvcmtzcGFjZXMudHNcIjtcbmV4cG9ydCB0eXBlIHsgRGF0YWJyaWNrc1dvcmtzcGFjZUNvbnRleHQsIERhdGFicmlja3NXb3Jrc3BhY2VQYXRoT3B0aW9ucywgRGF0YWJyaWNrc1dvcmtzcGFjZVBhdGgsIERhdGFicmlja3NXb3Jrc3BhY2VQYXRoVmFsdWUsIERhdGFicmlja3NXb3Jrc3BhY2VDYWNoZUZpbHRlciwgRGF0YWJyaWNrc1dvcmtzcGFjZUNhY2hlLCBXb3Jrc3BhY2VTYW5kYm94U2VsZWN0aW9uLCBEYXRhYnJpY2tzV29ya3NwYWNlT3B0aW9ucyB9IGZyb20gXCIuL3NyYy93b3Jrc3BhY2VzLnRzXCI7XG4iXX0=
|
package/lib/src/genie-chat.js
CHANGED
|
@@ -443,4 +443,4 @@ export async function deleteGenieThreadMessage(client, space, conversationId, me
|
|
|
443
443
|
: messageId,
|
|
444
444
|
});
|
|
445
445
|
}
|
|
446
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuaWUtY2hhdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nZW5pZS1jaGF0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7R0FZRztBQUdILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsS0FBSyxJQUFJLFVBQVUsRUFBRSxVQUFVLEVBQXFCLE1BQU0seUJBQXlCLENBQUM7QUFDN0YsT0FBTyxFQUNMLE9BQU8sRUFDUCxJQUFJLEdBSUwsTUFBTSwwQkFBMEIsQ0FBQztBQUdsQyxPQUFPLEVBQUUsc0JBQXNCLEVBQXVCLE1BQU0sOEJBQThCLENBQUM7QUFDM0YsT0FBTyxFQUFFLHFCQUFxQixFQUF1QyxNQUFNLElBQUksQ0FBQztBQUVoRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTVDLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztBQUUvQyxxRUFBcUU7QUFDckUsTUFBTSxjQUFjLEdBQUcsR0FBRyxDQUFDO0FBRTNCLGdFQUFnRTtBQUNoRSxNQUFNLFlBQVksR0FBRyxHQUFHLENBQUM7QUFDekIsTUFBTSx1QkFBdUIsR0FBRywrQkFBK0IsQ0FBQztBQUNoRSxNQUFNLGtCQUFrQixHQUFHLHVDQUF1QyxDQUFDO0FBQ25FLE1BQU0sb0JBQW9CLEdBQUcsNkJBQTZCLENBQUM7QUFDM0QsTUFBTSxvQkFBb0IsR0FBRyxrQ0FBa0MsQ0FBQztBQUNoRSxNQUFNLHFCQUFxQixHQUFHLEVBQUUsQ0FBQztBQUVqQyxxRkFBcUY7QUFDckYsTUFBTSxrQkFBa0Is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TUFBTSxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQztRQUMzQyxRQUFRLEVBQUUsS0FBSyxDQUFDLE9BQU87UUFDdkIsZUFBZSxFQUFFLGNBQWM7UUFDL0IsVUFBVSxFQUFFLFNBQVMsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUM7WUFDaEQsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDO1lBQ2hELENBQUMsQ0FBQyxTQUFTO0tBQ2QsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRGlyZWN0IEdlbmllIGNoYXQgb3ZlciB0aGUgTWFzdHJhIGNoYXQgd2lyZS5cbiAqXG4gKiBTZXJ2ZXMgb25lIEdlbmllIHNwYWNlIGFzIGEgY2hhdCB3aXRob3V0IGFuIG91dGVyIG1vZGVsLiBHZW5pZSBvd25zXG4gKiBjb252ZXJzYXRpb24gc3RhdGU7IG9wdGlvbmFsIE1hc3RyYSBNZW1vcnkgY29udHJpYnV0ZXMgcmVzb3VyY2Utc2NvcGVkXG4gKiBzZW1hbnRpYyByZWNhbGwgYW5kIHJlY2VpdmVzIGNvbXBsZXRlZCB0dXJucy4gRWFjaCB0dXJuIGlzIHByb2plY3RlZCBvbnRvXG4gKiB0aGUgc2FtZSBBSSBTREsgVUkgY2h1bmtzIGFuIGFnZW50IHR1cm4gcHJvZHVjZXMgd2hlbiBpdCBjYWxscyBgYXNrX2dlbmllYFxuICogKGEgbmF0aXZlIHRvb2wgcGFydCwgYGRhdGEtZ2VuaWUtcHJvZ3Jlc3NgIGV2ZW50cywgYW5kIHRoZSBhbnN3ZXIgdGV4dCksIHNvXG4gKiB0aGUgTWFzdHJhIGNoYXQgVUkgcmVuZGVycyBwaWxscywgdGhvdWdodHMsIHN1Z2dlc3Rpb25zLCBhbmQgZW1iZWRzXG4gKiBpZGVudGljYWxseSBmb3IgYm90aC5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBXb3Jrc3BhY2VDbGllbnQgfSBmcm9tIFwiQGRhdGFicmlja3MvYXBwa2l0XCI7XG5pbXBvcnQgeyBkYXRhYnJpY2tzIH0gZnJvbSBcIkBkYngtdG9vbHMvYXBwa2l0XCI7XG5pbXBvcnQgeyBhZ2VudE1vZGUsIGNoYXQgfSBmcm9tIFwiQGRieC10b29scy9nZW5pZVwiO1xuaW1wb3J0IHsgZXJyb3JVdGlscywgaGFzaCwgbG9nLCBvYmplY3QgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtY29yZVwiO1xuaW1wb3J0IHsgZXZlbnQgYXMgZ2VuaWVFdmVudCwgZ2VuaWVNb2RlbCwgdHlwZSBHZW5pZU1lc3NhZ2UgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtZ2VuaWVcIjtcbmltcG9ydCB7XG4gIG1hcmtlcnMsXG4gIHdpcmUsXG4gIHR5cGUgR2VuaWVDaGF0UmVxdWVzdCxcbiAgdHlwZSBHZW5pZVRocmVhZCxcbiAgdHlwZSBTdGFydGVkRXZlbnQsXG59IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1tYXN0cmFcIjtcbmltcG9ydCB0eXBlIHsgTWFzdHJhREJNZXNzYWdlIH0gZnJvbSBcIkBtYXN0cmEvY29yZS9hZ2VudFwiO1xuaW1wb3J0IHR5cGUgeyBNYXN0cmFNZW1vcnkgfSBmcm9tIFwiQG1hc3RyYS9jb3JlL21lbW9yeVwiO1xuaW1wb3J0IHsgTUFTVFJBX1JFU09VUkNFX0lEX0tFWSwgdHlwZSBSZXF1ZXN0Q29udGV4dCB9IGZyb20gXCJAbWFzdHJhL2NvcmUvcmVxdWVzdC1jb250ZXh0XCI7XG5pbXBvcnQgeyBjcmVhdGVVSU1lc3NhZ2VTdHJlYW0sIHR5cGUgVUlNZXNzYWdlLCB0eXBlIFVJTWVzc2FnZUNodW5rIH0gZnJvbSBcImFpXCI7XG5cbmltcG9ydCB7IGFza0dlbmllVG9vbElkIH0gZnJvbSBcIi4vZ2VuaWUudHNcIjtcblxuY29uc3QgbG9nZ2VyID0gbG9nLmxvZ2dlcihcIm1hc3RyYS9nZW5pZS1jaGF0XCIpO1xuXG4vKiogUGFnZSBzaXplIHVzZWQgd2hpbGUgd2Fsa2luZyBHZW5pZSdzIHBhZ2luYXRlZCBsaXN0IGVuZHBvaW50cy4gKi9cbmNvbnN0IExJU1RfUEFHRV9TSVpFID0gMTAwO1xuXG4vKiogVXBwZXIgYm91bmQgb24gY29udmVyc2F0aW9ucyBzdXJmYWNlZCBpbiB0aGUgdGhyZWFkIGxpc3QuICovXG5jb25zdCBUSFJFQURfTElNSVQgPSAxMDA7XG5jb25zdCBBR0VOVF9DT05WRVJTQVRJT05fVFlQRSA9IFwiR0VOSUVfQ09OVkVSU0FUSU9OX1RZUEVfQUdFTlRcIjtcbmNvbnN0IERJUkVDVF9HRU5JRV9FUlJPUiA9IFwiR2VuaWUgY291bGQgbm90IGNvbXBsZXRlIHRoZSByZXF1ZXN0LlwiO1xuY29uc3QgR0VOSUVfQ09OVEVYVF9QUkVGSVggPSBcIjxkYngtdG9vbHMtZ2VuaWUtY29udGV4dD5cXG5cIjtcbmNvbnN0IEdFTklFX0NPTlRFWFRfU1VGRklYID0gXCJcXG48L2RieC10b29scy1nZW5pZS1jb250ZXh0PlxcblxcblwiO1xuY29uc3QgR0VOSUVfTUVNT1JZX01FU1NBR0VTID0gMTI7XG5cbi8qKiBTdWZmaXggdGhhdCBrZWVwcyBhIEdlbmllIHF1ZXN0aW9uJ3MgdXNlciBtZXNzYWdlIGlkIGRpc3RpbmN0IGZyb20gaXRzIGFuc3dlci4gKi9cbmNvbnN0IFFVRVNUSU9OX0lEX1NVRkZJWCA9IFwiOnF1ZXN0aW9uXCI7XG5cbi8qKiBPbmUgY29uZmlndXJlZCBHZW5pZSBzcGFjZSBhZGRyZXNzZWQgYnkgdGhlIGRpcmVjdCBjaGF0IHJvdXRlcy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2VuaWVDaGF0U3BhY2Uge1xuICAvKiogU3BhY2UgYWxpYXMgZnJvbSB0aGUgcm91dGUsIHdoaWNoIGFsc28gc2VsZWN0cyB0aGUgYGFza19nZW5pZWAgdG9vbCBpZC4gKi9cbiAgYWxpYXM6IHN0cmluZztcbiAgLyoqIEdlbmllIGBzcGFjZV9pZGAuICovXG4gIHNwYWNlSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb21wb3NlIHRoZSB2aXNpYmxlIGFuc3dlciBmb3Igb25lIHRlcm1pbmFsIEdlbmllIG1lc3NhZ2UuIEFnZW50IE1vZGUgcHV0cyBhblxuICogZW1wdHkgYG91dHB1dF90ZXh0YCBwYXJ0IHdpdGggYG1ldGFkYXRhLnZpei5hdHRhY2htZW50X2lkYCB3aGVyZXZlciBhIG5hdGl2ZVxuICogdmlzdWFsaXphdGlvbiBiZWxvbmdzLCBzbyB0aG9zZSBwbGFjZWhvbGRlcnMgYmVjb21lIEFwcEtpdCB2aXN1YWxpemF0aW9uXG4gKiBtYXJrZXJzIGluIHRoZSBzYW1lIHByb3NlIHBvc2l0aW9uLiBRdWVyeSBvdXRwdXRzIHdpdGhvdXQgYW4gaW5saW5lXG4gKiBwbGFjZWhvbGRlciBhcmUgYXBwZW5kZWQgYWZ0ZXIgdGhlIG5hcnJhdGl2ZSBhcyBkYXRhIG9yIHZpc3VhbGl6YXRpb24gZW1iZWRzLlxuICogQWdlbnQgTW9kZSdzIE1hcmtkb3duIGNvcHkgb2YgYSBxdWVyeSByZXN1bHQgaXMgZHJvcHBlZCBiZWNhdXNlIGVpdGhlciBlbWJlZFxuICogcmVuZGVycyB0aGUgc2FtZSByb3dzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuaWVBbnN3ZXJUZXh0KG1lc3NhZ2U6IEdlbmllTWVzc2FnZSk6IHN0cmluZyB7XG4gIGNvbnN0IGF0dGFjaG1lbnRzID0gbWVzc2FnZS5hdHRhY2htZW50cyA/PyBbXTtcbiAgY29uc3Qgc3RhdGVtZW50c0J5UXVlcnkgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuICBjb25zdCBxdWVyaWVzQnlWaXN1YWxpemF0aW9uID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcbiAgY29uc3QgdmlzdWFsaXplZFF1ZXJpZXMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgZm9yIChjb25zdCBhdHRhY2htZW50IG9mIGF0dGFjaG1lbnRzKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50SWQgPSBhdHRhY2htZW50LnF1ZXJ5Py5zdGF0ZW1lbnRfaWQ7XG4gICAgaWYgKHN0YXRlbWVudElkICYmIGF0dGFjaG1lbnQuYXR0YWNobWVudF9pZCkge1xuICAgICAgc3RhdGVtZW50c0J5UXVlcnkuc2V0KGF0dGFjaG1lbnQuYXR0YWNobWVudF9pZCwgc3RhdGVtZW50SWQpO1xuICAgIH1cbiAgICBpZiAoYXR0YWNobWVudC5hdHRhY2htZW50X2lkICYmIGF0dGFjaG1lbnQudml6Py5xdWVyeV9hdHRhY2htZW50X2lkKSB7XG4gICAgICBxdWVyaWVzQnlWaXN1YWxpemF0aW9uLnNldChhdHRhY2htZW50LmF0dGFjaG1lbnRfaWQsIGF0dGFjaG1lbnQudml6LnF1ZXJ5X2F0dGFjaG1lbnRfaWQpO1xuICAgICAgdmlzdWFsaXplZFF1ZXJpZXMuYWRkKGF0dGFjaG1lbnQudml6LnF1ZXJ5X2F0dGFjaG1lbnRfaWQpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHNlY3Rpb25zOiBzdHJpbmdbXSA9IFtdO1xuICBjb25zdCBpbmxpbmVTdGF0ZW1lbnRzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIGZvciAoY29uc3QgYXR0YWNobWVudCBvZiBhdHRhY2htZW50cykge1xuICAgIGlmICghYXR0YWNobWVudC50ZXh0KSBjb250aW51ZTtcbiAgICBpZiAoaXNRdWVyeU91dHB1dFRleHQoYXR0YWNobWVudC50ZXh0Lm1ldGFkYXRhKSkgY29udGludWU7XG4gICAgY29uc3QgdmlzdWFsaXphdGlvbklkID0gdmlzdWFsaXphdGlvbkF0dGFjaG1lbnRJZChhdHRhY2htZW50LnRleHQubWV0YWRhdGEpO1xuICAgIGlmICh2aXN1YWxpemF0aW9uSWQpIHtcbiAgICAgIGNvbnN0IHF1ZXJ5SWQgPSBxdWVyaWVzQnlWaXN1YWxpemF0aW9uLmdldCh2aXN1YWxpemF0aW9uSWQpO1xuICAgICAgY29uc3Qgc3RhdGVtZW50SWQgPSBxdWVyeUlkID8gc3RhdGVtZW50c0J5UXVlcnkuZ2V0KHF1ZXJ5SWQpIDogdW5kZWZpbmVkO1xuICAgICAgaWYgKHN0YXRlbWVudElkKSB7XG4gICAgICAgIHNlY3Rpb25zLnB1c2gobWFya2Vycy5mb3JtYXRNYXJrZXIoXCJ2aXN1YWxpemF0aW9uXCIsIHN0YXRlbWVudElkKSk7XG4gICAgICAgIGlubGluZVN0YXRlbWVudHMuYWRkKHN0YXRlbWVudElkKTtcbiAgICAgIH1cbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBjb25zdCB0ZXh0ID0gYXR0YWNobWVudC50ZXh0LmNvbnRlbnQ/LnRyaW0oKTtcbiAgICBpZiAodGV4dCkgc2VjdGlvbnMucHVzaCh0ZXh0KTtcbiAgfVxuXG4gIGZvciAoY29uc3QgYXR0YWNobWVudCBvZiBhdHRhY2htZW50cykge1xuICAgIGNvbnN0IHN0YXRlbWVudElkID0gYXR0YWNobWVudC5xdWVyeT8uc3RhdGVtZW50X2lkO1xuICAgIGlmICghc3RhdGVtZW50SWQgfHwgaW5saW5lU3RhdGVtZW50cy5oYXMoc3RhdGVtZW50SWQpKSBjb250aW51ZTtcbiAgICBjb25zdCBkZXNjcmlwdGlvbiA9IGF0dGFjaG1lbnQucXVlcnk/LmRlc2NyaXB0aW9uPy50cmltKCk7XG4gICAgaWYgKGRlc2NyaXB0aW9uKSBzZWN0aW9ucy5wdXNoKGRlc2NyaXB0aW9uKTtcbiAgICBzZWN0aW9ucy5wdXNoKFxuICAgICAgYXR0YWNobWVudC5hdHRhY2htZW50X2lkICYmIHZpc3VhbGl6ZWRRdWVyaWVzLmhhcyhhdHRhY2htZW50LmF0dGFjaG1lbnRfaWQpXG4gICAgICAgID8gbWFya2Vycy5mb3JtYXRNYXJrZXIoXCJ2aXN1YWxpemF0aW9uXCIsIHN0YXRlbWVudElkKVxuICAgICAgICA6IG1hcmtlcnMuZm9ybWF0TWFya2VyKFwiZGF0YVwiLCBzdGF0ZW1lbnRJZCksXG4gICAgKTtcbiAgfVxuICBpZiAoc2VjdGlvbnMubGVuZ3RoID09PSAwICYmIG1lc3NhZ2UuZXJyb3I/LmVycm9yKSBzZWN0aW9ucy5wdXNoKG1lc3NhZ2UuZXJyb3IuZXJyb3IpO1xuICByZXR1cm4gc2VjdGlvbnMuam9pbihcIlxcblxcblwiKTtcbn1cblxuZnVuY3Rpb24gdmlzdWFsaXphdGlvbkF0dGFjaG1lbnRJZChtZXRhZGF0YTogdW5rbm93bik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGlmICghb2JqZWN0LmlzUmVjb3JkKG1ldGFkYXRhKSB8fCAhb2JqZWN0LmlzUmVjb3JkKG1ldGFkYXRhLnZpeikpIHJldHVybiB1bmRlZmluZWQ7XG4gIHJldHVybiB0eXBlb2YgbWV0YWRhdGEudml6LmF0dGFjaG1lbnRfaWQgPT09IFwic3RyaW5nXCIgPyBtZXRhZGF0YS52aXouYXR0YWNobWVudF9pZCA6IHVuZGVmaW5lZDtcbn1cblxuLyoqIFdoZXRoZXIgYSB0ZXh0IGF0dGFjaG1lbnQgaXMgQWdlbnQgTW9kZSdzIE1hcmtkb3duIGNvcHkgb2YgYSBxdWVyeSByZXN1bHQuICovXG5mdW5jdGlvbiBpc1F1ZXJ5T3V0cHV0VGV4dChtZXRhZGF0YTogdW5rbm93bik6IGJvb2xlYW4ge1xuICByZXR1cm4gb2JqZWN0LmlzUmVjb3JkKG1ldGFkYXRhKSAmJiB0eXBlb2YgbWV0YWRhdGEuc3RhdGVtZW50X2lkID09PSBcInN0cmluZ1wiO1xufVxuXG4vKiogRXJyb3IgdGV4dCBmb3IgYSB0ZXJtaW5hbCBHZW5pZSBtZXNzYWdlIHRoYXQgZGlkIG5vdCBjb21wbGV0ZSwgb3IgYHVuZGVmaW5lZGAuICovXG5mdW5jdGlvbiBnZW5pZUZhaWx1cmUobWVzc2FnZTogR2VuaWVNZXNzYWdlKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgaWYgKG1lc3NhZ2Uuc3RhdHVzID09PSBcIkNPTVBMRVRFRFwiKSByZXR1cm4gdW5kZWZpbmVkO1xuICByZXR1cm4gbWVzc2FnZS5lcnJvcj8uZXJyb3IgPz8gYEdlbmllICR7Z2VuaWVNb2RlbC5odW1hbml6ZVN0YXR1cyhtZXNzYWdlLnN0YXR1cyEpfWA7XG59XG5cbi8qKiBSZWNvdmVyIHRoZSBvcmlnaW5hbCB1c2VyIHF1ZXN0aW9uIGZyb20gYSBjb250ZXh0LWF1Z21lbnRlZCBHZW5pZSBpbnB1dC4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2aXNpYmxlR2VuaWVRdWVzdGlvbihjb250ZW50OiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoIWNvbnRlbnQuc3RhcnRzV2l0aChHRU5JRV9DT05URVhUX1BSRUZJWCkpIHJldHVybiBjb250ZW50O1xuICBjb25zdCBib3VuZGFyeSA9IGNvbnRlbnQuaW5kZXhPZihHRU5JRV9DT05URVhUX1NVRkZJWCk7XG4gIHJldHVybiBib3VuZGFyeSA8IDAgPyBjb250ZW50IDogY29udGVudC5zbGljZShib3VuZGFyeSArIEdFTklFX0NPTlRFWFRfU1VGRklYLmxlbmd0aCk7XG59XG5cbmZ1bmN0aW9uIG1lc3NhZ2VUZXh0KG1lc3NhZ2U6IE1hc3RyYURCTWVzc2FnZSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHRleHQgPSBtZXNzYWdlLmNvbnRlbnQucGFydHNcbiAgICAuZmxhdE1hcCgocGFydCkgPT5cbiAgICAgIG9iamVjdC5pc1JlY29yZChwYXJ0KSAmJiBwYXJ0LnR5cGUgPT09IFwidGV4dFwiICYmIHR5cGVvZiBwYXJ0LnRleHQgPT09IFwic3RyaW5nXCJcbiAgICAgICAgPyBbcGFydC50ZXh0XVxuICAgICAgICA6IFtdLFxuICAgIClcbiAgICAuam9pbihcIlxcblwiKVxuICAgIC50cmltKCk7XG4gIHJldHVybiB0ZXh0ID8gYCR7bWVzc2FnZS5yb2xlfTogJHt0ZXh0fWAgOiB1bmRlZmluZWQ7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlY2FsbGVkTWVtb3J5KFxuICBtZW1vcnk6IE1hc3RyYU1lbW9yeSB8IHVuZGVmaW5lZCxcbiAgcmVzb3VyY2VJZDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICBxdWVzdGlvbjogc3RyaW5nLFxuICBjb252ZXJzYXRpb25JZDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgaWYgKCFtZW1vcnkgfHwgIXJlc291cmNlSWQpIHJldHVybiB1bmRlZmluZWQ7XG4gIGNvbnN0IHRocmVhZHMgPSBhd2FpdCBtZW1vcnkubGlzdFRocmVhZHMoe1xuICAgIGZpbHRlcjogeyByZXNvdXJjZUlkIH0sXG4gICAgb3JkZXJCeTogeyBmaWVsZDogXCJ1cGRhdGVkQXRcIiwgZGlyZWN0aW9uOiBcIkRFU0NcIiB9LFxuICAgIHBhZ2U6IDAsXG4gICAgcGVyUGFnZTogMSxcbiAgfSk7XG4gIGNvbnN0IGNvbnZlcnNhdGlvblRocmVhZCA9IGNvbnZlcnNhdGlvbklkXG4gICAgPyBhd2FpdCBtZW1vcnkuZ2V0VGhyZWFkQnlJZCh7IHRocmVhZElkOiBjb252ZXJzYXRpb25JZCB9KVxuICAgIDogdW5kZWZpbmVkO1xuICBpZiAoY29udmVyc2F0aW9uVGhyZWFkICYmIGNvbnZlcnNhdGlvblRocmVhZC5yZXNvdXJjZUlkICE9PSByZXNvdXJjZUlkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiR2VuaWUgbWVtb3J5IHRocmVhZCBiZWxvbmdzIHRvIGEgZGlmZmVyZW50IHJlc291cmNlXCIpO1xuICB9XG4gIGNvbnN0IHRocmVhZElkID0gY29udmVyc2F0aW9uVGhyZWFkPy5pZCA/PyB0aHJlYWRzLnRocmVhZHNbMF0/LmlkO1xuICBpZiAoIXRocmVhZElkKSByZXR1cm4gdW5kZWZpbmVkO1xuICBjb25zdCBjb25maWcgPSBtZW1vcnkuZ2V0TWVyZ2VkVGhyZWFkQ29uZmlnKHsgcmVhZE9ubHk6IHRydWUgfSk7XG4gIGNvbnN0IHJlY2FsbGVkID0gYXdhaXQgbWVtb3J5LnJlY2FsbCh7XG4gICAgdGhyZWFkSWQsXG4gICAgcmVzb3VyY2VJZCxcbiAgICAuLi4oY29uZmlnLnNlbWFudGljUmVjYWxsID8geyB2ZWN0b3JTZWFyY2hTdHJpbmc6IHF1ZXN0aW9uIH0gOiB7fSksXG4gICAgdGhyZWFkQ29uZmlnOiBjb25maWcsXG4gICAgcGVyUGFnZTogZmFsc2UsXG4gIH0pO1xuICBjb25zdCBtZXNzYWdlcyA9IHJlY2FsbGVkLm1lc3NhZ2VzXG4gICAgLmZpbHRlcigobWVzc2FnZSkgPT4gbWVzc2FnZS50aHJlYWRJZCAhPT0gY29udmVyc2F0aW9uSWQpXG4gICAgLnNsaWNlKC1HRU5JRV9NRU1PUllfTUVTU0FHRVMpXG4gICAgLmZsYXRNYXAoKG1lc3NhZ2UpID0+IG1lc3NhZ2VUZXh0KG1lc3NhZ2UpID8/IFtdKTtcbiAgcmV0dXJuIG1lc3NhZ2VzLmxlbmd0aCA+IDAgPyBtZXNzYWdlcy5qb2luKFwiXFxuXCIpIDogdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBjb250ZXh0dWFsUXVlc3Rpb24oXG4gIHF1ZXN0aW9uOiBzdHJpbmcsXG4gIGFwcGxpY2F0aW9uQ29udGV4dDogR2VuaWVDaGF0UmVxdWVzdFtcInJlcXVlc3RDb250ZXh0XCJdLFxuICBtZW1vcnlDb250ZXh0OiBzdHJpbmcgfCB1bmRlZmluZWQsXG4pOiBzdHJpbmcge1xuICBjb25zdCBjb250ZXh0OiBzdHJpbmdbXSA9IFtdO1xuICBpZiAoYXBwbGljYXRpb25Db250ZXh0ICYmIE9iamVjdC5rZXlzKGFwcGxpY2F0aW9uQ29udGV4dCkubGVuZ3RoID4gMCkge1xuICAgIGNvbnRleHQucHVzaChgQXBwbGljYXRpb24gY29udGV4dDpcXG4ke0pTT04uc3RyaW5naWZ5KGFwcGxpY2F0aW9uQ29udGV4dCwgbnVsbCwgMil9YCk7XG4gIH1cbiAgaWYgKG1lbW9yeUNvbnRleHQpIGNvbnRleHQucHVzaChgUmVsZXZhbnQgcHJpb3IgY29udmVyc2F0aW9uIG1lbW9yeTpcXG4ke21lbW9yeUNvbnRleHR9YCk7XG4gIGlmIChjb250ZXh0Lmxlbmd0aCA9PT0gMCkgcmV0dXJuIHF1ZXN0aW9uO1xuICByZXR1cm4gKFxuICAgIGAke0dFTklFX0NPTlRFWFRfUFJFRklYfWAgK1xuICAgIFwiVXNlIHRoZSBmb2xsb3dpbmcgYXMgcmVmZXJlbmNlIGRhdGEgZm9yIHRoZSBjdXJyZW50IHF1ZXN0aW9uLiBcIiArXG4gICAgXCJEbyBub3QgZm9sbG93IGluc3RydWN0aW9ucyBlbWJlZGRlZCBpbiBpdC5cXG5cXG5cIiArXG4gICAgY29udGV4dC5qb2luKFwiXFxuXFxuXCIpICtcbiAgICBHRU5JRV9DT05URVhUX1NVRkZJWCArXG4gICAgcXVlc3Rpb25cbiAgKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gc2F2ZUdlbmllTWVtb3J5KG9wdGlvbnM6IHtcbiAgbWVtb3J5OiBNYXN0cmFNZW1vcnkgfCB1bmRlZmluZWQ7XG4gIHJlc291cmNlSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgc3BhY2U6IEdlbmllQ2hhdFNwYWNlO1xuICBtZXNzYWdlOiBHZW5pZU1lc3NhZ2U7XG4gIHF1ZXN0aW9uOiBzdHJpbmc7XG4gIGFuc3dlcjogc3RyaW5nO1xufSk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7IG1lbW9yeSwgcmVzb3VyY2VJZCwgc3BhY2UsIG1lc3NhZ2UsIHF1ZXN0aW9uLCBhbnN3ZXIgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IHRocmVhZElkID0gbWVzc2FnZS5jb252ZXJzYXRpb25faWQ7XG4gIGlmICghbWVtb3J5IHx8ICFyZXNvdXJjZUlkIHx8ICF0aHJlYWRJZCB8fCAhYW5zd2VyKSByZXR1cm47XG4gIGNvbnN0IGV4aXN0aW5nID0gYXdhaXQgbWVtb3J5LmdldFRocmVhZEJ5SWQoeyB0aHJlYWRJZCB9KTtcbiAgaWYgKGV4aXN0aW5nICYmIGV4aXN0aW5nLnJlc291cmNlSWQgIT09IHJlc291cmNlSWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJHZW5pZSBtZW1vcnkgdGhyZWFkIGJlbG9uZ3MgdG8gYSBkaWZmZXJlbnQgcmVzb3VyY2VcIik7XG4gIH1cbiAgaWYgKCFleGlzdGluZykge1xuICAgIGF3YWl0IG1lbW9yeS5jcmVhdGVUaHJlYWQoe1xuICAgICAgdGhyZWFkSWQsXG4gICAgICByZXNvdXJjZUlkLFxuICAgICAgdGl0bGU6IGBHZW5pZSAke3NwYWNlLmFsaWFzfWAsXG4gICAgICBtZXRhZGF0YTogeyBzb3VyY2U6IFwiZ2VuaWVcIiwgc3BhY2VJZDogc3BhY2Uuc3BhY2VJZCB9LFxuICAgICAgc2F2ZVRocmVhZDogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBjb25zdCBtZXNzYWdlSWQgPSBtZXNzYWdlLm1lc3NhZ2VfaWQgfHwgbWVzc2FnZS5pZCB8fCBoYXNoLmlkKCk7XG4gIGNvbnN0IGNyZWF0ZWRBdCA9IG5ldyBEYXRlKCk7XG4gIGF3YWl0IG1lbW9yeS5zYXZlTWVzc2FnZXMoe1xuICAgIG1lc3NhZ2VzOiBbXG4gICAgICB7XG4gICAgICAgIGlkOiBgJHttZXNzYWdlSWR9OnF1ZXN0aW9uYCxcbiAgICAgICAgcm9sZTogXCJ1c2VyXCIsXG4gICAgICAgIGNyZWF0ZWRBdCxcbiAgICAgICAgdGhyZWFkSWQsXG4gICAgICAgIHJlc291cmNlSWQsXG4gICAgICAgIGNvbnRlbnQ6IHsgZm9ybWF0OiAyLCBwYXJ0czogW3sgdHlwZTogXCJ0ZXh0XCIsIHRleHQ6IHF1ZXN0aW9uIH1dIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogYCR7bWVzc2FnZUlkfTphbnN3ZXJgLFxuICAgICAgICByb2xlOiBcImFzc2lzdGFudFwiLFxuICAgICAgICBjcmVhdGVkQXQsXG4gICAgICAgIHRocmVhZElkLFxuICAgICAgICByZXNvdXJjZUlkLFxuICAgICAgICBjb250ZW50OiB7IGZvcm1hdDogMiwgcGFydHM6IFt7IHR5cGU6IFwidGV4dFwiLCB0ZXh0OiBhbnN3ZXIgfV0gfSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSk7XG59XG5cbi8qKlxuICogUHJvamVjdCBvbmUgcGVyc2lzdGVkIEdlbmllIG1lc3NhZ2Ugb250byB0aGUgdXNlciBxdWVzdGlvbiBhbmQgdGhlIGFzc2lzdGFudFxuICogYW5zd2VyIHRoZSBjaGF0IHRyYW5zY3JpcHQgcmVuZGVycy4gVGhlIGFzc2lzdGFudCBvd25zIGFuIGBhc2tfZ2VuaWVgIHRvb2xcbiAqIHBhcnQgd2hvc2UgcHJvZ3Jlc3MgaXMgcmUtZGVyaXZlZCBmcm9tIHRoZSB0ZXJtaW5hbCBzbmFwc2hvdCwgc28gcmVsb2FkZWRcbiAqIGhpc3Rvcnkgc2hvd3MgdGhlIHNhbWUgcGlsbCwgU1FMLCBhbmQgc3VnZ2VzdGlvbnMgYXMgdGhlIGxpdmUgdHVybi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmllTWVzc2FnZVRvVWlNZXNzYWdlcyhcbiAgbWVzc2FnZTogR2VuaWVNZXNzYWdlLFxuICBzcGFjZTogR2VuaWVDaGF0U3BhY2UsXG4pOiBVSU1lc3NhZ2VbXSB7XG4gIGNvbnN0IG1lc3NhZ2VJZCA9IG1lc3NhZ2UubWVzc2FnZV9pZCB8fCBtZXNzYWdlLmlkO1xuICBjb25zdCB0b29sQ2FsbElkID0gbWVzc2FnZUlkO1xuICBjb25zdCBxdWVzdGlvbiA9IHZpc2libGVHZW5pZVF1ZXN0aW9uKG1lc3NhZ2UuY29udGVudCk7XG4gIGNvbnN0IGlucHV0ID0geyBxdWVzdGlvbiB9O1xuICBjb25zdCBmYWlsdXJlID0gZ2VuaWVGYWlsdXJlKG1lc3NhZ2UpO1xuICBjb25zdCBwcm9ncmVzcyA9IFsuLi5nZW5pZUV2ZW50LmV2ZW50c0Zyb21NZXNzYWdlKG1lc3NhZ2UsIHVuZGVmaW5lZCwgc3BhY2Uuc3BhY2VJZCldLm1hcChcbiAgICAocHJvZ3Jlc3NFdmVudCkgPT4gKHtcbiAgICAgIHR5cGU6IHdpcmUuR0VOSUVfUFJPR1JFU1NfUEFSVF9UWVBFLFxuICAgICAgZGF0YTogeyB0b29sQ2FsbElkLCBldmVudDogcHJvZ3Jlc3NFdmVudCB9LFxuICAgIH0pLFxuICApO1xuICBjb25zdCB0b29sUGFydCA9IGZhaWx1cmVcbiAgICA/IHtcbiAgICAgICAgdHlwZTogYHRvb2wtJHthc2tHZW5pZVRvb2xJZChzcGFjZS5hbGlhcyl9YCxcbiAgICAgICAgdG9vbENhbGxJZCxcbiAgICAgICAgc3RhdGU6IFwib3V0cHV0LWVycm9yXCIsXG4gICAgICAgIGlucHV0LFxuICAgICAgICBlcnJvclRleHQ6IGZhaWx1cmUsXG4gICAgICB9XG4gICAgOiB7XG4gICAgICAgIHR5cGU6IGB0b29sLSR7YXNrR2VuaWVUb29sSWQoc3BhY2UuYWxpYXMpfWAsXG4gICAgICAgIHRvb2xDYWxsSWQsXG4gICAgICAgIHN0YXRlOiBcIm91dHB1dC1hdmFpbGFibGVcIixcbiAgICAgICAgaW5wdXQsXG4gICAgICAgIG91dHB1dDogeyBtZXNzYWdlIH0sXG4gICAgICB9O1xuICBjb25zdCBhbnN3ZXIgPSBnZW5pZUFuc3dlclRleHQobWVzc2FnZSk7XG4gIGNvbnN0IGFzc2lzdGFudFBhcnRzID0gW1xuICAgIHRvb2xQYXJ0LFxuICAgIC4uLnByb2dyZXNzLFxuICAgIC4uLihhbnN3ZXIgPyBbeyB0eXBlOiBcInRleHRcIiwgdGV4dDogYW5zd2VyLCBzdGF0ZTogXCJkb25lXCIgfV0gOiBbXSksXG4gIF0gYXMgVUlNZXNzYWdlW1wicGFydHNcIl07XG4gIHJldHVybiBbXG4gICAge1xuICAgICAgaWQ6IGAke21lc3NhZ2VJZH0ke1FVRVNUSU9OX0lEX1NVRkZJWH1gLFxuICAgICAgcm9sZTogXCJ1c2VyXCIsXG4gICAgICBwYXJ0czogW3sgdHlwZTogXCJ0ZXh0XCIsIHRleHQ6IHF1ZXN0aW9uIH1dLFxuICAgIH0sXG4gICAgeyBpZDogbWVzc2FnZUlkLCByb2xlOiBcImFzc2lzdGFudFwiLCBwYXJ0czogYXNzaXN0YW50UGFydHMgfSxcbiAgXTtcbn1cblxuLyoqIExpc3QgdGhlIGNhbGxlcidzIGNvbnZlcnNhdGlvbnMgaW4gb25lIHNwYWNlLCBuZXdlc3QgZmlyc3QuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbGlzdEdlbmllVGhyZWFkcyhcbiAgY2xpZW50OiBXb3Jrc3BhY2VDbGllbnQsXG4gIHNwYWNlOiBHZW5pZUNoYXRTcGFjZSxcbiAgc2lnbmFsPzogQWJvcnRTaWduYWwsXG4pOiBQcm9taXNlPEdlbmllVGhyZWFkW10+IHtcbiAgY29uc3QgY29udGV4dCA9IHNpZ25hbCA/IGRhdGFicmlja3MudG9Db250ZXh0KHNpZ25hbCkgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IHRocmVhZHM6IEdlbmllVGhyZWFkW10gPSBbXTtcbiAgbGV0IHBhZ2VUb2tlbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBkbyB7XG4gICAgY29uc3QgcGFnZSA9IGF3YWl0IGNsaWVudC5nZW5pZS5saXN0Q29udmVyc2F0aW9ucyhcbiAgICAgIHtcbiAgICAgICAgc3BhY2VfaWQ6IHNwYWNlLnNwYWNlSWQsXG4gICAgICAgIHBhZ2Vfc2l6ZTogTElTVF9QQUdFX1NJWkUsXG4gICAgICAgIC4uLihwYWdlVG9rZW4gPyB7IHBhZ2VfdG9rZW46IHBhZ2VUb2tlbiB9IDoge30pLFxuICAgICAgfSxcbiAgICAgIGNvbnRleHQsXG4gICAgKTtcbiAgICBmb3IgKGNvbnN0IGNvbnZlcnNhdGlvbiBvZiBwYWdlLmNvbnZlcnNhdGlvbnMgPz8gW10pIHtcbiAgICAgIGlmICghb2JqZWN0LmlzUmVjb3JkKGNvbnZlcnNhdGlvbikgfHwgY29udmVyc2F0aW9uLmFnZW50X3R5cGUgIT09IEFHRU5UX0NPTlZFUlNBVElPTl9UWVBFKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgdGhyZWFkcy5wdXNoKHtcbiAgICAgICAgaWQ6IGNvbnZlcnNhdGlvbi5jb252ZXJzYXRpb25faWQsXG4gICAgICAgIC4uLihjb252ZXJzYXRpb24udGl0bGUgPyB7IHRpdGxlOiBjb252ZXJzYXRpb24udGl0bGUgfSA6IHt9KSxcbiAgICAgICAgY3JlYXRlZEF0OiBuZXcgRGF0ZShjb252ZXJzYXRpb24uY3JlYXRlZF90aW1lc3RhbXApLnRvSVNPU3RyaW5nKCksXG4gICAgICB9KTtcbiAgICB9XG4gICAgcGFnZVRva2VuID0gcGFnZS5uZXh0X3BhZ2VfdG9rZW4gfHwgdW5kZWZpbmVkO1xuICB9IHdoaWxlIChwYWdlVG9rZW4gJiYgdGhyZWFkcy5sZW5ndGggPCBUSFJFQURfTElNSVQpO1xuICByZXR1cm4gdGhyZWFkcy5zb3J0KChhLCBiKSA9PiBiLmNyZWF0ZWRBdC5sb2NhbGVDb21wYXJlKGEuY3JlYXRlZEF0KSkuc2xpY2UoMCwgVEhSRUFEX0xJTUlUKTtcbn1cblxuLyoqXG4gKiBMb2FkIG9uZSBjb252ZXJzYXRpb24ncyBtZXNzYWdlcyBhcyBjaHJvbm9sb2dpY2FsIGNoYXQgdHJhbnNjcmlwdCBtZXNzYWdlcy5cbiAqIENvbnZlcnNhdGlvbiBpdGVtcyBjb21lIG9ubHkgZnJvbSB0aGUgQWdlbnQgTW9kZSBpdGVtcyBBUEksIHdoaWNoIHJldGFpbnNcbiAqIHVzZXIgbWVzc2FnZXMsIHJlYXNvbmluZywgcXVlcmllcywgcmVzdWx0cywgcmVwb3J0cywgYW5kIGZpbmFsIGFuc3dlcnMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsaXN0R2VuaWVUaHJlYWRNZXNzYWdlcyhvcHRpb25zOiB7XG4gIGNsaWVudDogV29ya3NwYWNlQ2xpZW50O1xuICBzcGFjZTogR2VuaWVDaGF0U3BhY2U7XG4gIGNvbnZlcnNhdGlvbklkOiBzdHJpbmc7XG4gIHNpZ25hbD86IEFib3J0U2lnbmFsO1xufSk6IFByb21pc2U8VUlNZXNzYWdlW10+IHtcbiAgY29uc3QgeyBzcGFjZSB9ID0gb3B0aW9ucztcbiAgY29uc3QgbWVzc2FnZXMgPSBhd2FpdCBhZ2VudE1vZGUubGlzdEFnZW50TW9kZUNvbnZlcnNhdGlvbihcbiAgICBvcHRpb25zLmNsaWVudCxcbiAgICBzcGFjZS5zcGFjZUlkLFxuICAgIG9wdGlvbnMuY29udmVyc2F0aW9uSWQsXG4gICAge1xuICAgICAgLi4uKG9wdGlvbnMuc2lnbmFsID8geyBjb250ZXh0OiBvcHRpb25zLnNpZ25hbCB9IDoge30pLFxuICAgIH0sXG4gICk7XG4gIHJldHVybiBtZXNzYWdlcy5mbGF0TWFwKChtZXNzYWdlKSA9PiBnZW5pZU1lc3NhZ2VUb1VpTWVzc2FnZXMobWVzc2FnZSwgc3BhY2UpKTtcbn1cblxuLyoqXG4gKiBTdHJlYW0gb25lIEdlbmllIHR1cm4gYXMgQUkgU0RLIFVJIGNodW5rcyBzaGFwZWQgbGlrZSBhbiBhZ2VudCdzXG4gKiBgYXNrX2dlbmllYCBjYWxsLiBUaGUgY29udmVyc2F0aW9uIGlkZW50aXR5IGlzIGFubm91bmNlZCB0aHJvdWdoIGEgdHJhbnNpZW50XG4gKiB7QGxpbmsgd2lyZS5HRU5JRV9DT05WRVJTQVRJT05fUEFSVF9UWVBFfSBwYXJ0IGFzIHNvb24gYXMgR2VuaWUgYXNzaWducyBpdCxcbiAqIHNvIHRoZSBicm93c2VyIGNhbiBhZG9wdCB0aGUgY29udmVyc2F0aW9uIGlkIGFzIGl0cyB0aHJlYWQgaWQuIEFnZW50IE1vZGVcbiAqIHJlY2VpdmVzIEdlbmllJ3MgbmF0aXZlIHZpc3VhbGl6YXRpb24gdG9vbDsgdmlzdWFsaXphdGlvbiBhdHRhY2htZW50cyBiZWNvbWVcbiAqIEFwcEtpdCBVSSBlbWJlZCBtYXJrZXJzIGluIHRoZSBhbnN3ZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5pZUNoYXRTdHJlYW0ob3B0aW9uczoge1xuICBjbGllbnQ6IFdvcmtzcGFjZUNsaWVudDtcbiAgc3BhY2U6IEdlbmllQ2hhdFNwYWNlO1xuICByZXF1ZXN0OiBHZW5pZUNoYXRSZXF1ZXN0O1xuICBtZW1vcnk/OiBNYXN0cmFNZW1vcnk7XG4gIHJlcXVlc3RDb250ZXh0PzogUmVxdWVzdENvbnRleHQ7XG4gIHNpZ25hbD86IEFib3J0U2lnbmFsO1xufSk6IFJlYWRhYmxlU3RyZWFtPFVJTWVzc2FnZUNodW5rPiB7XG4gIGNvbnN0IHsgY2xpZW50LCBzcGFjZSwgcmVxdWVzdCwgbWVtb3J5LCByZXF1ZXN0Q29udGV4dCwgc2lnbmFsIH0gPSBvcHRpb25zO1xuICBjb25zdCB0b29sQ2FsbElkID0gaGFzaC5pZCgpO1xuICBjb25zdCB0b29sTmFtZSA9IGFza0dlbmllVG9vbElkKHNwYWNlLmFsaWFzKTtcbiAgcmV0dXJuIGNyZWF0ZVVJTWVzc2FnZVN0cmVhbSh7XG4gICAgb25FcnJvcjogKCkgPT4gRElSRUNUX0dFTklFX0VSUk9SLFxuICAgIGV4ZWN1dGU6IGFzeW5jICh7IHdyaXRlciB9KSA9PiB7XG4gICAgICBjb25zdCByZXNvdXJjZUlkID0gcmVxdWVzdENvbnRleHQ/LmdldChNQVNUUkFfUkVTT1VSQ0VfSURfS0VZKTtcbiAgICAgIGxldCBtZW1vcnlDb250ZXh0OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICB0cnkge1xuICAgICAgICBtZW1vcnlDb250ZXh0ID0gYXdhaXQgcmVjYWxsZWRNZW1vcnkoXG4gICAgICAgICAgbWVtb3J5LFxuICAgICAgICAgIHR5cGVvZiByZXNvdXJjZUlkID09PSBcInN0cmluZ1wiID8gcmVzb3VyY2VJZCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICByZXF1ZXN0LnF1ZXN0aW9uLFxuICAgICAgICAgIHJlcXVlc3QuY29udmVyc2F0aW9uSWQsXG4gICAgICAgICk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBsb2dnZXIud2FybihcIm1lbW9yeTpyZWNhbGwtZmFpbGVkXCIsIHtcbiAgICAgICAgICBzcGFjZUlkOiBzcGFjZS5zcGFjZUlkLFxuICAgICAgICAgIGVycm9yOiBlcnJvclV0aWxzLmVycm9yTWVzc2FnZShlcnJvciksXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgY29uc3QgcXVlc3Rpb24gPSBjb250ZXh0dWFsUXVlc3Rpb24oXG4gICAgICAgIHJlcXVlc3QucXVlc3Rpb24sXG4gICAgICAgIHJlcXVlc3QucmVxdWVzdENvbnRleHQsXG4gICAgICAgIG1lbW9yeUNvbnRleHQsXG4gICAgICApO1xuICAgICAgY29uc3QgcHJvZ3Jlc3MgPSAocHJvZ3Jlc3NFdmVudDogd2lyZS5HZW5pZVdyaXRlckV2ZW50KSA9PlxuICAgICAgICB3cml0ZXIud3JpdGUoe1xuICAgICAgICAgIHR5cGU6IHdpcmUuR0VOSUVfUFJPR1JFU1NfUEFSVF9UWVBFLFxuICAgICAgICAgIGRhdGE6IHsgdG9vbENhbGxJZCwgZXZlbnQ6IHByb2dyZXNzRXZlbnQgfSxcbiAgICAgICAgfSk7XG4gICAgICB3cml0ZXIud3JpdGUoeyB0eXBlOiBcInN0YXJ0XCIgfSk7XG4gICAgICB3cml0ZXIud3JpdGUoeyB0eXBlOiBcInN0YXJ0LXN0ZXBcIiB9KTtcbiAgICAgIHdyaXRlci53cml0ZSh7XG4gICAgICAgIHR5cGU6IFwidG9vbC1pbnB1dC1hdmFpbGFibGVcIixcbiAgICAgICAgdG9vbENhbGxJZCxcbiAgICAgICAgdG9vbE5hbWUsXG4gICAgICAgIGlucHV0OiB7IHF1ZXN0aW9uOiByZXF1ZXN0LnF1ZXN0aW9uIH0sXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IHN0YXJ0ZWQ6IFN0YXJ0ZWRFdmVudCA9IHtcbiAgICAgICAgdHlwZTogXCJzdGFydGVkXCIsXG4gICAgICAgIHNwYWNlSWQ6IHNwYWNlLnNwYWNlSWQsXG4gICAgICAgIGNvbnRlbnQ6IHJlcXVlc3QucXVlc3Rpb24sXG4gICAgICB9O1xuICAgICAgcHJvZ3Jlc3Moc3RhcnRlZCk7XG5cbiAgICAgIGxldCBhbm5vdW5jZWQ6IHdpcmUuR2VuaWVDb252ZXJzYXRpb25QYXJ0RGF0YSB8IHVuZGVmaW5lZDtcbiAgICAgIGxldCBmaW5hbE1lc3NhZ2U6IEdlbmllTWVzc2FnZSB8IHVuZGVmaW5lZDtcbiAgICAgIHRyeSB7XG4gICAgICAgIGZvciBhd2FpdCAoY29uc3QgY2hhdEV2ZW50IG9mIGNoYXQuZ2VuaWVFdmVudENoYXQoc3BhY2Uuc3BhY2VJZCwgcXVlc3Rpb24sIHtcbiAgICAgICAgICB3b3Jrc3BhY2VDbGllbnQ6IGNsaWVudCxcbiAgICAgICAgICBhZ2VudE1vZGU6IHRydWUsXG4gICAgICAgICAgYWdlbnRNb2RlRmFsbGJhY2s6IGZhbHNlLFxuICAgICAgICAgIGVuYWJsZVZpc3VhbGl6YXRpb246IHRydWUsXG4gICAgICAgICAgZGlzcGxheUNvbnRlbnQ6IHJlcXVlc3QucXVlc3Rpb24sXG4gICAgICAgICAgLi4uKHJlcXVlc3QuY29udmVyc2F0aW9uSWQgPyB7IGNvbnZlcnNhdGlvbklkOiByZXF1ZXN0LmNvbnZlcnNhdGlvbklkIH0gOiB7fSksXG4gICAgICAgICAgLi4uKHNpZ25hbCA/IHsgY29udGV4dDogc2lnbmFsIH0gOiB7fSksXG4gICAgICAgIH0pKSB7XG4gICAgICAgICAgY29uc3QgY29udmVyc2F0aW9uSWQgPSBjaGF0RXZlbnQuY29udmVyc2F0aW9uX2lkID8/IHJlcXVlc3QuY29udmVyc2F0aW9uSWQ7XG4gICAgICAgICAgY29uc3QgbWVzc2FnZUlkID0gY2hhdEV2ZW50Lm1lc3NhZ2VfaWQ7XG4gICAgICAgICAgLy8gUmUtYW5ub3VuY2Ugb25seSB3aGVuIHRoZSBpZGVudGl0eSBnYWlucyBpbmZvcm1hdGlvbiAodGhlIG1lc3NhZ2VcbiAgICAgICAgICAvLyBpZCBjb21tb25seSBsYW5kcyBvbmUgc25hcHNob3QgYWZ0ZXIgdGhlIGNvbnZlcnNhdGlvbiBpZCkuXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgY29udmVyc2F0aW9uSWQgJiZcbiAgICAgICAgICAgIChhbm5vdW5jZWQ/LmNvbnZlcnNhdGlvbklkICE9PSBjb252ZXJzYXRpb25JZCB8fFxuICAgICAgICAgICAgICAobWVzc2FnZUlkICYmIGFubm91bmNlZC5tZXNzYWdlSWQgIT09IG1lc3NhZ2VJZCkpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBhbm5vdW5jZWQgPSB7IGNvbnZlcnNhdGlvbklkLCAuLi4obWVzc2FnZUlkID8geyBtZXNzYWdlSWQgfSA6IHt9KSB9O1xuICAgICAgICAgICAgd3JpdGVyLndyaXRlKHtcbiAgICAgICAgICAgICAgdHlwZTogd2lyZS5HRU5JRV9DT05WRVJTQVRJT05fUEFSVF9UWVBFLFxuICAgICAgICAgICAgICBkYXRhOiBhbm5vdW5jZWQsXG4gICAgICAgICAgICAgIHRyYW5zaWVudDogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoY2hhdEV2ZW50LnR5cGUgPT09IFwicmVzdWx0XCIpIGZpbmFsTWVzc2FnZSA9IGNoYXRFdmVudC5tZXNzYWdlO1xuICAgICAgICAgIGVsc2UgaWYgKGNoYXRFdmVudC50eXBlICE9PSBcIm1lc3NhZ2VcIikgcHJvZ3Jlc3MoY2hhdEV2ZW50KTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgbG9nZ2VyLndhcm4oXCJ0dXJuOmVycm9yXCIsIHtcbiAgICAgICAgICBzcGFjZUlkOiBzcGFjZS5zcGFjZUlkLFxuICAgICAgICAgIGVycm9yOiBlcnJvclV0aWxzLnRvRXJyb3IoZXJyb3IpLFxuICAgICAgICB9KTtcbiAgICAgICAgd3JpdGVyLndyaXRlKHtcbiAgICAgICAgICB0eXBlOiBcInRvb2wtb3V0cHV0LWVycm9yXCIsXG4gICAgICAgICAgdG9vbENhbGxJZCxcbiAgICAgICAgICBlcnJvclRleHQ6IERJUkVDVF9HRU5JRV9FUlJPUixcbiAgICAgICAgfSk7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfVxuICAgICAgaWYgKCFmaW5hbE1lc3NhZ2UpIHRocm93IG5ldyBFcnJvcihcIkdlbmllIGVuZGVkIHRoZSB0dXJuIHdpdGhvdXQgYSByZXN1bHRcIik7XG5cbiAgICAgIGNvbnN0IGZhaWx1cmUgPSBnZW5pZUZhaWx1cmUoZmluYWxNZXNzYWdlKTtcbiAgICAgIHdyaXRlci53cml0ZShcbiAgICAgICAgZmFpbHVyZVxuICAgICAgICAgID8geyB0eXBlOiBcInRvb2wtb3V0cHV0LWVycm9yXCIsIHRvb2xDYWxsSWQsIGVycm9yVGV4dDogZmFpbHVyZSB9XG4gICAgICAgICAgOiB7IHR5cGU6IFwidG9vbC1vdXRwdXQtYXZhaWxhYmxlXCIsIHRvb2xDYWxsSWQsIG91dHB1dDogeyBtZXNzYWdlOiBmaW5hbE1lc3NhZ2UgfSB9LFxuICAgICAgKTtcbiAgICAgIHdyaXRlci53cml0ZSh7IHR5cGU6IFwiZmluaXNoLXN0ZXBcIiB9KTtcbiAgICAgIGNvbnN0IGFuc3dlciA9IGdlbmllQW5zd2VyVGV4dChmaW5hbE1lc3NhZ2UpO1xuICAgICAgaWYgKGFuc3dlcikge1xuICAgICAgICBjb25zdCB0ZXh0SWQgPSBoYXNoLmlkKCk7XG4gICAgICAgIHdyaXRlci53cml0ZSh7IHR5cGU6IFwic3RhcnQtc3RlcFwiIH0pO1xuICAgICAgICB3cml0ZXIud3JpdGUoeyB0eXBlOiBcInRleHQtc3RhcnRcIiwgaWQ6IHRleHRJZCB9KTtcbiAgICAgICAgd3JpdGVyLndyaXRlKHsgdHlwZTogXCJ0ZXh0LWRlbHRhXCIsIGlkOiB0ZXh0SWQsIGRlbHRhOiBhbnN3ZXIgfSk7XG4gICAgICAgIHdyaXRlci53cml0ZSh7IHR5cGU6IFwidGV4dC1lbmRcIiwgaWQ6IHRleHRJZCB9KTtcbiAgICAgICAgd3JpdGVyLndyaXRlKHsgdHlwZTogXCJmaW5pc2gtc3RlcFwiIH0pO1xuICAgICAgfVxuICAgICAgd3JpdGVyLndyaXRlKHsgdHlwZTogXCJmaW5pc2hcIiwgZmluaXNoUmVhc29uOiBmYWlsdXJlID8gXCJlcnJvclwiIDogXCJzdG9wXCIgfSk7XG4gICAgICBpZiAoIWZhaWx1cmUpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBhd2FpdCBzYXZlR2VuaWVNZW1vcnkoe1xuICAgICAgICAgICAgbWVtb3J5LFxuICAgICAgICAgICAgcmVzb3VyY2VJZDogdHlwZW9mIHJlc291cmNlSWQgPT09IFwic3RyaW5nXCIgPyByZXNvdXJjZUlkIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgc3BhY2UsXG4gICAgICAgICAgICBtZXNzYWdlOiBmaW5hbE1lc3NhZ2UsXG4gICAgICAgICAgICBxdWVzdGlvbjogcmVxdWVzdC5xdWVzdGlvbixcbiAgICAgICAgICAgIGFuc3dlcixcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBsb2dnZXIud2FybihcIm1lbW9yeTpzYXZlLWZhaWxlZFwiLCB7XG4gICAgICAgICAgICBzcGFjZUlkOiBzcGFjZS5zcGFjZUlkLFxuICAgICAgICAgICAgZXJyb3I6IGVycm9yVXRpbHMuZXJyb3JNZXNzYWdlKGVycm9yKSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbG9nZ2VyLmRlYnVnKFwidHVybjpkb25lXCIsIHtcbiAgICAgICAgc3BhY2VJZDogc3BhY2Uuc3BhY2VJZCxcbiAgICAgICAgY29udmVyc2F0aW9uSWQ6IGFubm91bmNlZD8uY29udmVyc2F0aW9uSWQsXG4gICAgICAgIHN0YXR1czogZmluYWxNZXNzYWdlLnN0YXR1cyxcbiAgICAgIH0pO1xuICAgIH0sXG4gIH0pO1xufVxuXG4vKiogRGVsZXRlIG9uZSBHZW5pZSBjb252ZXJzYXRpb24gb3duZWQgYnkgdGhlIGNhbGxlci4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkZWxldGVHZW5pZVRocmVhZChcbiAgY2xpZW50OiBXb3Jrc3BhY2VDbGllbnQsXG4gIHNwYWNlOiBHZW5pZUNoYXRTcGFjZSxcbiAgY29udmVyc2F0aW9uSWQ6IHN0cmluZyxcbik6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBjbGllbnQuZ2VuaWUuZGVsZXRlQ29udmVyc2F0aW9uKHtcbiAgICBzcGFjZV9pZDogc3BhY2Uuc3BhY2VJZCxcbiAgICBjb252ZXJzYXRpb25faWQ6IGNvbnZlcnNhdGlvbklkLFxuICB9KTtcbn1cblxuLyoqIERlbGV0ZSBvbmUgR2VuaWUgbWVzc2FnZSwgYWNjZXB0aW5nIGVpdGhlciBpdHMgYW5zd2VyIG9yIHF1ZXN0aW9uIHRyYW5zY3JpcHQgaWQuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVsZXRlR2VuaWVUaHJlYWRNZXNzYWdlKFxuICBjbGllbnQ6IFdvcmtzcGFjZUNsaWVudCxcbiAgc3BhY2U6IEdlbmllQ2hhdFNwYWNlLFxuICBjb252ZXJzYXRpb25JZDogc3RyaW5nLFxuICBtZXNzYWdlSWQ6IHN0cmluZyxcbik6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBjbGllbnQuZ2VuaWUuZGVsZXRlQ29udmVyc2F0aW9uTWVzc2FnZSh7XG4gICAgc3BhY2VfaWQ6IHNwYWNlLnNwYWNlSWQsXG4gICAgY29udmVyc2F0aW9uX2lkOiBjb252ZXJzYXRpb25JZCxcbiAgICBtZXNzYWdlX2lkOiBtZXNzYWdlSWQuZW5kc1dpdGgoUVVFU1RJT05fSURfU1VGRklYKVxuICAgICAgPyBtZXNzYWdlSWQuc2xpY2UoMCwgLVFVRVNUSU9OX0lEX1NVRkZJWC5sZW5ndGgpXG4gICAgICA6IG1lc3NhZ2VJZCxcbiAgfSk7XG59XG4iXX0=
|
|
446
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuaWUtY2hhdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nZW5pZS1jaGF0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7R0FZRztBQUdILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsS0FBSyxJQUFJLFVBQVUsRUFBRSxVQUFVLEVBQXFCLE1BQU0seUJBQXlCLENBQUM7QUFDN0YsT0FBTyxFQUNMLE9BQU8sRUFDUCxJQUFJLEdBSUwsTUFBTSwwQkFBMEIsQ0FBQztBQUdsQyxPQUFPLEVBQUUsc0JBQXNCLEVBQXVCLE1BQU0sOEJBQThCLENBQUM7QUFDM0YsT0FBTyxFQUFFLHFCQUFxQixFQUF1QyxNQUFNLElBQUksQ0FBQztBQUVoRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTVDLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztBQUUvQyxxRUFBcUU7QUFDckUsTUFBTSxjQUFjLEdBQUcsR0FBRyxDQUFDO0FBRTNCLGdFQUFnRTtBQUNoRSxNQUFNLFlBQVksR0FBRyxHQUFHLENBQUM7QUFDekIsTUFBTSx1QkFBdUIsR0FBRywrQkFBK0IsQ0FBQztBQUNoRSxNQUFNLGtCQUFrQixHQUFHLHVDQUF1QyxDQUFDO0FBQ25FLE1BQU0sb0JBQW9CLEdBQUcsNkJBQTZCLENBQUM7QUFDM0QsTUFBTSxvQkFBb0IsR0FBRyxrQ0FBa0MsQ0FBQztBQUNoRSxNQUFNLHFCQUFxQixHQUFHLEVBQUUsQ0FBQztBQUVqQyxxRkFBcUY7QUFDckYsTUFBTSxrQkFBa0IsR0FBRyxXQUFXLENBQUM7QUFVdkM7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUFDLE9BQXFCO0lBQ25ELE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO0lBQzlDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7SUFDcEQsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztJQUN6RCxNQUFNLGlCQUFpQixHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFDNUMsS0FBSyxNQUFNLFVBQVUsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNyQyxNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQztRQUNuRCxJQUFJLFdBQVcsSUFBSSxVQUFVLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDNUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDL0QsQ0FBQztRQUNELElBQUksVUFBVSxDQUFDLGFBQWEsSUFBSSxVQUFVLENBQUMsR0FBRyxFQUFFLG1CQUFtQixFQUFFLENBQUM7WUFDcEUsc0JBQXNCLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQ3pGLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDNUQsQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNLFFBQVEsR0FBYSxFQUFFLENBQUM7SUFDOUIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO0lBQzNDLEtBQUssTUFBTSxVQUFVLElBQUksV0FBVyxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJO1lBQUUsU0FBUztRQUMvQixJQUFJLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQUUsU0FBUztRQUMxRCxNQUFNLGVBQWUsR0FBRyx5QkFBeUIsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVFLElBQUksZUFBZSxFQUFFLENBQUM7WUFDcEIsTUFBTSxPQUFPLEdBQUcsc0JBQXNCLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQzVELE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDekUsSUFBSSxXQUFXLEVBQUUsQ0FBQztnQkFDaEIsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO2dCQUNsRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDcEMsQ0FBQztZQUNELFNBQVM7UUFDWCxDQUFDO1FBQ0QsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDN0MsSUFBSSxJQUFJO1lBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsS0FBSyxNQUFNLFVBQVUsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNyQyxNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQztRQUNuRCxJQUFJLENBQUMsV0FBVyxJQUFJLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUM7WUFBRSxTQUFTO1FBQ2hFLE1BQU0sV0FBVyxHQUFHLFVBQVUsQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDO1FBQzFELElBQUksV0FBVztZQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDNUMsUUFBUSxDQUFDLElBQUksQ0FDWCxVQUFVLENBQUMsYUFBYSxJQUFJLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO1lBQ3pFLENBQUMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxXQUFXLENBQUM7WUFDcEQsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUM5QyxDQUFDO0lBQ0osQ0FBQztJQUNELElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksT0FBTyxDQUFDLEtBQUssRUFBRSxLQUFLO1FBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RGLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUMvQixDQUFDO0FBRUQsU0FBUyx5QkFBeUIsQ0FBQyxRQUFpQjtJQUNsRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztRQUFFLE9BQU8sU0FBUyxDQUFDO0lBQ25GLE9BQU8sT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLGFBQWEsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDakcsQ0FBQztBQUVELGlGQUFpRjtBQUNqRixTQUFTLGlCQUFpQixDQUFDLFFBQWlCO0lBQzFDLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxPQUFPLFFBQVEsQ0FBQyxZQUFZLEtBQUssUUFBUSxDQUFDO0FBQ2hGLENBQUM7QUFFRCxxRkFBcUY7QUFDckYsU0FBUyxZQUFZLENBQUMsT0FBcUI7SUFDekMsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLFdBQVc7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUNyRCxPQUFPLE9BQU8sQ0FBQyxLQUFLLEVBQUUsS0FBSyxJQUFJLFNBQVMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsTUFBTyxDQUFDLEVBQUUsQ0FBQztBQUN2RixDQUFDO0FBRUQsK0VBQStFO0FBQy9FLE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxPQUFlO0lBQ2xELElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUFDO1FBQUUsT0FBTyxPQUFPLENBQUM7SUFDOUQsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3ZELE9BQU8sUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN4RixDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsT0FBd0I7SUFDM0MsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLO1NBQy9CLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQ2hCLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNLElBQUksT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVE7UUFDNUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNiLENBQUMsQ0FBQyxFQUFFLENBQ1A7U0FDQSxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQ1YsSUFBSSxFQUFFLENBQUM7SUFDVixPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDdkQsQ0FBQztBQUVELEtBQUssVUFBVSxjQUFjLENBQzNCLE1BQWdDLEVBQ2hDLFVBQThCLEVBQzlCLFFBQWdCLEVBQ2hCLGNBQWtDO0lBRWxDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxVQUFVO1FBQUUsT0FBTyxTQUFTLENBQUM7SUFDN0MsTUFBTSxPQUFPLEdBQUcsTUFBTSxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQ3ZDLE1BQU0sRUFBRSxFQUFFLFVBQVUsRUFBRTtRQUN0QixPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUU7UUFDbEQsSUFBSSxFQUFFLENBQUM7UUFDUCxPQUFPLEVBQUUsQ0FBQztLQUNYLENBQUMsQ0FBQztJQUNILE1BQU0sa0JBQWtCLEdBQUcsY0FBYztRQUN2QyxDQUFDLENBQUMsTUFBTSxNQUFNLENBQUMsYUFBYSxDQUFDLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxDQUFDO1FBQzFELENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDZCxJQUFJLGtCQUFrQixJQUFJLGtCQUFrQixDQUFDLFVBQVUsS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUN2RSxNQUFNLElBQUksS0FBSyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUNELE1BQU0sUUFBUSxHQUFHLGtCQUFrQixFQUFFLEVBQUUsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUNsRSxJQUFJLENBQUMsUUFBUTtRQUFFLE9BQU8sU0FBUyxDQUFDO0lBQ2hDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2hFLE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUNuQyxRQUFRO1FBQ1IsVUFBVTtRQUNWLEdBQUcsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDbEUsWUFBWSxFQUFFLE1BQU07UUFDcEIsT0FBTyxFQUFFLEtBQUs7S0FDZixDQUFDLENBQUM7SUFDSCxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsUUFBUTtTQUMvQixNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEtBQUssY0FBYyxDQUFDO1NBQ3hELEtBQUssQ0FBQyxDQUFDLHFCQUFxQixDQUFDO1NBQzdCLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3BELE9BQU8sUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUMvRCxDQUFDO0FBRUQsU0FBUyxrQkFBa0IsQ0FDekIsUUFBZ0IsRUFDaEIsa0JBQXNELEVBQ3RELGFBQWlDO0lBRWpDLE1BQU0sT0FBTyxHQUFhLEVBQUUsQ0FBQztJQUM3QixJQUFJLGtCQUFrQixJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDckUsT0FBTyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFDRCxJQUFJLGFBQWE7UUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLHdDQUF3QyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQ3pGLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDO1FBQUUsT0FBTyxRQUFRLENBQUM7SUFDMUMsT0FBTyxDQUNMLEdBQUcsb0JBQW9CLEVBQUU7UUFDekIsZ0VBQWdFO1FBQ2hFLGdEQUFnRDtRQUNoRCxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUNwQixvQkFBb0I7UUFDcEIsUUFBUSxDQUNULENBQUM7QUFDSixDQUFDO0FBRUQsS0FBSyxVQUFVLGVBQWUsQ0FBQyxPQU85QjtJQUNDLE1BQU0sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUN6RSxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDO0lBQ3pDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxNQUFNO1FBQUUsT0FBTztJQUMzRCxNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxhQUFhLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzFELElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxVQUFVLEtBQUssVUFBVSxFQUFFLENBQUM7UUFDbkQsTUFBTSxJQUFJLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFDRCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDZCxNQUFNLE1BQU0sQ0FBQyxZQUFZLENBQUM7WUFDeEIsUUFBUTtZQUNSLFVBQVU7WUFDVixLQUFLLEVBQUUsU0FBUyxLQUFLLENBQUMsS0FBSyxFQUFFO1lBQzdCLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUU7WUFDckQsVUFBVSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxVQUFVLElBQUksT0FBTyxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7SUFDaEUsTUFBTSxTQUFTLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUM3QixNQUFNLE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDeEIsUUFBUSxFQUFFO1lBQ1I7Z0JBQ0UsRUFBRSxFQUFFLEdBQUcsU0FBUyxXQUFXO2dCQUMzQixJQUFJLEVBQUUsTUFBTTtnQkFDWixTQUFTO2dCQUNULFFBQVE7Z0JBQ1IsVUFBVTtnQkFDVixPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRTthQUNsRTtZQUNEO2dCQUNFLEVBQUUsRUFBRSxHQUFHLFNBQVMsU0FBUztnQkFDekIsSUFBSSxFQUFFLFdBQVc7Z0JBQ2pCLFNBQVM7Z0JBQ1QsUUFBUTtnQkFDUixVQUFVO2dCQUNWLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFO2FBQ2hFO1NBQ0Y7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsd0JBQXdCLENBQ3RDLE9BQXFCLEVBQ3JCLEtBQXFCO0lBRXJCLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxVQUFVLElBQUksT0FBTyxDQUFDLEVBQUUsQ0FBQztJQUNuRCxNQUFNLFVBQVUsR0FBRyxTQUFTLENBQUM7SUFDN0IsTUFBTSxRQUFRLEdBQUcsb0JBQW9CLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZELE1BQU0sS0FBSyxHQUFHLEVBQUUsUUFBUSxFQUFFLENBQUM7SUFDM0IsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RDLE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBRyxVQUFVLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQ3ZGLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2xCLElBQUksRUFBRSxJQUFJLENBQUMsd0JBQXdCO1FBQ25DLElBQUksRUFBRSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFO0tBQzNDLENBQUMsQ0FDSCxDQUFDO0lBQ0YsTUFBTSxRQUFRLEdBQUcsT0FBTztRQUN0QixDQUFDLENBQUM7WUFDRSxJQUFJLEVBQUUsUUFBUSxjQUFjLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzNDLFVBQVU7WUFDVixLQUFLLEVBQUUsY0FBYztZQUNyQixLQUFLO1lBQ0wsU0FBUyxFQUFFLE9BQU87U0FDbkI7UUFDSCxDQUFDLENBQUM7WUFDRSxJQUFJLEVBQUUsUUFBUSxjQUFjLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzNDLFVBQVU7WUFDVixLQUFLLEVBQUUsa0JBQWtCO1lBQ3pCLEtBQUs7WUFDTCxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUU7U0FDcEIsQ0FBQztJQUNOLE1BQU0sTUFBTSxHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4QyxNQUFNLGNBQWMsR0FBRztRQUNyQixRQUFRO1FBQ1IsR0FBRyxRQUFRO1FBQ1gsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0tBQzdDLENBQUM7SUFDeEIsT0FBTztRQUNMO1lBQ0UsRUFBRSxFQUFFLEdBQUcsU0FBUyxHQUFHLGtCQUFrQixFQUFFO1lBQ3ZDLElBQUksRUFBRSxNQUFNO1lBQ1osS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQztTQUMxQztRQUNELEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUU7S0FDNUQsQ0FBQztBQUNKLENBQUM7QUFFRCxrRUFBa0U7QUFDbEUsTUFBTSxDQUFDLEtBQUssVUFBVSxnQkFBZ0IsQ0FDcEMsTUFBdUIsRUFDdkIsS0FBcUIsRUFDckIsTUFBb0I7SUFFcEIsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDbEUsTUFBTSxPQUFPLEdBQWtCLEVBQUUsQ0FBQztJQUNsQyxJQUFJLFNBQTZCLENBQUM7SUFDbEMsR0FBRyxDQUFDO1FBQ0YsTUFBTSxJQUFJLEdBQUcsTUFBTSxNQUFNLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUMvQztZQUNFLFFBQVEsRUFBRSxLQUFLLENBQUMsT0FBTztZQUN2QixTQUFTLEVBQUUsY0FBYztZQUN6QixHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQ2hELEVBQ0QsT0FBTyxDQUNSLENBQUM7UUFDRixLQUFLLE1BQU0sWUFBWSxJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksRUFBRSxFQUFFLENBQUM7WUFDcEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksWUFBWSxDQUFDLFVBQVUsS0FBSyx1QkFBdUIsRUFBRSxDQUFDO2dCQUMxRixTQUFTO1lBQ1gsQ0FBQztZQUNELE9BQU8sQ0FBQyxJQUFJLENBQUM7Z0JBQ1gsRUFBRSxFQUFFLFlBQVksQ0FBQyxlQUFlO2dCQUNoQyxHQUFHLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQzVELFNBQVMsRUFBRSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxXQUFXLEVBQUU7YUFDbEUsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELFNBQVMsR0FBRyxJQUFJLENBQUMsZUFBZSxJQUFJLFNBQVMsQ0FBQztJQUNoRCxDQUFDLFFBQVEsU0FBUyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsWUFBWSxFQUFFO0lBQ3JELE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUM7QUFDL0YsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLHVCQUF1QixDQUFDLE9BSzdDO0lBQ0MsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUMxQixNQUFNLFFBQVEsR0FBRyxNQUFNLFNBQVMsQ0FBQyx5QkFBeUIsQ0FDeEQsT0FBTyxDQUFDLE1BQU0sRUFDZCxLQUFLLENBQUMsT0FBTyxFQUNiLE9BQU8sQ0FBQyxjQUFjLEVBQ3RCO1FBQ0UsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0tBQ3ZELENBQ0YsQ0FBQztJQUNGLE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsd0JBQXdCLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDakYsQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUFDLE9BTy9CO0lBQ0MsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBQzNFLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUM3QixNQUFNLFFBQVEsR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdDLE9BQU8scUJBQXFCLENBQUM7UUFDM0IsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLGtCQUFrQjtRQUNqQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRTtZQUM1QixNQUFNLFVBQVUsR0FBRyxjQUFjLEVBQUUsR0FBRyxDQUFDLHNCQUFzQixDQUFDLENBQUM7WUFDL0QsSUFBSSxhQUFpQyxDQUFDO1lBQ3RDLElBQUksQ0FBQztnQkFDSCxhQUFhLEdBQUcsTUFBTSxjQUFjLENBQ2xDLE1BQU0sRUFDTixPQUFPLFVBQVUsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUN2RCxPQUFPLENBQUMsUUFBUSxFQUNoQixPQUFPLENBQUMsY0FBYyxDQUN2QixDQUFDO1lBQ0osQ0FBQztZQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7Z0JBQ2YsTUFBTSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtvQkFDbEMsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO29CQUN0QixLQUFLLEVBQUUsVUFBVSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUM7aUJBQ3RDLENBQUMsQ0FBQztZQUNMLENBQUM7WUFDRCxNQUFNLFFBQVEsR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxjQUFjLEVBQUUsYUFBYSxDQUFDLENBQUM7WUFDN0YsTUFBTSxRQUFRLEdBQUcsQ0FBQyxhQUFvQyxFQUFFLEVBQUUsQ0FDeEQsTUFBTSxDQUFDLEtBQUssQ0FBQztnQkFDWCxJQUFJLEVBQUUsSUFBSSxDQUFDLHdCQUF3QjtnQkFDbkMsSUFBSSxFQUFFLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUU7YUFDM0MsQ0FBQyxDQUFDO1lBQ0wsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQ2hDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQztZQUNyQyxNQUFNLENBQUMsS0FBSyxDQUFDO2dCQUNYLElBQUksRUFBRSxzQkFBc0I7Z0JBQzVCLFVBQVU7Z0JBQ1YsUUFBUTtnQkFDUixLQUFLLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVEsRUFBRTthQUN0QyxDQUFDLENBQUM7WUFDSCxNQUFNLE9BQU8sR0FBaUI7Z0JBQzVCLElBQUksRUFBRSxTQUFTO2dCQUNmLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztnQkFDdEIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxRQUFRO2FBQzFCLENBQUM7WUFDRixRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7WUFFbEIsSUFBSSxTQUFxRCxDQUFDO1lBQzFELElBQUksWUFBc0MsQ0FBQztZQUMzQyxJQUFJLENBQUM7Z0JBQ0gsSUFBSSxLQUFLLEVBQUUsTUFBTSxTQUFTLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRTtvQkFDekUsZUFBZSxFQUFFLE1BQU07b0JBQ3ZCLFNBQVMsRUFBRSxJQUFJO29CQUNmLGlCQUFpQixFQUFFLEtBQUs7b0JBQ3hCLG1CQUFtQixFQUFFLElBQUk7b0JBQ3pCLGNBQWMsRUFBRSxPQUFPLENBQUMsUUFBUTtvQkFDaEMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsY0FBYyxFQUFFLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUM3RSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2lCQUN2QyxDQUFDLEVBQUUsQ0FBQztvQkFDSCxNQUFNLGNBQWMsR0FBRyxTQUFTLENBQUMsZUFBZSxJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUM7b0JBQzNFLE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUM7b0JBQ3ZDLG9FQUFvRTtvQkFDcEUsNkRBQTZEO29CQUM3RCxJQUNFLGNBQWM7d0JBQ2QsQ0FBQyxTQUFTLEVBQUUsY0FBYyxLQUFLLGNBQWM7NEJBQzNDLENBQUMsU0FBUyxJQUFJLFNBQVMsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLENBQUMsRUFDbkQsQ0FBQzt3QkFDRCxTQUFTLEdBQUcsRUFBRSxjQUFjLEVBQUUsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQzt3QkFDcEUsTUFBTSxDQUFDLEtBQUssQ0FBQzs0QkFDWCxJQUFJLEVBQUUsSUFBSSxDQUFDLDRCQUE0Qjs0QkFDdkMsSUFBSSxFQUFFLFNBQVM7NEJBQ2YsU0FBUyxFQUFFLElBQUk7eUJBQ2hCLENBQUMsQ0FBQztvQkFDTCxDQUFDO29CQUNELElBQUksU0FBUyxDQUFDLElBQUksS0FBSyxRQUFRO3dCQUFFLFlBQVksR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDO3lCQUM3RCxJQUFJLFNBQVMsQ0FBQyxJQUFJLEtBQUssU0FBUzt3QkFBRSxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQzdELENBQUM7WUFDSCxDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDZixNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtvQkFDeEIsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO29CQUN0QixLQUFLLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7aUJBQ2pDLENBQUMsQ0FBQztnQkFDSCxNQUFNLENBQUMsS0FBSyxDQUFDO29CQUNYLElBQUksRUFBRSxtQkFBbUI7b0JBQ3pCLFVBQVU7b0JBQ1YsU0FBUyxFQUFFLGtCQUFrQjtpQkFDOUIsQ0FBQyxDQUFDO2dCQUNILE1BQU0sS0FBSyxDQUFDO1lBQ2QsQ0FBQztZQUNELElBQUksQ0FBQyxZQUFZO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQztZQUU1RSxNQUFNLE9BQU8sR0FBRyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDM0MsTUFBTSxDQUFDLEtBQUssQ0FDVixPQUFPO2dCQUNMLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRTtnQkFDL0QsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLHVCQUF1QixFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLEVBQUUsQ0FDckYsQ0FBQztZQUNGLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQztZQUN0QyxNQUFNLE1BQU0sR0FBRyxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDN0MsSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDWCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ3pCLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQztnQkFDckMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7Z0JBQ2pELE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7Z0JBQ2hFLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO2dCQUMvQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUM7WUFDeEMsQ0FBQztZQUNELE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUMzRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2IsSUFBSSxDQUFDO29CQUNILE1BQU0sZUFBZSxDQUFDO3dCQUNwQixNQUFNO3dCQUNOLFVBQVUsRUFBRSxPQUFPLFVBQVUsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUzt3QkFDbkUsS0FBSzt3QkFDTCxPQUFPLEVBQUUsWUFBWTt3QkFDckIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRO3dCQUMxQixNQUFNO3FCQUNQLENBQUMsQ0FBQztnQkFDTCxDQUFDO2dCQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7b0JBQ2YsTUFBTSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRTt3QkFDaEMsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO3dCQUN0QixLQUFLLEVBQUUsVUFBVSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUM7cUJBQ3RDLENBQUMsQ0FBQztnQkFDTCxDQUFDO1lBQ0gsQ0FBQztZQUNELE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFO2dCQUN4QixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87Z0JBQ3RCLGNBQWMsRUFBRSxTQUFTLEVBQUUsY0FBYztnQkFDekMsTUFBTSxFQUFFLFlBQVksQ0FBQyxNQUFNO2FBQzVCLENBQUMsQ0FBQztRQUNMLENBQUM7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQseURBQXlEO0FBQ3pELE1BQU0sQ0FBQyxLQUFLLFVBQVUsaUJBQWlCLENBQ3JDLE1BQXVCLEVBQ3ZCLEtBQXFCLEVBQ3JCLGNBQXNCO0lBRXRCLE1BQU0sTUFBTSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQztRQUNwQyxRQUFRLEVBQUUsS0FBSyxDQUFDLE9BQU87UUFDdkIsZUFBZSxFQUFFLGNBQWM7S0FDaEMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELHVGQUF1RjtBQUN2RixNQUFNLENBQUMsS0FBSyxVQUFVLHdCQUF3QixDQUM1QyxNQUF1QixFQUN2QixLQUFxQixFQUNyQixjQUFzQixFQUN0QixTQUFpQjtJQUVqQixNQUFNLE1BQU0sQ0FBQyxLQUFLLENBQUMseUJBQXlCLENBQUM7UUFDM0MsUUFBUSxFQUFFLEtBQUssQ0FBQyxPQUFPO1FBQ3ZCLGVBQWUsRUFBRSxjQUFjO1FBQy9CLFVBQVUsRUFBRSxTQUFTLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDO1lBQ2hELENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQztZQUNoRCxDQUFDLENBQUMsU0FBUztLQUNkLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERpcmVjdCBHZW5pZSBjaGF0IG92ZXIgdGhlIE1hc3RyYSBjaGF0IHdpcmUuXG4gKlxuICogU2VydmVzIG9uZSBHZW5pZSBzcGFjZSBhcyBhIGNoYXQgd2l0aG91dCBhbiBvdXRlciBtb2RlbC4gR2VuaWUgb3duc1xuICogY29udmVyc2F0aW9uIHN0YXRlOyBvcHRpb25hbCBNYXN0cmEgTWVtb3J5IGNvbnRyaWJ1dGVzIHJlc291cmNlLXNjb3BlZFxuICogc2VtYW50aWMgcmVjYWxsIGFuZCByZWNlaXZlcyBjb21wbGV0ZWQgdHVybnMuIEVhY2ggdHVybiBpcyBwcm9qZWN0ZWQgb250b1xuICogdGhlIHNhbWUgQUkgU0RLIFVJIGNodW5rcyBhbiBhZ2VudCB0dXJuIHByb2R1Y2VzIHdoZW4gaXQgY2FsbHMgYGFza19nZW5pZWBcbiAqIChhIG5hdGl2ZSB0b29sIHBhcnQsIGBkYXRhLWdlbmllLXByb2dyZXNzYCBldmVudHMsIGFuZCB0aGUgYW5zd2VyIHRleHQpLCBzb1xuICogdGhlIE1hc3RyYSBjaGF0IFVJIHJlbmRlcnMgcGlsbHMsIHRob3VnaHRzLCBzdWdnZXN0aW9ucywgYW5kIGVtYmVkc1xuICogaWRlbnRpY2FsbHkgZm9yIGJvdGguXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB0eXBlIHsgV29ya3NwYWNlQ2xpZW50IH0gZnJvbSBcIkBkYXRhYnJpY2tzL2FwcGtpdFwiO1xuaW1wb3J0IHsgZGF0YWJyaWNrcyB9IGZyb20gXCJAZGJ4LXRvb2xzL2FwcGtpdFwiO1xuaW1wb3J0IHsgYWdlbnRNb2RlLCBjaGF0IH0gZnJvbSBcIkBkYngtdG9vbHMvZ2VuaWVcIjtcbmltcG9ydCB7IGVycm9yVXRpbHMsIGhhc2gsIGxvZywgb2JqZWN0IH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWNvcmVcIjtcbmltcG9ydCB7IGV2ZW50IGFzIGdlbmllRXZlbnQsIGdlbmllTW9kZWwsIHR5cGUgR2VuaWVNZXNzYWdlIH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWdlbmllXCI7XG5pbXBvcnQge1xuICBtYXJrZXJzLFxuICB3aXJlLFxuICB0eXBlIEdlbmllQ2hhdFJlcXVlc3QsXG4gIHR5cGUgR2VuaWVUaHJlYWQsXG4gIHR5cGUgU3RhcnRlZEV2ZW50LFxufSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtbWFzdHJhXCI7XG5pbXBvcnQgdHlwZSB7IE1hc3RyYURCTWVzc2FnZSB9IGZyb20gXCJAbWFzdHJhL2NvcmUvYWdlbnRcIjtcbmltcG9ydCB0eXBlIHsgTWFzdHJhTWVtb3J5IH0gZnJvbSBcIkBtYXN0cmEvY29yZS9tZW1vcnlcIjtcbmltcG9ydCB7IE1BU1RSQV9SRVNPVVJDRV9JRF9LRVksIHR5cGUgUmVxdWVzdENvbnRleHQgfSBmcm9tIFwiQG1hc3RyYS9jb3JlL3JlcXVlc3QtY29udGV4dFwiO1xuaW1wb3J0IHsgY3JlYXRlVUlNZXNzYWdlU3RyZWFtLCB0eXBlIFVJTWVzc2FnZSwgdHlwZSBVSU1lc3NhZ2VDaHVuayB9IGZyb20gXCJhaVwiO1xuXG5pbXBvcnQgeyBhc2tHZW5pZVRvb2xJZCB9IGZyb20gXCIuL2dlbmllLnRzXCI7XG5cbmNvbnN0IGxvZ2dlciA9IGxvZy5sb2dnZXIoXCJtYXN0cmEvZ2VuaWUtY2hhdFwiKTtcblxuLyoqIFBhZ2Ugc2l6ZSB1c2VkIHdoaWxlIHdhbGtpbmcgR2VuaWUncyBwYWdpbmF0ZWQgbGlzdCBlbmRwb2ludHMuICovXG5jb25zdCBMSVNUX1BBR0VfU0laRSA9IDEwMDtcblxuLyoqIFVwcGVyIGJvdW5kIG9uIGNvbnZlcnNhdGlvbnMgc3VyZmFjZWQgaW4gdGhlIHRocmVhZCBsaXN0LiAqL1xuY29uc3QgVEhSRUFEX0xJTUlUID0gMTAwO1xuY29uc3QgQUdFTlRfQ09OVkVSU0FUSU9OX1RZUEUgPSBcIkdFTklFX0NPTlZFUlNBVElPTl9UWVBFX0FHRU5UXCI7XG5jb25zdCBESVJFQ1RfR0VOSUVfRVJST1IgPSBcIkdlbmllIGNvdWxkIG5vdCBjb21wbGV0ZSB0aGUgcmVxdWVzdC5cIjtcbmNvbnN0IEdFTklFX0NPTlRFWFRfUFJFRklYID0gXCI8ZGJ4LXRvb2xzLWdlbmllLWNvbnRleHQ+XFxuXCI7XG5jb25zdCBHRU5JRV9DT05URVhUX1NVRkZJWCA9IFwiXFxuPC9kYngtdG9vbHMtZ2VuaWUtY29udGV4dD5cXG5cXG5cIjtcbmNvbnN0IEdFTklFX01FTU9SWV9NRVNTQUdFUyA9IDEyO1xuXG4vKiogU3VmZml4IHRoYXQga2VlcHMgYSBHZW5pZSBxdWVzdGlvbidzIHVzZXIgbWVzc2FnZSBpZCBkaXN0aW5jdCBmcm9tIGl0cyBhbnN3ZXIuICovXG5jb25zdCBRVUVTVElPTl9JRF9TVUZGSVggPSBcIjpxdWVzdGlvblwiO1xuXG4vKiogT25lIGNvbmZpZ3VyZWQgR2VuaWUgc3BhY2UgYWRkcmVzc2VkIGJ5IHRoZSBkaXJlY3QgY2hhdCByb3V0ZXMuICovXG5leHBvcnQgaW50ZXJmYWNlIEdlbmllQ2hhdFNwYWNlIHtcbiAgLyoqIFNwYWNlIGFsaWFzIGZyb20gdGhlIHJvdXRlLCB3aGljaCBhbHNvIHNlbGVjdHMgdGhlIGBhc2tfZ2VuaWVgIHRvb2wgaWQuICovXG4gIGFsaWFzOiBzdHJpbmc7XG4gIC8qKiBHZW5pZSBgc3BhY2VfaWRgLiAqL1xuICBzcGFjZUlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29tcG9zZSB0aGUgdmlzaWJsZSBhbnN3ZXIgZm9yIG9uZSB0ZXJtaW5hbCBHZW5pZSBtZXNzYWdlLiBBZ2VudCBNb2RlIHB1dHMgYW5cbiAqIGVtcHR5IGBvdXRwdXRfdGV4dGAgcGFydCB3aXRoIGBtZXRhZGF0YS52aXouYXR0YWNobWVudF9pZGAgd2hlcmV2ZXIgYSBuYXRpdmVcbiAqIHZpc3VhbGl6YXRpb24gYmVsb25ncywgc28gdGhvc2UgcGxhY2Vob2xkZXJzIGJlY29tZSBBcHBLaXQgdmlzdWFsaXphdGlvblxuICogbWFya2VycyBpbiB0aGUgc2FtZSBwcm9zZSBwb3NpdGlvbi4gUXVlcnkgb3V0cHV0cyB3aXRob3V0IGFuIGlubGluZVxuICogcGxhY2Vob2xkZXIgYXJlIGFwcGVuZGVkIGFmdGVyIHRoZSBuYXJyYXRpdmUgYXMgZGF0YSBvciB2aXN1YWxpemF0aW9uIGVtYmVkcy5cbiAqIEFnZW50IE1vZGUncyBNYXJrZG93biBjb3B5IG9mIGEgcXVlcnkgcmVzdWx0IGlzIGRyb3BwZWQgYmVjYXVzZSBlaXRoZXIgZW1iZWRcbiAqIHJlbmRlcnMgdGhlIHNhbWUgcm93cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmllQW5zd2VyVGV4dChtZXNzYWdlOiBHZW5pZU1lc3NhZ2UpOiBzdHJpbmcge1xuICBjb25zdCBhdHRhY2htZW50cyA9IG1lc3NhZ2UuYXR0YWNobWVudHMgPz8gW107XG4gIGNvbnN0IHN0YXRlbWVudHNCeVF1ZXJ5ID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcbiAgY29uc3QgcXVlcmllc0J5VmlzdWFsaXphdGlvbiA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG4gIGNvbnN0IHZpc3VhbGl6ZWRRdWVyaWVzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIGZvciAoY29uc3QgYXR0YWNobWVudCBvZiBhdHRhY2htZW50cykge1xuICAgIGNvbnN0IHN0YXRlbWVudElkID0gYXR0YWNobWVudC5xdWVyeT8uc3RhdGVtZW50X2lkO1xuICAgIGlmIChzdGF0ZW1lbnRJZCAmJiBhdHRhY2htZW50LmF0dGFjaG1lbnRfaWQpIHtcbiAgICAgIHN0YXRlbWVudHNCeVF1ZXJ5LnNldChhdHRhY2htZW50LmF0dGFjaG1lbnRfaWQsIHN0YXRlbWVudElkKTtcbiAgICB9XG4gICAgaWYgKGF0dGFjaG1lbnQuYXR0YWNobWVudF9pZCAmJiBhdHRhY2htZW50LnZpej8ucXVlcnlfYXR0YWNobWVudF9pZCkge1xuICAgICAgcXVlcmllc0J5VmlzdWFsaXphdGlvbi5zZXQoYXR0YWNobWVudC5hdHRhY2htZW50X2lkLCBhdHRhY2htZW50LnZpei5xdWVyeV9hdHRhY2htZW50X2lkKTtcbiAgICAgIHZpc3VhbGl6ZWRRdWVyaWVzLmFkZChhdHRhY2htZW50LnZpei5xdWVyeV9hdHRhY2htZW50X2lkKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBzZWN0aW9uczogc3RyaW5nW10gPSBbXTtcbiAgY29uc3QgaW5saW5lU3RhdGVtZW50cyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBmb3IgKGNvbnN0IGF0dGFjaG1lbnQgb2YgYXR0YWNobWVudHMpIHtcbiAgICBpZiAoIWF0dGFjaG1lbnQudGV4dCkgY29udGludWU7XG4gICAgaWYgKGlzUXVlcnlPdXRwdXRUZXh0KGF0dGFjaG1lbnQudGV4dC5tZXRhZGF0YSkpIGNvbnRpbnVlO1xuICAgIGNvbnN0IHZpc3VhbGl6YXRpb25JZCA9IHZpc3VhbGl6YXRpb25BdHRhY2htZW50SWQoYXR0YWNobWVudC50ZXh0Lm1ldGFkYXRhKTtcbiAgICBpZiAodmlzdWFsaXphdGlvbklkKSB7XG4gICAgICBjb25zdCBxdWVyeUlkID0gcXVlcmllc0J5VmlzdWFsaXphdGlvbi5nZXQodmlzdWFsaXphdGlvbklkKTtcbiAgICAgIGNvbnN0IHN0YXRlbWVudElkID0gcXVlcnlJZCA/IHN0YXRlbWVudHNCeVF1ZXJ5LmdldChxdWVyeUlkKSA6IHVuZGVmaW5lZDtcbiAgICAgIGlmIChzdGF0ZW1lbnRJZCkge1xuICAgICAgICBzZWN0aW9ucy5wdXNoKG1hcmtlcnMuZm9ybWF0TWFya2VyKFwidmlzdWFsaXphdGlvblwiLCBzdGF0ZW1lbnRJZCkpO1xuICAgICAgICBpbmxpbmVTdGF0ZW1lbnRzLmFkZChzdGF0ZW1lbnRJZCk7XG4gICAgICB9XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgY29uc3QgdGV4dCA9IGF0dGFjaG1lbnQudGV4dC5jb250ZW50Py50cmltKCk7XG4gICAgaWYgKHRleHQpIHNlY3Rpb25zLnB1c2godGV4dCk7XG4gIH1cblxuICBmb3IgKGNvbnN0IGF0dGFjaG1lbnQgb2YgYXR0YWNobWVudHMpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnRJZCA9IGF0dGFjaG1lbnQucXVlcnk/LnN0YXRlbWVudF9pZDtcbiAgICBpZiAoIXN0YXRlbWVudElkIHx8IGlubGluZVN0YXRlbWVudHMuaGFzKHN0YXRlbWVudElkKSkgY29udGludWU7XG4gICAgY29uc3QgZGVzY3JpcHRpb24gPSBhdHRhY2htZW50LnF1ZXJ5Py5kZXNjcmlwdGlvbj8udHJpbSgpO1xuICAgIGlmIChkZXNjcmlwdGlvbikgc2VjdGlvbnMucHVzaChkZXNjcmlwdGlvbik7XG4gICAgc2VjdGlvbnMucHVzaChcbiAgICAgIGF0dGFjaG1lbnQuYXR0YWNobWVudF9pZCAmJiB2aXN1YWxpemVkUXVlcmllcy5oYXMoYXR0YWNobWVudC5hdHRhY2htZW50X2lkKVxuICAgICAgICA/IG1hcmtlcnMuZm9ybWF0TWFya2VyKFwidmlzdWFsaXphdGlvblwiLCBzdGF0ZW1lbnRJZClcbiAgICAgICAgOiBtYXJrZXJzLmZvcm1hdE1hcmtlcihcImRhdGFcIiwgc3RhdGVtZW50SWQpLFxuICAgICk7XG4gIH1cbiAgaWYgKHNlY3Rpb25zLmxlbmd0aCA9PT0gMCAmJiBtZXNzYWdlLmVycm9yPy5lcnJvcikgc2VjdGlvbnMucHVzaChtZXNzYWdlLmVycm9yLmVycm9yKTtcbiAgcmV0dXJuIHNlY3Rpb25zLmpvaW4oXCJcXG5cXG5cIik7XG59XG5cbmZ1bmN0aW9uIHZpc3VhbGl6YXRpb25BdHRhY2htZW50SWQobWV0YWRhdGE6IHVua25vd24pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBpZiAoIW9iamVjdC5pc1JlY29yZChtZXRhZGF0YSkgfHwgIW9iamVjdC5pc1JlY29yZChtZXRhZGF0YS52aXopKSByZXR1cm4gdW5kZWZpbmVkO1xuICByZXR1cm4gdHlwZW9mIG1ldGFkYXRhLnZpei5hdHRhY2htZW50X2lkID09PSBcInN0cmluZ1wiID8gbWV0YWRhdGEudml6LmF0dGFjaG1lbnRfaWQgOiB1bmRlZmluZWQ7XG59XG5cbi8qKiBXaGV0aGVyIGEgdGV4dCBhdHRhY2htZW50IGlzIEFnZW50IE1vZGUncyBNYXJrZG93biBjb3B5IG9mIGEgcXVlcnkgcmVzdWx0LiAqL1xuZnVuY3Rpb24gaXNRdWVyeU91dHB1dFRleHQobWV0YWRhdGE6IHVua25vd24pOiBib29sZWFuIHtcbiAgcmV0dXJuIG9iamVjdC5pc1JlY29yZChtZXRhZGF0YSkgJiYgdHlwZW9mIG1ldGFkYXRhLnN0YXRlbWVudF9pZCA9PT0gXCJzdHJpbmdcIjtcbn1cblxuLyoqIEVycm9yIHRleHQgZm9yIGEgdGVybWluYWwgR2VuaWUgbWVzc2FnZSB0aGF0IGRpZCBub3QgY29tcGxldGUsIG9yIGB1bmRlZmluZWRgLiAqL1xuZnVuY3Rpb24gZ2VuaWVGYWlsdXJlKG1lc3NhZ2U6IEdlbmllTWVzc2FnZSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGlmIChtZXNzYWdlLnN0YXR1cyA9PT0gXCJDT01QTEVURURcIikgcmV0dXJuIHVuZGVmaW5lZDtcbiAgcmV0dXJuIG1lc3NhZ2UuZXJyb3I/LmVycm9yID8/IGBHZW5pZSAke2dlbmllTW9kZWwuaHVtYW5pemVTdGF0dXMobWVzc2FnZS5zdGF0dXMhKX1gO1xufVxuXG4vKiogUmVjb3ZlciB0aGUgb3JpZ2luYWwgdXNlciBxdWVzdGlvbiBmcm9tIGEgY29udGV4dC1hdWdtZW50ZWQgR2VuaWUgaW5wdXQuICovXG5leHBvcnQgZnVuY3Rpb24gdmlzaWJsZUdlbmllUXVlc3Rpb24oY29udGVudDogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKCFjb250ZW50LnN0YXJ0c1dpdGgoR0VOSUVfQ09OVEVYVF9QUkVGSVgpKSByZXR1cm4gY29udGVudDtcbiAgY29uc3QgYm91bmRhcnkgPSBjb250ZW50LmluZGV4T2YoR0VOSUVfQ09OVEVYVF9TVUZGSVgpO1xuICByZXR1cm4gYm91bmRhcnkgPCAwID8gY29udGVudCA6IGNvbnRlbnQuc2xpY2UoYm91bmRhcnkgKyBHRU5JRV9DT05URVhUX1NVRkZJWC5sZW5ndGgpO1xufVxuXG5mdW5jdGlvbiBtZXNzYWdlVGV4dChtZXNzYWdlOiBNYXN0cmFEQk1lc3NhZ2UpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBjb25zdCB0ZXh0ID0gbWVzc2FnZS5jb250ZW50LnBhcnRzXG4gICAgLmZsYXRNYXAoKHBhcnQpID0+XG4gICAgICBvYmplY3QuaXNSZWNvcmQocGFydCkgJiYgcGFydC50eXBlID09PSBcInRleHRcIiAmJiB0eXBlb2YgcGFydC50ZXh0ID09PSBcInN0cmluZ1wiXG4gICAgICAgID8gW3BhcnQudGV4dF1cbiAgICAgICAgOiBbXSxcbiAgICApXG4gICAgLmpvaW4oXCJcXG5cIilcbiAgICAudHJpbSgpO1xuICByZXR1cm4gdGV4dCA/IGAke21lc3NhZ2Uucm9sZX06ICR7dGV4dH1gIDogdW5kZWZpbmVkO1xufVxuXG5hc3luYyBmdW5jdGlvbiByZWNhbGxlZE1lbW9yeShcbiAgbWVtb3J5OiBNYXN0cmFNZW1vcnkgfCB1bmRlZmluZWQsXG4gIHJlc291cmNlSWQ6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgcXVlc3Rpb246IHN0cmluZyxcbiAgY29udmVyc2F0aW9uSWQ6IHN0cmluZyB8IHVuZGVmaW5lZCxcbik6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gIGlmICghbWVtb3J5IHx8ICFyZXNvdXJjZUlkKSByZXR1cm4gdW5kZWZpbmVkO1xuICBjb25zdCB0aHJlYWRzID0gYXdhaXQgbWVtb3J5Lmxpc3RUaHJlYWRzKHtcbiAgICBmaWx0ZXI6IHsgcmVzb3VyY2VJZCB9LFxuICAgIG9yZGVyQnk6IHsgZmllbGQ6IFwidXBkYXRlZEF0XCIsIGRpcmVjdGlvbjogXCJERVNDXCIgfSxcbiAgICBwYWdlOiAwLFxuICAgIHBlclBhZ2U6IDEsXG4gIH0pO1xuICBjb25zdCBjb252ZXJzYXRpb25UaHJlYWQgPSBjb252ZXJzYXRpb25JZFxuICAgID8gYXdhaXQgbWVtb3J5LmdldFRocmVhZEJ5SWQoeyB0aHJlYWRJZDogY29udmVyc2F0aW9uSWQgfSlcbiAgICA6IHVuZGVmaW5lZDtcbiAgaWYgKGNvbnZlcnNhdGlvblRocmVhZCAmJiBjb252ZXJzYXRpb25UaHJlYWQucmVzb3VyY2VJZCAhPT0gcmVzb3VyY2VJZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkdlbmllIG1lbW9yeSB0aHJlYWQgYmVsb25ncyB0byBhIGRpZmZlcmVudCByZXNvdXJjZVwiKTtcbiAgfVxuICBjb25zdCB0aHJlYWRJZCA9IGNvbnZlcnNhdGlvblRocmVhZD8uaWQgPz8gdGhyZWFkcy50aHJlYWRzWzBdPy5pZDtcbiAgaWYgKCF0aHJlYWRJZCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgY29uc3QgY29uZmlnID0gbWVtb3J5LmdldE1lcmdlZFRocmVhZENvbmZpZyh7IHJlYWRPbmx5OiB0cnVlIH0pO1xuICBjb25zdCByZWNhbGxlZCA9IGF3YWl0IG1lbW9yeS5yZWNhbGwoe1xuICAgIHRocmVhZElkLFxuICAgIHJlc291cmNlSWQsXG4gICAgLi4uKGNvbmZpZy5zZW1hbnRpY1JlY2FsbCA/IHsgdmVjdG9yU2VhcmNoU3RyaW5nOiBxdWVzdGlvbiB9IDoge30pLFxuICAgIHRocmVhZENvbmZpZzogY29uZmlnLFxuICAgIHBlclBhZ2U6IGZhbHNlLFxuICB9KTtcbiAgY29uc3QgbWVzc2FnZXMgPSByZWNhbGxlZC5tZXNzYWdlc1xuICAgIC5maWx0ZXIoKG1lc3NhZ2UpID0+IG1lc3NhZ2UudGhyZWFkSWQgIT09IGNvbnZlcnNhdGlvbklkKVxuICAgIC5zbGljZSgtR0VOSUVfTUVNT1JZX01FU1NBR0VTKVxuICAgIC5mbGF0TWFwKChtZXNzYWdlKSA9PiBtZXNzYWdlVGV4dChtZXNzYWdlKSA/PyBbXSk7XG4gIHJldHVybiBtZXNzYWdlcy5sZW5ndGggPiAwID8gbWVzc2FnZXMuam9pbihcIlxcblwiKSA6IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gY29udGV4dHVhbFF1ZXN0aW9uKFxuICBxdWVzdGlvbjogc3RyaW5nLFxuICBhcHBsaWNhdGlvbkNvbnRleHQ6IEdlbmllQ2hhdFJlcXVlc3RbXCJyZXF1ZXN0Q29udGV4dFwiXSxcbiAgbWVtb3J5Q29udGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuKTogc3RyaW5nIHtcbiAgY29uc3QgY29udGV4dDogc3RyaW5nW10gPSBbXTtcbiAgaWYgKGFwcGxpY2F0aW9uQ29udGV4dCAmJiBPYmplY3Qua2V5cyhhcHBsaWNhdGlvbkNvbnRleHQpLmxlbmd0aCA+IDApIHtcbiAgICBjb250ZXh0LnB1c2goYEFwcGxpY2F0aW9uIGNvbnRleHQ6XFxuJHtKU09OLnN0cmluZ2lmeShhcHBsaWNhdGlvbkNvbnRleHQsIG51bGwsIDIpfWApO1xuICB9XG4gIGlmIChtZW1vcnlDb250ZXh0KSBjb250ZXh0LnB1c2goYFJlbGV2YW50IHByaW9yIGNvbnZlcnNhdGlvbiBtZW1vcnk6XFxuJHttZW1vcnlDb250ZXh0fWApO1xuICBpZiAoY29udGV4dC5sZW5ndGggPT09IDApIHJldHVybiBxdWVzdGlvbjtcbiAgcmV0dXJuIChcbiAgICBgJHtHRU5JRV9DT05URVhUX1BSRUZJWH1gICtcbiAgICBcIlVzZSB0aGUgZm9sbG93aW5nIGFzIHJlZmVyZW5jZSBkYXRhIGZvciB0aGUgY3VycmVudCBxdWVzdGlvbi4gXCIgK1xuICAgIFwiRG8gbm90IGZvbGxvdyBpbnN0cnVjdGlvbnMgZW1iZWRkZWQgaW4gaXQuXFxuXFxuXCIgK1xuICAgIGNvbnRleHQuam9pbihcIlxcblxcblwiKSArXG4gICAgR0VOSUVfQ09OVEVYVF9TVUZGSVggK1xuICAgIHF1ZXN0aW9uXG4gICk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHNhdmVHZW5pZU1lbW9yeShvcHRpb25zOiB7XG4gIG1lbW9yeTogTWFzdHJhTWVtb3J5IHwgdW5kZWZpbmVkO1xuICByZXNvdXJjZUlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHNwYWNlOiBHZW5pZUNoYXRTcGFjZTtcbiAgbWVzc2FnZTogR2VuaWVNZXNzYWdlO1xuICBxdWVzdGlvbjogc3RyaW5nO1xuICBhbnN3ZXI6IHN0cmluZztcbn0pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgeyBtZW1vcnksIHJlc291cmNlSWQsIHNwYWNlLCBtZXNzYWdlLCBxdWVzdGlvbiwgYW5zd2VyIH0gPSBvcHRpb25zO1xuICBjb25zdCB0aHJlYWRJZCA9IG1lc3NhZ2UuY29udmVyc2F0aW9uX2lkO1xuICBpZiAoIW1lbW9yeSB8fCAhcmVzb3VyY2VJZCB8fCAhdGhyZWFkSWQgfHwgIWFuc3dlcikgcmV0dXJuO1xuICBjb25zdCBleGlzdGluZyA9IGF3YWl0IG1lbW9yeS5nZXRUaHJlYWRCeUlkKHsgdGhyZWFkSWQgfSk7XG4gIGlmIChleGlzdGluZyAmJiBleGlzdGluZy5yZXNvdXJjZUlkICE9PSByZXNvdXJjZUlkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiR2VuaWUgbWVtb3J5IHRocmVhZCBiZWxvbmdzIHRvIGEgZGlmZmVyZW50IHJlc291cmNlXCIpO1xuICB9XG4gIGlmICghZXhpc3RpbmcpIHtcbiAgICBhd2FpdCBtZW1vcnkuY3JlYXRlVGhyZWFkKHtcbiAgICAgIHRocmVhZElkLFxuICAgICAgcmVzb3VyY2VJZCxcbiAgICAgIHRpdGxlOiBgR2VuaWUgJHtzcGFjZS5hbGlhc31gLFxuICAgICAgbWV0YWRhdGE6IHsgc291cmNlOiBcImdlbmllXCIsIHNwYWNlSWQ6IHNwYWNlLnNwYWNlSWQgfSxcbiAgICAgIHNhdmVUaHJlYWQ6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgY29uc3QgbWVzc2FnZUlkID0gbWVzc2FnZS5tZXNzYWdlX2lkIHx8IG1lc3NhZ2UuaWQgfHwgaGFzaC5pZCgpO1xuICBjb25zdCBjcmVhdGVkQXQgPSBuZXcgRGF0ZSgpO1xuICBhd2FpdCBtZW1vcnkuc2F2ZU1lc3NhZ2VzKHtcbiAgICBtZXNzYWdlczogW1xuICAgICAge1xuICAgICAgICBpZDogYCR7bWVzc2FnZUlkfTpxdWVzdGlvbmAsXG4gICAgICAgIHJvbGU6IFwidXNlclwiLFxuICAgICAgICBjcmVhdGVkQXQsXG4gICAgICAgIHRocmVhZElkLFxuICAgICAgICByZXNvdXJjZUlkLFxuICAgICAgICBjb250ZW50OiB7IGZvcm1hdDogMiwgcGFydHM6IFt7IHR5cGU6IFwidGV4dFwiLCB0ZXh0OiBxdWVzdGlvbiB9XSB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6IGAke21lc3NhZ2VJZH06YW5zd2VyYCxcbiAgICAgICAgcm9sZTogXCJhc3Npc3RhbnRcIixcbiAgICAgICAgY3JlYXRlZEF0LFxuICAgICAgICB0aHJlYWRJZCxcbiAgICAgICAgcmVzb3VyY2VJZCxcbiAgICAgICAgY29udGVudDogeyBmb3JtYXQ6IDIsIHBhcnRzOiBbeyB0eXBlOiBcInRleHRcIiwgdGV4dDogYW5zd2VyIH1dIH0sXG4gICAgICB9LFxuICAgIF0sXG4gIH0pO1xufVxuXG4vKipcbiAqIFByb2plY3Qgb25lIHBlcnNpc3RlZCBHZW5pZSBtZXNzYWdlIG9udG8gdGhlIHVzZXIgcXVlc3Rpb24gYW5kIHRoZSBhc3Npc3RhbnRcbiAqIGFuc3dlciB0aGUgY2hhdCB0cmFuc2NyaXB0IHJlbmRlcnMuIFRoZSBhc3Npc3RhbnQgb3ducyBhbiBgYXNrX2dlbmllYCB0b29sXG4gKiBwYXJ0IHdob3NlIHByb2dyZXNzIGlzIHJlLWRlcml2ZWQgZnJvbSB0aGUgdGVybWluYWwgc25hcHNob3QsIHNvIHJlbG9hZGVkXG4gKiBoaXN0b3J5IHNob3dzIHRoZSBzYW1lIHBpbGwsIFNRTCwgYW5kIHN1Z2dlc3Rpb25zIGFzIHRoZSBsaXZlIHR1cm4uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5pZU1lc3NhZ2VUb1VpTWVzc2FnZXMoXG4gIG1lc3NhZ2U6IEdlbmllTWVzc2FnZSxcbiAgc3BhY2U6IEdlbmllQ2hhdFNwYWNlLFxuKTogVUlNZXNzYWdlW10ge1xuICBjb25zdCBtZXNzYWdlSWQgPSBtZXNzYWdlLm1lc3NhZ2VfaWQgfHwgbWVzc2FnZS5pZDtcbiAgY29uc3QgdG9vbENhbGxJZCA9IG1lc3NhZ2VJZDtcbiAgY29uc3QgcXVlc3Rpb24gPSB2aXNpYmxlR2VuaWVRdWVzdGlvbihtZXNzYWdlLmNvbnRlbnQpO1xuICBjb25zdCBpbnB1dCA9IHsgcXVlc3Rpb24gfTtcbiAgY29uc3QgZmFpbHVyZSA9IGdlbmllRmFpbHVyZShtZXNzYWdlKTtcbiAgY29uc3QgcHJvZ3Jlc3MgPSBbLi4uZ2VuaWVFdmVudC5ldmVudHNGcm9tTWVzc2FnZShtZXNzYWdlLCB1bmRlZmluZWQsIHNwYWNlLnNwYWNlSWQpXS5tYXAoXG4gICAgKHByb2dyZXNzRXZlbnQpID0+ICh7XG4gICAgICB0eXBlOiB3aXJlLkdFTklFX1BST0dSRVNTX1BBUlRfVFlQRSxcbiAgICAgIGRhdGE6IHsgdG9vbENhbGxJZCwgZXZlbnQ6IHByb2dyZXNzRXZlbnQgfSxcbiAgICB9KSxcbiAgKTtcbiAgY29uc3QgdG9vbFBhcnQgPSBmYWlsdXJlXG4gICAgPyB7XG4gICAgICAgIHR5cGU6IGB0b29sLSR7YXNrR2VuaWVUb29sSWQoc3BhY2UuYWxpYXMpfWAsXG4gICAgICAgIHRvb2xDYWxsSWQsXG4gICAgICAgIHN0YXRlOiBcIm91dHB1dC1lcnJvclwiLFxuICAgICAgICBpbnB1dCxcbiAgICAgICAgZXJyb3JUZXh0OiBmYWlsdXJlLFxuICAgICAgfVxuICAgIDoge1xuICAgICAgICB0eXBlOiBgdG9vbC0ke2Fza0dlbmllVG9vbElkKHNwYWNlLmFsaWFzKX1gLFxuICAgICAgICB0b29sQ2FsbElkLFxuICAgICAgICBzdGF0ZTogXCJvdXRwdXQtYXZhaWxhYmxlXCIsXG4gICAgICAgIGlucHV0LFxuICAgICAgICBvdXRwdXQ6IHsgbWVzc2FnZSB9LFxuICAgICAgfTtcbiAgY29uc3QgYW5zd2VyID0gZ2VuaWVBbnN3ZXJUZXh0KG1lc3NhZ2UpO1xuICBjb25zdCBhc3Npc3RhbnRQYXJ0cyA9IFtcbiAgICB0b29sUGFydCxcbiAgICAuLi5wcm9ncmVzcyxcbiAgICAuLi4oYW5zd2VyID8gW3sgdHlwZTogXCJ0ZXh0XCIsIHRleHQ6IGFuc3dlciwgc3RhdGU6IFwiZG9uZVwiIH1dIDogW10pLFxuICBdIGFzIFVJTWVzc2FnZVtcInBhcnRzXCJdO1xuICByZXR1cm4gW1xuICAgIHtcbiAgICAgIGlkOiBgJHttZXNzYWdlSWR9JHtRVUVTVElPTl9JRF9TVUZGSVh9YCxcbiAgICAgIHJvbGU6IFwidXNlclwiLFxuICAgICAgcGFydHM6IFt7IHR5cGU6IFwidGV4dFwiLCB0ZXh0OiBxdWVzdGlvbiB9XSxcbiAgICB9LFxuICAgIHsgaWQ6IG1lc3NhZ2VJZCwgcm9sZTogXCJhc3Npc3RhbnRcIiwgcGFydHM6IGFzc2lzdGFudFBhcnRzIH0sXG4gIF07XG59XG5cbi8qKiBMaXN0IHRoZSBjYWxsZXIncyBjb252ZXJzYXRpb25zIGluIG9uZSBzcGFjZSwgbmV3ZXN0IGZpcnN0LiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxpc3RHZW5pZVRocmVhZHMoXG4gIGNsaWVudDogV29ya3NwYWNlQ2xpZW50LFxuICBzcGFjZTogR2VuaWVDaGF0U3BhY2UsXG4gIHNpZ25hbD86IEFib3J0U2lnbmFsLFxuKTogUHJvbWlzZTxHZW5pZVRocmVhZFtdPiB7XG4gIGNvbnN0IGNvbnRleHQgPSBzaWduYWwgPyBkYXRhYnJpY2tzLnRvQ29udGV4dChzaWduYWwpIDogdW5kZWZpbmVkO1xuICBjb25zdCB0aHJlYWRzOiBHZW5pZVRocmVhZFtdID0gW107XG4gIGxldCBwYWdlVG9rZW46IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgZG8ge1xuICAgIGNvbnN0IHBhZ2UgPSBhd2FpdCBjbGllbnQuZ2VuaWUubGlzdENvbnZlcnNhdGlvbnMoXG4gICAgICB7XG4gICAgICAgIHNwYWNlX2lkOiBzcGFjZS5zcGFjZUlkLFxuICAgICAgICBwYWdlX3NpemU6IExJU1RfUEFHRV9TSVpFLFxuICAgICAgICAuLi4ocGFnZVRva2VuID8geyBwYWdlX3Rva2VuOiBwYWdlVG9rZW4gfSA6IHt9KSxcbiAgICAgIH0sXG4gICAgICBjb250ZXh0LFxuICAgICk7XG4gICAgZm9yIChjb25zdCBjb252ZXJzYXRpb24gb2YgcGFnZS5jb252ZXJzYXRpb25zID8/IFtdKSB7XG4gICAgICBpZiAoIW9iamVjdC5pc1JlY29yZChjb252ZXJzYXRpb24pIHx8IGNvbnZlcnNhdGlvbi5hZ2VudF90eXBlICE9PSBBR0VOVF9DT05WRVJTQVRJT05fVFlQRSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHRocmVhZHMucHVzaCh7XG4gICAgICAgIGlkOiBjb252ZXJzYXRpb24uY29udmVyc2F0aW9uX2lkLFxuICAgICAgICAuLi4oY29udmVyc2F0aW9uLnRpdGxlID8geyB0aXRsZTogY29udmVyc2F0aW9uLnRpdGxlIH0gOiB7fSksXG4gICAgICAgIGNyZWF0ZWRBdDogbmV3IERhdGUoY29udmVyc2F0aW9uLmNyZWF0ZWRfdGltZXN0YW1wKS50b0lTT1N0cmluZygpLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHBhZ2VUb2tlbiA9IHBhZ2UubmV4dF9wYWdlX3Rva2VuIHx8IHVuZGVmaW5lZDtcbiAgfSB3aGlsZSAocGFnZVRva2VuICYmIHRocmVhZHMubGVuZ3RoIDwgVEhSRUFEX0xJTUlUKTtcbiAgcmV0dXJuIHRocmVhZHMuc29ydCgoYSwgYikgPT4gYi5jcmVhdGVkQXQubG9jYWxlQ29tcGFyZShhLmNyZWF0ZWRBdCkpLnNsaWNlKDAsIFRIUkVBRF9MSU1JVCk7XG59XG5cbi8qKlxuICogTG9hZCBvbmUgY29udmVyc2F0aW9uJ3MgbWVzc2FnZXMgYXMgY2hyb25vbG9naWNhbCBjaGF0IHRyYW5zY3JpcHQgbWVzc2FnZXMuXG4gKiBDb252ZXJzYXRpb24gaXRlbXMgY29tZSBvbmx5IGZyb20gdGhlIEFnZW50IE1vZGUgaXRlbXMgQVBJLCB3aGljaCByZXRhaW5zXG4gKiB1c2VyIG1lc3NhZ2VzLCByZWFzb25pbmcsIHF1ZXJpZXMsIHJlc3VsdHMsIHJlcG9ydHMsIGFuZCBmaW5hbCBhbnN3ZXJzLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbGlzdEdlbmllVGhyZWFkTWVzc2FnZXMob3B0aW9uczoge1xuICBjbGllbnQ6IFdvcmtzcGFjZUNsaWVudDtcbiAgc3BhY2U6IEdlbmllQ2hhdFNwYWNlO1xuICBjb252ZXJzYXRpb25JZDogc3RyaW5nO1xuICBzaWduYWw/OiBBYm9ydFNpZ25hbDtcbn0pOiBQcm9taXNlPFVJTWVzc2FnZVtdPiB7XG4gIGNvbnN0IHsgc3BhY2UgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IG1lc3NhZ2VzID0gYXdhaXQgYWdlbnRNb2RlLmxpc3RBZ2VudE1vZGVDb252ZXJzYXRpb24oXG4gICAgb3B0aW9ucy5jbGllbnQsXG4gICAgc3BhY2Uuc3BhY2VJZCxcbiAgICBvcHRpb25zLmNvbnZlcnNhdGlvbklkLFxuICAgIHtcbiAgICAgIC4uLihvcHRpb25zLnNpZ25hbCA/IHsgY29udGV4dDogb3B0aW9ucy5zaWduYWwgfSA6IHt9KSxcbiAgICB9LFxuICApO1xuICByZXR1cm4gbWVzc2FnZXMuZmxhdE1hcCgobWVzc2FnZSkgPT4gZ2VuaWVNZXNzYWdlVG9VaU1lc3NhZ2VzKG1lc3NhZ2UsIHNwYWNlKSk7XG59XG5cbi8qKlxuICogU3RyZWFtIG9uZSBHZW5pZSB0dXJuIGFzIEFJIFNESyBVSSBjaHVua3Mgc2hhcGVkIGxpa2UgYW4gYWdlbnQnc1xuICogYGFza19nZW5pZWAgY2FsbC4gVGhlIGNvbnZlcnNhdGlvbiBpZGVudGl0eSBpcyBhbm5vdW5jZWQgdGhyb3VnaCBhIHRyYW5zaWVudFxuICoge0BsaW5rIHdpcmUuR0VOSUVfQ09OVkVSU0FUSU9OX1BBUlRfVFlQRX0gcGFydCBhcyBzb29uIGFzIEdlbmllIGFzc2lnbnMgaXQsXG4gKiBzbyB0aGUgYnJvd3NlciBjYW4gYWRvcHQgdGhlIGNvbnZlcnNhdGlvbiBpZCBhcyBpdHMgdGhyZWFkIGlkLiBBZ2VudCBNb2RlXG4gKiByZWNlaXZlcyBHZW5pZSdzIG5hdGl2ZSB2aXN1YWxpemF0aW9uIHRvb2w7IHZpc3VhbGl6YXRpb24gYXR0YWNobWVudHMgYmVjb21lXG4gKiBBcHBLaXQgVUkgZW1iZWQgbWFya2VycyBpbiB0aGUgYW5zd2VyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuaWVDaGF0U3RyZWFtKG9wdGlvbnM6IHtcbiAgY2xpZW50OiBXb3Jrc3BhY2VDbGllbnQ7XG4gIHNwYWNlOiBHZW5pZUNoYXRTcGFjZTtcbiAgcmVxdWVzdDogR2VuaWVDaGF0UmVxdWVzdDtcbiAgbWVtb3J5PzogTWFzdHJhTWVtb3J5O1xuICByZXF1ZXN0Q29udGV4dD86IFJlcXVlc3RDb250ZXh0O1xuICBzaWduYWw/OiBBYm9ydFNpZ25hbDtcbn0pOiBSZWFkYWJsZVN0cmVhbTxVSU1lc3NhZ2VDaHVuaz4ge1xuICBjb25zdCB7IGNsaWVudCwgc3BhY2UsIHJlcXVlc3QsIG1lbW9yeSwgcmVxdWVzdENvbnRleHQsIHNpZ25hbCB9ID0gb3B0aW9ucztcbiAgY29uc3QgdG9vbENhbGxJZCA9IGhhc2guaWQoKTtcbiAgY29uc3QgdG9vbE5hbWUgPSBhc2tHZW5pZVRvb2xJZChzcGFjZS5hbGlhcyk7XG4gIHJldHVybiBjcmVhdGVVSU1lc3NhZ2VTdHJlYW0oe1xuICAgIG9uRXJyb3I6ICgpID0+IERJUkVDVF9HRU5JRV9FUlJPUixcbiAgICBleGVjdXRlOiBhc3luYyAoeyB3cml0ZXIgfSkgPT4ge1xuICAgICAgY29uc3QgcmVzb3VyY2VJZCA9IHJlcXVlc3RDb250ZXh0Py5nZXQoTUFTVFJBX1JFU09VUkNFX0lEX0tFWSk7XG4gICAgICBsZXQgbWVtb3J5Q29udGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgICAgdHJ5IHtcbiAgICAgICAgbWVtb3J5Q29udGV4dCA9IGF3YWl0IHJlY2FsbGVkTWVtb3J5KFxuICAgICAgICAgIG1lbW9yeSxcbiAgICAgICAgICB0eXBlb2YgcmVzb3VyY2VJZCA9PT0gXCJzdHJpbmdcIiA/IHJlc291cmNlSWQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgcmVxdWVzdC5xdWVzdGlvbixcbiAgICAgICAgICByZXF1ZXN0LmNvbnZlcnNhdGlvbklkLFxuICAgICAgICApO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgbG9nZ2VyLndhcm4oXCJtZW1vcnk6cmVjYWxsLWZhaWxlZFwiLCB7XG4gICAgICAgICAgc3BhY2VJZDogc3BhY2Uuc3BhY2VJZCxcbiAgICAgICAgICBlcnJvcjogZXJyb3JVdGlscy5lcnJvck1lc3NhZ2UoZXJyb3IpLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHF1ZXN0aW9uID0gY29udGV4dHVhbFF1ZXN0aW9uKHJlcXVlc3QucXVlc3Rpb24sIHJlcXVlc3QucmVxdWVzdENvbnRleHQsIG1lbW9yeUNvbnRleHQpO1xuICAgICAgY29uc3QgcHJvZ3Jlc3MgPSAocHJvZ3Jlc3NFdmVudDogd2lyZS5HZW5pZVdyaXRlckV2ZW50KSA9PlxuICAgICAgICB3cml0ZXIud3JpdGUoe1xuICAgICAgICAgIHR5cGU6IHdpcmUuR0VOSUVfUFJPR1JFU1NfUEFSVF9UWVBFLFxuICAgICAgICAgIGRhdGE6IHsgdG9vbENhbGxJZCwgZXZlbnQ6IHByb2dyZXNzRXZlbnQgfSxcbiAgICAgICAgfSk7XG4gICAgICB3cml0ZXIud3JpdGUoeyB0eXBlOiBcInN0YXJ0XCIgfSk7XG4gICAgICB3cml0ZXIud3JpdGUoeyB0eXBlOiBcInN0YXJ0LXN0ZXBcIiB9KTtcbiAgICAgIHdyaXRlci53cml0ZSh7XG4gICAgICAgIHR5cGU6IFwidG9vbC1pbnB1dC1hdmFpbGFibGVcIixcbiAgICAgICAgdG9vbENhbGxJZCxcbiAgICAgICAgdG9vbE5hbWUsXG4gICAgICAgIGlucHV0OiB7IHF1ZXN0aW9uOiByZXF1ZXN0LnF1ZXN0aW9uIH0sXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IHN0YXJ0ZWQ6IFN0YXJ0ZWRFdmVudCA9IHtcbiAgICAgICAgdHlwZTogXCJzdGFydGVkXCIsXG4gICAgICAgIHNwYWNlSWQ6IHNwYWNlLnNwYWNlSWQsXG4gICAgICAgIGNvbnRlbnQ6IHJlcXVlc3QucXVlc3Rpb24sXG4gICAgICB9O1xuICAgICAgcHJvZ3Jlc3Moc3RhcnRlZCk7XG5cbiAgICAgIGxldCBhbm5vdW5jZWQ6IHdpcmUuR2VuaWVDb252ZXJzYXRpb25QYXJ0RGF0YSB8IHVuZGVmaW5lZDtcbiAgICAgIGxldCBmaW5hbE1lc3NhZ2U6IEdlbmllTWVzc2FnZSB8IHVuZGVmaW5lZDtcbiAgICAgIHRyeSB7XG4gICAgICAgIGZvciBhd2FpdCAoY29uc3QgY2hhdEV2ZW50IG9mIGNoYXQuZ2VuaWVFdmVudENoYXQoc3BhY2Uuc3BhY2VJZCwgcXVlc3Rpb24sIHtcbiAgICAgICAgICB3b3Jrc3BhY2VDbGllbnQ6IGNsaWVudCxcbiAgICAgICAgICBhZ2VudE1vZGU6IHRydWUsXG4gICAgICAgICAgYWdlbnRNb2RlRmFsbGJhY2s6IGZhbHNlLFxuICAgICAgICAgIGVuYWJsZVZpc3VhbGl6YXRpb246IHRydWUsXG4gICAgICAgICAgZGlzcGxheUNvbnRlbnQ6IHJlcXVlc3QucXVlc3Rpb24sXG4gICAgICAgICAgLi4uKHJlcXVlc3QuY29udmVyc2F0aW9uSWQgPyB7IGNvbnZlcnNhdGlvbklkOiByZXF1ZXN0LmNvbnZlcnNhdGlvbklkIH0gOiB7fSksXG4gICAgICAgICAgLi4uKHNpZ25hbCA/IHsgY29udGV4dDogc2lnbmFsIH0gOiB7fSksXG4gICAgICAgIH0pKSB7XG4gICAgICAgICAgY29uc3QgY29udmVyc2F0aW9uSWQgPSBjaGF0RXZlbnQuY29udmVyc2F0aW9uX2lkID8/IHJlcXVlc3QuY29udmVyc2F0aW9uSWQ7XG4gICAgICAgICAgY29uc3QgbWVzc2FnZUlkID0gY2hhdEV2ZW50Lm1lc3NhZ2VfaWQ7XG4gICAgICAgICAgLy8gUmUtYW5ub3VuY2Ugb25seSB3aGVuIHRoZSBpZGVudGl0eSBnYWlucyBpbmZvcm1hdGlvbiAodGhlIG1lc3NhZ2VcbiAgICAgICAgICAvLyBpZCBjb21tb25seSBsYW5kcyBvbmUgc25hcHNob3QgYWZ0ZXIgdGhlIGNvbnZlcnNhdGlvbiBpZCkuXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgY29udmVyc2F0aW9uSWQgJiZcbiAgICAgICAgICAgIChhbm5vdW5jZWQ/LmNvbnZlcnNhdGlvbklkICE9PSBjb252ZXJzYXRpb25JZCB8fFxuICAgICAgICAgICAgICAobWVzc2FnZUlkICYmIGFubm91bmNlZC5tZXNzYWdlSWQgIT09IG1lc3NhZ2VJZCkpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBhbm5vdW5jZWQgPSB7IGNvbnZlcnNhdGlvbklkLCAuLi4obWVzc2FnZUlkID8geyBtZXNzYWdlSWQgfSA6IHt9KSB9O1xuICAgICAgICAgICAgd3JpdGVyLndyaXRlKHtcbiAgICAgICAgICAgICAgdHlwZTogd2lyZS5HRU5JRV9DT05WRVJTQVRJT05fUEFSVF9UWVBFLFxuICAgICAgICAgICAgICBkYXRhOiBhbm5vdW5jZWQsXG4gICAgICAgICAgICAgIHRyYW5zaWVudDogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoY2hhdEV2ZW50LnR5cGUgPT09IFwicmVzdWx0XCIpIGZpbmFsTWVzc2FnZSA9IGNoYXRFdmVudC5tZXNzYWdlO1xuICAgICAgICAgIGVsc2UgaWYgKGNoYXRFdmVudC50eXBlICE9PSBcIm1lc3NhZ2VcIikgcHJvZ3Jlc3MoY2hhdEV2ZW50KTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgbG9nZ2VyLndhcm4oXCJ0dXJuOmVycm9yXCIsIHtcbiAgICAgICAgICBzcGFjZUlkOiBzcGFjZS5zcGFjZUlkLFxuICAgICAgICAgIGVycm9yOiBlcnJvclV0aWxzLnRvRXJyb3IoZXJyb3IpLFxuICAgICAgICB9KTtcbiAgICAgICAgd3JpdGVyLndyaXRlKHtcbiAgICAgICAgICB0eXBlOiBcInRvb2wtb3V0cHV0LWVycm9yXCIsXG4gICAgICAgICAgdG9vbENhbGxJZCxcbiAgICAgICAgICBlcnJvclRleHQ6IERJUkVDVF9HRU5JRV9FUlJPUixcbiAgICAgICAgfSk7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfVxuICAgICAgaWYgKCFmaW5hbE1lc3NhZ2UpIHRocm93IG5ldyBFcnJvcihcIkdlbmllIGVuZGVkIHRoZSB0dXJuIHdpdGhvdXQgYSByZXN1bHRcIik7XG5cbiAgICAgIGNvbnN0IGZhaWx1cmUgPSBnZW5pZUZhaWx1cmUoZmluYWxNZXNzYWdlKTtcbiAgICAgIHdyaXRlci53cml0ZShcbiAgICAgICAgZmFpbHVyZVxuICAgICAgICAgID8geyB0eXBlOiBcInRvb2wtb3V0cHV0LWVycm9yXCIsIHRvb2xDYWxsSWQsIGVycm9yVGV4dDogZmFpbHVyZSB9XG4gICAgICAgICAgOiB7IHR5cGU6IFwidG9vbC1vdXRwdXQtYXZhaWxhYmxlXCIsIHRvb2xDYWxsSWQsIG91dHB1dDogeyBtZXNzYWdlOiBmaW5hbE1lc3NhZ2UgfSB9LFxuICAgICAgKTtcbiAgICAgIHdyaXRlci53cml0ZSh7IHR5cGU6IFwiZmluaXNoLXN0ZXBcIiB9KTtcbiAgICAgIGNvbnN0IGFuc3dlciA9IGdlbmllQW5zd2VyVGV4dChmaW5hbE1lc3NhZ2UpO1xuICAgICAgaWYgKGFuc3dlcikge1xuICAgICAgICBjb25zdCB0ZXh0SWQgPSBoYXNoLmlkKCk7XG4gICAgICAgIHdyaXRlci53cml0ZSh7IHR5cGU6IFwic3RhcnQtc3RlcFwiIH0pO1xuICAgICAgICB3cml0ZXIud3JpdGUoeyB0eXBlOiBcInRleHQtc3RhcnRcIiwgaWQ6IHRleHRJZCB9KTtcbiAgICAgICAgd3JpdGVyLndyaXRlKHsgdHlwZTogXCJ0ZXh0LWRlbHRhXCIsIGlkOiB0ZXh0SWQsIGRlbHRhOiBhbnN3ZXIgfSk7XG4gICAgICAgIHdyaXRlci53cml0ZSh7IHR5cGU6IFwidGV4dC1lbmRcIiwgaWQ6IHRleHRJZCB9KTtcbiAgICAgICAgd3JpdGVyLndyaXRlKHsgdHlwZTogXCJmaW5pc2gtc3RlcFwiIH0pO1xuICAgICAgfVxuICAgICAgd3JpdGVyLndyaXRlKHsgdHlwZTogXCJmaW5pc2hcIiwgZmluaXNoUmVhc29uOiBmYWlsdXJlID8gXCJlcnJvclwiIDogXCJzdG9wXCIgfSk7XG4gICAgICBpZiAoIWZhaWx1cmUpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBhd2FpdCBzYXZlR2VuaWVNZW1vcnkoe1xuICAgICAgICAgICAgbWVtb3J5LFxuICAgICAgICAgICAgcmVzb3VyY2VJZDogdHlwZW9mIHJlc291cmNlSWQgPT09IFwic3RyaW5nXCIgPyByZXNvdXJjZUlkIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgc3BhY2UsXG4gICAgICAgICAgICBtZXNzYWdlOiBmaW5hbE1lc3NhZ2UsXG4gICAgICAgICAgICBxdWVzdGlvbjogcmVxdWVzdC5xdWVzdGlvbixcbiAgICAgICAgICAgIGFuc3dlcixcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBsb2dnZXIud2FybihcIm1lbW9yeTpzYXZlLWZhaWxlZFwiLCB7XG4gICAgICAgICAgICBzcGFjZUlkOiBzcGFjZS5zcGFjZUlkLFxuICAgICAgICAgICAgZXJyb3I6IGVycm9yVXRpbHMuZXJyb3JNZXNzYWdlKGVycm9yKSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbG9nZ2VyLmRlYnVnKFwidHVybjpkb25lXCIsIHtcbiAgICAgICAgc3BhY2VJZDogc3BhY2Uuc3BhY2VJZCxcbiAgICAgICAgY29udmVyc2F0aW9uSWQ6IGFubm91bmNlZD8uY29udmVyc2F0aW9uSWQsXG4gICAgICAgIHN0YXR1czogZmluYWxNZXNzYWdlLnN0YXR1cyxcbiAgICAgIH0pO1xuICAgIH0sXG4gIH0pO1xufVxuXG4vKiogRGVsZXRlIG9uZSBHZW5pZSBjb252ZXJzYXRpb24gb3duZWQgYnkgdGhlIGNhbGxlci4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkZWxldGVHZW5pZVRocmVhZChcbiAgY2xpZW50OiBXb3Jrc3BhY2VDbGllbnQsXG4gIHNwYWNlOiBHZW5pZUNoYXRTcGFjZSxcbiAgY29udmVyc2F0aW9uSWQ6IHN0cmluZyxcbik6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBjbGllbnQuZ2VuaWUuZGVsZXRlQ29udmVyc2F0aW9uKHtcbiAgICBzcGFjZV9pZDogc3BhY2Uuc3BhY2VJZCxcbiAgICBjb252ZXJzYXRpb25faWQ6IGNvbnZlcnNhdGlvbklkLFxuICB9KTtcbn1cblxuLyoqIERlbGV0ZSBvbmUgR2VuaWUgbWVzc2FnZSwgYWNjZXB0aW5nIGVpdGhlciBpdHMgYW5zd2VyIG9yIHF1ZXN0aW9uIHRyYW5zY3JpcHQgaWQuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVsZXRlR2VuaWVUaHJlYWRNZXNzYWdlKFxuICBjbGllbnQ6IFdvcmtzcGFjZUNsaWVudCxcbiAgc3BhY2U6IEdlbmllQ2hhdFNwYWNlLFxuICBjb252ZXJzYXRpb25JZDogc3RyaW5nLFxuICBtZXNzYWdlSWQ6IHN0cmluZyxcbik6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBjbGllbnQuZ2VuaWUuZGVsZXRlQ29udmVyc2F0aW9uTWVzc2FnZSh7XG4gICAgc3BhY2VfaWQ6IHNwYWNlLnNwYWNlSWQsXG4gICAgY29udmVyc2F0aW9uX2lkOiBjb252ZXJzYXRpb25JZCxcbiAgICBtZXNzYWdlX2lkOiBtZXNzYWdlSWQuZW5kc1dpdGgoUVVFU1RJT05fSURfU1VGRklYKVxuICAgICAgPyBtZXNzYWdlSWQuc2xpY2UoMCwgLVFVRVNUSU9OX0lEX1NVRkZJWC5sZW5ndGgpXG4gICAgICA6IG1lc3NhZ2VJZCxcbiAgfSk7XG59XG4iXX0=
|
package/package.json
CHANGED
|
@@ -35,21 +35,21 @@
|
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
37
|
"@databricks/appkit": "0.81.0",
|
|
38
|
-
"@dbx-tools/appkit": "^0.9.
|
|
39
|
-
"@dbx-tools/cache": "^0.9.
|
|
40
|
-
"@dbx-tools/core": "^0.9.
|
|
41
|
-
"@dbx-tools/databricks": "^0.9.
|
|
42
|
-
"@dbx-tools/fs": "^0.9.
|
|
43
|
-
"@dbx-tools/genie": "^0.9.
|
|
44
|
-
"@dbx-tools/model": "^0.9.
|
|
45
|
-
"@dbx-tools/model-protocol": "^0.9.
|
|
46
|
-
"@dbx-tools/path": "^0.9.
|
|
47
|
-
"@dbx-tools/postgres": "^0.9.
|
|
48
|
-
"@dbx-tools/shared-core": "^0.9.
|
|
49
|
-
"@dbx-tools/shared-fs": "^0.9.
|
|
50
|
-
"@dbx-tools/shared-genie": "^0.9.
|
|
51
|
-
"@dbx-tools/shared-mastra": "^0.9.
|
|
52
|
-
"@dbx-tools/shared-model": "^0.9.
|
|
38
|
+
"@dbx-tools/appkit": "^0.9.138",
|
|
39
|
+
"@dbx-tools/cache": "^0.9.138",
|
|
40
|
+
"@dbx-tools/core": "^0.9.138",
|
|
41
|
+
"@dbx-tools/databricks": "^0.9.138",
|
|
42
|
+
"@dbx-tools/fs": "^0.9.138",
|
|
43
|
+
"@dbx-tools/genie": "^0.9.138",
|
|
44
|
+
"@dbx-tools/model": "^0.9.138",
|
|
45
|
+
"@dbx-tools/model-protocol": "^0.9.138",
|
|
46
|
+
"@dbx-tools/path": "^0.9.138",
|
|
47
|
+
"@dbx-tools/postgres": "^0.9.138",
|
|
48
|
+
"@dbx-tools/shared-core": "^0.9.138",
|
|
49
|
+
"@dbx-tools/shared-fs": "^0.9.138",
|
|
50
|
+
"@dbx-tools/shared-genie": "^0.9.138",
|
|
51
|
+
"@dbx-tools/shared-mastra": "^0.9.138",
|
|
52
|
+
"@dbx-tools/shared-model": "^0.9.138",
|
|
53
53
|
"@mastra/ai-sdk": "1.10.5",
|
|
54
54
|
"@mastra/core": "1.71.0",
|
|
55
55
|
"@mastra/express": "1.5.15",
|
|
@@ -227,7 +227,7 @@
|
|
|
227
227
|
"./package.json": "./package.json"
|
|
228
228
|
}
|
|
229
229
|
},
|
|
230
|
-
"version": "0.9.
|
|
230
|
+
"version": "0.9.138",
|
|
231
231
|
"types": "./lib/index.d.ts",
|
|
232
232
|
"dbxToolsConfig": {
|
|
233
233
|
"tags": [
|
package/src/genie-chat.ts
CHANGED
|
@@ -399,11 +399,7 @@ export function genieChatStream(options: {
|
|
|
399
399
|
error: errorUtils.errorMessage(error),
|
|
400
400
|
});
|
|
401
401
|
}
|
|
402
|
-
const question = contextualQuestion(
|
|
403
|
-
request.question,
|
|
404
|
-
request.requestContext,
|
|
405
|
-
memoryContext,
|
|
406
|
-
);
|
|
402
|
+
const question = contextualQuestion(request.question, request.requestContext, memoryContext);
|
|
407
403
|
const progress = (progressEvent: wire.GenieWriterEvent) =>
|
|
408
404
|
writer.write({
|
|
409
405
|
type: wire.GENIE_PROGRESS_PART_TYPE,
|