sliftutils 1.7.44 → 1.7.46
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.d.ts +2 -0
- package/misc/dist/environment.ts.cache +2 -2
- package/misc/dist/getSecret.ts.cache +2 -2
- package/misc/dist/strings.ts.cache +2 -2
- package/misc/dist/zip.ts.cache +2 -2
- package/misc/https/dist/certs.ts.cache +2 -2
- package/misc/https/dist/hostServer.ts.cache +3 -3
- package/misc/https/dist/persistentLocalStorage.ts.cache +2 -2
- package/misc/https/hostServer.ts +3 -0
- package/package.json +1 -1
- package/render-utils/dist/observer.tsx.cache +2 -2
- package/storage/BulkDatabase2/dist/BulkDatabaseBase.ts.cache +2 -2
- package/storage/BulkDatabase2/dist/BulkDatabaseFormat.ts.cache +2 -2
- package/storage/BulkDatabase2/dist/BulkDatabaseMerge.ts.cache +2 -2
- package/storage/BulkDatabase2/dist/BulkDatabaseReader.ts.cache +2 -2
- package/storage/BulkDatabase2/dist/LoadedIndex.ts.cache +2 -2
- package/storage/BulkDatabase2/dist/WriteOverlay.ts.cache +2 -2
- package/storage/BulkDatabase2/dist/blockCache.ts.cache +2 -2
- package/storage/BulkDatabase2/dist/mergeLock.ts.cache +2 -2
- package/storage/BulkDatabase2/dist/mergeMarkers.ts.cache +2 -2
- package/storage/BulkDatabase2/dist/streamLog.ts.cache +2 -2
- package/storage/BulkDatabase2/dist/syncClient.ts.cache +2 -2
- package/storage/dist/ArchivesDisk.ts.cache +2 -2
- package/storage/dist/FileFolderAPI.tsx.cache +2 -2
- package/storage/dist/IArchives.ts.cache +2 -2
- package/storage/dist/IndexedDBFileFolderAPI.ts.cache +2 -2
- package/storage/dist/JSONStorage.ts.cache +2 -2
- package/storage/dist/PendingManager.tsx.cache +2 -2
- package/storage/dist/TransactionStorage.ts.cache +2 -2
- package/storage/dist/fileSystemPointer.ts.cache +2 -2
- package/storage/dist/remoteFileStorage.ts.cache +2 -2
- package/storage/remoteStorage/createArchives.d.ts +2 -0
- package/storage/remoteStorage/createArchives.ts +16 -4
- package/storage/remoteStorage/dist/ArchivesRemote.ts.cache +2 -2
- package/storage/remoteStorage/dist/ArchivesUrl.ts.cache +2 -2
- package/storage/remoteStorage/dist/blobStore.ts.cache +2 -2
- package/storage/remoteStorage/dist/cliArgs.ts.cache +2 -2
- package/storage/remoteStorage/dist/createArchives.ts.cache +20 -9
- package/storage/remoteStorage/dist/deployTakeover.ts.cache +2 -2
- package/storage/remoteStorage/dist/intermediateSources.ts.cache +2 -2
- package/storage/remoteStorage/dist/remoteConfig.ts.cache +2 -2
- package/storage/remoteStorage/dist/sourceWrapper.ts.cache +2 -2
- package/storage/remoteStorage/dist/storageClientController.ts.cache +2 -2
- package/storage/remoteStorage/dist/storageController.ts.cache +2 -2
- package/storage/remoteStorage/dist/storageServerState.ts.cache +2 -2
package/index.d.ts
CHANGED
|
@@ -3268,6 +3268,8 @@ declare module "sliftutils/storage/remoteStorage/createArchives" {
|
|
|
3268
3268
|
getNextData(): Promise<Buffer | undefined>;
|
|
3269
3269
|
}): Promise<void>;
|
|
3270
3270
|
getURL(path: string): Promise<string>;
|
|
3271
|
+
/** Every URL that could serve this path, in source order. Empty when no public source covers the path's route. */
|
|
3272
|
+
getURLs(path: string): Promise<string[]>;
|
|
3271
3273
|
dispose(): void;
|
|
3272
3274
|
}
|
|
3273
3275
|
export declare function createArchives(config: RemoteConfig | RemoteConfigBase): ArchivesChain;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict"; var console = (function shimConsole() { let baseConsole = globalThis.console; if (typeof window !== "undefined") return baseConsole; let name = __filename.replaceAll("\\", "/").split("/").pop(); let dirName = __dirname.replaceAll("\\", "/").split("/").pop(); let context = { __FILE__: __filename, __DIR__: __dirname, __NAME__: name, __DIRNAME__: dirName }; let newConsole = { ...baseConsole }; for (let shim of ["log", "info", "warn", "error"]) { newConsole[shim] = (...args) => { args.push(context); baseConsole[shim](...args); }; } newConsole.__context = context; return newConsole; })(); "use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true , configurable: true});
|
|
3
3
|
//exports.isInBrowser = exports.isInBuild = exports.triggerIsInBuild = exports.isInElectron = exports.isInChromeExtensionContentScript = exports.isInChromeExtensionBackground = exports.isInChromeExtension = void 0;
|
|
4
4
|
/// <reference types="@types/chrome/index.d.ts" />
|
|
@@ -47,4 +47,4 @@ function isInBrowser() {
|
|
|
47
47
|
}
|
|
48
48
|
exports.isInBrowser = isInBrowser;
|
|
49
49
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJlbnZpcm9ubWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxrREFBa0Q7QUFDbEQsU0FBZ0IsbUJBQW1CO0lBQy9CLE9BQU8sT0FBTyxNQUFNLEtBQUssV0FBVyxJQUFJLE1BQU0sQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7QUFDaEYsQ0FBQztBQUZELGtEQUVDO0FBQ0QsU0FBZ0IsNkJBQTZCO0lBQ3pDLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtRQUFFLE9BQU8sS0FBSyxDQUFDO0lBRXpDLDBFQUEwRTtJQUMxRSxJQUFJLE9BQVEsVUFBa0IsQ0FBQyxhQUFhLEtBQUssVUFBVSxJQUFJLE9BQU8sUUFBUSxLQUFLLFdBQVcsRUFBRSxDQUFDO1FBQzdGLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCwrQkFBK0I7SUFDL0IsSUFBSSxPQUFPLE1BQU0sQ0FBQyxTQUFTLEtBQUssV0FBVyxJQUFJLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUN0RyxJQUFJLENBQUM7WUFDRCxPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxNQUFNLENBQUM7UUFDM0QsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDVCxPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUM7QUFsQkQsc0VBa0JDO0FBQ0QsU0FBZ0IsZ0NBQWdDO0lBQzVDLE9BQU8sbUJBQW1CLEVBQUUsSUFBSSxDQUFDLDZCQUE2QixFQUFFLENBQUM7QUFDckUsQ0FBQztBQUZELDRFQUVDO0FBQ0QsU0FBZ0IsWUFBWTtJQUN4QixPQUFPLE9BQU8sT0FBTyxLQUFLLFdBQVcsSUFBSSxPQUFPLENBQUMsUUFBUSxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO0FBQzNGLENBQUM7QUFGRCxvQ0FFQztBQUNELElBQUksYUFBYSxHQUFHLEtBQUssQ0FBQztBQUMxQixTQUFnQixnQkFBZ0I7SUFDNUIsYUFBYSxHQUFHLElBQUksQ0FBQztBQUN6QixDQUFDO0FBRkQsNENBRUM7QUFDRCxTQUFnQixTQUFTO0lBQ3JCLE9BQU8sYUFBYSxDQUFDO0FBQ3pCLENBQUM7QUFGRCw4QkFFQztBQUNELFNBQWdCLFdBQVc7SUFDdkIsT0FBTyxPQUFPLFFBQVEsS0FBSyxXQUFXLENBQUM7QUFDM0MsQ0FBQztBQUZELGtDQUVDIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgdHlwZXM9XCJAdHlwZXMvY2hyb21lL2luZGV4LmQudHNcIiAvPlxuZXhwb3J0IGZ1bmN0aW9uIGlzSW5DaHJvbWVFeHRlbnNpb24oKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBjaHJvbWUgIT09IFwidW5kZWZpbmVkXCIgJiYgY2hyb21lLnJ1bnRpbWUgJiYgY2hyb21lLnJ1bnRpbWUuaWQ7XG59XG5leHBvcnQgZnVuY3Rpb24gaXNJbkNocm9tZUV4dGVuc2lvbkJhY2tncm91bmQoKSB7XG4gICAgaWYgKCFpc0luQ2hyb21lRXh0ZW5zaW9uKCkpIHJldHVybiBmYWxzZTtcblxuICAgIC8vIE1hbmlmZXN0IFYzOiBTZXJ2aWNlIFdvcmtlciBjb250ZXh0IChoYXMgaW1wb3J0U2NyaXB0cyBidXQgbm8gZG9jdW1lbnQpXG4gICAgaWYgKHR5cGVvZiAoZ2xvYmFsVGhpcyBhcyBhbnkpLmltcG9ydFNjcmlwdHMgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgZG9jdW1lbnQgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gTWFuaWZlc3QgVjI6IEJhY2tncm91bmQgcGFnZVxuICAgIGlmICh0eXBlb2YgY2hyb21lLmV4dGVuc2lvbiAhPT0gXCJ1bmRlZmluZWRcIiAmJiB0eXBlb2YgY2hyb21lLmV4dGVuc2lvbi5nZXRCYWNrZ3JvdW5kUGFnZSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gY2hyb21lLmV4dGVuc2lvbi5nZXRCYWNrZ3JvdW5kUGFnZSgpID09PSB3aW5kb3c7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc0luQ2hyb21lRXh0ZW5zaW9uQ29udGVudFNjcmlwdCgpIHtcbiAgICByZXR1cm4gaXNJbkNocm9tZUV4dGVuc2lvbigpICYmICFpc0luQ2hyb21lRXh0ZW5zaW9uQmFja2dyb3VuZCgpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGlzSW5FbGVjdHJvbigpIHtcbiAgICByZXR1cm4gdHlwZW9mIHByb2Nlc3MgIT09IFwidW5kZWZpbmVkXCIgJiYgcHJvY2Vzcy52ZXJzaW9ucyAmJiBwcm9jZXNzLnZlcnNpb25zLmVsZWN0cm9uO1xufVxubGV0IGlzSW5CdWlsZEZsYWcgPSBmYWxzZTtcbmV4cG9ydCBmdW5jdGlvbiB0cmlnZ2VySXNJbkJ1aWxkKCkge1xuICAgIGlzSW5CdWlsZEZsYWcgPSB0cnVlO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGlzSW5CdWlsZCgpIHtcbiAgICByZXR1cm4gaXNJbkJ1aWxkRmxhZztcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc0luQnJvd3NlcigpIHtcbiAgICByZXR1cm4gdHlwZW9mIGRvY3VtZW50ICE9PSBcInVuZGVmaW5lZFwiO1xufSJdfQ==
|
|
50
|
-
/* _JS_SOURCE_HASH = "
|
|
50
|
+
/* _JS_SOURCE_HASH = "de8507c9fce2fb9b79361d996ea125431343dc38988e6c870ee82c7049032ba0"; */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict"; var console = (function shimConsole() { let baseConsole = globalThis.console; if (typeof window !== "undefined") return baseConsole; let name = __filename.replaceAll("\\", "/").split("/").pop(); let dirName = __dirname.replaceAll("\\", "/").split("/").pop(); let context = { __FILE__: __filename, __DIR__: __dirname, __NAME__: name, __DIRNAME__: dirName }; let newConsole = { ...baseConsole }; for (let shim of ["log", "info", "warn", "error"]) { newConsole[shim] = (...args) => { args.push(context); baseConsole[shim](...args); }; } newConsole.__context = context; return newConsole; })(); "use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
4
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
@@ -136,4 +136,4 @@ function setSecret(key, value) {
|
|
|
136
136
|
}
|
|
137
137
|
exports.setSecret = setSecret;
|
|
138
138
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0U2VjcmV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZ2V0U2VjcmV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EseURBQW9EO0FBQ3BELDZDQUFxQztBQUVyQyxNQUFNLG1CQUFtQixHQUFHLFNBQVMsQ0FBQztBQUV0QyxTQUFTLGFBQWEsQ0FBQyxHQUFXO0lBQzlCLE9BQU8sbUJBQW1CLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDL0QsQ0FBQztBQUVELFNBQWdCLFdBQVcsQ0FBQyxHQUFXO0lBQ25DLElBQUksSUFBQSxvQkFBTSxHQUFFLEVBQUUsQ0FBQztRQUNYLE1BQU0sSUFBSSxLQUFLLENBQUMsOENBQThDLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBQ0QsWUFBWSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNoRCxDQUFDO0FBTEQsa0NBS0M7QUFFWSxRQUFBLFNBQVMsR0FBRyxJQUFBLGVBQUssRUFBQyxLQUFLLFVBQVUsU0FBUyxDQUFDLEdBQVc7O0lBQy9ELElBQUksSUFBQSxvQkFBTSxHQUFFLEVBQUUsQ0FBQztRQUNYLE1BQU0sRUFBRSxHQUFHLHdEQUFhLElBQUksR0FBQyxDQUFDO1FBQzlCLE1BQU0sRUFBRSxHQUFHLHdEQUFhLElBQUksR0FBQyxDQUFDO1FBQzlCLE1BQU0sSUFBSSxHQUFHLHdEQUFhLE1BQU0sR0FBQyxDQUFDO1FBRWxDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDcEQsSUFBSSxnQkFBa0gsQ0FBQztRQUN2SCxJQUFJLENBQUM7WUFDRCxnQkFBZ0IsR0FBRyx5QkFBYSxjQUFjLHVDQUE0QixDQUFDO1FBQy9FLENBQUM7UUFBQyxXQUFNLENBQUM7WUFDTCxnRUFBZ0U7UUFDcEUsQ0FBQztRQUNELElBQUks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QUFDO2FBQ0osQ0FBQyxFQUNGLE1BQU0sQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFO2dCQUMzQixLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRTtnQkFDdkQsT0FBTyxFQUFFLEdBQUcsRUFBRTtvQkFDVixJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQzt3QkFDZCxZQUFZLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7d0JBQzlDLEtBQUssRUFBRSxDQUFDO3dCQUNSLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3pCLENBQUM7Z0JBQ0wsQ0FBQzthQUNKLEVBQUUsTUFBTSxDQUFDLENBQ2IsQ0FDSjtTQUNKLENBQUMsQ0FBQztJQUNQLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDLENBQUM7QUFFSCxTQUFnQixTQUFTLENBQUMsR0FBVyxFQUFFLEtBQWE7SUFDaEQsSUFBSSxJQUFBLG9CQUFNLEdBQUUsRUFBRSxDQUFDO1FBQ1gsTUFBTSxJQUFJLEtBQUssQ0FBQyxxSEFBcUgsQ0FBQyxDQUFDO0lBQzNJLENBQUM7SUFDRCxZQUFZLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUNwRCxDQUFDO0FBTEQsOEJBS0MiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IGNhY2hlIH0gZnJvbSBcInNvY2tldC1mdW5jdGlvbi9zcmMvY2FjaGluZ1wiO1xuaW1wb3J0IHsgaXNOb2RlIH0gZnJvbSBcInR5cGVzYWZlY3NzXCI7XG5cbmNvbnN0IHNlY3JldFN0b3JhZ2VQcmVmaXggPSBcInNlY3JldF9cIjtcblxuZnVuY3Rpb24gZ2V0U3RvcmFnZUtleShrZXk6IHN0cmluZykge1xuICAgIHJldHVybiBzZWNyZXRTdG9yYWdlUHJlZml4ICsga2V5LnJlcGxhY2UoL1tcXC9cXFxcXFwuXS9nLCBcIl9cIik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNldFNlY3JldChrZXk6IHN0cmluZykge1xuICAgIGlmIChpc05vZGUoKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJyZXNldFNlY3JldCBpcyBvbmx5IHN1cHBvcnRlZCBpbiB0aGUgYnJvd3NlclwiKTtcbiAgICB9XG4gICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oZ2V0U3RvcmFnZUtleShrZXkpKTtcbn1cblxuZXhwb3J0IGNvbnN0IGdldFNlY3JldCA9IGNhY2hlKGFzeW5jIGZ1bmN0aW9uIGdldFNlY3JldChrZXk6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgaWYgKGlzTm9kZSgpKSB7XG4gICAgICAgIGNvbnN0IG9zID0gYXdhaXQgaW1wb3J0KFwib3NcIik7XG4gICAgICAgIGNvbnN0IGZzID0gYXdhaXQgaW1wb3J0KFwiZnNcIik7XG4gICAgICAgIGNvbnN0IHBhdGggPSBhd2FpdCBpbXBvcnQoXCJwYXRoXCIpO1xuXG4gICAgICAgIGNvbnN0IGFwcFNlY3JldHNQYXRoID0gcGF0aC5yZXNvbHZlKFwiLi9hcHBTZWNyZXRzXCIpO1xuICAgICAgICBsZXQgYXBwU2VjcmV0c01vZHVsZTogeyBnZXRBcHBTZWNyZXQ/OiAoa2V5OiBzdHJpbmcpID0+IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB8IHN0cmluZyB8IHVuZGVmaW5lZCB9IHwgdW5kZWZpbmVkO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXBwU2VjcmV0c01vZHVsZSA9IGF3YWl0IGltcG9ydChhcHBTZWNyZXRzUGF0aCkgYXMgdHlwZW9mIGFwcFNlY3JldHNNb2R1bGU7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgLy8gTW9kdWxlIGRvZXNuJ3QgZXhpc3QsIGZhbGwgdGhyb3VnaCB0byB0aGUgZmlsZS1iYXNlZCBhcHByb2FjaFxuICAgICAgICB9XG4gICAgICAgIGlmIChhcHBTZWNyZXRzTW9kdWxlPy5nZXRBcHBTZWNyZXQpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGFwcFNlY3JldHNNb2R1bGUuZ2V0QXBwU2VjcmV0KGtleSk7XG4gICAgICAgICAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgYW4gYXBwIHNlY3JldCBuYW1lZCBcIiR7a2V5fVwiIGZyb20gZ2V0QXBwU2VjcmV0IGluICR7YXBwU2VjcmV0c1BhdGh9LCBidXQgaXQgcmV0dXJuZWQgbm8gcmVzdWx0YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QganNvbkluZGV4ID0ga2V5LmluZGV4T2YoXCIuanNvblwiKTtcbiAgICAgICAgbGV0IGZpbGVQYXRoOiBzdHJpbmc7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpZiAoanNvbkluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgICAgIGZpbGVQYXRoID0gb3MuaG9tZWRpcigpICsgXCIvXCIgKyBrZXk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZzLnJlYWRGaWxlU3luYyhmaWxlUGF0aCwgXCJ1dGYtOFwiKS50cmltKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHBhdGhQYXJ0ID0ga2V5LnNsaWNlKDAsIGpzb25JbmRleCArIFwiLmpzb25cIi5sZW5ndGgpO1xuICAgICAgICAgICAgZmlsZVBhdGggPSBvcy5ob21lZGlyKCkgKyBcIi9cIiArIHBhdGhQYXJ0O1xuICAgICAgICAgICAgY29uc3QgY29udGVudHMgPSBmcy5yZWFkRmlsZVN5bmMoZmlsZVBhdGgsIFwidXRmLThcIik7XG4gICAgICAgICAgICBjb25zdCBqc29uID0gSlNPTi5wYXJzZShjb250ZW50cyk7XG5cbiAgICAgICAgICAgIGNvbnN0IGtleVBhcnQgPSBrZXkuc2xpY2UoanNvbkluZGV4ICsgXCIuanNvbi5cIi5sZW5ndGgpO1xuICAgICAgICAgICAgaWYgKCFrZXlQYXJ0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGpzb24pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGpzb25ba2V5UGFydF07XG4gICAgICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQga2V5IFwiJHtrZXlQYXJ0fVwiIGluICR7ZmlsZVBhdGh9LCB3YXMgdW5kZWZpbmVkYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgZmluZCBzZWNyZXQgXCIke2tleX1cIi4gRXhwZWN0ZWQgaXQgZWl0aGVyIGZyb20gZ2V0QXBwU2VjcmV0IGluIHRoZSBhcHAgc2VjcmV0IG1vZHVsZSBhdCAke2FwcFNlY3JldHNQYXRofSwgb3IgaW4gdGhlIGZpbGUgYXQgJHtvcy5ob21lZGlyKCkgKyBcIi9cIiArIGtleX0uIFVuZGVybHlpbmcgZXJyb3I6ICR7KGUgYXMgRXJyb3IpLnN0YWNrID8/IGV9YCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBCcm93c2VyIGltcGxlbWVudGF0aW9uXG4gICAgY29uc3Qgc3RvcmFnZUtleSA9IGdldFN0b3JhZ2VLZXkoa2V5KTtcbiAgICBjb25zdCBjYWNoZWQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShzdG9yYWdlS2V5KTtcbiAgICBpZiAoY2FjaGVkKSB7XG4gICAgICAgIHJldHVybiBjYWNoZWQ7XG4gICAgfVxuXG4gICAgLy8gU2hvdyBtb2RhbCB0byBwcm9tcHQgdXNlciBmb3Igc2VjcmV0XG4gICAgY29uc3QgeyBzaG93RnVsbHNjcmVlbk1vZGFsLCBGdWxsc2NyZWVuTW9kYWwgfSA9IGF3YWl0IGltcG9ydChcIi4uL3JlbmRlci11dGlscy9GdWxsc2NyZWVuTW9kYWxcIik7XG4gICAgY29uc3QgeyBzaG93TW9kYWwgfSA9IGF3YWl0IGltcG9ydChcIi4uL3JlbmRlci11dGlscy9tb2RhbFwiKTtcbiAgICBjb25zdCB7IG9ic2VydmFibGUgfSA9IGF3YWl0IGltcG9ydChcIm1vYnhcIik7XG4gICAgY29uc3QgcHJlYWN0ID0gYXdhaXQgaW1wb3J0KFwicHJlYWN0XCIpO1xuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPHN0cmluZz4oKHJlc29sdmUpID0+IHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSBvYnNlcnZhYmxlKHtcbiAgICAgICAgICAgIHZhbHVlOiBcIlwiLFxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCB7IGNsb3NlIH0gPSBzaG93TW9kYWwoe1xuICAgICAgICAgICAgY29udGVudHM6IHByZWFjdC5jcmVhdGVFbGVtZW50KEZ1bGxzY3JlZW5Nb2RhbCwge1xuICAgICAgICAgICAgICAgIG9uQ2FuY2VsOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIERvbid0IGFsbG93IGNhbmNlbCB3aXRob3V0IGEgdmFsdWVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBwcmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IHN0eWxlOiB7IGRpc3BsYXk6IFwiZmxleFwiLCBmbGV4RGlyZWN0aW9uOiBcImNvbHVtblwiLCBnYXA6IDEwIH0gfSxcbiAgICAgICAgICAgICAgICAgICAgcHJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyBzdHlsZTogeyBmb250V2VpZ2h0OiBcImJvbGRcIiB9IH0sIGBFbnRlciBzZWNyZXQgZm9yOiAke2tleX1gKSxcbiAgICAgICAgICAgICAgICAgICAgcHJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogeyBwYWRkaW5nOiAxMCwgZm9udFNpemU6IDE2IH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBvbklucHV0OiAoZTogRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS52YWx1ZSA9IChlLnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBvbktleURvd246IChlOiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGUuY29kZSA9PT0gXCJFbnRlclwiICYmIHN0YXRlLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHN0b3JhZ2VLZXksIHN0YXRlLnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShzdGF0ZS52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIHByZWFjdC5jcmVhdGVFbGVtZW50KFwiYnV0dG9uXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7IHBhZGRpbmc6IDEwLCBmb250U2l6ZTogMTYsIGN1cnNvcjogXCJwb2ludGVyXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RhdGUudmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oc3RvcmFnZUtleSwgc3RhdGUudmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHN0YXRlLnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LCBcIlNhdmVcIiksXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICksXG4gICAgICAgIH0pO1xuICAgIH0pO1xufSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRTZWNyZXQoa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAoaXNOb2RlKCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwic2V0U2VjcmV0IGlzIG9ubHkgc3VwcG9ydGVkIGluIHRoZSBicm93c2VyLiBXZSBkb24ndCB3YW50IHRvIGJyZWFrIHRoZSB1c2VyJ3MgZmlsZSBzeXN0ZW0gd2l0aCBzZXRTZWNyZXQgaW4gTm9kZUpTLlwiKTtcbiAgICB9XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oZ2V0U3RvcmFnZUtleShrZXkpLCB2YWx1ZSk7XG59XG4iXX0=
|
|
139
|
-
/* _JS_SOURCE_HASH = "
|
|
139
|
+
/* _JS_SOURCE_HASH = "43dfc5991cbc841376e1b832e2b30c17341058ed45b2accd36ec4e823580f05b"; */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict"; var console = (function shimConsole() { let baseConsole = globalThis.console; if (typeof window !== "undefined") return baseConsole; let name = __filename.replaceAll("\\", "/").split("/").pop(); let dirName = __dirname.replaceAll("\\", "/").split("/").pop(); let context = { __FILE__: __filename, __DIR__: __dirname, __NAME__: name, __DIRNAME__: dirName }; let newConsole = { ...baseConsole }; for (let shim of ["log", "info", "warn", "error"]) { newConsole[shim] = (...args) => { args.push(context); baseConsole[shim](...args); }; } newConsole.__context = context; return newConsole; })(); "use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true , configurable: true});
|
|
3
3
|
//exports.ellipsize = void 0;
|
|
4
4
|
function ellipsize(text, maxLength) {
|
|
@@ -9,4 +9,4 @@ function ellipsize(text, maxLength) {
|
|
|
9
9
|
}
|
|
10
10
|
exports.ellipsize = ellipsize;
|
|
11
11
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5ncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInN0cmluZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsU0FBZ0IsU0FBUyxDQUFDLElBQVksRUFBRSxTQUFpQjtJQUNyRCxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksU0FBUyxFQUFFLENBQUM7UUFDM0IsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsU0FBUyxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQztBQUNoRCxDQUFDO0FBTEQsOEJBS0MiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZWxsaXBzaXplKHRleHQ6IHN0cmluZywgbWF4TGVuZ3RoOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGlmICh0ZXh0Lmxlbmd0aCA8PSBtYXhMZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIHRleHQ7XG4gICAgfVxuICAgIHJldHVybiB0ZXh0LnNsaWNlKDAsIG1heExlbmd0aCAtIDMpICsgXCIuLi5cIjtcbn1cbiJdfQ==
|
|
12
|
-
/* _JS_SOURCE_HASH = "
|
|
12
|
+
/* _JS_SOURCE_HASH = "2940a18b46d3e6b0349b3768588927e9002bfc3a985f2b84c32f2ad2f84813ff"; */
|
package/misc/dist/zip.ts.cache
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict"; var console = (function shimConsole() { let baseConsole = globalThis.console; if (typeof window !== "undefined") return baseConsole; let name = __filename.replaceAll("\\", "/").split("/").pop(); let dirName = __dirname.replaceAll("\\", "/").split("/").pop(); let context = { __FILE__: __filename, __DIR__: __dirname, __NAME__: name, __DIRNAME__: dirName }; let newConsole = { ...baseConsole }; for (let shim of ["log", "info", "warn", "error"]) { newConsole[shim] = (...args) => { args.push(context); baseConsole[shim](...args); }; } newConsole.__context = context; return newConsole; })(); "use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true , configurable: true});
|
|
3
3
|
//exports.Zip = void 0;
|
|
4
4
|
const compileFlags_1 = require("socket-function/require/compileFlags");
|
|
@@ -6,4 +6,4 @@ const Zip_1 = require("socket-function/src/Zip");
|
|
|
6
6
|
Object.defineProperty(exports, "Zip", { enumerable: true, get: function () { return Zip_1.Zip; } , configurable: true});
|
|
7
7
|
(0, compileFlags_1.setFlag)(require, "pako", "allowclient", true);
|
|
8
8
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemlwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiemlwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUtBLHVFQUErRDtBQUUvRCxpREFBOEM7QUFHckMsb0ZBSEEsU0FBRyxPQUdBO0FBRlosSUFBQSxzQkFBTyxFQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNOb2RlIH0gZnJvbSBcInNvY2tldC1mdW5jdGlvbi9zcmMvbWlzY1wiO1xuaW1wb3J0IHsgbWVhc3VyZUZuYyB9IGZyb20gXCJzb2NrZXQtZnVuY3Rpb24vc3JjL3Byb2ZpbGluZy9tZWFzdXJlXCI7XG5pbXBvcnQgemxpYiBmcm9tIFwiemxpYlwiO1xuaW1wb3J0ICogYXMgcGFrbyBmcm9tIFwicGFrb1wiO1xuXG5pbXBvcnQgeyBzZXRGbGFnIH0gZnJvbSBcInNvY2tldC1mdW5jdGlvbi9yZXF1aXJlL2NvbXBpbGVGbGFnc1wiO1xuaW1wb3J0IHsgTWF5YmVQcm9taXNlIH0gZnJvbSBcInNvY2tldC1mdW5jdGlvbi9zcmMvdHlwZXNcIjtcbmltcG9ydCB7IFppcCB9IGZyb20gXCJzb2NrZXQtZnVuY3Rpb24vc3JjL1ppcFwiO1xuc2V0RmxhZyhyZXF1aXJlLCBcInBha29cIiwgXCJhbGxvd2NsaWVudFwiLCB0cnVlKTtcblxuZXhwb3J0IHsgWmlwIH07Il19
|
|
9
|
-
/* _JS_SOURCE_HASH = "
|
|
9
|
+
/* _JS_SOURCE_HASH = "c12edb7a13e9f5bfb42f2fd9379966199847c174297f9f8cf3a6770cb8309264"; */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict"; var console = (function shimConsole() { let baseConsole = globalThis.console; if (typeof window !== "undefined") return baseConsole; let name = __filename.replaceAll("\\", "/").split("/").pop(); let dirName = __dirname.replaceAll("\\", "/").split("/").pop(); let context = { __FILE__: __filename, __DIR__: __dirname, __NAME__: name, __DIRNAME__: dirName }; let newConsole = { ...baseConsole }; for (let shim of ["log", "info", "warn", "error"]) { newConsole[shim] = (...args) => { args.push(context); baseConsole[shim](...args); }; } newConsole.__context = context; return newConsole; })(); "use strict";
|
|
2
2
|
/// <reference path="./node-forge-ed25519.d.ts" />
|
|
3
3
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
4
|
if (k2 === undefined) k2 = k;
|
|
@@ -462,4 +462,4 @@ function getOwnNodeIdAllowUndefined() {
|
|
|
462
462
|
}
|
|
463
463
|
exports.getOwnNodeIdAllowUndefined = getOwnNodeIdAllowUndefined;
|
|
464
464
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VydHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjZXJ0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsa0RBQWtEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVsRCwrbkJBQStuQjtBQUMvbkIsc0lBQXNJO0FBRXRJLGlEQUFpRDtBQUVqRCx1RUFBK0Q7QUFDL0Qsa0RBQW9DO0FBR3BDLHlEQUEwRDtBQUUxRCwwREFBK0I7QUFDL0Isb0RBQTRCO0FBQzVCLDZEQUFpRTtBQUNqRSxtRUFBOEY7QUFDOUYsNkRBQWtIO0FBQ2xILG1FQUFnRTtBQUNoRSw2REFBMEU7QUFDMUUscUVBQXVEO0FBQ3ZELHdDQUF1QztBQUV2QyxJQUFBLHNCQUFPLEVBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDcEQsSUFBQSxzQkFBTyxFQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBRW5ELE1BQU0sU0FBUyxHQUFHLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQztBQUV6QixRQUFBLGtCQUFrQixHQUFHLHNDQUFzQyxDQUFDO0FBRTVELFFBQUEsa0JBQWtCLEdBQUcsY0FBYyxDQUFDO0FBR2pELFNBQVMsZ0JBQWdCLENBQUMsTUFBYztJQUNwQyxPQUFPLElBQUEsb0NBQVcsRUFBc0IsTUFBTSxFQUFFLDBCQUFrQixDQUFDLENBQUM7QUFDeEUsQ0FBQztBQUlELFNBQWdCLGFBQWEsQ0FBQyxJQUFxQjtJQUMvQyxJQUFJLE9BQU8sR0FBRyxJQUFJLGdCQUFNLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUN2RCxJQUFJLFdBQVcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJ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QUFFO0lBQzdELElBQUksRUFBRSxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvQixPQUFPLGdCQUFnQixDQUFDLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDL0MsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUVKLFNBQWdCLFlBQVk7SUFDeEIsSUFBSSxNQUFNLEdBQUcsK0JBQWMsQ0FBQyxhQUFhLENBQUM7SUFDMUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDO0FBTkQsb0NBTUM7QUFFRCxTQUFnQiwwQkFBMEI7SUFDdEMsT0FBTywrQkFBYyxDQUFDLGFBQWEsQ0FBQztBQUN4QyxDQUFDO0FBRkQsZ0VBRUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi9ub2RlLWZvcmdlLWVkMjU1MTkuZC50c1wiIC8+XG5cbi8vIE5PVEU6IFdlIGNhbid0IHVzZSBjcnlwdG8uc3VidGxlIChub24tZXh0cmFjdGFibGUgQ3J5cHRvS2V5cykgZm9yIG91ciBrZXlzLCBiZWNhdXNlIHN1YnRsZSBpcyBhc3luY2hyb25vdXMsIGFuZCBldmVyeXRoaW5nIGhlcmUgKGtleSBnZW5lcmF0aW9uLCBjZXJ0IGNyZWF0aW9uLCBzaWduaW5nKSBtdXN0IGJlIGF2YWlsYWJsZSBzeW5jaHJvbm91c2x5LiBUaGUgb25seSByZWFsIGJlbmVmaXQgb2Ygc3VidGxlIGlzIHRoYXQgYSBjcm9zcy1zaXRlIHNjcmlwdGluZyBhdHRhY2sgY2FuJ3QgZXhmaWx0cmF0ZSB0aGUga2V5LiBXaGljaCwgd2hpbGUgbmljZSwgaXMgb2YgbWlub3IgYmVuZWZpdCwgYXMgdGhlIGNyb3NzLXNpdGUgc2NyaXB0IGNhbiBhbHJlYWR5IGRvIHF1aXRlIGEgYml0IG9mIGRhbWFnZSBhbnl3YXkgd2l0aCBhY2Nlc3MuIEFuZCBpZiB0aGF0IGhhcHBlbnMsIHRoZSBmaXJzdCB0aGluZyB0aGUgdXNlciBpcyBwcm9iYWJseSBnb2luZyB0byBkbyBpcyByZXNldCBhbGwgdGhlaXIgY3JlZGVudGlhbHMsIHdoaWNoIHNvbHZlcyB0aGUgY2FzZSBvZiB0aGUga2V5IGJlaW5nIGV4ZmlsdHJhdGVkIGFueXdheSAoYnkgdGVsbGluZyB0aGUgc2VydmVyIHRvIHN0b3AgdHJ1c3RpbmcgYWxsIGlkZW50aXRpZXMpLlxuLy8gTk9URTogV2UgYXJlIGp1c3Qgbm90IGdvaW5nIHRvIHN1cHBvcnQgSFRUUFMgYnJvd3NlciBjZXJ0cy4gT3VyIGNvZGUgaXMgcHVyZWx5IGZvciBpZGVudGlmaWNhdGlvbiwgYW5kIHNvIGl0IG9ubHkgc3VwcG9ydHMgRUQyNTUxOS5cblxuLy8gaHR0cHM6Ly93d3cucmZjLWVkaXRvci5vcmcvcmZjL3JmYzUyODAjcGFnZS00MlxuXG5pbXBvcnQgeyBzZXRGbGFnIH0gZnJvbSBcInNvY2tldC1mdW5jdGlvbi9yZXF1aXJlL2NvbXBpbGVGbGFnc1wiO1xuaW1wb3J0ICogYXMgZm9yZ2UgZnJvbSBcIm5vZGUtZm9yZ2VcIjtcbmltcG9ydCBvcyBmcm9tIFwib3NcIjtcbmltcG9ydCBmc1N5bmMgZnJvbSBcImZzXCI7XG5pbXBvcnQgeyBjYWNoZSwgbGF6eSB9IGZyb20gXCJzb2NrZXQtZnVuY3Rpb24vc3JjL2NhY2hpbmdcIjtcbmltcG9ydCB7IGlzTm9kZSB9IGZyb20gXCJzb2NrZXQtZnVuY3Rpb24vc3JjL21pc2NcIjtcbmltcG9ydCBzaGEyNjUgZnJvbSBcImpzLXNoYTI1NlwiO1xuaW1wb3J0IGNyeXB0byBmcm9tIFwiY3J5cHRvXCI7XG5pbXBvcnQgeyB0cnVzdENlcnRpZmljYXRlIH0gZnJvbSBcInNvY2tldC1mdW5jdGlvbi9zcmMvY2VydFN0b3JlXCI7XG5pbXBvcnQgeyBtZWFzdXJlQmxvY2ssIG1lYXN1cmVGbmMsIG1lYXN1cmVXcmFwIH0gZnJvbSBcInNvY2tldC1mdW5jdGlvbi9zcmMvcHJvZmlsaW5nL21lYXN1cmVcIjtcbmltcG9ydCB7IGdldE5vZGVJZERvbWFpbiwgZ2V0Tm9kZUlkRG9tYWluTWF5YmVVbmRlZmluZWQsIGdldE5vZGVJZExvY2F0aW9uIH0gZnJvbSBcInNvY2tldC1mdW5jdGlvbi9zcmMvbm9kZUNhY2hlXCI7XG5pbXBvcnQgeyBTb2NrZXRGdW5jdGlvbiB9IGZyb20gXCJzb2NrZXQtZnVuY3Rpb24vU29ja2V0RnVuY3Rpb25cIjtcbmltcG9ydCB7IHJlc2V0QWxsTm9kZUNhbGxGYWN0b3JpZXMgfSBmcm9tIFwic29ja2V0LWZ1bmN0aW9uL3NyYy9ub2RlQ2FjaGVcIjtcbmltcG9ydCB7IGdldEtleVN0b3JlIH0gZnJvbSBcIi4vcGVyc2lzdGVudExvY2FsU3RvcmFnZVwiO1xuaW1wb3J0IHsgZWxsaXBzaXplIH0gZnJvbSBcIi4uL3N0cmluZ3NcIjtcblxuc2V0RmxhZyhyZXF1aXJlLCBcIm5vZGUtZm9yZ2VcIiwgXCJhbGxvd2NsaWVudFwiLCB0cnVlKTtcbnNldEZsYWcocmVxdWlyZSwgXCJqcy1zaGEyNTZcIiwgXCJhbGxvd2NsaWVudFwiLCB0cnVlKTtcblxuY29uc3QgdGltZUluRGF5ID0gMTAwMCAqIDYwICogNjAgKiAyNDtcblxuZXhwb3J0IGNvbnN0IENBX05PVF9GT1VORF9FUlJPUiA9IFwiMThhYTczMTgtZjg4Zi00ZDJkLWI0MWYtM2RhZjRhNDMzODI3XCI7XG5cbmV4cG9ydCBjb25zdCBpZGVudGl0eVN0b3JhZ2VLZXkgPSBcIm1hY2hpbmVDQV8xNFwiO1xuZXhwb3J0IHR5cGUgSWRlbnRpdHlTdG9yYWdlVHlwZSA9IHsgZG9tYWluOiBzdHJpbmc7IGNlcnRCNjQ6IHN0cmluZzsga2V5QjY0OiBzdHJpbmcgfTtcblxuZnVuY3Rpb24gZ2V0SWRlbnRpdHlTdG9yZShkb21haW46IHN0cmluZykge1xuICAgIHJldHVybiBnZXRLZXlTdG9yZTxJZGVudGl0eVN0b3JhZ2VUeXBlPihkb21haW4sIGlkZW50aXR5U3RvcmFnZUtleSk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgWDUwOUtleVBhaXIgeyBkb21haW46IHN0cmluZzsgY2VydDogQnVmZmVyOyBrZXk6IEJ1ZmZlcjsgfVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29tbW9uTmFtZShjZXJ0OiBCdWZmZXIgfCBzdHJpbmcpIHtcbiAgICBsZXQgc3ViamVjdCA9IG5ldyBjcnlwdG8uWDUwOUNlcnRpZmljYXRlKGNlcnQpLnN1YmplY3Q7XG4gICAgbGV0IHN1YmplY3RLVlBzID0gbmV3IE1hcChzdWJqZWN0LnNwbGl0KFwiLFwiKS5tYXAoeCA9PiB4LnRyaW0oKS5zcGxpdChcIj1cIikpLm1hcCh4ID0+IFt4WzBdLCB4LnNsaWNlKDEpLmpvaW4oXCI9XCIpXSkpO1xuICAgIGxldCBjb21tb25OYW1lID0gc3ViamVjdEtWUHMuZ2V0KFwiQ05cIik7XG4gICAgaWYgKCFjb21tb25OYW1lKSB0aHJvdyBuZXcgRXJyb3IoYE5vIGNvbW1vbiBuYW1lIGluIHN1YmplY3Q6ICR7c3ViamVjdH1gKTtcbiAgICByZXR1cm4gY29tbW9uTmFtZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVg1MDkoXG4gICAgY29uZmlnOiB7XG4gICAgICAgIGRvbWFpbjogc3RyaW5nO1xuICAgICAgICBpc3N1ZXI6IFg1MDlLZXlQYWlyIHwgXCJzZWxmXCI7XG4gICAgICAgIGxpZmVTcGFuOiBudW1iZXI7XG4gICAgICAgIGtleVBhaXI6IHtcbiAgICAgICAgICAgIHB1YmxpY0tleTogZm9yZ2UuRWQyNTUxOVB1YmxpY0tleTtcbiAgICAgICAgICAgIHByaXZhdGVLZXk6IGZvcmdlLkVkMjU1MTlQcml2YXRlS2V5O1xuICAgICAgICB9O1xuICAgIH1cbik6IFg1MDlLZXlQYWlyIHtcbiAgICByZXR1cm4gbWVhc3VyZUJsb2NrKGZ1bmN0aW9uIGNyZWF0ZVg1MDkoKSB7XG4gICAgICAgIGxldCB7IGRvbWFpbiwgaXNzdWVyLCBsaWZlU3Bhbiwga2V5UGFpciB9ID0gY29uZmlnO1xuXG4gICAgICAgIGxldCBjZXJ0T2JqID0gZm9yZ2UucGtpLmNyZWF0ZUNlcnRpZmljYXRlKCk7XG4gICAgICAgIGNlcnRPYmoucHVibGljS2V5ID0ga2V5UGFpci5wdWJsaWNLZXkgYXMgdW5rbm93biBhcyBmb3JnZS5wa2kuUHVibGljS2V5O1xuICAgICAgICBjZXJ0T2JqLnNlcmlhbE51bWJlciA9IFwiMDFcIjtcbiAgICAgICAgLy8gR2l2ZSBpdCA1IG1pbnV0ZXMgYmVmb3JlIG5vdy4gSWYgd2UgZ2l2ZSBpdCB0b28gbXVjaCB0aW1lLCBpdCBjYW4gbG9vayBsaWtlIHRoZSBjZXJ0IGlzIHJlYWxseSBvbGQsIHdoaWNoIHdpbGwgdHJpZ2dlciB2YXJpb3VzIHByb2Nlc3NlcyB0byB0cnkgdG8gZ2V0IGEgZnJlc2hlciBvbmUgKGFzIGlmIGl0IGxhc3RzIGZvciAxIGhvdXIsIGJ1dCB3ZSBzZXQgbm90QmVmb3JlIHRvIDEgbW9udGggYWdvLCBpdCBsb29rcyAxIG1vbnRoIG9sZCwgYW5kIHNvIGFsbW9zdCBleHBpcmVkLCB3aGVuIGl0IGlzbid0Li4uKVxuICAgICAgICBjZXJ0T2JqLnZhbGlkaXR5Lm5vdEJlZm9yZSA9IG5ldyBEYXRlKERhdGUubm93KCkgLSAxMDAwICogNjAgKiA1KTtcbiAgICAgICAgY2VydE9iai52YWxpZGl0eS5ub3RBZnRlciA9IG5ldyBEYXRlKERhdGUubm93KCkgKyBsaWZlU3Bhbik7XG5cbiAgICAgICAgY29uc3QgY29tbW9uTmFtZUF0dHJzID0gW3sgbmFtZTogXCJjb21tb25OYW1lXCIsIHZhbHVlOiBkb21haW4gfV07XG4gICAgICAgIGNlcnRPYmouc2V0U3ViamVjdChjb21tb25OYW1lQXR0cnMpO1xuXG4gICAgICAgIGlmIChpc3N1ZXIgPT09IFwic2VsZlwiKSB7XG4gICAgICAgICAgICBjZXJ0T2JqLnNldElzc3Vlcihjb21tb25OYW1lQXR0cnMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY2VydE9iai5zZXRJc3N1ZXIoZm9yZ2UucGtpLmNlcnRpZmljYXRlRnJvbVBlbShpc3N1ZXIuY2VydC50b1N0cmluZygpKS5zdWJqZWN0LmF0dHJpYnV0ZXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGV4dGVuc2lvbnMgPSBbXTtcbiAgICAgICAgY29uc3QgaXNDQSA9IGlzc3VlciA9PT0gXCJzZWxmXCI7XG4gICAgICAgIGlmIChpc0NBKSB7XG4gICAgICAgICAgICBleHRlbnNpb25zLnB1c2goeyBuYW1lOiBcImJhc2ljQ29uc3RyYWludHNcIiwgY0E6IHRydWUgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgbG9jYWxIb3N0RG9tYWluID0gXCIxMjctMC0wLTEuXCIgKyBkb21haW4uc3BsaXQoXCIuXCIpLnNsaWNlKC0yKS5qb2luKFwiLlwiKTtcblxuICAgICAgICBleHRlbnNpb25zLnB1c2goLi4uW1xuICAgICAgICAgICAgeyBuYW1lOiBcImtleVVzYWdlXCIsIGtleUNlcnRTaWduOiBpc0NBLCBkaWdpdGFsU2lnbmF0dXJlOiB0cnVlLCBub25SZXB1ZGlhdGlvbjogdHJ1ZSwga2V5RW5jaXBoZXJtZW50OiB0cnVlLCBkYXRhRW5jaXBoZXJtZW50OiB0cnVlIH0sXG4gICAgICAgICAgICB7IG5hbWU6IFwic3ViamVjdEtleUlkZW50aWZpZXJcIiB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6IFwic3ViamVjdEFsdE5hbWVcIixcbiAgICAgICAgICAgICAgICBhbHROYW1lczogW1xuICAgICAgICAgICAgICAgICAgICB7IHR5cGU6IDIsIHZhbHVlOiBkb21haW4gfSxcbiAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAyLCB2YWx1ZTogXCIqLlwiICsgZG9tYWluIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgdHlwZTogMiwgdmFsdWU6IGxvY2FsSG9zdERvbWFpbiB9LFxuICAgICAgICAgICAgICAgICAgICAvLyBOT1RFOiBObyBsb25nZXIgYWxsb3cgMTI3LjAuMC4xICh7IHR5cGU6IDcsIGlwOiBcIjEyNy4wLjAuMVwiIH0pLCB0byBtYWtlIHRoaXMgbW9yZSBzZWN1cmUuIFdlIG1pZ2h0IGVuYWJsZSB0aGlzIGJlaGF2aW9yIGJlaGluZCBhIGZsYWcsIGZvciBkZXZlbG9wbWVudC5cbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLy8gTk9URTogbmFtZUNvbnN0cmFpbnRzIHJlcXVpcmUgb3VyIGZvcmtlZCBub2RlLWZvcmdlIChcIm5vZGUtZm9yZ2VcIjogXCJodHRwczovL2dpdGh1Yi5jb20vc2xpZnRpc3QvZm9yZ2UjZTYxODE4MWI0NjliMDdiZGM3MGI5NjhiMDM5MWJlYjhlZjVmZWNkNlwiKS4gQ2hyb21lIGlnbm9yZXMgdGhlbSAoaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9MTA3MjA4MyksIGJ1dCBvdXIgb3duIHZhbGlkYXRpb24gKHZhbGlkYXRlQ0FDZXJ0L3ZhbGlkYXRlQ2VydGlmaWNhdGUpIGVuZm9yY2VzIHRoZW0uXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogXCJuYW1lQ29uc3RyYWludHNcIixcbiAgICAgICAgICAgICAgICBwZXJtaXR0ZWRTdWJ0cmVlczogW1xuICAgICAgICAgICAgICAgICAgICB7IHR5cGU6IDIsIHZhbHVlOiBmb3JnZS51dGlsLmVuY29kZVV0ZjgoZG9tYWluKSB9LFxuICAgICAgICAgICAgICAgICAgICB7IHR5cGU6IDIsIHZhbHVlOiBmb3JnZS51dGlsLmVuY29kZVV0ZjgobG9jYWxIb3N0RG9tYWluKSB9LFxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0sXG4gICAgICAgIF0pO1xuICAgICAgICBjZXJ0T2JqLnNldEV4dGVuc2lvbnMoZXh0ZW5zaW9ucyk7XG5cblxuICAgICAgICBtZWFzdXJlQmxvY2soZnVuY3Rpb24gc2lnbigpIHtcbiAgICAgICAgICAgIGlmIChpc3N1ZXIgPT09IFwic2VsZlwiKSB7XG4gICAgICAgICAgICAgICAgY2VydE9iai5zaWduKGtleVBhaXIucHJpdmF0ZUtleSBhcyBhbnkpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjZXJ0T2JqLnNpZ24oZm9yZ2UuZWQyNTUxOS5wcml2YXRlS2V5RnJvbVBlbShpc3N1ZXIua2V5LnRvU3RyaW5nKCkpIGFzIGFueSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBtZWFzdXJlQmxvY2soZnVuY3Rpb24gdG9QZW1zKCkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBkb21haW4sXG4gICAgICAgICAgICAgICAgY2VydDogQnVmZmVyLmZyb20oZm9yZ2UucGtpLmNlcnRpZmljYXRlVG9QZW0oY2VydE9iaikpLFxuICAgICAgICAgICAgICAgIGtleTogQnVmZmVyLmZyb20ocHJpdmF0ZUtleVRvUGVtKGtleVBhaXIucHJpdmF0ZUtleSkpLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG59XG5leHBvcnQgZnVuY3Rpb24gcHJpdmF0ZUtleVRvUGVtKGtleTogZm9yZ2UuRWQyNTUxOVByaXZhdGVLZXkpIHtcbiAgICByZXR1cm4gZm9yZ2UuZWQyNTUxOS5wcml2YXRlS2V5VG9QZW0oa2V5KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUNlcnQoUEVNb3JERVI6IHN0cmluZyB8IEJ1ZmZlcikge1xuICAgIHJldHVybiBmb3JnZS5wa2kuY2VydGlmaWNhdGVGcm9tUGVtKG5vcm1hbGl6ZUNlcnRUb1BFTShQRU1vckRFUikpO1xufVxuXG5mdW5jdGlvbiBnZXRFRDI1NTE5UHVibGljS2V5KGNlcnRQYXJzZWQ6IGZvcmdlLnBraS5DZXJ0aWZpY2F0ZSk6IGZvcmdlLkVkMjU1MTlQdWJsaWNLZXkge1xuICAgIGxldCBwdWJsaWNLZXkgPSBjZXJ0UGFyc2VkLnB1YmxpY0tleTtcbiAgICBpZiAoIShcInB1YmxpY0tleUJ5dGVzXCIgaW4gcHVibGljS2V5KSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE9ubHkgRUQyNTUxOSBjZXJ0aWZpY2F0ZXMgYXJlIHN1cHBvcnRlZCwgdGhlIGNlcnRpZmljYXRlIHB1YmxpYyBrZXkgaXMgbm90IEVEMjU1MTkgKHN1YmplY3Q6ICR7Y2VydFBhcnNlZC5zdWJqZWN0LmdldEZpZWxkKFwiQ05cIik/LnZhbHVlfSlgKTtcbiAgICB9XG4gICAgcmV0dXJuIHB1YmxpY0tleSBhcyB1bmtub3duIGFzIGZvcmdlLkVkMjU1MTlQdWJsaWNLZXk7XG59XG5cbi8vIEdldHMgYSB1bmlxdWUgdmFsdWUgdG8gcmVwcmVzZW50IHRoZSBwdWJsaWMga2V5XG5leHBvcnQgZnVuY3Rpb24gZ2V0UHVibGljSWRlbnRpZmllcihQRU1vckRFUjogc3RyaW5nIHwgQnVmZmVyKTogQnVmZmVyIHtcbiAgICByZXR1cm4gQnVmZmVyLmZyb20oZ2V0RUQyNTUxOVB1YmxpY0tleShwYXJzZUNlcnQoUEVNb3JERVIpKS5wdWJsaWNLZXlCeXRlcyk7XG59XG5cbmV4cG9ydCBjb25zdCBzaWduID0gbWVhc3VyZVdyYXAoZnVuY3Rpb24gc2lnbihrZXlQYWlyOiB7IGtleTogc3RyaW5nIHwgQnVmZmVyIH0sIGRhdGE6IHVua25vd24pOiBzdHJpbmcge1xuICAgIGxldCBkYXRhU3RyID0gSlNPTi5zdHJpbmdpZnkoZGF0YSk7XG4gICAgbGV0IHByaXZhdGVLZXkgPSBmb3JnZS5lZDI1NTE5LnByaXZhdGVLZXlGcm9tUGVtKGtleVBhaXIua2V5LnRvU3RyaW5nKCkpO1xuICAgIHJldHVybiBwcml2YXRlS2V5LnNpZ24oZGF0YVN0cik7XG59KTtcblxuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeShjZXJ0OiBzdHJpbmcsIHNpZ25hdHVyZTogc3RyaW5nLCBkYXRhOiB1bmtub3duKSB7XG4gICAgbGV0IGNlcnRPYmogPSBwYXJzZUNlcnQoY2VydCk7XG4gICAgbGV0IHB1YmxpY0tleSA9IGdldEVEMjU1MTlQdWJsaWNLZXkoY2VydE9iaik7XG4gICAgbGV0IGRhdGFTdHIgPSBKU09OLnN0cmluZ2lmeShkYXRhKTtcbiAgICBpZiAoIXB1YmxpY0tleS52ZXJpZnkoZGF0YVN0ciwgc2lnbmF0dXJlKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFNpZ25hdHVyZSB2ZXJpZmljYXRpb24gZmFpbGVkLiBTaWduYXR1cmU6ICR7SlNPTi5zdHJpbmdpZnkoc2lnbmF0dXJlKX0gfCBEYXRhOiAke2VsbGlwc2l6ZShkYXRhU3RyLCAxMDI0KX1gKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZUNlcnRUb1BFTShQRU1vckRFUjogc3RyaW5nIHwgQnVmZmVyKTogc3RyaW5nIHtcbiAgICBpZiAoUEVNb3JERVIudG9TdHJpbmcoKS5zdGFydHNXaXRoKFwiLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tXCIpKSB7XG4gICAgICAgIHJldHVybiBQRU1vckRFUi50b1N0cmluZygpO1xuICAgIH1cbiAgICBQRU1vckRFUiA9IFBFTW9yREVSLnRvU3RyaW5nKFwiYmFzZTY0XCIpO1xuICAgIHJldHVybiBcIi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLVxcblwiICsgUEVNb3JERVIgKyBcIlxcbi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS1cIjtcbn1cblxuLy8gQmFzZTMyIChSRkMgNDY0OCwgbG93ZXJjYXNlLCB1bnBhZGRlZCksIGFzIGRvbWFpbiBuYW1lcyBhcmUgY2FzZS1pbnNlbnNpdGl2ZSwgd2hpY2ggcnVsZXMgb3V0IGJhc2U2NC9oZXgtd2l0aC1jYXNlXG5jb25zdCBiYXNlMzJBbHBoYWJldCA9IFwiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoyMzQ1NjdcIjtcbmZ1bmN0aW9uIGVuY29kZUJhc2UzMihieXRlczogQnVmZmVyKTogc3RyaW5nIHtcbiAgICBsZXQgcmVzdWx0ID0gXCJcIjtcbiAgICBsZXQgYml0Q291bnQgPSAwO1xuICAgIGxldCB2YWx1ZSA9IDA7XG4gICAgZm9yIChsZXQgYnl0ZSBvZiBieXRlcykge1xuICAgICAgICB2YWx1ZSA9ICh2YWx1ZSA8PCA4KSB8IGJ5dGU7XG4gICAgICAgIGJpdENvdW50ICs9IDg7XG4gICAgICAgIHdoaWxlIChiaXRDb3VudCA+PSA1KSB7XG4gICAgICAgICAgICByZXN1bHQgKz0gYmFzZTMyQWxwaGFiZXRbKHZhbHVlID4+PiAoYml0Q291bnQgLSA1KSkgJiAzMV07XG4gICAgICAgICAgICBiaXRDb3VudCAtPSA1O1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChiaXRDb3VudCA+IDApIHtcbiAgICAgICAgcmVzdWx0ICs9IGJhc2UzMkFscGhhYmV0Wyh2YWx1ZSA8PCAoNSAtIGJpdENvdW50KSkgJiAzMV07XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIGdldERvbWFpblBhcnRGcm9tUHVibGljS2V5KHB1YmxpY0tleTogeyBwdWJsaWNLZXlCeXRlczogQnVmZmVyIH0gfCBCdWZmZXIpIHtcbiAgICBsZXQgYnl0ZXM6IEJ1ZmZlcjtcbiAgICBpZiAoXCJwdWJsaWNLZXlCeXRlc1wiIGluIHB1YmxpY0tleSkge1xuICAgICAgICBieXRlcyA9IHB1YmxpY0tleS5wdWJsaWNLZXlCeXRlcztcbiAgICB9IGVsc2Uge1xuICAgICAgICBieXRlcyA9IHB1YmxpY0tleTtcbiAgICB9XG4gICAgcmV0dXJuIFwiYlwiICsgZW5jb2RlQmFzZTMyKEJ1ZmZlci5mcm9tKHNoYTI2NS5zaGEyNTYuYXJyYXkoQnVmZmVyLmZyb20oYnl0ZXMpKSkpLnNsaWNlKDAsIDIwKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlQ0FDZXJ0KGRvbWFpbjogc3RyaW5nLCBjZXJ0OiBzdHJpbmcgfCBCdWZmZXIpIHtcbiAgICBsZXQgY2VydFBhcnNlZCA9IHBhcnNlQ2VydChjZXJ0KTtcblxuICAgIGxldCBzdWJqZWN0ID0gY2VydFBhcnNlZC5zdWJqZWN0LmdldEZpZWxkKFwiQ05cIikudmFsdWUgYXMgc3RyaW5nO1xuICAgIGxldCBsb2NhbGhvc3REb21haW4gPSBcIjEyNy0wLTAtMS5cIiArIHN1YmplY3Quc3BsaXQoXCIuXCIpLnNsaWNlKC0yKS5qb2luKFwiLlwiKTtcblxuICAgIGxldCBkb21haW5QYXJ0cyA9IHN1YmplY3Quc3BsaXQoXCIuXCIpLnJldmVyc2UoKTtcblxuICAgIGxldCByb290RG9tYWluUGFyc2VkID0gW2RvbWFpblBhcnRzLnNoaWZ0KCksIGRvbWFpblBhcnRzLnNoaWZ0KCldLnJldmVyc2UoKS5qb2luKFwiLlwiKTtcbiAgICBpZiAocm9vdERvbWFpblBhcnNlZCAhPT0gZG9tYWluKSB7XG4gICAgICAgIC8vIFRoaXMgaXMgaW1wb3J0YW50LCBhcyBvdXIgdHJ1c3Qgc3RvcmUgY29udGFpbnMgbW9yZSB0aGVuIGp1c3QgT1VSIGNlcnRpZmljYXRlcywgc28gaWYgd2UgYWxsb3cgYW55IGRvbWFpbnMgdGhlbiByZWFsIGRvbWFpbnMgY2FuIGltcGVyc29uYXRlIGFueW9uZSEgSXQgaGFzIHRvIGJlIE9VUiBkb21haW4gdG8gYmUgdHJ1c3RlZCFcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDZXJ0aWZpY2F0ZSByb290IGRvbWFpbiBzaG91bGQgYmUgJHtkb21haW59LCBidXQgaXMgJHtyb290RG9tYWluUGFyc2VkfWApO1xuICAgIH1cbiAgICAvLyBUT0RPOiBNYXliZSBqdXN0IHNraXAgaWYgaXQgaXNuJ3QgYSBoYXNoIHN0cmluZz9cbiAgICBpZiAoZG9tYWluUGFydHNbMF0gPT09IFwibm9wcm94eVwiKSB7XG4gICAgICAgIGRvbWFpblBhcnRzLnNoaWZ0KCk7XG4gICAgfVxuXG4gICAgbGV0IGNlcnRFeHBlY3RlZFB1YmxpY0tleVBhcnQgPSAoZG9tYWluUGFydHMuc2hpZnQoKSB8fCBcIlwiKS5zcGxpdChcIi1cIikuc2xpY2UoLTEpWzBdO1xuICAgIGxldCBjZXJ0QWN0dWFsUHVibGljS2V5UGFydCA9IGdldERvbWFpblBhcnRGcm9tUHVibGljS2V5KGdldEVEMjU1MTlQdWJsaWNLZXkoY2VydFBhcnNlZCkpO1xuICAgIGlmIChjZXJ0RXhwZWN0ZWRQdWJsaWNLZXlQYXJ0ICE9PSBjZXJ0QWN0dWFsUHVibGljS2V5UGFydCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENlcnRpZmljYXRlIHB1YmxpYyBrZXkgaW4gdGhlIHVybCBpcyAke2NlcnRFeHBlY3RlZFB1YmxpY0tleVBhcnR9LCBidXQgaW4gdGhlIGNlcnQgaXMgJHtjZXJ0QWN0dWFsUHVibGljS2V5UGFydH1gKTtcbiAgICB9XG5cbiAgICAvLyBBTFNPLCByZXF1aXJlIG5hbWUgY29uc3RyYWludHMgdG8gYmUgcHJlc2VudCwgYW5kIHRvIHJlc3RyaWN0IHRvIHRoZSBcIkNOXCJcbiAgICBsZXQgbmFtZUNvbnN0cmFpbnRzID0gY2VydFBhcnNlZC5nZXRFeHRlbnNpb24oXCJuYW1lQ29uc3RyYWludHNcIikgYXMgYW55O1xuICAgIGlmICghbmFtZUNvbnN0cmFpbnRzKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQ2VydGlmaWNhdGUgbXVzdCBoYXZlIG5hbWVDb25zdHJhaW50c2ApO1xuICAgIH1cbiAgICBsZXQgc3VidHJlZXMgPSBuYW1lQ29uc3RyYWludHMucGVybWl0dGVkU3VidHJlZXM7XG4gICAgaWYgKCFzdWJ0cmVlcykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENlcnRpZmljYXRlIG11c3QgaGF2ZSBuYW1lQ29uc3RyYWludHMucGVybWl0dGVkU3VidHJlZXNgKTtcbiAgICB9XG4gICAgbGV0IHN1YnRyZWVWYWx1ZXMgPSBzdWJ0cmVlcy5tYXAoKHg6IGFueSkgPT4geC52YWx1ZSk7XG4gICAgLy8gSWdub3JlIGxvY2FsaG9zdERvbWFpbiwgYXMgaXQgY2FuIGFsd2F5cyBzYWZlbHkgYmUgYWxsb3dlZCAodGhlIHNhbWUgbWFjaGluZSBpcyBhbHdheXMgYWxsb3dlZCkuXG4gICAgc3VidHJlZVZhbHVlcyA9IHN1YnRyZWVWYWx1ZXMuZmlsdGVyKCh4OiBzdHJpbmcpID0+IHggIT09IGxvY2FsaG9zdERvbWFpbik7XG4gICAgaWYgKHN1YnRyZWVWYWx1ZXMubGVuZ3RoICE9PSAxIHx8IHN1YnRyZWVWYWx1ZXNbMF0gIT09IHN1YmplY3QpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDZXJ0aWZpY2F0ZSBtdXN0IGhhdmUgYSBzaW5nbGUgY29uc3RyYWluZWQgZG9tYWluIChoYWQgJHtKU09OLnN0cmluZ2lmeShzdWJ0cmVlVmFsdWVzKX0pYCk7XG4gICAgfVxuXG4gICAgdmFsaWRhdGVBbHROYW1lcyhjZXJ0UGFyc2VkLCBzdWJqZWN0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlQ2VydGlmaWNhdGUoZG9tYWluOiBzdHJpbmcsIGNlcnQ6IEJ1ZmZlciB8IHN0cmluZywgaXNzdWVyQ2VydDogQnVmZmVyIHwgc3RyaW5nKSB7XG4gICAgdmFsaWRhdGVDQUNlcnQoZG9tYWluLCBpc3N1ZXJDZXJ0KTtcblxuICAgIGxldCBjZXJ0UGFyc2VkID0gcGFyc2VDZXJ0KGNlcnQpO1xuICAgIGxldCBzdWJqZWN0ID0gY2VydFBhcnNlZC5zdWJqZWN0LmdldEZpZWxkKFwiQ05cIikudmFsdWUgYXMgc3RyaW5nO1xuICAgIGxldCBsb2NhbGhvc3REb21haW4gPSBcIjEyNy0wLTAtMS5cIiArIHN1YmplY3Quc3BsaXQoXCIuXCIpLnNsaWNlKC0yKS5qb2luKFwiLlwiKTtcblxuICAgIGxldCBkb21haW5QYXJ0cyA9IHN1YmplY3Quc3BsaXQoXCIuXCIpLnJldmVyc2UoKTtcblxuICAgIGxldCByb290RG9tYWluUGFyc2VkID0gW2RvbWFpblBhcnRzLnNoaWZ0KCksIGRvbWFpblBhcnRzLnNoaWZ0KCldLnJldmVyc2UoKS5qb2luKFwiLlwiKTtcbiAgICBpZiAocm9vdERvbWFpblBhcnNlZCAhPT0gZG9tYWluKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQ2VydGlmaWNhdGUgcm9vdCBkb21haW4gc2hvdWxkIGJlICR7ZG9tYWlufSwgYnV0IGlzICR7cm9vdERvbWFpblBhcnNlZH1gKTtcbiAgICB9XG4gICAgLy8gVE9ETzogTWF5YmUganVzdCBza2lwIGlmIGl0IGlzbid0IGEgaGFzaCBzdHJpbmc/XG4gICAgaWYgKGRvbWFpblBhcnRzWzBdID09PSBcIm5vcHJveHlcIikge1xuICAgICAgICBkb21haW5QYXJ0cy5zaGlmdCgpO1xuICAgIH1cblxuICAgIGxldCBpc3N1ZXJDZXJ0UGFyc2VkID0gcGFyc2VDZXJ0KGlzc3VlckNlcnQpO1xuXG4gICAgbGV0IGlzc3VlckV4cGVjdGVkUHVibGljS2V5UGFydCA9IGRvbWFpblBhcnRzLnNoaWZ0KCkgfHwgXCJcIjtcbiAgICBsZXQgaXNzdWVyQWN0dWFsUHVibGljS2V5UGFydCA9IGdldERvbWFpblBhcnRGcm9tUHVibGljS2V5KGdldEVEMjU1MTlQdWJsaWNLZXkoaXNzdWVyQ2VydFBhcnNlZCkpO1xuICAgIGlmIChpc3N1ZXJFeHBlY3RlZFB1YmxpY0tleVBhcnQgIT09IGlzc3VlckFjdHVhbFB1YmxpY0tleVBhcnQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJc3N1ZXIgcHVibGljIGtleSBpbiB0aGUgdXJsIGlzICR7aXNzdWVyRXhwZWN0ZWRQdWJsaWNLZXlQYXJ0fSwgYnV0IGluIHRoZSBjZXJ0IGlzICR7aXNzdWVyQWN0dWFsUHVibGljS2V5UGFydH1gKTtcbiAgICB9XG5cbiAgICAvLyBUYWtlIHRoZSBsYXN0IHBhcnRcbiAgICBsZXQgY2VydEV4cGVjdGVkUHVibGljS2V5UGFydCA9IGRvbWFpblBhcnRzLnNoaWZ0KCkgfHwgXCJcIjtcbiAgICBsZXQgY2VydEFjdHVhbFB1YmxpY0tleVBhcnQgPSBnZXREb21haW5QYXJ0RnJvbVB1YmxpY0tleShnZXRFRDI1NTE5UHVibGljS2V5KGNlcnRQYXJzZWQpKTtcbiAgICBpZiAoY2VydEV4cGVjdGVkUHVibGljS2V5UGFydCAhPT0gY2VydEFjdHVhbFB1YmxpY0tleVBhcnQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDZXJ0aWZpY2F0ZSBwdWJsaWMga2V5IGluIHRoZSB1cmwgaXMgJHtjZXJ0RXhwZWN0ZWRQdWJsaWNLZXlQYXJ0fSwgYnV0IGluIHRoZSBjZXJ0IGlzICR7Y2VydEFjdHVhbFB1YmxpY0tleVBhcnR9YCk7XG4gICAgfVxuXG5cbiAgICBsZXQgbmFtZUNvbnN0cmFpbnRzID0gaXNzdWVyQ2VydFBhcnNlZC5nZXRFeHRlbnNpb24oXCJuYW1lQ29uc3RyYWludHNcIikgYXMgYW55O1xuICAgIGlmICghbmFtZUNvbnN0cmFpbnRzKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQ0EgbXVzdCBoYXZlIG5hbWVDb25zdHJhaW50c2ApO1xuICAgIH1cbiAgICBsZXQgc3VidHJlZXMgPSBuYW1lQ29uc3RyYWludHMucGVybWl0dGVkU3VidHJlZXM7XG4gICAgaWYgKCFzdWJ0cmVlcykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENBIG11c3QgaGF2ZSBuYW1lQ29uc3RyYWludHMucGVybWl0dGVkU3VidHJlZXNgKTtcbiAgICB9XG4gICAgbGV0IHN1YnRyZWVWYWx1ZXMgPSBzdWJ0cmVlcy5tYXAoKHg6IGFueSkgPT4geC52YWx1ZSk7XG4gICAgLy8gSWdub3JlIGxvY2FsaG9zdERvbWFpbiwgYXMgaXQgY2FuIGFsd2F5cyBzYWZlbHkgYmUgYWxsb3dlZCAodGhlIHNhbWUgbWFjaGluZSBpcyBhbHdheXMgYWxsb3dlZCkuXG4gICAgc3VidHJlZVZhbHVlcyA9IHN1YnRyZWVWYWx1ZXMuZmlsdGVyKCh4OiBzdHJpbmcpID0+IHggIT09IGxvY2FsaG9zdERvbWFpbik7XG4gICAgaWYgKHN1YnRyZWVWYWx1ZXMubGVuZ3RoICE9PSAxKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQ0EgbXVzdCBoYXZlIGEgc2luZ2xlIGNvbnN0cmFpbmVkIGRvbWFpbiAoaGFkICR7SlNPTi5zdHJpbmdpZnkoc3VidHJlZVZhbHVlcyl9KWApO1xuICAgIH1cblxuICAgIGxldCBzdWJ0cmVlID0gc3VidHJlZVZhbHVlc1swXTtcbiAgICBpZiAoc3VidHJlZSAhPT0gc3ViamVjdCAmJiAhc3ViamVjdC5lbmRzV2l0aChcIi5cIiArIHN1YnRyZWUpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQ2VydGlmaWNhdGUgbXVzdCBiZSBhIHN1YnRyZWUgb2YgdGhlIENBIChDQTogJHtzdWJ0cmVlfSwgY2VydDogJHtzdWJqZWN0fSlgKTtcbiAgICB9XG5cbiAgICB2YWxpZGF0ZUFsdE5hbWVzKGNlcnRQYXJzZWQsIHN1YmplY3QpO1xuXG4gICAgLy8gVmVyaWZ5IGlzc3VlciBBQ1RVQUxMWSBzaWduZWQgY2VydFBhcnNlZFxuICAgIGlmICghaXNzdWVyQ2VydFBhcnNlZC52ZXJpZnkoY2VydFBhcnNlZCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJc3N1ZXIgZGlkIG5vdCBzaWduIGNlcnRpZmljYXRlYCk7XG4gICAgfVxufVxuXG4vLyBSZXF1aXJlIGFsdCBuYW1lcyB0byBiZSBlaXRoZXIgZXF1YWwgdG8gXCJDTlwiLCBvciBhIHN1YnRyZWUgb2YgXCJDTlwiXG5mdW5jdGlvbiB2YWxpZGF0ZUFsdE5hbWVzKGNlcnRQYXJzZWQ6IGZvcmdlLnBraS5DZXJ0aWZpY2F0ZSwgc3ViamVjdDogc3RyaW5nKSB7XG4gICAgbGV0IGxvY2FsaG9zdERvbWFpbiA9IFwiMTI3LTAtMC0xLlwiICsgc3ViamVjdC5zcGxpdChcIi5cIikuc2xpY2UoLTIpLmpvaW4oXCIuXCIpO1xuXG4gICAgbGV0IGFsdE5hbWVzT2JqID0gY2VydFBhcnNlZC5nZXRFeHRlbnNpb24oXCJzdWJqZWN0QWx0TmFtZVwiKSBhcyBhbnk7XG4gICAgbGV0IGFsdE5hbWVzID0gYWx0TmFtZXNPYmo/LmFsdE5hbWVzLm1hcCgoeDogYW55KSA9PiB4LnZhbHVlKTtcbiAgICAvLyBBbGxvdyBsb2NhbGhvc3REb21haW4sIGFzIGl0IGNhbiBhbHdheXMgc2FmZWx5IGJlIGFsbG93ZWRcbiAgICBhbHROYW1lcyA9IGFsdE5hbWVzLmZpbHRlcigoeDogc3RyaW5nKSA9PiB4ICE9PSBsb2NhbGhvc3REb21haW4pO1xuICAgIGlmIChcbiAgICAgICAgYWx0TmFtZXMuc29tZSgoeDogc3RyaW5nKSA9PlxuICAgICAgICAgICAgIShcbiAgICAgICAgICAgICAgICB4ID09PSBzdWJqZWN0XG4gICAgICAgICAgICAgICAgfHwgeC5lbmRzV2l0aChcIi5cIiArIHN1YmplY3QpXG4gICAgICAgICAgICAgICAgLy8gTk9URTogV2UgZG9uJ3QgYWxsb3cgMTI3LjAuMC4xICh8fCB4ID09PSBCdWZmZXIuZnJvbShbMTI3LCAwLCAwLCAxXSkudG9TdHJpbmcoKSksIGJlY2F1c2UgaXQgaXMgc28gZWFzeSB0byBwdWJsaXNoIGEgMTI3LjAuMC4xIEEgcmVjb3JkLCBhbmQgZXZlbiB0byBnZW5lcmF0ZSBhIHJlYWwgY2VydCwgc28gd2Ugc2hvdWxkIGp1c3QgZG8gdGhhdCwgYW5kIGtlZXAgaXQgc2VjdXJlLiBJZiB3ZSBuZWVkIHRoaXMgZm9yIGRldmVsb3BtZW50IHdlIGNhbiBwdXQgaXQgYmVoaW5kIGEgZmxhZywgc28gbm9uLWRldmVsb3BtZW50IGluc3RhbmNlcyBhcmUgc3RpbGwgc2VjdXJlLlxuICAgICAgICAgICAgKVxuICAgICAgICApXG4gICAgKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBhbHQgbmFtZXMuIE11c3QgYmUgc3VidHJlZXMgb2YgdGhlIHN1YmplY3QgKENOKSAke0pTT04uc3RyaW5naWZ5KHN1YmplY3QpfSwgd2FzICR7SlNPTi5zdHJpbmdpZnkoYWx0TmFtZXMpfWApO1xuICAgIH1cbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVLZXlQYWlyKCkge1xuICAgIHJldHVybiBtZWFzdXJlQmxvY2soZnVuY3Rpb24gZ2VuZXJhdGVLZXlQYWlyKCkge1xuICAgICAgICAvLyBOT1RFOiBXZSB1c2UgRUQyNTUxOSBiZWNhdXNlIGl0IGNhbiBnZW5lcmF0ZSBrZXlzIGFib3V0IDEwWCBmYXN0ZXIgdGhhbiBSU0EgKHdoaWNoIGlzIHN0aWxsIHNsb3csIH42bXMgb24gbXkgbWFjaGluZSwgc28gd2UgREVGSU5JVEVMWSBkb24ndCB3YW50IGl0IHRvIGJlIDEwWCBzbG93ZXIhKSAtIGh0dHBzOi8vc2VjdXJpdHkuc3RhY2tleGNoYW5nZS5jb20vYS8yMzY5NDMvMjgyMzY3XG4gICAgICAgIHJldHVybiBmb3JnZS5lZDI1NTE5LmdlbmVyYXRlS2V5UGFpcigpO1xuICAgIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVUZXN0Q0EoZG9tYWluOiBzdHJpbmcpIHtcbiAgICBjb25zdCBrZXlQYWlyID0gZ2VuZXJhdGVLZXlQYWlyKCk7XG4gICAgbGV0IGNhUHVibGljS2V5UGFydCA9IGdldERvbWFpblBhcnRGcm9tUHVibGljS2V5KGtleVBhaXIucHVibGljS2V5KTtcbiAgICBsZXQgZnVsbERvbWFpbiA9IGAke2NhUHVibGljS2V5UGFydH0uJHtkb21haW59YDtcbiAgICByZXR1cm4gY3JlYXRlWDUwOSh7IGRvbWFpbjogZnVsbERvbWFpbiwgaXNzdWVyOiBcInNlbGZcIiwga2V5UGFpciwgbGlmZVNwYW46IHRpbWVJbkRheSAqIDM2NSAqIDIwIH0pO1xufVxuXG5sZXQgaWRlbnRpdHlDQSA9IGNhY2hlKChkb21haW46IHN0cmluZykgPT4gbGF6eSgoKTogWDUwOUtleVBhaXIgPT4ge1xuICAgIGxldCBpZGVudGl0eUNBQ2FjaGVkID0gZ2V0SWRlbnRpdHlTdG9yZShkb21haW4pO1xuICAgIGxldCBjYUNhY2hlZCA9IGlkZW50aXR5Q0FDYWNoZWQuZ2V0KCk7XG4gICAgaWYgKCFjYUNhY2hlZCkge1xuICAgICAgICBjb25zb2xlLmxvZyhgR2VuZXJhdGluZyBuZXcgaWRlbnRpdHkgQ0FgKTtcbiAgICAgICAgY29uc3Qga2V5UGFpciA9IGdlbmVyYXRlS2V5UGFpcigpO1xuICAgICAgICBsZXQgY2FQdWJsaWNLZXlQYXJ0ID0gZ2V0RG9tYWluUGFydEZyb21QdWJsaWNLZXkoa2V5UGFpci5wdWJsaWNLZXkpO1xuICAgICAgICBsZXQgZnVsbERvbWFpbiA9IGAke2NhUHVibGljS2V5UGFydH0uJHtkb21haW59YDtcblxuICAgICAgICBsZXQgdmFsdWUgPSBjcmVhdGVYNTA5KHsgZG9tYWluOiBmdWxsRG9tYWluLCBpc3N1ZXI6IFwic2VsZlwiLCBrZXlQYWlyLCBsaWZlU3BhbjogdGltZUluRGF5ICogMzY1ICogMjAgfSk7XG5cbiAgICAgICAgY2FDYWNoZWQgPSB7XG4gICAgICAgICAgICBkb21haW46IHZhbHVlLmRvbWFpbixcbiAgICAgICAgICAgIGNlcnRCNjQ6IHZhbHVlLmNlcnQudG9TdHJpbmcoXCJiYXNlNjRcIiksXG4gICAgICAgICAgICBrZXlCNjQ6IHZhbHVlLmtleS50b1N0cmluZyhcImJhc2U2NFwiKSxcbiAgICAgICAgfTtcbiAgICAgICAgaWRlbnRpdHlDQUNhY2hlZC5zZXQoY2FDYWNoZWQpO1xuICAgIH1cbiAgICBsZXQgcmVzdWx0ID0ge1xuICAgICAgICBkb21haW46IGNhQ2FjaGVkLmRvbWFpbixcbiAgICAgICAgY2VydDogQnVmZmVyLmZyb20oY2FDYWNoZWQuY2VydEI2NCwgXCJiYXNlNjRcIiksXG4gICAgICAgIGtleTogQnVmZmVyLmZyb20oY2FDYWNoZWQua2V5QjY0LCBcImJhc2U2NFwiKSxcbiAgICB9O1xuICAgIHRydXN0Q2VydGlmaWNhdGUocmVzdWx0LmNlcnQudG9TdHJpbmcoKSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn0pKTtcblxuLy8gSU1QT1JUQU5UISBXZSBkbyBub3QgZW1iZWQgYW55IGRlYnVnIGluZm8gaW4gdGhpcyBkb21haW4uIElmIHdlIGRpZCwgaXQgd291bGQgYmUgdXNlZnVsLCBidXQuLi4gcG90ZW50YWxseSBhIHNlY3VyaXR5IHZ1bG5lcmFiaWxpdHksIGFzIGlmIHRoZSBkZWJ1ZyBpbmZvIChzdWNoIGFzIGEgcHJlZml4KSBpcyB1c2VkIHRvIGlkZW50aWZ5IHdoYXQgYSBjZXJ0aWZpY2F0ZSBpcyBmb3IsIGl0IHdvdWxkIGJlIGVhc3kgZm9yIGFuIGF0dGFjayB0byBmb3JnZSB0aGlzIChhcyB0aGUgZGVidWcgaW5mbyB3b24ndCBiZSBzZWN1cmVkKS4gU28gaXQgaXMgbXVjaCBiZXR0ZXIgdG8ga2VlcCB0aGUgY2VydGlmaWNhdGUgb3BhcXVlLCBhbmQgdGhlbiByZXF1aXJlIGFueSBtZXRhZGF0YSB0byBiZSBhY3R1YWxseSB2ZXR0ZWQgKGFuZCBob3BlZnVsbHkgc3RvcmVkIGluIGEgVUksIHNob3dpbmcgSVAsIHRpbWUsIGV0YykuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ2VydEZyb21DQShjb25maWc6IHtcbiAgICBDQUtleVBhaXI6IFg1MDlLZXlQYWlyO1xufSk6IFg1MDlLZXlQYWlyIHtcbiAgICByZXR1cm4gbWVhc3VyZUJsb2NrKGZ1bmN0aW9uIGNyZWF0ZUNlcnRGcm9tQ0EoKSB7XG4gICAgICAgIGxldCB7IENBS2V5UGFpciB9ID0gY29uZmlnO1xuICAgICAgICBjb25zdCBrZXlQYWlyID0gZ2VuZXJhdGVLZXlQYWlyKCk7XG4gICAgICAgIGxldCBkb21haW5LZXlQYXJ0ID0gZ2V0RG9tYWluUGFydEZyb21QdWJsaWNLZXkoa2V5UGFpci5wdWJsaWNLZXkpO1xuICAgICAgICBsZXQgZnVsbERvbWFpbiA9IGAke2RvbWFpbktleVBhcnR9LiR7Y29uZmlnLkNBS2V5UGFpci5kb21haW59YDtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVg1MDkoe1xuICAgICAgICAgICAgZG9tYWluOiBmdWxsRG9tYWluLFxuICAgICAgICAgICAgaXNzdWVyOiBDQUtleVBhaXIsXG4gICAgICAgICAgICBrZXlQYWlyLFxuICAgICAgICAgICAgbGlmZVNwYW46IHRpbWVJbkRheSAqIDM2NSAqIDEwLFxuICAgICAgICB9KTtcbiAgICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE1hY2hpbmVJZChkb21haW5OYW1lT3JOb2RlSWQ6IHN0cmluZywgZG9tYWluOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gZGVjb2RlTm9kZUlkQXNzZXJ0KGRvbWFpbk5hbWVPck5vZGVJZCwgZG9tYWluLCBcImFsbG93TWlzc2luZ1RocmVhZElkXCIpLm1hY2hpbmVJZDtcbn1cblxuZXhwb3J0IHR5cGUgTm9kZUlkUGFydHMgPSB7XG4gICAgdGhyZWFkSWQ6IHN0cmluZztcbiAgICBtYWNoaW5lSWQ6IHN0cmluZztcbiAgICBkb21haW46IHN0cmluZztcbiAgICBwb3J0OiBudW1iZXI7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZU5vZGVJZChub2RlSWQ6IHN0cmluZywgZG9tYWluOiBzdHJpbmcsIGFsbG93TWlzc2luZ1RocmVhZElkPzogXCJhbGxvd01pc3NpbmdUaHJlYWRJZFwiKTogTm9kZUlkUGFydHMgfCB1bmRlZmluZWQge1xuICAgIGxldCBsb2NhdGlvbk9iaiA9IGdldE5vZGVJZExvY2F0aW9uKG5vZGVJZCk7XG4gICAgaWYgKCFsb2NhdGlvbk9iaikge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBsZXQgcGFydHMgPSBsb2NhdGlvbk9iai5hZGRyZXNzLnNwbGl0KFwiLlwiKTtcbiAgICAvLyBOT1RFOiBXZSBoYXZlIHRvIG9ubHkgYWxsb3cgbG9jYWxob3N0IGRvbWFpbnMgb24gb3VyIG93biBkb21haW4sIGFzIHRoZSB1bmRlcmx5aW5nIGRvbWFpbiBnZXRzIHN0cmlwcGVkIHdoZW4gd2UncmUgbG9va2luZyBhdCB0aGUgbWFjaGluZUlkLiBTbyBpZiB3ZSBhbGxvd2VkIGxvY2FsaG9zdCBkb21haW5zIG9uIG90aGVyIGRvbWFpbnMsIGEgc2VydmVyIGNvdWxkIHRyaWNrIHVzIGludG8gY29ubmVjdGluZyB0byBpdCwgYW5kIHRoZW4gb25jZSB0aGUgY29ubmVjdGlvbiBpcyBlc3RhYmxpc2hlZCwgaXQgY291bGQgdGFsayBiYWNrIGFuZCB3ZSB3b3VsZCB0aGluayBpdCBoYXMgYSBsb2NhbGhvc3QgbWFjaGluZUlkLCB3aGljaCBpcyBpbXBsaWNpdGx5IHRydXN0ZWQsIHdoaWNoIHdvdWxkIHRoZW4gZ2l2ZSBpdCBhY2Nlc3MgdG8gZXZlcnl0aGluZy5cbiAgICBpZiAobG9jYXRpb25PYmouYWRkcmVzcyA9PT0gYDEyNy0wLTAtMS4ke2RvbWFpbn1gICYmIG5vZGVJZC5pbmNsdWRlcyhcIjpcIikpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRocmVhZElkOiBcIlwiLFxuICAgICAgICAgICAgbWFjaGluZUlkOiBwYXJ0cy5hdCgtMykgfHwgXCJcIixcbiAgICAgICAgICAgIGRvbWFpbjogcGFydHMuc2xpY2UoLTIpLmpvaW4oXCIuXCIpLFxuICAgICAgICAgICAgcG9ydDogbG9jYXRpb25PYmoucG9ydCxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgbGV0IGlzVmFsaWQgPSBwYXJ0cy5sZW5ndGggPj0gNCB8fCBhbGxvd01pc3NpbmdUaHJlYWRJZCAmJiBwYXJ0cy5sZW5ndGggPT09IDM7XG4gICAgaWYgKCFpc1ZhbGlkKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHRocmVhZElkOiBwYXJ0cy5hdCgtNCkgfHwgXCJcIixcbiAgICAgICAgbWFjaGluZUlkOiBwYXJ0cy5hdCgtMykgfHwgXCJcIixcbiAgICAgICAgZG9tYWluOiBwYXJ0cy5zbGljZSgtMikuam9pbihcIi5cIikgfHwgXCJcIixcbiAgICAgICAgcG9ydDogbG9jYXRpb25PYmoucG9ydCxcbiAgICB9O1xufVxuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZU5vZGVJZEFzc2VydChub2RlSWQ6IHN0cmluZywgZG9tYWluOiBzdHJpbmcsIGFsbG93TWlzc2luZ1RocmVhZElkPzogXCJhbGxvd01pc3NpbmdUaHJlYWRJZFwiKTogTm9kZUlkUGFydHMge1xuICAgIGxldCByZXN1bHQgPSBkZWNvZGVOb2RlSWQobm9kZUlkLCBkb21haW4sIGFsbG93TWlzc2luZ1RocmVhZElkKTtcbiAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgbm9kZUlkOiAke0pTT04uc3RyaW5naWZ5KG5vZGVJZCl9YCk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59XG5leHBvcnQgZnVuY3Rpb24gZW5jb2RlTm9kZUlkKHBhcnRzOiBOb2RlSWRQYXJ0cykge1xuICAgIHJldHVybiBgJHtwYXJ0cy50aHJlYWRJZH0uJHtwYXJ0cy5tYWNoaW5lSWR9LiR7cGFydHMuZG9tYWlufToke3BhcnRzLnBvcnR9YDtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNldElkZW50aXR5Q0FSYXcoZG9tYWluOiBzdHJpbmcsIGpzb246IHN0cmluZykge1xuICAgIGxldCBpZGVudGl0eUNBQ2FjaGVkID0gZ2V0SWRlbnRpdHlTdG9yZShkb21haW4pO1xuICAgIGxldCBvYmogPSBKU09OLnBhcnNlKGpzb24pIGFzIHtcbiAgICAgICAgZG9tYWluOiBzdHJpbmc7XG4gICAgICAgIGNlcnRCNjQ6IHN0cmluZztcbiAgICAgICAga2V5QjY0OiBzdHJpbmc7XG4gICAgfTtcbiAgICBsZXQgY2EgPSB7XG4gICAgICAgIGRvbWFpbjogb2JqLmRvbWFpbixcbiAgICAgICAgY2VydDogQnVmZmVyLmZyb20ob2JqLmNlcnRCNjQsIFwiYmFzZTY0XCIpLFxuICAgICAgICBrZXk6IEJ1ZmZlci5mcm9tKG9iai5rZXlCNjQsIFwiYmFzZTY0XCIpLFxuICAgIH07XG4gICAgdHJ1c3RDZXJ0aWZpY2F0ZShjYS5jZXJ0LnRvU3RyaW5nKCkpO1xuICAgIGlkZW50aXR5Q0EoZG9tYWluKS5zZXQoY2EpO1xuICAgIGdldFRocmVhZEtleUNlcnRCYXNlKGRvbWFpbikucmVzZXQoKTtcbiAgICBpZGVudGl0eUNBQ2FjaGVkLnNldChvYmopO1xuICAgIHJlc2V0QWxsTm9kZUNhbGxGYWN0b3JpZXMoKTtcbn1cblxuLy8gTk9URTogVGhlIGlkZW50aXR5IENBIGlzIGF2YWlsYWJsZSBzeW5jaHJvbm91c2x5IChzdG9yYWdlIGlzIGZzL2xvY2FsU3RvcmFnZSwgYm90aCBzeW5jaHJvbm91cyksIHNvIHRoaXMgb25seSBleGlzdHMgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdpdGggc3RhcnR1cCBjb2RlIHRoYXQgYXdhaXRzIGl0LlxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxvYWRJZGVudGl0eUNBKGRvbWFpbjogc3RyaW5nKSB7XG4gICAgaWRlbnRpdHlDQShkb21haW4pKCk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0SWRlbnRpdHlDQShkb21haW46IHN0cmluZyk6IFg1MDlLZXlQYWlyIHtcbiAgICByZXR1cm4gaWRlbnRpdHlDQShkb21haW4pKCk7XG59XG5cbi8vIFRPRE86IFJlcGxhY2UgdGhpcyB3aXRoIGEgZGF0YWJhc2UsIHNvIGl0IGlzIGVhc3kgZm9yIHVzIHRvIHRydXN0IENBcyBjcm9zcyBtYWNoaW5lLCBhbmQgZXZlbiBoYXZlIG11bHRpcGxlIHVzZXJzLCBldGMsIGV0Yy5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJZGVudGl0eUNBUHJvbWlzZShkb21haW46IHN0cmluZyk6IFg1MDlLZXlQYWlyIHtcbiAgICByZXR1cm4gaWRlbnRpdHlDQShkb21haW4pKCk7XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE93bk1hY2hpbmVJZChkb21haW46IHN0cmluZykge1xuICAgIHJldHVybiBnZXRNYWNoaW5lSWQoZ2V0SWRlbnRpdHlDQShkb21haW4pLmRvbWFpbiwgZG9tYWluKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRPd25UaHJlYWRJZChkb21haW46IHN0cmluZykge1xuICAgIHJldHVybiBkZWNvZGVOb2RlSWRBc3NlcnQoZ2V0VGhyZWFkS2V5Q2VydChkb21haW4pLmRvbWFpbiwgZG9tYWluKS50aHJlYWRJZDtcbn1cblxuLyoqIFBhcnQgb2YgdGhlIG1hY2hpbmVJZCBjb21lcyBmcm9tIHRoZSBwdWJsaWNLZXksIHNvIHdlIGNhbiB1c2UgaXQgdG8gdmVyaWZ5ICovXG5leHBvcnQgZnVuY3Rpb24gdmVyaWZ5TWFjaGluZUlkRm9yUHVibGljS2V5KGNvbmZpZzoge1xuICAgIG1hY2hpbmVJZDogc3RyaW5nO1xuICAgIHB1YmxpY0tleTogQnVmZmVyO1xufSk6IGJvb2xlYW4ge1xuICAgIGxldCB7IG1hY2hpbmVJZCwgcHVibGljS2V5IH0gPSBjb25maWc7XG4gICAgbGV0IGRvbWFpblBhcnQgPSBnZXREb21haW5QYXJ0RnJvbVB1YmxpY0tleShwdWJsaWNLZXkpO1xuICAgIC8vIG1hY2hpbmVJZCBpcyB0aGUgYmFyZSBrZXktaGFzaCBsYWJlbCwgYnV0IGFsc28gYWNjZXB0IGxlZ2FjeSBcImhhc2guZG9tYWluLnRsZFwiIGZvcm1zXG4gICAgcmV0dXJuIG1hY2hpbmVJZC5zcGxpdChcIi5cIilbMF0gPT09IGRvbWFpblBhcnQ7XG59XG5cbi8vIE5PVEU6IFdlIGRvbid0IGhhdmUgYSBjYWNoZSBwZXIgQ0EsIGFzLi4uIHRoZSBDQSBzaG91bGQgYmUgc2V0IGZpcnN0XG4vLyBUT0RPOiBNYXliZSB0aHJvdyBpZiB0aGV5IHRyeSB0byBjaGFuZ2UgdGhlIENBIGFmdGVyIHRoZXkgZ2VuZXJhdGUgYW55IGNlcnRpZmljYXRlcz9cbi8vIFRPRE86IFJlZ2VuZXJhdGUgY2VydGlmaWNhdGVzIGFmdGVyIGVub3VnaCB0aW1lIChhcyB0aHJlYWQgY2VydHMgc2hvdWxkIGJlIHJlbGF0aXZlbHkgc2hvcnQgbGl2ZWQsIHNvIGl0IGlzIHBsYXVzaWJsZSBmb3IgdGhlbSB0byBleHBpcmUpLiBXZSB3aWxsIGFsc28gbmVlZCB0byBwcm92aWRlIGEgY2FsbGJhY2sgc28gdGhhdCB1c2VycyBvZiB0aGUgY2VydCBjYW4gdXBkYXRlIHRoZSBjZXJ0IHRoZXkgYXJlIHVzaW5nIGFzIHdlbGwuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGhyZWFkS2V5Q2VydChkb21haW46IHN0cmluZykge1xuICAgIHJldHVybiBnZXRUaHJlYWRLZXlDZXJ0QmFzZShkb21haW4pKCk7XG59XG5jb25zdCBnZXRUaHJlYWRLZXlDZXJ0QmFzZSA9IGNhY2hlKChkb21haW46IHN0cmluZykgPT4gbGF6eSgoKSA9PiB7XG4gICAgbGV0IGNhID0gZ2V0SWRlbnRpdHlDQShkb21haW4pO1xuICAgIHJldHVybiBjcmVhdGVDZXJ0RnJvbUNBKHsgQ0FLZXlQYWlyOiBjYSB9KTtcbn0pKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldE93bk5vZGVJZCgpOiBzdHJpbmcge1xuICAgIGxldCBub2RlSWQgPSBTb2NrZXRGdW5jdGlvbi5tb3VudGVkTm9kZUlkO1xuICAgIGlmICghbm9kZUlkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgTm9kZSBtdXN0IGJlIG1vdW50ZWQgYmVmb3JlIG5vZGVJZCBpcyBhY2Nlc3NlZGApO1xuICAgIH1cbiAgICByZXR1cm4gbm9kZUlkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0T3duTm9kZUlkQWxsb3dVbmRlZmluZWQoKSB7XG4gICAgcmV0dXJuIFNvY2tldEZ1bmN0aW9uLm1vdW50ZWROb2RlSWQ7XG59Il19
|
|
465
|
-
/* _JS_SOURCE_HASH = "
|
|
465
|
+
/* _JS_SOURCE_HASH = "d40f6b01fae54f6275f4b221332536a89102b733ff09f360c6aa6bde6b388ec4"; */
|
|
@@ -71,7 +71,7 @@ async function hostServer(config) {
|
|
|
71
71
|
let servingPort = ((_a = (0, nodeCache_1.getNodeIdLocation)(nodeId)) === null || _a === void 0 ? void 0 : _a.port) || port;
|
|
72
72
|
let fallback = config.portFallback;
|
|
73
73
|
if (fallback && servingPort !== port) {
|
|
74
|
-
console.
|
|
74
|
+
console.warn(`Port ${port} is in use (presumably by our predecessor); serving on alternate port ${servingPort} until it frees`);
|
|
75
75
|
await ((_b = fallback.onPortInUse) === null || _b === void 0 ? void 0 : _b.call(fallback));
|
|
76
76
|
void runMainPortAcquireLoop(domain, port, servingPort, fallback);
|
|
77
77
|
}
|
|
@@ -172,5 +172,5 @@ async function runCertRenewalLoop(domain, onNewCert) {
|
|
|
172
172
|
}
|
|
173
173
|
}
|
|
174
174
|
}
|
|
175
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9zdFNlcnZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhvc3RTZXJ2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsNENBQW9CO0FBQ3BCLDRDQUFvQjtBQUNwQiw4Q0FBc0I7QUFDdEIsbUVBQWdFO0FBQ2hFLDZEQUFrRTtBQUNsRSxtREFBd0Q7QUFDeEQsMkRBQXFEO0FBQ3JELCtEQUErRDtBQUMvRCxpRUFBOEQ7QUFDOUQsd0VBQW1FO0FBQ25FLG1DQUE0RTtBQUM1RSw2Q0FBc0U7QUFDdEUsK0JBQWtDO0FBRWxDLHlUQUF5VDtBQUN6VCxNQUFNLG1CQUFtQixHQUFHLEdBQUcsQ0FBQztBQUNoQyxNQUFNLG1CQUFtQixHQUFHLEdBQUcsQ0FBQztBQUNoQyxNQUFNLG1CQUFtQixHQUFHLG1CQUFZLEdBQUcsRUFBRSxDQUFDO0FBRTlDLGlHQUFpRztBQUNqRyxNQUFNLGNBQWMsR0FBRyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxtQkFBbUIsR0FBRyxtQkFBbUIsQ0FBQyxDQUFDO0FBdUJ6RyxpVEFBaVQ7QUFDMVMsS0FBSyxVQUFVLFVBQVUsQ0FBQyxNQUF3Qjs7SUFDckQsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFDOUIsZ0dBQWdHO0lBQ2hHLElBQUksVUFBVSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZELE1BQU0sSUFBQSxzQkFBYyxFQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRWpDLElBQUksTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RCLElBQUksRUFBRSxHQUFHLE1BQU0sQ0FBQyxRQUFRLElBQUksTUFBTSxJQUFBLDBCQUFhLEdBQUUsQ0FBQztRQUNsRCxNQUFNLElBQUEsZUFBUyxFQUFDLEdB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QUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDcEcsT0FBTyxFQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDcEQsQ0FBQztBQXhCRCw4Q0F3QkM7QUFFRCxLQUFLLFVBQVUsa0JBQWtCLENBQUMsTUFBYyxFQUFFLFNBQTJEOztJQUN6RyxJQUFJLFFBQVEsR0FBRyxNQUFBLGdCQUFnQixDQUFDLE1BQU0sQ0FBQywwQ0FBRSxJQUFJLENBQUM7SUFDOUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUNWLE1BQU0sSUFBQSxnQkFBSyxFQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDO1lBQ0QsSUFBSSxPQUFPLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM5QyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQzVCLFFBQVEsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUEsbUJBQU8sRUFBQyxrQkFBa0IsTUFBTSxzQ0FBc0MsQ0FBQyxDQUFDLENBQUM7Z0JBQ3JGLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN2QixDQUFDO1FBQ0wsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDVCxPQUFPLENBQUMsS0FBSyxDQUFDLHdDQUF3QyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN2RSxDQUFDO0lBQ0wsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgb3MgZnJvbSBcIm9zXCI7XG5pbXBvcnQgZnMgZnJvbSBcImZzXCI7XG5pbXBvcnQgbmV0IGZyb20gXCJuZXRcIjtcbmltcG9ydCB7IFNvY2tldEZ1bmN0aW9uIH0gZnJvbSBcInNvY2tldC1mdW5jdGlvbi9Tb2NrZXRGdW5jdGlvblwiO1xuaW1wb3J0IHsgZ2V0Tm9kZUlkTG9jYXRpb24gfSBmcm9tIFwic29ja2V0LWZ1bmN0aW9uL3NyYy9ub2RlQ2FjaGVcIjtcbmltcG9ydCB7IHRpbWVJbk1pbnV0ZSB9IGZyb20gXCJzb2NrZXQtZnVuY3Rpb24vc3JjL21pc2NcIjtcbmltcG9ydCB7IGRlbGF5IH0gZnJvbSBcInNvY2tldC1mdW5jdGlvbi9zcmMvYmF0Y2hpbmdcIjtcbmltcG9ydCB7IGdldEV4dGVybmFsSVAgfSBmcm9tIFwic29ja2V0LWZ1bmN0aW9uL3NyYy9uZXR3b3JraW5nXCI7XG5pbXBvcnQgeyBmb3J3YXJkUG9ydCB9IGZyb20gXCJzb2NrZXQtZnVuY3Rpb24vc3JjL2ZvcndhcmRQb3J0XCI7XG5pbXBvcnQgeyBtYWdlbnRhIH0gZnJvbSBcInNvY2tldC1mdW5jdGlvbi9zcmMvZm9ybWF0dGluZy9sb2dDb2xvcnNcIjtcbmltcG9ydCB7IGdldE93bk1hY2hpbmVJZCwgZ2V0VGhyZWFkS2V5Q2VydCwgbG9hZElkZW50aXR5Q0EgfSBmcm9tIFwiLi9jZXJ0c1wiO1xuaW1wb3J0IHsgZ2VuZXJhdGVDZXJ0LCBnZXRBY2NvdW50S2V5LCBwYXJzZUNlcnQgfSBmcm9tIFwiLi9odHRwc0NlcnRzXCI7XG5pbXBvcnQgeyBzZXRSZWNvcmQgfSBmcm9tIFwiLi9kbnNcIjtcblxuLy8gUmVuZXcgc29tZXdoZXJlIHJhbmRvbWx5IGJldHdlZW4gNDAlIGFuZCA2MCUgb2YgdGhlIHdheSB0aHJvdWdoIHRoZSBjZXJ0IGxpZmV0aW1lLiBUaGUgcmFuZG9tIHRocmVzaG9sZCBzdGFnZ2VycyBwYXJhbGxlbCBwcm9jZXNzZXMgb24gdGhlIHNhbWUgbWFjaGluZSwgc28gdXN1YWxseSBvbmUgcHJvY2VzcyByZW5ld3MgZWFybHksIGFuZCB0aGUgb3RoZXJzIHNlZSB0aGUgcmVuZXdlZCBjZXJ0IG9uIGRpc2sgKHdlIHJlLXJlYWQgdGhlIGRpc2sgYmVmb3JlIGV2ZXJ5IHJlbmV3YWwgY2hlY2spIGFuZCBuZXZlciByZW5ldyB0aGVtc2VsdmVzLlxuY29uc3QgUkVORVdfVEhSRVNIT0xEX01JTiA9IDAuNDtcbmNvbnN0IFJFTkVXX1RIUkVTSE9MRF9NQVggPSAwLjY7XG5jb25zdCBDRVJUX0NIRUNLX0lOVEVSVkFMID0gdGltZUluTWludXRlICogMTU7XG5cbi8vIE9uZSB0aHJlc2hvbGQgcGVyIHByb2Nlc3MsIHNvIGEgcHJvY2VzcyBpcyBjb25zaXN0ZW50bHkgZWFybHkgb3IgbGF0ZSByZWxhdGl2ZSB0byBpdHMgc2libGluZ3NcbmNvbnN0IHJlbmV3VGhyZXNob2xkID0gUkVORVdfVEhSRVNIT0xEX01JTiArIE1hdGgucmFuZG9tKCkgKiAoUkVORVdfVEhSRVNIT0xEX01BWCAtIFJFTkVXX1RIUkVTSE9MRF9NSU4pO1xuXG5leHBvcnQgdHlwZSBIb3N0U2VydmVyQ29uZmlnID0ge1xuICAgIC8qKiBGdWxsIGRvbWFpbiB0byBob3N0IG9uIChlLmcuIFwidGVzdHNpdGUuZXhhbXBsZS5jb21cIikuIFRoZSBIVFRQUyBjZXJ0IGlzIGNyZWF0ZWQgZm9yIHRoaXMgZG9tYWluIGFuZCAqLmRvbWFpbiwgc28gdXNpbmcgYSBzdWJkb21haW4gbmV2ZXIgdG91Y2hlcyB0aGUgcm9vdCBkb21haW4gKGJleW9uZCBpdHMgX2FjbWUtY2hhbGxlbmdlIFRYVCByZWNvcmQpLiAqL1xuICAgIGRvbWFpbjogc3RyaW5nO1xuICAgIHBvcnQ6IG51bWJlcjtcblxuICAgIC8vIFRPRE86IEV2ZW50dWFsbHkgd2Ugc2hvdWxkIHN1cHBvcnQgcnVubmluZyB3aXRob3V0IENsb3VkZmxhcmUgQVBJIHRva2Vucy4gSXQncyBhbm5veWluZyB0aG91Z2ggYXMgdGhlIHVzZXIgd2lsbCBoYXZlIHRvIGNyZWF0ZSBhIHNlbGYtc2lnbmVkIGNlcnRpZmljYXRlIGFuZCB0aGVuIHRoZXknbGwgaGF2ZSB0byBnbyB0aHJvdWdoIGFuZCB0cnVzdCBpdCBldmVyeXdoZXJlLCBhbmQgYSBsb3Qgb2YgdGhlIHN0dWZmIGlzIHRyYW5zcGFyZW50LCBhbmQgc28gaXQnbGwgaGF2ZSB0byBiZSBub24tdHJhbnNwYXJlbnQsIGdldHRpbmcgdGhlIHVzZXIgdG8gZ28gdG8gdGhlIHBhZ2UgdGhhdCBvd25zIHRoZSBkb21haW4gYW5kIHRydXN0IGl0IGZyb20gdGhlcmUuIEl0J3MgbXVjaCBiZXR0ZXIganVzdCBtYWtlIGEgQ2xvdWRmbGFyZSBhY2NvdW50LiBZb3UgY2FuIGJ1eSBhIGRvbWFpbiBmb3IgJDE1IGEgeWVhciwgYW5kIHRoZW4geW91IGNhbiB1c2UgaXQgZm9yIEdpdEh1YiBwYWdlcyB0byBob3N0IHlvdXIgb3duIHNpdGUgYW5kIGRvIGFsbCBraW5kcyBvZiB0aGluZ3MganVzdCBsaWtlIGFueSBvdGhlciByZWFsIHNpdGUuXG4gICAgLyoqIENyZWF0ZXMgYW4gdW5wcm94aWVkIEEgcmVjb3JkIHBvaW50aW5nIGRvbWFpbiBhdCB0aGlzIG1hY2hpbmUgKHB1YmxpY0lwLCBvciBvdXIgZGV0ZWN0ZWQgZXh0ZXJuYWwgSVApICovXG4gICAgc2V0RE5TUmVjb3JkPzogYm9vbGVhbjtcbiAgICBwdWJsaWNJcD86IHN0cmluZztcbiAgICBhbGxvd0hvc3RuYW1lcz86IHN0cmluZ1tdO1xuICAgIC8qKiBXaGVuIHRoZSBwb3J0IGlzIGJ1c3kgKGUuZy4gdGhlIHByZXZpb3VzIGRlcGxveSBzdGlsbCBob2xkcyBpdCksIG1vdW50IG9uIGFuIGFsdGVybmF0ZSBwb3J0IGluc3RlYWQgKHRoZSBzb2NrZXQgc2VydmVyJ3MgYnVpbHQtaW4gZnJlZS1wb3J0IHNjYW4pLCBhbmQga2VlcCB0cnlpbmcgdG8gdGFrZSB0aGUgcmVhbCBwb3J0IC0gb25jZSBpdCBmcmVlcywgYSByYXcgVENQIHJlbGF5IG9uIHRoZSByZWFsIHBvcnQgZm9yd2FyZHMgdG8gb3VyIGxpc3RlbmVyIChTb2NrZXRGdW5jdGlvbiBjYW4gb25seSBtb3VudCBvbmNlIHBlciBwcm9jZXNzKS4gKi9cbiAgICBwb3J0RmFsbGJhY2s/OiB7XG4gICAgICAgIC8qKiBEZWxheSB1bnRpbCB0aGUgbmV4dCBtYWluLXBvcnQgYWNxdWlzaXRpb24gYXR0ZW1wdCAodGlnaHRlbmVkIGFyb3VuZCB0aGUgcHJlZGVjZXNzb3IncyBzY2hlZHVsZWQgZGVhdGgpICovXG4gICAgICAgIGdldEFjcXVpcmVEZWxheTogKCkgPT4gbnVtYmVyO1xuICAgICAgICAvKiogQ2FsbGVkIHdoZW4gdGhlIG1haW4gcG9ydCB0dXJuZWQgb3V0IHRvIGJlIGJ1c3ksIGJlZm9yZSB3ZSBhY3QgYXMgaXRzIHN1Y2Nlc3NvciBpbiBhbnkgd2F5LiBUaHJvd2luZyBhYm9ydHMgc3RhcnR1cCAtIGEgYnVzeSBwb3J0IHdpdGggbm8gZGVwbG95IGluIHByb2dyZXNzIG1lYW5zIHNvbWV0aGluZyBlbHNlIGhvbGRzIGl0LCB3aGljaCBpcyBub3QgYSBzdGF0ZSB0byBrZWVwIHJ1bm5pbmcgaW4uICovXG4gICAgICAgIG9uUG9ydEluVXNlPzogKCkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgICAgICAgLyoqIFJlcG9ydHMgZXZlcnkgcG9ydCB3ZSBiZWNvbWUgcmVhY2hhYmxlIG9uICh0aGUgYWx0ZXJuYXRlIGF0IG1vdW50LCB0aGUgbWFpbiBwb3J0IG9uY2UgcmVsYXllZCkgKi9cbiAgICAgICAgb25MaXN0ZW5pbmc6IChwb3J0OiBudW1iZXIsIGlzTWFpblBvcnQ6IGJvb2xlYW4pID0+IHZvaWQ7XG4gICAgfTtcbn07XG5cbi8qKiBIb3N0cyBhIFNvY2tldEZ1bmN0aW9uIHNlcnZlciBvbiBhIHJlYWwgZG9tYWluLCB3aXRoIGFuIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBhbmQgcmVuZXdlZCBMZXQncyBFbmNyeXB0IEhUVFBTIGNlcnRpZmljYXRlIChjYWNoZWQgaW4gdGhlIGhvbWUgZm9sZGVyLCBzaGFyZWQgYmV0d2VlbiBwcm9jZXNzZXMgb24gdGhlIG1hY2hpbmUpLiBFeHBvc2UgeW91ciBjb250cm9sbGVycyAoYW5kIGFueSBSZXF1aXJlQ29udHJvbGxlciBzZXR1cCkgYmVmb3JlIGNhbGxpbmcgdGhpcy4gUmV0dXJucyB0aGUgbW91bnRlZCBub2RlSWQuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaG9zdFNlcnZlcihjb25maWc6IEhvc3RTZXJ2ZXJDb25maWcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGxldCB7IGRvbWFpbiwgcG9ydCB9ID0gY29uZmlnO1xuICAgIC8vIFRoZSBpZGVudGl0eSBDQSBhbHdheXMgbGl2ZXMgb24gdGhlIHJvb3QgZG9tYWluIChub2RlSWRzIGFyZSB0aHJlYWRIYXNoLm1hY2hpbmVIYXNoLnJvb3QudGxkKVxuICAgIGxldCByb290RG9tYWluID0gZG9tYWluLnNwbGl0KFwiLlwiKS5zbGljZSgtMikuam9pbihcIi5cIik7XG4gICAgYXdhaXQgbG9hZElkZW50aXR5Q0Eocm9vdERvbWFpbik7XG5cbiAgICBpZiAoY29uZmlnLnNldEROU1JlY29yZCkge1xuICAgICAgICBsZXQgaXAgPSBjb25maWcucHVibGljSXAgfHwgYXdhaXQgZ2V0RXh0ZXJuYWxJUCgpO1xuICAgICAgICBhd2FpdCBzZXRSZWNvcmQoXCJBXCIsIGRvbWFpbiwgaXApO1xuICAgIH1cblxuICAgIGxldCBrZXlDZXJ0ID0gYXdhaXQgZ2V0RnJlc2hIVFRQU0NlcnQoZG9tYWluKTtcbiAgICBsZXQgY2VydExpc3RlbmVyczogKCh2YWx1ZTogeyBrZXk6IHN0cmluZzsgY2VydDogc3RyaW5nIH0pID0+IHZvaWQpW10gPSBbXTtcbiAgICB2b2lkIHJ1bkNlcnRSZW5ld2FsTG9vcChkb21haW4sIG5ld0tleUNlcnQgPT4ge1xuICAgICAgICBrZXlDZXJ0ID0gbmV3S2V5Q2VydDtcbiAgICAgICAgZm9yIChsZXQgbGlzdGVuZXIgb2YgY2VydExpc3RlbmVycykge1xuICAgICAgICAgICAgbGlzdGVuZXIobmV3S2V5Q2VydCk7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIFdpdGggcG9ydEZhbGxiYWNrLCBhIGJ1c3kgcG9ydCBpcyBub3QgYW4gZXJyb3I6IHRoZSB1bmRlcmx5aW5nIHNlcnZlciBzY2FucyBmb3IgYSBmcmVlIHBvcnQgaW5zdGVhZCAodXNlQXZhaWxhYmxlUG9ydElmUG9ydEluVXNlKSwgYW5kIHRoZSBub2RlSWQgdGVsbHMgdXMgd2hpY2ggcG9ydCB3ZSBhY3R1YWxseSBnb3RcbiAgICBsZXQgbm9kZUlkID0gYXdhaXQgU29ja2V0RnVuY3Rpb24ubW91bnQoe1xuICAgICAgICBwdWJsaWM6IHRydWUsXG4gICAgICAgIGF1dG9Gb3J3YXJkUG9ydDogdHJ1ZSxcbiAgICAgICAgcG9ydCxcbiAgICAgICAgdXNlQXZhaWxhYmxlUG9ydElmUG9ydEluVXNlOiAhIWNvbmZpZy5wb3J0RmFsbGJhY2ssXG4gICAgICAgIC4uLmdldFRocmVhZEtleUNlcnQocm9vdERvbWFpbiksXG4gICAgICAgIFNOSUNlcnRzOiB7XG4gICAgICAgICAgICBbZG9tYWluXTogY2FsbGJhY2sgPT4ge1xuICAgICAgICAgICAgICAgIGNhbGxiYWNrKGtleUNlcnQpO1xuICAgICAgICAgICAgICAgIGNlcnRMaXN0ZW5lcnMucHVzaChjYWxsYmFjayk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgW2dldE93bk1hY2hpbmVJZChyb290RG9tYWluKSArIFwiLlwiICsgcm9vdERvbWFpbl06IGFzeW5jIGNhbGxiYWNrID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgdGhyZWFkQ2VydCA9IGF3YWl0IGdldFRocmVhZEtleUNlcnQocm9vdERvbWFpbik7XG4gICAgICAgICAgICAgICAgY2FsbGJhY2soe1xuICAgICAgICAgICAgICAgICAgICBrZXk6IHRocmVhZENlcnQua2V5LFxuICAgICAgICAgICAgICAgICAgICBjZXJ0OiB0aHJlYWRDZXJ0LmNlcnQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgW1wiMTI3LTAtMC0xLlwiICsgcm9vdERvbWFpbl06IGFzeW5jIGNhbGxiYWNrID0+IHtcbiAgICAgICAgICAgICAgICBjYWxsYmFjayhrZXlDZXJ0KTtcbiAgICAgICAgICAgICAgICBjZXJ0TGlzdGVuZXJzLnB1c2goY2FsbGJhY2spO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgYWxsb3dIb3N0bmFtZXM6IGNvbmZpZy5hbGxvd0hvc3RuYW1lcyxcbiAgICB9KTtcbiAgICBsZXQgc2VydmluZ1BvcnQgPSBnZXROb2RlSWRMb2NhdGlvbihub2RlSWQpPy5wb3J0IHx8IHBvcnQ7XG4gICAgbGV0IGZhbGxiYWNrID0gY29uZmlnLnBvcnRGYWxsYmFjaztcbiAgICBpZiAoZmFsbGJhY2sgJiYgc2VydmluZ1BvcnQgIT09IHBvcnQpIHtcbiAgICAgICAgY29uc29sZS5sb2cobWFnZW50YShgUG9ydCAke3BvcnR9IGlzIGluIHVzZSAocHJlc3VtYWJseSBieSBvdXIgcHJlZGVjZXNzb3IpOyBzZXJ2aW5nIG9uIGFsdGVybmF0ZSBwb3J0ICR7c2VydmluZ1BvcnR9IHVudGlsIGl0IGZyZWVzYCkpO1xuICAgICAgICBhd2FpdCBmYWxsYmFjay5vblBvcnRJblVzZT8uKCk7XG4gICAgICAgIHZvaWQgcnVuTWFpblBvcnRBY3F1aXJlTG9vcChkb21haW4sIHBvcnQsIHNlcnZpbmdQb3J0LCBmYWxsYmFjayk7XG4gICAgfVxuICAgIGZhbGxiYWNrPy5vbkxpc3RlbmluZyhzZXJ2aW5nUG9ydCwgc2VydmluZ1BvcnQgPT09IHBvcnQpO1xuICAgIGNvbnNvbGUubG9nKG1hZ2VudGEoYEhvc3RpbmcgaHR0cHM6Ly8ke2RvbWFpbn06JHtzZXJ2aW5nUG9ydH0gKG5vZGVJZCAke25vZGVJZH0pYCkpO1xuICAgIHJldHVybiBub2RlSWQ7XG59XG5cbi8vIFNvY2tldEZ1bmN0aW9uIGNhbiBvbmx5IG1vdW50IG9uY2UgcGVyIHByb2Nlc3MsIHNvIFwidGFraW5nIG92ZXJcIiB0aGUgbWFpbiBwb3J0IGlzIGEgcmF3IFRDUCByZWxheSBmb3J3YXJkaW5nIHRvIG91ciByZWFsIGxpc3RlbmVyIC0gVExTL1NOSSBwYXNzZXMgc3RyYWlnaHQgdGhyb3VnaCwgYW5kIGNsaWVudHMgYWRkcmVzcyBzZXJ2ZXJzIGJ5IGlwIGRvbWFpbiAod2lsZGNhcmQgbmVnb3RpYXRpb24pLCBzbyB0aGUgZXh0cmEgaG9wIGlzIGludmlzaWJsZS5cbmFzeW5jIGZ1bmN0aW9uIHJ1bk1haW5Qb3J0QWNxdWlyZUxvb3AoZG9tYWluOiBzdHJpbmcsIG1haW5Qb3J0OiBudW1iZXIsIHNlcnZpbmdQb3J0OiBudW1iZXIsIGZhbGxiYWNrOiBOb25OdWxsYWJsZTxIb3N0U2VydmVyQ29uZmlnW1wicG9ydEZhbGxiYWNrXCJdPik6IFByb21pc2U8dm9pZD4ge1xuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgIGF3YWl0IGRlbGF5KGZhbGxiYWNrLmdldEFjcXVpcmVEZWxheSgpKTtcbiAgICAgICAgbGV0IGFjcXVpcmVkID0gYXdhaXQgbmV3IFByb21pc2U8Ym9vbGVhbj4ocmVzb2x2ZSA9PiB7XG4gICAgICAgICAgICBsZXQgcmVsYXkgPSBuZXQuY3JlYXRlU2VydmVyKGNsaWVudCA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IHVwc3RyZWFtID0gbmV0LmNvbm5lY3QoeyBob3N0OiBcIjEyNy4wLjAuMVwiLCBwb3J0OiBzZXJ2aW5nUG9ydCB9KTtcbiAgICAgICAgICAgICAgICBjbGllbnQucGlwZSh1cHN0cmVhbSk7XG4gICAgICAgICAgICAgICAgdXBzdHJlYW0ucGlwZShjbGllbnQpO1xuICAgICAgICAgICAgICAgIGxldCBjbGVhbnVwID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjbGllbnQuZGVzdHJveSgpO1xuICAgICAgICAgICAgICAgICAgICB1cHN0cmVhbS5kZXN0cm95KCk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjbGllbnQub24oXCJlcnJvclwiLCBjbGVhbnVwKTtcbiAgICAgICAgICAgICAgICB1cHN0cmVhbS5vbihcImVycm9yXCIsIGNsZWFudXApO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZWxheS5vbmNlKFwiZXJyb3JcIiwgKCkgPT4gcmVzb2x2ZShmYWxzZSkpO1xuICAgICAgICAgICAgcmVsYXkubGlzdGVuKG1haW5Qb3J0LCAoKSA9PiByZXNvbHZlKHRydWUpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChhY3F1aXJlZCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2cobWFnZW50YShgQWNxdWlyZWQgbWFpbiBwb3J0ICR7bWFpblBvcnR9IGZvciBodHRwczovLyR7ZG9tYWlufSAocmVsYXlpbmcgdG8gb3VyIGxpc3RlbmVyIG9uICR7c2VydmluZ1BvcnR9KWApKTtcbiAgICAgICAgICAgIC8vIFRoZSBtb3VudCBvbmx5IGZvcndhcmRlZCBPVVIgc2VydmluZyBwb3J0OyB0aGUgbWFpbiBwb3J0IG5lZWRzIGl0cyBvd24gbWFwcGluZyAodGhlIHByZWRlY2Vzc29yJ3MgbWFwcGluZyBwb2ludGVkIGF0IHRoZSBzYW1lIG1hY2hpbmUrcG9ydCwgYnV0IGRpZXMgd2l0aCBpdClcbiAgICAgICAgICAgIGF3YWl0IGZvcndhcmRQb3J0KHsgZXh0ZXJuYWxQb3J0OiBtYWluUG9ydCwgaW50ZXJuYWxQb3J0OiBtYWluUG9ydCB9KTtcbiAgICAgICAgICAgIGZhbGxiYWNrLm9uTGlzdGVuaW5nKG1haW5Qb3J0LCB0cnVlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZnVuY3Rpb24gZ2V0Q2VydERpc2tQYXRoKGRvbWFpbjogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG9zLmhvbWVkaXIoKSArIGAvaHR0cHNjZXJ0XyR7ZG9tYWlufS5qc29uYDtcbn1cbmZ1bmN0aW9uIHJlYWRDZXJ0RnJvbURpc2soZG9tYWluOiBzdHJpbmcpOiB7IGtleTogc3RyaW5nOyBjZXJ0OiBzdHJpbmcgfSB8IHVuZGVmaW5lZCB7XG4gICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKGdldENlcnREaXNrUGF0aChkb21haW4pLCBcInV0ZjhcIikpIGFzIHsga2V5OiBzdHJpbmc7IGNlcnQ6IHN0cmluZyB9O1xuICAgIH0gY2F0Y2gge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGdldFJlbmV3VGltZShjZXJ0UGVtOiBzdHJpbmcsIHRocmVzaG9sZDogbnVtYmVyKSB7XG4gICAgbGV0IGNlcnRPYmogPSBwYXJzZUNlcnQoY2VydFBlbSk7XG4gICAgbGV0IHN0YXJ0ID0gK25ldyBEYXRlKGNlcnRPYmoudmFsaWRpdHkubm90QmVmb3JlKTtcbiAgICBsZXQgZW5kID0gK25ldyBEYXRlKGNlcnRPYmoudmFsaWRpdHkubm90QWZ0ZXIpO1xuICAgIHJldHVybiBzdGFydCArIChlbmQgLSBzdGFydCkgKiB0aHJlc2hvbGQ7XG59XG5cbi8qKiBSZXR1cm5zIHRoZSBjYWNoZWQgSFRUUFMgY2VydCBmb3IgdGhlIGRvbWFpbiwgY3JlYXRpbmcvcmVuZXdpbmcgaXQgZmlyc3QgaWYgaXQgaXMgcGFzdCB0aGlzIHByb2Nlc3MncyByZW5ld2FsIHRocmVzaG9sZC4gUmVhZHMgdGhlIGRpc2sgY2FjaGUgb24gZXZlcnkgY2FsbCwgc28gYSByZW5ld2FsIGRvbmUgYnkgYSBwYXJhbGxlbCBwcm9jZXNzIGlzIHBpY2tlZCB1cCBpbnN0ZWFkIG9mIHJlbmV3aW5nIGFnYWluLiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEZyZXNoSFRUUFNDZXJ0KGRvbWFpbjogc3RyaW5nKTogUHJvbWlzZTx7IGtleTogc3RyaW5nOyBjZXJ0OiBzdHJpbmcgfT4ge1xuICAgIGxldCBrZXlDZXJ0ID0gcmVhZENlcnRGcm9tRGlzayhkb21haW4pO1xuICAgIGlmIChrZXlDZXJ0ICYmIGdldFJlbmV3VGltZShrZXlDZXJ0LmNlcnQsIHJlbmV3VGhyZXNob2xkKSA+IERhdGUubm93KCkpIHtcbiAgICAgICAgcmV0dXJuIGtleUNlcnQ7XG4gICAgfVxuICAgIGlmIChrZXlDZXJ0KSB7XG4gICAgICAgIGNvbnNvbGUubG9nKG1hZ2VudGEoYEhUVFBTIGNlcnQgZm9yICR7ZG9tYWlufSBpcyBwYXN0ICR7KHJlbmV3VGhyZXNob2xkICogMTAwKS50b0ZpeGVkKDApfSUgb2YgaXRzIGxpZmV0aW1lLCByZW5ld2luZ2ApKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmxvZyhtYWdlbnRhKGBObyBIVFRQUyBjZXJ0IG9uIGRpc2sgZm9yICR7ZG9tYWlufSwgY3JlYXRpbmcgb25lYCkpO1xuICAgIH1cbiAgICBsZXQgYWNjb3VudEtleSA9IGF3YWl0IGdldEFjY291bnRLZXkoZG9tYWluKTtcbiAgICB0cnkge1xuICAgICAgICBrZXlDZXJ0ID0gYXdhaXQgZ2VuZXJhdGVDZXJ0KHsgYWNjb3VudEtleSwgZG9tYWluLCBhbHREb21haW5zOiBbXCIqLlwiICsgZG9tYWluXSB9KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGlmIChTdHJpbmcoZSkuaW5jbHVkZXMoXCJhdXRob3JpemF0aW9uIG11c3QgYmUgcGVuZGluZ1wiKSkge1xuICAgICAgICAgICAgLy8gQW5vdGhlciBwcm9jZXNzIGlzIG1pZC1yZW5ld2FsLiBXYWl0IGZvciBpdCB0byBmaW5pc2gsIHRoZW4gcmUtY2hlY2sgdGhlIGRpc2suXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgQ2VydGlmaWNhdGUgYXV0aG9yaXphdGlvbiBpcyBwZW5kaW5nIGluIGFub3RoZXIgcHJvY2Vzcywgd2FpdGluZyAyIG1pbnV0ZXNgKTtcbiAgICAgICAgICAgIGF3YWl0IGRlbGF5KHRpbWVJbk1pbnV0ZSAqIDIpO1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IGdldEZyZXNoSFRUUFNDZXJ0KGRvbWFpbik7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgZTtcbiAgICB9XG4gICAgZnMud3JpdGVGaWxlU3luYyhnZXRDZXJ0RGlza1BhdGgoZG9tYWluKSwgSlNPTi5zdHJpbmdpZnkoeyBrZXk6IGtleUNlcnQua2V5LCBjZXJ0OiBrZXlDZXJ0LmNlcnQgfSkpO1xuICAgIHJldHVybiB7IGtleToga2V5Q2VydC5rZXksIGNlcnQ6IGtleUNlcnQuY2VydCB9O1xufVxuXG5hc3luYyBmdW5jdGlvbiBydW5DZXJ0UmVuZXdhbExvb3AoZG9tYWluOiBzdHJpbmcsIG9uTmV3Q2VydDogKGtleUNlcnQ6IHsga2V5OiBzdHJpbmc7IGNlcnQ6IHN0cmluZyB9KSA9PiB2b2lkKSB7XG4gICAgbGV0IGxhc3RDZXJ0ID0gcmVhZENlcnRGcm9tRGlzayhkb21haW4pPy5jZXJ0O1xuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgIGF3YWl0IGRlbGF5KENFUlRfQ0hFQ0tfSU5URVJWQUwpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgbGV0IGtleUNlcnQgPSBhd2FpdCBnZXRGcmVzaEhUVFBTQ2VydChkb21haW4pO1xuICAgICAgICAgICAgaWYgKGtleUNlcnQuY2VydCAhPT0gbGFzdENlcnQpIHtcbiAgICAgICAgICAgICAgICBsYXN0Q2VydCA9IGtleUNlcnQuY2VydDtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhtYWdlbnRhKGBIVFRQUyBjZXJ0IGZvciAke2RvbWFpbn0gdXBkYXRlZCwgYXBwbHlpbmcgdG8gcnVubmluZyBzZXJ2ZXJgKSk7XG4gICAgICAgICAgICAgICAgb25OZXdDZXJ0KGtleUNlcnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gY2hlY2svcmVuZXcgSFRUUFMgY2VydCBmb3IgJHtkb21haW59YCwgZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
176
|
-
/* _JS_SOURCE_HASH = "
|
|
175
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9zdFNlcnZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhvc3RTZXJ2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsNENBQW9CO0FBQ3BCLDRDQUFvQjtBQUNwQiw4Q0FBc0I7QUFDdEIsbUVBQWdFO0FBQ2hFLDZEQUFrRTtBQUNsRSxtREFBd0Q7QUFDeEQsMkRBQXFEO0FBQ3JELCtEQUErRDtBQUMvRCxpRUFBOEQ7QUFDOUQsd0VBQW1FO0FBQ25FLG1DQUE0RTtBQUM1RSw2Q0FBc0U7QUFDdEUsK0JBQWtDO0FBRWxDLHlUQUF5VDtBQUN6VCxNQUFNLG1CQUFtQixHQUFHLEdBQUcsQ0FBQztBQUNoQyxNQUFNLG1CQUFtQixHQUFHLEdBQUcsQ0FBQztBQUNoQyxNQUFNLG1CQUFtQixHQUFHLG1CQUFZLEdBQUcsRUFBRSxDQUFDO0FBRTlDLGlHQUFpRztBQUNqRyxNQUFNLGNBQWMsR0FBRyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxtQkFBbUIsR0FBRyxtQkFBbUIsQ0FBQyxDQUFDO0FBdUJ6RyxpVEFBaVQ7QUFDMVMsS0FBSyxVQUFVLFVBQVUsQ0FBQyxNQUF3Qjs7SUFDckQsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFDOUIsZ0dBQWdHO0lBQ2hHLElBQUksVUFBVSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZELE1BQU0sSUFBQSxzQkFBYyxFQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRWpDLElBQUksTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RCLElBQUksRUFBRSxHQUFHLE1BQU0sQ0FBQyxRQUFRLElBQUksTUFBTSxJQUFBLDBCQUFhLEdBQUUsQ0FBQztRQUNsRCxNQUFNLElBQUEsZUFBUyxFQUFDLEdB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QUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDcEcsT0FBTyxFQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDcEQsQ0FBQztBQXhCRCw4Q0F3QkM7QUFFRCxLQUFLLFVBQVUsa0JBQWtCLENBQUMsTUFBYyxFQUFFLFNBQTJEOztJQUN6RyxJQUFJLFFBQVEsR0FBRyxNQUFBLGdCQUFnQixDQUFDLE1BQU0sQ0FBQywwQ0FBRSxJQUFJLENBQUM7SUFDOUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUNWLE1BQU0sSUFBQSxnQkFBSyxFQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDO1lBQ0QsSUFBSSxPQUFPLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM5QyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQzVCLFFBQVEsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUEsbUJBQU8sRUFBQyxrQkFBa0IsTUFBTSxzQ0FBc0MsQ0FBQyxDQUFDLENBQUM7Z0JBQ3JGLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN2QixDQUFDO1FBQ0wsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDVCxPQUFPLENBQUMsS0FBSyxDQUFDLHdDQUF3QyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN2RSxDQUFDO0lBQ0wsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgb3MgZnJvbSBcIm9zXCI7XG5pbXBvcnQgZnMgZnJvbSBcImZzXCI7XG5pbXBvcnQgbmV0IGZyb20gXCJuZXRcIjtcbmltcG9ydCB7IFNvY2tldEZ1bmN0aW9uIH0gZnJvbSBcInNvY2tldC1mdW5jdGlvbi9Tb2NrZXRGdW5jdGlvblwiO1xuaW1wb3J0IHsgZ2V0Tm9kZUlkTG9jYXRpb24gfSBmcm9tIFwic29ja2V0LWZ1bmN0aW9uL3NyYy9ub2RlQ2FjaGVcIjtcbmltcG9ydCB7IHRpbWVJbk1pbnV0ZSB9IGZyb20gXCJzb2NrZXQtZnVuY3Rpb24vc3JjL21pc2NcIjtcbmltcG9ydCB7IGRlbGF5IH0gZnJvbSBcInNvY2tldC1mdW5jdGlvbi9zcmMvYmF0Y2hpbmdcIjtcbmltcG9ydCB7IGdldEV4dGVybmFsSVAgfSBmcm9tIFwic29ja2V0LWZ1bmN0aW9uL3NyYy9uZXR3b3JraW5nXCI7XG5pbXBvcnQgeyBmb3J3YXJkUG9ydCB9IGZyb20gXCJzb2NrZXQtZnVuY3Rpb24vc3JjL2ZvcndhcmRQb3J0XCI7XG5pbXBvcnQgeyBtYWdlbnRhIH0gZnJvbSBcInNvY2tldC1mdW5jdGlvbi9zcmMvZm9ybWF0dGluZy9sb2dDb2xvcnNcIjtcbmltcG9ydCB7IGdldE93bk1hY2hpbmVJZCwgZ2V0VGhyZWFkS2V5Q2VydCwgbG9hZElkZW50aXR5Q0EgfSBmcm9tIFwiLi9jZXJ0c1wiO1xuaW1wb3J0IHsgZ2VuZXJhdGVDZXJ0LCBnZXRBY2NvdW50S2V5LCBwYXJzZUNlcnQgfSBmcm9tIFwiLi9odHRwc0NlcnRzXCI7XG5pbXBvcnQgeyBzZXRSZWNvcmQgfSBmcm9tIFwiLi9kbnNcIjtcblxuLy8gUmVuZXcgc29tZXdoZXJlIHJhbmRvbWx5IGJldHdlZW4gNDAlIGFuZCA2MCUgb2YgdGhlIHdheSB0aHJvdWdoIHRoZSBjZXJ0IGxpZmV0aW1lLiBUaGUgcmFuZG9tIHRocmVzaG9sZCBzdGFnZ2VycyBwYXJhbGxlbCBwcm9jZXNzZXMgb24gdGhlIHNhbWUgbWFjaGluZSwgc28gdXN1YWxseSBvbmUgcHJvY2VzcyByZW5ld3MgZWFybHksIGFuZCB0aGUgb3RoZXJzIHNlZSB0aGUgcmVuZXdlZCBjZXJ0IG9uIGRpc2sgKHdlIHJlLXJlYWQgdGhlIGRpc2sgYmVmb3JlIGV2ZXJ5IHJlbmV3YWwgY2hlY2spIGFuZCBuZXZlciByZW5ldyB0aGVtc2VsdmVzLlxuY29uc3QgUkVORVdfVEhSRVNIT0xEX01JTiA9IDAuNDtcbmNvbnN0IFJFTkVXX1RIUkVTSE9MRF9NQVggPSAwLjY7XG5jb25zdCBDRVJUX0NIRUNLX0lOVEVSVkFMID0gdGltZUluTWludXRlICogMTU7XG5cbi8vIE9uZSB0aHJlc2hvbGQgcGVyIHByb2Nlc3MsIHNvIGEgcHJvY2VzcyBpcyBjb25zaXN0ZW50bHkgZWFybHkgb3IgbGF0ZSByZWxhdGl2ZSB0byBpdHMgc2libGluZ3NcbmNvbnN0IHJlbmV3VGhyZXNob2xkID0gUkVORVdfVEhSRVNIT0xEX01JTiArIE1hdGgucmFuZG9tKCkgKiAoUkVORVdfVEhSRVNIT0xEX01BWCAtIFJFTkVXX1RIUkVTSE9MRF9NSU4pO1xuXG5leHBvcnQgdHlwZSBIb3N0U2VydmVyQ29uZmlnID0ge1xuICAgIC8qKiBGdWxsIGRvbWFpbiB0byBob3N0IG9uIChlLmcuIFwidGVzdHNpdGUuZXhhbXBsZS5jb21cIikuIFRoZSBIVFRQUyBjZXJ0IGlzIGNyZWF0ZWQgZm9yIHRoaXMgZG9tYWluIGFuZCAqLmRvbWFpbiwgc28gdXNpbmcgYSBzdWJkb21haW4gbmV2ZXIgdG91Y2hlcyB0aGUgcm9vdCBkb21haW4gKGJleW9uZCBpdHMgX2FjbWUtY2hhbGxlbmdlIFRYVCByZWNvcmQpLiAqL1xuICAgIGRvbWFpbjogc3RyaW5nO1xuICAgIHBvcnQ6IG51bWJlcjtcblxuICAgIC8vIFRPRE86IEV2ZW50dWFsbHkgd2Ugc2hvdWxkIHN1cHBvcnQgcnVubmluZyB3aXRob3V0IENsb3VkZmxhcmUgQVBJIHRva2Vucy4gSXQncyBhbm5veWluZyB0aG91Z2ggYXMgdGhlIHVzZXIgd2lsbCBoYXZlIHRvIGNyZWF0ZSBhIHNlbGYtc2lnbmVkIGNlcnRpZmljYXRlIGFuZCB0aGVuIHRoZXknbGwgaGF2ZSB0byBnbyB0aHJvdWdoIGFuZCB0cnVzdCBpdCBldmVyeXdoZXJlLCBhbmQgYSBsb3Qgb2YgdGhlIHN0dWZmIGlzIHRyYW5zcGFyZW50LCBhbmQgc28gaXQnbGwgaGF2ZSB0byBiZSBub24tdHJhbnNwYXJlbnQsIGdldHRpbmcgdGhlIHVzZXIgdG8gZ28gdG8gdGhlIHBhZ2UgdGhhdCBvd25zIHRoZSBkb21haW4gYW5kIHRydXN0IGl0IGZyb20gdGhlcmUuIEl0J3MgbXVjaCBiZXR0ZXIganVzdCBtYWtlIGEgQ2xvdWRmbGFyZSBhY2NvdW50LiBZb3UgY2FuIGJ1eSBhIGRvbWFpbiBmb3IgJDE1IGEgeWVhciwgYW5kIHRoZW4geW91IGNhbiB1c2UgaXQgZm9yIEdpdEh1YiBwYWdlcyB0byBob3N0IHlvdXIgb3duIHNpdGUgYW5kIGRvIGFsbCBraW5kcyBvZiB0aGluZ3MganVzdCBsaWtlIGFueSBvdGhlciByZWFsIHNpdGUuXG4gICAgLyoqIENyZWF0ZXMgYW4gdW5wcm94aWVkIEEgcmVjb3JkIHBvaW50aW5nIGRvbWFpbiBhdCB0aGlzIG1hY2hpbmUgKHB1YmxpY0lwLCBvciBvdXIgZGV0ZWN0ZWQgZXh0ZXJuYWwgSVApICovXG4gICAgc2V0RE5TUmVjb3JkPzogYm9vbGVhbjtcbiAgICBwdWJsaWNJcD86IHN0cmluZztcbiAgICBhbGxvd0hvc3RuYW1lcz86IHN0cmluZ1tdO1xuICAgIC8qKiBXaGVuIHRoZSBwb3J0IGlzIGJ1c3kgKGUuZy4gdGhlIHByZXZpb3VzIGRlcGxveSBzdGlsbCBob2xkcyBpdCksIG1vdW50IG9uIGFuIGFsdGVybmF0ZSBwb3J0IGluc3RlYWQgKHRoZSBzb2NrZXQgc2VydmVyJ3MgYnVpbHQtaW4gZnJlZS1wb3J0IHNjYW4pLCBhbmQga2VlcCB0cnlpbmcgdG8gdGFrZSB0aGUgcmVhbCBwb3J0IC0gb25jZSBpdCBmcmVlcywgYSByYXcgVENQIHJlbGF5IG9uIHRoZSByZWFsIHBvcnQgZm9yd2FyZHMgdG8gb3VyIGxpc3RlbmVyIChTb2NrZXRGdW5jdGlvbiBjYW4gb25seSBtb3VudCBvbmNlIHBlciBwcm9jZXNzKS4gKi9cbiAgICBwb3J0RmFsbGJhY2s/OiB7XG4gICAgICAgIC8qKiBEZWxheSB1bnRpbCB0aGUgbmV4dCBtYWluLXBvcnQgYWNxdWlzaXRpb24gYXR0ZW1wdCAodGlnaHRlbmVkIGFyb3VuZCB0aGUgcHJlZGVjZXNzb3IncyBzY2hlZHVsZWQgZGVhdGgpICovXG4gICAgICAgIGdldEFjcXVpcmVEZWxheTogKCkgPT4gbnVtYmVyO1xuICAgICAgICAvKiogQ2FsbGVkIHdoZW4gdGhlIG1haW4gcG9ydCB0dXJuZWQgb3V0IHRvIGJlIGJ1c3ksIGJlZm9yZSB3ZSBhY3QgYXMgaXRzIHN1Y2Nlc3NvciBpbiBhbnkgd2F5LiBUaHJvd2luZyBhYm9ydHMgc3RhcnR1cCAtIGEgYnVzeSBwb3J0IHdpdGggbm8gZGVwbG95IGluIHByb2dyZXNzIG1lYW5zIHNvbWV0aGluZyBlbHNlIGhvbGRzIGl0LCB3aGljaCBpcyBub3QgYSBzdGF0ZSB0byBrZWVwIHJ1bm5pbmcgaW4uICovXG4gICAgICAgIG9uUG9ydEluVXNlPzogKCkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgICAgICAgLyoqIFJlcG9ydHMgZXZlcnkgcG9ydCB3ZSBiZWNvbWUgcmVhY2hhYmxlIG9uICh0aGUgYWx0ZXJuYXRlIGF0IG1vdW50LCB0aGUgbWFpbiBwb3J0IG9uY2UgcmVsYXllZCkgKi9cbiAgICAgICAgb25MaXN0ZW5pbmc6IChwb3J0OiBudW1iZXIsIGlzTWFpblBvcnQ6IGJvb2xlYW4pID0+IHZvaWQ7XG4gICAgfTtcbn07XG5cbi8qKiBIb3N0cyBhIFNvY2tldEZ1bmN0aW9uIHNlcnZlciBvbiBhIHJlYWwgZG9tYWluLCB3aXRoIGFuIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBhbmQgcmVuZXdlZCBMZXQncyBFbmNyeXB0IEhUVFBTIGNlcnRpZmljYXRlIChjYWNoZWQgaW4gdGhlIGhvbWUgZm9sZGVyLCBzaGFyZWQgYmV0d2VlbiBwcm9jZXNzZXMgb24gdGhlIG1hY2hpbmUpLiBFeHBvc2UgeW91ciBjb250cm9sbGVycyAoYW5kIGFueSBSZXF1aXJlQ29udHJvbGxlciBzZXR1cCkgYmVmb3JlIGNhbGxpbmcgdGhpcy4gUmV0dXJucyB0aGUgbW91bnRlZCBub2RlSWQuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaG9zdFNlcnZlcihjb25maWc6IEhvc3RTZXJ2ZXJDb25maWcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGxldCB7IGRvbWFpbiwgcG9ydCB9ID0gY29uZmlnO1xuICAgIC8vIFRoZSBpZGVudGl0eSBDQSBhbHdheXMgbGl2ZXMgb24gdGhlIHJvb3QgZG9tYWluIChub2RlSWRzIGFyZSB0aHJlYWRIYXNoLm1hY2hpbmVIYXNoLnJvb3QudGxkKVxuICAgIGxldCByb290RG9tYWluID0gZG9tYWluLnNwbGl0KFwiLlwiKS5zbGljZSgtMikuam9pbihcIi5cIik7XG4gICAgYXdhaXQgbG9hZElkZW50aXR5Q0Eocm9vdERvbWFpbik7XG5cbiAgICBpZiAoY29uZmlnLnNldEROU1JlY29yZCkge1xuICAgICAgICBsZXQgaXAgPSBjb25maWcucHVibGljSXAgfHwgYXdhaXQgZ2V0RXh0ZXJuYWxJUCgpO1xuICAgICAgICBhd2FpdCBzZXRSZWNvcmQoXCJBXCIsIGRvbWFpbiwgaXApO1xuICAgIH1cblxuICAgIGxldCBrZXlDZXJ0ID0gYXdhaXQgZ2V0RnJlc2hIVFRQU0NlcnQoZG9tYWluKTtcbiAgICBsZXQgY2VydExpc3RlbmVyczogKCh2YWx1ZTogeyBrZXk6IHN0cmluZzsgY2VydDogc3RyaW5nIH0pID0+IHZvaWQpW10gPSBbXTtcbiAgICB2b2lkIHJ1bkNlcnRSZW5ld2FsTG9vcChkb21haW4sIG5ld0tleUNlcnQgPT4ge1xuICAgICAgICBrZXlDZXJ0ID0gbmV3S2V5Q2VydDtcbiAgICAgICAgZm9yIChsZXQgbGlzdGVuZXIgb2YgY2VydExpc3RlbmVycykge1xuICAgICAgICAgICAgbGlzdGVuZXIobmV3S2V5Q2VydCk7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIFdpdGggcG9ydEZhbGxiYWNrLCBhIGJ1c3kgcG9ydCBpcyBub3QgYW4gZXJyb3I6IHRoZSB1bmRlcmx5aW5nIHNlcnZlciBzY2FucyBmb3IgYSBmcmVlIHBvcnQgaW5zdGVhZCAodXNlQXZhaWxhYmxlUG9ydElmUG9ydEluVXNlKSwgYW5kIHRoZSBub2RlSWQgdGVsbHMgdXMgd2hpY2ggcG9ydCB3ZSBhY3R1YWxseSBnb3RcbiAgICBsZXQgbm9kZUlkID0gYXdhaXQgU29ja2V0RnVuY3Rpb24ubW91bnQoe1xuICAgICAgICBwdWJsaWM6IHRydWUsXG4gICAgICAgIGF1dG9Gb3J3YXJkUG9ydDogdHJ1ZSxcbiAgICAgICAgcG9ydCxcbiAgICAgICAgdXNlQXZhaWxhYmxlUG9ydElmUG9ydEluVXNlOiAhIWNvbmZpZy5wb3J0RmFsbGJhY2ssXG4gICAgICAgIC4uLmdldFRocmVhZEtleUNlcnQocm9vdERvbWFpbiksXG4gICAgICAgIFNOSUNlcnRzOiB7XG4gICAgICAgICAgICBbZG9tYWluXTogY2FsbGJhY2sgPT4ge1xuICAgICAgICAgICAgICAgIGNhbGxiYWNrKGtleUNlcnQpO1xuICAgICAgICAgICAgICAgIGNlcnRMaXN0ZW5lcnMucHVzaChjYWxsYmFjayk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgW2dldE93bk1hY2hpbmVJZChyb290RG9tYWluKSArIFwiLlwiICsgcm9vdERvbWFpbl06IGFzeW5jIGNhbGxiYWNrID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgdGhyZWFkQ2VydCA9IGF3YWl0IGdldFRocmVhZEtleUNlcnQocm9vdERvbWFpbik7XG4gICAgICAgICAgICAgICAgY2FsbGJhY2soe1xuICAgICAgICAgICAgICAgICAgICBrZXk6IHRocmVhZENlcnQua2V5LFxuICAgICAgICAgICAgICAgICAgICBjZXJ0OiB0aHJlYWRDZXJ0LmNlcnQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgW1wiMTI3LTAtMC0xLlwiICsgcm9vdERvbWFpbl06IGFzeW5jIGNhbGxiYWNrID0+IHtcbiAgICAgICAgICAgICAgICBjYWxsYmFjayhrZXlDZXJ0KTtcbiAgICAgICAgICAgICAgICBjZXJ0TGlzdGVuZXJzLnB1c2goY2FsbGJhY2spO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgYWxsb3dIb3N0bmFtZXM6IGNvbmZpZy5hbGxvd0hvc3RuYW1lcyxcbiAgICB9KTtcbiAgICBsZXQgc2VydmluZ1BvcnQgPSBnZXROb2RlSWRMb2NhdGlvbihub2RlSWQpPy5wb3J0IHx8IHBvcnQ7XG4gICAgbGV0IGZhbGxiYWNrID0gY29uZmlnLnBvcnRGYWxsYmFjaztcbiAgICBpZiAoZmFsbGJhY2sgJiYgc2VydmluZ1BvcnQgIT09IHBvcnQpIHtcbiAgICAgICAgY29uc29sZS53YXJuKGBQb3J0ICR7cG9ydH0gaXMgaW4gdXNlIChwcmVzdW1hYmx5IGJ5IG91ciBwcmVkZWNlc3Nvcik7IHNlcnZpbmcgb24gYWx0ZXJuYXRlIHBvcnQgJHtzZXJ2aW5nUG9ydH0gdW50aWwgaXQgZnJlZXNgKTtcbiAgICAgICAgYXdhaXQgZmFsbGJhY2sub25Qb3J0SW5Vc2U/LigpO1xuICAgICAgICB2b2lkIHJ1bk1haW5Qb3J0QWNxdWlyZUxvb3AoZG9tYWluLCBwb3J0LCBzZXJ2aW5nUG9ydCwgZmFsbGJhY2spO1xuICAgIH1cbiAgICBmYWxsYmFjaz8ub25MaXN0ZW5pbmcoc2VydmluZ1BvcnQsIHNlcnZpbmdQb3J0ID09PSBwb3J0KTtcbiAgICBjb25zb2xlLmxvZyhtYWdlbnRhKGBIb3N0aW5nIGh0dHBzOi8vJHtkb21haW59OiR7c2VydmluZ1BvcnR9IChub2RlSWQgJHtub2RlSWR9KWApKTtcbiAgICByZXR1cm4gbm9kZUlkO1xufVxuXG4vLyBTb2NrZXRGdW5jdGlvbiBjYW4gb25seSBtb3VudCBvbmNlIHBlciBwcm9jZXNzLCBzbyBcInRha2luZyBvdmVyXCIgdGhlIG1haW4gcG9ydCBpcyBhIHJhdyBUQ1AgcmVsYXkgZm9yd2FyZGluZyB0byBvdXIgcmVhbCBsaXN0ZW5lciAtIFRMUy9TTkkgcGFzc2VzIHN0cmFpZ2h0IHRocm91Z2gsIGFuZCBjbGllbnRzIGFkZHJlc3Mgc2VydmVycyBieSBpcCBkb21haW4gKHdpbGRjYXJkIG5lZ290aWF0aW9uKSwgc28gdGhlIGV4dHJhIGhvcCBpcyBpbnZpc2libGUuXG5hc3luYyBmdW5jdGlvbiBydW5NYWluUG9ydEFjcXVpcmVMb29wKGRvbWFpbjogc3RyaW5nLCBtYWluUG9ydDogbnVtYmVyLCBzZXJ2aW5nUG9ydDogbnVtYmVyLCBmYWxsYmFjazogTm9uTnVsbGFibGU8SG9zdFNlcnZlckNvbmZpZ1tcInBvcnRGYWxsYmFja1wiXT4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICBhd2FpdCBkZWxheShmYWxsYmFjay5nZXRBY3F1aXJlRGVsYXkoKSk7XG4gICAgICAgIGxldCBhY3F1aXJlZCA9IGF3YWl0IG5ldyBQcm9taXNlPGJvb2xlYW4+KHJlc29sdmUgPT4ge1xuICAgICAgICAgICAgbGV0IHJlbGF5ID0gbmV0LmNyZWF0ZVNlcnZlcihjbGllbnQgPT4ge1xuICAgICAgICAgICAgICAgIGxldCB1cHN0cmVhbSA9IG5ldC5jb25uZWN0KHsgaG9zdDogXCIxMjcuMC4wLjFcIiwgcG9ydDogc2VydmluZ1BvcnQgfSk7XG4gICAgICAgICAgICAgICAgY2xpZW50LnBpcGUodXBzdHJlYW0pO1xuICAgICAgICAgICAgICAgIHVwc3RyZWFtLnBpcGUoY2xpZW50KTtcbiAgICAgICAgICAgICAgICBsZXQgY2xlYW51cCA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY2xpZW50LmRlc3Ryb3koKTtcbiAgICAgICAgICAgICAgICAgICAgdXBzdHJlYW0uZGVzdHJveSgpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY2xpZW50Lm9uKFwiZXJyb3JcIiwgY2xlYW51cCk7XG4gICAgICAgICAgICAgICAgdXBzdHJlYW0ub24oXCJlcnJvclwiLCBjbGVhbnVwKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmVsYXkub25jZShcImVycm9yXCIsICgpID0+IHJlc29sdmUoZmFsc2UpKTtcbiAgICAgICAgICAgIHJlbGF5Lmxpc3RlbihtYWluUG9ydCwgKCkgPT4gcmVzb2x2ZSh0cnVlKSk7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoYWNxdWlyZWQpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKG1hZ2VudGEoYEFjcXVpcmVkIG1haW4gcG9ydCAke21haW5Qb3J0fSBmb3IgaHR0cHM6Ly8ke2RvbWFpbn0gKHJlbGF5aW5nIHRvIG91ciBsaXN0ZW5lciBvbiAke3NlcnZpbmdQb3J0fSlgKSk7XG4gICAgICAgICAgICAvLyBUaGUgbW91bnQgb25seSBmb3J3YXJkZWQgT1VSIHNlcnZpbmcgcG9ydDsgdGhlIG1haW4gcG9ydCBuZWVkcyBpdHMgb3duIG1hcHBpbmcgKHRoZSBwcmVkZWNlc3NvcidzIG1hcHBpbmcgcG9pbnRlZCBhdCB0aGUgc2FtZSBtYWNoaW5lK3BvcnQsIGJ1dCBkaWVzIHdpdGggaXQpXG4gICAgICAgICAgICBhd2FpdCBmb3J3YXJkUG9ydCh7IGV4dGVybmFsUG9ydDogbWFpblBvcnQsIGludGVybmFsUG9ydDogbWFpblBvcnQgfSk7XG4gICAgICAgICAgICBmYWxsYmFjay5vbkxpc3RlbmluZyhtYWluUG9ydCwgdHJ1ZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmZ1bmN0aW9uIGdldENlcnREaXNrUGF0aChkb21haW46IHN0cmluZykge1xuICAgIHJldHVybiBvcy5ob21lZGlyKCkgKyBgL2h0dHBzY2VydF8ke2RvbWFpbn0uanNvbmA7XG59XG5mdW5jdGlvbiByZWFkQ2VydEZyb21EaXNrKGRvbWFpbjogc3RyaW5nKTogeyBrZXk6IHN0cmluZzsgY2VydDogc3RyaW5nIH0gfCB1bmRlZmluZWQge1xuICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhnZXRDZXJ0RGlza1BhdGgoZG9tYWluKSwgXCJ1dGY4XCIpKSBhcyB7IGtleTogc3RyaW5nOyBjZXJ0OiBzdHJpbmcgfTtcbiAgICB9IGNhdGNoIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG59XG5mdW5jdGlvbiBnZXRSZW5ld1RpbWUoY2VydFBlbTogc3RyaW5nLCB0aHJlc2hvbGQ6IG51bWJlcikge1xuICAgIGxldCBjZXJ0T2JqID0gcGFyc2VDZXJ0KGNlcnRQZW0pO1xuICAgIGxldCBzdGFydCA9ICtuZXcgRGF0ZShjZXJ0T2JqLnZhbGlkaXR5Lm5vdEJlZm9yZSk7XG4gICAgbGV0IGVuZCA9ICtuZXcgRGF0ZShjZXJ0T2JqLnZhbGlkaXR5Lm5vdEFmdGVyKTtcbiAgICByZXR1cm4gc3RhcnQgKyAoZW5kIC0gc3RhcnQpICogdGhyZXNob2xkO1xufVxuXG4vKiogUmV0dXJucyB0aGUgY2FjaGVkIEhUVFBTIGNlcnQgZm9yIHRoZSBkb21haW4sIGNyZWF0aW5nL3JlbmV3aW5nIGl0IGZpcnN0IGlmIGl0IGlzIHBhc3QgdGhpcyBwcm9jZXNzJ3MgcmVuZXdhbCB0aHJlc2hvbGQuIFJlYWRzIHRoZSBkaXNrIGNhY2hlIG9uIGV2ZXJ5IGNhbGwsIHNvIGEgcmVuZXdhbCBkb25lIGJ5IGEgcGFyYWxsZWwgcHJvY2VzcyBpcyBwaWNrZWQgdXAgaW5zdGVhZCBvZiByZW5ld2luZyBhZ2Fpbi4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRGcmVzaEhUVFBTQ2VydChkb21haW46IHN0cmluZyk6IFByb21pc2U8eyBrZXk6IHN0cmluZzsgY2VydDogc3RyaW5nIH0+IHtcbiAgICBsZXQga2V5Q2VydCA9IHJlYWRDZXJ0RnJvbURpc2soZG9tYWluKTtcbiAgICBpZiAoa2V5Q2VydCAmJiBnZXRSZW5ld1RpbWUoa2V5Q2VydC5jZXJ0LCByZW5ld1RocmVzaG9sZCkgPiBEYXRlLm5vdygpKSB7XG4gICAgICAgIHJldHVybiBrZXlDZXJ0O1xuICAgIH1cbiAgICBpZiAoa2V5Q2VydCkge1xuICAgICAgICBjb25zb2xlLmxvZyhtYWdlbnRhKGBIVFRQUyBjZXJ0IGZvciAke2RvbWFpbn0gaXMgcGFzdCAkeyhyZW5ld1RocmVzaG9sZCAqIDEwMCkudG9GaXhlZCgwKX0lIG9mIGl0cyBsaWZldGltZSwgcmVuZXdpbmdgKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS5sb2cobWFnZW50YShgTm8gSFRUUFMgY2VydCBvbiBkaXNrIGZvciAke2RvbWFpbn0sIGNyZWF0aW5nIG9uZWApKTtcbiAgICB9XG4gICAgbGV0IGFjY291bnRLZXkgPSBhd2FpdCBnZXRBY2NvdW50S2V5KGRvbWFpbik7XG4gICAgdHJ5IHtcbiAgICAgICAga2V5Q2VydCA9IGF3YWl0IGdlbmVyYXRlQ2VydCh7IGFjY291bnRLZXksIGRvbWFpbiwgYWx0RG9tYWluczogW1wiKi5cIiArIGRvbWFpbl0gfSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBpZiAoU3RyaW5nKGUpLmluY2x1ZGVzKFwiYXV0aG9yaXphdGlvbiBtdXN0IGJlIHBlbmRpbmdcIikpIHtcbiAgICAgICAgICAgIC8vIEFub3RoZXIgcHJvY2VzcyBpcyBtaWQtcmVuZXdhbC4gV2FpdCBmb3IgaXQgdG8gZmluaXNoLCB0aGVuIHJlLWNoZWNrIHRoZSBkaXNrLlxuICAgICAgICAgICAgY29uc29sZS5sb2coYENlcnRpZmljYXRlIGF1dGhvcml6YXRpb24gaXMgcGVuZGluZyBpbiBhbm90aGVyIHByb2Nlc3MsIHdhaXRpbmcgMiBtaW51dGVzYCk7XG4gICAgICAgICAgICBhd2FpdCBkZWxheSh0aW1lSW5NaW51dGUgKiAyKTtcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCBnZXRGcmVzaEhUVFBTQ2VydChkb21haW4pO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IGU7XG4gICAgfVxuICAgIGZzLndyaXRlRmlsZVN5bmMoZ2V0Q2VydERpc2tQYXRoKGRvbWFpbiksIEpTT04uc3RyaW5naWZ5KHsga2V5OiBrZXlDZXJ0LmtleSwgY2VydDoga2V5Q2VydC5jZXJ0IH0pKTtcbiAgICByZXR1cm4geyBrZXk6IGtleUNlcnQua2V5LCBjZXJ0OiBrZXlDZXJ0LmNlcnQgfTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcnVuQ2VydFJlbmV3YWxMb29wKGRvbWFpbjogc3RyaW5nLCBvbk5ld0NlcnQ6IChrZXlDZXJ0OiB7IGtleTogc3RyaW5nOyBjZXJ0OiBzdHJpbmcgfSkgPT4gdm9pZCkge1xuICAgIGxldCBsYXN0Q2VydCA9IHJlYWRDZXJ0RnJvbURpc2soZG9tYWluKT8uY2VydDtcbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICBhd2FpdCBkZWxheShDRVJUX0NIRUNLX0lOVEVSVkFMKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGxldCBrZXlDZXJ0ID0gYXdhaXQgZ2V0RnJlc2hIVFRQU0NlcnQoZG9tYWluKTtcbiAgICAgICAgICAgIGlmIChrZXlDZXJ0LmNlcnQgIT09IGxhc3RDZXJ0KSB7XG4gICAgICAgICAgICAgICAgbGFzdENlcnQgPSBrZXlDZXJ0LmNlcnQ7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2cobWFnZW50YShgSFRUUFMgY2VydCBmb3IgJHtkb21haW59IHVwZGF0ZWQsIGFwcGx5aW5nIHRvIHJ1bm5pbmcgc2VydmVyYCkpO1xuICAgICAgICAgICAgICAgIG9uTmV3Q2VydChrZXlDZXJ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgRmFpbGVkIHRvIGNoZWNrL3JlbmV3IEhUVFBTIGNlcnQgZm9yICR7ZG9tYWlufWAsIGUpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
176
|
+
/* _JS_SOURCE_HASH = "73d4e7d18e033dcf8b735e9c48f18a2196de2a0377f4f0bb984b76ea3c86a2b6"; */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict"; var console = (function shimConsole() { let baseConsole = globalThis.console; if (typeof window !== "undefined") return baseConsole; let name = __filename.replaceAll("\\", "/").split("/").pop(); let dirName = __dirname.replaceAll("\\", "/").split("/").pop(); let context = { __FILE__: __filename, __DIR__: __dirname, __NAME__: name, __DIRNAME__: dirName }; let newConsole = { ...baseConsole }; for (let shim of ["log", "info", "warn", "error"]) { newConsole[shim] = (...args) => { args.push(context); baseConsole[shim](...args); }; } newConsole.__context = context; return newConsole; })(); "use strict";
|
|
2
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
3
|
return (mod && mod.__esModule && mod.default) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
@@ -42,4 +42,4 @@ function getKeyStore(appName, key) {
|
|
|
42
42
|
}
|
|
43
43
|
exports.getKeyStore = getKeyStore;
|
|
44
44
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc2lzdGVudExvY2FsU3RvcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInBlcnNpc3RlbnRMb2NhbFN0b3JhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsbURBQWtEO0FBQ2xELDRDQUFvQjtBQUNwQiw0Q0FBb0I7QUFHcEIsU0FBZ0IsV0FBVyxDQUFJLE9BQWUsRUFBRSxHQUFXO0lBSXZELElBQUksSUFBQSxhQUFNLEdBQUUsRUFBRSxDQUFDO1FBQ1gsSUFBSSxJQUFJLEdBQUcsWUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLGFBQWEsT0FBTyxHQUFHLEdBQUcsR0FBRyxHQUFHLE9BQU8sQ0FBQztRQUNsRSxPQUFPO1lBQ0gsR0FBRztnQkFDQyxJQUFJLFFBQVEsR0FBdUIsU0FBUyxDQUFDO2dCQUM3QyxJQUFJLENBQUM7b0JBQUMsUUFBUSxHQUFHLFlBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUFDLENBQUM7Z0JBQUMsV0FBTSxDQUFDLENBQUMsQ0FBQztnQkFDM0QsSUFBSSxDQUFDLFFBQVE7b0JBQUUsT0FBTyxTQUFTLENBQUM7Z0JBQ2hDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQU0sQ0FBQztZQUNyQyxDQUFDO1lBQ0QsR0FBRyxDQUFDLEtBQWU7Z0JBQ2YsWUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ2xELENBQUM7U0FDSixDQUFDO0lBQ04sQ0FBQztTQUFNLENBQUM7UUFDSixPQUFPO1lBQ0gsR0FBRztnQkFDQyxJQUFJLElBQUksR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNyQyxJQUFJLENBQUMsSUFBSTtvQkFBRSxPQUFPLFNBQVMsQ0FBQztnQkFDNUIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBTSxDQUFDO1lBQ2pDLENBQUM7WUFDRCxHQUFHLENBQUMsS0FBZTtnQkFDZixZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDckQsQ0FBQztTQUNKLENBQUM7SUFDTixDQUFDO0FBQ0wsQ0FBQztBQTdCRCxrQ0E2QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc05vZGUgfSBmcm9tIFwic29ja2V0LWZ1bmN0aW9uL3NyYy9taXNjXCI7XG5pbXBvcnQgZnMgZnJvbSBcImZzXCI7XG5pbXBvcnQgb3MgZnJvbSBcIm9zXCI7XG5pbXBvcnQgeyBjYWNoZSB9IGZyb20gXCJzb2NrZXQtZnVuY3Rpb24vc3JjL2NhY2hpbmdcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEtleVN0b3JlPFQ+KGFwcE5hbWU6IHN0cmluZywga2V5OiBzdHJpbmcpOiB7XG4gICAgZ2V0KCk6IFQgfCB1bmRlZmluZWQ7XG4gICAgc2V0KHZhbHVlOiBUIHwgbnVsbCk6IHZvaWQ7XG59IHtcbiAgICBpZiAoaXNOb2RlKCkpIHtcbiAgICAgICAgbGV0IHBhdGggPSBvcy5ob21lZGlyKCkgKyBgL2tleXN0b3JlXyR7YXBwTmFtZX1fYCArIGtleSArIFwiLmpzb25cIjtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGdldCgpIHtcbiAgICAgICAgICAgICAgICBsZXQgY29udGVudHM6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICB0cnkgeyBjb250ZW50cyA9IGZzLnJlYWRGaWxlU3luYyhwYXRoLCBcInV0ZjhcIik7IH0gY2F0Y2ggeyB9XG4gICAgICAgICAgICAgICAgaWYgKCFjb250ZW50cykgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShjb250ZW50cykgYXMgVDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXQodmFsdWU6IFQgfCBudWxsKSB7XG4gICAgICAgICAgICAgICAgZnMud3JpdGVGaWxlU3luYyhwYXRoLCBKU09OLnN0cmluZ2lmeSh2YWx1ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBnZXQoKSB7XG4gICAgICAgICAgICAgICAgbGV0IGpzb24gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpO1xuICAgICAgICAgICAgICAgIGlmICghanNvbikgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShqc29uKSBhcyBUO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNldCh2YWx1ZTogVCB8IG51bGwpIHtcbiAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShrZXksIEpTT04uc3RyaW5naWZ5KHZhbHVlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxufSJdfQ==
|
|
45
|
-
/* _JS_SOURCE_HASH = "
|
|
45
|
+
/* _JS_SOURCE_HASH = "1de768d454551da4b69d39599556f1837a88a5869dfe4a179b76169aa76dd077"; */
|
package/misc/https/hostServer.ts
CHANGED
|
@@ -107,6 +107,9 @@ async function runMainPortAcquireLoop(domain: string, mainPort: number, servingP
|
|
|
107
107
|
let acquired = await new Promise<boolean>(resolve => {
|
|
108
108
|
let relay = net.createServer(client => {
|
|
109
109
|
let upstream = net.connect({ host: "127.0.0.1", port: servingPort });
|
|
110
|
+
// Without this every relayed request pays the ~40ms delayed-ACK timer: a call is a small write (often a header then a body), Nagle holds the second write until the first is acknowledged, and the peer has nothing to piggyback the ACK on. Measured as 43ms per call through the relay versus 1ms direct.
|
|
111
|
+
client.setNoDelay(true);
|
|
112
|
+
upstream.setNoDelay(true);
|
|
110
113
|
client.pipe(upstream);
|
|
111
114
|
upstream.pipe(client);
|
|
112
115
|
let cleanup = () => {
|
package/package.json
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict"; var console = (function shimConsole() { let baseConsole = globalThis.console; if (typeof window !== "undefined") return baseConsole; let name = __filename.replaceAll("\\", "/").split("/").pop(); let dirName = __dirname.replaceAll("\\", "/").split("/").pop(); let context = { __FILE__: __filename, __DIR__: __dirname, __NAME__: name, __DIRNAME__: dirName }; let newConsole = { ...baseConsole }; for (let shim of ["log", "info", "warn", "error"]) { newConsole[shim] = (...args) => { args.push(context); baseConsole[shim](...args); }; } newConsole.__context = context; return newConsole; })(); "use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true , configurable: true});
|
|
3
3
|
//exports.observer = void 0;
|
|
4
4
|
process.env.NODE_ENV = "production";
|
|
@@ -34,4 +34,4 @@ function observer(Constructor) {
|
|
|
34
34
|
}
|
|
35
35
|
exports.observer = observer;
|
|
36
36
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJvYnNlcnZlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEdBQUcsWUFBWSxDQUFDO0FBR3BDLCtCQUE0QztBQUM1QyxtRUFBcUU7QUFFckUsSUFBSSxvQkFBb0IsR0FBRyxDQUFDLENBQUM7QUFDN0IsU0FBZ0IsUUFBUSxDQVNwQixXQUFjO0lBRWQsSUFBSSxJQUFJLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQztJQUM1QixPQUFPLEtBQU0sU0FBUSxXQUFXO1FBQXpCOztZQUdILGFBQVEsR0FBRyxJQUFJLGVBQVEsQ0FBQyxVQUFVLElBQUksSUFBSSxvQkFBb0IsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFO2dCQUNyRSxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDeEIsQ0FBQyxDQUFDLENBQUM7UUFjUCxDQUFDO1FBbEJHLGFBQWE7UUFDYixNQUFNLEtBQUssSUFBSSxLQUFLLE9BQU8sV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFJOUMsb0JBQW9COztZQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3hCLE1BQUEsS0FBSyxDQUFDLG9CQUFvQixvREFBSSxDQUFDO1FBQ25DLENBQUM7UUFDRCxNQUFNLENBQUMsR0FBRyxJQUFXO1lBQ2pCLElBQUksTUFBNkIsQ0FBQztZQUNsQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUU7Z0JBQ3JCLElBQUEsc0JBQVksRUFBQyxHQUFHLEVBQUU7b0JBQ2QsTUFBTSxHQUFJLEtBQUssQ0FBQyxNQUFjLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztnQkFDNUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxTQUFTLENBQUMsQ0FBQztZQUN6QixDQUFDLENBQUMsQ0FBQztZQUNILE9BQU8sTUFBTSxDQUFDO1FBQ2xCLENBQUM7S0FDSixDQUFDO0FBQ04sQ0FBQztBQWhDRCw0QkFnQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJwcm9jZXNzLmVudi5OT0RFX0VOViA9IFwicHJvZHVjdGlvblwiO1xuXG5pbXBvcnQgKiBhcyBwcmVhY3QgZnJvbSBcInByZWFjdFwiO1xuaW1wb3J0IHsgb2JzZXJ2YWJsZSwgUmVhY3Rpb24gfSBmcm9tIFwibW9ieFwiO1xuaW1wb3J0IHsgbWVhc3VyZUJsb2NrIH0gZnJvbSBcInNvY2tldC1mdW5jdGlvbi9zcmMvcHJvZmlsaW5nL21lYXN1cmVcIjtcblxubGV0IGdsb2JhbENvbnN0cnVjdE9yZGVyID0gMTtcbmV4cG9ydCBmdW5jdGlvbiBvYnNlcnZlcjxcbiAgICBUIGV4dGVuZHMge1xuICAgICAgICBuZXcoLi4uYXJnczogYW55W10pOiB7XG4gICAgICAgICAgICByZW5kZXIoKTogcHJlYWN0LkNvbXBvbmVudENoaWxkO1xuICAgICAgICAgICAgZm9yY2VVcGRhdGUoY2FsbGJhY2s/OiAoKSA9PiB2b2lkKTogdm9pZDtcbiAgICAgICAgICAgIGNvbXBvbmVudFdpbGxVbm1vdW50PygpOiB2b2lkO1xuICAgICAgICB9XG4gICAgfVxuPihcbiAgICBDb25zdHJ1Y3RvcjogVFxuKSB7XG4gICAgbGV0IG5hbWUgPSBDb25zdHJ1Y3Rvci5uYW1lO1xuICAgIHJldHVybiBjbGFzcyBleHRlbmRzIENvbnN0cnVjdG9yIHtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBzdGF0aWMgZ2V0IG5hbWUoKSB7IHJldHVybiBDb25zdHJ1Y3Rvci5uYW1lOyB9XG4gICAgICAgIHJlYWN0aW9uID0gbmV3IFJlYWN0aW9uKGByZW5kZXIuJHtuYW1lfS4ke2dsb2JhbENvbnN0cnVjdE9yZGVyKyt9YCwgKCkgPT4ge1xuICAgICAgICAgICAgc3VwZXIuZm9yY2VVcGRhdGUoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgICAgICAgdGhpcy5yZWFjdGlvbi5kaXNwb3NlKCk7XG4gICAgICAgICAgICBzdXBlci5jb21wb25lbnRXaWxsVW5tb3VudD8uKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmVuZGVyKC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgICAgICAgICBsZXQgb3V0cHV0OiBwcmVhY3QuQ29tcG9uZW50Q2hpbGQ7XG4gICAgICAgICAgICB0aGlzLnJlYWN0aW9uLnRyYWNrKCgpID0+IHtcbiAgICAgICAgICAgICAgICBtZWFzdXJlQmxvY2soKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSAoc3VwZXIucmVuZGVyIGFzIGFueSkoLi4uYXJncyk7XG4gICAgICAgICAgICAgICAgfSwgYCR7bmFtZX18cmVuZGVyYCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBvdXRwdXQ7XG4gICAgICAgIH1cbiAgICB9O1xufSJdfQ==
|
|
37
|
-
/* _JS_SOURCE_HASH = "
|
|
37
|
+
/* _JS_SOURCE_HASH = "b7bbbb9624b8ed4d04e02703f24baf164203e8dcc72c9f9b90cb070154fbb262"; */
|