@dbx-tools/appkit-mastra 0.9.73 → 0.9.74
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/sandbox.js +2 -1
- package/package.json +14 -14
- package/src/sandbox.ts +1 -0
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.74";
|
|
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.74";
|
|
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.74";
|
|
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";
|
|
@@ -64,4 +64,4 @@ export { TRACE_IO_LIMIT, MLFLOW_SPAN_INPUTS_ATTR, MLFLOW_SPAN_OUTPUTS_ATTR, CHAT
|
|
|
64
64
|
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";
|
|
65
65
|
export { DEFAULT_SKILL_FOLDERS } from "./src/workspaces.js";
|
|
66
66
|
export * from "./exports.js";
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRywwQkFBMEIsQ0FBQztBQUM3RCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLEtBQUssTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEtBQUssSUFBSSxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxRQUFRLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxLQUFLLFVBQVUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEtBQUssV0FBVyxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sS0FBSyxLQUFLLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxLQUFLLFFBQVEsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEtBQUssR0FBRyxNQUFNLGNBQWMsQ0FBQztBQUNwQyxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLEtBQUssTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEtBQUssWUFBWSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxhQUFhLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxLQUFLLFdBQVcsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxVQUFVLE1BQU0scUJBQXFCLENBQUM7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QUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSx1QkFBdUIsRUFBRSx3QkFBd0IsRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxvQkFBb0IsRUFBRSxxQkFBcUIsRUFBRSwwQkFBMEIsRUFBRSxnQkFBZ0IsRUFBRSxtQkFBbUIsRUFBRSxzQkFBc0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRW5VLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxxQkFBcUIsRUFBRSxxQkFBcUIsRUFBRSw0QkFBNEIsRUFBRSx3QkFBd0IsRUFBRSx1QkFBdUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXpULE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTVELGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gR0VORVJBVEVEIGJ5IHByb2plbiB3YXRjaCAtIERPIE5PVCBFRElULlxuLy8gUmVnZW5lcmF0ZWQgZnJvbSB0aGUgZXhwb3J0aW5nIG1vZHVsZXMgaW4gLi9zcmMuXG4vLyBIYW5kIGVkaXRzIGFyZSBvdmVyd3JpdHRlbiBvbiB0aGUgbmV4dCB3YXRjaDsgdGhpcyBmaWxlIGlzIHJlYWQtb25seS5cblxuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfSURFTlRJRklFUiA9IFwiQGRieC10b29scy9hcHBraXQtbWFzdHJhXCI7XG5leHBvcnQgY29uc3QgUEFDS0FHRV9WRVJTSU9OID0gXCIwLjkuNzNcIjtcbmV4cG9ydCAqIGFzIGFnZW50cyBmcm9tIFwiLi9zcmMvYWdlbnRzLnRzXCI7XG5leHBvcnQgKiBhcyBjaGFydCBmcm9tIFwiLi9zcmMvY2hhcnQudHNcIjtcbmV4cG9ydCAqIGFzIGNoYXQgZnJvbSBcIi4vc3JjL2NoYXQudHNcIjtcbmV4cG9ydCAqIGFzIGNvbmZpZyBmcm9tIFwiLi9zcmMvY29uZmlnLnRzXCI7XG5leHBvcnQgKiBhcyBkZWZhdWx0cyBmcm9tIFwiLi9zcmMvZGVmYXVsdHMudHNcIjtcbmV4cG9ydCAqIGFzIGV2YWx1YXRpb24gZnJvbSBcIi4vc3JjL2V2YWx1YXRpb24udHNcIjtcbmV4cG9ydCAqIGFzIGZpbGVzeXN0ZW1zIGZyb20gXCIuL3NyYy9maWxlc3lzdGVtcy50c1wiO1xuZXhwb3J0ICogYXMgZ2VuaWUgZnJvbSBcIi4vc3JjL2dlbmllLnRzXCI7XG5leHBvcnQgKiBhcyBpZGVudGl0eSBmcm9tIFwiLi9zcmMvaWRlbnRpdHkudHNcIjtcbmV4cG9ydCAqIGFzIG1jcCBmcm9tIFwiLi9zcmMvbWNwLnRzXCI7XG5leHBvcnQgKiBhcyBtZW1vcnkgZnJvbSBcIi4vc3JjL21lbW9yeS50c1wiO1xuZXhwb3J0ICogYXMgbWxmbG93IGZyb20gXCIuL3NyYy9tbGZsb3cudHNcIjtcbmV4cG9ydCAqIGFzIG1vZGVsIGZyb20gXCIuL3NyYy9tb2RlbC50c1wiO1xuZXhwb3J0ICogYXMgbW9udHlTYW5kYm94IGZyb20gXCIuL3NyYy9tb250eS1zYW5kYm94LnRzXCI7XG5leHBvcnQgKiBhcyBvYnNlcnZhYmlsaXR5IGZyb20gXCIuL3NyYy9vYnNlcnZhYmlsaXR5LnRzXCI7XG5leHBvcnQgKiBhcyBvcGVuYXBpVG9vbCBmcm9tIFwiLi9zcmMvb3BlbmFwaS10b29sLnRzXCI7XG5leHBvcnQgKiBhcyBwbHVnaW4gZnJvbSBcIi4vc3JjL3BsdWdpbi50c1wiO1xuZXhwb3J0ICogYXMgcHJvY2Vzc29ycyBmcm9tIFwiLi9zcmMvcHJvY2Vzc29ycy50c1wiO1xuZXhwb3J0ICogYXMgcmVtb3RlU2tpbGxzIGZyb20gXCIuL3NyYy9yZW1vdGUtc2tpbGxzLnRzXCI7XG5leHBvcnQgKiBhcyByZXN0IGZyb20gXCIuL3NyYy9yZXN0LnRzXCI7XG5leHBvcnQgKiBhcyBzYW5kYm94IGZyb20gXCIuL3NyYy9zYW5kYm94LnRzXCI7XG5leHBvcnQgKiBhcyBzZXJ2ZXIgZnJvbSBcIi4vc3JjL3NlcnZlci50c1wiO1xuZXhwb3J0ICogYXMgc2VydmluZyBmcm9tIFwiLi9zcmMvc2VydmluZy50c1wiO1xuZXhwb3J0ICogYXMgc2VydmluZ1Nhbml0aXplIGZyb20gXCIuL3NyYy9zZXJ2aW5nLXNhbml0aXplLnRzXCI7XG5leHBvcnQgKiBhcyBza2lsbENhY2hlIGZyb20gXCIuL3NyYy9za2lsbC1jYWNoZS50c1wiO1xuZXhwb3J0ICogYXMgc2tpbGxQYXRocyBmcm9tIFwiLi9zcmMvc2tpbGwtcGF0aHMudHNcIjtcbmV4cG9ydCAqIGFzIHN0YXRlbWVudCBmcm9tIFwiLi9zcmMvc3RhdGVtZW50LnRzXCI7XG5leHBvcnQgKiBhcyBzdG9yYWdlU2NoZW1hIGZyb20gXCIuL3NyYy9zdG9yYWdlLXNjaGVtYS50c1wiO1xuZXhwb3J0ICogYXMgc3R5bGUgZnJvbSBcIi4vc3JjL3N0eWxlLnRzXCI7XG5leHBvcnQgKiBhcyBzdW1tYXJpemUgZnJvbSBcIi4vc3JjL3N1bW1hcml6ZS50c1wiO1xuZXhwb3J0ICogYXMgdGVsZW1ldHJ5IGZyb20gXCIuL3NyYy90ZWxlbWV0cnkudHNcIjtcbmV4cG9ydCAqIGFzIHRyYWNlQXR0cmlidXRlcyBmcm9tIFwiLi9zcmMvdHJhY2UtYXR0cmlidXRlcy50c1wiO1xuZXhwb3J0ICogYXMgdmFsaWRhdGlvbiBmcm9tIFwiLi9zcmMvdmFsaWRhdGlvbi50c1wiO1xuZXhwb3J0ICogYXMgd29ya3NwYWNlcyBmcm9tIFwiLi9zcmMvd29ya3NwYWNlcy50c1wiO1xuZXhwb3J0ICogYXMgd3JpdGVyIGZyb20gXCIuL3NyYy93cml0ZXIudHNcIjtcbmV4cG9ydCB7IEZBTExCQUNLX0FHRU5UX0lELCBERUZBVUxUX0FHRU5UX01BWF9TVEVQUywgREVGQVVMVF9TVFlMRV9JTlNUUlVDVElPTlMgfSBmcm9tIFwiLi9zcmMvYWdlbnRzLnRzXCI7XG5leHBvcnQgdHlwZSB7IE1hc3RyYVRvb2xzLCBBcHBLaXRUb29sT3B0aW9ucywgVG9vbGtpdE9wdGlvbnMsIE1hc3RyYVBsdWdpblRvb2xraXRQcm92aWRlciwgTWFzdHJhUGx1Z2lucywgTWFzdHJhVG9vbHNGbiwgTWFzdHJhQWdlbnRXb3Jrc3BhY2VSZXNvbHZlciwgTWFzdHJhQWdlbnREZWZpbml0aW9uLCBBbnlNYXN0cmFBZ2VudERlZmluaXRpb24sIE1hc3RyYVN0b3JhZ2VDb25maWdPdmVycmlkZSwgTWFzdHJhTWVtb3J5Q29uZmlnT3ZlcnJpZGUsIEFnZW50RGVmYXVsdE1vZGVsLCBCdWlsdEFnZW50cyB9IGZyb20gXCIuL3NyYy9hZ2VudHMudHNcIjtcbmV4cG9ydCB7IGNoYXJ0UGxhblNjaGVtYSwgY2hhcnRQbGFubmVyUmVxdWVzdFNjaGVtYSwgY2hhcnRUb29sT3V0cHV0U2NoZW1hIH0gZnJvbSBcIi4vc3JjL2NoYXJ0LnRzXCI7XG5leHBvcnQgdHlwZSB7IENoYXJ0UGxhbm5lclJlcXVlc3QsIENoYXJ0VG9vbE91dHB1dCwgUHJlcGFyZUNoYXJ0T3B0aW9ucywgRmV0Y2hDaGFydE9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvY2hhcnQudHNcIjtcbmV4cG9ydCB7IE1BU1RSQV9VU0VSX0tFWSwgTUFTVFJBX1VTRVJfTkFNRV9LRVksIE1BU1RSQV9VU0VSX0VNQUlMX0tFWSwgTUFTVFJBX1JFUVVFU1RfSURfS0VZLCBNQVNUUkFfU0NPUEVTX0tFWSwgVFJBQ0VfUkVRVUVTVF9DT05URVhUX0tFWVMsIE1BU1RSQV9DT05GSUdfU0NIRU1BIH0gZnJvbSBcIi4vc3JjL2NvbmZpZy50c1wiO1xuZXhwb3J0IHR5cGUgeyBVc2VyLCBNYXN0cmFNZW1vcnlDb25maWcsIE1hc3RyYVNraWxsU2VhcmNoQ29uZmlnLCBNYXN0cmFNY3BDb25maWcsIE1hc3RyYVBsdWdpbkNvbmZpZyB9IGZyb20gXCIuL3NyYy9jb25maWcudHNcIjtcbmV4cG9ydCB7IG1vZGVsQ2F0YWxvZ3VlRGVmYXVsdHMsIGdlbmllU3VnZ2VzdGlvbkRlZmF1bHRzLCBzdGF0ZW1lbnREYXRhRGVmYXVsdHMsIGNoYXJ0RmV0Y2hEZWZhdWx0cywgZmVlZGJhY2tXcml0ZURlZmF1bHRzIH0gZnJvbSBcIi4vc3JjL2RlZmF1bHRzLnRzXCI7XG5leHBvcnQgdHlwZSB7IE1hc3RyYUV2YWxEcml2ZXJPcHRpb25zIH0gZnJvbSBcIi4vc3JjL2V2YWx1YXRpb24udHNcIjtcbmV4cG9ydCB7IE1hc3RyYUZpbGVTeXN0ZW1BZGFwdGVyIH0gZnJvbSBcIi4vc3JjL2ZpbGVzeXN0ZW1zLnRzXCI7XG5leHBvcnQgdHlwZSB7IE1hc3RyYUZpbGVTeXN0ZW1BZGFwdGVyT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9maWxlc3lzdGVtcy50c1wiO1xuZXhwb3J0IHsgREVGQVVMVF9HRU5JRV9BTElBUywgR0VOSUVfSU5TVFJVQ1RJT05TIH0gZnJvbSBcIi4vc3JjL2dlbmllLnRzXCI7XG5leHBvcnQgdHlwZSB7IEdlbmllU3BhY2VDb25maWcsIEdlbmllU3BhY2VzQ29uZmlnIH0gZnJvbSBcIi4vc3JjL2dlbmllLnRzXCI7XG5leHBvcnQgeyBJREVOVElUWV9FTlYsIElERU5USVRZX01PREVTLCBERUZBVUxUX0lERU5USVRZX01PREUsIFVTRVJfSURfSEVBREVSLCBVU0VSX0VNQUlMX0hFQURFUiwgcmVxdWVzdFVzZXJJZCwgcmVxdWVzdFVzZXJFbWFpbCwgdXNlU2VydmljZVByaW5jaXBhbCB9IGZyb20gXCIuL3NyYy9pZGVudGl0eS50c1wiO1xuZXhwb3J0IHR5cGUgeyBNYXN0cmFJZGVudGl0eU1vZGUgfSBmcm9tIFwiLi9zcmMvaWRlbnRpdHkudHNcIjtcbmV4cG9ydCB0eXBlIHsgUmVzb2x2ZWRNY3AgfSBmcm9tIFwiLi9zcmMvbWNwLnRzXCI7XG5leHBvcnQgeyBNZW1vcnlCdWlsZGVyIH0gZnJvbSBcIi4vc3JjL21lbW9yeS50c1wiO1xuZXhwb3J0IHsgQWdlbnRUcmFjZVNwYW5Qcm9jZXNzb3IgfSBmcm9tIFwiLi9zcmMvbWxmbG93LnRzXCI7XG5leHBvcnQgdHlwZSB7IEFwcE1sZmxvd1RyYWNlSW5mbywgTG9nRmVlZGJhY2tQYXJhbXMgfSBmcm9tIFwiLi9zcmMvbWxmbG93LnRzXCI7XG5leHBvcnQgeyBSRVNQT05TRVNfUFJPVklERVJfT1BUSU9OUyB9IGZyb20gXCIuL3NyYy9tb2RlbC50c1wiO1xuZXhwb3J0IHR5cGUgeyBCdWlsZE1vZGVsT3ZlcnJpZGVzIH0gZnJvbSBcIi4vc3JjL21vZGVsLnRzXCI7XG5leHBvcnQgeyBNb250eVNhbmRib3ggfSBmcm9tIFwiLi9zcmMvbW9udHktc2FuZGJveC50c1wiO1xuZXhwb3J0IHR5cGUgeyBNb250eVNhbmRib3hPcHRpb25zIH0gZnJvbSBcIi4vc3JjL21vbnR5LXNhbmRib3gudHNcIjtcbmV4cG9ydCB0eXBlIHsgQnVpbGRPYnNlcnZhYmlsaXR5T3B0aW9ucyB9IGZyb20gXCIuL3NyYy9vYnNlcnZhYmlsaXR5LnRzXCI7XG5leHBvcnQgdHlwZSB7IE9wZW5BcGlIdHRwTWV0aG9kLCBPcGVuQXBpVG9vbCwgT3BlbkFwaVRvb2xzT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9vcGVuYXBpLXRvb2wudHNcIjtcbmV4cG9ydCB7IE1hc3RyYVBsdWdpbiwgbWFzdHJhIH0gZnJvbSBcIi4vc3JjL3BsdWdpbi50c1wiO1xuZXhwb3J0IHsgc3RyaXBTdGFsZUNoYXJ0c1Byb2Nlc3NvciB9IGZyb20gXCIuL3NyYy9wcm9jZXNzb3JzLnRzXCI7XG5leHBvcnQgeyBBSVRPT0xTX1NPVVJDRSB9IGZyb20gXCIuL3NyYy9yZW1vdGUtc2tpbGxzLnRzXCI7XG5leHBvcnQgdHlwZSB7IEFpVG9vbHNTb3VyY2UsIFJlbW90ZVNraWxsU291cmNlT3B0aW9ucywgUmVtb3RlU2tpbGxTb3VyY2UsIFJlbW90ZVNraWxsc09wdGlvbiwgUHJvdmlzaW9uUmVtb3RlU2tpbGxzT3B0aW9ucywgUHJvdmlzaW9uZWRSZW1vdGVTa2lsbHMsIFJlbW90ZVNraWxsQ2FjaGVFbnRyeSwgUmVtb3RlU2tpbGxzTWV0YWRhdGEgfSBmcm9tIFwiLi9zcmMvcmVtb3RlLXNraWxscy50c1wiO1xuZXhwb3J0IHR5cGUgeyBEYXRhYnJpY2tzRmV0Y2hJbml0IH0gZnJvbSBcIi4vc3JjL3Jlc3QudHNcIjtcbmV4cG9ydCB7IERhdGFicmlja3NTYW5kYm94IH0gZnJvbSBcIi4vc3JjL3NhbmRib3gudHNcIjtcbmV4cG9ydCB0eXBlIHsgRGF0YWJyaWNrc1NhbmRib3hPcHRpb25zLCBEYXRhYnJpY2tzV29ya3NwYWNlU2FuZGJveE9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvc2FuZGJveC50c1wiO1xuZXhwb3J0IHsgTWFzdHJhU2VydmVyIH0gZnJvbSBcIi4vc3JjL3NlcnZlci50c1wiO1xuZXhwb3J0IHR5cGUgeyBBdHRyaWJ1dGVkSWRlbnRpdHksIE1hc3RyYUFwaUdhdGVPcHRpb25zIH0gZnJvbSBcIi4vc3JjL3NlcnZlci50c1wiO1xuZXhwb3J0IHsgTUFTVFJBX01PREVMX09WRVJSSURFX0tFWSwgTUFTVFJBX1JFU09MVkVEX01PREVMX0tFWSB9IGZyb20gXCIuL3NyYy9zZXJ2aW5nLnRzXCI7XG5leHBvcnQgdHlwZSB7IE1vZGVsT3ZlcnJpZGVSZXF1ZXN0IH0gZnJvbSBcIi4vc3JjL3NlcnZpbmcudHNcIjtcbmV4cG9ydCB7IERFRkFVTFRfV09SS1NQQUNFX1NLSUxMX0NBQ0hFX1RUTF9NUywgQXBwS2l0Q2FjaGVkRmlsZVN5c3RlbSB9IGZyb20gXCIuL3NyYy9za2lsbC1jYWNoZS50c1wiO1xuZXhwb3J0IHR5cGUgeyBBcHBLaXRDYWNoZWRGaWxlU3lzdGVtT3B0aW9ucywgQ2FjaGVkV29ya3NwYWNlU2tpbGxNb3VudCB9IGZyb20gXCIuL3NyYy9za2lsbC1jYWNoZS50c1wiO1xuZXhwb3J0IHsgQVNTSVNUQU5UX1NIQVJFRF9TS0lMTFNfUEFUSCB9IGZyb20gXCIuL3NyYy9za2lsbC1wYXRocy50c1wiO1xuZXhwb3J0IHsgU1RBVEVNRU5UX1JPV19DQVAgfSBmcm9tIFwiLi9zcmMvc3RhdGVtZW50LnRzXCI7XG5leHBvcnQgeyBUWVBPR1JBUEhZX1JVTEUgfSBmcm9tIFwiLi9zcmMvc3R5bGUudHNcIjtcbmV4cG9ydCB7IFRJVExFX0lOU1RSVUNUSU9OUyB9IGZyb20gXCIuL3NyYy9zdW1tYXJpemUudHNcIjtcbmV4cG9ydCB0eXBlIHsgU3VtbWFyaXplT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9zdW1tYXJpemUudHNcIjtcbmV4cG9ydCB7IFRSQUNFX0lPX0xJTUlULCBNTEZMT1dfU1BBTl9JTlBVVFNfQVRUUiwgTUxGTE9XX1NQQU5fT1VUUFVUU19BVFRSLCBDSEFUX01FU1NBR0VTX0FUVFIsIENIQVRfUkVTUE9OU0VfQVRUUiwgQ0hBVF9JREVOVElUWV9BVFRSLCBDSEFUX0dFTklFX1VTRURfQVRUUiwgTUxGTE9XX1NQQU5fVFlQRV9BVFRSLCBHRU5fQUlfT1BFUkFUSU9OX05BTUVfQVRUUiwgTUxGTE9XX1VTRVJfQVRUUiwgTUxGTE9XX1NFU1NJT05fQVRUUiwgTUxGTE9XX1NQQU5fVFlQRV9BR0VOVCwgTUxGTE9XX1NQQU5fVFlQRV9HRU5JRSB9IGZyb20gXCIuL3NyYy90ZWxlbWV0cnkudHNcIjtcbmV4cG9ydCB0eXBlIHsgQ2hhdFR1cm5UZWxlbWV0cnlPcHRpb25zLCBDaGF0VHJhY2VUYWdWYWx1ZSB9IGZyb20gXCIuL3NyYy90ZWxlbWV0cnkudHNcIjtcbmV4cG9ydCB7IE1MRkxPV19UUkFDRV9UQUdfUFJFRklYLCBNTEZMT1dfQUdFTlRfVEFHLCBNTEZMT1dfR0VOSUVfVEFHLCBNTEZMT1dfT0JPX0FVVEhfVEFHLCBNTEZMT1dfU1BfQVVUSF9UQUcsIE1MRkxPV19MT0NBTF9UQUcsIE1MRkxPV19BR0VOVF9UQUdfQVRUUiwgTUxGTE9XX0dFTklFX1RBR19BVFRSLCBBUFBLSVRfQUdFTlRfVFJBQ0VfUk9PVF9BVFRSLCBNTEZMT1dfT0JPX0FVVEhfVEFHX0FUVFIsIE1MRkxPV19TUF9BVVRIX1RBR19BVFRSLCBNTEZMT1dfTE9DQUxfVEFHX0FUVFIgfSBmcm9tIFwiLi9zcmMvdHJhY2UtYXR0cmlidXRlcy50c1wiO1xuZXhwb3J0IHR5cGUgeyBTY2hlbWFJc3N1ZXMgfSBmcm9tIFwiLi9zcmMvdmFsaWRhdGlvbi50c1wiO1xuZXhwb3J0IHsgREVGQVVMVF9TS0lMTF9GT0xERVJTIH0gZnJvbSBcIi4vc3JjL3dvcmtzcGFjZXMudHNcIjtcbmV4cG9ydCB0eXBlIHsgV29ya3NwYWNlTW91bnRDb250ZXh0LCBTa2lsbEZvbGRlclZhbHVlLCBTa2lsbEZvbGRlck9wdGlvbnMsIFdvcmtzcGFjZU1vdW50Q29udHJpYnV0aW9uLCBXb3Jrc3BhY2VNb3VudFJlc29sdmVyLCBEZWZhdWx0U2tpbGxGb2xkZXJOYW1lLCBXb3Jrc3BhY2VTYW5kYm94U2VsZWN0aW9uLCBDcmVhdGVXb3Jrc3BhY2VPcHRpb25zIH0gZnJvbSBcIi4vc3JjL3dvcmtzcGFjZXMudHNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2V4cG9ydHMudHNcIjtcbiJdfQ==
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRywwQkFBMEIsQ0FBQztBQUM3RCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLEtBQUssTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEtBQUssSUFBSSxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxRQUFRLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxLQUFLLFVBQVUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEtBQUssV0FBVyxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sS0FBSyxLQUFLLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxLQUFLLFFBQVEsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEtBQUssR0FBRyxNQUFNLGNBQWMsQ0FBQztBQUNwQyxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLEtBQUssTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEtBQUssWUFBWSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxhQUFhLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxLQUFLLFdBQVcsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxVQUFVLE1BQU0scUJBQXFCLENBQUM7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QUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSx1QkFBdUIsRUFBRSx3QkFBd0IsRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxvQkFBb0IsRUFBRSxxQkFBcUIsRUFBRSwwQkFBMEIsRUFBRSxnQkFBZ0IsRUFBRSxtQkFBbUIsRUFBRSxzQkFBc0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRW5VLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxxQkFBcUIsRUFBRSxxQkFBcUIsRUFBRSw0QkFBNEIsRUFBRSx3QkFBd0IsRUFBRSx1QkFBdUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXpULE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTVELGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gR0VORVJBVEVEIGJ5IHByb2plbiB3YXRjaCAtIERPIE5PVCBFRElULlxuLy8gUmVnZW5lcmF0ZWQgZnJvbSB0aGUgZXhwb3J0aW5nIG1vZHVsZXMgaW4gLi9zcmMuXG4vLyBIYW5kIGVkaXRzIGFyZSBvdmVyd3JpdHRlbiBvbiB0aGUgbmV4dCB3YXRjaDsgdGhpcyBmaWxlIGlzIHJlYWQtb25seS5cblxuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfSURFTlRJRklFUiA9IFwiQGRieC10b29scy9hcHBraXQtbWFzdHJhXCI7XG5leHBvcnQgY29uc3QgUEFDS0FHRV9WRVJTSU9OID0gXCIwLjkuNzRcIjtcbmV4cG9ydCAqIGFzIGFnZW50cyBmcm9tIFwiLi9zcmMvYWdlbnRzLnRzXCI7XG5leHBvcnQgKiBhcyBjaGFydCBmcm9tIFwiLi9zcmMvY2hhcnQudHNcIjtcbmV4cG9ydCAqIGFzIGNoYXQgZnJvbSBcIi4vc3JjL2NoYXQudHNcIjtcbmV4cG9ydCAqIGFzIGNvbmZpZyBmcm9tIFwiLi9zcmMvY29uZmlnLnRzXCI7XG5leHBvcnQgKiBhcyBkZWZhdWx0cyBmcm9tIFwiLi9zcmMvZGVmYXVsdHMudHNcIjtcbmV4cG9ydCAqIGFzIGV2YWx1YXRpb24gZnJvbSBcIi4vc3JjL2V2YWx1YXRpb24udHNcIjtcbmV4cG9ydCAqIGFzIGZpbGVzeXN0ZW1zIGZyb20gXCIuL3NyYy9maWxlc3lzdGVtcy50c1wiO1xuZXhwb3J0ICogYXMgZ2VuaWUgZnJvbSBcIi4vc3JjL2dlbmllLnRzXCI7XG5leHBvcnQgKiBhcyBpZGVudGl0eSBmcm9tIFwiLi9zcmMvaWRlbnRpdHkudHNcIjtcbmV4cG9ydCAqIGFzIG1jcCBmcm9tIFwiLi9zcmMvbWNwLnRzXCI7XG5leHBvcnQgKiBhcyBtZW1vcnkgZnJvbSBcIi4vc3JjL21lbW9yeS50c1wiO1xuZXhwb3J0ICogYXMgbWxmbG93IGZyb20gXCIuL3NyYy9tbGZsb3cudHNcIjtcbmV4cG9ydCAqIGFzIG1vZGVsIGZyb20gXCIuL3NyYy9tb2RlbC50c1wiO1xuZXhwb3J0ICogYXMgbW9udHlTYW5kYm94IGZyb20gXCIuL3NyYy9tb250eS1zYW5kYm94LnRzXCI7XG5leHBvcnQgKiBhcyBvYnNlcnZhYmlsaXR5IGZyb20gXCIuL3NyYy9vYnNlcnZhYmlsaXR5LnRzXCI7XG5leHBvcnQgKiBhcyBvcGVuYXBpVG9vbCBmcm9tIFwiLi9zcmMvb3BlbmFwaS10b29sLnRzXCI7XG5leHBvcnQgKiBhcyBwbHVnaW4gZnJvbSBcIi4vc3JjL3BsdWdpbi50c1wiO1xuZXhwb3J0ICogYXMgcHJvY2Vzc29ycyBmcm9tIFwiLi9zcmMvcHJvY2Vzc29ycy50c1wiO1xuZXhwb3J0ICogYXMgcmVtb3RlU2tpbGxzIGZyb20gXCIuL3NyYy9yZW1vdGUtc2tpbGxzLnRzXCI7XG5leHBvcnQgKiBhcyByZXN0IGZyb20gXCIuL3NyYy9yZXN0LnRzXCI7XG5leHBvcnQgKiBhcyBzYW5kYm94IGZyb20gXCIuL3NyYy9zYW5kYm94LnRzXCI7XG5leHBvcnQgKiBhcyBzZXJ2ZXIgZnJvbSBcIi4vc3JjL3NlcnZlci50c1wiO1xuZXhwb3J0ICogYXMgc2VydmluZyBmcm9tIFwiLi9zcmMvc2VydmluZy50c1wiO1xuZXhwb3J0ICogYXMgc2VydmluZ1Nhbml0aXplIGZyb20gXCIuL3NyYy9zZXJ2aW5nLXNhbml0aXplLnRzXCI7XG5leHBvcnQgKiBhcyBza2lsbENhY2hlIGZyb20gXCIuL3NyYy9za2lsbC1jYWNoZS50c1wiO1xuZXhwb3J0ICogYXMgc2tpbGxQYXRocyBmcm9tIFwiLi9zcmMvc2tpbGwtcGF0aHMudHNcIjtcbmV4cG9ydCAqIGFzIHN0YXRlbWVudCBmcm9tIFwiLi9zcmMvc3RhdGVtZW50LnRzXCI7XG5leHBvcnQgKiBhcyBzdG9yYWdlU2NoZW1hIGZyb20gXCIuL3NyYy9zdG9yYWdlLXNjaGVtYS50c1wiO1xuZXhwb3J0ICogYXMgc3R5bGUgZnJvbSBcIi4vc3JjL3N0eWxlLnRzXCI7XG5leHBvcnQgKiBhcyBzdW1tYXJpemUgZnJvbSBcIi4vc3JjL3N1bW1hcml6ZS50c1wiO1xuZXhwb3J0ICogYXMgdGVsZW1ldHJ5IGZyb20gXCIuL3NyYy90ZWxlbWV0cnkudHNcIjtcbmV4cG9ydCAqIGFzIHRyYWNlQXR0cmlidXRlcyBmcm9tIFwiLi9zcmMvdHJhY2UtYXR0cmlidXRlcy50c1wiO1xuZXhwb3J0ICogYXMgdmFsaWRhdGlvbiBmcm9tIFwiLi9zcmMvdmFsaWRhdGlvbi50c1wiO1xuZXhwb3J0ICogYXMgd29ya3NwYWNlcyBmcm9tIFwiLi9zcmMvd29ya3NwYWNlcy50c1wiO1xuZXhwb3J0ICogYXMgd3JpdGVyIGZyb20gXCIuL3NyYy93cml0ZXIudHNcIjtcbmV4cG9ydCB7IEZBTExCQUNLX0FHRU5UX0lELCBERUZBVUxUX0FHRU5UX01BWF9TVEVQUywgREVGQVVMVF9TVFlMRV9JTlNUUlVDVElPTlMgfSBmcm9tIFwiLi9zcmMvYWdlbnRzLnRzXCI7XG5leHBvcnQgdHlwZSB7IE1hc3RyYVRvb2xzLCBBcHBLaXRUb29sT3B0aW9ucywgVG9vbGtpdE9wdGlvbnMsIE1hc3RyYVBsdWdpblRvb2xraXRQcm92aWRlciwgTWFzdHJhUGx1Z2lucywgTWFzdHJhVG9vbHNGbiwgTWFzdHJhQWdlbnRXb3Jrc3BhY2VSZXNvbHZlciwgTWFzdHJhQWdlbnREZWZpbml0aW9uLCBBbnlNYXN0cmFBZ2VudERlZmluaXRpb24sIE1hc3RyYVN0b3JhZ2VDb25maWdPdmVycmlkZSwgTWFzdHJhTWVtb3J5Q29uZmlnT3ZlcnJpZGUsIEFnZW50RGVmYXVsdE1vZGVsLCBCdWlsdEFnZW50cyB9IGZyb20gXCIuL3NyYy9hZ2VudHMudHNcIjtcbmV4cG9ydCB7IGNoYXJ0UGxhblNjaGVtYSwgY2hhcnRQbGFubmVyUmVxdWVzdFNjaGVtYSwgY2hhcnRUb29sT3V0cHV0U2NoZW1hIH0gZnJvbSBcIi4vc3JjL2NoYXJ0LnRzXCI7XG5leHBvcnQgdHlwZSB7IENoYXJ0UGxhbm5lclJlcXVlc3QsIENoYXJ0VG9vbE91dHB1dCwgUHJlcGFyZUNoYXJ0T3B0aW9ucywgRmV0Y2hDaGFydE9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvY2hhcnQudHNcIjtcbmV4cG9ydCB7IE1BU1RSQV9VU0VSX0tFWSwgTUFTVFJBX1VTRVJfTkFNRV9LRVksIE1BU1RSQV9VU0VSX0VNQUlMX0tFWSwgTUFTVFJBX1JFUVVFU1RfSURfS0VZLCBNQVNUUkFfU0NPUEVTX0tFWSwgVFJBQ0VfUkVRVUVTVF9DT05URVhUX0tFWVMsIE1BU1RSQV9DT05GSUdfU0NIRU1BIH0gZnJvbSBcIi4vc3JjL2NvbmZpZy50c1wiO1xuZXhwb3J0IHR5cGUgeyBVc2VyLCBNYXN0cmFNZW1vcnlDb25maWcsIE1hc3RyYVNraWxsU2VhcmNoQ29uZmlnLCBNYXN0cmFNY3BDb25maWcsIE1hc3RyYVBsdWdpbkNvbmZpZyB9IGZyb20gXCIuL3NyYy9jb25maWcudHNcIjtcbmV4cG9ydCB7IG1vZGVsQ2F0YWxvZ3VlRGVmYXVsdHMsIGdlbmllU3VnZ2VzdGlvbkRlZmF1bHRzLCBzdGF0ZW1lbnREYXRhRGVmYXVsdHMsIGNoYXJ0RmV0Y2hEZWZhdWx0cywgZmVlZGJhY2tXcml0ZURlZmF1bHRzIH0gZnJvbSBcIi4vc3JjL2RlZmF1bHRzLnRzXCI7XG5leHBvcnQgdHlwZSB7IE1hc3RyYUV2YWxEcml2ZXJPcHRpb25zIH0gZnJvbSBcIi4vc3JjL2V2YWx1YXRpb24udHNcIjtcbmV4cG9ydCB7IE1hc3RyYUZpbGVTeXN0ZW1BZGFwdGVyIH0gZnJvbSBcIi4vc3JjL2ZpbGVzeXN0ZW1zLnRzXCI7XG5leHBvcnQgdHlwZSB7IE1hc3RyYUZpbGVTeXN0ZW1BZGFwdGVyT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9maWxlc3lzdGVtcy50c1wiO1xuZXhwb3J0IHsgREVGQVVMVF9HRU5JRV9BTElBUywgR0VOSUVfSU5TVFJVQ1RJT05TIH0gZnJvbSBcIi4vc3JjL2dlbmllLnRzXCI7XG5leHBvcnQgdHlwZSB7IEdlbmllU3BhY2VDb25maWcsIEdlbmllU3BhY2VzQ29uZmlnIH0gZnJvbSBcIi4vc3JjL2dlbmllLnRzXCI7XG5leHBvcnQgeyBJREVOVElUWV9FTlYsIElERU5USVRZX01PREVTLCBERUZBVUxUX0lERU5USVRZX01PREUsIFVTRVJfSURfSEVBREVSLCBVU0VSX0VNQUlMX0hFQURFUiwgcmVxdWVzdFVzZXJJZCwgcmVxdWVzdFVzZXJFbWFpbCwgdXNlU2VydmljZVByaW5jaXBhbCB9IGZyb20gXCIuL3NyYy9pZGVudGl0eS50c1wiO1xuZXhwb3J0IHR5cGUgeyBNYXN0cmFJZGVudGl0eU1vZGUgfSBmcm9tIFwiLi9zcmMvaWRlbnRpdHkudHNcIjtcbmV4cG9ydCB0eXBlIHsgUmVzb2x2ZWRNY3AgfSBmcm9tIFwiLi9zcmMvbWNwLnRzXCI7XG5leHBvcnQgeyBNZW1vcnlCdWlsZGVyIH0gZnJvbSBcIi4vc3JjL21lbW9yeS50c1wiO1xuZXhwb3J0IHsgQWdlbnRUcmFjZVNwYW5Qcm9jZXNzb3IgfSBmcm9tIFwiLi9zcmMvbWxmbG93LnRzXCI7XG5leHBvcnQgdHlwZSB7IEFwcE1sZmxvd1RyYWNlSW5mbywgTG9nRmVlZGJhY2tQYXJhbXMgfSBmcm9tIFwiLi9zcmMvbWxmbG93LnRzXCI7XG5leHBvcnQgeyBSRVNQT05TRVNfUFJPVklERVJfT1BUSU9OUyB9IGZyb20gXCIuL3NyYy9tb2RlbC50c1wiO1xuZXhwb3J0IHR5cGUgeyBCdWlsZE1vZGVsT3ZlcnJpZGVzIH0gZnJvbSBcIi4vc3JjL21vZGVsLnRzXCI7XG5leHBvcnQgeyBNb250eVNhbmRib3ggfSBmcm9tIFwiLi9zcmMvbW9udHktc2FuZGJveC50c1wiO1xuZXhwb3J0IHR5cGUgeyBNb250eVNhbmRib3hPcHRpb25zIH0gZnJvbSBcIi4vc3JjL21vbnR5LXNhbmRib3gudHNcIjtcbmV4cG9ydCB0eXBlIHsgQnVpbGRPYnNlcnZhYmlsaXR5T3B0aW9ucyB9IGZyb20gXCIuL3NyYy9vYnNlcnZhYmlsaXR5LnRzXCI7XG5leHBvcnQgdHlwZSB7IE9wZW5BcGlIdHRwTWV0aG9kLCBPcGVuQXBpVG9vbCwgT3BlbkFwaVRvb2xzT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9vcGVuYXBpLXRvb2wudHNcIjtcbmV4cG9ydCB7IE1hc3RyYVBsdWdpbiwgbWFzdHJhIH0gZnJvbSBcIi4vc3JjL3BsdWdpbi50c1wiO1xuZXhwb3J0IHsgc3RyaXBTdGFsZUNoYXJ0c1Byb2Nlc3NvciB9IGZyb20gXCIuL3NyYy9wcm9jZXNzb3JzLnRzXCI7XG5leHBvcnQgeyBBSVRPT0xTX1NPVVJDRSB9IGZyb20gXCIuL3NyYy9yZW1vdGUtc2tpbGxzLnRzXCI7XG5leHBvcnQgdHlwZSB7IEFpVG9vbHNTb3VyY2UsIFJlbW90ZVNraWxsU291cmNlT3B0aW9ucywgUmVtb3RlU2tpbGxTb3VyY2UsIFJlbW90ZVNraWxsc09wdGlvbiwgUHJvdmlzaW9uUmVtb3RlU2tpbGxzT3B0aW9ucywgUHJvdmlzaW9uZWRSZW1vdGVTa2lsbHMsIFJlbW90ZVNraWxsQ2FjaGVFbnRyeSwgUmVtb3RlU2tpbGxzTWV0YWRhdGEgfSBmcm9tIFwiLi9zcmMvcmVtb3RlLXNraWxscy50c1wiO1xuZXhwb3J0IHR5cGUgeyBEYXRhYnJpY2tzRmV0Y2hJbml0IH0gZnJvbSBcIi4vc3JjL3Jlc3QudHNcIjtcbmV4cG9ydCB7IERhdGFicmlja3NTYW5kYm94IH0gZnJvbSBcIi4vc3JjL3NhbmRib3gudHNcIjtcbmV4cG9ydCB0eXBlIHsgRGF0YWJyaWNrc1NhbmRib3hPcHRpb25zLCBEYXRhYnJpY2tzV29ya3NwYWNlU2FuZGJveE9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvc2FuZGJveC50c1wiO1xuZXhwb3J0IHsgTWFzdHJhU2VydmVyIH0gZnJvbSBcIi4vc3JjL3NlcnZlci50c1wiO1xuZXhwb3J0IHR5cGUgeyBBdHRyaWJ1dGVkSWRlbnRpdHksIE1hc3RyYUFwaUdhdGVPcHRpb25zIH0gZnJvbSBcIi4vc3JjL3NlcnZlci50c1wiO1xuZXhwb3J0IHsgTUFTVFJBX01PREVMX09WRVJSSURFX0tFWSwgTUFTVFJBX1JFU09MVkVEX01PREVMX0tFWSB9IGZyb20gXCIuL3NyYy9zZXJ2aW5nLnRzXCI7XG5leHBvcnQgdHlwZSB7IE1vZGVsT3ZlcnJpZGVSZXF1ZXN0IH0gZnJvbSBcIi4vc3JjL3NlcnZpbmcudHNcIjtcbmV4cG9ydCB7IERFRkFVTFRfV09SS1NQQUNFX1NLSUxMX0NBQ0hFX1RUTF9NUywgQXBwS2l0Q2FjaGVkRmlsZVN5c3RlbSB9IGZyb20gXCIuL3NyYy9za2lsbC1jYWNoZS50c1wiO1xuZXhwb3J0IHR5cGUgeyBBcHBLaXRDYWNoZWRGaWxlU3lzdGVtT3B0aW9ucywgQ2FjaGVkV29ya3NwYWNlU2tpbGxNb3VudCB9IGZyb20gXCIuL3NyYy9za2lsbC1jYWNoZS50c1wiO1xuZXhwb3J0IHsgQVNTSVNUQU5UX1NIQVJFRF9TS0lMTFNfUEFUSCB9IGZyb20gXCIuL3NyYy9za2lsbC1wYXRocy50c1wiO1xuZXhwb3J0IHsgU1RBVEVNRU5UX1JPV19DQVAgfSBmcm9tIFwiLi9zcmMvc3RhdGVtZW50LnRzXCI7XG5leHBvcnQgeyBUWVBPR1JBUEhZX1JVTEUgfSBmcm9tIFwiLi9zcmMvc3R5bGUudHNcIjtcbmV4cG9ydCB7IFRJVExFX0lOU1RSVUNUSU9OUyB9IGZyb20gXCIuL3NyYy9zdW1tYXJpemUudHNcIjtcbmV4cG9ydCB0eXBlIHsgU3VtbWFyaXplT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9zdW1tYXJpemUudHNcIjtcbmV4cG9ydCB7IFRSQUNFX0lPX0xJTUlULCBNTEZMT1dfU1BBTl9JTlBVVFNfQVRUUiwgTUxGTE9XX1NQQU5fT1VUUFVUU19BVFRSLCBDSEFUX01FU1NBR0VTX0FUVFIsIENIQVRfUkVTUE9OU0VfQVRUUiwgQ0hBVF9JREVOVElUWV9BVFRSLCBDSEFUX0dFTklFX1VTRURfQVRUUiwgTUxGTE9XX1NQQU5fVFlQRV9BVFRSLCBHRU5fQUlfT1BFUkFUSU9OX05BTUVfQVRUUiwgTUxGTE9XX1VTRVJfQVRUUiwgTUxGTE9XX1NFU1NJT05fQVRUUiwgTUxGTE9XX1NQQU5fVFlQRV9BR0VOVCwgTUxGTE9XX1NQQU5fVFlQRV9HRU5JRSB9IGZyb20gXCIuL3NyYy90ZWxlbWV0cnkudHNcIjtcbmV4cG9ydCB0eXBlIHsgQ2hhdFR1cm5UZWxlbWV0cnlPcHRpb25zLCBDaGF0VHJhY2VUYWdWYWx1ZSB9IGZyb20gXCIuL3NyYy90ZWxlbWV0cnkudHNcIjtcbmV4cG9ydCB7IE1MRkxPV19UUkFDRV9UQUdfUFJFRklYLCBNTEZMT1dfQUdFTlRfVEFHLCBNTEZMT1dfR0VOSUVfVEFHLCBNTEZMT1dfT0JPX0FVVEhfVEFHLCBNTEZMT1dfU1BfQVVUSF9UQUcsIE1MRkxPV19MT0NBTF9UQUcsIE1MRkxPV19BR0VOVF9UQUdfQVRUUiwgTUxGTE9XX0dFTklFX1RBR19BVFRSLCBBUFBLSVRfQUdFTlRfVFJBQ0VfUk9PVF9BVFRSLCBNTEZMT1dfT0JPX0FVVEhfVEFHX0FUVFIsIE1MRkxPV19TUF9BVVRIX1RBR19BVFRSLCBNTEZMT1dfTE9DQUxfVEFHX0FUVFIgfSBmcm9tIFwiLi9zcmMvdHJhY2UtYXR0cmlidXRlcy50c1wiO1xuZXhwb3J0IHR5cGUgeyBTY2hlbWFJc3N1ZXMgfSBmcm9tIFwiLi9zcmMvdmFsaWRhdGlvbi50c1wiO1xuZXhwb3J0IHsgREVGQVVMVF9TS0lMTF9GT0xERVJTIH0gZnJvbSBcIi4vc3JjL3dvcmtzcGFjZXMudHNcIjtcbmV4cG9ydCB0eXBlIHsgV29ya3NwYWNlTW91bnRDb250ZXh0LCBTa2lsbEZvbGRlclZhbHVlLCBTa2lsbEZvbGRlck9wdGlvbnMsIFdvcmtzcGFjZU1vdW50Q29udHJpYnV0aW9uLCBXb3Jrc3BhY2VNb3VudFJlc29sdmVyLCBEZWZhdWx0U2tpbGxGb2xkZXJOYW1lLCBXb3Jrc3BhY2VTYW5kYm94U2VsZWN0aW9uLCBDcmVhdGVXb3Jrc3BhY2VPcHRpb25zIH0gZnJvbSBcIi4vc3JjL3dvcmtzcGFjZXMudHNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2V4cG9ydHMudHNcIjtcbiJdfQ==
|
package/lib/src/sandbox.js
CHANGED
|
@@ -451,10 +451,11 @@ function resolveFallback(configured) {
|
|
|
451
451
|
function isDatabricksSandboxUnavailable(caught) {
|
|
452
452
|
const context = errorUtils.errorContext(caught);
|
|
453
453
|
return (context.statusCode === 404 ||
|
|
454
|
+
context.hasMessage("requested", "api", "not", "available") ||
|
|
454
455
|
context.hasMessage("feature", "disabled") ||
|
|
455
456
|
context.hasMessage("sandbox", "not", "enabled") ||
|
|
456
457
|
context.hasMessage("preview", "not", "enabled") ||
|
|
457
458
|
context.hasMessage("preview", "unavailable") ||
|
|
458
459
|
context.hasMessage("preview", "disabled"));
|
|
459
460
|
}
|
|
460
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FuZGJveC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zYW5kYm94LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7R0FTRztBQUdILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFTbEYsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUN4QixPQUFPLEVBQUUsWUFBWSxFQUE0QixNQUFNLG9CQUFvQixDQUFDO0FBRTVFLE1BQU0sZ0JBQWdCLEdBQUcsb0JBQW9CLENBQUM7QUFDOUMsTUFBTSxxQkFBcUIsR0FBRyxpQ0FBaUMsQ0FBQztBQUNoRSxNQUFNLDBCQUEwQixHQUFHLE1BQU0sQ0FBQztBQUMxQyxNQUFNLDBCQUEwQixHQUFHLE9BQU8sQ0FBQztBQUMzQyxNQUFNLDBCQUEwQixHQUFHLE1BQU0sQ0FBQztBQUMxQyxNQUFNLHdCQUF3QixHQUFHLEdBQUcsQ0FBQztBQUNyQyxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFFNUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2xDLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQzdCLENBQUMsQ0FBQztBQUVILE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNyQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNoQixZQUFZLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNuQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNsQyxXQUFXLEVBQUUsQ0FBQyxDQUFD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QUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUNwRSxDQUFDO0FBRUQsU0FBUyw4QkFBOEIsQ0FBQyxNQUFlO0lBQ3JELE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEQsT0FBTyxDQUNMLE9BQU8sQ0FBQyxVQUFVLEtBQUssR0FBRztRQUMxQixPQUFPLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUM7UUFDekMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQztRQUMvQyxPQUFPLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDO1FBQy9DLE9BQU8sQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLGFBQWEsQ0FBQztRQUM1QyxPQUFPLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FDMUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERhdGFicmlja3MgU2FuZGJveCBhZGFwdGVyIGZvciBNYXN0cmEgd29ya3NwYWNlcy5cbiAqXG4gKiBJbXBsZW1lbnRzIE1hc3RyYSdzIGZvcmVncm91bmQgY29tbWFuZCBzdXJmYWNlIG92ZXIgdGhlIERhdGFicmlja3MgU2FuZGJveFxuICogUkVTVCBBUEkuIFNhbmRib3hlcyBhcmUgY3JlYXRlZCBsYXppbHksIHJldGFpbiB0aGVpciBob21lIGRpcmVjdG9yeSBhY3Jvc3NcbiAqIGluYWN0aXZpdHkgc3RvcHMsIGFuZCBleGVjdXRlIHVudHJ1c3RlZCBzaGVsbCBjb21tYW5kcyBvdXRzaWRlIHRoZSBBcHBcbiAqIGNvbnRhaW5lci5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBXb3Jrc3BhY2VDbGllbnQgfSBmcm9tIFwiQGRhdGFicmlja3MvYXBwa2l0XCI7XG5pbXBvcnQgeyBkYXRhYnJpY2tzIH0gZnJvbSBcIkBkYngtdG9vbHMvYXBwa2l0XCI7XG5pbXBvcnQgeyBhc3luY1V0aWxzLCBlcnJvclV0aWxzLCBsb2csIHN0cmluZ1V0aWxzIH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWNvcmVcIjtcbmltcG9ydCB0eXBlIHsgUmVxdWVzdENvbnRleHQgfSBmcm9tIFwiQG1hc3RyYS9jb3JlL3JlcXVlc3QtY29udGV4dFwiO1xuaW1wb3J0IHR5cGUge1xuICBDb21tYW5kUmVzdWx0LFxuICBFeGVjdXRlQ29tbWFuZE9wdGlvbnMsXG4gIFByb3ZpZGVyU3RhdHVzLFxuICBTYW5kYm94SW5mbyxcbiAgV29ya3NwYWNlU2FuZGJveCxcbn0gZnJvbSBcIkBtYXN0cmEvY29yZS93b3Jrc3BhY2VcIjtcbmltcG9ydCB7IHogfSBmcm9tIFwiem9kXCI7XG5pbXBvcnQgeyBNb250eVNhbmRib3gsIHR5cGUgTW9udHlTYW5kYm94T3B0aW9ucyB9IGZyb20gXCIuL21vbnR5LXNhbmRib3gudHNcIjtcblxuY29uc3QgU0FOREJPWF9BUElfUEFUSCA9IFwiL2FwaS8yLjAvc2FuZGJveGVzXCI7XG5jb25zdCBTQU5EQk9YX0VYRUNfQVBJX1BBVEggPSBcIi9hcGkvMi4wL3NhbmRib3gtZXhlYy9zYW5kYm94ZXNcIjtcbmNvbnN0IERFRkFVTFRfSU5BQ1RJVklUWV9USU1FT1VUID0gXCI5MDBzXCI7XG5jb25zdCBERUZBVUxUX1NUQVJUVVBfVElNRU9VVF9NUyA9IDEyMF8wMDA7XG5jb25zdCBERUZBVUxUX0NPTU1BTkRfVElNRU9VVF9NUyA9IDMwXzAwMDtcbmNvbnN0IFNBTkRCT1hfUE9MTF9JTlRFUlZBTF9NUyA9IDUwMDtcbmNvbnN0IGxvZ2dlciA9IGxvZy5sb2dnZXIoXCJtYXN0cmEvc2FuZGJveFwiKTtcblxuY29uc3QgU2FuZGJveFN0YXRlU2NoZW1hID0gei5vYmplY3Qoe1xuICBzdGF0ZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxufSk7XG5cbmNvbnN0IFNhbmRib3hSZXNwb25zZVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgbmFtZTogei5zdHJpbmcoKSxcbiAgZGlzcGxheV9uYW1lOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGNyZWF0ZV90aW1lOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHVwZGF0ZV90aW1lOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHN0YXR1czogU2FuZGJveFN0YXRlU2NoZW1hLm9wdGlvbmFsKCksXG59KTtcblxuY29uc3QgRXhlY3V0ZVJlc3BvbnNlU2NoZW1hID0gei5vYmplY3Qoe1xuICBleGl0X2NvZGU6IHoubnVtYmVyKCkuaW50KCkub3B0aW9uYWwoKSxcbiAgc3RhdHVzOiB6LnN0cmluZygpLFxuICBzdGRvdXQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgc3RkZXJyOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGNvbW1hbmRfaWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgdHJ1bmNhdGVkOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxufSk7XG5cbi8qKiBPcHRpb25zIGZvciBvbmUgRGF0YWJyaWNrcy1iYWNrZWQgTWFzdHJhIHNhbmRib3guICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGFicmlja3NTYW5kYm94T3B0aW9ucyB7XG4gIC8qKiBBcHBLaXQgd29ya3NwYWNlIGNsaWVudCB1c2VkIGZvciBldmVyeSBzYW5kYm94IEFQSSBjYWxsLiAqL1xuICBjbGllbnQ6IFdvcmtzcGFjZUNsaWVudDtcbiAgLyoqIFJlc291cmNlIGlkLCB3aXRoIG9yIHdpdGhvdXQgdGhlIGBzYW5kYm94ZXMvYCBwcmVmaXguICovXG4gIHNhbmRib3hJZDogc3RyaW5nO1xuICAvKiogSHVtYW4tcmVhZGFibGUgRGF0YWJyaWNrcyBsYWJlbC4gKi9cbiAgZGlzcGxheU5hbWU/OiBzdHJpbmc7XG4gIC8qKiBTZXJ2ZXItc2lkZSBpZGxlIHRpbWVvdXQgaW4gcHJvdG9idWYgZHVyYXRpb24gZm9ybS4gRGVmYXVsdHMgdG8gYDkwMHNgLiAqL1xuICBpbmFjdGl2aXR5VGltZW91dD86IHN0cmluZztcbiAgLyoqIE1heGltdW0gdGltZSB0byB3YWl0IGZvciB0aGUgc2FuZGJveCB0byBiZWNvbWUgcnVubmFibGUuICovXG4gIHN0YXJ0dXBUaW1lb3V0TXM/OiBudW1iZXI7XG4gIC8qKiBEZWZhdWx0IGNvbW1hbmQgdGltZW91dC4gUGVyLWNhbGwgYG9wdGlvbnMudGltZW91dGAgd2lucy4gKi9cbiAgY29tbWFuZFRpbWVvdXRNcz86IG51bWJlcjtcbiAgLyoqXG4gICAqIFByb3ZpZGVyIHVzZWQgb25seSB3aGVuIERhdGFicmlja3MgU2FuZGJveCBpcyBkZWZpbml0aXZlbHkgdW5hdmFpbGFibGUuXG4gICAqIERlZmF1bHRzIHRvIHRoZSBOb2RlIFB5ZGFudGljIE1vbnR5IHJ1bnRpbWU7IGBmYWxzZWAgZmFpbHMgaW5zdGVhZC5cbiAgICovXG4gIGZhbGxiYWNrPzogZmFsc2UgfCBcIm1vbnR5XCIgfCBNb250eVNhbmRib3hPcHRpb25zIHwgV29ya3NwYWNlU2FuZGJveDtcbn1cblxuLyoqIERhdGFicmlja3Mgb3B0aW9ucyBhY2NlcHRlZCBieSB0aGUgaGlnaGVyLWxldmVsIHdvcmtzcGFjZSBmYWN0b3J5LiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhYnJpY2tzV29ya3NwYWNlU2FuZGJveE9wdGlvbnMgZXh0ZW5kcyBPbWl0PFxuICBEYXRhYnJpY2tzU2FuZGJveE9wdGlvbnMsXG4gIFwiY2xpZW50XCIgfCBcInNhbmRib3hJZFwiXG4+IHtcbiAgLyoqIFByb3ZpZGVyIGRpc2NyaW1pbmF0b3IuIERlZmF1bHRzIHRvIGBkYXRhYnJpY2tzYC4gKi9cbiAgcHJvdmlkZXI/OiBcImRhdGFicmlja3NcIjtcbiAgLyoqXG4gICAqIENyZWRlbnRpYWwgc291cmNlLiBEZWZhdWx0cyB0byBhIGZyZXNoIEFwcEtpdCBjbGllbnQgdXNpbmcgdGhlIG5vcm1hbFxuICAgKiBlbnZpcm9ubWVudC9wcm9maWxlIGNoYWluLCB3aGljaCBpcyB0aGUgYXBwIHNlcnZpY2UgcHJpbmNpcGFsIGluIGFcbiAgICogRGF0YWJyaWNrcyBBcHAuXG4gICAqL1xuICBjbGllbnQ/OiBXb3Jrc3BhY2VDbGllbnQgfCAoKGNvbnRleHQ6IHsgcmVxdWVzdENvbnRleHQ6IFJlcXVlc3RDb250ZXh0IH0pID0+IFdvcmtzcGFjZUNsaWVudCk7XG4gIC8qKlxuICAgKiBGaXhlZCBpZCBvciBwZXItcmVxdWVzdCByZXNvbHZlci4gT21pdCB0byBkZXJpdmUgYSBzdGFibGUsIG9wYXF1ZSBpZCBmcm9tXG4gICAqIHRoZSB3b3Jrc3BhY2UgYW5kIGF0dHJpYnV0ZWQgdXNlci5cbiAgICovXG4gIHNhbmRib3hJZD86IHN0cmluZyB8ICgoY29udGV4dDogeyByZXF1ZXN0Q29udGV4dDogUmVxdWVzdENvbnRleHQgfSkgPT4gc3RyaW5nKTtcbn1cblxuLyoqIE1hc3RyYSBzYW5kYm94IGJhY2tlZCBieSBEYXRhYnJpY2tzIHNlcnZlcmxlc3MgU2FuZGJveCBjb21wdXRlLiAqL1xuZXhwb3J0IGNsYXNzIERhdGFicmlja3NTYW5kYm94IGltcGxlbWVudHMgV29ya3NwYWNlU2FuZGJveCB7XG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgc3RhdHVzOiBQcm92aWRlclN0YXR1cyA9IFwicGVuZGluZ1wiO1xuICBlcnJvcj86IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IGNsaWVudDogV29ya3NwYWNlQ2xpZW50O1xuICBwcml2YXRlIHJlYWRvbmx5IGRpc3BsYXlOYW1lOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW5hY3Rpdml0eVRpbWVvdXQ6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBzdGFydHVwVGltZW91dE1zOiBudW1iZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29tbWFuZFRpbWVvdXRNczogbnVtYmVyO1xuICBwcml2YXRlIHJlYWRvbmx5IGZhbGxiYWNrQ29uZmlnOiBFeGNsdWRlPERhdGFicmlja3NTYW5kYm94T3B0aW9uc1tcImZhbGxiYWNrXCJdLCB1bmRlZmluZWQ+O1xuICBwcml2YXRlIHJlYWRvbmx5IGNyZWF0ZWRBdCA9IG5ldyBEYXRlKCk7XG4gIHByaXZhdGUgcmVtb3RlQ3JlYXRlZEF0PzogRGF0ZTtcbiAgcHJpdmF0ZSBsYXN0VXNlZEF0PzogRGF0ZTtcbiAgcHJpdmF0ZSBhY3RpdmVGYWxsYmFjaz86IFdvcmtzcGFjZVNhbmRib3g7XG4gIHByaXZhdGUgZmFsbGJhY2tQcm9taXNlPzogUHJvbWlzZTx2b2lkPjtcbiAgcHJpdmF0ZSBzdGFydFByb21pc2U/OiBQcm9taXNlPHZvaWQ+O1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IERhdGFicmlja3NTYW5kYm94T3B0aW9ucykge1xuICAgIGNvbnN0IGlkID0gc3RyaW5nVXRpbHMudHJpbVRvTnVsbChvcHRpb25zLnNhbmRib3hJZC5yZXBsYWNlKC9ec2FuZGJveGVzXFwvLywgXCJcIikpO1xuICAgIGlmICghaWQpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJEYXRhYnJpY2tzIHNhbmRib3ggaWQgbXVzdCBub3QgYmUgYmxhbmtcIik7XG4gICAgdGhpcy5pZCA9IGlkO1xuICAgIHRoaXMubmFtZSA9IG9wdGlvbnMuZGlzcGxheU5hbWU/LnRyaW0oKSB8fCBgTWFzdHJhIHNhbmRib3ggJHtpZH1gO1xuICAgIHRoaXMuY2xpZW50ID0gb3B0aW9ucy5jbGllbnQ7XG4gICAgdGhpcy5kaXNwbGF5TmFtZSA9IHRoaXMubmFtZTtcbiAgICB0aGlzLmluYWN0aXZpdHlUaW1lb3V0ID0gb3B0aW9ucy5pbmFjdGl2aXR5VGltZW91dCA/PyBERUZBVUxUX0lOQUNUSVZJVFlfVElNRU9VVDtcbiAgICB0aGlzLnN0YXJ0dXBUaW1lb3V0TXMgPSBvcHRpb25zLnN0YXJ0dXBUaW1lb3V0TXMgPz8gREVGQVVMVF9TVEFSVFVQX1RJTUVPVVRfTVM7XG4gICAgdGhpcy5jb21tYW5kVGltZW91dE1zID0gb3B0aW9ucy5jb21tYW5kVGltZW91dE1zID8/IERFRkFVTFRfQ09NTUFORF9USU1FT1VUX01TO1xuICAgIHRoaXMuZmFsbGJhY2tDb25maWcgPSBvcHRpb25zLmZhbGxiYWNrID8/IFwibW9udHlcIjtcbiAgfVxuXG4gIGdldCBwcm92aWRlcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmFjdGl2ZUZhbGxiYWNrPy5wcm92aWRlciA/PyBcImRhdGFicmlja3NcIjtcbiAgfVxuXG4gIC8qKiBFbnN1cmUgdGhlIHJlbW90ZSBzYW5kYm94IGV4aXN0cyBhbmQgaGFzIHJlYWNoZWQgaXRzIHJ1bm5pbmcgc3RhdGUuICovXG4gIGFzeW5jIHN0YXJ0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuc3RhcnRXaXRoU2lnbmFsKCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHN0YXJ0V2l0aFNpZ25hbChzaWduYWw/OiBBYm9ydFNpZ25hbCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLnN0YXR1cyA9PT0gXCJydW5uaW5nXCIpIHJldHVybjtcbiAgICBpZiAodGhpcy5zdGFydFByb21pc2UpIHtcbiAgICAgIGF3YWl0IHRoaXMuc3RhcnRQcm9taXNlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBwZW5kaW5nID0gdGhpcy5wZXJmb3JtU3RhcnQoc2lnbmFsKTtcbiAgICB0aGlzLnN0YXJ0UHJvbWlzZSA9IHBlbmRpbmc7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHBlbmRpbmc7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmICh0aGlzLnN0YXJ0UHJvbWlzZSA9PT0gcGVuZGluZykgdGhpcy5zdGFydFByb21pc2UgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBwZXJmb3JtU3RhcnQoc2lnbmFsPzogQWJvcnRTaWduYWwpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5hY3RpdmVGYWxsYmFjaykge1xuICAgICAgYXdhaXQgdGhpcy5hY3RpdmVGYWxsYmFjay5zdGFydD8uKCk7XG4gICAgICB0aGlzLnN0YXR1cyA9IHRoaXMuYWN0aXZlRmFsbGJhY2suc3RhdHVzO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnN0YXR1cyA9IFwic3RhcnRpbmdcIjtcbiAgICB0aGlzLmVycm9yID0gdW5kZWZpbmVkO1xuICAgIHRyeSB7XG4gICAgICBsZXQgc2FuZGJveCA9IGF3YWl0IHRoaXMuZ2V0T3JDcmVhdGUoc2lnbmFsKTtcbiAgICAgIGlmIChzYW5kYm94LnN0YXR1cz8uc3RhdGUgPT09IFwiU0FOREJPWF9TVEFURV9TVE9QUEVEXCIpIHtcbiAgICAgICAgc2FuZGJveCA9IGF3YWl0IHRoaXMubXV0YXRlKFwic3RhcnRcIiwgc2lnbmFsKTtcbiAgICAgIH1cbiAgICAgIGlmIChzYW5kYm94LnN0YXR1cz8uc3RhdGUgPT09IFwiU0FOREJPWF9TVEFURV9TVE9QUElOR1wiKSB7XG4gICAgICAgIGF3YWl0IHRoaXMud2FpdEZvclN0YXRlKFwiU0FOREJPWF9TVEFURV9TVE9QUEVEXCIsIHNpZ25hbCk7XG4gICAgICAgIHNhbmRib3ggPSBhd2FpdCB0aGlzLm11dGF0ZShcInN0YXJ0XCIsIHNpZ25hbCk7XG4gICAgICB9XG4gICAgICBpZiAoc2FuZGJveC5zdGF0dXM/LnN0YXRlICE9PSBcIlNBTkRCT1hfU1RBVEVfUlVOTklOR1wiKSB7XG4gICAgICAgIGF3YWl0IHRoaXMud2FpdEZvclN0YXRlKFwiU0FOREJPWF9TVEFURV9SVU5OSU5HXCIsIHNpZ25hbCk7XG4gICAgICB9XG4gICAgICB0aGlzLnN0YXR1cyA9IFwicnVubmluZ1wiO1xuICAgICAgdGhpcy5sYXN0VXNlZEF0ID0gbmV3IERhdGUoKTtcbiAgICB9IGNhdGNoIChjYXVnaHQpIHtcbiAgICAgIGlmICh0aGlzLmZhbGxiYWNrQ29uZmlnICE9PSBmYWxzZSAmJiBpc0RhdGFicmlja3NTYW5kYm94VW5hdmFpbGFibGUoY2F1Z2h0KSkge1xuICAgICAgICBhd2FpdCB0aGlzLmFjdGl2YXRlRmFsbGJhY2soY2F1Z2h0KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5zdGF0dXMgPSBcImVycm9yXCI7XG4gICAgICB0aGlzLmVycm9yID0gZXJyb3JVdGlscy5lcnJvck1lc3NhZ2UoY2F1Z2h0KTtcbiAgICAgIHRocm93IGNhdWdodDtcbiAgICB9XG4gIH1cblxuICAvKiogRGF0YWJyaWNrcyBob21lIHBlcnNpc3RlbmNlIGlzIG5vdCBhIGNsb25lYWJsZSBNYXN0cmEgY2hlY2twb2ludC4gKi9cbiAgYXN5bmMgc25hcHNob3QoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5hY3RpdmVGYWxsYmFjaz8uc25hcHNob3QoKTtcbiAgfVxuXG4gIGdldCBzdXBwb3J0c0NoZWNrcG9pbnRzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFjdGl2ZUZhbGxiYWNrPy5zdXBwb3J0c0NoZWNrcG9pbnRzID8/IGZhbHNlO1xuICB9XG5cbiAgLyoqIFN0b3AgY29tcHV0ZSB3aGlsZSBwcmVzZXJ2aW5nIHRoZSBzYW5kYm94IGhvbWUgZGlyZWN0b3J5LiAqL1xuICBhc3luYyBzdG9wKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmFjdGl2ZUZhbGxiYWNrKSB7XG4gICAgICBhd2FpdCB0aGlzLmFjdGl2ZUZhbGxiYWNrLnN0b3A/LigpO1xuICAgICAgdGhpcy5zdGF0dXMgPSB0aGlzLmFjdGl2ZUZhbGxiYWNrLnN0YXR1cztcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuc3RhdHVzID09PSBcInN0b3BwZWRcIiB8fCB0aGlzLnN0YXR1cyA9PT0gXCJkZXN0cm95ZWRcIikgcmV0dXJuO1xuICAgIHRoaXMuc3RhdHVzID0gXCJzdG9wcGluZ1wiO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLm11dGF0ZShcInN0b3BcIik7XG4gICAgICB0aGlzLnN0YXR1cyA9IFwic3RvcHBlZFwiO1xuICAgIH0gY2F0Y2ggKGNhdWdodCkge1xuICAgICAgaWYgKGlzU3RhdHVzKGNhdWdodCwgNDA0KSkge1xuICAgICAgICB0aGlzLnN0YXR1cyA9IFwic3RvcHBlZFwiO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLnN0YXR1cyA9IFwiZXJyb3JcIjtcbiAgICAgIHRoaXMuZXJyb3IgPSBlcnJvclV0aWxzLmVycm9yTWVzc2FnZShjYXVnaHQpO1xuICAgICAgdGhyb3cgY2F1Z2h0O1xuICAgIH1cbiAgfVxuXG4gIC8qKiBQZXJtYW5lbnRseSBkZWxldGUgdGhlIHNhbmRib3ggYW5kIGl0cyBwZXJzaXN0ZWQgaG9tZSBkaXJlY3RvcnkuICovXG4gIGFzeW5jIGRlc3Ryb3koKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuYWN0aXZlRmFsbGJhY2spIHtcbiAgICAgIGF3YWl0IHRoaXMuYWN0aXZlRmFsbGJhY2suZGVzdHJveT8uKCk7XG4gICAgICB0aGlzLnN0YXR1cyA9IHRoaXMuYWN0aXZlRmFsbGJhY2suc3RhdHVzO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5zdGF0dXMgPT09IFwiZGVzdHJveWVkXCIpIHJldHVybjtcbiAgICB0aGlzLnN0YXR1cyA9IFwiZGVzdHJveWluZ1wiO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLnJlcXVlc3QoYCR7dGhpcy5yZXNvdXJjZVBhdGh9YCwgXCJERUxFVEVcIiwgei5vYmplY3Qoe30pLnBhc3N0aHJvdWdoKCkpO1xuICAgICAgdGhpcy5zdGF0dXMgPSBcImRlc3Ryb3llZFwiO1xuICAgIH0gY2F0Y2ggKGNhdWdodCkge1xuICAgICAgaWYgKGlzU3RhdHVzKGNhdWdodCwgNDA0KSkge1xuICAgICAgICB0aGlzLnN0YXR1cyA9IFwiZGVzdHJveWVkXCI7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuc3RhdHVzID0gXCJlcnJvclwiO1xuICAgICAgdGhpcy5lcnJvciA9IGVycm9yVXRpbHMuZXJyb3JNZXNzYWdlKGNhdWdodCk7XG4gICAgICB0aHJvdyBjYXVnaHQ7XG4gICAgfVxuICB9XG5cbiAgLyoqIEV4ZWN1dGUgb25lIGZvcmVncm91bmQgc2hlbGwgY29tbWFuZCBpbiB0aGUgcmVtb3RlIHNhbmRib3guICovXG4gIGFzeW5jIGV4ZWN1dGVDb21tYW5kKFxuICAgIGNvbW1hbmQ6IHN0cmluZyxcbiAgICBhcmdzOiBzdHJpbmdbXSA9IFtdLFxuICAgIG9wdGlvbnM6IEV4ZWN1dGVDb21tYW5kT3B0aW9ucyA9IHt9LFxuICApOiBQcm9taXNlPENvbW1hbmRSZXN1bHQ+IHtcbiAgICBhd2FpdCB0aGlzLnN0YXJ0V2l0aFNpZ25hbChvcHRpb25zLmFib3J0U2lnbmFsKTtcbiAgICBpZiAodGhpcy5hY3RpdmVGYWxsYmFjaykge1xuICAgICAgcmV0dXJuIHRoaXMuZXhlY3V0ZUZhbGxiYWNrKGNvbW1hbmQsIGFyZ3MsIG9wdGlvbnMpO1xuICAgIH1cbiAgICBjb25zdCB0aW1lb3V0ID0gb3B0aW9ucy50aW1lb3V0ID8/IHRoaXMuY29tbWFuZFRpbWVvdXRNcztcbiAgICBjb25zdCBzY3JpcHQgPSBjb21tYW5kU2NyaXB0KGNvbW1hbmQsIGFyZ3MsIG9wdGlvbnMuY3dkKTtcbiAgICBjb25zdCBzdGFydGVkID0gcGVyZm9ybWFuY2Uubm93KCk7XG4gICAgbGV0IHJlc3BvbnNlOiB6LmluZmVyPHR5cGVvZiBFeGVjdXRlUmVzcG9uc2VTY2hlbWE+O1xuICAgIHRyeSB7XG4gICAgICByZXNwb25zZSA9IGF3YWl0IHRoaXMucmVxdWVzdChcbiAgICAgICAgYCR7U0FOREJPWF9FWEVDX0FQSV9QQVRIfS8ke2VuY29kZVVSSUNvbXBvbmVudCh0aGlzLmlkKX0vZXhlYy1zeW5jYCxcbiAgICAgICAgXCJQT1NUXCIsXG4gICAgICAgIEV4ZWN1dGVSZXNwb25zZVNjaGVtYSxcbiAgICAgICAge1xuICAgICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICAgIGNtZDogXCIvYmluL2Jhc2hcIixcbiAgICAgICAgICAgIGFyZ3M6IFtcIi1sY1wiLCBzY3JpcHRdLFxuICAgICAgICAgICAgZW52czogZGVmaW5lZEVudmlyb25tZW50KG9wdGlvbnMuZW52KSxcbiAgICAgICAgICAgIGV4ZWN1dGlvbl90aW1lb3V0OiBgJHtNYXRoLm1heCgxLCBNYXRoLmNlaWwodGltZW91dCAvIDFfMDAwKSl9c2AsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzaWduYWw6IG9wdGlvbnMuYWJvcnRTaWduYWwsXG4gICAgICAgIH0sXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGNhdWdodCkge1xuICAgICAgaWYgKHRoaXMuZmFsbGJhY2tDb25maWcgPT09IGZhbHNlIHx8ICFpc0RhdGFicmlja3NTYW5kYm94VW5hdmFpbGFibGUoY2F1Z2h0KSkgdGhyb3cgY2F1Z2h0O1xuICAgICAgYXdhaXQgdGhpcy5hY3RpdmF0ZUZhbGxiYWNrKGNhdWdodCk7XG4gICAgICByZXR1cm4gdGhpcy5leGVjdXRlRmFsbGJhY2soY29tbWFuZCwgYXJncywgb3B0aW9ucyk7XG4gICAgfVxuICAgIGNvbnN0IHN0ZG91dCA9IHJlc3BvbnNlLnN0ZG91dCA/PyBcIlwiO1xuICAgIGNvbnN0IHN0ZGVyciA9IHJlc3BvbnNlLnN0ZGVyciA/PyBcIlwiO1xuICAgIG9wdGlvbnMub25TdGRvdXQ/LihzdGRvdXQpO1xuICAgIG9wdGlvbnMub25TdGRlcnI/LihzdGRlcnIpO1xuICAgIHRoaXMubGFzdFVzZWRBdCA9IG5ldyBEYXRlKCk7XG4gICAgY29uc3QgdGltZWRPdXQgPSByZXNwb25zZS5zdGF0dXMgPT09IFwiRVhFQ1VURV9DT01NQU5EX1NUQVRVU19USU1FRF9PVVRcIjtcbiAgICBjb25zdCBleGl0Q29kZSA9IHJlc3BvbnNlLmV4aXRfY29kZSA/PyAtMTtcbiAgICByZXR1cm4ge1xuICAgICAgY29tbWFuZCxcbiAgICAgIGFyZ3MsXG4gICAgICBzdWNjZXNzOiByZXNwb25zZS5zdGF0dXMgPT09IFwiRVhFQ1VURV9DT01NQU5EX1NUQVRVU19DT01QTEVURURcIiAmJiBleGl0Q29kZSA9PT0gMCxcbiAgICAgIGV4aXRDb2RlLFxuICAgICAgc3Rkb3V0LFxuICAgICAgc3RkZXJyLFxuICAgICAgZXhlY3V0aW9uVGltZU1zOiBwZXJmb3JtYW5jZS5ub3coKSAtIHN0YXJ0ZWQsXG4gICAgICAuLi4odGltZWRPdXQgPyB7IHRpbWVkT3V0OiB0cnVlLCBraWxsZWQ6IHRydWUgfSA6IHt9KSxcbiAgICAgIC4uLihyZXNwb25zZS50cnVuY2F0ZWRcbiAgICAgICAgPyB7XG4gICAgICAgICAgICBzdGRvdXRUcnVuY2F0ZWQ6IHRydWUsXG4gICAgICAgICAgICBzdGRlcnJUcnVuY2F0ZWQ6IHRydWUsXG4gICAgICAgICAgfVxuICAgICAgICA6IHt9KSxcbiAgICB9O1xuICB9XG5cbiAgLyoqIEFjdGl2YXRlIHRoZSBjb25maWd1cmVkIGZhbGxiYWNrIG9uY2UgYWNyb3NzIGNvbmN1cnJlbnQgY29tbWFuZCBmYWlsdXJlcy4gKi9cbiAgcHJpdmF0ZSBhc3luYyBhY3RpdmF0ZUZhbGxiYWNrKGNhdWdodDogdW5rbm93bik6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmFjdGl2ZUZhbGxiYWNrKSByZXR1cm47XG4gICAgaWYgKHRoaXMuZmFsbGJhY2tQcm9taXNlKSB7XG4gICAgICBhd2FpdCB0aGlzLmZhbGxiYWNrUHJvbWlzZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgcGVuZGluZyA9IHRoaXMuc3RhcnRGYWxsYmFjayhjYXVnaHQpO1xuICAgIHRoaXMuZmFsbGJhY2tQcm9taXNlID0gcGVuZGluZztcbiAgICB0cnkge1xuICAgICAgYXdhaXQgcGVuZGluZztcbiAgICB9IGZpbmFsbHkge1xuICAgICAgaWYgKHRoaXMuZmFsbGJhY2tQcm9taXNlID09PSBwZW5kaW5nKSB0aGlzLmZhbGxiYWNrUHJvbWlzZSA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICAvKiogU3RhcnQgYW5kIHB1Ymxpc2ggdGhlIGNvbmZpZ3VyZWQgZmFsbGJhY2sgYWZ0ZXIgcmVjaGVja2luZyBhY3RpdmUgc3RhdGUuICovXG4gIHByaXZhdGUgYXN5bmMgc3RhcnRGYWxsYmFjayhjYXVnaHQ6IHVua25vd24pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5hY3RpdmVGYWxsYmFjaykgcmV0dXJuO1xuICAgIGlmICh0aGlzLmZhbGxiYWNrQ29uZmlnID09PSBmYWxzZSkgdGhyb3cgY2F1Z2h0O1xuICAgIGNvbnN0IGZhbGxiYWNrID0gcmVzb2x2ZUZhbGxiYWNrKHRoaXMuZmFsbGJhY2tDb25maWcpO1xuICAgIGxvZ2dlci53YXJuKFwiRGF0YWJyaWNrcyBTYW5kYm94IHVuYXZhaWxhYmxlOyB1c2luZyBmYWxsYmFja1wiLCB7XG4gICAgICBzYW5kYm94SWQ6IHRoaXMuaWQsXG4gICAgICBmYWxsYmFjazogZmFsbGJhY2sucHJvdmlkZXIsXG4gICAgICBlcnJvcjogZXJyb3JVdGlscy5lcnJvck1lc3NhZ2UoY2F1Z2h0KSxcbiAgICB9KTtcbiAgICBhd2FpdCBmYWxsYmFjay5zdGFydD8uKCk7XG4gICAgdGhpcy5hY3RpdmVGYWxsYmFjayA9IGZhbGxiYWNrO1xuICAgIHRoaXMuc3RhdHVzID0gZmFsbGJhY2suc3RhdHVzO1xuICAgIHRoaXMuZXJyb3IgPSBmYWxsYmFjay5lcnJvcjtcbiAgfVxuXG4gIC8qKiBFeGVjdXRlIHRocm91Z2ggdGhlIGFjdGl2ZSBmYWxsYmFjayBvciByZXR1cm4gYW4gdW5zdXBwb3J0ZWQgcmVzdWx0LiAqL1xuICBwcml2YXRlIGV4ZWN1dGVGYWxsYmFjayhcbiAgICBjb21tYW5kOiBzdHJpbmcsXG4gICAgYXJnczogc3RyaW5nW10sXG4gICAgb3B0aW9uczogRXhlY3V0ZUNvbW1hbmRPcHRpb25zLFxuICApOiBQcm9taXNlPENvbW1hbmRSZXN1bHQ+IHtcbiAgICBjb25zdCBmYWxsYmFjayA9IHRoaXMuYWN0aXZlRmFsbGJhY2s7XG4gICAgaWYgKCFmYWxsYmFjaykgdGhyb3cgbmV3IEVycm9yKFwiRmFsbGJhY2sgc2FuZGJveCBpcyBub3QgYWN0aXZlXCIpO1xuICAgIGlmIChmYWxsYmFjay5leGVjdXRlQ29tbWFuZCkgcmV0dXJuIGZhbGxiYWNrLmV4ZWN1dGVDb21tYW5kKGNvbW1hbmQsIGFyZ3MsIG9wdGlvbnMpO1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgY29tbWFuZCxcbiAgICAgIGFyZ3MsXG4gICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgIGV4aXRDb2RlOiAxLFxuICAgICAgc3Rkb3V0OiBcIlwiLFxuICAgICAgc3RkZXJyOiBgRmFsbGJhY2sgc2FuZGJveCAke2ZhbGxiYWNrLnByb3ZpZGVyfSBkb2VzIG5vdCBzdXBwb3J0IGNvbW1hbmQgZXhlY3V0aW9uLmAsXG4gICAgICBleGVjdXRpb25UaW1lTXM6IDAsXG4gICAgfSk7XG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgYWRhcHRlciBjdXJyZW50bHkga25vd3MgdGhlIHJlbW90ZSBzYW5kYm94IHRvIGJlIHJ1bm5pbmcuICovXG4gIGFzeW5jIGlzUmVhZHkoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgaWYgKHRoaXMuYWN0aXZlRmFsbGJhY2spIHtcbiAgICAgIHJldHVybiB0aGlzLmFjdGl2ZUZhbGxiYWNrLmlzUmVhZHk/LigpID8/IHRoaXMuYWN0aXZlRmFsbGJhY2suc3RhdHVzID09PSBcInJ1bm5pbmdcIjtcbiAgICB9XG4gICAgaWYgKHRoaXMuc3RhdHVzID09PSBcInJ1bm5pbmdcIikgcmV0dXJuIHRydWU7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHNhbmRib3ggPSBhd2FpdCB0aGlzLmdldCgpO1xuICAgICAgdGhpcy5zdGF0dXMgPVxuICAgICAgICBzYW5kYm94LnN0YXR1cz8uc3RhdGUgPT09IFwiU0FOREJPWF9TVEFURV9SVU5OSU5HXCIgPyBcInJ1bm5pbmdcIiA6IHJlbW90ZVN0YXR1cyhzYW5kYm94KTtcbiAgICAgIHJldHVybiB0aGlzLnN0YXR1cyA9PT0gXCJydW5uaW5nXCI7XG4gICAgfSBjYXRjaCAoY2F1Z2h0KSB7XG4gICAgICBpZiAoaXNTdGF0dXMoY2F1Z2h0LCA0MDQpKSByZXR1cm4gZmFsc2U7XG4gICAgICB0aHJvdyBjYXVnaHQ7XG4gICAgfVxuICB9XG5cbiAgLyoqIFJlcG9ydCBNYXN0cmEtZmFjaW5nIHNhbmRib3ggbWV0YWRhdGEuICovXG4gIGFzeW5jIGdldEluZm8oKTogUHJvbWlzZTxTYW5kYm94SW5mbz4ge1xuICAgIGlmICh0aGlzLmFjdGl2ZUZhbGxiYWNrKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICAoYXdhaXQgdGhpcy5hY3RpdmVGYWxsYmFjay5nZXRJbmZvPy4oKSkgPz8ge1xuICAgICAgICAgIGlkOiB0aGlzLmFjdGl2ZUZhbGxiYWNrLmlkLFxuICAgICAgICAgIG5hbWU6IHRoaXMuYWN0aXZlRmFsbGJhY2submFtZSxcbiAgICAgICAgICBwcm92aWRlcjogdGhpcy5hY3RpdmVGYWxsYmFjay5wcm92aWRlcixcbiAgICAgICAgICBzdGF0dXM6IHRoaXMuYWN0aXZlRmFsbGJhY2suc3RhdHVzLFxuICAgICAgICAgIGNyZWF0ZWRBdDogdGhpcy5jcmVhdGVkQXQsXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IHNhbmRib3ggPSBhd2FpdCB0aGlzLmdldCgpO1xuICAgIHRoaXMuc3RhdHVzID0gcmVtb3RlU3RhdHVzKHNhbmRib3gpO1xuICAgIHJldHVybiB7XG4gICAgICBpZDogdGhpcy5pZCxcbiAgICAgIG5hbWU6IHNhbmRib3guZGlzcGxheV9uYW1lID8/IHRoaXMubmFtZSxcbiAgICAgIHByb3ZpZGVyOiB0aGlzLnByb3ZpZGVyLFxuICAgICAgc3RhdHVzOiB0aGlzLnN0YXR1cyxcbiAgICAgIGNyZWF0ZWRBdDogdGhpcy5yZW1vdGVDcmVhdGVkQXQgPz8gdGhpcy5jcmVhdGVkQXQsXG4gICAgICAuLi4odGhpcy5sYXN0VXNlZEF0ID8geyBsYXN0VXNlZEF0OiB0aGlzLmxhc3RVc2VkQXQgfSA6IHt9KSxcbiAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgIHJlc291cmNlTmFtZTogc2FuZGJveC5uYW1lLFxuICAgICAgICByZW1vdGVTdGF0ZTogc2FuZGJveC5zdGF0dXM/LnN0YXRlLFxuICAgICAgICB1cGRhdGVUaW1lOiBzYW5kYm94LnVwZGF0ZV90aW1lLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqIEV4cGxhaW4gdGhlIERhdGFicmlja3MgZXhlY3V0aW9uIGJvdW5kYXJ5IHRvIHRoZSBhZ2VudC4gKi9cbiAgZ2V0SW5zdHJ1Y3Rpb25zKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFtcbiAgICAgIFwiQ29tbWFuZHMgcnVuIGluIGEgcGVyc2lzdGVudCBEYXRhYnJpY2tzIHNlcnZlcmxlc3Mgc2FuZGJveCwgbm90IGluIHRoZSBBcHAgY29udGFpbmVyLlwiLFxuICAgICAgXCJVc2Ugc2hlbGwgY29tbWFuZHMgbm9ybWFsbHkuIFRoZSBzYW5kYm94IGhvbWUgZGlyZWN0b3J5IHN1cnZpdmVzIGluYWN0aXZpdHkgc3RvcHMuXCIsXG4gICAgICBcIklmIERhdGFicmlja3MgU2FuZGJveCBpcyB1bmF2YWlsYWJsZSwgY29tbWFuZHMgZmFsbCBiYWNrIHRvIFB5ZGFudGljIE1vbnR5IGFuZCBtdXN0IGJlIFB5dGhvbiBzb3VyY2UuXCIsXG4gICAgICBcIkRhdGFicmlja3MgV29ya3NwYWNlIGZpbGVzeXN0ZW0gbW91bnRzIHJlbWFpbiBzZXBhcmF0ZSB1bmxlc3MgYSBjb21tYW5kIGNvcGllcyBkYXRhIGV4cGxpY2l0bHkuXCIsXG4gICAgXS5qb2luKFwiIFwiKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IHJlc291cmNlUGF0aCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtTQU5EQk9YX0FQSV9QQVRIfS8ke2VuY29kZVVSSUNvbXBvbmVudCh0aGlzLmlkKX1gO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRPckNyZWF0ZShzaWduYWw/OiBBYm9ydFNpZ25hbCkge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5nZXQoc2lnbmFsKTtcbiAgICB9IGNhdGNoIChjYXVnaHQpIHtcbiAgICAgIGlmICghaXNTdGF0dXMoY2F1Z2h0LCA0MDQpKSB0aHJvdyBjYXVnaHQ7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBjb25zdCBzYW5kYm94ID0gYXdhaXQgdGhpcy5yZXF1ZXN0KFNBTkRCT1hfQVBJX1BBVEgsIFwiUE9TVFwiLCBTYW5kYm94UmVzcG9uc2VTY2hlbWEsIHtcbiAgICAgICAgcXVlcnk6IHsgc2FuZGJveF9pZDogdGhpcy5pZCB9LFxuICAgICAgICBwYXlsb2FkOiB7XG4gICAgICAgICAgZGlzcGxheV9uYW1lOiB0aGlzLmRpc3BsYXlOYW1lLFxuICAgICAgICAgIHNwZWM6IHtcbiAgICAgICAgICAgIGNvbXB1dGU6IHtcbiAgICAgICAgICAgICAgaW5hY3Rpdml0eV90aW1lb3V0OiB0aGlzLmluYWN0aXZpdHlUaW1lb3V0LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBzaWduYWwsXG4gICAgICB9KTtcbiAgICAgIHRoaXMucmVtZW1iZXJDcmVhdGVkQXQoc2FuZGJveC5jcmVhdGVfdGltZSk7XG4gICAgICByZXR1cm4gc2FuZGJveDtcbiAgICB9IGNhdGNoIChjYXVnaHQpIHtcbiAgICAgIGlmICghaXNTdGF0dXMoY2F1Z2h0LCA0MDkpKSB0aHJvdyBjYXVnaHQ7XG4gICAgICByZXR1cm4gdGhpcy5nZXQoc2lnbmFsKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldChzaWduYWw/OiBBYm9ydFNpZ25hbCkge1xuICAgIGNvbnN0IHNhbmRib3ggPSBhd2FpdCB0aGlzLnJlcXVlc3QodGhpcy5yZXNvdXJjZVBhdGgsIFwiR0VUXCIsIFNhbmRib3hSZXNwb25zZVNjaGVtYSwge1xuICAgICAgc2lnbmFsLFxuICAgIH0pO1xuICAgIHRoaXMucmVtZW1iZXJDcmVhdGVkQXQoc2FuZGJveC5jcmVhdGVfdGltZSk7XG4gICAgcmV0dXJuIHNhbmRib3g7XG4gIH1cblxuICBwcml2YXRlIG11dGF0ZShvcGVyYXRpb246IFwic3RhcnRcIiB8IFwic3RvcFwiLCBzaWduYWw/OiBBYm9ydFNpZ25hbCkge1xuICAgIHJldHVybiB0aGlzLnJlcXVlc3QoYCR7dGhpcy5yZXNvdXJjZVBhdGh9LyR7b3BlcmF0aW9ufWAsIFwiUE9TVFwiLCBTYW5kYm94UmVzcG9uc2VTY2hlbWEsIHtcbiAgICAgIHNpZ25hbCxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgd2FpdEZvclN0YXRlKGV4cGVjdGVkOiBzdHJpbmcsIHNpZ25hbD86IEFib3J0U2lnbmFsKSB7XG4gICAgY29uc3QgZGVhZGxpbmUgPSBEYXRlLm5vdygpICsgdGhpcy5zdGFydHVwVGltZW91dE1zO1xuICAgIHdoaWxlIChEYXRlLm5vdygpIDwgZGVhZGxpbmUpIHtcbiAgICAgIGNvbnN0IHNhbmRib3ggPSBhd2FpdCB0aGlzLmdldChzaWduYWwpO1xuICAgICAgaWYgKHNhbmRib3guc3RhdHVzPy5zdGF0ZSA9PT0gZXhwZWN0ZWQpIHJldHVybiBzYW5kYm94O1xuICAgICAgYXdhaXQgYXN5bmNVdGlscy5zbGVlcChTQU5EQk9YX1BPTExfSU5URVJWQUxfTVMsIHNpZ25hbCk7XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBEYXRhYnJpY2tzIHNhbmRib3ggJHt0aGlzLmlkfSBkaWQgbm90IHJlYWNoICR7ZXhwZWN0ZWR9IHdpdGhpbiAke3RoaXMuc3RhcnR1cFRpbWVvdXRNc31tc2AsXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtZW1iZXJDcmVhdGVkQXQodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIGlmICghdmFsdWUpIHJldHVybjtcbiAgICBjb25zdCBwYXJzZWQgPSBuZXcgRGF0ZSh2YWx1ZSk7XG4gICAgaWYgKCFOdW1iZXIuaXNOYU4ocGFyc2VkLmdldFRpbWUoKSkpIHRoaXMucmVtb3RlQ3JlYXRlZEF0ID0gcGFyc2VkO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZXF1ZXN0PFQ+KFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBtZXRob2Q6IFwiR0VUXCIgfCBcIlBPU1RcIiB8IFwiREVMRVRFXCIsXG4gICAgc2NoZW1hOiB6LlpvZFR5cGU8VD4sXG4gICAgb3B0aW9uczoge1xuICAgICAgcGF5bG9hZD86IHVua25vd247XG4gICAgICBxdWVyeT86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gICAgICBzaWduYWw/OiBBYm9ydFNpZ25hbDtcbiAgICB9ID0ge30sXG4gICk6IFByb21pc2U8VD4ge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQuYXBpQ2xpZW50LnJlcXVlc3QoXG4gICAgICB7XG4gICAgICAgIHBhdGgsXG4gICAgICAgIG1ldGhvZCxcbiAgICAgICAgcXVlcnk6IG9wdGlvbnMucXVlcnksXG4gICAgICAgIGhlYWRlcnM6IG5ldyBIZWFkZXJzKHtcbiAgICAgICAgICBBY2NlcHQ6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgICAgICAgIC4uLihvcHRpb25zLnBheWxvYWQgPT09IHVuZGVmaW5lZCA/IHt9IDogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9KSxcbiAgICAgICAgfSksXG4gICAgICAgIHJhdzogZmFsc2UsXG4gICAgICAgIC4uLihvcHRpb25zLnBheWxvYWQgPT09IHVuZGVmaW5lZCA/IHt9IDogeyBwYXlsb2FkOiBvcHRpb25zLnBheWxvYWQgfSksXG4gICAgICB9LFxuICAgICAgb3B0aW9ucy5zaWduYWwgPyBkYXRhYnJpY2tzLnRvQ29udGV4dChvcHRpb25zLnNpZ25hbCkgOiB1bmRlZmluZWQsXG4gICAgKTtcbiAgICByZXR1cm4gc2NoZW1hLnBhcnNlKHJlc3BvbnNlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjb21tYW5kU2NyaXB0KGNvbW1hbmQ6IHN0cmluZywgYXJnczogcmVhZG9ubHkgc3RyaW5nW10sIGN3ZDogc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcbiAgY29uc3QgaW52b2NhdGlvbiA9IGFyZ3MubGVuZ3RoID8gW2NvbW1hbmQsIC4uLmFyZ3NdLm1hcChzaGVsbFF1b3RlKS5qb2luKFwiIFwiKSA6IGNvbW1hbmQ7XG4gIHJldHVybiBjd2QgPyBgY2QgLS0gJHtzaGVsbFF1b3RlKGN3ZCl9ICYmICR7aW52b2NhdGlvbn1gIDogaW52b2NhdGlvbjtcbn1cblxuZnVuY3Rpb24gc2hlbGxRdW90ZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGAnJHt2YWx1ZS5yZXBsYWNlQWxsKFwiJ1wiLCBcIidcXFxcJydcIil9J2A7XG59XG5cbmZ1bmN0aW9uIGRlZmluZWRFbnZpcm9ubWVudChpbnB1dDogTm9kZUpTLlByb2Nlc3NFbnYgfCB1bmRlZmluZWQpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhcbiAgICBPYmplY3QuZW50cmllcyhpbnB1dCA/PyB7fSkuZmlsdGVyKFxuICAgICAgKGVudHJ5KTogZW50cnkgaXMgW3N0cmluZywgc3RyaW5nXSA9PiBlbnRyeVsxXSAhPT0gdW5kZWZpbmVkLFxuICAgICksXG4gICk7XG59XG5cbmZ1bmN0aW9uIGlzU3RhdHVzKGNhdWdodDogdW5rbm93biwgc3RhdHVzOiBudW1iZXIpOiBib29sZWFuIHtcbiAgcmV0dXJuIGVycm9yVXRpbHMuZXJyb3JDb250ZXh0KGNhdWdodCkuc3RhdHVzQ29kZSA9PT0gc3RhdHVzO1xufVxuXG5mdW5jdGlvbiByZW1vdGVTdGF0dXMoc2FuZGJveDogei5pbmZlcjx0eXBlb2YgU2FuZGJveFJlc3BvbnNlU2NoZW1hPik6IFByb3ZpZGVyU3RhdHVzIHtcbiAgc3dpdGNoIChzYW5kYm94LnN0YXR1cz8uc3RhdGUpIHtcbiAgICBjYXNlIFwiU0FOREJPWF9TVEFURV9SVU5OSU5HXCI6XG4gICAgICByZXR1cm4gXCJydW5uaW5nXCI7XG4gICAgY2FzZSBcIlNBTkRCT1hfU1RBVEVfU1RPUFBFRFwiOlxuICAgICAgcmV0dXJuIFwic3RvcHBlZFwiO1xuICAgIGNhc2UgXCJTQU5EQk9YX1NUQVRFX1NUT1BQSU5HXCI6XG4gICAgICByZXR1cm4gXCJzdG9wcGluZ1wiO1xuICAgIGNhc2UgXCJTQU5EQk9YX1NUQVRFX1BFTkRJTkdcIjpcbiAgICAgIHJldHVybiBcInN0YXJ0aW5nXCI7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBcInBlbmRpbmdcIjtcbiAgfVxufVxuXG5mdW5jdGlvbiByZXNvbHZlRmFsbGJhY2soXG4gIGNvbmZpZ3VyZWQ6IEV4Y2x1ZGU8RGF0YWJyaWNrc1NhbmRib3hPcHRpb25zW1wiZmFsbGJhY2tcIl0sIGZhbHNlIHwgdW5kZWZpbmVkPixcbik6IFdvcmtzcGFjZVNhbmRib3gge1xuICBpZiAodHlwZW9mIGNvbmZpZ3VyZWQgPT09IFwib2JqZWN0XCIgJiYgXCJwcm92aWRlclwiIGluIGNvbmZpZ3VyZWQgJiYgXCJzdGF0dXNcIiBpbiBjb25maWd1cmVkKSB7XG4gICAgcmV0dXJuIGNvbmZpZ3VyZWQ7XG4gIH1cbiAgcmV0dXJuIG5ldyBNb250eVNhbmRib3goY29uZmlndXJlZCA9PT0gXCJtb250eVwiID8ge30gOiBjb25maWd1cmVkKTtcbn1cblxuZnVuY3Rpb24gaXNEYXRhYnJpY2tzU2FuZGJveFVuYXZhaWxhYmxlKGNhdWdodDogdW5rbm93bik6IGJvb2xlYW4ge1xuICBjb25zdCBjb250ZXh0ID0gZXJyb3JVdGlscy5lcnJvckNvbnRleHQoY2F1Z2h0KTtcbiAgcmV0dXJuIChcbiAgICBjb250ZXh0LnN0YXR1c0NvZGUgPT09IDQwNCB8fFxuICAgIGNvbnRleHQuaGFzTWVzc2FnZShcImZlYXR1cmVcIiwgXCJkaXNhYmxlZFwiKSB8fFxuICAgIGNvbnRleHQuaGFzTWVzc2FnZShcInNhbmRib3hcIiwgXCJub3RcIiwgXCJlbmFibGVkXCIpIHx8XG4gICAgY29udGV4dC5oYXNNZXNzYWdlKFwicHJldmlld1wiLCBcIm5vdFwiLCBcImVuYWJsZWRcIikgfHxcbiAgICBjb250ZXh0Lmhhc01lc3NhZ2UoXCJwcmV2aWV3XCIsIFwidW5hdmFpbGFibGVcIikgfHxcbiAgICBjb250ZXh0Lmhhc01lc3NhZ2UoXCJwcmV2aWV3XCIsIFwiZGlzYWJsZWRcIilcbiAgKTtcbn1cbiJdfQ==
|
|
461
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FuZGJveC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zYW5kYm94LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7R0FTRztBQUdILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFTbEYsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUN4QixPQUFPLEVBQUUsWUFBWSxFQUE0QixNQUFNLG9CQUFvQixDQUFDO0FBRTVFLE1BQU0sZ0JBQWdCLEdBQUcsb0JBQW9CLENBQUM7QUFDOUMsTUFBTSxxQkFBcUIsR0FBRyxpQ0FBaUMsQ0FBQztBQUNoRSxNQUFNLDBCQUEwQixHQUFHLE1BQU0sQ0FBQztBQUMxQyxNQUFNLDBCQUEwQixHQUFHLE9BQU8sQ0FBQztBQUMzQyxNQUFNLDBCQUEwQixHQUFHLE1BQU0sQ0FBQztBQUMxQyxNQUFNLHdCQUF3QixHQUFHLEdBQUcsQ0FBQztBQUNyQyxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFFNUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2xDLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQzdCLENBQUMsQ0FBQztBQUVILE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNyQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNoQixZQUFZLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNuQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNsQyxXQUFXLEVBQUUsQ0FBQyxDQUFD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QUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUNwRSxDQUFDO0FBRUQsU0FBUyw4QkFBOEIsQ0FBQyxNQUFlO0lBQ3JELE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEQsT0FBTyxDQUNMLE9BQU8sQ0FBQyxVQUFVLEtBQUssR0FBRztRQUMxQixPQUFPLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQztRQUMxRCxPQUFPLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUM7UUFDekMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQztRQUMvQyxPQUFPLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDO1FBQy9DLE9BQU8sQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLGFBQWEsQ0FBQztRQUM1QyxPQUFPLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FDMUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERhdGFicmlja3MgU2FuZGJveCBhZGFwdGVyIGZvciBNYXN0cmEgd29ya3NwYWNlcy5cbiAqXG4gKiBJbXBsZW1lbnRzIE1hc3RyYSdzIGZvcmVncm91bmQgY29tbWFuZCBzdXJmYWNlIG92ZXIgdGhlIERhdGFicmlja3MgU2FuZGJveFxuICogUkVTVCBBUEkuIFNhbmRib3hlcyBhcmUgY3JlYXRlZCBsYXppbHksIHJldGFpbiB0aGVpciBob21lIGRpcmVjdG9yeSBhY3Jvc3NcbiAqIGluYWN0aXZpdHkgc3RvcHMsIGFuZCBleGVjdXRlIHVudHJ1c3RlZCBzaGVsbCBjb21tYW5kcyBvdXRzaWRlIHRoZSBBcHBcbiAqIGNvbnRhaW5lci5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBXb3Jrc3BhY2VDbGllbnQgfSBmcm9tIFwiQGRhdGFicmlja3MvYXBwa2l0XCI7XG5pbXBvcnQgeyBkYXRhYnJpY2tzIH0gZnJvbSBcIkBkYngtdG9vbHMvYXBwa2l0XCI7XG5pbXBvcnQgeyBhc3luY1V0aWxzLCBlcnJvclV0aWxzLCBsb2csIHN0cmluZ1V0aWxzIH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWNvcmVcIjtcbmltcG9ydCB0eXBlIHsgUmVxdWVzdENvbnRleHQgfSBmcm9tIFwiQG1hc3RyYS9jb3JlL3JlcXVlc3QtY29udGV4dFwiO1xuaW1wb3J0IHR5cGUge1xuICBDb21tYW5kUmVzdWx0LFxuICBFeGVjdXRlQ29tbWFuZE9wdGlvbnMsXG4gIFByb3ZpZGVyU3RhdHVzLFxuICBTYW5kYm94SW5mbyxcbiAgV29ya3NwYWNlU2FuZGJveCxcbn0gZnJvbSBcIkBtYXN0cmEvY29yZS93b3Jrc3BhY2VcIjtcbmltcG9ydCB7IHogfSBmcm9tIFwiem9kXCI7XG5pbXBvcnQgeyBNb250eVNhbmRib3gsIHR5cGUgTW9udHlTYW5kYm94T3B0aW9ucyB9IGZyb20gXCIuL21vbnR5LXNhbmRib3gudHNcIjtcblxuY29uc3QgU0FOREJPWF9BUElfUEFUSCA9IFwiL2FwaS8yLjAvc2FuZGJveGVzXCI7XG5jb25zdCBTQU5EQk9YX0VYRUNfQVBJX1BBVEggPSBcIi9hcGkvMi4wL3NhbmRib3gtZXhlYy9zYW5kYm94ZXNcIjtcbmNvbnN0IERFRkFVTFRfSU5BQ1RJVklUWV9USU1FT1VUID0gXCI5MDBzXCI7XG5jb25zdCBERUZBVUxUX1NUQVJUVVBfVElNRU9VVF9NUyA9IDEyMF8wMDA7XG5jb25zdCBERUZBVUxUX0NPTU1BTkRfVElNRU9VVF9NUyA9IDMwXzAwMDtcbmNvbnN0IFNBTkRCT1hfUE9MTF9JTlRFUlZBTF9NUyA9IDUwMDtcbmNvbnN0IGxvZ2dlciA9IGxvZy5sb2dnZXIoXCJtYXN0cmEvc2FuZGJveFwiKTtcblxuY29uc3QgU2FuZGJveFN0YXRlU2NoZW1hID0gei5vYmplY3Qoe1xuICBzdGF0ZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxufSk7XG5cbmNvbnN0IFNhbmRib3hSZXNwb25zZVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgbmFtZTogei5zdHJpbmcoKSxcbiAgZGlzcGxheV9uYW1lOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGNyZWF0ZV90aW1lOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHVwZGF0ZV90aW1lOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHN0YXR1czogU2FuZGJveFN0YXRlU2NoZW1hLm9wdGlvbmFsKCksXG59KTtcblxuY29uc3QgRXhlY3V0ZVJlc3BvbnNlU2NoZW1hID0gei5vYmplY3Qoe1xuICBleGl0X2NvZGU6IHoubnVtYmVyKCkuaW50KCkub3B0aW9uYWwoKSxcbiAgc3RhdHVzOiB6LnN0cmluZygpLFxuICBzdGRvdXQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgc3RkZXJyOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGNvbW1hbmRfaWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgdHJ1bmNhdGVkOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxufSk7XG5cbi8qKiBPcHRpb25zIGZvciBvbmUgRGF0YWJyaWNrcy1iYWNrZWQgTWFzdHJhIHNhbmRib3guICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGFicmlja3NTYW5kYm94T3B0aW9ucyB7XG4gIC8qKiBBcHBLaXQgd29ya3NwYWNlIGNsaWVudCB1c2VkIGZvciBldmVyeSBzYW5kYm94IEFQSSBjYWxsLiAqL1xuICBjbGllbnQ6IFdvcmtzcGFjZUNsaWVudDtcbiAgLyoqIFJlc291cmNlIGlkLCB3aXRoIG9yIHdpdGhvdXQgdGhlIGBzYW5kYm94ZXMvYCBwcmVmaXguICovXG4gIHNhbmRib3hJZDogc3RyaW5nO1xuICAvKiogSHVtYW4tcmVhZGFibGUgRGF0YWJyaWNrcyBsYWJlbC4gKi9cbiAgZGlzcGxheU5hbWU/OiBzdHJpbmc7XG4gIC8qKiBTZXJ2ZXItc2lkZSBpZGxlIHRpbWVvdXQgaW4gcHJvdG9idWYgZHVyYXRpb24gZm9ybS4gRGVmYXVsdHMgdG8gYDkwMHNgLiAqL1xuICBpbmFjdGl2aXR5VGltZW91dD86IHN0cmluZztcbiAgLyoqIE1heGltdW0gdGltZSB0byB3YWl0IGZvciB0aGUgc2FuZGJveCB0byBiZWNvbWUgcnVubmFibGUuICovXG4gIHN0YXJ0dXBUaW1lb3V0TXM/OiBudW1iZXI7XG4gIC8qKiBEZWZhdWx0IGNvbW1hbmQgdGltZW91dC4gUGVyLWNhbGwgYG9wdGlvbnMudGltZW91dGAgd2lucy4gKi9cbiAgY29tbWFuZFRpbWVvdXRNcz86IG51bWJlcjtcbiAgLyoqXG4gICAqIFByb3ZpZGVyIHVzZWQgb25seSB3aGVuIERhdGFicmlja3MgU2FuZGJveCBpcyBkZWZpbml0aXZlbHkgdW5hdmFpbGFibGUuXG4gICAqIERlZmF1bHRzIHRvIHRoZSBOb2RlIFB5ZGFudGljIE1vbnR5IHJ1bnRpbWU7IGBmYWxzZWAgZmFpbHMgaW5zdGVhZC5cbiAgICovXG4gIGZhbGxiYWNrPzogZmFsc2UgfCBcIm1vbnR5XCIgfCBNb250eVNhbmRib3hPcHRpb25zIHwgV29ya3NwYWNlU2FuZGJveDtcbn1cblxuLyoqIERhdGFicmlja3Mgb3B0aW9ucyBhY2NlcHRlZCBieSB0aGUgaGlnaGVyLWxldmVsIHdvcmtzcGFjZSBmYWN0b3J5LiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhYnJpY2tzV29ya3NwYWNlU2FuZGJveE9wdGlvbnMgZXh0ZW5kcyBPbWl0PFxuICBEYXRhYnJpY2tzU2FuZGJveE9wdGlvbnMsXG4gIFwiY2xpZW50XCIgfCBcInNhbmRib3hJZFwiXG4+IHtcbiAgLyoqIFByb3ZpZGVyIGRpc2NyaW1pbmF0b3IuIERlZmF1bHRzIHRvIGBkYXRhYnJpY2tzYC4gKi9cbiAgcHJvdmlkZXI/OiBcImRhdGFicmlja3NcIjtcbiAgLyoqXG4gICAqIENyZWRlbnRpYWwgc291cmNlLiBEZWZhdWx0cyB0byBhIGZyZXNoIEFwcEtpdCBjbGllbnQgdXNpbmcgdGhlIG5vcm1hbFxuICAgKiBlbnZpcm9ubWVudC9wcm9maWxlIGNoYWluLCB3aGljaCBpcyB0aGUgYXBwIHNlcnZpY2UgcHJpbmNpcGFsIGluIGFcbiAgICogRGF0YWJyaWNrcyBBcHAuXG4gICAqL1xuICBjbGllbnQ/OiBXb3Jrc3BhY2VDbGllbnQgfCAoKGNvbnRleHQ6IHsgcmVxdWVzdENvbnRleHQ6IFJlcXVlc3RDb250ZXh0IH0pID0+IFdvcmtzcGFjZUNsaWVudCk7XG4gIC8qKlxuICAgKiBGaXhlZCBpZCBvciBwZXItcmVxdWVzdCByZXNvbHZlci4gT21pdCB0byBkZXJpdmUgYSBzdGFibGUsIG9wYXF1ZSBpZCBmcm9tXG4gICAqIHRoZSB3b3Jrc3BhY2UgYW5kIGF0dHJpYnV0ZWQgdXNlci5cbiAgICovXG4gIHNhbmRib3hJZD86IHN0cmluZyB8ICgoY29udGV4dDogeyByZXF1ZXN0Q29udGV4dDogUmVxdWVzdENvbnRleHQgfSkgPT4gc3RyaW5nKTtcbn1cblxuLyoqIE1hc3RyYSBzYW5kYm94IGJhY2tlZCBieSBEYXRhYnJpY2tzIHNlcnZlcmxlc3MgU2FuZGJveCBjb21wdXRlLiAqL1xuZXhwb3J0IGNsYXNzIERhdGFicmlja3NTYW5kYm94IGltcGxlbWVudHMgV29ya3NwYWNlU2FuZGJveCB7XG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgc3RhdHVzOiBQcm92aWRlclN0YXR1cyA9IFwicGVuZGluZ1wiO1xuICBlcnJvcj86IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IGNsaWVudDogV29ya3NwYWNlQ2xpZW50O1xuICBwcml2YXRlIHJlYWRvbmx5IGRpc3BsYXlOYW1lOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW5hY3Rpdml0eVRpbWVvdXQ6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBzdGFydHVwVGltZW91dE1zOiBudW1iZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29tbWFuZFRpbWVvdXRNczogbnVtYmVyO1xuICBwcml2YXRlIHJlYWRvbmx5IGZhbGxiYWNrQ29uZmlnOiBFeGNsdWRlPERhdGFicmlja3NTYW5kYm94T3B0aW9uc1tcImZhbGxiYWNrXCJdLCB1bmRlZmluZWQ+O1xuICBwcml2YXRlIHJlYWRvbmx5IGNyZWF0ZWRBdCA9IG5ldyBEYXRlKCk7XG4gIHByaXZhdGUgcmVtb3RlQ3JlYXRlZEF0PzogRGF0ZTtcbiAgcHJpdmF0ZSBsYXN0VXNlZEF0PzogRGF0ZTtcbiAgcHJpdmF0ZSBhY3RpdmVGYWxsYmFjaz86IFdvcmtzcGFjZVNhbmRib3g7XG4gIHByaXZhdGUgZmFsbGJhY2tQcm9taXNlPzogUHJvbWlzZTx2b2lkPjtcbiAgcHJpdmF0ZSBzdGFydFByb21pc2U/OiBQcm9taXNlPHZvaWQ+O1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IERhdGFicmlja3NTYW5kYm94T3B0aW9ucykge1xuICAgIGNvbnN0IGlkID0gc3RyaW5nVXRpbHMudHJpbVRvTnVsbChvcHRpb25zLnNhbmRib3hJZC5yZXBsYWNlKC9ec2FuZGJveGVzXFwvLywgXCJcIikpO1xuICAgIGlmICghaWQpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJEYXRhYnJpY2tzIHNhbmRib3ggaWQgbXVzdCBub3QgYmUgYmxhbmtcIik7XG4gICAgdGhpcy5pZCA9IGlkO1xuICAgIHRoaXMubmFtZSA9IG9wdGlvbnMuZGlzcGxheU5hbWU/LnRyaW0oKSB8fCBgTWFzdHJhIHNhbmRib3ggJHtpZH1gO1xuICAgIHRoaXMuY2xpZW50ID0gb3B0aW9ucy5jbGllbnQ7XG4gICAgdGhpcy5kaXNwbGF5TmFtZSA9IHRoaXMubmFtZTtcbiAgICB0aGlzLmluYWN0aXZpdHlUaW1lb3V0ID0gb3B0aW9ucy5pbmFjdGl2aXR5VGltZW91dCA/PyBERUZBVUxUX0lOQUNUSVZJVFlfVElNRU9VVDtcbiAgICB0aGlzLnN0YXJ0dXBUaW1lb3V0TXMgPSBvcHRpb25zLnN0YXJ0dXBUaW1lb3V0TXMgPz8gREVGQVVMVF9TVEFSVFVQX1RJTUVPVVRfTVM7XG4gICAgdGhpcy5jb21tYW5kVGltZW91dE1zID0gb3B0aW9ucy5jb21tYW5kVGltZW91dE1zID8/IERFRkFVTFRfQ09NTUFORF9USU1FT1VUX01TO1xuICAgIHRoaXMuZmFsbGJhY2tDb25maWcgPSBvcHRpb25zLmZhbGxiYWNrID8/IFwibW9udHlcIjtcbiAgfVxuXG4gIGdldCBwcm92aWRlcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmFjdGl2ZUZhbGxiYWNrPy5wcm92aWRlciA/PyBcImRhdGFicmlja3NcIjtcbiAgfVxuXG4gIC8qKiBFbnN1cmUgdGhlIHJlbW90ZSBzYW5kYm94IGV4aXN0cyBhbmQgaGFzIHJlYWNoZWQgaXRzIHJ1bm5pbmcgc3RhdGUuICovXG4gIGFzeW5jIHN0YXJ0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuc3RhcnRXaXRoU2lnbmFsKCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHN0YXJ0V2l0aFNpZ25hbChzaWduYWw/OiBBYm9ydFNpZ25hbCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLnN0YXR1cyA9PT0gXCJydW5uaW5nXCIpIHJldHVybjtcbiAgICBpZiAodGhpcy5zdGFydFByb21pc2UpIHtcbiAgICAgIGF3YWl0IHRoaXMuc3RhcnRQcm9taXNlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBwZW5kaW5nID0gdGhpcy5wZXJmb3JtU3RhcnQoc2lnbmFsKTtcbiAgICB0aGlzLnN0YXJ0UHJvbWlzZSA9IHBlbmRpbmc7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHBlbmRpbmc7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmICh0aGlzLnN0YXJ0UHJvbWlzZSA9PT0gcGVuZGluZykgdGhpcy5zdGFydFByb21pc2UgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBwZXJmb3JtU3RhcnQoc2lnbmFsPzogQWJvcnRTaWduYWwpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5hY3RpdmVGYWxsYmFjaykge1xuICAgICAgYXdhaXQgdGhpcy5hY3RpdmVGYWxsYmFjay5zdGFydD8uKCk7XG4gICAgICB0aGlzLnN0YXR1cyA9IHRoaXMuYWN0aXZlRmFsbGJhY2suc3RhdHVzO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnN0YXR1cyA9IFwic3RhcnRpbmdcIjtcbiAgICB0aGlzLmVycm9yID0gdW5kZWZpbmVkO1xuICAgIHRyeSB7XG4gICAgICBsZXQgc2FuZGJveCA9IGF3YWl0IHRoaXMuZ2V0T3JDcmVhdGUoc2lnbmFsKTtcbiAgICAgIGlmIChzYW5kYm94LnN0YXR1cz8uc3RhdGUgPT09IFwiU0FOREJPWF9TVEFURV9TVE9QUEVEXCIpIHtcbiAgICAgICAgc2FuZGJveCA9IGF3YWl0IHRoaXMubXV0YXRlKFwic3RhcnRcIiwgc2lnbmFsKTtcbiAgICAgIH1cbiAgICAgIGlmIChzYW5kYm94LnN0YXR1cz8uc3RhdGUgPT09IFwiU0FOREJPWF9TVEFURV9TVE9QUElOR1wiKSB7XG4gICAgICAgIGF3YWl0IHRoaXMud2FpdEZvclN0YXRlKFwiU0FOREJPWF9TVEFURV9TVE9QUEVEXCIsIHNpZ25hbCk7XG4gICAgICAgIHNhbmRib3ggPSBhd2FpdCB0aGlzLm11dGF0ZShcInN0YXJ0XCIsIHNpZ25hbCk7XG4gICAgICB9XG4gICAgICBpZiAoc2FuZGJveC5zdGF0dXM/LnN0YXRlICE9PSBcIlNBTkRCT1hfU1RBVEVfUlVOTklOR1wiKSB7XG4gICAgICAgIGF3YWl0IHRoaXMud2FpdEZvclN0YXRlKFwiU0FOREJPWF9TVEFURV9SVU5OSU5HXCIsIHNpZ25hbCk7XG4gICAgICB9XG4gICAgICB0aGlzLnN0YXR1cyA9IFwicnVubmluZ1wiO1xuICAgICAgdGhpcy5sYXN0VXNlZEF0ID0gbmV3IERhdGUoKTtcbiAgICB9IGNhdGNoIChjYXVnaHQpIHtcbiAgICAgIGlmICh0aGlzLmZhbGxiYWNrQ29uZmlnICE9PSBmYWxzZSAmJiBpc0RhdGFicmlja3NTYW5kYm94VW5hdmFpbGFibGUoY2F1Z2h0KSkge1xuICAgICAgICBhd2FpdCB0aGlzLmFjdGl2YXRlRmFsbGJhY2soY2F1Z2h0KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5zdGF0dXMgPSBcImVycm9yXCI7XG4gICAgICB0aGlzLmVycm9yID0gZXJyb3JVdGlscy5lcnJvck1lc3NhZ2UoY2F1Z2h0KTtcbiAgICAgIHRocm93IGNhdWdodDtcbiAgICB9XG4gIH1cblxuICAvKiogRGF0YWJyaWNrcyBob21lIHBlcnNpc3RlbmNlIGlzIG5vdCBhIGNsb25lYWJsZSBNYXN0cmEgY2hlY2twb2ludC4gKi9cbiAgYXN5bmMgc25hcHNob3QoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5hY3RpdmVGYWxsYmFjaz8uc25hcHNob3QoKTtcbiAgfVxuXG4gIGdldCBzdXBwb3J0c0NoZWNrcG9pbnRzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFjdGl2ZUZhbGxiYWNrPy5zdXBwb3J0c0NoZWNrcG9pbnRzID8/IGZhbHNlO1xuICB9XG5cbiAgLyoqIFN0b3AgY29tcHV0ZSB3aGlsZSBwcmVzZXJ2aW5nIHRoZSBzYW5kYm94IGhvbWUgZGlyZWN0b3J5LiAqL1xuICBhc3luYyBzdG9wKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmFjdGl2ZUZhbGxiYWNrKSB7XG4gICAgICBhd2FpdCB0aGlzLmFjdGl2ZUZhbGxiYWNrLnN0b3A/LigpO1xuICAgICAgdGhpcy5zdGF0dXMgPSB0aGlzLmFjdGl2ZUZhbGxiYWNrLnN0YXR1cztcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuc3RhdHVzID09PSBcInN0b3BwZWRcIiB8fCB0aGlzLnN0YXR1cyA9PT0gXCJkZXN0cm95ZWRcIikgcmV0dXJuO1xuICAgIHRoaXMuc3RhdHVzID0gXCJzdG9wcGluZ1wiO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLm11dGF0ZShcInN0b3BcIik7XG4gICAgICB0aGlzLnN0YXR1cyA9IFwic3RvcHBlZFwiO1xuICAgIH0gY2F0Y2ggKGNhdWdodCkge1xuICAgICAgaWYgKGlzU3RhdHVzKGNhdWdodCwgNDA0KSkge1xuICAgICAgICB0aGlzLnN0YXR1cyA9IFwic3RvcHBlZFwiO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLnN0YXR1cyA9IFwiZXJyb3JcIjtcbiAgICAgIHRoaXMuZXJyb3IgPSBlcnJvclV0aWxzLmVycm9yTWVzc2FnZShjYXVnaHQpO1xuICAgICAgdGhyb3cgY2F1Z2h0O1xuICAgIH1cbiAgfVxuXG4gIC8qKiBQZXJtYW5lbnRseSBkZWxldGUgdGhlIHNhbmRib3ggYW5kIGl0cyBwZXJzaXN0ZWQgaG9tZSBkaXJlY3RvcnkuICovXG4gIGFzeW5jIGRlc3Ryb3koKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuYWN0aXZlRmFsbGJhY2spIHtcbiAgICAgIGF3YWl0IHRoaXMuYWN0aXZlRmFsbGJhY2suZGVzdHJveT8uKCk7XG4gICAgICB0aGlzLnN0YXR1cyA9IHRoaXMuYWN0aXZlRmFsbGJhY2suc3RhdHVzO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5zdGF0dXMgPT09IFwiZGVzdHJveWVkXCIpIHJldHVybjtcbiAgICB0aGlzLnN0YXR1cyA9IFwiZGVzdHJveWluZ1wiO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLnJlcXVlc3QoYCR7dGhpcy5yZXNvdXJjZVBhdGh9YCwgXCJERUxFVEVcIiwgei5vYmplY3Qoe30pLnBhc3N0aHJvdWdoKCkpO1xuICAgICAgdGhpcy5zdGF0dXMgPSBcImRlc3Ryb3llZFwiO1xuICAgIH0gY2F0Y2ggKGNhdWdodCkge1xuICAgICAgaWYgKGlzU3RhdHVzKGNhdWdodCwgNDA0KSkge1xuICAgICAgICB0aGlzLnN0YXR1cyA9IFwiZGVzdHJveWVkXCI7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuc3RhdHVzID0gXCJlcnJvclwiO1xuICAgICAgdGhpcy5lcnJvciA9IGVycm9yVXRpbHMuZXJyb3JNZXNzYWdlKGNhdWdodCk7XG4gICAgICB0aHJvdyBjYXVnaHQ7XG4gICAgfVxuICB9XG5cbiAgLyoqIEV4ZWN1dGUgb25lIGZvcmVncm91bmQgc2hlbGwgY29tbWFuZCBpbiB0aGUgcmVtb3RlIHNhbmRib3guICovXG4gIGFzeW5jIGV4ZWN1dGVDb21tYW5kKFxuICAgIGNvbW1hbmQ6IHN0cmluZyxcbiAgICBhcmdzOiBzdHJpbmdbXSA9IFtdLFxuICAgIG9wdGlvbnM6IEV4ZWN1dGVDb21tYW5kT3B0aW9ucyA9IHt9LFxuICApOiBQcm9taXNlPENvbW1hbmRSZXN1bHQ+IHtcbiAgICBhd2FpdCB0aGlzLnN0YXJ0V2l0aFNpZ25hbChvcHRpb25zLmFib3J0U2lnbmFsKTtcbiAgICBpZiAodGhpcy5hY3RpdmVGYWxsYmFjaykge1xuICAgICAgcmV0dXJuIHRoaXMuZXhlY3V0ZUZhbGxiYWNrKGNvbW1hbmQsIGFyZ3MsIG9wdGlvbnMpO1xuICAgIH1cbiAgICBjb25zdCB0aW1lb3V0ID0gb3B0aW9ucy50aW1lb3V0ID8/IHRoaXMuY29tbWFuZFRpbWVvdXRNcztcbiAgICBjb25zdCBzY3JpcHQgPSBjb21tYW5kU2NyaXB0KGNvbW1hbmQsIGFyZ3MsIG9wdGlvbnMuY3dkKTtcbiAgICBjb25zdCBzdGFydGVkID0gcGVyZm9ybWFuY2Uubm93KCk7XG4gICAgbGV0IHJlc3BvbnNlOiB6LmluZmVyPHR5cGVvZiBFeGVjdXRlUmVzcG9uc2VTY2hlbWE+O1xuICAgIHRyeSB7XG4gICAgICByZXNwb25zZSA9IGF3YWl0IHRoaXMucmVxdWVzdChcbiAgICAgICAgYCR7U0FOREJPWF9FWEVDX0FQSV9QQVRIfS8ke2VuY29kZVVSSUNvbXBvbmVudCh0aGlzLmlkKX0vZXhlYy1zeW5jYCxcbiAgICAgICAgXCJQT1NUXCIsXG4gICAgICAgIEV4ZWN1dGVSZXNwb25zZVNjaGVtYSxcbiAgICAgICAge1xuICAgICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICAgIGNtZDogXCIvYmluL2Jhc2hcIixcbiAgICAgICAgICAgIGFyZ3M6IFtcIi1sY1wiLCBzY3JpcHRdLFxuICAgICAgICAgICAgZW52czogZGVmaW5lZEVudmlyb25tZW50KG9wdGlvbnMuZW52KSxcbiAgICAgICAgICAgIGV4ZWN1dGlvbl90aW1lb3V0OiBgJHtNYXRoLm1heCgxLCBNYXRoLmNlaWwodGltZW91dCAvIDFfMDAwKSl9c2AsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzaWduYWw6IG9wdGlvbnMuYWJvcnRTaWduYWwsXG4gICAgICAgIH0sXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGNhdWdodCkge1xuICAgICAgaWYgKHRoaXMuZmFsbGJhY2tDb25maWcgPT09IGZhbHNlIHx8ICFpc0RhdGFicmlja3NTYW5kYm94VW5hdmFpbGFibGUoY2F1Z2h0KSkgdGhyb3cgY2F1Z2h0O1xuICAgICAgYXdhaXQgdGhpcy5hY3RpdmF0ZUZhbGxiYWNrKGNhdWdodCk7XG4gICAgICByZXR1cm4gdGhpcy5leGVjdXRlRmFsbGJhY2soY29tbWFuZCwgYXJncywgb3B0aW9ucyk7XG4gICAgfVxuICAgIGNvbnN0IHN0ZG91dCA9IHJlc3BvbnNlLnN0ZG91dCA/PyBcIlwiO1xuICAgIGNvbnN0IHN0ZGVyciA9IHJlc3BvbnNlLnN0ZGVyciA/PyBcIlwiO1xuICAgIG9wdGlvbnMub25TdGRvdXQ/LihzdGRvdXQpO1xuICAgIG9wdGlvbnMub25TdGRlcnI/LihzdGRlcnIpO1xuICAgIHRoaXMubGFzdFVzZWRBdCA9IG5ldyBEYXRlKCk7XG4gICAgY29uc3QgdGltZWRPdXQgPSByZXNwb25zZS5zdGF0dXMgPT09IFwiRVhFQ1VURV9DT01NQU5EX1NUQVRVU19USU1FRF9PVVRcIjtcbiAgICBjb25zdCBleGl0Q29kZSA9IHJlc3BvbnNlLmV4aXRfY29kZSA/PyAtMTtcbiAgICByZXR1cm4ge1xuICAgICAgY29tbWFuZCxcbiAgICAgIGFyZ3MsXG4gICAgICBzdWNjZXNzOiByZXNwb25zZS5zdGF0dXMgPT09IFwiRVhFQ1VURV9DT01NQU5EX1NUQVRVU19DT01QTEVURURcIiAmJiBleGl0Q29kZSA9PT0gMCxcbiAgICAgIGV4aXRDb2RlLFxuICAgICAgc3Rkb3V0LFxuICAgICAgc3RkZXJyLFxuICAgICAgZXhlY3V0aW9uVGltZU1zOiBwZXJmb3JtYW5jZS5ub3coKSAtIHN0YXJ0ZWQsXG4gICAgICAuLi4odGltZWRPdXQgPyB7IHRpbWVkT3V0OiB0cnVlLCBraWxsZWQ6IHRydWUgfSA6IHt9KSxcbiAgICAgIC4uLihyZXNwb25zZS50cnVuY2F0ZWRcbiAgICAgICAgPyB7XG4gICAgICAgICAgICBzdGRvdXRUcnVuY2F0ZWQ6IHRydWUsXG4gICAgICAgICAgICBzdGRlcnJUcnVuY2F0ZWQ6IHRydWUsXG4gICAgICAgICAgfVxuICAgICAgICA6IHt9KSxcbiAgICB9O1xuICB9XG5cbiAgLyoqIEFjdGl2YXRlIHRoZSBjb25maWd1cmVkIGZhbGxiYWNrIG9uY2UgYWNyb3NzIGNvbmN1cnJlbnQgY29tbWFuZCBmYWlsdXJlcy4gKi9cbiAgcHJpdmF0ZSBhc3luYyBhY3RpdmF0ZUZhbGxiYWNrKGNhdWdodDogdW5rbm93bik6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmFjdGl2ZUZhbGxiYWNrKSByZXR1cm47XG4gICAgaWYgKHRoaXMuZmFsbGJhY2tQcm9taXNlKSB7XG4gICAgICBhd2FpdCB0aGlzLmZhbGxiYWNrUHJvbWlzZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgcGVuZGluZyA9IHRoaXMuc3RhcnRGYWxsYmFjayhjYXVnaHQpO1xuICAgIHRoaXMuZmFsbGJhY2tQcm9taXNlID0gcGVuZGluZztcbiAgICB0cnkge1xuICAgICAgYXdhaXQgcGVuZGluZztcbiAgICB9IGZpbmFsbHkge1xuICAgICAgaWYgKHRoaXMuZmFsbGJhY2tQcm9taXNlID09PSBwZW5kaW5nKSB0aGlzLmZhbGxiYWNrUHJvbWlzZSA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICAvKiogU3RhcnQgYW5kIHB1Ymxpc2ggdGhlIGNvbmZpZ3VyZWQgZmFsbGJhY2sgYWZ0ZXIgcmVjaGVja2luZyBhY3RpdmUgc3RhdGUuICovXG4gIHByaXZhdGUgYXN5bmMgc3RhcnRGYWxsYmFjayhjYXVnaHQ6IHVua25vd24pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5hY3RpdmVGYWxsYmFjaykgcmV0dXJuO1xuICAgIGlmICh0aGlzLmZhbGxiYWNrQ29uZmlnID09PSBmYWxzZSkgdGhyb3cgY2F1Z2h0O1xuICAgIGNvbnN0IGZhbGxiYWNrID0gcmVzb2x2ZUZhbGxiYWNrKHRoaXMuZmFsbGJhY2tDb25maWcpO1xuICAgIGxvZ2dlci53YXJuKFwiRGF0YWJyaWNrcyBTYW5kYm94IHVuYXZhaWxhYmxlOyB1c2luZyBmYWxsYmFja1wiLCB7XG4gICAgICBzYW5kYm94SWQ6IHRoaXMuaWQsXG4gICAgICBmYWxsYmFjazogZmFsbGJhY2sucHJvdmlkZXIsXG4gICAgICBlcnJvcjogZXJyb3JVdGlscy5lcnJvck1lc3NhZ2UoY2F1Z2h0KSxcbiAgICB9KTtcbiAgICBhd2FpdCBmYWxsYmFjay5zdGFydD8uKCk7XG4gICAgdGhpcy5hY3RpdmVGYWxsYmFjayA9IGZhbGxiYWNrO1xuICAgIHRoaXMuc3RhdHVzID0gZmFsbGJhY2suc3RhdHVzO1xuICAgIHRoaXMuZXJyb3IgPSBmYWxsYmFjay5lcnJvcjtcbiAgfVxuXG4gIC8qKiBFeGVjdXRlIHRocm91Z2ggdGhlIGFjdGl2ZSBmYWxsYmFjayBvciByZXR1cm4gYW4gdW5zdXBwb3J0ZWQgcmVzdWx0LiAqL1xuICBwcml2YXRlIGV4ZWN1dGVGYWxsYmFjayhcbiAgICBjb21tYW5kOiBzdHJpbmcsXG4gICAgYXJnczogc3RyaW5nW10sXG4gICAgb3B0aW9uczogRXhlY3V0ZUNvbW1hbmRPcHRpb25zLFxuICApOiBQcm9taXNlPENvbW1hbmRSZXN1bHQ+IHtcbiAgICBjb25zdCBmYWxsYmFjayA9IHRoaXMuYWN0aXZlRmFsbGJhY2s7XG4gICAgaWYgKCFmYWxsYmFjaykgdGhyb3cgbmV3IEVycm9yKFwiRmFsbGJhY2sgc2FuZGJveCBpcyBub3QgYWN0aXZlXCIpO1xuICAgIGlmIChmYWxsYmFjay5leGVjdXRlQ29tbWFuZCkgcmV0dXJuIGZhbGxiYWNrLmV4ZWN1dGVDb21tYW5kKGNvbW1hbmQsIGFyZ3MsIG9wdGlvbnMpO1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgY29tbWFuZCxcbiAgICAgIGFyZ3MsXG4gICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgIGV4aXRDb2RlOiAxLFxuICAgICAgc3Rkb3V0OiBcIlwiLFxuICAgICAgc3RkZXJyOiBgRmFsbGJhY2sgc2FuZGJveCAke2ZhbGxiYWNrLnByb3ZpZGVyfSBkb2VzIG5vdCBzdXBwb3J0IGNvbW1hbmQgZXhlY3V0aW9uLmAsXG4gICAgICBleGVjdXRpb25UaW1lTXM6IDAsXG4gICAgfSk7XG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgYWRhcHRlciBjdXJyZW50bHkga25vd3MgdGhlIHJlbW90ZSBzYW5kYm94IHRvIGJlIHJ1bm5pbmcuICovXG4gIGFzeW5jIGlzUmVhZHkoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgaWYgKHRoaXMuYWN0aXZlRmFsbGJhY2spIHtcbiAgICAgIHJldHVybiB0aGlzLmFjdGl2ZUZhbGxiYWNrLmlzUmVhZHk/LigpID8/IHRoaXMuYWN0aXZlRmFsbGJhY2suc3RhdHVzID09PSBcInJ1bm5pbmdcIjtcbiAgICB9XG4gICAgaWYgKHRoaXMuc3RhdHVzID09PSBcInJ1bm5pbmdcIikgcmV0dXJuIHRydWU7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHNhbmRib3ggPSBhd2FpdCB0aGlzLmdldCgpO1xuICAgICAgdGhpcy5zdGF0dXMgPVxuICAgICAgICBzYW5kYm94LnN0YXR1cz8uc3RhdGUgPT09IFwiU0FOREJPWF9TVEFURV9SVU5OSU5HXCIgPyBcInJ1bm5pbmdcIiA6IHJlbW90ZVN0YXR1cyhzYW5kYm94KTtcbiAgICAgIHJldHVybiB0aGlzLnN0YXR1cyA9PT0gXCJydW5uaW5nXCI7XG4gICAgfSBjYXRjaCAoY2F1Z2h0KSB7XG4gICAgICBpZiAoaXNTdGF0dXMoY2F1Z2h0LCA0MDQpKSByZXR1cm4gZmFsc2U7XG4gICAgICB0aHJvdyBjYXVnaHQ7XG4gICAgfVxuICB9XG5cbiAgLyoqIFJlcG9ydCBNYXN0cmEtZmFjaW5nIHNhbmRib3ggbWV0YWRhdGEuICovXG4gIGFzeW5jIGdldEluZm8oKTogUHJvbWlzZTxTYW5kYm94SW5mbz4ge1xuICAgIGlmICh0aGlzLmFjdGl2ZUZhbGxiYWNrKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICAoYXdhaXQgdGhpcy5hY3RpdmVGYWxsYmFjay5nZXRJbmZvPy4oKSkgPz8ge1xuICAgICAgICAgIGlkOiB0aGlzLmFjdGl2ZUZhbGxiYWNrLmlkLFxuICAgICAgICAgIG5hbWU6IHRoaXMuYWN0aXZlRmFsbGJhY2submFtZSxcbiAgICAgICAgICBwcm92aWRlcjogdGhpcy5hY3RpdmVGYWxsYmFjay5wcm92aWRlcixcbiAgICAgICAgICBzdGF0dXM6IHRoaXMuYWN0aXZlRmFsbGJhY2suc3RhdHVzLFxuICAgICAgICAgIGNyZWF0ZWRBdDogdGhpcy5jcmVhdGVkQXQsXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IHNhbmRib3ggPSBhd2FpdCB0aGlzLmdldCgpO1xuICAgIHRoaXMuc3RhdHVzID0gcmVtb3RlU3RhdHVzKHNhbmRib3gpO1xuICAgIHJldHVybiB7XG4gICAgICBpZDogdGhpcy5pZCxcbiAgICAgIG5hbWU6IHNhbmRib3guZGlzcGxheV9uYW1lID8/IHRoaXMubmFtZSxcbiAgICAgIHByb3ZpZGVyOiB0aGlzLnByb3ZpZGVyLFxuICAgICAgc3RhdHVzOiB0aGlzLnN0YXR1cyxcbiAgICAgIGNyZWF0ZWRBdDogdGhpcy5yZW1vdGVDcmVhdGVkQXQgPz8gdGhpcy5jcmVhdGVkQXQsXG4gICAgICAuLi4odGhpcy5sYXN0VXNlZEF0ID8geyBsYXN0VXNlZEF0OiB0aGlzLmxhc3RVc2VkQXQgfSA6IHt9KSxcbiAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgIHJlc291cmNlTmFtZTogc2FuZGJveC5uYW1lLFxuICAgICAgICByZW1vdGVTdGF0ZTogc2FuZGJveC5zdGF0dXM/LnN0YXRlLFxuICAgICAgICB1cGRhdGVUaW1lOiBzYW5kYm94LnVwZGF0ZV90aW1lLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqIEV4cGxhaW4gdGhlIERhdGFicmlja3MgZXhlY3V0aW9uIGJvdW5kYXJ5IHRvIHRoZSBhZ2VudC4gKi9cbiAgZ2V0SW5zdHJ1Y3Rpb25zKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFtcbiAgICAgIFwiQ29tbWFuZHMgcnVuIGluIGEgcGVyc2lzdGVudCBEYXRhYnJpY2tzIHNlcnZlcmxlc3Mgc2FuZGJveCwgbm90IGluIHRoZSBBcHAgY29udGFpbmVyLlwiLFxuICAgICAgXCJVc2Ugc2hlbGwgY29tbWFuZHMgbm9ybWFsbHkuIFRoZSBzYW5kYm94IGhvbWUgZGlyZWN0b3J5IHN1cnZpdmVzIGluYWN0aXZpdHkgc3RvcHMuXCIsXG4gICAgICBcIklmIERhdGFicmlja3MgU2FuZGJveCBpcyB1bmF2YWlsYWJsZSwgY29tbWFuZHMgZmFsbCBiYWNrIHRvIFB5ZGFudGljIE1vbnR5IGFuZCBtdXN0IGJlIFB5dGhvbiBzb3VyY2UuXCIsXG4gICAgICBcIkRhdGFicmlja3MgV29ya3NwYWNlIGZpbGVzeXN0ZW0gbW91bnRzIHJlbWFpbiBzZXBhcmF0ZSB1bmxlc3MgYSBjb21tYW5kIGNvcGllcyBkYXRhIGV4cGxpY2l0bHkuXCIsXG4gICAgXS5qb2luKFwiIFwiKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IHJlc291cmNlUGF0aCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtTQU5EQk9YX0FQSV9QQVRIfS8ke2VuY29kZVVSSUNvbXBvbmVudCh0aGlzLmlkKX1gO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRPckNyZWF0ZShzaWduYWw/OiBBYm9ydFNpZ25hbCkge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5nZXQoc2lnbmFsKTtcbiAgICB9IGNhdGNoIChjYXVnaHQpIHtcbiAgICAgIGlmICghaXNTdGF0dXMoY2F1Z2h0LCA0MDQpKSB0aHJvdyBjYXVnaHQ7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBjb25zdCBzYW5kYm94ID0gYXdhaXQgdGhpcy5yZXF1ZXN0KFNBTkRCT1hfQVBJX1BBVEgsIFwiUE9TVFwiLCBTYW5kYm94UmVzcG9uc2VTY2hlbWEsIHtcbiAgICAgICAgcXVlcnk6IHsgc2FuZGJveF9pZDogdGhpcy5pZCB9LFxuICAgICAgICBwYXlsb2FkOiB7XG4gICAgICAgICAgZGlzcGxheV9uYW1lOiB0aGlzLmRpc3BsYXlOYW1lLFxuICAgICAgICAgIHNwZWM6IHtcbiAgICAgICAgICAgIGNvbXB1dGU6IHtcbiAgICAgICAgICAgICAgaW5hY3Rpdml0eV90aW1lb3V0OiB0aGlzLmluYWN0aXZpdHlUaW1lb3V0LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBzaWduYWwsXG4gICAgICB9KTtcbiAgICAgIHRoaXMucmVtZW1iZXJDcmVhdGVkQXQoc2FuZGJveC5jcmVhdGVfdGltZSk7XG4gICAgICByZXR1cm4gc2FuZGJveDtcbiAgICB9IGNhdGNoIChjYXVnaHQpIHtcbiAgICAgIGlmICghaXNTdGF0dXMoY2F1Z2h0LCA0MDkpKSB0aHJvdyBjYXVnaHQ7XG4gICAgICByZXR1cm4gdGhpcy5nZXQoc2lnbmFsKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldChzaWduYWw/OiBBYm9ydFNpZ25hbCkge1xuICAgIGNvbnN0IHNhbmRib3ggPSBhd2FpdCB0aGlzLnJlcXVlc3QodGhpcy5yZXNvdXJjZVBhdGgsIFwiR0VUXCIsIFNhbmRib3hSZXNwb25zZVNjaGVtYSwge1xuICAgICAgc2lnbmFsLFxuICAgIH0pO1xuICAgIHRoaXMucmVtZW1iZXJDcmVhdGVkQXQoc2FuZGJveC5jcmVhdGVfdGltZSk7XG4gICAgcmV0dXJuIHNhbmRib3g7XG4gIH1cblxuICBwcml2YXRlIG11dGF0ZShvcGVyYXRpb246IFwic3RhcnRcIiB8IFwic3RvcFwiLCBzaWduYWw/OiBBYm9ydFNpZ25hbCkge1xuICAgIHJldHVybiB0aGlzLnJlcXVlc3QoYCR7dGhpcy5yZXNvdXJjZVBhdGh9LyR7b3BlcmF0aW9ufWAsIFwiUE9TVFwiLCBTYW5kYm94UmVzcG9uc2VTY2hlbWEsIHtcbiAgICAgIHNpZ25hbCxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgd2FpdEZvclN0YXRlKGV4cGVjdGVkOiBzdHJpbmcsIHNpZ25hbD86IEFib3J0U2lnbmFsKSB7XG4gICAgY29uc3QgZGVhZGxpbmUgPSBEYXRlLm5vdygpICsgdGhpcy5zdGFydHVwVGltZW91dE1zO1xuICAgIHdoaWxlIChEYXRlLm5vdygpIDwgZGVhZGxpbmUpIHtcbiAgICAgIGNvbnN0IHNhbmRib3ggPSBhd2FpdCB0aGlzLmdldChzaWduYWwpO1xuICAgICAgaWYgKHNhbmRib3guc3RhdHVzPy5zdGF0ZSA9PT0gZXhwZWN0ZWQpIHJldHVybiBzYW5kYm94O1xuICAgICAgYXdhaXQgYXN5bmNVdGlscy5zbGVlcChTQU5EQk9YX1BPTExfSU5URVJWQUxfTVMsIHNpZ25hbCk7XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBEYXRhYnJpY2tzIHNhbmRib3ggJHt0aGlzLmlkfSBkaWQgbm90IHJlYWNoICR7ZXhwZWN0ZWR9IHdpdGhpbiAke3RoaXMuc3RhcnR1cFRpbWVvdXRNc31tc2AsXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtZW1iZXJDcmVhdGVkQXQodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIGlmICghdmFsdWUpIHJldHVybjtcbiAgICBjb25zdCBwYXJzZWQgPSBuZXcgRGF0ZSh2YWx1ZSk7XG4gICAgaWYgKCFOdW1iZXIuaXNOYU4ocGFyc2VkLmdldFRpbWUoKSkpIHRoaXMucmVtb3RlQ3JlYXRlZEF0ID0gcGFyc2VkO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZXF1ZXN0PFQ+KFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBtZXRob2Q6IFwiR0VUXCIgfCBcIlBPU1RcIiB8IFwiREVMRVRFXCIsXG4gICAgc2NoZW1hOiB6LlpvZFR5cGU8VD4sXG4gICAgb3B0aW9uczoge1xuICAgICAgcGF5bG9hZD86IHVua25vd247XG4gICAgICBxdWVyeT86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gICAgICBzaWduYWw/OiBBYm9ydFNpZ25hbDtcbiAgICB9ID0ge30sXG4gICk6IFByb21pc2U8VD4ge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQuYXBpQ2xpZW50LnJlcXVlc3QoXG4gICAgICB7XG4gICAgICAgIHBhdGgsXG4gICAgICAgIG1ldGhvZCxcbiAgICAgICAgcXVlcnk6IG9wdGlvbnMucXVlcnksXG4gICAgICAgIGhlYWRlcnM6IG5ldyBIZWFkZXJzKHtcbiAgICAgICAgICBBY2NlcHQ6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgICAgICAgIC4uLihvcHRpb25zLnBheWxvYWQgPT09IHVuZGVmaW5lZCA/IHt9IDogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9KSxcbiAgICAgICAgfSksXG4gICAgICAgIHJhdzogZmFsc2UsXG4gICAgICAgIC4uLihvcHRpb25zLnBheWxvYWQgPT09IHVuZGVmaW5lZCA/IHt9IDogeyBwYXlsb2FkOiBvcHRpb25zLnBheWxvYWQgfSksXG4gICAgICB9LFxuICAgICAgb3B0aW9ucy5zaWduYWwgPyBkYXRhYnJpY2tzLnRvQ29udGV4dChvcHRpb25zLnNpZ25hbCkgOiB1bmRlZmluZWQsXG4gICAgKTtcbiAgICByZXR1cm4gc2NoZW1hLnBhcnNlKHJlc3BvbnNlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjb21tYW5kU2NyaXB0KGNvbW1hbmQ6IHN0cmluZywgYXJnczogcmVhZG9ubHkgc3RyaW5nW10sIGN3ZDogc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcbiAgY29uc3QgaW52b2NhdGlvbiA9IGFyZ3MubGVuZ3RoID8gW2NvbW1hbmQsIC4uLmFyZ3NdLm1hcChzaGVsbFF1b3RlKS5qb2luKFwiIFwiKSA6IGNvbW1hbmQ7XG4gIHJldHVybiBjd2QgPyBgY2QgLS0gJHtzaGVsbFF1b3RlKGN3ZCl9ICYmICR7aW52b2NhdGlvbn1gIDogaW52b2NhdGlvbjtcbn1cblxuZnVuY3Rpb24gc2hlbGxRdW90ZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGAnJHt2YWx1ZS5yZXBsYWNlQWxsKFwiJ1wiLCBcIidcXFxcJydcIil9J2A7XG59XG5cbmZ1bmN0aW9uIGRlZmluZWRFbnZpcm9ubWVudChpbnB1dDogTm9kZUpTLlByb2Nlc3NFbnYgfCB1bmRlZmluZWQpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhcbiAgICBPYmplY3QuZW50cmllcyhpbnB1dCA/PyB7fSkuZmlsdGVyKFxuICAgICAgKGVudHJ5KTogZW50cnkgaXMgW3N0cmluZywgc3RyaW5nXSA9PiBlbnRyeVsxXSAhPT0gdW5kZWZpbmVkLFxuICAgICksXG4gICk7XG59XG5cbmZ1bmN0aW9uIGlzU3RhdHVzKGNhdWdodDogdW5rbm93biwgc3RhdHVzOiBudW1iZXIpOiBib29sZWFuIHtcbiAgcmV0dXJuIGVycm9yVXRpbHMuZXJyb3JDb250ZXh0KGNhdWdodCkuc3RhdHVzQ29kZSA9PT0gc3RhdHVzO1xufVxuXG5mdW5jdGlvbiByZW1vdGVTdGF0dXMoc2FuZGJveDogei5pbmZlcjx0eXBlb2YgU2FuZGJveFJlc3BvbnNlU2NoZW1hPik6IFByb3ZpZGVyU3RhdHVzIHtcbiAgc3dpdGNoIChzYW5kYm94LnN0YXR1cz8uc3RhdGUpIHtcbiAgICBjYXNlIFwiU0FOREJPWF9TVEFURV9SVU5OSU5HXCI6XG4gICAgICByZXR1cm4gXCJydW5uaW5nXCI7XG4gICAgY2FzZSBcIlNBTkRCT1hfU1RBVEVfU1RPUFBFRFwiOlxuICAgICAgcmV0dXJuIFwic3RvcHBlZFwiO1xuICAgIGNhc2UgXCJTQU5EQk9YX1NUQVRFX1NUT1BQSU5HXCI6XG4gICAgICByZXR1cm4gXCJzdG9wcGluZ1wiO1xuICAgIGNhc2UgXCJTQU5EQk9YX1NUQVRFX1BFTkRJTkdcIjpcbiAgICAgIHJldHVybiBcInN0YXJ0aW5nXCI7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBcInBlbmRpbmdcIjtcbiAgfVxufVxuXG5mdW5jdGlvbiByZXNvbHZlRmFsbGJhY2soXG4gIGNvbmZpZ3VyZWQ6IEV4Y2x1ZGU8RGF0YWJyaWNrc1NhbmRib3hPcHRpb25zW1wiZmFsbGJhY2tcIl0sIGZhbHNlIHwgdW5kZWZpbmVkPixcbik6IFdvcmtzcGFjZVNhbmRib3gge1xuICBpZiAodHlwZW9mIGNvbmZpZ3VyZWQgPT09IFwib2JqZWN0XCIgJiYgXCJwcm92aWRlclwiIGluIGNvbmZpZ3VyZWQgJiYgXCJzdGF0dXNcIiBpbiBjb25maWd1cmVkKSB7XG4gICAgcmV0dXJuIGNvbmZpZ3VyZWQ7XG4gIH1cbiAgcmV0dXJuIG5ldyBNb250eVNhbmRib3goY29uZmlndXJlZCA9PT0gXCJtb250eVwiID8ge30gOiBjb25maWd1cmVkKTtcbn1cblxuZnVuY3Rpb24gaXNEYXRhYnJpY2tzU2FuZGJveFVuYXZhaWxhYmxlKGNhdWdodDogdW5rbm93bik6IGJvb2xlYW4ge1xuICBjb25zdCBjb250ZXh0ID0gZXJyb3JVdGlscy5lcnJvckNvbnRleHQoY2F1Z2h0KTtcbiAgcmV0dXJuIChcbiAgICBjb250ZXh0LnN0YXR1c0NvZGUgPT09IDQwNCB8fFxuICAgIGNvbnRleHQuaGFzTWVzc2FnZShcInJlcXVlc3RlZFwiLCBcImFwaVwiLCBcIm5vdFwiLCBcImF2YWlsYWJsZVwiKSB8fFxuICAgIGNvbnRleHQuaGFzTWVzc2FnZShcImZlYXR1cmVcIiwgXCJkaXNhYmxlZFwiKSB8fFxuICAgIGNvbnRleHQuaGFzTWVzc2FnZShcInNhbmRib3hcIiwgXCJub3RcIiwgXCJlbmFibGVkXCIpIHx8XG4gICAgY29udGV4dC5oYXNNZXNzYWdlKFwicHJldmlld1wiLCBcIm5vdFwiLCBcImVuYWJsZWRcIikgfHxcbiAgICBjb250ZXh0Lmhhc01lc3NhZ2UoXCJwcmV2aWV3XCIsIFwidW5hdmFpbGFibGVcIikgfHxcbiAgICBjb250ZXh0Lmhhc01lc3NhZ2UoXCJwcmV2aWV3XCIsIFwiZGlzYWJsZWRcIilcbiAgKTtcbn1cbiJdfQ==
|
package/package.json
CHANGED
|
@@ -34,19 +34,19 @@
|
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"@databricks/appkit": "0.81.0",
|
|
37
|
-
"@dbx-tools/appkit": "^0.9.
|
|
38
|
-
"@dbx-tools/core": "^0.9.
|
|
39
|
-
"@dbx-tools/databricks": "^0.9.
|
|
40
|
-
"@dbx-tools/fs": "^0.9.
|
|
41
|
-
"@dbx-tools/genie": "^0.9.
|
|
42
|
-
"@dbx-tools/model": "^0.9.
|
|
43
|
-
"@dbx-tools/path": "^0.9.
|
|
44
|
-
"@dbx-tools/postgres": "^0.9.
|
|
45
|
-
"@dbx-tools/shared-core": "^0.9.
|
|
46
|
-
"@dbx-tools/shared-fs": "^0.9.
|
|
47
|
-
"@dbx-tools/shared-genie": "^0.9.
|
|
48
|
-
"@dbx-tools/shared-mastra": "^0.9.
|
|
49
|
-
"@dbx-tools/shared-model": "^0.9.
|
|
37
|
+
"@dbx-tools/appkit": "^0.9.74",
|
|
38
|
+
"@dbx-tools/core": "^0.9.74",
|
|
39
|
+
"@dbx-tools/databricks": "^0.9.74",
|
|
40
|
+
"@dbx-tools/fs": "^0.9.74",
|
|
41
|
+
"@dbx-tools/genie": "^0.9.74",
|
|
42
|
+
"@dbx-tools/model": "^0.9.74",
|
|
43
|
+
"@dbx-tools/path": "^0.9.74",
|
|
44
|
+
"@dbx-tools/postgres": "^0.9.74",
|
|
45
|
+
"@dbx-tools/shared-core": "^0.9.74",
|
|
46
|
+
"@dbx-tools/shared-fs": "^0.9.74",
|
|
47
|
+
"@dbx-tools/shared-genie": "^0.9.74",
|
|
48
|
+
"@dbx-tools/shared-mastra": "^0.9.74",
|
|
49
|
+
"@dbx-tools/shared-model": "^0.9.74",
|
|
50
50
|
"@mastra/ai-sdk": "1.10.5",
|
|
51
51
|
"@mastra/core": "1.71.0",
|
|
52
52
|
"@mastra/express": "1.5.15",
|
|
@@ -220,7 +220,7 @@
|
|
|
220
220
|
"./package.json": "./package.json"
|
|
221
221
|
}
|
|
222
222
|
},
|
|
223
|
-
"version": "0.9.
|
|
223
|
+
"version": "0.9.74",
|
|
224
224
|
"types": "./lib/index.d.ts",
|
|
225
225
|
"dbxToolsConfig": {
|
|
226
226
|
"tags": [
|
package/src/sandbox.ts
CHANGED
|
@@ -546,6 +546,7 @@ function isDatabricksSandboxUnavailable(caught: unknown): boolean {
|
|
|
546
546
|
const context = errorUtils.errorContext(caught);
|
|
547
547
|
return (
|
|
548
548
|
context.statusCode === 404 ||
|
|
549
|
+
context.hasMessage("requested", "api", "not", "available") ||
|
|
549
550
|
context.hasMessage("feature", "disabled") ||
|
|
550
551
|
context.hasMessage("sandbox", "not", "enabled") ||
|
|
551
552
|
context.hasMessage("preview", "not", "enabled") ||
|