@workflow/cli 4.2.7 → 4.2.9
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/dist/base.js +1 -1
- package/dist/commands/build.js +1 -1
- package/dist/commands/cancel.js +1 -1
- package/dist/commands/dev.js +1 -1
- package/dist/commands/health.js +1 -1
- package/dist/commands/init.js +1 -1
- package/dist/commands/inspect.js +1 -1
- package/dist/commands/start.js +1 -1
- package/dist/commands/transform.js +1 -1
- package/dist/commands/validate.js +1 -1
- package/dist/commands/web.js +1 -1
- package/dist/lib/config/log.js +1 -1
- package/dist/lib/config/types.js +1 -1
- package/dist/lib/config/workflow-config.js +1 -1
- package/dist/lib/inspect/auth.js +1 -1
- package/dist/lib/inspect/env.js +1 -1
- package/dist/lib/inspect/flags.js +1 -1
- package/dist/lib/inspect/hydration.js +1 -1
- package/dist/lib/inspect/output.js +1 -1
- package/dist/lib/inspect/pagination.js +1 -1
- package/dist/lib/inspect/run.js +1 -1
- package/dist/lib/inspect/setup.js +1 -1
- package/dist/lib/inspect/stream.js +1 -1
- package/dist/lib/inspect/terminal-utils.js +1 -1
- package/dist/lib/inspect/vercel-api.js +1 -1
- package/dist/lib/inspect/vercel-link.js +1 -1
- package/dist/lib/inspect/web.js +1 -1
- package/dist/lib/update-check.js +1 -1
- package/package.json +11 -11
- package/dist/base.js.map +0 -1
- package/dist/commands/build.js.map +0 -1
- package/dist/commands/cancel.js.map +0 -1
- package/dist/commands/dev.js.map +0 -1
- package/dist/commands/health.js.map +0 -1
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/inspect.js.map +0 -1
- package/dist/commands/start.js.map +0 -1
- package/dist/commands/transform.js.map +0 -1
- package/dist/commands/validate.js.map +0 -1
- package/dist/commands/web.js.map +0 -1
- package/dist/lib/config/log.js.map +0 -1
- package/dist/lib/config/types.js.map +0 -1
- package/dist/lib/config/workflow-config.js.map +0 -1
- package/dist/lib/inspect/auth.js.map +0 -1
- package/dist/lib/inspect/env.js.map +0 -1
- package/dist/lib/inspect/flags.js.map +0 -1
- package/dist/lib/inspect/hydration.js.map +0 -1
- package/dist/lib/inspect/output.js.map +0 -1
- package/dist/lib/inspect/pagination.js.map +0 -1
- package/dist/lib/inspect/run.js.map +0 -1
- package/dist/lib/inspect/setup.js.map +0 -1
- package/dist/lib/inspect/stream.js.map +0 -1
- package/dist/lib/inspect/terminal-utils.js.map +0 -1
- package/dist/lib/inspect/vercel-api.js.map +0 -1
- package/dist/lib/inspect/vercel-link.js.map +0 -1
- package/dist/lib/inspect/web.js.map +0 -1
- package/dist/lib/update-check.js.map +0 -1
|
@@ -280,4 +280,4 @@ export async function hydrateResourceIO(resource, keyResolver) {
|
|
|
280
280
|
// Post-process: swap encrypted Uint8Arrays and expired stubs for CLI-styled objects
|
|
281
281
|
return replaceEncryptedAndExpiredWithRef(hydrated);
|
|
282
282
|
}
|
|
283
|
-
//# sourceMappingURL=hydration.js.map
|
|
283
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHlkcmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9pbnNwZWN0L2h5ZHJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUVILE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLGlCQUFpQixJQUFJLHdCQUF3QixFQUM3QyxlQUFlLEVBQ2YsYUFBYSxFQUNiLHFCQUFxQixHQUV0QixNQUFNLHFDQUFxQyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFXMUIsb0RBQW9EO0FBQ3BELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsZ0JBQWdCLEVBQ2hCLHFCQUFxQixFQUNyQixnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZixVQUFVLEVBQ1YsV0FBVyxFQUVYLGVBQWUsRUFFZixVQUFVLEdBQ1gsTUFBTSxxQ0FBcUMsQ0FBQztBQUU3Qyw4RUFBOEU7QUFDOUUsMkNBQTJDO0FBQzNDLDhFQUE4RTtBQUU5RTs7O0dBR0c7QUFDSCxNQUFNLG1CQUFvQixTQUFRLGdCQUFnQjtJQUNoRCxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FDZCxNQUFjLEVBQ2QsT0FBbUQ7UUFFbkQsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDekUsTUFBTSxNQUFNLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM1QyxNQUFNLGVBQWUsR0FBRyxNQUFN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QztRQUNoRSxLQUFLLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDdkUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFlBQVksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNsQyxDQUFDO1FBQ0QsTUFBTSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELE9BQU8sTUFBVyxDQUFDO0FBQ3JCLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsaUJBQWlCLENBQ3JDLFFBQVcsRUFDWCxXQUFtQztJQUVuQyx3RUFBd0U7SUFDeEUsTUFBTSxZQUFZLEdBQUcsTUFBTSxrQkFBa0IsQ0FDM0MsUUFBZSxFQUNmLFdBQVcsSUFBSSxJQUFJLENBQ3BCLENBQUM7SUFDRixNQUFNLFFBQVEsR0FBRyx3QkFBd0IsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLENBQU0sQ0FBQztJQUM1RSxvRkFBb0Y7SUFDcEYsT0FBTyxpQ0FBaUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUNyRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDTEktc3BlY2lmaWMgaHlkcmF0aW9uIGZvciBvMTF5IGRpc3BsYXkuXG4gKlxuICogTm9kZS5qcyByZXZpdmVycyB0aGF0IHVzZSBgQnVmZmVyLmZyb20oKWAgZm9yIGJhc2U2NCBkZWNvZGluZyBhbmQgYWRkXG4gKiBgdXRpbC5pbnNwZWN0LmN1c3RvbWAgdG8gQ2xhc3NJbnN0YW5jZVJlZiBmb3IgcHJldHR5IENMSSBvdXRwdXQuXG4gKi9cblxuaW1wb3J0IHsgaW5zcGVjdCB9IGZyb20gJ25vZGU6dXRpbCc7XG5pbXBvcnQgeyBtYXliZURlY3J5cHQgfSBmcm9tICdAd29ya2Zsb3cvY29yZS9zZXJpYWxpemF0aW9uJztcbmltcG9ydCB7XG4gIENsYXNzSW5zdGFuY2VSZWYsXG4gIGV4dHJhY3RDbGFzc05hbWUsXG4gIGh5ZHJhdGVSZXNvdXJjZUlPIGFzIGh5ZHJhdGVSZXNvdXJjZUlPR2VuZXJpYyxcbiAgaXNFbmNyeXB0ZWREYXRhLFxuICBpc0V4cGlyZWRTdHViLFxuICBvYnNlcnZhYmlsaXR5UmV2aXZlcnMsXG4gIHR5cGUgUmV2aXZlcnMsXG59IGZyb20gJ0B3b3JrZmxvdy9jb3JlL3NlcmlhbGl6YXRpb24tZm9ybWF0JztcbmltcG9ydCB7IHBhcnNlQ2xhc3NOYW1lIH0gZnJvbSAnQHdvcmtmbG93L3V0aWxzL3BhcnNlLW5hbWUnO1xuaW1wb3J0IGNoYWxrIGZyb20gJ2NoYWxrJztcblxuLyoqXG4gKiBBIGZ1bmN0aW9uIHRoYXQgcmVzb2x2ZXMgYW4gZW5jcnlwdGlvbiBrZXkgZm9yIGEgcnVuLCBvciBudWxsIHRvIHNraXBcbiAqIGRlY3J5cHRpb24uIEFjY2VwdHMgYSBydW5JZCDigJQgdGhlIHJlc29sdmVyIGlzIHJlc3BvbnNpYmxlIGZvciBsb29raW5nXG4gKiB1cCB0aGUgV29ya2Zsb3dSdW4gaW50ZXJuYWxseSAod2l0aCBjYWNoaW5nKSBpZiB0aGUgV29ybGQgbmVlZHMgaXQuXG4gKi9cbmV4cG9ydCB0eXBlIEVuY3J5cHRpb25LZXlSZXNvbHZlciA9XG4gIHwgKChydW5JZDogc3RyaW5nKSA9PiBQcm9taXNlPFVpbnQ4QXJyYXkgfCB1bmRlZmluZWQ+KVxuICB8IG51bGw7XG5cbi8vIFJlLWV4cG9ydCB0eXBlcyBhbmQgdXRpbGl0aWVzIHRoYXQgY29uc3VtZXJzIG5lZWRcbmV4cG9ydCB7XG4gIENMQVNTX0lOU1RBTkNFX1JFRl9UWVBFLFxuICBDbGFzc0luc3RhbmNlUmVmLFxuICBFTkNSWVBURURfUExBQ0VIT0xERVIsXG4gIGV4dHJhY3RTdHJlYW1JZHMsXG4gIGlzQ2xhc3NJbnN0YW5jZVJlZixcbiAgaXNFbmNyeXB0ZWREYXRhLFxuICBpc1N0cmVhbUlkLFxuICBpc1N0cmVhbVJlZixcbiAgdHlwZSBSZXZpdmVycyxcbiAgU1RSRUFNX1JFRl9UWVBFLFxuICB0eXBlIFN0cmVhbVJlZixcbiAgdHJ1bmNhdGVJZCxcbn0gZnJvbSAnQHdvcmtmbG93L2NvcmUvc2VyaWFsaXphdGlvbi1mb3JtYXQnO1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENMSSBDbGFzc0luc3RhbmNlUmVmIHdpdGggaW5zcGVjdC5jdXN0b21cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKipcbiAqIEV4dGVuZGVkIENsYXNzSW5zdGFuY2VSZWYgd2l0aCBOb2RlLmpzIGB1dGlsLmluc3BlY3QuY3VzdG9tYCBmb3JcbiAqIHByZXR0eSBDTEkgb3V0cHV0OiBgQ2xhc3NOYW1lQGZpbGVuYW1lIHsgLi4uZGF0YSB9YFxuICovXG5jbGFzcyBDTElDbGFzc0luc3RhbmNlUmVmIGV4dGVuZHMgQ2xhc3NJbnN0YW5jZVJlZiB7XG4gIFtpbnNwZWN0LmN1c3RvbV0oXG4gICAgX2RlcHRoOiBudW1iZXIsXG4gICAgb3B0aW9uczogaW1wb3J0KCdub2RlOnV0aWwnKS5JbnNwZWN0T3B0aW9uc1N0eWxpemVkXG4gICk6IHN0cmluZyB7XG4gICAgY29uc3QgZGF0YVN0ciA9IGluc3BlY3QodGhpcy5kYXRhLCB7IC4uLm9wdGlvbnMsIGRlcHRoOiBvcHRpb25zLmRlcHRoIH0pO1xuICAgIGNvbnN0IHBhcnNlZCA9IHBhcnNlQ2xhc3NOYW1lKHRoaXMuY2xhc3NJZCk7XG4gICAgY29uc3QgbW9kdWxlU3BlY2lmaWVyID0gcGFyc2VkPy5tb2R1bGVTcGVjaWZpZXIgPz8gdGhpcy5jbGFzc0lkO1xuICAgIGNvbnN0IGZpbGVOYW1lID0gbW9kdWxlU3BlY2lmaWVyLnNwbGl0KCcvJykucG9wKCkgPz8gbW9kdWxlU3BlY2lmaWVyO1xuICAgIGNvbnN0IHN0eWxlZEZpbGVOYW1lID0gb3B0aW9ucy5zdHlsaXplXG4gICAgICA/IG9wdGlvbnMuc3R5bGl6ZShgQCR7ZmlsZU5hbWV9YCwgJ3VuZGVmaW5lZCcpXG4gICAgICA6IGBAJHtmaWxlTmFtZX1gO1xuICAgIHJldHVybiBgJHt0aGlzLmNsYXNzTmFtZX0ke3N0eWxlZEZpbGVOYW1lfSAke2RhdGFTdHJ9YDtcbiAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENMSSBlbmNyeXB0ZWQgZGF0YSBwbGFjZWhvbGRlciB3aXRoIGN1c3RvbSBpbnNwZWN0XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqXG4gKiBQbGFjZWhvbGRlciBvYmplY3QgZm9yIGVuY3J5cHRlZCBkYXRhIGZpZWxkcyBpbiBDTEkgb3V0cHV0LlxuICpcbiAqIFVzZXMgYHV0aWwuaW5zcGVjdC5jdXN0b21gIHRvIHJlbmRlciBhcyBhIHN0eWxlZCwgdW5xdW90ZWQgc3RyaW5nXG4gKiAoZS5nLiwgZGltIHllbGxvdyBcIvCflJIgRW5jcnlwdGVkXCIpIGluc3RlYWQgb2YgYSBwbGFpbiBxdW90ZWQgc3RyaW5nLlxuICogQWxzbyBwcm92aWRlcyBgdG9KU09OKClgIGZvciBgLS1qc29uYCBvdXRwdXQuXG4gKi9cbmNsYXNzIEVuY3J5cHRlZERhdGFSZWYge1xuICBbaW5zcGVjdC5jdXN0b21dKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGNoYWxrLmRpbS55ZWxsb3coJ1xcdXsxRjUxMn0gRW5jcnlwdGVkJyk7XG4gIH1cblxuICB0b0pTT04oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ1xcdXsxRjUxMn0gRW5jcnlwdGVkJztcbiAgfVxuXG4gIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdcXHV7MUY1MTJ9IEVuY3J5cHRlZCc7XG4gIH1cbn1cblxuLyoqIFNpbmdsZXRvbiBlbmNyeXB0ZWQgZGF0YSBwbGFjZWhvbGRlciBmb3IgQ0xJIGRpc3BsYXkgKi9cbmNvbnN0IEVOQ1JZUFRFRF9SRUYgPSBuZXcgRW5jcnlwdGVkRGF0YVJlZigpO1xuXG4vKiogQ2hlY2sgaWYgYSB2YWx1ZSBpcyBhbiBFbmNyeXB0ZWREYXRhUmVmIChmb3IgY3VzdG9tIHRhYmxlIGZvcm1hdHRpbmcgaW4gQ0xJKSAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRW5jcnlwdGVkUmVmKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgRW5jcnlwdGVkRGF0YVJlZiB7XG4gIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIEVuY3J5cHRlZERhdGFSZWY7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQ0xJIGV4cGlyZWQgZGF0YSBwbGFjZWhvbGRlciB3aXRoIGN1c3RvbSBpbnNwZWN0XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqXG4gKiBQbGFjZWhvbGRlciBvYmplY3QgZm9yIGV4cGlyZWQgZGF0YSBmaWVsZHMgaW4gQ0xJIG91dHB1dC5cbiAqXG4gKiBVc2VzIGB1dGlsLmluc3BlY3QuY3VzdG9tYCB0byByZW5kZXIgYXMgYSBzdHlsZWQsIHVucXVvdGVkIHN0cmluZ1xuICogKGUuZy4sIGRpbSBncmF5IFwiPGRhdGEgZXhwaXJlZD5cIikgaW5zdGVhZCBvZiBhIHJhdyBzdHViIG9iamVjdC5cbiAqIEFsc28gcHJvdmlkZXMgYHRvSlNPTigpYCBmb3IgYC0tanNvbmAgb3V0cHV0LlxuICovXG5jbGFzcyBFeHBpcmVkRGF0YVJlZiB7XG4gIFtpbnNwZWN0LmN1c3RvbV0oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gY2hhbGsuZ3JheSgnPGRhdGEgZXhwaXJlZD4nKTtcbiAgfVxuXG4gIHRvSlNPTigpOiBzdHJpbmcge1xuICAgIHJldHVybiAnPGRhdGEgZXhwaXJlZD4nO1xuICB9XG5cbiAgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJzxkYXRhIGV4cGlyZWQ+JztcbiAgfVxufVxuXG4vKiogU2luZ2xldG9uIGV4cGlyZWQgZGF0YSBwbGFjZWhvbGRlciBmb3IgQ0xJIGRpc3BsYXkgKi9cbmNvbnN0IEVYUElSRURfUkVGID0gbmV3IEV4cGlyZWREYXRhUmVmKCk7XG5cbi8qKiBDaGVjayBpZiBhIHZhbHVlIGlzIGFuIEV4cGlyZWREYXRhUmVmIChmb3IgY3VzdG9tIHRhYmxlIGZvcm1hdHRpbmcgaW4gQ0xJKSAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRXhwaXJlZFJlZih2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIEV4cGlyZWREYXRhUmVmIHtcbiAgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgRXhwaXJlZERhdGFSZWY7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQ0xJIHJldml2ZXJzIChOb2RlLmpzLCB1c2VzIEJ1ZmZlcilcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q0xJUmV2aXZlcnMoKTogUmV2aXZlcnMge1xuICBmdW5jdGlvbiByZXZpdmVBcnJheUJ1ZmZlcih2YWx1ZTogc3RyaW5nKTogQXJyYXlCdWZmZXIge1xuICAgIGNvbnN0IGJhc2U2NCA9IHZhbHVlID09PSAnLicgPyAnJyA6IHZhbHVlO1xuICAgIGNvbnN0IGJ1ZmZlciA9IEJ1ZmZlci5mcm9tKGJhc2U2NCwgJ2Jhc2U2NCcpO1xuICAgIGNvbnN0IGFycmF5QnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKGJ1ZmZlci5sZW5ndGgpO1xuICAgIGNvbnN0IHVpbnQ4QXJyYXkgPSBuZXcgVWludDhBcnJheShhcnJheUJ1ZmZlcik7XG4gICAgdWludDhBcnJheS5zZXQoYnVmZmVyKTtcbiAgICByZXR1cm4gYXJyYXlCdWZmZXI7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIEFycmF5QnVmZmVyOiByZXZpdmVBcnJheUJ1ZmZlcixcbiAgICBCaWdJbnQ6ICh2YWx1ZTogc3RyaW5nKSA9PiBCaWdJbnQodmFsdWUpLFxuICAgIEJpZ0ludDY0QXJyYXk6ICh2YWx1ZTogc3RyaW5nKSA9PlxuICAgICAgbmV3IEJpZ0ludDY0QXJyYXkocmV2aXZlQXJyYXlCdWZmZXIodmFsdWUpKSxcbiAgICBCaWdVaW50NjRBcnJheTogKHZhbHVlOiBzdHJpbmcpID0+XG4gICAgICBuZXcgQmlnVWludDY0QXJyYXkocmV2aXZlQXJyYXlCdWZmZXIodmFsdWUpKSxcbiAgICBEYXRlOiAodmFsdWUpID0+IG5ldyBEYXRlKHZhbHVlKSxcbiAgICBFcnJvcjogKHZhbHVlKSA9PiB7XG4gICAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcih2YWx1ZS5tZXNzYWdlKTtcbiAgICAgIGVycm9yLm5hbWUgPSB2YWx1ZS5uYW1lO1xuICAgICAgZXJyb3Iuc3RhY2sgPSB2YWx1ZS5zdGFjaztcbiAgICAgIHJldHVybiBlcnJvcjtcbiAgICB9LFxuICAgIEZsb2F0MzJBcnJheTogKHZhbHVlOiBzdHJpbmcpID0+IG5ldyBGbG9hdDMyQXJyYXkocmV2aXZlQXJyYXlCdWZmZXIodmFsdWUpKSxcbiAgICBGbG9hdDY0QXJyYXk6ICh2YWx1ZTogc3RyaW5nKSA9PiBuZXcgRmxvYXQ2NEFycmF5KHJldml2ZUFycmF5QnVmZmVyKHZhbHVlKSksXG4gICAgSGVhZGVyczogKHZhbHVlKSA9PiBuZXcgSGVhZGVycyh2YWx1ZSksXG4gICAgUmVxdWVzdDogKHZhbHVlKSA9PiB7XG4gICAgICAvLyBiaW9tZS1pZ25vcmUgbGludC9jb21wbGV4aXR5L3VzZUFycm93RnVuY3Rpb246IGFycm93IGZ1bmN0aW9ucyBoYXZlIG5vIC5wcm90b3R5cGVcbiAgICAgIGNvbnN0IGN0b3IgPSB7IFJlcXVlc3Q6IGZ1bmN0aW9uICgpIHt9IH0uUmVxdWVzdCE7XG4gICAgICBjb25zdCBvYmogPSBPYmplY3QuY3JlYXRlKGN0b3IucHJvdG90eXBlKTtcbiAgICAgIE9iamVjdC5hc3NpZ24ob2JqLCB7XG4gICAgICAgIG1ldGhvZDogdmFsdWUubWV0aG9kLFxuICAgICAgICB1cmw6IHZhbHVlLnVybCxcbiAgICAgICAgaGVhZGVyczogbmV3IEhlYWRlcnModmFsdWUuaGVhZGVycyksXG4gICAgICAgIGJvZHk6IHZhbHVlLmJvZHksXG4gICAgICAgIGR1cGxleDogdmFsdWUuZHVwbGV4LFxuICAgICAgICAuLi4odmFsdWUucmVzcG9uc2VXcml0YWJsZVxuICAgICAgICAgID8geyByZXNwb25zZVdyaXRhYmxlOiB2YWx1ZS5yZXNwb25zZVdyaXRhYmxlIH1cbiAgICAgICAgICA6IHt9KSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIG9iajtcbiAgICB9LFxuICAgIFJlc3BvbnNlOiAodmFsdWUpID0+IHtcbiAgICAgIC8vIGJpb21lLWlnbm9yZSBsaW50L2NvbXBsZXhpdHkvdXNlQXJyb3dGdW5jdGlvbjogYXJyb3cgZnVuY3Rpb25zIGhhdmUgbm8gLnByb3RvdHlwZVxuICAgICAgY29uc3QgY3RvciA9IHsgUmVzcG9uc2U6IGZ1bmN0aW9uICgpIHt9IH0uUmVzcG9uc2UhO1xuICAgICAgY29uc3Qgb2JqID0gT2JqZWN0LmNyZWF0ZShjdG9yLnByb3RvdHlwZSk7XG4gICAgICBPYmplY3QuYXNzaWduKG9iaiwge1xuICAgICAgICBzdGF0dXM6IHZhbHVlLnN0YXR1cyxcbiAgICAgICAgc3RhdHVzVGV4dDogdmFsdWUuc3RhdHVzVGV4dCxcbiAgICAgICAgdXJsOiB2YWx1ZS51cmwsXG4gICAgICAgIGhlYWRlcnM6IG5ldyBIZWFkZXJzKHZhbHVlLmhlYWRlcnMpLFxuICAgICAgICBib2R5OiB2YWx1ZS5ib2R5LFxuICAgICAgICByZWRpcmVjdGVkOiB2YWx1ZS5yZWRpcmVjdGVkLFxuICAgICAgICB0eXBlOiB2YWx1ZS50eXBlLFxuICAgICAgfSk7XG4gICAgICByZXR1cm4gb2JqO1xuICAgIH0sXG4gICAgSW50OEFycmF5OiAodmFsdWU6IHN0cmluZykgPT4gbmV3IEludDhBcnJheShyZXZpdmVBcnJheUJ1ZmZlcih2YWx1ZSkpLFxuICAgIEludDE2QXJyYXk6ICh2YWx1ZTogc3RyaW5nKSA9PiBuZXcgSW50MTZBcnJheShyZXZpdmVBcnJheUJ1ZmZlcih2YWx1ZSkpLFxuICAgIEludDMyQXJyYXk6ICh2YWx1ZTogc3RyaW5nKSA9PiBuZXcgSW50MzJBcnJheShyZXZpdmVBcnJheUJ1ZmZlcih2YWx1ZSkpLFxuICAgIE1hcDogKHZhbHVlKSA9PiBuZXcgTWFwKHZhbHVlKSxcbiAgICBSZWdFeHA6ICh2YWx1ZSkgPT4gbmV3IFJlZ0V4cCh2YWx1ZS5zb3VyY2UsIHZhbHVlLmZsYWdzKSxcbiAgICAvLyBPMTF5LXNwZWNpZmljIHJldml2ZXJzIChzdHJlYW1zLCBzdGVwIGZ1bmN0aW9ucyDihpIgZGlzcGxheSBvYmplY3RzKS5cbiAgICAvLyBTcHJlYWQgRklSU1Qgc28gQ0xJLXNwZWNpZmljIG92ZXJyaWRlcyBiZWxvdyB0YWtlIHByZWNlZGVuY2UuXG4gICAgLi4ub2JzZXJ2YWJpbGl0eVJldml2ZXJzLFxuICAgIC8vIENMSS1zcGVjaWZpYyBvdmVycmlkZXMgZm9yIGNsYXNzIGluc3RhbmNlcyB3aXRoIGluc3BlY3QuY3VzdG9tXG4gICAgQ2xhc3M6ICh2YWx1ZSkgPT4gYDxjbGFzczoke2V4dHJhY3RDbGFzc05hbWUodmFsdWUuY2xhc3NJZCl9PmAsXG4gICAgSW5zdGFuY2U6ICh2YWx1ZSkgPT5cbiAgICAgIG5ldyBDTElDbGFzc0luc3RhbmNlUmVmKFxuICAgICAgICBleHRyYWN0Q2xhc3NOYW1lKHZhbHVlLmNsYXNzSWQpLFxuICAgICAgICB2YWx1ZS5jbGFzc0lkLFxuICAgICAgICB2YWx1ZS5kYXRhXG4gICAgICApLFxuICAgIFNldDogKHZhbHVlKSA9PiBuZXcgU2V0KHZhbHVlKSxcbiAgICBVUkw6ICh2YWx1ZSkgPT4gbmV3IFVSTCh2YWx1ZSksXG4gICAgVVJMU2VhcmNoUGFyYW1zOiAodmFsdWUpID0+IG5ldyBVUkxTZWFyY2hQYXJhbXModmFsdWUgPT09ICcuJyA/ICcnIDogdmFsdWUpLFxuICAgIFVpbnQ4QXJyYXk6ICh2YWx1ZTogc3RyaW5nKSA9PiBuZXcgVWludDhBcnJheShyZXZpdmVBcnJheUJ1ZmZlcih2YWx1ZSkpLFxuICAgIFVpbnQ4Q2xhbXBlZEFycmF5OiAodmFsdWU6IHN0cmluZykgPT5cbiAgICAgIG5ldyBVaW50OENsYW1wZWRBcnJheShyZXZpdmVBcnJheUJ1ZmZlcih2YWx1ZSkpLFxuICAgIFVpbnQxNkFycmF5OiAodmFsdWU6IHN0cmluZykgPT4gbmV3IFVpbnQxNkFycmF5KHJldml2ZUFycmF5QnVmZmVyKHZhbHVlKSksXG4gICAgVWludDMyQXJyYXk6ICh2YWx1ZTogc3RyaW5nKSA9PiBuZXcgVWludDMyQXJyYXkocmV2aXZlQXJyYXlCdWZmZXIodmFsdWUpKSxcbiAgfTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBQcmUtYnVpbHQgQ0xJIHJldml2ZXJzIChjYWNoZWQpXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxubGV0IGNhY2hlZFJldml2ZXJzOiBSZXZpdmVycyB8IG51bGwgPSBudWxsO1xuXG5mdW5jdGlvbiBnZXRSZXZpdmVycygpOiBSZXZpdmVycyB7XG4gIGlmICghY2FjaGVkUmV2aXZlcnMpIHtcbiAgICBjYWNoZWRSZXZpdmVycyA9IGdldENMSVJldml2ZXJzKCk7XG4gIH1cbiAgcmV0dXJuIGNhY2hlZFJldml2ZXJzO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIERlY3J5cHRpb24gaGVscGVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKlxuICogUHJlLXByb2Nlc3MgYSByZXNvdXJjZSdzIGRhdGEgZmllbGRzOiBpZiB0aGUgcmVzb2x2ZXIgaXMgcHJvdmlkZWQgYW5kXG4gKiB0aGUgZmllbGQgaXMgZW5jcnlwdGVkLCBkZWNyeXB0IGl0IGJlZm9yZSBnZW5lcmljIGh5ZHJhdGlvbi5cbiAqXG4gKiBVc2VzIGNvcmUncyBgbWF5YmVEZWNyeXB0KClgIHdoaWNoIGhhbmRsZXMgdGhlICdlbmNyJyBwcmVmaXggc3RyaXBwaW5nXG4gKiBhbmQgQUVTLUdDTSBkZWNyeXB0aW9uIHRyYW5zcGFyZW50bHkuXG4gKlxuICogV2hlbiB0aGUgcmVzb2x2ZXIgaXMgbnVsbCAobm8gLS1kZWNyeXB0IGZsYWcpLCBlbmNyeXB0ZWQgZmllbGRzIHBhc3NcbiAqIHRocm91Z2ggYXMgVWludDhBcnJheSBhbmQgYXJlIHJlcGxhY2VkIHdpdGggRW5jcnlwdGVkRGF0YVJlZiBpbiBwb3N0LXByb2Nlc3NpbmcuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIG1heWJlRGVjcnlwdEZpZWxkczxcbiAgVCBleHRlbmRzIHtcbiAgICBydW5JZD86IHN0cmluZztcbiAgICBpbnB1dD86IGFueTtcbiAgICBvdXRwdXQ/OiBhbnk7XG4gICAgbWV0YWRhdGE/OiBhbnk7XG4gICAgZXZlbnREYXRhPzogYW55O1xuICB9LFxuPihyZXNvdXJjZTogVCwgcmVzb2x2ZXI6IEVuY3J5cHRpb25LZXlSZXNvbHZlcik6IFByb21pc2U8VD4ge1xuICBpZiAoIXJlc29sdmVyKSByZXR1cm4gcmVzb3VyY2U7XG5cbiAgY29uc3QgcnVuSWQgPSAocmVzb3VyY2UgYXMgYW55KS5ydW5JZCBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIGlmICghcnVuSWQpIHJldHVybiByZXNvdXJjZTtcblxuICBjb25zdCByZXN1bHQgPSB7IC4uLnJlc291cmNlIH07XG5cbiAgdHJ5IHtcbiAgICBjb25zdCByYXdLZXkgPSBhd2FpdCByZXNvbHZlcihydW5JZCk7XG4gICAgY29uc3QgeyBpbXBvcnRLZXkgfSA9IGF3YWl0IGltcG9ydCgnQHdvcmtmbG93L2NvcmUvZW5jcnlwdGlvbicpO1xuICAgIGNvbnN0IGsgPSByYXdLZXkgPyBhd2FpdCBpbXBvcnRLZXkocmF3S2V5KSA6IHVuZGVmaW5lZDtcblxuICAgIC8vIERlY3J5cHQgaW5wdXQvb3V0cHV0L2Vycm9yIGZpZWxkcyAoV29ya2Zsb3dSdW4sIFN0ZXApXG4gICAgcmVzdWx0LmlucHV0ID0gYXdhaXQgbWF5YmVEZWNyeXB0KHJlc3VsdC5pbnB1dCwgayk7XG4gICAgcmVzdWx0Lm91dHB1dCA9IGF3YWl0IG1heWJlRGVjcnlwdChyZXN1bHQub3V0cHV0LCBrKTtcbiAgICAocmVzdWx0IGFzIGFueSkuZXJyb3IgPSBhd2FpdCBtYXliZURlY3J5cHQoKHJlc3VsdCBhcyBhbnkpLmVycm9yLCBrKTtcblxuICAgIC8vIERlY3J5cHQgbWV0YWRhdGEgZmllbGQgKEhvb2spXG4gICAgcmVzdWx0Lm1ldGFkYXRhID0gYXdhaXQgbWF5YmVEZWNyeXB0KHJlc3VsdC5tZXRhZGF0YSwgayk7XG5cbiAgICAvLyBEZWNyeXB0IGV2ZW50RGF0YSBmaWVsZHMgKEV2ZW50KVxuICAgIGlmIChyZXN1bHQuZXZlbnREYXRhICYmIHR5cGVvZiByZXN1bHQuZXZlbnREYXRhID09PSAnb2JqZWN0Jykge1xuICAgICAgY29uc3QgZXZlbnREYXRhID0geyAuLi5yZXN1bHQuZXZlbnREYXRhIH07XG4gICAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIFtcbiAgICAgICAgJ3Jlc3VsdCcsXG4gICAgICAgICdpbnB1dCcsXG4gICAgICAgICdvdXRwdXQnLFxuICAgICAgICAnbWV0YWRhdGEnLFxuICAgICAgICAncGF5bG9hZCcsXG4gICAgICBdKSB7XG4gICAgICAgIGV2ZW50RGF0YVtmaWVsZF0gPSBhd2FpdCBtYXliZURlY3J5cHQoZXZlbnREYXRhW2ZpZWxkXSwgayk7XG4gICAgICB9XG4gICAgICByZXN1bHQuZXZlbnREYXRhID0gZXZlbnREYXRhO1xuICAgIH1cbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLm1lc3NhZ2UgOiBTdHJpbmcoZXJyKTtcblxuICAgIC8vIElmIHRoZSBrZXkgZmV0Y2ggZmFpbGVkIGR1ZSB0byBhbiBIVFRQIGVycm9yIChlLmcuIDQyOSByYXRlIGxpbWl0LFxuICAgIC8vIDUwMCBzZXJ2ZXIgZXJyb3IpLCByZS10aHJvdyBzbyB0aGUgY2FsbGVyIHN1cmZhY2VzIGEgY2xlYXIgZmFpbHVyZVxuICAgIC8vIGluc3RlYWQgb2Ygc2lsZW50bHkgc2hvd2luZyBlbmNyeXB0ZWQgcGxhY2Vob2xkZXJzLlxuICAgIGlmIChtZXNzYWdlLmluY2x1ZGVzKCdIVFRQICcpKSB7XG4gICAgICB0aHJvdyBlcnI7XG4gICAgfVxuXG4gICAgLy8gRGVjcnlwdGlvbiBmYWlsZWQgKGJhZCBrZXksIGNvcnJ1cHRlZCBjaXBoZXJ0ZXh0LCBldGMuKSDigJQgZmFsbCBiYWNrXG4gICAgLy8gdG8gc2hvd2luZyBlbmNyeXB0ZWQgcGxhY2Vob2xkZXJzIGluc3RlYWQgb2YgY3Jhc2hpbmcgdGhlIENMSS5cbiAgICBjb25zdCB7IGxvZ2dlciB9ID0gYXdhaXQgaW1wb3J0KCcuLi9jb25maWcvbG9nLmpzJyk7XG4gICAgbG9nZ2VyLndhcm4oYERlY3J5cHRpb24gZmFpbGVkIGZvciByZXNvdXJjZSAke3J1bklkfTogJHttZXNzYWdlfWApO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBQdWJsaWMgQVBJXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqIFJlcGxhY2UgYSBzaW5nbGUgZmllbGQgdmFsdWUgd2l0aCBhIGRpc3BsYXkgcmVmIGlmIGl0J3MgZW5jcnlwdGVkIG9yIGV4cGlyZWQuICovXG5mdW5jdGlvbiB0b0Rpc3BsYXlSZWYodmFsdWU6IHVua25vd24pOiB1bmtub3duIHtcbiAgaWYgKGlzRW5jcnlwdGVkRGF0YSh2YWx1ZSkpIHJldHVybiBFTkNSWVBURURfUkVGO1xuICBpZiAoaXNFeHBpcmVkU3R1Yih2YWx1ZSkpIHJldHVybiBFWFBJUkVEX1JFRjtcbiAgcmV0dXJuIHZhbHVlO1xufVxuXG4vKipcbiAqIFJlcGxhY2UgZW5jcnlwdGVkIFVpbnQ4QXJyYXkgdmFsdWVzIGFuZCBleHBpcmVkIHN0dWJzIHdpdGggc3R5bGVkXG4gKiByZWYgb2JqZWN0cyBpbiBrbm93biBkYXRhIGZpZWxkcyBmb3IgY3VzdG9tIGluc3BlY3QgcmVuZGVyaW5nLlxuICovXG5mdW5jdGlvbiByZXBsYWNlRW5jcnlwdGVkQW5kRXhwaXJlZFdpdGhSZWY8VD4ocmVzb3VyY2U6IFQpOiBUIHtcbiAgaWYgKCFyZXNvdXJjZSB8fCB0eXBlb2YgcmVzb3VyY2UgIT09ICdvYmplY3QnKSByZXR1cm4gcmVzb3VyY2U7XG4gIGNvbnN0IHIgPSByZXNvdXJjZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgY29uc3QgcmVzdWx0ID0geyAuLi5yIH07XG5cbiAgZm9yIChjb25zdCBrZXkgb2YgWydpbnB1dCcsICdvdXRwdXQnLCAnbWV0YWRhdGEnLCAnZXJyb3InXSkge1xuICAgIHJlc3VsdFtrZXldID0gdG9EaXNwbGF5UmVmKHJlc3VsdFtrZXldKTtcbiAgfVxuXG4gIGlmIChyZXN1bHQuZXZlbnREYXRhICYmIHR5cGVvZiByZXN1bHQuZXZlbnREYXRhID09PSAnb2JqZWN0Jykge1xuICAgIGNvbnN0IGVkID0geyAuLi4ocmVzdWx0LmV2ZW50RGF0YSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgfTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBbJ3Jlc3VsdCcsICdpbnB1dCcsICdvdXRwdXQnLCAnbWV0YWRhdGEnLCAncGF5bG9hZCddKSB7XG4gICAgICBlZFtrZXldID0gdG9EaXNwbGF5UmVmKGVkW2tleV0pO1xuICAgIH1cbiAgICByZXN1bHQuZXZlbnREYXRhID0gZWQ7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0IGFzIFQ7XG59XG5cbi8qKlxuICogSHlkcmF0ZSB0aGUgc2VyaWFsaXplZCBkYXRhIGZpZWxkcyBvZiBhIHJlc291cmNlIGZvciBDTEkgZGlzcGxheS5cbiAqXG4gKiBXaGVuIGBlbmNyeXB0b3JSZXNvbHZlcmAgaXMgbnVsbCAoZGVmYXVsdCAvIG5vIC0tZGVjcnlwdCBmbGFnKSwgZW5jcnlwdGVkXG4gKiBmaWVsZHMgYXJlIHNob3duIGFzIHN0eWxlZCBcIvCflJIgRW5jcnlwdGVkXCIgcGxhY2Vob2xkZXJzIHZpYSBFbmNyeXB0ZWREYXRhUmVmLlxuICpcbiAqIFdoZW4gYGVuY3J5cHRvclJlc29sdmVyYCBpcyBwcm92aWRlZCAoLS1kZWNyeXB0IGZsYWcpLCBlbmNyeXB0ZWQgZmllbGRzXG4gKiBhcmUgZGVjcnlwdGVkIGJlZm9yZSBoeWRyYXRpb24gc28gdGhlIGFjdHVhbCB1c2VyIGRhdGEgaXMgZGlzcGxheWVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaHlkcmF0ZVJlc291cmNlSU88VD4oXG4gIHJlc291cmNlOiBULFxuICBrZXlSZXNvbHZlcj86IEVuY3J5cHRpb25LZXlSZXNvbHZlclxuKTogUHJvbWlzZTxUPiB7XG4gIC8vIFByZS1wcm9jZXNzOiBkZWNyeXB0IGFueSBlbmNyeXB0ZWQgZmllbGRzIHdoZW4gYSByZXNvbHZlciBpcyBwcm92aWRlZFxuICBjb25zdCBwcmVwcm9jZXNzZWQgPSBhd2FpdCBtYXliZURlY3J5cHRGaWVsZHMoXG4gICAgcmVzb3VyY2UgYXMgYW55LFxuICAgIGtleVJlc29sdmVyID8/IG51bGxcbiAgKTtcbiAgY29uc3QgaHlkcmF0ZWQgPSBoeWRyYXRlUmVzb3VyY2VJT0dlbmVyaWMocHJlcHJvY2Vzc2VkLCBnZXRSZXZpdmVycygpKSBhcyBUO1xuICAvLyBQb3N0LXByb2Nlc3M6IHN3YXAgZW5jcnlwdGVkIFVpbnQ4QXJyYXlzIGFuZCBleHBpcmVkIHN0dWJzIGZvciBDTEktc3R5bGVkIG9iamVjdHNcbiAgcmV0dXJuIHJlcGxhY2VFbmNyeXB0ZWRBbmRFeHBpcmVkV2l0aFJlZihoeWRyYXRlZCk7XG59XG4iXX0=
|
|
@@ -989,4 +989,4 @@ export const listSleeps = async (world, opts = {}) => {
|
|
|
989
989
|
throw error;
|
|
990
990
|
}
|
|
991
991
|
};
|
|
992
|
-
//# sourceMappingURL=output.js.map
|
|
992
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0cHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9pbnNwZWN0L291dHB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdEQsT0FBTyxFQUVMLG9CQUFvQixFQUNwQixtQkFBbUIsR0FDcEIsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFZOUUsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBRTFCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDMUMsT0FBTyxLQUFLLE1BQU0sWUFBWSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUxQyxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLGNBQWMsRUFDZCxZQUFZLEdBQ2IsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4Qjs7Ozs7O0dBTUc7QUFDSCxTQUFTLGNBQWMsQ0FBQyxLQUFZLEVBQUUsT0FBZ0I7SUFDcEQsSUFBSSxDQUFDLE9BQU87UUFBRSxPQUFPLElBQUksQ0FBQztJQUMxQixJQUFJLENBQUMsS0FBSyxDQUFDLHNCQUFzQjtRQUFFLE9BQU8sSUFBSSxDQUFDO0lBQy9DLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxFQUEyQyxDQUFDO0lBQ2pFLE9BQU8sQ0FBQyxLQUFhLEVBQUUsRUFBRTtRQUN2QixJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE1BQU0sR0FBRyxLQUFLLENBQUMsSUFBSTtpQkFDaEIsR0FBRyxDQUFDLEtBQUssQ0FBQztpQkFD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Q25CLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNwQyxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQzdELENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDZCxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDakIsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLENBQUMsR0FBRyxDQUNSLFNBQVMsQ0FDUCxNQUE4QyxFQUM5QyxpQkFBaUIsRUFDakIsRUFBRSxHQUFHLElBQUksRUFBRSxvQkFBb0IsRUFBRSxJQUFJLEVBQUUsQ0FDeEMsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixJQUFJLGNBQWMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDeEMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsQixDQUFDO1FBQ0QsTUFBTSxLQUFLLENBQUM7SUFDZCxDQUFDO0FBQ0gsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW1wb3J0S2V5IH0gZnJvbSAnQHdvcmtmbG93L2NvcmUvZW5jcnlwdGlvbic7XG5pbXBvcnQge1xuICB0eXBlIEVuY3J5cHRpb25LZXlQYXJhbSxcbiAgZ2V0RGVzZXJpYWxpemVTdHJlYW0sXG4gIGdldEV4dGVybmFsUmV2aXZlcnMsXG59IGZyb20gJ0B3b3JrZmxvdy9jb3JlL3NlcmlhbGl6YXRpb24nO1xuaW1wb3J0IHsgVkVSQ0VMXzQwM19FUlJPUl9NRVNTQUdFIH0gZnJvbSAnQHdvcmtmbG93L2Vycm9ycyc7XG5pbXBvcnQgeyBwYXJzZVN0ZXBOYW1lLCBwYXJzZVdvcmtmbG93TmFtZSB9IGZyb20gJ0B3b3JrZmxvdy91dGlscy9wYXJzZS1uYW1lJztcbmltcG9ydCB0eXBlIHtcbiAgRXZlbnQsXG4gIEhvb2ssXG4gIExpc3RFdmVudHNQYXJhbXMsXG4gIFBhZ2luYXRpb25PcHRpb25zLFxuICBTdGVwLFxuICBTdGVwV2l0aG91dERhdGEsXG4gIFdvcmtmbG93UnVuLFxuICBXb3JrZmxvd1J1bldpdGhvdXREYXRhLFxuICBXb3JsZCxcbn0gZnJvbSAnQHdvcmtmbG93L3dvcmxkJztcbmltcG9ydCBjaGFsayBmcm9tICdjaGFsayc7XG5cbmltcG9ydCB7IGZvcm1hdERpc3RhbmNlIH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IFRhYmxlIGZyb20gJ2Vhc3ktdGFibGUnO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi4vY29uZmlnL2xvZy5qcyc7XG5pbXBvcnQgdHlwZSB7IEluc3BlY3RDTElPcHRpb25zIH0gZnJvbSAnLi4vY29uZmlnL3R5cGVzLmpzJztcbmltcG9ydCB7XG4gIHR5cGUgRW5jcnlwdGlvbktleVJlc29sdmVyLFxuICBoeWRyYXRlUmVzb3VyY2VJTyxcbiAgaXNFbmNyeXB0ZWRSZWYsXG4gIGlzRXhwaXJlZFJlZixcbn0gZnJvbSAnLi9oeWRyYXRpb24uanMnO1xuXG4vKipcbiAqIENyZWF0ZSBhbiBFbmNyeXB0aW9uS2V5UmVzb2x2ZXIgZnJvbSBhIFdvcmxkIGluc3RhbmNlLlxuICogUmV0dXJucyBudWxsIGlmIGRlY3J5cHQgaXMgZmFsc2Ug4oCUIGVuY3J5cHRlZCBkYXRhIHdpbGwgc2hvdyBhcyBhIHBsYWNlaG9sZGVyLlxuICpcbiAqIFRoZSByZXNvbHZlciBmZXRjaGVzIHRoZSBmdWxsIFdvcmtmbG93UnVuIChjYWNoZWQgcGVyIHJ1bklkKSBzbyB0aGF0IHRoZVxuICogV29ybGQgY2FuIGluc3BlY3QgZGVwbG95bWVudC1zcGVjaWZpYyBmaWVsZHMgZm9yIGtleSByZXNvbHV0aW9uLlxuICovXG5mdW5jdGlvbiBjcmVhdGVSZXNvbHZlcih3b3JsZDogV29ybGQsIGRlY3J5cHQ6IGJvb2xlYW4pOiBFbmNyeXB0aW9uS2V5UmVzb2x2ZXIge1xuICBpZiAoIWRlY3J5cHQpIHJldHVybiBudWxsO1xuICBpZiAoIXdvcmxkLmdldEVuY3J5cHRpb25LZXlGb3JSdW4pIHJldHVybiBudWxsO1xuICBjb25zdCBjYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCBQcm9taXNlPFVpbnQ4QXJyYXkgfCB1bmRlZmluZWQ+PigpO1xuICByZXR1cm4gKHJ1bklkOiBzdHJpbmcpID0+IHtcbiAgICBsZXQgY2FjaGVkID0gY2FjaGUuZ2V0KHJ1bklkKTtcbiAgICBpZiAoIWNhY2hlZCkge1xuICAgICAgY2FjaGVkID0gd29ybGQucnVuc1xuICAgICAgICAuZ2V0KHJ1bklkKVxuICAgICAgICAudGhlbigocnVuKSA9PiB3b3JsZC5nZXRFbmNyeXB0aW9uS2V5Rm9yUnVuIShydW4pKTtcbiAgICAgIGNhY2hlLnNldChydW5JZCwgY2FjaGVkKTtcbiAgICB9XG4gICAgcmV0dXJuIGNhY2hlZDtcbiAgfTtcbn1cblxuaW1wb3J0IHsgc2V0dXBMaXN0UGFnaW5hdGlvbiB9IGZyb20gJy4vcGFnaW5hdGlvbi5qcyc7XG5pbXBvcnQgeyBzdHJlYW1Ub0NvbnNvbGUgfSBmcm9tICcuL3N0cmVhbS5qcyc7XG5pbXBvcnQge1xuICBmb3JtYXRJU09EYXRlLFxuICBmb3JtYXRTdGF0dXMgYXMgZm9ybWF0U3RhdHVzQWJicmV2LFxuICBnZXREaXNwbGF5U2V0dGluZ3MsXG4gIGdldFRlcm1pbmFsV2lkdGgsXG4gIGlzQ0ksXG59IGZyb20gJy4vdGVybWluYWwtdXRpbHMuanMnO1xuXG5jb25zdCBERUZBVUxUX1BBR0VfU0laRSA9IDIwO1xubGV0IFRBQkxFX1RSVU5DQVRFX0lPX0xFTkdUSCA9IDE1OyAvLyBXaWxsIGJlIGFkanVzdGVkIGJhc2VkIG9uIHRlcm1pbmFsIHdpZHRoXG5cbmNvbnN0IFdPUktGTE9XX1JVTl9JT19QUk9QUzogKGtleW9mIFdvcmtmbG93UnVuKVtdID0gWydpbnB1dCcsICdvdXRwdXQnXTtcblxuY29uc3QgU1RFUF9JT19QUk9QUzogKGtleW9mIFN0ZXApW10gPSBbJ2lucHV0JywgJ291dHB1dCddO1xuXG5jb25zdCBXT1JLRkxPV19SVU5fTElTVEVEX1BST1BTOiAoa2V5b2YgV29ya2Zsb3dSdW4pW10gPSBbXG4gICdydW5JZCcsXG4gICd3b3JrZmxvd05hbWUnLFxuICAnc3RhdHVzJyxcbiAgJ3N0YXJ0ZWRBdCcsXG4gICdjb21wbGV0ZWRBdCcsXG4gIC4uLldPUktGTE9XX1JVTl9JT19QUk9QUyxcbl07XG5cbmNvbnN0IFNURVBfTElTVEVEX1BST1BTOiAoa2V5b2YgU3RlcClbXSA9IFtcbiAgJ3J1bklkJyxcbiAgJ3N0ZXBJZCcsXG4gICdzdGVwTmFtZScsXG4gICdzdGF0dXMnLFxuICAnc3RhcnRlZEF0JyxcbiAgJ2NvbXBsZXRlZEF0JyxcbiAgLi4uU1RFUF9JT19QUk9QUyxcbl07XG5cbmNvbnN0IEVWRU5UX0lPX1BST1BTOiAoa2V5b2YgRXZlbnQgfCAnZXZlbnREYXRhJylbXSA9IFsnZXZlbnREYXRhJ107XG5cbmNvbnN0IEVWRU5UX0xJU1RFRF9QUk9QUzogKGtleW9mIEV2ZW50IHwgJ2V2ZW50RGF0YScpW10gPSBbXG4gICdldmVudElkJyxcbiAgJ2V2ZW50VHlwZScsXG4gICdjb3JyZWxhdGlvbklkJyxcbiAgJ2NyZWF0ZWRBdCcsXG4gIC4uLkVWRU5UX0lPX1BST1BTLFxuXTtcblxuLy8gY29uc3QgSE9PS19EQVRBX1BST1BTOiAoa2V5b2YgSG9vayB8ICdoYXNSZXNwb25zZScpW10gPSBbJ2hhc1Jlc3BvbnNlJ107XG5cbmNvbnN0IEhPT0tfTElTVEVEX1BST1BTOiAoa2V5b2YgSG9vayB8ICdoYXNSZXNwb25zZScpW10gPSBbXG4gICdydW5JZCcsXG4gICdob29rSWQnLFxuICAnb3duZXJJZCcsXG4gICdjcmVhdGVkQXQnLFxuICAvLyAuLi5IT09LX0RBVEFfUFJPUFMsXG5dO1xuXG5pbnRlcmZhY2UgU2xlZXAge1xuICBjb3JyZWxhdGlvbklkOiBzdHJpbmc7XG4gIHJ1bklkOiBzdHJpbmc7XG4gIGV2ZW50SWQ6IHN0cmluZztcbiAgY3JlYXRlZEF0OiBEYXRlO1xuICByZXN1bWVBdDogRGF0ZSB8IHVuZGVmaW5lZDtcbiAgY29tcGxldGVkQXQ6IERhdGUgfCB1bmRlZmluZWQ7XG59XG5cbmNvbnN0IFdBSVRfTElTVEVEX1BST1BTOiAoa2V5b2YgU2xlZXApW10gPSBbXG4gICdjb3JyZWxhdGlvbklkJyxcbiAgJ2V2ZW50SWQnLFxuICAnY3JlYXRlZEF0JyxcbiAgJ3Jlc3VtZUF0JyxcbiAgJ2NvbXBsZXRlZEF0Jyxcbl07XG5cbmNvbnN0IFNUQVRVU19DT0xPUlM6IFJlY29yZDxcbiAgV29ya2Zsb3dSdW5bJ3N0YXR1cyddIHwgU3RlcFsnc3RhdHVzJ10sXG4gICh2YWx1ZTogc3RyaW5nKSA9PiBzdHJpbmdcbj4gPSB7XG4gIHJ1bm5pbmc6IGNoYWxrLmJsdWUsXG4gIGNvbXBsZXRlZDogY2hhbGsuZ3JlZW4sXG4gIGZhaWxlZDogY2hhbGsucmVkLFxuICBjYW5jZWxsZWQ6IGNoYWxrLnN0cmlrZXRocm91Z2gueWVsbG93LFxuICBwZW5kaW5nOiBjaGFsay5ibHVlLFxufTtcblxuY29uc3QgaXNTdHJlYW1JZCA9ICh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLnN0YXJ0c1dpdGgoJ3N0cm1fJyk7XG59O1xuXG5jb25zdCBzaG93U3RhdHVzTGVnZW5kID0gKCkgPT4ge1xuICBsb2dnZXIubG9nKCdcXG5TdGF0dXMgTGVnZW5kOicpO1xuICBjb25zdCBzdGF0dXNlczogQXJyYXk8V29ya2Zsb3dSdW5bJ3N0YXR1cyddIHwgU3RlcFsnc3RhdHVzJ10+ID0gW1xuICAgICdydW5uaW5nJyxcbiAgICAnY29tcGxldGVkJyxcbiAgICAnZmFpbGVkJyxcbiAgICAnY2FuY2VsbGVkJyxcbiAgICAncGVuZGluZycsXG4gIF07XG5cbiAgY29uc3QgbGVnZW5kSXRlbXMgPSBzdGF0dXNlcy5tYXAoKHN0YXR1cykgPT4ge1xuICAgIGNvbnN0IGNvbG9yRnVuYyA9IFNUQVRVU19DT0xPUlNbc3RhdHVzXTtcbiAgICBjb25zdCBhYmJyZXYgPSBmb3JtYXRTdGF0dXNBYmJyZXYoc3RhdHVzLCB0cnVlKTtcbiAgICByZXR1cm4gYCR7Y29sb3JGdW5jKGFiYnJldil9ID0gJHtzdGF0dXN9YDtcbiAgfSk7XG5cbiAgbG9nZ2VyLmxvZyhgICAke2xlZ2VuZEl0ZW1zLmpvaW4oJyAgJyl9YCk7XG4gIGxvZ2dlci5sb2coJycpO1xufTtcblxuY29uc3QgaXNTbGVlcFN0ZXAgPSAoc3RlcE5hbWU6IHN0cmluZykgPT4ge1xuICByZXR1cm4gc3RlcE5hbWUuaW5jbHVkZXMoJy1zbGVlcCcpO1xufTtcblxuY29uc3QgY2hlY2tBbmRIYW5kbGVWZXJjZWxBY2Nlc3NFcnJvciA9IChcbiAgZXJyb3I6IHVua25vd24sXG4gIGJhY2tlbmQ/OiBzdHJpbmdcbik6IGJvb2xlYW4gPT4ge1xuICBpZiAoYmFja2VuZCA9PT0gJ3ZlcmNlbCcgJiYgZXJyb3IgJiYgdHlwZW9mIGVycm9yID09PSAnb2JqZWN0Jykge1xuICAgIGNvbnN0IGVyciA9IGVycm9yIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgIGlmIChlcnIuc3RhdHVzID09PSA0MDMpIHtcbiAgICAgIGxvZ2dlci5lcnJvcihWRVJDRUxfNDAzX0VSUk9SX01FU1NBR0UpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG4gIHJldHVybiBmYWxzZTtcbn07XG5cbmNvbnN0IGV4dHJhY3RFcnJvck1lc3NhZ2UgPSAoXG4gIGVycjogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbik6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG4gIGlmIChlcnIubWVzc2FnZSAmJiB0eXBlb2YgZXJyLm1lc3NhZ2UgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGVyci5tZXNzYWdlO1xuICB9XG5cbiAgaWYgKGVyci5ib2R5ICYmIHR5cGVvZiBlcnIuYm9keSA9PT0gJ29iamVjdCcpIHtcbiAgICBjb25zdCBib2R5ID0gZXJyLmJvZHkgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgaWYgKGJvZHkubWVzc2FnZSAmJiB0eXBlb2YgYm9keS5tZXNzYWdlID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIGJvZHkubWVzc2FnZTtcbiAgICB9XG4gICAgaWYgKGJvZHkuZXJyb3IgJiYgdHlwZW9mIGJvZHkuZXJyb3IgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gYm9keS5lcnJvcjtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufTtcblxuY29uc3QgaGFuZGxlQXBpRXJyb3IgPSAoZXJyb3I6IHVua25vd24sIGJhY2tlbmQ/OiBzdHJpbmcpOiBib29sZWFuID0+IHtcbiAgLy8gRmlyc3QgY2hlY2sgZm9yIFZlcmNlbCBhY2Nlc3MgZXJyb3JzXG4gIGlmIChjaGVja0FuZEhhbmRsZVZlcmNlbEFjY2Vzc0Vycm9yKGVycm9yLCBiYWNrZW5kKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLy8gSGFuZGxlIG90aGVyIEhUVFAgZXJyb3JzXG4gIGlmIChlcnJvciAmJiB0eXBlb2YgZXJyb3IgPT09ICdvYmplY3QnKSB7XG4gICAgY29uc3QgZXJyID0gZXJyb3IgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbiAgICAvLyBIYW5kbGUgNDAwIEJhZCBSZXF1ZXN0XG4gICAgaWYgKGVyci5zdGF0dXMgPT09IDQwMCkge1xuICAgICAgbG9nZ2VyLmVycm9yKCdCYWQgUmVxdWVzdDogVGhlIHJlcXVlc3Qgd2FzIGludmFsaWQuJyk7XG4gICAgICBjb25zdCBtZXNzYWdlID0gZXh0cmFjdEVycm9yTWVzc2FnZShlcnIpO1xuICAgICAgaWYgKG1lc3NhZ2UpIHtcbiAgICAgICAgbG9nZ2VyLmVycm9yKGBEZXRhaWxzOiAke21lc3NhZ2V9YCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBIYW5kbGUgb3RoZXIgSFRUUCBlcnJvcnMgKDQwNCwgNTAwLCBldGMuKVxuICAgIGlmICh0eXBlb2YgZXJyLnN0YXR1cyA9PT0gJ251bWJlcicgJiYgZXJyLnN0YXR1cyA+PSA0MDApIHtcbiAgICAgIGxvZ2dlci5lcnJvcihgSFRUUCBFcnJvciAke2Vyci5zdGF0dXN9OiAke2dldFN0YXR1c1RleHQoZXJyLnN0YXR1cyl9YCk7XG4gICAgICBjb25zdCBtZXNzYWdlID0gZXh0cmFjdEVycm9yTWVzc2FnZShlcnIpO1xuICAgICAgaWYgKG1lc3NhZ2UpIHtcbiAgICAgICAgbG9nZ2VyLmVycm9yKGBEZXRhaWxzOiAke21lc3NhZ2V9YCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59O1xuXG5jb25zdCBnZXRTdGF0dXNUZXh0ID0gKHN0YXR1czogbnVtYmVyKTogc3RyaW5nID0+IHtcbiAgY29uc3Qgc3RhdHVzVGV4dHM6IFJlY29yZDxudW1iZXIsIHN0cmluZz4gPSB7XG4gICAgNDAwOiAnQmFkIFJlcXVlc3QnLFxuICAgIDQwMTogJ1VuYXV0aG9yaXplZCcsXG4gICAgNDAzOiAnRm9yYmlkZGVuJyxcbiAgICA0MDQ6ICdOb3QgRm91bmQnLFxuICAgIDQyOTogJ1RvbyBNYW55IFJlcXVlc3RzJyxcbiAgICA1MDA6ICdJbnRlcm5hbCBTZXJ2ZXIgRXJyb3InLFxuICAgIDUwMjogJ0JhZCBHYXRld2F5JyxcbiAgICA1MDM6ICdTZXJ2aWNlIFVuYXZhaWxhYmxlJyxcbiAgfTtcbiAgcmV0dXJuIHN0YXR1c1RleHRzW3N0YXR1c10gfHwgJ1Vua25vd24gRXJyb3InO1xufTtcblxuY29uc3QgdHJ1bmNhdGVOYW1lSWZOZWVkZWQgPSAobmFtZTogc3RyaW5nLCBtYXhMZW5ndGg6IG51bWJlcik6IHN0cmluZyA9PiB7XG4gIHJldHVybiBtYXhMZW5ndGggPCBuYW1lLmxlbmd0aCA/IGAke25hbWUuc3Vic3RyaW5nKDAsIG1heExlbmd0aCl9Li4uYCA6IG5hbWU7XG59O1xuXG5jb25zdCBmb3JtYXROYW1lRmllbGQgPSAoXG4gIG5hbWVOb25VbmlxdWU6IHN0cmluZyxcbiAgdHJ1bmNhdGVMZW5ndGg6IG51bWJlcixcbiAgaXNTbGVlcDogYm9vbGVhblxuKTogc3RyaW5nID0+IHtcbiAgY29uc3QgdHJ1bmNhdGVkTmFtZSA9IHRydW5jYXRlTmFtZUlmTmVlZGVkKG5hbWVOb25VbmlxdWUsIHRydW5jYXRlTGVuZ3RoKTtcbiAgaWYgKGlzU2xlZXApIHtcbiAgICByZXR1cm4gY2hhbGsueWVsbG93QnJpZ2h0KHRydW5jYXRlZE5hbWUpO1xuICB9XG4gIHJldHVybiBjaGFsay5ibHVlLmJsdWVCcmlnaHQodHJ1bmNhdGVkTmFtZSk7XG59O1xuXG5jb25zdCBmb3JtYXRJZEZpZWxkID0gKFxuICBwcm9wOiBzdHJpbmcsXG4gIHZhbHVlOiB1bmtub3duLFxuICBzaG91bGRUcnVuY2F0ZUlkczogYm9vbGVhblxuKTogc3RyaW5nIHwgdW5kZWZpbmVkID0+IHtcbiAgY29uc3QgdmFsdWVTdHIgPSBTdHJpbmcodmFsdWUpO1xuICBjb25zdCBpZFN0ciA9IHNob3VsZFRydW5jYXRlSWRzID8gdHJ1bmNhdGVJZFRvTGFzdENoYXJzKHZhbHVlU3RyKSA6IHZhbHVlU3RyO1xuICBpZiAocHJvcCA9PT0gJ3N0cmVhbUlkJykge1xuICAgIHJldHVybiBjaGFsay5ncmVlbihpZFN0cik7XG4gIH1cbiAgcmV0dXJuIGlkU3RyO1xufTtcblxuY29uc3QgZm9ybWF0VGFibGVWYWx1ZSA9IChcbiAgcHJvcDogc3RyaW5nLFxuICB2YWx1ZTogdW5rbm93bixcbiAgb3B0czogSW5zcGVjdENMSU9wdGlvbnMgPSB7fSxcbiAgZGlzcGxheVNldHRpbmdzPzogUmV0dXJuVHlwZTx0eXBlb2YgZ2V0RGlzcGxheVNldHRpbmdzPixcbiAgaXRlbT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4pID0+IHtcbiAgY29uc3QgbmFtZXNUcnVuY2F0ZSA9IGRpc3BsYXlTZXR0aW5ncz8ubmFtZXNUcnVuY2F0ZUxlbmd0aCA/PyA0MDtcbiAgY29uc3Qgc2hvdWxkVHJ1bmNhdGVJZHMgPSBkaXNwbGF5U2V0dGluZ3M/LnRydW5jYXRlSWRzVG9MYXN0Q2hhcnMgPz8gZmFsc2U7XG5cbiAgLy8gSGFuZGxlIElEcyB3aXRoIHBvdGVudGlhbCB0cnVuY2F0aW9uXG4gIGlmIChcbiAgICBbXG4gICAgICAnc3RyZWFtSWQnLFxuICAgICAgJ3J1bklkJyxcbiAgICAgICdzdGVwSWQnLFxuICAgICAgJ2hvb2tJZCcsXG4gICAgICAnZXZlbnRJZCcsXG4gICAgICAnY29ycmVsYXRpb25JZCcsXG4gICAgICAnb3duZXJJZCcsXG4gICAgXS5pbmNsdWRlcyhwcm9wKVxuICApIHtcbiAgICByZXR1cm4gZm9ybWF0SWRGaWVsZChwcm9wLCB2YWx1ZSwgc2hvdWxkVHJ1bmNhdGVJZHMpO1xuICB9XG5cbiAgLy8gSGFuZGxlIG5hbWVzIHdpdGggdHJ1bmNhdGlvblxuICBpZiAocHJvcCA9PT0gJ3N0ZXBOYW1lJykge1xuICAgIGNvbnN0IG5hbWVOb25VbmlxdWUgPSBwYXJzZVN0ZXBOYW1lKFN0cmluZyh2YWx1ZSkpPy5zaG9ydE5hbWUgfHwgJz8nO1xuICAgIHJldHVybiBmb3JtYXROYW1lRmllbGQoXG4gICAgICBuYW1lTm9uVW5pcXVlLFxuICAgICAgbmFtZXNUcnVuY2F0ZSxcbiAgICAgIGlzU2xlZXBTdGVwKFN0cmluZyh2YWx1ZSkpXG4gICAgKTtcbiAgfVxuXG4gIGlmIChwcm9wID09PSAnd29ya2Zsb3dOYW1lJykge1xuICAgIGNvbnN0IG5hbWVOb25VbmlxdWUgPSBwYXJzZVdvcmtmbG93TmFtZShTdHJpbmcodmFsdWUpKT8uc2hvcnROYW1lIHx8ICc/JztcbiAgICBjb25zdCB0cnVuY2F0ZWROYW1lID0gdHJ1bmNhdGVOYW1lSWZOZWVkZWQobmFtZU5vblVuaXF1ZSwgbmFtZXNUcnVuY2F0ZSk7XG4gICAgcmV0dXJuIGNoYWxrLmJsdWUuYmx1ZUJyaWdodCh0cnVuY2F0ZWROYW1lKTtcbiAgfVxuXG4gIGlmIChwcm9wID09PSAnb3V0cHV0JyB8fCBwcm9wID09PSAnaW5wdXQnIHx8IHByb3AgPT09ICdlcnJvcicpIHtcbiAgICAvLyBDaGVjayBpZiBkYXRhIGhhcyBleHBpcmVkXG4gICAgaWYgKGl0ZW0gJiYgJ2V4cGlyZWRBdCcgaW4gaXRlbSAmJiBpdGVtLmV4cGlyZWRBdCAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gRVhQSVJFRF9EQVRBX01FU1NBR0U7XG4gICAgfVxuICAgIHJldHVybiBpbmxpbmVGb3JtYXRJTyh2YWx1ZSk7XG4gIH1cblxuICBpZiAocHJvcCA9PT0gJ3N0YXR1cycpIHtcbiAgICBjb25zdCBzdGF0dXMgPSB2YWx1ZSBhcyBXb3JrZmxvd1J1blsnc3RhdHVzJ10gfCBTdGVwWydzdGF0dXMnXTtcbiAgICBjb25zdCBjb2xvckZ1bmMgPSBTVEFUVVNfQ09MT1JTW3N0YXR1c107XG4gICAgY29uc3QgZm9ybWF0dGVkU3RhdHVzID0gZGlzcGxheVNldHRpbmdzPy5hYmJyZXZpYXRlU3RhdHVzXG4gICAgICA/IGZvcm1hdFN0YXR1c0FiYnJldihzdGF0dXMsIHRydWUpXG4gICAgICA6IHN0YXR1cztcbiAgICByZXR1cm4gY29sb3JGdW5jKGZvcm1hdHRlZFN0YXR1cyk7XG4gIH1cblxuICBpZiAocHJvcCA9PT0gJ2V2ZW50RGF0YScpIHtcbiAgICByZXR1cm4gdHJ1bmNhdGVTdHJpbmcoSlNPTi5zdHJpbmdpZnkodmFsdWUpKTtcbiAgfVxuXG4gIGlmIChwcm9wID09PSAnaGFzUmVzcG9uc2UnKSB7XG4gICAgcmV0dXJuIHZhbHVlID8gY2hhbGsuZ3JlZW4oJ3RydWUnKSA6IGNoYWxrLmdyYXkoJ2ZhbHNlJyk7XG4gIH1cblxuICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgcmV0dXJuIGZvcm1hdFRhYmxlVGltZXN0YW1wKHZhbHVlLCBvcHRzLCBkaXNwbGF5U2V0dGluZ3MpO1xuICB9XG5cbiAgcmV0dXJuIHZhbHVlO1xufTtcblxuY29uc3QgZ2V0VmlzaWJsZVByb3BzID0gKFxuICBwcm9wczogc3RyaW5nW10sXG4gIGRpc3BsYXlTZXR0aW5nczogUmV0dXJuVHlwZTx0eXBlb2YgZ2V0RGlzcGxheVNldHRpbmdzPlxuKTogc3RyaW5nW10gPT4ge1xuICBpZiAoZGlzcGxheVNldHRpbmdzLmhpZGVDb21wbGV0ZWRBdCkge1xuICAgIHJldHVybiBwcm9wcy5maWx0ZXIoKHByb3ApID0+IHByb3AgIT09ICdjb21wbGV0ZWRBdCcpO1xuICB9XG4gIHJldHVybiBwcm9wcztcbn07XG5cbmNvbnN0IHNob3dUYWJsZSA9IChcbiAgZGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXSxcbiAgcHJvcHM6IHN0cmluZ1tdLFxuICBvcHRzOiBJbnNwZWN0Q0xJT3B0aW9ucyA9IHt9XG4pID0+IHtcbiAgLy8gR2V0IGRpc3BsYXkgc2V0dGluZ3MgYmFzZWQgb24gdGVybWluYWwgd2lkdGhcbiAgY29uc3QgdGVybWluYWxXaWR0aCA9IGdldFRlcm1pbmFsV2lkdGgoKTtcbiAgY29uc3QgZGlzcGxheVNldHRpbmdzID0gZ2V0RGlzcGxheVNldHRpbmdzKFxuICAgIHRlcm1pbmFsV2lkdGgsXG4gICAgb3B0cy53aXRoRGF0YSB8fCBmYWxzZSxcbiAgICBwcm9wcy5pbmNsdWRlcygncnVuTmFtZScpXG4gICk7XG5cbiAgLy8gRmlsdGVyIG91dCBjb21wbGV0ZWRBdCBjb2x1bW4gaWYgbmVlZGVkXG4gIGNvbnN0IHZpc2libGVQcm9wcyA9IGdldFZpc2libGVQcm9wcyhwcm9wcywgZGlzcGxheVNldHRpbmdzKTtcblxuICAvLyBVcGRhdGUgdHJ1bmNhdGUgbGVuZ3RoIGZvciBJTyBmaWVsZHNcbiAgY29uc3Qgb3JpZ2luYWxUcnVuY2F0ZUxlbmd0aCA9IFRBQkxFX1RSVU5DQVRFX0lPX0xFTkdUSDtcbiAgVEFCTEVfVFJVTkNBVEVfSU9fTEVOR1RIID0gZGlzcGxheVNldHRpbmdzLmRhdGFGaWVsZFdpZHRoO1xuXG4gIC8vIFNob3cgc3RhdHVzIGxlZ2VuZCBpZiB1c2luZyBhYmJyZXZpYXRlZCBzdGF0dXNcbiAgaWYgKFxuICAgIGRhdGEubGVuZ3RoID4gMCAmJlxuICAgIGRpc3BsYXlTZXR0aW5ncy5hYmJyZXZpYXRlU3RhdHVzICYmXG4gICAgdmlzaWJsZVByb3BzLmluY2x1ZGVzKCdzdGF0dXMnKVxuICApIHtcbiAgICBzaG93U3RhdHVzTGVnZW5kKCk7XG4gIH1cblxuICAvLyBDcmVhdGUgaGVhZGVyIG1hcHBpbmcgZm9yIGFiYnJldmlhdGVkIHN0YXR1c1xuICBjb25zdCBoZWFkZXJNYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgaWYgKGRpc3BsYXlTZXR0aW5ncy5hYmJyZXZpYXRlU3RhdHVzICYmIHZpc2libGVQcm9wcy5pbmNsdWRlcygnc3RhdHVzJykpIHtcbiAgICBoZWFkZXJNYXBbJ3N0YXR1cyddID0gJ1MnO1xuICB9XG5cbiAgLy8gQWRkIGEgYmxhbmsgbGluZSBiZWZvcmUgYW55IHRhYmxlXG4gIGNvbnN0IHRhYmxlID0gbmV3IFRhYmxlKCk7XG4gIGlmIChkYXRhICYmIGRhdGEubGVuZ3RoID09PSAwKSB7XG4gICAgbG9nZ2VyLndhcm4oJ05vIGRhdGEgZm91bmQgZm9yIHRoaXMgcXVlcnkgYW5kIHJlc291cmNlLlxcbicpO1xuICAgIGZvciAoY29uc3QgcHJvcCBvZiB2aXNpYmxlUHJvcHMpIHtcbiAgICAgIGNvbnN0IGhlYWRlciA9IGhlYWRlck1hcFtwcm9wXSB8fCBwcm9wO1xuICAgICAgdGFibGUuY2VsbChoZWFkZXIsICdOL0EnKTtcbiAgICB9XG4gICAgdGFibGUubmV3Um93KCk7XG4gICAgLy8gUmVzdG9yZSBvcmlnaW5hbCB0cnVuY2F0ZSBsZW5ndGhcbiAgICBUQUJMRV9UUlVOQ0FURV9JT19MRU5HVEggPSBvcmlnaW5hbFRydW5jYXRlTGVuZ3RoO1xuICAgIHJldHVybiB0YWJsZS50b1N0cmluZygpO1xuICB9IGVsc2UgaWYgKCFkYXRhKSB7XG4gICAgbG9nZ2VyLndhcm4oJ0V4cGVjdGluZyBhbiBhcnJheSBvZiBkYXRhLCBidXQgZ290IG51bGwuXFxuJyk7XG4gIH1cbiAgbG9nZ2VyLmxvZygnJyk7XG4gIGZvciAoY29uc3QgaXRlbSBvZiBkYXRhKSB7XG4gICAgZm9yIChjb25zdCBwcm9wIG9mIHZpc2libGVQcm9wcykge1xuICAgICAgY29uc3QgaGVhZGVyID0gaGVhZGVyTWFwW3Byb3BdIHx8IHByb3A7XG4gICAgICBjb25zdCB2YWx1ZSA9IGl0ZW1bcHJvcF07XG4gICAgICB0YWJsZS5jZWxsKFxuICAgICAgICBoZWFkZXIsXG4gICAgICAgIGZvcm1hdFRhYmxlVmFsdWUocHJvcCwgdmFsdWUsIG9wdHMsIGRpc3BsYXlTZXR0aW5ncywgaXRlbSlcbiAgICAgICk7XG4gICAgfVxuICAgIHRhYmxlLm5ld1JvdygpO1xuICB9XG5cbiAgLy8gUmVzdG9yZSBvcmlnaW5hbCB0cnVuY2F0ZSBsZW5ndGhcbiAgVEFCTEVfVFJVTkNBVEVfSU9fTEVOR1RIID0gb3JpZ2luYWxUcnVuY2F0ZUxlbmd0aDtcbiAgcmV0dXJuIHRhYmxlLnRvU3RyaW5nKCk7XG59O1xuXG5jb25zdCBzaG93SnNvbiA9IChkYXRhOiB1bmtub3duKSA9PiB7XG4gIGNvbnN0IGpzb24gPSBKU09OLnN0cmluZ2lmeShkYXRhLCBudWxsLCAyKTtcbiAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoYCR7anNvbn1cXG5gKTtcbn07XG5cbi8qKlxuICogSW4gdGFibGVzLCB3ZSB3YW50IHRvIHNob3cgYSBzaG9ydGVyIHRpbWVzdGFtcCwgWVlZWS1NTS1ERCBISDpNTTpTU1xuICovXG5jb25zdCBmb3JtYXRUYWJsZVRpbWVzdGFtcCA9IChcbiAgdmFsdWU6IERhdGUsXG4gIG9wdHM6IEluc3BlY3RDTElPcHRpb25zID0ge30sXG4gIGRpc3BsYXlTZXR0aW5ncz86IFJldHVyblR5cGU8dHlwZW9mIGdldERpc3BsYXlTZXR0aW5ncz5cbikgPT4ge1xuICAvLyBGb3JtYXQgSVNPIHRpbWUgd2l0aG91dCBUIGFuZCBaXG4gIGNvbnN0IGlzb1RpbWUgPSBmb3JtYXRJU09EYXRlKHZhbHVlKTtcblxuICAvLyBTaG93IHJlbGF0aXZlIHRpbWUgb25seSBpZjpcbiAgLy8gLSBOb3QgaW4gQ0kgbW9kZVxuICAvLyAtIERpc3BsYXkgc2V0dGluZ3MgYWxsb3cgaXQgKGJhc2VkIG9uIHRlcm1pbmFsIHdpZHRoKVxuICAvLyAtIHdpdGhEYXRhIGlzIGRpc2FibGVkIChtb3JlIHNwYWNlIGF2YWlsYWJsZSlcbiAgLy8gLSBOb3QgaW4gSlNPTiBtb2RlXG4gIC8vIC0gZGlzYWJsZVJlbGF0aXZlRGF0ZXMgaXMgbm90IHNldFxuICBjb25zdCBzaG91bGRTaG93UmVsYXRpdmUgPVxuICAgICFpc0NJKCkgJiZcbiAgICBkaXNwbGF5U2V0dGluZ3M/LnNob3dSZWxhdGl2ZURhdGVzICE9PSBmYWxzZSAmJlxuICAgICFvcHRzLndpdGhEYXRhICYmXG4gICAgIW9wdHMuanNvbiAmJlxuICAgICFvcHRzLmRpc2FibGVSZWxhdGl2ZURhdGVzO1xuXG4gIGlmIChzaG91bGRTaG93UmVsYXRpdmUpIHtcbiAgICBjb25zdCByZWxhdGl2ZSA9IGZvcm1hdERpc3RhbmNlKHZhbHVlLCBuZXcgRGF0ZSgpLCB7IGFkZFN1ZmZpeDogdHJ1ZSB9KTtcbiAgICByZXR1cm4gYCR7aXNvVGltZX0gKCR7cmVsYXRpdmV9KWA7XG4gIH1cblxuICByZXR1cm4gaXNvVGltZTtcbn07XG5cbmNvbnN0IHRydW5jYXRlU3RyaW5nID0gKFxuICBzdHI6IHN0cmluZyxcbiAgbWF4TGVuZ3RoOiBudW1iZXIgPSBUQUJMRV9UUlVOQ0FURV9JT19MRU5HVEhcbikgPT4ge1xuICByZXR1cm4gc3RyICYmIHN0ci5sZW5ndGggPiBtYXhMZW5ndGhcbiAgICA/IGAke3N0ci5zdWJzdHJpbmcoMCwgbWF4TGVuZ3RoKX0uLi5gXG4gICAgOiBzdHI7XG59O1xuXG5jb25zdCB0cnVuY2F0ZUlkVG9MYXN0Q2hhcnMgPSAoaWQ6IHN0cmluZywgY2hhcnM6IG51bWJlciA9IDQpOiBzdHJpbmcgPT4ge1xuICBpZiAoIWlkIHx8IGlkLmxlbmd0aCA8PSBjaGFycykgcmV0dXJuIGlkO1xuICByZXR1cm4gYC4uLiR7aWQuc3Vic3RyaW5nKGlkLmxlbmd0aCAtIGNoYXJzKX1gO1xufTtcblxuY29uc3Qgc2hvd0luc3BlY3RJbmZvQm94ID0gKHJlc291cmNlOiBzdHJpbmcpID0+IHtcbiAgbG9nZ2VyLmluZm8oXG4gICAgYFRvIHZpZXcgZGV0YWlscyBmb3IgYSAke3Jlc291cmNlfSwgdXNlIFxcYHdvcmtmbG93IGluc3BlY3QgJHtyZXNvdXJjZX1cXGAgPGlkPmBcbiAgKTtcbiAgbG9nZ2VyLmluZm8oXG4gICAgYFRvIHZpZXcgdGhlIGNvbnRlbnQgb2YgYW55IHN0cmVhbSwgdXNlIFxcYHdvcmtmbG93IGluc3BlY3Qgc3RyZWFtIDxzdHJlYW0taWQ+XFxgYFxuICApO1xufTtcblxuY29uc3QgRVhQSVJFRF9EQVRBX01FU1NBR0UgPSBjaGFsay5ncmF5KCc8ZGF0YSBleHBpcmVkPicpO1xuXG4vKipcbiAqIENoZWNrcyBpZiBhIHJ1biBoYXMgZXhwaXJlZCBkYXRhIHN0b3JhZ2UgKHJ1bi1sZXZlbCBleHBpcmVkQXQgZmllbGQpXG4gKi9cbmNvbnN0IGhhc0V4cGlyZWREYXRhID0gKHJ1bjogV29ya2Zsb3dSdW4pOiBib29sZWFuID0+IHtcbiAgcmV0dXJuICdleHBpcmVkQXQnIGluIHJ1biAmJiBydW4uZXhwaXJlZEF0ICE9IG51bGw7XG59O1xuXG4vKipcbiAqIENoZWNrcyBpZiBhbnkgZGF0YSBmaWVsZCBpbiBhIGh5ZHJhdGVkIHJlc291cmNlIGhhcyBiZWVuIHJlcGxhY2VkIHdpdGggYW5cbiAqIGV4cGlyZWQgcGxhY2Vob2xkZXIuIFdvcmtzIGZvciBydW5zLCBzdGVwcywgaG9va3MsIGFuZCBldmVudHMg4oCUIHVubGlrZVxuICogYGhhc0V4cGlyZWREYXRhYCB3aGljaCBvbmx5IGNoZWNrcyB0aGUgcnVuLWxldmVsIGBleHBpcmVkQXRgIGZpZWxkLlxuICovXG5jb25zdCBoYXNFeHBpcmVkRmllbGRzID0gKHJlc291cmNlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IGJvb2xlYW4gPT4ge1xuICByZXR1cm4gWydpbnB1dCcsICdvdXRwdXQnLCAnZXJyb3InLCAnbWV0YWRhdGEnXS5zb21lKChrZXkpID0+XG4gICAgaXNFeHBpcmVkUmVmKHJlc291cmNlW2tleV0pXG4gICk7XG59O1xuXG4vKipcbiAqIFRha2VzIGh5ZHJhdGVkIHN0ZXAvd29ya2Zsb3cgaW5wdXQvb3V0cHV0IGFuZCBzZXJpYWxpemVzIGl0IGZvciBpbmxpbmUgZGlzcGxheS5cbiAqL1xuY29uc3QgaW5saW5lRm9ybWF0SU8gPSA8VD4oaW86IFQsIHRvcExldmVsOiBib29sZWFuID0gdHJ1ZSk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IHR5cGUgPSB0eXBlb2YgaW87XG4gIGxldCB2YWx1ZSA9ICcnO1xuICBpZiAoaW8gPT09IHVuZGVmaW5lZCkge1xuICAgIHZhbHVlID0gJzxlbXB0eT4nO1xuICB9IGVsc2UgaWYgKGlvID09PSBudWxsKSB7XG4gICAgdmFsdWUgPSAnPG51bGw+JztcbiAgfSBlbHNlIGlmIChpc0VuY3J5cHRlZFJlZihpbykpIHtcbiAgICB2YWx1ZSA9IGNoYWxrLmRpbS55ZWxsb3coJ1xcdXsxRjUxMn0gRW5jcnlwdGVkJyk7XG4gIH0gZWxzZSBpZiAoaXNFeHBpcmVkUmVmKGlvKSkge1xuICAgIHZhbHVlID0gY2hhbGsuZ3JheSgnPGRhdGEgZXhwaXJlZD4nKTtcbiAgfSBlbHNlIGlmIChpbyAmJiBBcnJheS5pc0FycmF5KGlvKSkge1xuICAgIGlmIChpby5sZW5ndGggPT09IDApIHtcbiAgICAgIHZhbHVlID0gJzxlbXB0eT4nO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBzdHJpbmdpZmllZCA9IGlvXG4gICAgICAgIC5tYXAoKGl0ZW0pID0+IGlubGluZUZvcm1hdElPKGl0ZW0sIGZhbHNlKSlcbiAgICAgICAgLmpvaW4oJywnKTtcbiAgICAgIGlmIChzdHJpbmdpZmllZC5sZW5ndGggPiBUQUJMRV9UUlVOQ0FURV9JT19MRU5HVEggJiYgdG9wTGV2ZWwpIHtcbiAgICAgICAgdmFsdWUgPSBjaGFsay55ZWxsb3coYCR7aW8ubGVuZ3RofSBhcmdzYCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YWx1ZSA9IHN0cmluZ2lmaWVkO1xuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIGlmICh0eXBlID09PSAnb2JqZWN0Jykge1xuICAgIGlmIChpbyBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgIHZhbHVlID0gaW8udG9JU09TdHJpbmcoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFsdWUgPSB0cnVuY2F0ZVN0cmluZyhKU09OLnN0cmluZ2lmeShpbykpO1xuICAgIH1cbiAgfSBlbHNlIGlmIChbJ3N0cmluZycsICdudW1iZXInLCAnYm9vbGVhbiddLmluY2x1ZGVzKHR5cGUpKSB7XG4gICAgaWYgKGlzU3RyZWFtSWQoaW8gYXMgc3RyaW5nKSkge1xuICAgICAgdmFsdWUgPSBpby50b1N0cmluZygpO1xuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3N0cmluZycgJiYgKGlvIGFzIHN0cmluZykuaW5jbHVkZXMoJ3N0cm1fJykpIHtcbiAgICAgIHZhbHVlID0gaW8gYXMgc3RyaW5nO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YWx1ZSA9IHRydW5jYXRlU3RyaW5nKFN0cmluZyhpbykpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB2YWx1ZSA9IGA8JHt0eXBlfT5gO1xuICB9XG4gIHJldHVybiB2YWx1ZTtcbn07XG5cbmV4cG9ydCBjb25zdCBsaXN0UnVucyA9IGFzeW5jICh3b3JsZDogV29ybGQsIG9wdHM6IEluc3BlY3RDTElPcHRpb25zID0ge30pID0+IHtcbiAgY29uc3QgcmVzb2x2ZUtleSA9IGNyZWF0ZVJlc29sdmVyKHdvcmxkLCBvcHRzPy5kZWNyeXB0ID8/IGZhbHNlKTtcblxuICBpZiAob3B0cy5zdGVwSWQgfHwgb3B0cy5ydW5JZCkge1xuICAgIGxvZ2dlci53YXJuKFxuICAgICAgJ0ZpbHRlcmluZyBieSBzdGVwLWlkIG9yIHJ1bi1pZCBpcyBub3Qgc3VwcG9ydGVkIGluIGxpc3QgY2FsbHMsIGlnbm9yaW5nIGZpbHRlci4nXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IHJlc29sdmVEYXRhID0gb3B0cy53aXRoRGF0YSA/ICdhbGwnIDogJ25vbmUnO1xuXG4gIC8vIERldGVybWluZSB3aGljaCBwcm9wcyB0byBzaG93IGJhc2VkIG9uIHdpdGhEYXRhIGZsYWdcbiAgY29uc3QgcHJvcHMgPSBvcHRzLndpdGhEYXRhXG4gICAgPyBXT1JLRkxPV19SVU5fTElTVEVEX1BST1BTXG4gICAgOiBXT1JLRkxPV19SVU5fTElTVEVEX1BST1BTLmZpbHRlcihcbiAgICAgICAgKHByb3ApID0+ICFXT1JLRkxPV19SVU5fSU9fUFJPUFMuaW5jbHVkZXMocHJvcClcbiAgICAgICk7XG5cbiAgLy8gRm9yIEpTT04gb3V0cHV0LCBqdXN0IGZldGNoIG9uY2UgYW5kIHJldHVyblxuICBpZiAob3B0cy5qc29uKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJ1bnMgPSBhd2FpdCB3b3JsZC5ydW5zLmxpc3Qoe1xuICAgICAgICB3b3JrZmxvd05hbWU6IG9wdHMud29ya2Zsb3dOYW1lLFxuICAgICAgICBzdGF0dXM6IG9wdHMuc3RhdHVzIGFzIGFueSxcbiAgICAgICAgcGFnaW5hdGlvbjoge1xuICAgICAgICAgIHNvcnRPcmRlcjogb3B0cy5zb3J0IHx8ICdkZXNjJyxcbiAgICAgICAgICBjdXJzb3I6IG9wdHMuY3Vyc29yLFxuICAgICAgICAgIGxpbWl0OiBvcHRzLmxpbWl0IHx8IERFRkFVTFRfUEFHRV9TSVpFLFxuICAgICAgICB9LFxuICAgICAgICByZXNvbHZlRGF0YSxcbiAgICAgIH0pO1xuICAgICAgY29uc3QgcnVuc1dpdGhIeWRyYXRlZElPID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgIHJ1bnMuZGF0YS5tYXAoKHIpID0+IGh5ZHJhdGVSZXNvdXJjZUlPKHIsIHJlc29sdmVLZXkpKVxuICAgICAgKTtcbiAgICAgIHNob3dKc29uKHsgLi4ucnVucywgZGF0YTogcnVuc1dpdGhIeWRyYXRlZElPIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBpZiAoaGFuZGxlQXBpRXJyb3IoZXJyb3IsIG9wdHMuYmFja2VuZCkpIHtcbiAgICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgICAgfVxuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9XG5cbiAgYXdhaXQgc2V0dXBMaXN0UGFnaW5hdGlvbjxXb3JrZmxvd1J1biB8IFdvcmtmbG93UnVuV2l0aG91dERhdGE+KHtcbiAgICBpbml0aWFsQ3Vyc29yOiBvcHRzLmN1cnNvcixcbiAgICBpbnRlcmFjdGl2ZTogb3B0cy5pbnRlcmFjdGl2ZSxcbiAgICBmZXRjaFBhZ2U6IGFzeW5jIChjdXJzb3IpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJ1bnMgPSBhd2FpdCB3b3JsZC5ydW5zLmxpc3Qoe1xuICAgICAgICAgIHdvcmtmbG93TmFtZTogb3B0cy53b3JrZmxvd05hbWUsXG4gICAgICAgICAgc3RhdHVzOiBvcHRzLnN0YXR1cyBhcyBhbnksXG4gICAgICAgICAgcGFnaW5hdGlvbjoge1xuICAgICAgICAgICAgc29ydE9yZGVyOiBvcHRzLnNvcnQgfHwgJ2Rlc2MnLFxuICAgICAgICAgICAgY3Vyc29yLFxuICAgICAgICAgICAgbGltaXQ6IG9wdHMubGltaXQgfHwgREVGQVVMVF9QQUdFX1NJWkUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXNvbHZlRGF0YSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZGF0YTogcnVucy5kYXRhLFxuICAgICAgICAgIGN1cnNvcjogcnVucy5jdXJzb3IsXG4gICAgICAgICAgaGFzTW9yZTogcnVucy5oYXNNb3JlLFxuICAgICAgICB9O1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaWYgKGhhbmRsZUFwaUVycm9yKGVycm9yLCBvcHRzLmJhY2tlbmQpKSB7XG4gICAgICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfVxuICAgIH0sXG4gICAgZGlzcGxheVBhZ2U6IGFzeW5jIChydW5zKSA9PiB7XG4gICAgICBjb25zdCBydW5zV2l0aEh5ZHJhdGVkSU8gPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgcnVucy5tYXAoKHIpID0+IGh5ZHJhdGVSZXNvdXJjZUlPKHIsIHJlc29sdmVLZXkpKVxuICAgICAgKTtcbiAgICAgIGxvZ2dlci5sb2coc2hvd1RhYmxlKHJ1bnNXaXRoSHlkcmF0ZWRJTywgcHJvcHMsIG9wdHMpKTtcbiAgICB9LFxuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRSZWNlbnRSdW4gPSBhc3luYyAoXG4gIHdvcmxkOiBXb3JsZCxcbiAgb3B0czogSW5zcGVjdENMSU9wdGlvbnMgPSB7fVxuKSA9PiB7XG4gIGNvbnN0IHJlc29sdmVLZXkgPSBjcmVhdGVSZXNvbHZlcih3b3JsZCwgb3B0cz8uZGVjcnlwdCA/PyBmYWxzZSk7XG5cbiAgbG9nZ2VyLndhcm4oYE5vIHJ1bklkIHByb3ZpZGVkLCBmZXRjaGluZyBkYXRhIGZvciBsYXRlc3QgcnVuIGluc3RlYWQuYCk7XG4gIHRyeSB7XG4gICAgY29uc3QgcnVucyA9IGF3YWl0IHdvcmxkLnJ1bnMubGlzdCh7XG4gICAgICBwYWdpbmF0aW9uOiB7IGxpbWl0OiAxLCBzb3J0T3JkZXI6IG9wdHMuc29ydCB8fCAnZGVzYycgfSxcbiAgICAgIHJlc29sdmVEYXRhOiAnbm9uZScsIC8vIERvbid0IG5lZWQgZGF0YSBmb3IganVzdCBnZXR0aW5nIHRoZSBJRFxuICAgIH0pO1xuICAgIHJ1bnMuZGF0YSA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgcnVucy5kYXRhLm1hcCgocikgPT4gaHlkcmF0ZVJlc291cmNlSU8ociwgcmVzb2x2ZUtleSkpXG4gICAgKTtcbiAgICByZXR1cm4gcnVucy5kYXRhWzBdO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGlmIChoYW5kbGVBcGlFcnJvcihlcnJvciwgb3B0cy5iYWNrZW5kKSkge1xuICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgIH1cbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHNob3dSdW4gPSBhc3luYyAoXG4gIHdvcmxkOiBXb3JsZCxcbiAgcnVuSWQ6IHN0cmluZyxcbiAgb3B0czogSW5zcGVjdENMSU9wdGlvbnMgPSB7fVxuKSA9PiB7XG4gIGNvbnN0IHJlc29sdmVLZXkgPSBjcmVhdGVSZXNvbHZlcih3b3JsZCwgb3B0cz8uZGVjcnlwdCA/PyBmYWxzZSk7XG5cbiAgaWYgKG9wdHMud2l0aERhdGEpIHtcbiAgICBsb2dnZXIud2FybignYHdpdGhEYXRhYCBmbGFnIGlzIGlnbm9yZWQgd2hlbiBzaG93aW5nIGluZGl2aWR1YWwgcmVzb3VyY2VzJyk7XG4gIH1cbiAgdHJ5IHtcbiAgICBjb25zdCBydW4gPSBhd2FpdCB3b3JsZC5ydW5zLmdldChydW5JZCwgeyByZXNvbHZlRGF0YTogJ2FsbCcgfSk7XG4gICAgY29uc3QgcnVuV2l0aEh5ZHJhdGVkSU8gPSBhd2FpdCBoeWRyYXRlUmVzb3VyY2VJTyhydW4sIHJlc29sdmVLZXkpO1xuICAgIGlmIChvcHRzLmpzb24pIHtcbiAgICAgIHNob3dKc29uKHJ1bldpdGhIeWRyYXRlZElPKTtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGhhc0V4cGlyZWREYXRhKHJ1bikpIHtcbiAgICAgICAgbG9nZ2VyLndhcm4oXG4gICAgICAgICAgXCJUaGlzIHJ1bidzIGRhdGEgKGlucHV0L291dHB1dC9lcnJvcikgaGFzIGV4cGlyZWQgYW5kIGlzIG5vIGxvbmdlciBhdmFpbGFibGUuXCJcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGxvZ2dlci5sb2cocnVuV2l0aEh5ZHJhdGVkSU8pO1xuICAgIH1cbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBpZiAoaGFuZGxlQXBpRXJyb3IoZXJyb3IsIG9wdHMuYmFja2VuZCkpIHtcbiAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB9XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBsaXN0U3RlcHMgPSBhc3luYyAoXG4gIHdvcmxkOiBXb3JsZCxcbiAgb3B0czogSW5zcGVjdENMSU9wdGlvbnMgPSB7XG4gICAgcnVuSWQ6IHVuZGVmaW5lZCxcbiAgfVxuKSA9PiB7XG4gIGNvbnN0IHJlc29sdmVLZXkgPSBjcmVhdGVSZXNvbHZlcih3b3JsZCwgb3B0cz8uZGVjcnlwdCA/PyBmYWxzZSk7XG5cbiAgaWYgKG9wdHMuc3RlcElkKSB7XG4gICAgbG9nZ2VyLndhcm4oXG4gICAgICAnRmlsdGVyaW5nIGJ5IHN0ZXAtaWQgaXMgbm90IHN1cHBvcnRlZCBpbiBsaXN0IGNhbGxzLCBpZ25vcmluZyBmaWx0ZXIuJ1xuICAgICk7XG4gIH1cbiAgaWYgKG9wdHMud29ya2Zsb3dOYW1lKSB7XG4gICAgbG9nZ2VyLndhcm4oXG4gICAgICAnRmlsdGVyaW5nIGJ5IHdvcmtmbG93LW5hbWUgaXMgbm90IHN1cHBvcnRlZCBmb3Igc3RlcHMsIGlnbm9yaW5nIGZpbHRlci4nXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IHJ1bklkID0gb3B0cy5ydW5JZFxuICAgID8gb3B0cy5ydW5JZFxuICAgIDogKGF3YWl0IGdldFJlY2VudFJ1bih3b3JsZCwgb3B0cykpPy5ydW5JZDtcbiAgaWYgKCFydW5JZCkge1xuICAgIGxvZ2dlci5lcnJvcignTm8gcnVuIGZvdW5kLicpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHJlc29sdmVEYXRhID0gb3B0cy53aXRoRGF0YSA/ICdhbGwnIDogJ25vbmUnO1xuXG4gIC8vIERldGVybWluZSB3aGljaCBwcm9wcyB0byBzaG93IGJhc2VkIG9uIHdpdGhEYXRhIGZsYWdcbiAgY29uc3QgcHJvcHMgPSBvcHRzLndpdGhEYXRhXG4gICAgPyBTVEVQX0xJU1RFRF9QUk9QU1xuICAgIDogU1RFUF9MSVNURURfUFJPUFMuZmlsdGVyKChwcm9wKSA9PiAhU1RFUF9JT19QUk9QUy5pbmNsdWRlcyhwcm9wKSk7XG5cbiAgLy8gRm9yIEpTT04gb3V0cHV0LCBqdXN0IGZldGNoIG9uY2UgYW5kIHJldHVyblxuICBpZiAob3B0cy5qc29uKSB7XG4gICAgbG9nZ2VyLmRlYnVnKGBGZXRjaGluZyBzdGVwcyBmb3IgcnVuICR7cnVuSWR9YCk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHN0ZXBDaHVua3MgPSBhd2FpdCB3b3JsZC5zdGVwcy5saXN0KHtcbiAgICAgICAgcnVuSWQsXG4gICAgICAgIHBhZ2luYXRpb246IHtcbiAgICAgICAgICBzb3J0T3JkZXI6IG9wdHMuc29ydCB8fCAnZGVzYycsXG4gICAgICAgICAgY3Vyc29yOiBvcHRzLmN1cnNvcixcbiAgICAgICAgICBsaW1pdDogb3B0cy5saW1pdCB8fCBERUZBVUxUX1BBR0VfU0laRSxcbiAgICAgICAgfSxcbiAgICAgICAgcmVzb2x2ZURhdGEsXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IHN0ZXBzV2l0aEh5ZHJhdGVkSU8gPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgc3RlcENodW5rcy5kYXRhLm1hcCgocykgPT4gaHlkcmF0ZVJlc291cmNlSU8ocywgcmVzb2x2ZUtleSkpXG4gICAgICApO1xuICAgICAgc2hvd0pzb24oc3RlcHNXaXRoSHlkcmF0ZWRJTyk7XG4gICAgICByZXR1cm47XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGlmIChoYW5kbGVBcGlFcnJvcihlcnJvciwgb3B0cy5iYWNrZW5kKSkge1xuICAgICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgICB9XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH1cblxuICBhd2FpdCBzZXR1cExpc3RQYWdpbmF0aW9uPFN0ZXAgfCBTdGVwV2l0aG91dERhdGE+KHtcbiAgICBpbml0aWFsQ3Vyc29yOiBvcHRzLmN1cnNvcixcbiAgICBpbnRlcmFjdGl2ZTogb3B0cy5pbnRlcmFjdGl2ZSxcbiAgICBmZXRjaFBhZ2U6IGFzeW5jIChjdXJzb3IpID0+IHtcbiAgICAgIGxvZ2dlci5kZWJ1ZyhgRmV0Y2hpbmcgc3RlcHMgZm9yIHJ1biAke3J1bklkfWApO1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3Qgc3RlcENodW5rcyA9IGF3YWl0IHdvcmxkLnN0ZXBzLmxpc3Qoe1xuICAgICAgICAgIHJ1bklkLFxuICAgICAgICAgIHBhZ2luYXRpb246IHtcbiAgICAgICAgICAgIHNvcnRPcmRlcjogb3B0cy5zb3J0IHx8ICdkZXNjJyxcbiAgICAgICAgICAgIGN1cnNvcixcbiAgICAgICAgICAgIGxpbWl0OiBvcHRzLmxpbWl0IHx8IERFRkFVTFRfUEFHRV9TSVpFLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVzb2x2ZURhdGEsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGRhdGE6IHN0ZXBDaHVua3MuZGF0YSxcbiAgICAgICAgICBjdXJzb3I6IHN0ZXBDaHVua3MuY3Vyc29yLFxuICAgICAgICAgIGhhc01vcmU6IHN0ZXBDaHVua3MuaGFzTW9yZSxcbiAgICAgICAgfTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGlmIChoYW5kbGVBcGlFcnJvcihlcnJvciwgb3B0cy5iYWNrZW5kKSkge1xuICAgICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH1cbiAgICB9LFxuICAgIGRpc3BsYXlQYWdlOiBhc3luYyAoc3RlcHMpID0+IHtcbiAgICAgIGNvbnN0IHN0ZXBzV2l0aEh5ZHJhdGVkSU8gPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgc3RlcHMubWFwKChzKSA9PiBoeWRyYXRlUmVzb3VyY2VJTyhzLCByZXNvbHZlS2V5KSlcbiAgICAgICk7XG4gICAgICBsb2dnZXIubG9nKHNob3dUYWJsZShzdGVwc1dpdGhIeWRyYXRlZElPLCBwcm9wcywgb3B0cykpO1xuICAgICAgc2hvd0luc3BlY3RJbmZvQm94KCdzdGVwJyk7XG4gICAgfSxcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3Qgc2hvd1N0ZXAgPSBhc3luYyAoXG4gIHdvcmxkOiBXb3JsZCxcbiAgc3RlcElkOiBzdHJpbmcsXG4gIG9wdHM6IEluc3BlY3RDTElPcHRpb25zID0ge31cbikgPT4ge1xuICBjb25zdCByZXNvbHZlS2V5ID0gY3JlYXRlUmVzb2x2ZXIod29ybGQsIG9wdHM/LmRlY3J5cHQgPz8gZmFsc2UpO1xuXG4gIGlmIChvcHRzLndpdGhEYXRhKSB7XG4gICAgbG9nZ2VyLndhcm4oJ2B3aXRoRGF0YWAgZmxhZyBpcyBpZ25vcmVkIHdoZW4gc2hvd2luZyBpbmRpdmlkdWFsIHJlc291cmNlcycpO1xuICB9XG4gIGlmIChvcHRzLnN0ZXBJZCkge1xuICAgIGxvZ2dlci53YXJuKFxuICAgICAgJ0ZpbHRlcmluZyBieSBzdGVwLWlkIGlzIG5vdCBzdXBwb3J0ZWQgaW4gZ2V0IGNhbGxzLCBpZ25vcmluZyBmaWx0ZXIuJ1xuICAgICk7XG4gIH1cblxuICBjb25zdCBydW5JZCA9IG9wdHMucnVuSWQgPz8gKGF3YWl0IGdldFJlY2VudFJ1bih3b3JsZCwgb3B0cykpPy5ydW5JZDtcbiAgaWYgKCFydW5JZCkge1xuICAgIGxvZ2dlci5lcnJvcihcbiAgICAgICdydW4taWQgaXMgcmVxdWlyZWQgZm9yIHNob3dpbmcgYSBzdGVwLiBVc2FnZTogYHdvcmtmbG93IGluc3BlY3Qgc3RlcCA8U1RFUF9JRD4gLS1ydW5JZD08UlVOX0lEPmAnXG4gICAgKTtcbiAgICByZXR1cm47XG4gIH1cblxuICB0cnkge1xuICAgIGNvbnN0IHN0ZXAgPSBhd2FpdCB3b3JsZC5zdGVwcy5nZXQocnVuSWQsIHN0ZXBJZCwge1xuICAgICAgcmVzb2x2ZURhdGE6ICdhbGwnLFxuICAgIH0pO1xuICAgIGNvbnN0IHN0ZXBXaXRoSHlkcmF0ZWRJTyA9IGF3YWl0IGh5ZHJhdGVSZXNvdXJjZUlPKHN0ZXAsIHJlc29sdmVLZXkpO1xuICAgIGlmIChvcHRzLmpzb24pIHtcbiAgICAgIHNob3dKc29uKHN0ZXBXaXRoSHlkcmF0ZWRJTyk7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChcbiAgICAgICAgaGFzRXhwaXJlZEZpZWxkcyhcbiAgICAgICAgICBzdGVwV2l0aEh5ZHJhdGVkSU8gYXMgdW5rbm93biBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICAgICAgICApXG4gICAgICApIHtcbiAgICAgICAgbG9nZ2VyLndhcm4oXG4gICAgICAgICAgXCJUaGlzIHN0ZXAncyBkYXRhIChpbnB1dC9vdXRwdXQvZXJyb3IpIGhhcyBleHBpcmVkIGFuZCBpcyBubyBsb25nZXIgYXZhaWxhYmxlLlwiXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBsb2dnZXIubG9nKHN0ZXBXaXRoSHlkcmF0ZWRJTyk7XG4gICAgfVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGlmIChoYW5kbGVBcGlFcnJvcihlcnJvciwgb3B0cy5iYWNrZW5kKSkge1xuICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgIH1cbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHNob3dTdHJlYW0gPSBhc3luYyAoXG4gIHdvcmxkOiBXb3JsZCxcbiAgc3RyZWFtSWQ6IHN0cmluZyxcbiAgb3B0czogSW5zcGVjdENMSU9wdGlvbnMgPSB7fVxuKSA9PiB7XG4gIGlmIChvcHRzLnN0ZXBJZCkge1xuICAgIGxvZ2dlci53YXJuKFxuICAgICAgJ0ZpbHRlcmluZyBieSBzdGVwLWlkIGlzIG5vdCBzdXBwb3J0ZWQgd2hlbiBzaG93aW5nIGEgc3RyZWFtLCBpZ25vcmluZyBmaWx0ZXIuJ1xuICAgICk7XG4gIH1cbiAgY29uc3QgcmF3U3RyZWFtID0gYXdhaXQgd29ybGQucmVhZEZyb21TdHJlYW0oc3RyZWFtSWQpO1xuXG4gIC8vIE9ubHkgcmVzb2x2ZSB0aGUgZW5jcnlwdGlvbiBrZXkgd2hlbiAtLWRlY3J5cHQgaXMgcGFzc2VkIGFuZCAtLXJ1biBpcyBwcm92aWRlZC5cbiAgLy8gV2UgZmV0Y2ggdGhlIGZ1bGwgV29ya2Zsb3dSdW4gb2JqZWN0IHNvIHRoYXQgZ2V0RW5jcnlwdGlvbktleUZvclJ1biBoYXNcbiAgLy8gYWNjZXNzIHRvIHRoZSBkZXBsb3ltZW50SWQgKG5lZWRlZCBmb3IgQVBJLWJhc2VkIGtleSByZXNvbHV0aW9uKS5cbiAgbGV0IGVuY3J5cHRpb25LZXk6IEVuY3J5cHRpb25LZXlQYXJhbTtcbiAgaWYgKG9wdHMuZGVjcnlwdCAmJiBvcHRzLnJ1bklkKSB7XG4gICAgZW5jcnlwdGlvbktleSA9IChhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBydW4gPSBhd2FpdCB3b3JsZC5ydW5zLmdldChvcHRzLnJ1bklkISk7XG4gICAgICBjb25zdCByYXdLZXkgPSBhd2FpdCB3b3JsZC5nZXRFbmNyeXB0aW9uS2V5Rm9yUnVuPy4ocnVuKTtcbiAgICAgIHJldHVybiByYXdLZXkgPyBhd2FpdCBpbXBvcnRLZXkocmF3S2V5KSA6IHVuZGVmaW5lZDtcbiAgICB9KSgpO1xuICB9IGVsc2UgaWYgKG9wdHMuZGVjcnlwdCAmJiAhb3B0cy5ydW5JZCkge1xuICAgIGxvZ2dlci53YXJuKFxuICAgICAgJ0Nhbm5vdCBkZWNyeXB0IHN0cmVhbSBjb250ZW50IHdpdGhvdXQgYSBydW4gSUQuIFVzZSAtLXJ1bj08cnVuLWlkPiB3aXRoIC0tZGVjcnlwdC4nXG4gICAgKTtcbiAgfVxuXG4gIC8vIERlc2VyaWFsaXplIHRoZSBzdHJlYW0gdG8gZ2V0IEphdmFTY3JpcHQgb2JqZWN0c1xuICBjb25zdCByZXZpdmVycyA9IGdldEV4dGVybmFsUmV2aXZlcnMoXG4gICAgZ2xvYmFsVGhpcyxcbiAgICBbXSxcbiAgICBvcHRzLnJ1bklkID8/ICcnLFxuICAgIGVuY3J5cHRpb25LZXlcbiAgKTtcbiAgY29uc3QgdHJhbnNmb3JtID0gZ2V0RGVzZXJpYWxpemVTdHJlYW0ocmV2aXZlcnMsIGVuY3J5cHRpb25LZXkpO1xuICBjb25zdCBzdHJlYW0gPSByYXdTdHJlYW0ucGlwZVRocm91Z2godHJhbnNmb3JtKTtcblxuICBsb2dnZXIuaW5mbygnU3RyZWFtaW5nIHRvIHN0ZG91dCwgcHJlc3MgQ1RSTCtDIHRvIGFib3J0LicpO1xuICBsb2dnZXIuaW5mbyhcbiAgICAnVXNlIC0tanNvbiB0byBvdXRwdXQgdGhlIHN0cmVhbSBhcyBuZXdsaW5lLWRlbGltaXRlZCBKU09OIHdpdGhvdXQgaW5mbyBsb2dzLlxcbidcbiAgKTtcbiAgYXdhaXQgc3RyZWFtVG9Db25zb2xlKHN0cmVhbSwgc3RyZWFtSWQsIG9wdHMpO1xufTtcblxuLyoqXG4gKiBMaXN0aW5nIHN0cmVhbXMgb25seSBsaXN0cyBhdmFpbGFibGUgc3RyZWFtIElEcyBiYXNlZCBvbiBydW4vc3RlcCBwYXNzZWQsXG4gKiBhbmQgZG9lc24ndCByZWFkIGFueSBkYXRhIGZyb20gdGhlIHN0cmVhbXMuXG4gKi9cbmV4cG9ydCBjb25zdCBsaXN0U3RyZWFtc0J5UnVuSWQgPSBhc3luYyAoXG4gIHdvcmxkOiBXb3JsZCxcbiAgb3B0czogSW5zcGVjdENMSU9wdGlvbnMgPSB7fVxuKSA9PiB7XG4gIGlmIChvcHRzLndpdGhEYXRhKSB7XG4gICAgbG9nZ2VyLndhcm4oJ2B3aXRoRGF0YWAgZmxhZyBpcyBpZ25vcmVkIHdoZW4gbGlzdGluZyBzdHJlYW1zJyk7XG4gIH1cbiAgaWYgKG9wdHMud29ya2Zsb3dOYW1lKSB7XG4gICAgbG9nZ2VyLndhcm4oXG4gICAgICAnRmlsdGVyaW5nIGJ5IHdvcmtmbG93LW5hbWUgaXMgbm90IHN1cHBvcnRlZCBmb3Igc3RyZWFtcywgaWdub3JpbmcgZmlsdGVyLidcbiAgICApO1xuICB9XG4gIGlmIChvcHRzLnN0ZXBJZCkge1xuICAgIGxvZ2dlci53YXJuKFxuICAgICAgJ0ZpbHRlcmluZyBieSBzdGVwLWlkIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHN0cmVhbXMsIGlnbm9yaW5nIGZpbHRlci4nXG4gICAgKTtcbiAgfVxuXG4gIGxldCBydW5JZCA9IG9wdHMucnVuSWQ7XG4gIGlmICghcnVuSWQpIHtcbiAgICBsb2dnZXIud2FybihcbiAgICAgICdObyBydW4taWQgcHJvdmlkZWQuIExpc3Rpbmcgc3RyZWFtcyBmb3IgbGF0ZXN0IHJ1biBpbnN0ZWFkLicsXG4gICAgICAnVXNlIC0tcnVuPTxydW4taWQ+IHRvIGZpbHRlciBzdHJlYW1zIGJ5IHJ1bi4nXG4gICAgKTtcbiAgICBjb25zdCBydW4gPSBhd2FpdCBnZXRSZWNlbnRSdW4od29ybGQsIG9wdHMpO1xuICAgIGlmICghcnVuKSB7XG4gICAgICBsb2dnZXIud2FybignTm8gcnVucyBmb3VuZC4nKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgcnVuSWQgPSBydW4ucnVuSWQ7XG4gIH1cblxuICB0cnkge1xuICAgIGNvbnN0IHN0cmVhbUlkcyA9IGF3YWl0IHdvcmxkLmxpc3RTdHJlYW1zQnlSdW5JZChydW5JZCk7XG4gICAgY29uc3QgbWF0Y2hpbmdTdHJlYW1zID0gc3RyZWFtSWRzLm1hcCgoc3RyZWFtSWQpID0+ICh7XG4gICAgICBydW5JZCxcbiAgICAgIHN0cmVhbUlkLFxuICAgIH0pKTtcblxuICAgIGlmIChvcHRzLmpzb24pIHtcbiAgICAgIHNob3dKc29uKG1hdGNoaW5nU3RyZWFtcyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxvZ2dlci5sb2coc2hvd1RhYmxlKG1hdGNoaW5nU3RyZWFtcywgWydydW5JZCcsICdzdHJlYW1JZCddKSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgaWYgKGhhbmRsZUFwaUVycm9yKGVycm9yLCBvcHRzLmJhY2tlbmQpKSB7XG4gICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgfVxuICAgIHRocm93IGVycm9yO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgbGlzdEV2ZW50cyA9IGFzeW5jIChcbiAgd29ybGQ6IFdvcmxkLFxuICBvcHRzOiBJbnNwZWN0Q0xJT3B0aW9ucyA9IHt9XG4pID0+IHtcbiAgY29uc3QgcmVzb2x2ZUtleSA9IGNyZWF0ZVJlc29sdmVyKHdvcmxkLCBvcHRzPy5kZWNyeXB0ID8/IGZhbHNlKTtcbiAgaWYgKG9wdHMud29ya2Zsb3dOYW1lKSB7XG4gICAgbG9nZ2VyLndhcm4oXG4gICAgICAnRmlsdGVyaW5nIGJ5IHdvcmtmbG93LW5hbWUgaXMgbm90IHN1cHBvcnRlZCBmb3IgZXZlbnRzLCBpZ25vcmluZyBmaWx0ZXIuJ1xuICAgICk7XG4gIH1cblxuICBjb25zdCBydW5JZCA9IG9wdHMucnVuSWQgPz8gKGF3YWl0IGdldFJlY2VudFJ1bih3b3JsZCwgb3B0cykpPy5ydW5JZDtcbiAgaWYgKCFydW5JZCkge1xuICAgIGxvZ2dlci5lcnJvcignTm8gcnVuIGZvdW5kLicpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGNvcnJlbGF0aW9uSWRGaWx0ZXIgPSBvcHRzLmhvb2tJZCB8fCBvcHRzLnN0ZXBJZDtcbiAgY29uc3QgcGFyYW1zOiBMaXN0RXZlbnRzUGFyYW1zID0ge1xuICAgIHJ1bklkLFxuICAgIHBhZ2luYXRpb246IHtcbiAgICAgIHNvcnRPcmRlcjogb3B0cy5zb3J0IHx8ICdkZXNjJyxcbiAgICAgIGN1cnNvcjogb3B0cy5jdXJzb3IsXG4gICAgICBsaW1pdDogb3B0cy5saW1pdCB8fCBERUZBVUxUX1BBR0VfU0laRSxcbiAgICB9LFxuICAgIHJlc29sdmVEYXRhOiBvcHRzLndpdGhEYXRhID8gJ2FsbCcgOiAnbm9uZScsXG4gIH07XG4gIGNvbnN0IGxpc3RDYWxsID0gYXN5bmMgKHBhZ2luYXRpb246IFBhZ2luYXRpb25PcHRpb25zKSA9PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgd29ybGQuZXZlbnRzLmxpc3Qoe1xuICAgICAgLi4ucGFyYW1zLFxuICAgICAgcGFnaW5hdGlvbjogeyAuLi5wYXJhbXMucGFnaW5hdGlvbiwgLi4ucGFnaW5hdGlvbiB9LFxuICAgIH0pO1xuICAgIGlmIChjb3JyZWxhdGlvbklkRmlsdGVyKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5yZXN1bHQsXG4gICAgICAgIGRhdGE6IHJlc3VsdC5kYXRhLmZpbHRlcihcbiAgICAgICAgICAoZSkgPT4gZS5jb3JyZWxhdGlvbklkID09PSBjb3JyZWxhdGlvbklkRmlsdGVyXG4gICAgICAgICksXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9O1xuXG4gIC8vIERldGVybWluZSB3aGljaCBwcm9wcyB0byBzaG93IGJhc2VkIG9uIHdpdGhEYXRhIGZsYWdcbiAgY29uc3QgcHJvcHMgPSBvcHRzLndpdGhEYXRhXG4gICAgPyBFVkVOVF9MSVNURURfUFJPUFNcbiAgICA6IEVWRU5UX0xJU1RFRF9QUk9QUy5maWx0ZXIoKHByb3ApID0+ICFFVkVOVF9JT19QUk9QUy5pbmNsdWRlcyhwcm9wKSk7XG5cbiAgLy8gRm9yIEpTT04gb3V0cHV0LCBqdXN0IGZldGNoIG9uY2UgYW5kIHJldHVyblxuICBpZiAob3B0cy5qc29uKSB7XG4gICAgbG9nZ2VyLmRlYnVnKGBGZXRjaGluZyBldmVudHMgZm9yIHJ1biAke3J1bklkfWApO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBldmVudHMgPSBhd2FpdCBsaXN0Q2FsbCh7fSk7XG4gICAgICBjb25zdCBoeWRyYXRlZEV2ZW50cyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICBldmVudHMuZGF0YS5tYXAoKGUpID0+IGh5ZHJhdGVSZXNvdXJjZUlPKGUsIHJlc29sdmVLZXkpKVxuICAgICAgKTtcbiAgICAgIHNob3dKc29uKGh5ZHJhdGVkRXZlbnRzKTtcbiAgICAgIHJldHVybjtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaWYgKGhhbmRsZUFwaUVycm9yKGVycm9yLCBvcHRzLmJhY2tlbmQpKSB7XG4gICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgIH1cbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgfVxuXG4gIGF3YWl0IHNldHVwTGlzdFBhZ2luYXRpb248RXZlbnQ+KHtcbiAgICBpbml0aWFsQ3Vyc29yOiBvcHRzLmN1cnNvcixcbiAgICBpbnRlcmFjdGl2ZTogb3B0cy5pbnRlcmFjdGl2ZSxcbiAgICBmZXRjaFBhZ2U6IGFzeW5jIChjdXJzb3IpID0+IHtcbiAgICAgIGxvZ2dlci5kZWJ1ZyhgRmV0Y2hpbmcgZXZlbnRzIGZvciBydW4gJHtydW5JZH1gKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGV2ZW50cyA9IGF3YWl0IGxpc3RDYWxsKHsgY3Vyc29yIH0pO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGRhdGE6IGV2ZW50cy5kYXRhLFxuICAgICAgICAgIGN1cnNvcjogZXZlbnRzLmN1cnNvcixcbiAgICAgICAgICBoYXNNb3JlOiBldmVudHMuaGFzTW9yZSxcbiAgICAgICAgfTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGlmIChoYW5kbGVBcGlFcnJvcihlcnJvciwgb3B0cy5iYWNrZW5kKSkge1xuICAgICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH1cbiAgICB9LFxuICAgIGRpc3BsYXlQYWdlOiBhc3luYyAoZXZlbnRzKSA9PiB7XG4gICAgICBjb25zdCBoeWRyYXRlZEV2ZW50cyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICBldmVudHMubWFwKChlKSA9PiBoeWRyYXRlUmVzb3VyY2VJTyhlLCByZXNvbHZlS2V5KSlcbiAgICAgICk7XG4gICAgICBsb2dnZXIubG9nKHNob3dUYWJsZShoeWRyYXRlZEV2ZW50cywgcHJvcHMsIG9wdHMpKTtcbiAgICAgIHNob3dJbnNwZWN0SW5mb0JveCgnZXZlbnQnKTtcbiAgICB9LFxuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBsaXN0SG9va3MgPSBhc3luYyAod29ybGQ6IFdvcmxkLCBvcHRzOiBJbnNwZWN0Q0xJT3B0aW9ucyA9IHt9KSA9PiB7XG4gIGNvbnN0IHJlc29sdmVLZXkgPSBjcmVhdGVSZXNvbHZlcih3b3JsZCwgb3B0cz8uZGVjcnlwdCA/PyBmYWxzZSk7XG5cbiAgaWYgKG9wdHMud29ya2Zsb3dOYW1lKSB7XG4gICAgbG9nZ2VyLndhcm4oXG4gICAgICAnRmlsdGVyaW5nIGJ5IHdvcmtmbG93LW5hbWUgaXMgbm90IHN1cHBvcnRlZCBmb3IgaG9va3MsIGlnbm9yaW5nIGZpbHRlci4nXG4gICAgKTtcbiAgfVxuICBpZiAob3B0cy5zdGVwSWQpIHtcbiAgICBsb2dnZXIud2FybihcbiAgICAgICdGaWx0ZXJpbmcgYnkgc3RlcC1pZCBpcyBub3Qgc3VwcG9ydGVkIGZvciBob29rcywgaWdub3JpbmcgZmlsdGVyLidcbiAgICApO1xuICB9XG5cbiAgY29uc3QgcnVuSWQgPSBvcHRzLnJ1bklkO1xuICBjb25zdCByZXNvbHZlRGF0YSA9IG9wdHMud2l0aERhdGEgPyAnYWxsJyA6ICdub25lJztcblxuICAvLyBGb3IgSlNPTiBvdXRwdXQsIGp1c3QgZmV0Y2ggb25jZSBhbmQgcmV0dXJuXG4gIGlmIChvcHRzLmpzb24pIHtcbiAgICBpZiAoIXJ1bklkKSB7XG4gICAgICBsb2dnZXIuZGVidWcoJ0ZldGNoaW5nIGFsbCBob29rcycpO1xuICAgIH0gZWxzZSB7XG4gICAgICBsb2dnZXIuZGVidWcoYEZldGNoaW5nIGhvb2tzIGZvciBydW4gJHtydW5JZH1gKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGhvb2tzID0gYXdhaXQgd29ybGQuaG9va3MubGlzdCh7XG4gICAgICAgIHJ1bklkLFxuICAgICAgICBwYWdpbmF0aW9uOiB7XG4gICAgICAgICAgc29ydE9yZGVyOiBvcHRzLnNvcnQgfHwgJ2Rlc2MnLFxuICAgICAgICAgIGN1cnNvcjogb3B0cy5jdXJzb3IsXG4gICAgICAgICAgbGltaXQ6IG9wdHMubGltaXQgfHwgREVGQVVMVF9QQUdFX1NJWkUsXG4gICAgICAgIH0sXG4gICAgICAgIHJlc29sdmVEYXRhLFxuICAgICAgfSk7XG4gICAgICBjb25zdCBoeWRyYXRlZEhvb2tzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgIGhvb2tzLmRhdGEubWFwKChoKSA9PiBoeWRyYXRlUmVzb3VyY2VJTyhoLCByZXNvbHZlS2V5KSlcbiAgICAgICk7XG4gICAgICBzaG93SnNvbih7IC4uLmhvb2tzLCBkYXRhOiBoeWRyYXRlZEhvb2tzIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBpZiAoaGFuZGxlQXBpRXJyb3IoZXJyb3IsIG9wdHMuYmFja2VuZCkpIHtcbiAgICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgICAgfVxuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9XG5cbiAgLy8gU2V0dXAgcGFnaW5hdGlvbiB3aXRoIG5ldyBtZWNoYW5pc21cbiAgYXdhaXQgc2V0dXBMaXN0UGFnaW5hdGlvbjxIb29rPih7XG4gICAgaW5pdGlhbEN1cnNvcjogb3B0cy5jdXJzb3IsXG4gICAgaW50ZXJhY3RpdmU6IG9wdHMuaW50ZXJhY3RpdmUsXG4gICAgZmV0Y2hQYWdlOiBhc3luYyAoY3Vyc29yKSA9PiB7XG4gICAgICBpZiAoIXJ1bklkKSB7XG4gICAgICAgIGxvZ2dlci5kZWJ1ZygnRmV0Y2hpbmcgYWxsIGhvb2tzJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsb2dnZXIuZGVidWcoYEZldGNoaW5nIGhvb2tzIGZvciBydW4gJHtydW5JZH1gKTtcbiAgICAgIH1cbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGhvb2tzID0gYXdhaXQgd29ybGQuaG9va3MubGlzdCh7XG4gICAgICAgICAgcnVuSWQsXG4gICAgICAgICAgcGFnaW5hdGlvbjoge1xuICAgICAgICAgICAgc29ydE9yZGVyOiBvcHRzLnNvcnQgfHwgJ2Rlc2MnLFxuICAgICAgICAgICAgY3Vyc29yLFxuICAgICAgICAgICAgbGltaXQ6IG9wdHMubGltaXQgfHwgREVGQVVMVF9QQUdFX1NJWkUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXNvbHZlRGF0YSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZGF0YTogaG9va3MuZGF0YSxcbiAgICAgICAgICBjdXJzb3I6IGhvb2tzLmN1cnNvcixcbiAgICAgICAgICBoYXNNb3JlOiBob29rcy5oYXNNb3JlLFxuICAgICAgICB9O1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaWYgKGhhbmRsZUFwaUVycm9yKGVycm9yLCBvcHRzLmJhY2tlbmQpKSB7XG4gICAgICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfVxuICAgIH0sXG4gICAgZGlzcGxheVBhZ2U6IGFzeW5jIChob29rcykgPT4ge1xuICAgICAgY29uc3QgaHlkcmF0ZWRIb29rcyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICBob29rcy5tYXAoKGgpID0+IGh5ZHJhdGVSZXNvdXJjZUlPKGgsIHJlc29sdmVLZXkpKVxuICAgICAgKTtcbiAgICAgIGxvZ2dlci5sb2coc2hvd1RhYmxlKGh5ZHJhdGVkSG9va3MsIEhPT0tfTElTVEVEX1BST1BTLCBvcHRzKSk7XG4gICAgICBzaG93SW5zcGVjdEluZm9Cb3goJ2hvb2snKTtcbiAgICB9LFxuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBzaG93SG9vayA9IGFzeW5jIChcbiAgd29ybGQ6IFdvcmxkLFxuICBob29rSWQ6IHN0cmluZyxcbiAgb3B0czogSW5zcGVjdENMSU9wdGlvbnMgPSB7fVxuKSA9PiB7XG4gIGNvbnN0IHJlc29sdmVLZXkgPSBjcmVhdGVSZXNvbHZlcih3b3JsZCwgb3B0cz8uZGVjcnlwdCA/PyBmYWxzZSk7XG5cbiAgaWYgKG9wdHMud2l0aERhdGEpIHtcbiAgICBsb2dnZXIud2FybignYHdpdGhEYXRhYCBmbGFnIGlzIGlnbm9yZWQgd2hlbiBzaG93aW5nIGluZGl2aWR1YWwgcmVzb3VyY2VzJyk7XG4gIH1cbiAgdHJ5IHtcbiAgICBjb25zdCBob29rID0gYXdhaXQgd29ybGQuaG9va3MuZ2V0KGhvb2tJZCwge1xuICAgICAgcmVzb2x2ZURhdGE6ICdhbGwnLFxuICAgIH0pO1xuICAgIGNvbnN0IGh5ZHJhdGVkSG9vayA9IGF3YWl0IGh5ZHJhdGVSZXNvdXJjZUlPKGhvb2ssIHJlc29sdmVLZXkpO1xuICAgIGlmIChvcHRzLmpzb24pIHtcbiAgICAgIHNob3dKc29uKGh5ZHJhdGVkSG9vayk7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChcbiAgICAgICAgaGFzRXhwaXJlZEZpZWxkcyhoeWRyYXRlZEhvb2sgYXMgdW5rbm93biBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilcbiAgICAgICkge1xuICAgICAgICBsb2dnZXIud2FybihcbiAgICAgICAgICBcIlRoaXMgaG9vaydzIGRhdGEgKG1ldGFkYXRhKSBoYXMgZXhwaXJlZCBhbmQgaXMgbm8gbG9uZ2VyIGF2YWlsYWJsZS5cIlxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgbG9nZ2VyLmxvZyhoeWRyYXRlZEhvb2spO1xuICAgIH1cbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBpZiAoaGFuZGxlQXBpRXJyb3IoZXJyb3IsIG9wdHMuYmFja2VuZCkpIHtcbiAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB9XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBsaXN0U2xlZXBzID0gYXN5bmMgKFxuICB3b3JsZDogV29ybGQsXG4gIG9wdHM6IEluc3BlY3RDTElPcHRpb25zID0ge31cbikgPT4ge1xuICBpZiAoIW9wdHMucnVuSWQpIHtcbiAgICBsb2dnZXIuZXJyb3IoXG4gICAgICAncnVuLWlkIGlzIHJlcXVpcmVkIGZvciBsaXN0aW5nIHNsZWVwcy4gVXNhZ2U6IGB3b3JrZmxvdyBpbnNwZWN0IHNsZWVwcyAtLXJ1bklkPTxpZD5gJ1xuICAgICk7XG4gICAgcHJvY2Vzcy5leGl0KDEpO1xuICB9XG5cbiAgaWYgKG9wdHMuc3RlcElkKSB7XG4gICAgbG9nZ2VyLndhcm4oXG4gICAgICAnRmlsdGVyaW5nIGJ5IHN0ZXAtaWQgaXMgbm90IHN1cHBvcnRlZCBmb3Igc2xlZXBzLCBpZ25vcmluZyBmaWx0ZXIuJ1xuICAgICk7XG4gIH1cbiAgaWYgKG9wdHMud29ya2Zsb3dOYW1lKSB7XG4gICAgbG9nZ2VyLndhcm4oXG4gICAgICAnRmlsdGVyaW5nIGJ5IHdvcmtmbG93LW5hbWUgaXMgbm90IHN1cHBvcnRlZCBmb3Igc2xlZXBzLCBpZ25vcmluZyBmaWx0ZXIuJ1xuICAgICk7XG4gIH1cbiAgaWYgKG9wdHMud2l0aERhdGEpIHtcbiAgICBsb2dnZXIud2FybignYHdpdGhEYXRhYCBmbGFnIGlzIGlnbm9yZWQgd2hlbiBsaXN0aW5nIHNsZWVwcycpO1xuICB9XG5cbiAgdHJ5IHtcbiAgICAvLyBGZXRjaCBhbGwgZXZlbnRzIGZvciB0aGUgcnVuIHdpdGggcmVzb2x2ZURhdGE9J2FsbCcgdG8gZ2V0IHdhaXQgZXZlbnREYXRhXG4gICAgY29uc3QgZXZlbnRzID0gYXdhaXQgd29ybGQuZXZlbnRzLmxpc3Qoe1xuICAgICAgcnVuSWQ6IG9wdHMucnVuSWQsXG4gICAgICBwYWdpbmF0aW9uOiB7XG4gICAgICAgIHNvcnRPcmRlcjogb3B0cy5zb3J0IHx8ICdkZXNjJyxcbiAgICAgICAgbGltaXQ6IDEwMDAsXG4gICAgICB9LFxuICAgICAgcmVzb2x2ZURhdGE6ICdhbGwnLFxuICAgIH0pO1xuXG4gICAgLy8gU2hvdyBpbmZvIG1lc3NhZ2UgaWYgdGhlcmUgbWlnaHQgYmUgbW9yZSBzbGVlcHNcbiAgICBpZiAoZXZlbnRzLmhhc01vcmUpIHtcbiAgICAgIGxvZ2dlci5pbmZvKFxuICAgICAgICAnV2FybmluZzogVGhpcyBydW4gaGFzIG1vcmUgdGhhbiAxMDAwIGV2ZW50cy4gU29tZSBzbGVlcHMgbWlnaHQgbm90IGJlIHNob3duLiBQbGVhc2UgdXNlIHRoZSB3ZWIgVUkgdG8gZW5zdXJlIGdldHRpbmcgYSBjb21wbGV0ZSBsaXN0LidcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gR3JvdXAgd2FpdCBldmVudHMgYnkgY29ycmVsYXRpb25JZFxuICAgIGNvbnN0IHdhaXRFdmVudHNCeUNvcnJlbGF0aW9uID0gbmV3IE1hcDxzdHJpbmcsIEV2ZW50W10+KCk7XG4gICAgZm9yIChjb25zdCBldmVudCBvZiBldmVudHMuZGF0YSkge1xuICAgICAgaWYgKGV2ZW50LmNvcnJlbGF0aW9uSWQ/LnN0YXJ0c1dpdGgoJ3dhaXRfJykpIHtcbiAgICAgICAgY29uc3QgZXhpc3RpbmcgPSB3YWl0RXZlbnRzQnlDb3JyZWxhdGlvbi5nZXQoZXZlbnQuY29ycmVsYXRpb25JZCkgPz8gW107XG4gICAgICAgIGV4aXN0aW5nLnB1c2goZXZlbnQpO1xuICAgICAgICB3YWl0RXZlbnRzQnlDb3JyZWxhdGlvbi5zZXQoZXZlbnQuY29ycmVsYXRpb25JZCwgZXhpc3RpbmcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh3YWl0RXZlbnRzQnlDb3JyZWxhdGlvbi5zaXplID09PSAwKSB7XG4gICAgICBsb2dnZXIud2FybignTm8gc2xlZXBzIGZvdW5kIGZvciB0aGlzIHJ1bi4nKTtcbiAgICAgIGlmIChvcHRzLmpzb24pIHtcbiAgICAgICAgc2hvd0pzb24oW10pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG9nZ2VyLmxvZyhcbiAgICAgICAgICBzaG93VGFibGUoW10gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXSwgV0FJVF9MSVNURURfUFJPUFMsIHtcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgICAgICBkaXNhYmxlUmVsYXRpdmVEYXRlczogdHJ1ZSxcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIEJ1aWxkIHNsZWVwcyBmcm9tIGdyb3VwZWQgd2FpdCBldmVudHNcbiAgICBjb25zdCBzbGVlcHM6IFNsZWVwW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IFtjb3JyZWxhdGlvbklkLCBjb3JyZWxhdGlvbkV2ZW50c10gb2Ygd2FpdEV2ZW50c0J5Q29ycmVsYXRpb24pIHtcbiAgICAgIC8vIFN0aXRjaCB1cCB3YWl0X2NyZWF0ZWQgYW5kIHdhaXRfY29tcGxldGVkIGV2ZW50c1xuICAgICAgY29uc3Qgd2FpdENyZWF0ZWQgPSBjb3JyZWxhdGlvbkV2ZW50cy5maW5kKFxuICAgICAgICAoZTogRXZlbnQpID0+IGUuZXZlbnRUeXBlID09PSAnd2FpdF9jcmVhdGVkJ1xuICAgICAgKTtcbiAgICAgIGNvbnN0IHdhaXRDb21wbGV0ZWQgPSBjb3JyZWxhdGlvbkV2ZW50cy5maW5kKFxuICAgICAgICAoZTogRXZlbnQpID0+IGUuZXZlbnRUeXBlID09PSAnd2FpdF9jb21wbGV0ZWQnXG4gICAgICApO1xuXG4gICAgICBpZiAod2FpdENyZWF0ZWQpIHtcbiAgICAgICAgY29uc3Qgc2xlZXA6IFNsZWVwID0ge1xuICAgICAgICAgIGNvcnJlbGF0aW9uSWQsXG4gICAgICAgICAgcnVuSWQ6IHdhaXRDcmVhdGVkLnJ1bklkLFxuICAgICAgICAgIGV2ZW50SWQ6IHdhaXRDcmVhdGVkLmV2ZW50SWQsXG4gICAgICAgICAgY3JlYXRlZEF0OiB3YWl0Q3JlYXRlZC5jcmVhdGVkQXQsXG4gICAgICAgICAgcmVzdW1lQXQ6XG4gICAgICAgICAgICB3YWl0Q3JlYXRlZC5ldmVudFR5cGUgPT09ICd3YWl0X2NyZWF0ZWQnXG4gICAgICAgICAgICAgID8gd2FpdENyZWF0ZWQuZXZlbnREYXRhLnJlc3VtZUF0XG4gICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgIGNvbXBsZXRlZEF0OiB3YWl0Q29tcGxldGVkPy5jcmVhdGVkQXQsXG4gICAgICAgIH07XG4gICAgICAgIHNsZWVwcy5wdXNoKHNsZWVwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTb3J0IHNsZWVwcyBieSBjcmVhdGVkQXRcbiAgICBzbGVlcHMuc29ydCgoYSwgYikgPT4ge1xuICAgICAgY29uc3QgdGltZUEgPSBhLmNyZWF0ZWRBdC5nZXRUaW1lKCk7XG4gICAgICBjb25zdCB0aW1lQiA9IGIuY3JlYXRlZEF0LmdldFRpbWUoKTtcbiAgICAgIHJldHVybiBvcHRzLnNvcnQgPT09ICdhc2MnID8gdGltZUEgLSB0aW1lQiA6IHRpbWVCIC0gdGltZUE7XG4gICAgfSk7XG5cbiAgICBpZiAob3B0cy5qc29uKSB7XG4gICAgICBzaG93SnNvbihzbGVlcHMpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxvZ2dlci5sb2coXG4gICAgICBzaG93VGFibGUoXG4gICAgICAgIHNsZWVwcyBhcyB1bmtub3duIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+W10sXG4gICAgICAgIFdBSVRfTElTVEVEX1BST1BTLFxuICAgICAgICB7IC4uLm9wdHMsIGRpc2FibGVSZWxhdGl2ZURhdGVzOiB0cnVlIH1cbiAgICAgIClcbiAgICApO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGlmIChoYW5kbGVBcGlFcnJvcihlcnJvciwgb3B0cy5iYWNrZW5kKSkge1xuICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgIH1cbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufTtcbiJdfQ==
|
|
@@ -196,4 +196,4 @@ export async function setupListPagination(options) {
|
|
|
196
196
|
// Keep process alive
|
|
197
197
|
return new Promise(() => { });
|
|
198
198
|
}
|
|
199
|
-
//# sourceMappingURL=pagination.js.map
|
|
199
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvaW5zcGVjdC9wYWdpbmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsT0FBTyxRQUFRLE1BQU0sZUFBZSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFpQnBEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsQ0FDckMsS0FBc0IsRUFDdEIsU0FBOEIsRUFDaEIsRUFBRTtJQUNoQixJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQztRQUNyQixPQUFPLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQyxDQUFDLHlCQUF5QjtJQUM1QyxDQUFDO0lBRUQsNENBQTRDO0lBQzVDLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN4QixRQUFRLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNDLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxNQUFNLGVBQWUsR0FBRyxLQUFLLEVBQUUsTUFBYyxFQUFFLEdBQVEsRUFBRSxFQUFFO1FBQ3pELElBQUksQ0FBQyxHQUFHO1lBQUUsT0FBTztRQUVqQixjQUFjO1FBQ2QsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3ZELFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNuQixPQUFPO1FBQ1QsQ0FBQztRQUVELG1CQUFtQjtRQUNuQixJQUNFLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO1lBQy9CLEdBQUcsQ0FBQyxJQUFJLEtBQUssT0FBTztZQUNwQixHQUFHLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFDbkIsQ0FBQztZQUNELElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNsQixNQUFNLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMzQixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1lBQ3pDLENBQUM7WUFDRCxPQUFPO1FBQ1QsQ0FBQztRQUVELHVCQUF1QjtRQUN2QixJQUNFLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO1lBQy9CLEdBQUcsQ0FBQyxJQUFJLEtBQUssTUFBTTtZQUNuQixHQUFHLENBQUMsSUFBSSxLQUFLLElBQUksRUFDakIsQ0FBQztZQUNELDJEQUEyRDtZQUMzRCxNQUFNLFNBQVMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUM3QixPQUFPO1FBQ1QsQ0FBQztJQUNILENBQUMsQ0FBQztJQUVGLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxlQUFlLENBQUMsQ0FBQztJQUU5QywwQkFBMEI7SUFDMUIsT0FBTyxHQUFHLEVBQUU7UUFDVixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDL0MsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQy9DLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLENBQUM7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3hCLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxLQUFzQixFQUFFLEVBQUU7SUFDNUQsTUFBTSxLQUFLLEdBQWEsRUFBRSxDQUFDO0lBRTNCLHNCQUFzQjtJQUN0Qiw2RkFBNkY7SUFDN0YsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLHFCQUFxQjtRQUMvQyxDQUFDLENBQUMsUUFBUSxLQUFLLENBQUMsV0FBVyxPQUFPLEtBQUssQ0FBQyxVQUFVLEdBQUc7UUFDckQsQ0FBQyxDQUFDLFFBQVEsS0FBSyxDQUFDLFdBQVcsT0FBTyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDdkQsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUUxQixJQUFJLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN0QixLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzdCLENBQUM7U0FBTSxDQUFDO1FBQ04sS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbEIsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQ25DLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUN2QyxDQUFDLENBQUM7QUF5Q0Y7O0dBRUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLG1CQUFtQixDQUN2QyxPQUFxQztJQUVyQyxNQUFNLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxHQUN4RSxPQUFPLENBQUM7SUFFViw2RUFBNkU7SUFDN0UsTUFBTSxpQkFBaUIsR0FBRyxXQUFXLElBQUksYUFBYSxFQUFFLENBQUM7SUFFekQseUNBQXlDO0lBQ3pDLE1BQU0sS0FBSyxHQUFzQixFQUFFLENBQUM7SUFFcEMsK0JBQStCO0lBQy9CLElBQUksU0FBUyxHQUFHLENBQUMsQ0FBQztJQUVsQjs7T0FFRztJQUNILE1BQU0sUUFBUSxHQUFHLEtBQUssRUFBRSxLQUFhLEVBQUUsTUFBZSxFQUFFLEVBQUU7UUFDeEQsSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUNqQixZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEIsQ0FBQztRQUVELE1BQU0sSUFBSSxHQUFHLE1BQU0sU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDcEIsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUVsQix3REFBd0Q7UUFDeEQsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1lBQ3RCLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNsQixDQUFDO1FBRUQsTUFBTSxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNwQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FBQztJQUVGLCtCQUErQjtJQUMvQixNQUFNLFNBQVMsR0FBRyxNQUFNLFFBQVEsQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFFbkQsNkRBQTZEO0lBQzdELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3ZCLElBQUksU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3RCLE1BQU0sQ0FBQyxJQUFJLENBQ1QsK0VBQStFLENBQ2hGLENBQUM7UUFDSixDQUFDO1FBQ0QsT0FBTztJQUNULENBQUM7SUFFRCx5QkFBeUI7SUFDekIsTUFBTSxlQUFlLEdBQW9CO1FBQ3ZDLE1BQU0sRUFBRSxTQUFTLENBQUMsTUFBTTtRQUN4QixPQUFPLEVBQUUsU0FBUyxDQUFDLE9BQU87UUFDMUIsV0FBVyxFQUFFLEtBQUs7UUFDbEIsV0FBVyxFQUFFLENBQUM7UUFDZCxVQUFVLEVBQUUsQ0FBQztRQUNiLHFCQUFxQixFQUFFLFNBQVMsQ0FBQyxPQUFPO0tBQ3pDLENBQUM7SUFFRixtQkFBbUIsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUVyQyxNQUFNLE9BQU8sR0FBRyx1QkFBdUIsQ0FBQyxlQUFlLEVBQUU7UUFDdkQsTUFBTSxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ2pCLE1BQU0sWUFBWSxHQUFHLFNBQVMsR0FBRyxDQUFDLENBQUM7WUFFbkMsNENBQTRDO1lBQzVDLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7Z0JBQ3hCLFNBQVMsR0FBRyxZQUFZLENBQUM7Z0JBQ3pCLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFFdkMsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO29CQUN0QixPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ2xCLENBQUM7Z0JBRUQsTUFBTSxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztnQkFFOUMsZUFBZSxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO2dCQUMzQyxlQUFlLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUM7Z0JBQzdDLGVBQWUsQ0FBQyxXQUFXLEdBQUcsU0FBUyxHQUFHLENBQUMsQ0FBQztnQkFDNUMsZUFBZSxDQUFDLFdBQVcsR0FBRyxTQUFTLEdBQUcsQ0FBQyxDQUFDO2dCQUM1QyxlQUFlLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7Z0JBQzFDLGdEQUFnRDtnQkFDaEQsZUFBZSxDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztZQUMxRSxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sZ0RBQWdEO2dCQUNoRCxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ3JDLE1BQU0sUUFBUSxHQUFHLE1BQU0sUUFBUSxDQUM3QixZQUFZLEVBQ1osV0FBVyxDQUFDLE1BQU0sSUFBSSxTQUFTLENBQ2hDLENBQUM7Z0JBRUYsZUFBZSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO2dCQUN6QyxlQUFlLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUM7Z0JBQzNDLGVBQWUsQ0FBQyxXQUFXLEdBQUcsU0FBUyxHQUFHLENBQUMsQ0FBQztnQkFDNUMsZUFBZSxDQUFDLFdBQVcsR0FBRyxTQUFTLEdBQUcsQ0FBQyxDQUFDO2dCQUM1QyxlQUFlLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7Z0JBQzFDLGdEQUFnRDtnQkFDaEQsZUFBZSxDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztZQUMxRSxDQUFDO1lBRUQsbUJBQW1CLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELFVBQVUsRUFBRSxLQUFLLElBQUksRUFBRTtZQUNyQixzQ0FBc0M7WUFDdEMsSUFBSSxTQUFTLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3BCLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsY0FBYztnQkFDaEMsTUFBTSxZQUFZLEdBQUcsTUFBTSxRQUFRLENBQUMsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDO2dCQUV0RCxlQUFlLENBQUMsTUFBTSxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUM7Z0JBQzdDLGVBQWUsQ0FBQyxPQUFPLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQztnQkFDL0MsZUFBZSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7Z0JBQ3BDLGVBQWUsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO2dCQUNoQyxlQUFlLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztnQkFDL0IsZUFBZSxDQUFDLHFCQUFxQixHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUM7WUFDL0QsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLDZCQUE2QjtnQkFDN0IsU0FBUyxFQUFFLENBQUM7Z0JBQ1osTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUVsQyxJQUFJLGlCQUFpQixFQUFFLENBQUM7b0JBQ3RCLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDbEIsQ0FBQztnQkFFRCxNQUFNLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUU1QyxlQUFlLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7Z0JBQ3pDLGVBQWUsQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQztnQkFDM0MsZUFBZSxDQUFDLFdBQVcsR0FBRyxTQUFTLEdBQUcsQ0FBQyxDQUFDO2dCQUM1QyxlQUFlLENBQUMsV0FBVyxHQUFHLFNBQVMsR0FBRyxDQUFDLENBQUM7Z0JBQzVDLGVBQWUsQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztnQkFDMUMsZ0RBQWdEO2dCQUNoRCxlQUFlLENBQUMscUJBQXFCLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1lBQzFFLENBQUM7WUFFRCxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBQ0QsTUFBTSxFQUFFLEdBQUcsRUFBRTtZQUNYLE9BQU8sRUFBRSxDQUFDO1lBQ1YsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsQixDQUFDO0tBQ0YsQ0FBQyxDQUFDO0lBRUgscUJBQXFCO0lBQ3JCLE9BQU8sSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUM7QUFDL0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSW50ZXJhY3RpdmUgcGFnaW5hdGlvbiBmb3IgQ0xJIHRhYmxlc1xuICovXG5pbXBvcnQgcmVhZGxpbmUgZnJvbSAnbm9kZTpyZWFkbGluZSc7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuLi9jb25maWcvbG9nLmpzJztcbmltcG9ydCB7IGlzSW50ZXJhY3RpdmUgfSBmcm9tICcuL3Rlcm1pbmFsLXV0aWxzLmpzJztcblxuZXhwb3J0IGludGVyZmFjZSBQYWdpbmF0aW9uU3RhdGUge1xuICBjdXJzb3I6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIGhhc01vcmU6IGJvb2xlYW47XG4gIGhhc1ByZXZpb3VzOiBib29sZWFuO1xuICBjdXJyZW50UGFnZTogbnVtYmVyO1xuICB0b3RhbFBhZ2VzOiBudW1iZXI7XG4gIGhhc01vcmVQYWdlc0F2YWlsYWJsZTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYWdpbmF0aW9uQ2FsbGJhY2tzIHtcbiAgb25OZXh0OiAoKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBvblByZXZpb3VzOiAoKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBvbkV4aXQ6ICgpID0+IHZvaWQ7XG59XG5cbi8qKlxuICogU2V0dXAgaW50ZXJhY3RpdmUgcGFnaW5hdGlvbiBsaXN0ZW5lclxuICovXG5leHBvcnQgY29uc3Qgc2V0dXBQYWdpbmF0aW9uTGlzdGVuZXIgPSAoXG4gIHN0YXRlOiBQYWdpbmF0aW9uU3RhdGUsXG4gIGNhbGxiYWNrczogUGFnaW5hdGlvbkNhbGxiYWNrc1xuKTogKCgpID0+IHZvaWQpID0+IHtcbiAgaWYgKCFpc0ludGVyYWN0aXZlKCkpIHtcbiAgICByZXR1cm4gKCkgPT4ge307IC8vIE5vLW9wIGNsZWFudXAgZnVuY3Rpb25cbiAgfVxuXG4gIC8vIEVuYWJsZSByYXcgbW9kZSBmb3IgaW1tZWRpYXRlIGtleSBjYXB0dXJlXG4gIGlmIChwcm9jZXNzLnN0ZGluLmlzVFRZKSB7XG4gICAgcmVhZGxpbmUuZW1pdEtleXByZXNzRXZlbnRzKHByb2Nlc3Muc3RkaW4pO1xuICAgIHByb2Nlc3Muc3RkaW4uc2V0UmF3TW9kZSh0cnVlKTtcbiAgfVxuXG4gIGNvbnN0IGtleXByZXNzSGFuZGxlciA9IGFzeW5jIChfY2h1bms6IHN0cmluZywga2V5OiBhbnkpID0+IHtcbiAgICBpZiAoIWtleSkgcmV0dXJuO1xuXG4gICAgLy8gSGFuZGxlIGV4aXRcbiAgICBpZiAoa2V5Lm5hbWUgPT09ICdxJyB8fCAoa2V5LmN0cmwgJiYga2V5Lm5hbWUgPT09ICdjJykpIHtcbiAgICAgIGNhbGxiYWNrcy5vbkV4aXQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBIYW5kbGUgbmV4dCBwYWdlXG4gICAgaWYgKFxuICAgICAgKGtleS5uYW1lID09PSAnbicgJiYgIWtleS5jdHJsKSB8fFxuICAgICAga2V5Lm5hbWUgPT09ICdyaWdodCcgfHxcbiAgICAgIGtleS5uYW1lID09PSAnZG93bidcbiAgICApIHtcbiAgICAgIGlmIChzdGF0ZS5oYXNNb3JlKSB7XG4gICAgICAgIGF3YWl0IGNhbGxiYWNrcy5vbk5leHQoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxvZ2dlci53YXJuKCdObyBtb3JlIHBhZ2VzIGF2YWlsYWJsZScpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIEhhbmRsZSBwcmV2aW91cyBwYWdlXG4gICAgaWYgKFxuICAgICAgKGtleS5uYW1lID09PSAncCcgJiYgIWtleS5jdHJsKSB8fFxuICAgICAga2V5Lm5hbWUgPT09ICdsZWZ0JyB8fFxuICAgICAga2V5Lm5hbWUgPT09ICd1cCdcbiAgICApIHtcbiAgICAgIC8vIEFsd2F5cyBhbGxvdyBnb2luZyBcInByZXZpb3VzXCIgLSBvbiBmaXJzdCBwYWdlIGl0IHJlbG9hZHNcbiAgICAgIGF3YWl0IGNhbGxiYWNrcy5vblByZXZpb3VzKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9O1xuXG4gIHByb2Nlc3Muc3RkaW4ub24oJ2tleXByZXNzJywga2V5cHJlc3NIYW5kbGVyKTtcblxuICAvLyBSZXR1cm4gY2xlYW51cCBmdW5jdGlvblxuICByZXR1cm4gKCkgPT4ge1xuICAgIHByb2Nlc3Muc3RkaW4ub2ZmKCdrZXlwcmVzcycsIGtleXByZXNzSGFuZGxlcik7XG4gICAgaWYgKHByb2Nlc3Muc3RkaW4uaXNUVFkgJiYgcHJvY2Vzcy5zdGRpbi5pc1Jhdykge1xuICAgICAgcHJvY2Vzcy5zdGRpbi5zZXRSYXdNb2RlKGZhbHNlKTtcbiAgICB9XG4gICAgcHJvY2Vzcy5zdGRpbi5wYXVzZSgpO1xuICB9O1xufTtcblxuLyoqXG4gKiBTaG93IHBhZ2luYXRpb24gc3RhdGUgaW5mb1xuICovXG5leHBvcnQgY29uc3Qgc2hvd1BhZ2luYXRpb25TdGF0ZSA9IChzdGF0ZTogUGFnaW5hdGlvblN0YXRlKSA9PiB7XG4gIGNvbnN0IHBhcnRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8vIFNob3cgcGFnZSBpbmRpY2F0b3JcbiAgLy8gVXNlIGhhc01vcmVQYWdlc0F2YWlsYWJsZSB0byBkZXRlcm1pbmUgaWYgdGhlcmUgYXJlIHVua25vd24gcGFnZXMgYmV5b25kIHdoYXQgd2UndmUgbG9hZGVkXG4gIGNvbnN0IHBhZ2VJbmRpY2F0b3IgPSBzdGF0ZS5oYXNNb3JlUGFnZXNBdmFpbGFibGVcbiAgICA/IGBQYWdlICR7c3RhdGUuY3VycmVudFBhZ2V9IG9mICR7c3RhdGUudG90YWxQYWdlc30rYFxuICAgIDogYFBhZ2UgJHtzdGF0ZS5jdXJyZW50UGFnZX0gb2YgJHtzdGF0ZS50b3RhbFBhZ2VzfWA7XG4gIHBhcnRzLnB1c2gocGFnZUluZGljYXRvcik7XG5cbiAgaWYgKHN0YXRlLmhhc1ByZXZpb3VzKSB7XG4gICAgcGFydHMucHVzaCgnW3BdIFByZXZpb3VzJyk7XG4gIH0gZWxzZSB7XG4gICAgcGFydHMucHVzaCgnW3BdIFJlbG9hZCcpO1xuICB9XG5cbiAgaWYgKHN0YXRlLmhhc01vcmUpIHtcbiAgICBwYXJ0cy5wdXNoKCdbbl0gTmV4dCcpO1xuICB9XG5cbiAgcGFydHMucHVzaCgnW3FdIFF1aXQgKG9yIEN0cmwrQyknKTtcbiAgbG9nZ2VyLmxvZyhgXFxuJHtwYXJ0cy5qb2luKCcgfCAnKX1gKTtcbn07XG5cbi8qKlxuICogUGFnZSBkYXRhIHN0cnVjdHVyZSBmb3IgY2FjaGluZyBwYWdpbmF0ZWQgcmVzdWx0c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2VEYXRhPFQ+IHtcbiAgZGF0YTogVFtdO1xuICBjdXJzb3I6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIGhhc01vcmU6IGJvb2xlYW47XG59XG5cbi8qKlxuICogR2VuZXJpYyBwYWdpbmF0aW9uIGhhbmRsZXIgZm9yIGxpc3Qgb3BlcmF0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIExpc3RQYWdpbmF0aW9uT3B0aW9uczxURGF0YT4ge1xuICAvKipcbiAgICogSW5pdGlhbCBjdXJzb3IgZnJvbSBDTEkgb3B0aW9uc1xuICAgKi9cbiAgaW5pdGlhbEN1cnNvcj86IHN0cmluZztcblxuICAvKipcbiAgICogRmV0Y2ggZnVuY3Rpb24gdGhhdCByZXR1cm5zIHBhZ2luYXRlZCBkYXRhXG4gICAqL1xuICBmZXRjaFBhZ2U6IChjdXJzb3I6IHN0cmluZyB8IHVuZGVmaW5lZCkgPT4gUHJvbWlzZTxQYWdlRGF0YTxURGF0YT4+O1xuXG4gIC8qKlxuICAgKiBEaXNwbGF5IGZ1bmN0aW9uIHRoYXQgcmVuZGVycyB0aGUgY3VycmVudCBwYWdlXG4gICAqL1xuICBkaXNwbGF5UGFnZTogKGRhdGE6IFREYXRhW10sIHBhZ2VJbmRleDogbnVtYmVyKSA9PiB2b2lkIHwgUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogT3B0aW9uYWwgY2FsbGJhY2sgZm9yIHdoZW4gZmV0Y2hpbmcgc3RhcnRzXG4gICAqL1xuICBvbkZldGNoU3RhcnQ/OiAocGFnZUluZGV4OiBudW1iZXIpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBpbnRlcmFjdGl2ZSBwYWdpbmF0aW9uIHdpdGgga2V5Ym9hcmQgY29udHJvbHNcbiAgICovXG4gIGludGVyYWN0aXZlPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBTZXR1cCBwYWdpbmF0aW9uIGZvciBsaXN0IG9wZXJhdGlvbnMgd2l0aCBwYWdlIGNhY2hpbmdcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNldHVwTGlzdFBhZ2luYXRpb248VERhdGE+KFxuICBvcHRpb25zOiBMaXN0UGFnaW5hdGlvbk9wdGlvbnM8VERhdGE+XG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgeyBpbml0aWFsQ3Vyc29yLCBmZXRjaFBhZ2UsIGRpc3BsYXlQYWdlLCBvbkZldGNoU3RhcnQsIGludGVyYWN0aXZlIH0gPVxuICAgIG9wdGlvbnM7XG5cbiAgLy8gSW50ZXJhY3RpdmUgbW9kZSByZXF1aXJlcyBib3RoIFRUWSBzdXBwb3J0IGFuZCBleHBsaWNpdCAtLWludGVyYWN0aXZlIGZsYWdcbiAgY29uc3QgZW5hYmxlSW50ZXJhY3RpdmUgPSBpbnRlcmFjdGl2ZSAmJiBpc0ludGVyYWN0aXZlKCk7XG5cbiAgLy8gUGFnZXMgc3RhY2sgLSBzdG9yZXMgYWxsIGZldGNoZWQgcGFnZXNcbiAgY29uc3QgcGFnZXM6IFBhZ2VEYXRhPFREYXRhPltdID0gW107XG5cbiAgLy8gQ3VycmVudCBwYWdlIGluZGV4ICgwLWJhc2VkKVxuICBsZXQgcGFnZUluZGV4ID0gMDtcblxuICAvKipcbiAgICogRmV0Y2ggYW5kIGRpc3BsYXkgYSBzcGVjaWZpYyBwYWdlXG4gICAqL1xuICBjb25zdCBzaG93UGFnZSA9IGFzeW5jIChpbmRleDogbnVtYmVyLCBjdXJzb3I/OiBzdHJpbmcpID0+IHtcbiAgICBpZiAob25GZXRjaFN0YXJ0KSB7XG4gICAgICBvbkZldGNoU3RhcnQoaW5kZXgpO1xuICAgIH1cblxuICAgIGNvbnN0IHBhZ2UgPSBhd2FpdCBmZXRjaFBhZ2UoY3Vyc29yKTtcbiAgICBwYWdlc1tpbmRleF0gPSBwYWdlO1xuICAgIHBhZ2VJbmRleCA9IGluZGV4O1xuXG4gICAgLy8gQ2xlYXIgc2NyZWVuIGZvciBzdWJzZXF1ZW50IHBhZ2VzIGluIGludGVyYWN0aXZlIG1vZGVcbiAgICBpZiAoZW5hYmxlSW50ZXJhY3RpdmUpIHtcbiAgICAgIGNvbnNvbGUuY2xlYXIoKTtcbiAgICB9XG5cbiAgICBhd2FpdCBkaXNwbGF5UGFnZShwYWdlLmRhdGEsIGluZGV4KTtcbiAgICByZXR1cm4gcGFnZTtcbiAgfTtcblxuICAvLyBGZXRjaCBhbmQgZGlzcGxheSBmaXJzdCBwYWdlXG4gIGNvbnN0IGZpcnN0UGFnZSA9IGF3YWl0IHNob3dQYWdlKDAsIGluaXRpYWxDdXJzb3IpO1xuXG4gIC8vIEluIG5vbi1pbnRlcmFjdGl2ZSBtb2RlLCBzaG93IGluZm8gaWYgdGhlcmUgYXJlIG1vcmUgcGFnZXNcbiAgaWYgKCFlbmFibGVJbnRlcmFjdGl2ZSkge1xuICAgIGlmIChmaXJzdFBhZ2UuaGFzTW9yZSkge1xuICAgICAgbG9nZ2VyLmluZm8oXG4gICAgICAgICdcXG5Nb3JlIHJlc3VsdHMgYXZhaWxhYmxlLiBVc2UgLS1pbnRlcmFjdGl2ZSAoLWkpIHRvIHBhZ2luYXRlIHRocm91Z2ggcmVzdWx0cy4nXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm47XG4gIH1cblxuICAvLyBTZXR1cCBwYWdpbmF0aW9uIHN0YXRlXG4gIGNvbnN0IHBhZ2luYXRpb25TdGF0ZTogUGFnaW5hdGlvblN0YXRlID0ge1xuICAgIGN1cnNvcjogZmlyc3RQYWdlLmN1cnNvcixcbiAgICBoYXNNb3JlOiBmaXJzdFBhZ2UuaGFzTW9yZSxcbiAgICBoYXNQcmV2aW91czogZmFsc2UsXG4gICAgY3VycmVudFBhZ2U6IDEsXG4gICAgdG90YWxQYWdlczogMSxcbiAgICBoYXNNb3JlUGFnZXNBdmFpbGFibGU6IGZpcnN0UGFnZS5oYXNNb3JlLFxuICB9O1xuXG4gIHNob3dQYWdpbmF0aW9uU3RhdGUocGFnaW5hdGlvblN0YXRlKTtcblxuICBjb25zdCBjbGVhbnVwID0gc2V0dXBQYWdpbmF0aW9uTGlzdGVuZXIocGFnaW5hdGlvblN0YXRlLCB7XG4gICAgb25OZXh0OiBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBuZXdQYWdlSW5kZXggPSBwYWdlSW5kZXggKyAxO1xuXG4gICAgICAvLyBDaGVjayBpZiB3ZSBhbHJlYWR5IGhhdmUgdGhpcyBwYWdlIGNhY2hlZFxuICAgICAgaWYgKHBhZ2VzW25ld1BhZ2VJbmRleF0pIHtcbiAgICAgICAgcGFnZUluZGV4ID0gbmV3UGFnZUluZGV4O1xuICAgICAgICBjb25zdCBjYWNoZWRQYWdlID0gcGFnZXNbbmV3UGFnZUluZGV4XTtcblxuICAgICAgICBpZiAoZW5hYmxlSW50ZXJhY3RpdmUpIHtcbiAgICAgICAgICBjb25zb2xlLmNsZWFyKCk7XG4gICAgICAgIH1cblxuICAgICAgICBhd2FpdCBkaXNwbGF5UGFnZShjYWNoZWRQYWdlLmRhdGEsIHBhZ2VJbmRleCk7XG5cbiAgICAgICAgcGFnaW5hdGlvblN0YXRlLmN1cnNvciA9IGNhY2hlZFBhZ2UuY3Vyc29yO1xuICAgICAgICBwYWdpbmF0aW9uU3RhdGUuaGFzTW9yZSA9IGNhY2hlZFBhZ2UuaGFzTW9yZTtcbiAgICAgICAgcGFnaW5hdGlvblN0YXRlLmhhc1ByZXZpb3VzID0gcGFnZUluZGV4ID4gMDtcbiAgICAgICAgcGFnaW5hdGlvblN0YXRlLmN1cnJlbnRQYWdlID0gcGFnZUluZGV4ICsgMTtcbiAgICAgICAgcGFnaW5hdGlvblN0YXRlLnRvdGFsUGFnZXMgPSBwYWdlcy5sZW5ndGg7XG4gICAgICAgIC8vIENoZWNrIGlmIHRoZSBsYXN0IHBhZ2UgaW4gY2FjaGUgaGFzIG1vcmUgZGF0YVxuICAgICAgICBwYWdpbmF0aW9uU3RhdGUuaGFzTW9yZVBhZ2VzQXZhaWxhYmxlID0gcGFnZXNbcGFnZXMubGVuZ3RoIC0gMV0uaGFzTW9yZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIEZldGNoIG5ldyBwYWdlIHVzaW5nIGN1cnNvciBmcm9tIGN1cnJlbnQgcGFnZVxuICAgICAgICBjb25zdCBjdXJyZW50UGFnZSA9IHBhZ2VzW3BhZ2VJbmRleF07XG4gICAgICAgIGNvbnN0IG5leHRQYWdlID0gYXdhaXQgc2hvd1BhZ2UoXG4gICAgICAgICAgbmV3UGFnZUluZGV4LFxuICAgICAgICAgIGN1cnJlbnRQYWdlLmN1cnNvciB8fCB1bmRlZmluZWRcbiAgICAgICAgKTtcblxuICAgICAgICBwYWdpbmF0aW9uU3RhdGUuY3Vyc29yID0gbmV4dFBhZ2UuY3Vyc29yO1xuICAgICAgICBwYWdpbmF0aW9uU3RhdGUuaGFzTW9yZSA9IG5leHRQYWdlLmhhc01vcmU7XG4gICAgICAgIHBhZ2luYXRpb25TdGF0ZS5oYXNQcmV2aW91cyA9IHBhZ2VJbmRleCA+IDA7XG4gICAgICAgIHBhZ2luYXRpb25TdGF0ZS5jdXJyZW50UGFnZSA9IHBhZ2VJbmRleCArIDE7XG4gICAgICAgIHBhZ2luYXRpb25TdGF0ZS50b3RhbFBhZ2VzID0gcGFnZXMubGVuZ3RoO1xuICAgICAgICAvLyBDaGVjayBpZiB0aGUgbGFzdCBwYWdlIGluIGNhY2hlIGhhcyBtb3JlIGRhdGFcbiAgICAgICAgcGFnaW5hdGlvblN0YXRlLmhhc01vcmVQYWdlc0F2YWlsYWJsZSA9IHBhZ2VzW3BhZ2VzLmxlbmd0aCAtIDFdLmhhc01vcmU7XG4gICAgICB9XG5cbiAgICAgIHNob3dQYWdpbmF0aW9uU3RhdGUocGFnaW5hdGlvblN0YXRlKTtcbiAgICB9LFxuICAgIG9uUHJldmlvdXM6IGFzeW5jICgpID0+IHtcbiAgICAgIC8vIFNwZWNpYWwgY2FzZTogb24gZmlyc3QgcGFnZSwgcmVsb2FkXG4gICAgICBpZiAocGFnZUluZGV4ID09PSAwKSB7XG4gICAgICAgIHBhZ2VzLmxlbmd0aCA9IDA7IC8vIENsZWFyIGNhY2hlXG4gICAgICAgIGNvbnN0IHJlbG9hZGVkUGFnZSA9IGF3YWl0IHNob3dQYWdlKDAsIGluaXRpYWxDdXJzb3IpO1xuXG4gICAgICAgIHBhZ2luYXRpb25TdGF0ZS5jdXJzb3IgPSByZWxvYWRlZFBhZ2UuY3Vyc29yO1xuICAgICAgICBwYWdpbmF0aW9uU3RhdGUuaGFzTW9yZSA9IHJlbG9hZGVkUGFnZS5oYXNNb3JlO1xuICAgICAgICBwYWdpbmF0aW9uU3RhdGUuaGFzUHJldmlvdXMgPSBmYWxzZTtcbiAgICAgICAgcGFnaW5hdGlvblN0YXRlLmN1cnJlbnRQYWdlID0gMTtcbiAgICAgICAgcGFnaW5hdGlvblN0YXRlLnRvdGFsUGFnZXMgPSAxO1xuICAgICAgICBwYWdpbmF0aW9uU3RhdGUuaGFzTW9yZVBhZ2VzQXZhaWxhYmxlID0gcmVsb2FkZWRQYWdlLmhhc01vcmU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBHbyB0byBwcmV2aW91cyBjYWNoZWQgcGFnZVxuICAgICAgICBwYWdlSW5kZXgtLTtcbiAgICAgICAgY29uc3QgcHJldlBhZ2UgPSBwYWdlc1twYWdlSW5kZXhdO1xuXG4gICAgICAgIGlmIChlbmFibGVJbnRlcmFjdGl2ZSkge1xuICAgICAgICAgIGNvbnNvbGUuY2xlYXIoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGF3YWl0IGRpc3BsYXlQYWdlKHByZXZQYWdlLmRhdGEsIHBhZ2VJbmRleCk7XG5cbiAgICAgICAgcGFnaW5hdGlvblN0YXRlLmN1cnNvciA9IHByZXZQYWdlLmN1cnNvcjtcbiAgICAgICAgcGFnaW5hdGlvblN0YXRlLmhhc01vcmUgPSBwcmV2UGFnZS5oYXNNb3JlO1xuICAgICAgICBwYWdpbmF0aW9uU3RhdGUuaGFzUHJldmlvdXMgPSBwYWdlSW5kZXggPiAwO1xuICAgICAgICBwYWdpbmF0aW9uU3RhdGUuY3VycmVudFBhZ2UgPSBwYWdlSW5kZXggKyAxO1xuICAgICAgICBwYWdpbmF0aW9uU3RhdGUudG90YWxQYWdlcyA9IHBhZ2VzLmxlbmd0aDtcbiAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGxhc3QgcGFnZSBpbiBjYWNoZSBoYXMgbW9yZSBkYXRhXG4gICAgICAgIHBhZ2luYXRpb25TdGF0ZS5oYXNNb3JlUGFnZXNBdmFpbGFibGUgPSBwYWdlc1twYWdlcy5sZW5ndGggLSAxXS5oYXNNb3JlO1xuICAgICAgfVxuXG4gICAgICBzaG93UGFnaW5hdGlvblN0YXRlKHBhZ2luYXRpb25TdGF0ZSk7XG4gICAgfSxcbiAgICBvbkV4aXQ6ICgpID0+IHtcbiAgICAgIGNsZWFudXAoKTtcbiAgICAgIHByb2Nlc3MuZXhpdCgwKTtcbiAgICB9LFxuICB9KTtcblxuICAvLyBLZWVwIHByb2Nlc3MgYWxpdmVcbiAgcmV0dXJuIG5ldyBQcm9taXNlKCgpID0+IHt9KTtcbn1cbiJdfQ==
|
package/dist/lib/inspect/run.js
CHANGED
|
@@ -71,4 +71,4 @@ export const startRun = async (world, workflowNameOrRunId, opts, args) => {
|
|
|
71
71
|
logger.log(newRun);
|
|
72
72
|
}
|
|
73
73
|
};
|
|
74
|
-
//# sourceMappingURL=
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9pbnNwZWN0L3J1bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRTdELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQU8xQyxNQUFNLGVBQWUsR0FBRyxLQUFLLEVBQUUsS0FBWSxFQUFFLFdBQW1CLEVBQUUsRUFBRTtJQUNsRSxJQUFJLFdBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNwQyxNQUFNLEdBQUcsR0FBRyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNULE1BQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxXQUFXLFlBQVksQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQyxZQUFZLENBQUM7SUFDMUIsQ0FBQztJQUNELE9BQU8sV0FBVyxDQUFDO0FBQ3JCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxLQUFLLEVBQzNCLEtBQVksRUFDWixtQkFBMkIsRUFDM0IsSUFBbUIsRUFDbkIsSUFBYyxFQUNkLEVBQUU7SUFDRixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7UUFDaEMsSUFBSSxDQUFDO1lBQ0gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsTUFBTSxDQUFDLElBQUksQ0FBQyw2QkFBNkIsR0FBRyxjQUFjLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDbkUsTUFBTSxLQUFLLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLEdBQTRCLENBQUM7SUFDakMsc0RBQXNEO0lBQ3RELElBQUksbUJBQW1CLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDNUMsR0FBRyxHQUFHLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUNsRCxDQUFDO1NBQU0sQ0FBQztRQUNOLG9FQUFvRTtRQUNwRSw0QkFBNEI7UUFDNUIsTUFBTSxPQUFPLEdBQUcsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUNwQyxZQUFZLEVBQUUsbUJBQW1CO1lBQ2pDLFVBQVUsRUFBRTtnQkFDVixTQUFTLEVBQUUsTUFBTTtnQkFDakIsS0FBSyxFQUFFLENBQUM7YUFDVDtTQUNGLENBQUMsQ0FBQztRQUNILEdBQUcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDVCxNQUFNLElBQUksS0FBSyxDQUFDLFFBQVEsbUJBQW1CLGFBQWEsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxNQUFNLFlBQVksR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDO0lBQ3RDLE1BQU0sVUFBVSxHQUFHLE1BQU0sZUFBZSxDQUFDLEtBQUssRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO0lBRXJFLG9FQUFvRTtJQUNwRSxvRUFBb0U7SUFDcEUsZ0VBQWdFO0lBQ2hFLHNEQUFzRDtJQUN0RCxJQUFJLFdBQVcsR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDO0lBQ2xDLElBQUksQ0FBQztRQUNILE1BQU0sRUFBRSxHQUFHLE1BQU0sV0FBVyxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUU7WUFDOUMsWUFBWTtZQUNaLE9BQU8sRUFBRSxNQUFNO1NBQ2hCLENBQUMsQ0FBQztRQUNILElBQUksRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsV0FBVyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3pDLFdBQVcsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDO1FBQy9CLENBQUM7SUFDSCxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsMERBQTBEO0lBQzVELENBQUM7SUFFRCxNQUFNLE1BQU0sR0FBRyxNQUFNLEtBQUssQ0FBQyxFQUFFLFVBQVUsRUFBRSxFQUFFLFFBQVEsRUFBRTtRQUNuRCxZQUFZO1FBQ1osV0FBVztLQUNaLENBQUMsQ0FBQztJQUVILElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2QsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEQsQ0FBQztTQUFNLENBQUM7UUFDTixNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JCLENBQUM7QUFDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzdGFydCB9IGZyb20gJ0B3b3JrZmxvdy9jb3JlL3J1bnRpbWUnO1xuaW1wb3J0IHsgaGVhbHRoQ2hlY2sgfSBmcm9tICdAd29ya2Zsb3cvY29yZS9ydW50aW1lL2hlbHBlcnMnO1xuaW1wb3J0IHR5cGUgeyBXb3JrZmxvd1J1biwgV29ybGQgfSBmcm9tICdAd29ya2Zsb3cvd29ybGQnO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi4vY29uZmlnL2xvZy5qcyc7XG5cbmludGVyZmFjZSBDTElDcmVhdGVPcHRzIHtcbiAganNvbj86IGJvb2xlYW47XG4gIHZlcmJvc2U/OiBib29sZWFuO1xufVxuXG5jb25zdCBnZXRXb3JrZmxvd05hbWUgPSBhc3luYyAod29ybGQ6IFdvcmxkLCBydW5OYW1lT3JJZDogc3RyaW5nKSA9PiB7XG4gIGlmIChydW5OYW1lT3JJZC5zdGFydHNXaXRoKCd3cnVuXycpKSB7XG4gICAgY29uc3QgcnVuID0gYXdhaXQgd29ybGQucnVucy5nZXQocnVuTmFtZU9ySWQpO1xuICAgIGlmICghcnVuKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFJ1biAke3J1bk5hbWVPcklkfSBub3QgZm91bmRgKTtcbiAgICB9XG4gICAgcmV0dXJuIHJ1bi53b3JrZmxvd05hbWU7XG4gIH1cbiAgcmV0dXJuIHJ1bk5hbWVPcklkO1xufTtcblxuZXhwb3J0IGNvbnN0IHN0YXJ0UnVuID0gYXN5bmMgKFxuICB3b3JsZDogV29ybGQsXG4gIHdvcmtmbG93TmFtZU9yUnVuSWQ6IHN0cmluZyxcbiAgb3B0czogQ0xJQ3JlYXRlT3B0cyxcbiAgYXJnczogc3RyaW5nW11cbikgPT4ge1xuICBjb25zdCBqc29uQXJncyA9IGFyZ3MubWFwKChhcmcpID0+IHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIEpTT04ucGFyc2UoYXJnKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgbG9nZ2VyLndhcm4oYEZhaWxlZCB0byBwYXJzZSBhcmd1bWVudCBcIiR7YXJnfVwiIGFzIEpTT046ICR7ZXJyb3J9YCk7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH0pO1xuXG4gIGxldCBydW46IFdvcmtmbG93UnVuIHwgdW5kZWZpbmVkO1xuICAvLyBJZiB0aGUgd29ya2Zsb3dOYW1lT3JSdW5JZCBpcyBhIHJ1biBJRCwgZ2V0IHRoZSBydW5cbiAgaWYgKHdvcmtmbG93TmFtZU9yUnVuSWQuc3RhcnRzV2l0aCgnd3J1bl8nKSkge1xuICAgIHJ1biA9IGF3YWl0IHdvcmxkLnJ1bnMuZ2V0KHdvcmtmbG93TmFtZU9yUnVuSWQpO1xuICB9IGVsc2Uge1xuICAgIC8vIEdldCB0aGUgZmlyc3QgcnVuIGZvciB0aGF0IG5hbWUsIGhvcGVmdWxseSB0aGUgbmV3ZXN0IGRlcGxveW1lbnQsXG4gICAgLy8gYnV0IGNhbid0IGd1YXJhbnRlZSB0aGF0LlxuICAgIGNvbnN0IHJ1bkxpc3QgPSBhd2FpdCB3b3JsZC5ydW5zLmxpc3Qoe1xuICAgICAgd29ya2Zsb3dOYW1lOiB3b3JrZmxvd05hbWVPclJ1bklkLFxuICAgICAgcGFnaW5hdGlvbjoge1xuICAgICAgICBzb3J0T3JkZXI6ICdkZXNjJyxcbiAgICAgICAgbGltaXQ6IDEsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHJ1biA9IHJ1bkxpc3QuZGF0YVswXTtcbiAgfVxuXG4gIGlmICghcnVuKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBSdW4gXCIke3dvcmtmbG93TmFtZU9yUnVuSWR9XCIgbm90IGZvdW5kYCk7XG4gIH1cblxuICBjb25zdCBkZXBsb3ltZW50SWQgPSBydW4uZGVwbG95bWVudElkO1xuICBjb25zdCB3b3JrZmxvd0lkID0gYXdhaXQgZ2V0V29ya2Zsb3dOYW1lKHdvcmxkLCB3b3JrZmxvd05hbWVPclJ1bklkKTtcblxuICAvLyBQcm9iZSB0aGUgZGVwbG95bWVudCdzIHNwZWNWZXJzaW9uIHZpYSBoZWFsdGggY2hlY2sgc28gd2UgdXNlIHRoZVxuICAvLyBjb3JyZWN0IHF1ZXVlIHRyYW5zcG9ydCAoSlNPTiBmb3Igb2xkIGRlcGxveW1lbnRzLCBDQk9SIGZvciBuZXcpLlxuICAvLyBGYWxscyBiYWNrIHRvIHRoZSBydW4ncyBzcGVjVmVyc2lvbiBpZiB0aGUgaGVhbHRoIGNoZWNrIGZhaWxzXG4gIC8vIChlLmcuIG9sZCBkZXBsb3ltZW50IHdpdGhvdXQgaGVhbHRoIGNoZWNrIHN1cHBvcnQpLlxuICBsZXQgc3BlY1ZlcnNpb24gPSBydW4uc3BlY1ZlcnNpb247XG4gIHRyeSB7XG4gICAgY29uc3QgaGMgPSBhd2FpdCBoZWFsdGhDaGVjayh3b3JsZCwgJ3dvcmtmbG93Jywge1xuICAgICAgZGVwbG95bWVudElkLFxuICAgICAgdGltZW91dDogMTBfMDAwLFxuICAgIH0pO1xuICAgIGlmIChoYy5oZWFsdGh5ICYmIGhjLnNwZWNWZXJzaW9uICE9IG51bGwpIHtcbiAgICAgIHNwZWNWZXJzaW9uID0gaGMuc3BlY1ZlcnNpb247XG4gICAgfVxuICB9IGNhdGNoIHtcbiAgICAvLyBIZWFsdGggY2hlY2sgZmFpbGVkIOKAlCB1c2UgcnVuJ3Mgc3BlY1ZlcnNpb24gYXMgZmFsbGJhY2tcbiAgfVxuXG4gIGNvbnN0IG5ld1J1biA9IGF3YWl0IHN0YXJ0KHsgd29ya2Zsb3dJZCB9LCBqc29uQXJncywge1xuICAgIGRlcGxveW1lbnRJZCxcbiAgICBzcGVjVmVyc2lvbixcbiAgfSk7XG5cbiAgaWYgKG9wdHMuanNvbikge1xuICAgIHByb2Nlc3Muc3Rkb3V0LndyaXRlKEpTT04uc3RyaW5naWZ5KG5ld1J1biwgbnVsbCwgMikpO1xuICB9IGVsc2Uge1xuICAgIGxvZ2dlci5sb2cobmV3UnVuKTtcbiAgfVxufTtcbiJdfQ==
|
|
@@ -82,4 +82,4 @@ export const setupCliWorld = async (flags, version, ignoreLocalWorldConfigError
|
|
|
82
82
|
setWorld(world);
|
|
83
83
|
return world;
|
|
84
84
|
};
|
|
85
|
-
//# sourceMappingURL=
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luc3BlY3Qvc2V0dXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRCxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxZQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzFELE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsa0JBQWtCLEVBRWxCLFlBQVksR0FDYixNQUFNLFVBQVUsQ0FBQztBQUVsQjs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLEtBQUssRUFDaEMsS0FRQyxFQUNELE9BQWUsRUFDZiwyQkFBMkIsR0FBRyxLQUFLLEVBQ25DLEVBQUU7SUFDRixXQUFXLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2pDLGNBQWMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFFdkMsb0JBQW9CO0lBQ3BCLE1BQU0sV0FBVyxHQUFHLE1BQU0sb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFeEQsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDaEQsTUFBTSxPQUFPLEdBQUcsYUFBYTtRQUMzQixDQUFDLENBQUMsWUFBWSxDQUFDLDBCQUEwQixFQUFFLDBCQUEwQixDQUFDO1FBQ3RFLENBQUMsQ0FBQywwQkFBMEIsQ0FBQztJQUUvQix3QkFBd0I7SUFDeEIsTUFBTSxRQUFRLEdBQUcsQ0FBQyxpQkFBaUIsT0FBTyxFQUFFLEVBQUUsV0FBVyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBRXBFLGtDQUFrQztJQUNsQyxJQUFJLFdBQVcsQ0FBQyxXQUFXLElBQUksV0FBVyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3pELFFBQVEsQ0FBQyxJQUFJLENBQ1gsRUFBRSxFQUNGLEtBQUssQ0FBQyxJQUFJLENBQ1IscUJBQXFCLFdBQVcsQ0FBQyxjQUFjLE1BQU0sV0FBVyxDQUFDLGFBQWEsRUFBRSxDQUNqRixFQUNELEtBQUssQ0FBQyxJQUFJLENBQ1Isb0NBQW9DLFdBQVcsQ0FBQyxhQUFhLElBQUksQ0FDbEUsRUFDRCxLQUFLLENBQUMsSUFBSSxDQUNSLFlBQVksQ0FDVixnQkFBZ0IsRUFDaEIsNkNBQTZDLENBQzlDLENBQ0YsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEdBQUcsUUFBUSxDQUFDLENBQUM7SUFFckMsTUFBTSxDQUFDLEtBQUssQ0FBQyw4QkFBOEIsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUQsWUFBWSxDQUFDO1FBQ1gsS0FBSyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUMvQixxQkFBcUIsRUFBRSxLQUFLLENBQUMsT0FBTztLQUNyQyxDQUFDLENBQUM7SUFFSCxJQUFJLGFBQXdDLENBQUM7SUFDN0MsSUFBSSxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUN2QyxzRUFBc0U7UUFDdEUsa0VBQWtFO1FBQ2xFLFlBQVksQ0FBQztZQUNYLG1CQUFtQixFQUFFLEtBQUssQ0FBQyxHQUFHO1lBQzlCLDBCQUEwQixFQUFFLEtBQUssQ0FBQyxTQUFTO1lBQzNDLHVCQUF1QixFQUFFLEtBQUssQ0FBQyxPQUFPO1lBQ3RDLG9CQUFvQixFQUFFLEtBQUssQ0FBQyxJQUFJO1NBQ2pDLENBQUMsQ0FBQztRQUNILGFBQWEsR0FBRyxNQUFNLGtCQUFrQixFQUFFLENBQUM7SUFDN0MsQ0FBQztTQUFNLElBQ0wsS0FBSyxDQUFDLE9BQU8sS0FBSyxPQUFPO1FBQ3pCLEtBQUssQ0FBQyxPQUFPLEtBQUssdUJBQXVCLEVBQ3pDLENBQUM7UUFDRCxJQUFJLENBQUM7WUFDSCxNQUFNLHNCQUFzQixFQUFFLENBQUM7UUFDakMsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixJQUFJLDJCQUEyQixFQUFFLENBQUM7Z0JBQ2hDLE1BQU0sV0FBVyxHQUNmLEtBQUssWUFBWSxLQUFLO29CQUNwQixDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU87b0JBQ2YsQ0FBQyxDQUFDLDZCQUE2QixDQUFDO2dCQUNwQyxNQUFNLENBQUMsSUFBSSxDQUNULGlEQUFpRCxFQUNqRCxXQUFXLENBQ1osQ0FBQztnQkFDRixPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7WUFDRCxNQUFNLEtBQUssQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBRW5DLElBQUksS0FBWSxDQUFDO0lBQ2pCLElBQUksYUFBYSxFQUFFLENBQUM7UUFDbEIsd0VBQXdFO1FBQ3hFLGdEQUFnRDtRQUNoRCxLQUFLLEdBQUcsaUJBQWlCLENBQUM7WUFDeEIsS0FBSyxFQUFFLGFBQWEsQ0FBQyxLQUFLO1lBQzFCLGFBQWEsRUFBRTtnQkFDYixXQUFXLEVBQUUsYUFBYSxDQUFDLFdBQVc7Z0JBQ3RDLFNBQVMsRUFBRSxhQUFhLENBQUMsU0FBUztnQkFDbEMsV0FBVyxFQUFFLGFBQWEsQ0FBQyxXQUFXO2dCQUN0QyxNQUFNLEVBQUUsYUFBYSxDQUFDLE1BQU07YUFDN0I7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO1NBQU0sQ0FBQztRQUNOLEtBQUssR0FBRyxXQUFXLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsNEVBQTRFO0lBQzVFLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQixPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZVdvcmxkLCBzZXRXb3JsZCB9IGZyb20gJ0B3b3JrZmxvdy9jb3JlL3J1bnRpbWUnO1xuaW1wb3J0IHsgaXNWZXJjZWxXb3JsZFRhcmdldCB9IGZyb20gJ0B3b3JrZmxvdy91dGlscyc7XG5pbXBvcnQgdHlwZSB7IFdvcmxkIH0gZnJvbSAnQHdvcmtmbG93L3dvcmxkJztcbmltcG9ydCB7IGNyZWF0ZVZlcmNlbFdvcmxkIH0gZnJvbSAnQHdvcmtmbG93L3dvcmxkLXZlcmNlbCc7XG5pbXBvcnQgY2hhbGsgZnJvbSAnY2hhbGsnO1xuaW1wb3J0IHRlcm1pbmFsTGluayBmcm9tICd0ZXJtaW5hbC1saW5rJztcbmltcG9ydCB7IGxvZ2dlciwgc2V0SnNvbk1vZGUsIHNldFZlcmJvc2VNb2RlIH0gZnJvbSAnLi4vY29uZmlnL2xvZy5qcyc7XG5pbXBvcnQgeyBjaGVja0ZvclVwZGF0ZUNhY2hlZCB9IGZyb20gJy4uL3VwZGF0ZS1jaGVjay5qcyc7XG5pbXBvcnQge1xuICBpbmZlckxvY2FsV29ybGRFbnZWYXJzLFxuICBpbmZlclZlcmNlbEVudlZhcnMsXG4gIHR5cGUgVmVyY2VsRW52VmFycyxcbiAgd3JpdGVFbnZWYXJzLFxufSBmcm9tICcuL2Vudi5qcyc7XG5cbi8qKlxuICogU2V0dXAgQ0xJIHdvcmxkIGNvbmZpZ3VyYXRpb24uXG4gKiBJZiB0aHJvd09uQ29uZmlnRXJyb3IgaXMgZmFsc2UsIHdpbGwgcmV0dXJuIG51bGwgd29ybGQgd2l0aCB0aGUgZXJyb3IgbWVzc2FnZVxuICogaW5zdGVhZCBvZiB0aHJvd2luZywgYWxsb3dpbmcgdGhlIHdlYiBVSSB0byBvcGVuIGZvciBjb25maWd1cmF0aW9uLlxuICovXG5leHBvcnQgY29uc3Qgc2V0dXBDbGlXb3JsZCA9IGFzeW5jIChcbiAgZmxhZ3M6IHtcbiAgICBqc29uOiBib29sZWFuO1xuICAgIHZlcmJvc2U6IGJvb2xlYW47XG4gICAgYmFja2VuZDogc3RyaW5nO1xuICAgIGVudjogc3RyaW5nO1xuICAgIGF1dGhUb2tlbjogc3RyaW5nO1xuICAgIHByb2plY3Q6IHN0cmluZztcbiAgICB0ZWFtOiBzdHJpbmc7XG4gIH0sXG4gIHZlcnNpb246IHN0cmluZyxcbiAgaWdub3JlTG9jYWxXb3JsZENvbmZpZ0Vycm9yID0gZmFsc2VcbikgPT4ge1xuICBzZXRKc29uTW9kZShCb29sZWFuKGZsYWdzLmpzb24pKTtcbiAgc2V0VmVyYm9zZU1vZGUoQm9vbGVhbihmbGFncy52ZXJib3NlKSk7XG5cbiAgLy8gQ2hlY2sgZm9yIHVwZGF0ZXNcbiAgY29uc3QgdXBkYXRlQ2hlY2sgPSBhd2FpdCBjaGVja0ZvclVwZGF0ZUNhY2hlZCh2ZXJzaW9uKTtcblxuICBjb25zdCB3aXRoQW5zaUxpbmtzID0gZmxhZ3MuanNvbiA/IGZhbHNlIDogdHJ1ZTtcbiAgY29uc3QgZG9jc1VybCA9IHdpdGhBbnNpTGlua3NcbiAgICA/IHRlcm1pbmFsTGluaygnaHR0cHM6Ly91c2V3b3JrZmxvdy5kZXYvJywgJ2h0dHBzOi8vdXNld29ya2Zsb3cuZGV2LycpXG4gICAgOiAnaHR0cHM6Ly91c2V3b3JrZmxvdy5kZXYvJztcblxuICAvLyBQcmVwYXJlIHNob3dCb3ggbGluZXNcbiAgY29uc3QgYm94TGluZXMgPSBbYFdvcmtmbG93IENMSSB2JHt2ZXJzaW9ufWAsIGBEb2NzIGF0ICR7ZG9jc1VybH1gXTtcblxuICAvLyBBZGQgdXBkYXRlIG1lc3NhZ2UgaWYgYXZhaWxhYmxlXG4gIGlmICh1cGRhdGVDaGVjay5uZWVkc1VwZGF0ZSAmJiB1cGRhdGVDaGVjay5sYXRlc3RWZXJzaW9uKSB7XG4gICAgYm94TGluZXMucHVzaChcbiAgICAgICcnLFxuICAgICAgY2hhbGsuY3lhbihcbiAgICAgICAgYFVwZGF0ZSBhdmFpbGFibGU6ICR7dXBkYXRlQ2hlY2suY3VycmVudFZlcnNpb259IOKGkiAke3VwZGF0ZUNoZWNrLmxhdGVzdFZlcnNpb259YFxuICAgICAgKSxcbiAgICAgIGNoYWxrLmdyYXkoXG4gICAgICAgIGBSdW46IFxcYFtucG18YnVufHBucG1dIGkgd29ya2Zsb3dAJHt1cGRhdGVDaGVjay5sYXRlc3RWZXJzaW9ufVxcYGBcbiAgICAgICksXG4gICAgICBjaGFsay5ncmF5KFxuICAgICAgICB0ZXJtaW5hbExpbmsoXG4gICAgICAgICAgJ1ZpZXcgY2hhbmdlbG9nJyxcbiAgICAgICAgICAnaHR0cHM6Ly9naXRodWIuY29tL3ZlcmNlbC93b3JrZmxvdy9yZWxlYXNlcydcbiAgICAgICAgKVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBsb2dnZXIuc2hvd0JveCgnZ3JlZW4nLCAuLi5ib3hMaW5lcyk7XG5cbiAgbG9nZ2VyLmRlYnVnKCdJbmZlcnJpbmcgZW52IHZhcnMsIGJhY2tlbmQ6JywgZmxhZ3MuYmFja2VuZCk7XG4gIHdyaXRlRW52VmFycyh7XG4gICAgREVCVUc6IGZsYWdzLnZlcmJvc2UgPyAnMScgOiAnJyxcbiAgICBXT1JLRkxPV19UQVJHRVRfV09STEQ6IGZsYWdzLmJhY2tlbmQsXG4gIH0pO1xuXG4gIGxldCB2ZXJjZWxFbnZWYXJzOiBWZXJjZWxFbnZWYXJzIHwgdW5kZWZpbmVkO1xuICBpZiAoaXNWZXJjZWxXb3JsZFRhcmdldChmbGFncy5iYWNrZW5kKSkge1xuICAgIC8vIFNlZWQgdGhlIGluaXRpYWwgZmxhZ3MgaW50byBwcm9jZXNzLmVudiBzbyBpbmZlclZlcmNlbEVudlZhcnMoKSBjYW5cbiAgICAvLyByZWFkIHRoZW0gdmlhIGdldEVudlZhcnMoKSBhcyBzdGFydGluZyB2YWx1ZXMgYmVmb3JlIGluZmVyZW5jZS5cbiAgICB3cml0ZUVudlZhcnMoe1xuICAgICAgV09SS0ZMT1dfVkVSQ0VMX0VOVjogZmxhZ3MuZW52LFxuICAgICAgV09SS0ZMT1dfVkVSQ0VMX0FVVEhfVE9LRU46IGZsYWdzLmF1dGhUb2tlbixcbiAgICAgIFdPUktGTE9XX1ZFUkNFTF9QUk9KRUNUOiBmbGFncy5wcm9qZWN0LFxuICAgICAgV09SS0ZMT1dfVkVSQ0VMX1RFQU06IGZsYWdzLnRlYW0sXG4gICAgfSk7XG4gICAgdmVyY2VsRW52VmFycyA9IGF3YWl0IGluZmVyVmVyY2VsRW52VmFycygpO1xuICB9IGVsc2UgaWYgKFxuICAgIGZsYWdzLmJhY2tlbmQgPT09ICdsb2NhbCcgfHxcbiAgICBmbGFncy5iYWNrZW5kID09PSAnQHdvcmtmbG93L3dvcmxkLWxvY2FsJ1xuICApIHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgaW5mZXJMb2NhbFdvcmxkRW52VmFycygpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBpZiAoaWdub3JlTG9jYWxXb3JsZENvbmZpZ0Vycm9yKSB7XG4gICAgICAgIGNvbnN0IGNvbmZpZ0Vycm9yID1cbiAgICAgICAgICBlcnJvciBpbnN0YW5jZW9mIEVycm9yXG4gICAgICAgICAgICA/IGVycm9yLm1lc3NhZ2VcbiAgICAgICAgICAgIDogJ1Vua25vd24gY29uZmlndXJhdGlvbiBlcnJvcic7XG4gICAgICAgIGxvZ2dlci53YXJuKFxuICAgICAgICAgICdGYWlsZWQgdG8gZmluZCB2YWxpZCBsb2NhbCB3b3JsZCBjb25maWd1cmF0aW9uOicsXG4gICAgICAgICAgY29uZmlnRXJyb3JcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH1cblxuICBsb2dnZXIuZGVidWcoJ0luaXRpYWxpemluZyB3b3JsZCcpO1xuXG4gIGxldCB3b3JsZDogV29ybGQ7XG4gIGlmICh2ZXJjZWxFbnZWYXJzKSB7XG4gICAgLy8gQnVpbGQgdGhlIFZlcmNlbCB3b3JsZCBkaXJlY3RseSBmcm9tIHRoZSBpbmZlcnJlZCBjb25maWcsIHJhdGhlciB0aGFuXG4gICAgLy8gcmVseWluZyBvbiBjcmVhdGVXb3JsZCgpIHJlYWRpbmcgcHJvY2Vzcy5lbnYuXG4gICAgd29ybGQgPSBjcmVhdGVWZXJjZWxXb3JsZCh7XG4gICAgICB0b2tlbjogdmVyY2VsRW52VmFycy50b2tlbixcbiAgICAgIHByb2plY3RDb25maWc6IHtcbiAgICAgICAgZW52aXJvbm1lbnQ6IHZlcmNlbEVudlZhcnMuZW52aXJvbm1lbnQsXG4gICAgICAgIHByb2plY3RJZDogdmVyY2VsRW52VmFycy5wcm9qZWN0SWQsXG4gICAgICAgIHByb2plY3ROYW1lOiB2ZXJjZWxFbnZWYXJzLnByb2plY3ROYW1lLFxuICAgICAgICB0ZWFtSWQ6IHZlcmNlbEVudlZhcnMudGVhbUlkLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICB3b3JsZCA9IGNyZWF0ZVdvcmxkKCk7XG4gIH1cblxuICAvLyBTdG9yZSBpbiB0aGUgZ2xvYmFsIGNhY2hlIHNvIEJhc2VDb21tYW5kLmZpbmFsbHkoKSBjYW4gZmluZCBhbmQgY2xvc2UgaXQuXG4gIHNldFdvcmxkKHdvcmxkKTtcbiAgcmV0dXJuIHdvcmxkO1xufTtcbiJdfQ==
|
|
@@ -56,4 +56,4 @@ export const streamToConsole = async (stream, id, opts) => {
|
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
};
|
|
59
|
-
//# sourceMappingURL=
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyZWFtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9pbnNwZWN0L3N0cmVhbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHMUM7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLEtBQUssRUFDbEMsTUFBK0IsRUFDL0IsRUFBVSxFQUNWLElBQXVCLEVBQ3ZCLEVBQUU7SUFDRixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbEMsbUVBQW1FO0lBQ25FLHlFQUF5RTtJQUN6RSxNQUFNLFNBQVMsR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFLEdBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hELElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQztJQUNuQixJQUFJLENBQUM7UUFDSCxTQUFTLENBQUM7WUFDUixNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzVDLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ1QsTUFBTTtZQUNSLENBQUM7WUFFRCxvQkFBb0I7WUFDcEIsSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQztnQkFDMUMsU0FBUztZQUNYLENBQUM7WUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDZCxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3JELENBQUM7aUJBQU0sQ0FBQztnQkFDTiwrQkFBK0I7Z0JBQy9CLE1BQU0sSUFBSSxHQUNSLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3JFLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxVQUFVLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDdEMsVUFBVSxFQUFFLENBQUM7WUFDZixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2IsaUZBQWlGO1FBQ2pGLElBQUksR0FBRyxZQUFZLEtBQUssSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLENBQUM7WUFDdEUsTUFBTSxDQUFDLEtBQUssQ0FDVixrRkFBa0YsQ0FDbkYsQ0FBQztRQUNKLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxDQUFDLEtBQUssQ0FBQyxpQ0FBaUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDN0QsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztnQkFDMUIsS0FBSyxFQUFFLGlDQUFpQyxFQUFFLEVBQUU7Z0JBQzVDLE9BQU8sRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDO2FBQ3JCLENBQUMsQ0FBQztZQUNILE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQztRQUNwQyxDQUFDO0lBQ0gsQ0FBQztZQUFTLENBQUM7UUFDVCxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDeEIsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLDRDQUE0QztRQUM5QyxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGxvZ2dlciB9IGZyb20gJy4uL2NvbmZpZy9sb2cuanMnO1xuaW1wb3J0IHR5cGUgeyBJbnNwZWN0Q0xJT3B0aW9ucyB9IGZyb20gJy4uL2NvbmZpZy90eXBlcy5qcyc7XG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiB3aWxsIHJlYWQgZnJvbSBhIGRlc2VyaWFsaXplZCBzdHJlYW0gYW5kIHdyaXRlIHRoZSBvdXRwdXQgdG8gdGhlIGNvbnNvbGUuXG4gKiBJZiB0aGUgc3RyZWFtIGlzIG5vdCBjbG9zZWQsIHRoaXMgZnVuY3Rpb24gd2lsbCBibG9jayB1bnRpbCB0aGUgc3RyZWFtIGlzIGNsb3NlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IHN0cmVhbVRvQ29uc29sZSA9IGFzeW5jIChcbiAgc3RyZWFtOiBSZWFkYWJsZVN0cmVhbTx1bmtub3duPixcbiAgaWQ6IHN0cmluZyxcbiAgb3B0czogSW5zcGVjdENMSU9wdGlvbnNcbikgPT4ge1xuICBjb25zdCByZWFkZXIgPSBzdHJlYW0uZ2V0UmVhZGVyKCk7XG4gIC8vIEtlZXAgdGhlIE5vZGUuanMgZXZlbnQgbG9vcCBhbGl2ZSB3aGlsZSB3ZSBhd2FpdCBzdHJlYW0gY2xvc3VyZS5cbiAgLy8gUGVuZGluZyBQcm9taXNlcyBhbG9uZSBkbyBub3Qga2VlcCB0aGUgcHJvY2VzcyBhbGl2ZSB3aGVuIHVzaW5nIG9jbGlmLlxuICBjb25zdCBrZWVwQWxpdmUgPSBzZXRJbnRlcnZhbCgoKSA9PiB7fSwgNjBfMDAwKTtcbiAgbGV0IGNodW5rSW5kZXggPSAwO1xuICB0cnkge1xuICAgIGZvciAoOzspIHtcbiAgICAgIGNvbnN0IHsgdmFsdWUsIGRvbmUgfSA9IGF3YWl0IHJlYWRlci5yZWFkKCk7XG4gICAgICBpZiAoZG9uZSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgLy8gU2tpcCBlbXB0eSBjaHVua3NcbiAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAob3B0cy5qc29uKSB7XG4gICAgICAgIHByb2Nlc3Muc3Rkb3V0LndyaXRlKGAke0pTT04uc3RyaW5naWZ5KHZhbHVlKX1cXG5gKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIEZvcm1hdCB0aGUgdmFsdWUgZm9yIGRpc3BsYXlcbiAgICAgICAgY29uc3QgdGV4dCA9XG4gICAgICAgICAgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IHZhbHVlIDogSlNPTi5zdHJpbmdpZnkodmFsdWUsIG51bGwsIDIpO1xuICAgICAgICBsb2dnZXIubG9nKGBbJHtjaHVua0luZGV4fV0gJHt0ZXh0fWApO1xuICAgICAgICBjaHVua0luZGV4Kys7XG4gICAgICB9XG4gICAgfVxuICB9IGNhdGNoIChlcnIpIHtcbiAgICAvLyBQcm92aWRlIGEgY2xlYXIgbWVzc2FnZSB3aGVuIHRoZSBzdHJlYW0gaXMgZW5jcnlwdGVkIGFuZCAtLWRlY3J5cHQgd2Fzbid0IHVzZWRcbiAgICBpZiAoZXJyIGluc3RhbmNlb2YgRXJyb3IgJiYgZXJyLm1lc3NhZ2UuaW5jbHVkZXMoJ25vIGVuY3J5cHRpb24ga2V5JykpIHtcbiAgICAgIGxvZ2dlci5lcnJvcihcbiAgICAgICAgJ1RoaXMgc3RyZWFtIGNvbnRhaW5zIGVuY3J5cHRlZCBkYXRhLiBVc2UgLS1kZWNyeXB0IC0tcnVuPTxydW4taWQ+IHRvIGRlY3J5cHQgaXQuJ1xuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5lcnJvcihgRmFpbGVkIHRvIHJlYWQgc3RyZWFtIHdpdGggSUQgJHtpZH06YCwgZXJyKTtcbiAgICB9XG4gICAgaWYgKG9wdHMuanNvbikge1xuICAgICAgY29uc3QganNvbiA9IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgZXJyb3I6IGBGYWlsZWQgdG8gcmVhZCBzdHJlYW0gd2l0aCBJRCAke2lkfWAsXG4gICAgICAgIGRldGFpbHM6IFN0cmluZyhlcnIpLFxuICAgICAgfSk7XG4gICAgICBwcm9jZXNzLnN0ZGVyci53cml0ZShgJHtqc29ufVxcbmApO1xuICAgIH1cbiAgfSBmaW5hbGx5IHtcbiAgICBjbGVhckludGVydmFsKGtlZXBBbGl2ZSk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHJlYWRlci5jYW5jZWwoKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIElnbm9yZSBjYW5jZWxsYXRpb24gZXJyb3JzIGR1cmluZyBjbGVhbnVwXG4gICAgfVxuICB9XG59O1xuIl19
|
|
@@ -105,4 +105,4 @@ export const formatISODate = (date) => {
|
|
|
105
105
|
// Replace T with space and remove Z
|
|
106
106
|
return isoString.replace('T', ' ').replace('Z', '');
|
|
107
107
|
};
|
|
108
|
-
//# sourceMappingURL=
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVybWluYWwtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luc3BlY3QvdGVybWluYWwtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRyxHQUFZLEVBQUU7SUFDaEMsT0FBTyxDQUFDLENBQUMsQ0FDUCxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLHNCQUFzQjtRQUNsQyxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVk7UUFDeEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjO1FBQzFCLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUztRQUNyQixPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVE7UUFDcEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNO1FBQ2xCLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVztRQUN2QixPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVM7UUFDckIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQ3JCLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxHQUFZLEVBQUU7SUFDekMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztBQUMzQyxDQUFDLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLEdBQVcsRUFBRTtJQUMzQyxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLGlDQUFpQztBQUN4RSxDQUFDLENBQUM7QUFjRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUNoQyxhQUFxQixFQUNyQixRQUFpQixFQUNqQixhQUFzQixJQUFJLEVB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TUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsSUFBVSxFQUFVLEVBQUU7SUFDbEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JDLG9DQUFvQztJQUNwQyxPQUFPLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDdEQsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBVdGlsaXRpZXMgZm9yIHRlcm1pbmFsIGRpc3BsYXkgYW5kIGVudmlyb25tZW50IGRldGVjdGlvblxuICovXG5cbi8qKlxuICogQ2hlY2sgaWYgcnVubmluZyBpbiBDSSBlbnZpcm9ubWVudFxuICovXG5leHBvcnQgY29uc3QgaXNDSSA9ICgpOiBib29sZWFuID0+IHtcbiAgcmV0dXJuICEhKFxuICAgIHByb2Nlc3MuZW52LkNJIHx8XG4gICAgcHJvY2Vzcy5lbnYuQ09OVElOVU9VU19JTlRFR1JBVElPTiB8fFxuICAgIHByb2Nlc3MuZW52LkJVSUxEX05VTUJFUiB8fFxuICAgIHByb2Nlc3MuZW52LkdJVEhVQl9BQ1RJT05TIHx8XG4gICAgcHJvY2Vzcy5lbnYuR0lUTEFCX0NJIHx8XG4gICAgcHJvY2Vzcy5lbnYuQ0lSQ0xFQ0kgfHxcbiAgICBwcm9jZXNzLmVudi5UUkFWSVMgfHxcbiAgICBwcm9jZXNzLmVudi5KRU5LSU5TX1VSTCB8fFxuICAgIHByb2Nlc3MuZW52LkJVSUxES0lURSB8fFxuICAgIHByb2Nlc3MuZW52LlRGX0JVSUxEXG4gICk7XG59O1xuXG4vKipcbiAqIENoZWNrIGlmIHJ1bm5pbmcgaW4gYW4gaW50ZXJhY3RpdmUgdGVybWluYWxcbiAqL1xuZXhwb3J0IGNvbnN0IGlzSW50ZXJhY3RpdmUgPSAoKTogYm9vbGVhbiA9PiB7XG4gIHJldHVybiAhaXNDSSgpICYmICEhcHJvY2Vzcy5zdGRvdXQuaXNUVFk7XG59O1xuXG4vKipcbiAqIEdldCB0aGUgY3VycmVudCB0ZXJtaW5hbCB3aWR0aFxuICovXG5leHBvcnQgY29uc3QgZ2V0VGVybWluYWxXaWR0aCA9ICgpOiBudW1iZXIgPT4ge1xuICByZXR1cm4gcHJvY2Vzcy5zdGRvdXQuY29sdW1ucyB8fCA4MDsgLy8gRGVmYXVsdCB0byA4MCBpZiBub3QgYXZhaWxhYmxlXG59O1xuXG4vKipcbiAqIENhbGN1bGF0ZSBkaXNwbGF5IHNldHRpbmdzIGJhc2VkIG9uIHRlcm1pbmFsIHdpZHRoXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGlzcGxheVNldHRpbmdzIHtcbiAgc2hvd1JlbGF0aXZlRGF0ZXM6IGJvb2xlYW47XG4gIGRhdGFGaWVsZFdpZHRoOiBudW1iZXI7XG4gIGFiYnJldmlhdGVTdGF0dXM6IGJvb2xlYW47XG4gIG5hbWVzVHJ1bmNhdGVMZW5ndGg6IG51bWJlcjtcbiAgdHJ1bmNhdGVJZHNUb0xhc3RDaGFyczogYm9vbGVhbjtcbiAgaGlkZUNvbXBsZXRlZEF0OiBib29sZWFuO1xufVxuXG5leHBvcnQgY29uc3QgZ2V0RGlzcGxheVNldHRpbmdzID0gKFxuICB0ZXJtaW5hbFdpZHRoOiBudW1iZXIsXG4gIHdpdGhEYXRhOiBib29sZWFuLFxuICBpc1J1blRhYmxlOiBib29sZWFuID0gdHJ1ZVxuKTogRGlzcGxheVNldHRpbmdzID0+IHtcbiAgLy8gQmFzZSB3aWR0aHMgZnJvbSBhY3R1YWwgbWVhc3VyZW1lbnRzICh3aXRob3V0IGRhdGEgZmllbGRzKVxuICBjb25zdCBiYXNlV2lkdGggPSAoaXNSdW5UYWJsZSA/IDE0MCA6IDE3MCkgKyAod2l0aERhdGEgPyAzMiA6IDApO1xuXG4gIC8vIEluaXRpYWxpemUgd2l0aCBkZWZhdWx0c1xuICBjb25zdCBzZXR0aW5nczogRGlzcGxheVNldHRpbmdzID0ge1xuICAgIHNob3dSZWxhdGl2ZURhdGVzOiAhd2l0aERhdGEsIC8vIERpc2FibGVkIGJ5IGRlZmF1bHQgd2hlbiB3aXRoRGF0YSBpcyB0cnVlXG4gICAgZGF0YUZpZWxkV2lkdGg6IDE1LFxuICAgIGFiYnJldmlhdGVTdGF0dXM6IGZhbHNlLFxuICAgIG5hbWVzVHJ1bmNhdGVMZW5ndGg6IDQwLFxuICAgIHRydW5jYXRlSWRzVG9MYXN0Q2hhcnM6IGZhbHNlLFxuICAgIGhpZGVDb21wbGV0ZWRBdDogZmFsc2UsXG4gIH07XG5cbiAgLy8gSWYgdGVybWluYWwgd2lkdGggaXMgc3VmZmljaWVudCwgcmV0dXJuIGRlZmF1bHRzXG4gIGlmICh0ZXJtaW5hbFdpZHRoID49IGJhc2VXaWR0aCkge1xuICAgIHJldHVybiBzZXR0aW5ncztcbiAgfVxuXG4gIC8vIFByb2dyZXNzaXZlIGRlZ3JhZGF0aW9uIGF2ZW51ZXNcbiAgbGV0IGF2YWlsYWJsZVdpZHRoID0gYmFzZVdpZHRoO1xuXG4gIC8vIERpc2FibGUgcmVsYXRpdmUgZGF0ZXMgKHNhdmUgMzQgY2hhcmFjdGVycylcbiAgaWYgKHNldHRpbmdzLnNob3dSZWxhdGl2ZURhdGVzICYmIHRlcm1pbmFsV2lkdGggPCBhdmFpbGFibGVXaWR0aCkge1xuICAgIHNldHRpbmdzLnNob3dSZWxhdGl2ZURhdGVzID0gZmFsc2U7XG4gICAgYXZhaWxhYmxlV2lkdGggLT0gMzQ7XG4gIH1cblxuICAvLyBSZWR1Y2UgZGF0YSBmaWVsZCB3aWR0aCBpZiB3aXRoRGF0YSBpcyBzZXQgKHNhdmUgMjAgY2hhcmFjdGVycyBmcm9tIDIqMTApXG4gIGlmIChcbiAgICB3aXRoRGF0YSAmJlxuICAgIHNldHRpbmdzLmRhdGFGaWVsZFdpZHRoID09PSAxNSAmJlxuICAgIHRlcm1pbmFsV2lkdGggPCBhdmFpbGFibGVXaWR0aFxuICApIHtcbiAgICBzZXR0aW5ncy5kYXRhRmllbGRXaWR0aCA9IDU7XG4gICAgYXZhaWxhYmxlV2lkdGggLT0gMjA7XG4gIH1cblxuICAvLyBBYmJyZXZpYXRlIHN0YXR1cyBhbmQgc2V0IGhlYWRlciB0byBcIlNcIiAoc2F2ZSA4IGNoYXJhY3RlcnMpXG4gIGlmICh0ZXJtaW5hbFdpZHRoIDwgYXZhaWxhYmxlV2lkdGgpIHtcbiAgICBzZXR0aW5ncy5hYmJyZXZpYXRlU3RhdHVzID0gdHJ1ZTtcbiAgICBhdmFpbGFibGVXaWR0aCAtPSA4O1xuICB9XG5cbiAgLy8gVHJpbSBuYW1lcyBmcm9tIDQwIHRvIDIwIGNoYXJhY3RlcnMgKHNhdmUgMjAgY2hhcmFjdGVycylcbiAgaWYgKHNldHRpbmdzLm5hbWVzVHJ1bmNhdGVMZW5ndGggPT09IDQwICYmIHRlcm1pbmFsV2lkdGggPCBhdmFpbGFibGVXaWR0aCkge1xuICAgIHNldHRpbmdzLm5hbWVzVHJ1bmNhdGVMZW5ndGggPSAyMDtcbiAgICBhdmFpbGFibGVXaWR0aCAtPSAyMDtcbiAgfVxuXG4gIC8vIEhpZGUgY29tcGxldGVkQXQgY29sdW1uIChzYXZlIDIzIGNoYXJhY3RlcnMpXG4gIGlmICh0ZXJtaW5hbFdpZHRoIDwgYXZhaWxhYmxlV2lkdGgpIHtcbiAgICBzZXR0aW5ncy5oaWRlQ29tcGxldGVkQXQgPSB0cnVlO1xuICAgIGF2YWlsYWJsZVdpZHRoIC09IDIzO1xuICB9XG5cbiAgLy8gVHJpbSBJRHMgdG8gbGFzdCA0IGNoYXJhY3RlcnNcbiAgaWYgKHRlcm1pbmFsV2lkdGggPCBhdmFpbGFibGVXaWR0aCkge1xuICAgIHNldHRpbmdzLnRydW5jYXRlSWRzVG9MYXN0Q2hhcnMgPSB0cnVlO1xuICAgIGF2YWlsYWJsZVdpZHRoIC09IGlzUnVuVGFibGUgPyAyNCA6IDQ4O1xuICB9XG5cbiAgcmV0dXJuIHNldHRpbmdzO1xufTtcblxuLyoqXG4gKiBGb3JtYXQgc3RhdHVzIHdpdGggb3B0aW9uYWwgYWJicmV2aWF0aW9uXG4gKi9cbmV4cG9ydCBjb25zdCBmb3JtYXRTdGF0dXMgPSAoc3RhdHVzOiBzdHJpbmcsIGFiYnJldmlhdGVkOiBib29sZWFuKTogc3RyaW5nID0+IHtcbiAgaWYgKCFhYmJyZXZpYXRlZCkge1xuICAgIHJldHVybiBzdGF0dXM7XG4gIH1cblxuICAvLyBBYmJyZXZpYXRlIHRvIGZpcnN0IGxldHRlclxuICBjb25zdCBhYmJyZXZNYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgcnVubmluZzogJ1InLFxuICAgIGNvbXBsZXRlZDogJ0MnLFxuICAgIGZhaWxlZDogJ0YnLFxuICAgIGNhbmNlbGxlZDogJ1gnLFxuICAgIHBlbmRpbmc6ICdQJyxcbiAgfTtcblxuICByZXR1cm4gYWJicmV2TWFwW3N0YXR1cy50b0xvd2VyQ2FzZSgpXSB8fCBzdGF0dXMuY2hhckF0KDApLnRvVXBwZXJDYXNlKCk7XG59O1xuXG4vKipcbiAqIEZvcm1hdCBJU08gZGF0ZSB3aXRob3V0IFQgYW5kIFogY2hhcmFjdGVyc1xuICovXG5leHBvcnQgY29uc3QgZm9ybWF0SVNPRGF0ZSA9IChkYXRlOiBEYXRlKTogc3RyaW5nID0+IHtcbiAgY29uc3QgaXNvU3RyaW5nID0gZGF0ZS50b0lTT1N0cmluZygpO1xuICAvLyBSZXBsYWNlIFQgd2l0aCBzcGFjZSBhbmQgcmVtb3ZlIFpcbiAgcmV0dXJuIGlzb1N0cmluZy5yZXBsYWNlKCdUJywgJyAnKS5yZXBsYWNlKCdaJywgJycpO1xufTtcbiJdfQ==
|
|
@@ -86,4 +86,4 @@ export function getVercelDashboardUrl(teamSlug, projectName, resource, id) {
|
|
|
86
86
|
}
|
|
87
87
|
return url;
|
|
88
88
|
}
|
|
89
|
-
//# sourceMappingURL=
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyY2VsLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvaW5zcGVjdC92ZXJjZWwtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFPMUM7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxhQUFhLENBQ2pDLE1BQWMsRUFDZCxTQUFpQjtJQUVqQixJQUFJLENBQUM7UUFDSCxvREFBb0Q7UUFDcEQsTUFBTSxVQUFVLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUN6QyxNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRTdELE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLG1DQUFtQyxNQUFNLEVBQUUsRUFBRTtZQUN4RSxPQUFPLEVBQUU7Z0JBQ1AsYUFBYSxFQUFFLFVBQVUsU0FBUyxFQUFFO2FBQ3JDO1lBQ0QsTUFBTSxFQUFFLFVBQVUsQ0FBQyxNQUFNO1NBQzFCLENBQUMsQ0FBQztRQUVILDBEQUEwRDtRQUMxRCxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFeEIsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ3ZELE1BQU0sQ0FBQyxLQUFLLENBQ1YsS0FBSyxDQUFDLEdBQUcsQ0FDUCwwQkFBMEIsUUFBUSxDQUFDLE1BQU0sc0NBQXNDLENBQ2hGLENBQ0YsQ0FBQztZQUNGLE1BQU0sQ0FBQyxJQUFJLENBQ1QsS0FBSyxDQUFDLE1BQU0sQ0FDVixnRUFBZ0UsQ0FDakUsQ0FDRixDQUFDO1lBQ0YsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLHNDQUFzQyxDQUFDLENBQUMsQ0FBQztZQUNsRSxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2pCLE1BQU0sQ0FBQyxLQUFLLENBQ1YsOEJBQThCLFFBQVEsQ0FBQyxNQUFNLElBQUksUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUN2RSxDQUFDO1lBQ0YsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsTUFBTSxJQUFJLEdBQUcsQ0FBQyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBZSxDQUFDO1FBQ25ELE9BQU87WUFDTCxRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUk7U0FDcEIsQ0FBQztJQUNKLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsK0RBQStEO1FBQy9ELElBQUksS0FBSyxZQUFZLEtBQUssSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFlBQVksRUFBRSxDQUFDO1lBQzFELE1BQU0sQ0FBQyxLQUFLLENBQ1Ysd0VBQXdFLENBQ3pFLENBQUM7UUFDSixDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sQ0FBQyxLQUFLLENBQUMsNkJBQTZCLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDckQsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztBQUNILENBQUM7QUFFRCxNQUFNO0FBQ04sK0RBQStEO0FBQy9ELE1BQU07QUFDTix1REFBdUQ7QUFDdkQsc0JBQXNCO0FBQ3RCLHlCQUF5QjtBQUN6QixzQkFBc0I7QUFDdEIsd0JBQXdCO0FBQ3hCLFVBQVU7QUFDVix5RkFBeUY7QUFDekYsK0VBQStFO0FBRS9FLG1EQUFtRDtBQUNuRCx3QkFBd0I7QUFDeEIsNEJBQTRCO0FBQzVCLG1CQUFtQjtBQUNuQixnREFBZ0Q7QUFDaEQsV0FBVztBQUNYLFVBQVU7QUFFVix5Q0FBeUM7QUFDekMsMkVBQTJFO0FBQzNFLG9CQUFvQjtBQUNwQixzR0FBc0c7QUFDdEcsU0FBUztBQUVULDBCQUEwQjtBQUMxQixzQkFBc0I7QUFDdEIsdUVBQXVFO0FBQ3ZFLG9CQUFvQjtBQUNwQixNQUFNO0FBQ04sSUFBSTtBQUVKOztHQUVHO0FBQ0gsTUFBTSxVQUFVLHFCQUFxQixDQUNuQyxRQUFnQixFQUNoQixXQUFtQixFQUNuQixRQUFnQixFQUNoQixFQUFXO0lBRVgsSUFBSSxHQUFHLEdBQUcsc0JBQXNCLFFBQVEsSUFBSSxXQUFXLDBCQUEwQixDQUFDO0lBRWxGLHNDQUFzQztJQUN0QyxJQUFJLFFBQVEsS0FBSyxLQUFLLElBQUksRUFBRSxFQUFFLENBQUM7UUFDN0IsR0FBRyxJQUFJLFNBQVMsRUFBRSx5QkFBeUIsQ0FBQztJQUM5QyxDQUFDO1NBQU0sSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUNkLEdBQUcsSUFBSSxJQUFJLFFBQVEsTUFBTSxFQUFFLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gJy4uL2NvbmZpZy9sb2cuanMnO1xuXG5pbnRlcmZhY2UgVmVyY2VsVGVhbSB7XG4gIGlkOiBzdHJpbmc7XG4gIHNsdWc6IHN0cmluZztcbn1cblxuLyoqXG4gKiBGZXRjaCB0ZWFtIGluZm9ybWF0aW9uIGZyb20gVmVyY2VsIEFQSVxuICogVGltZW91dDogNSBzZWNvbmRzIC0gZmFsbHMgYmFjayB0byBsb2NhbCBVSSBpZiB0aGUgcmVxdWVzdCBmYWlscyBvciB0aW1lcyBvdXRcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZldGNoVGVhbUluZm8oXG4gIHRlYW1JZDogc3RyaW5nLFxuICBhdXRoVG9rZW46IHN0cmluZ1xuKTogUHJvbWlzZTx7IHRlYW1TbHVnOiBzdHJpbmcgfSB8IG51bGw+IHtcbiAgdHJ5IHtcbiAgICAvLyBDcmVhdGUgYW4gQWJvcnRDb250cm9sbGVyIHdpdGggYSA1IHNlY29uZCB0aW1lb3V0XG4gICAgY29uc3QgY29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICBjb25zdCB0aW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IGNvbnRyb2xsZXIuYWJvcnQoKSwgNTAwMCk7XG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGBodHRwczovL2FwaS52ZXJjZWwuY29tL3YyL3RlYW1zLyR7dGVhbUlkfWAsIHtcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2F1dGhUb2tlbn1gLFxuICAgICAgfSxcbiAgICAgIHNpZ25hbDogY29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG5cbiAgICAvLyBDbGVhciB0aGUgdGltZW91dCBpZiB0aGUgcmVxdWVzdCBjb21wbGV0ZXMgc3VjY2Vzc2Z1bGx5XG4gICAgY2xlYXJUaW1lb3V0KHRpbWVvdXRJZCk7XG5cbiAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSA0MDEgfHwgcmVzcG9uc2Uuc3RhdHVzID09PSA0MDMpIHtcbiAgICAgIGxvZ2dlci5lcnJvcihcbiAgICAgICAgY2hhbGsucmVkKFxuICAgICAgICAgIGBBdXRoZW50aWNhdGlvbiBmYWlsZWQgKCR7cmVzcG9uc2Uuc3RhdHVzfSk6IFVuYWJsZSB0byBhY2Nlc3MgdGVhbSBpbmZvcm1hdGlvbmBcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICAgIGxvZ2dlci53YXJuKFxuICAgICAgICBjaGFsay55ZWxsb3coXG4gICAgICAgICAgJ1xcblBsZWFzZSBlbnN1cmUgeW91IGFyZSBsb2dnZWQgaW4gYW5kIGhhdmUgYWNjZXNzIHRvIHRoZSB0ZWFtOidcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICAgIGxvZ2dlci53YXJuKGNoYWxrLnllbGxvdygnICBSdW4gYHZlcmNlbCBsb2dpbmAgdG8gYXV0aGVudGljYXRlJykpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgICBgRmFpbGVkIHRvIGZldGNoIHRlYW0gaW5mbzogJHtyZXNwb25zZS5zdGF0dXN9ICR7cmVzcG9uc2Uuc3RhdHVzVGV4dH1gXG4gICAgICApO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgdGVhbSA9IChhd2FpdCByZXNwb25zZS5qc29uKCkpIGFzIFZlcmNlbFRlYW07XG4gICAgcmV0dXJuIHtcbiAgICAgIHRlYW1TbHVnOiB0ZWFtLnNsdWcsXG4gICAgfTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAvLyBIYW5kbGUgYm90aCB0aW1lb3V0IGFuZCBvdGhlciBlcnJvcnMgLSBmYWxsIGJhY2sgdG8gbG9jYWwgVUlcbiAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvciAmJiBlcnJvci5uYW1lID09PSAnQWJvcnRFcnJvcicpIHtcbiAgICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgJ1ZlcmNlbCBBUEkgcmVxdWVzdCB0aW1lZCBvdXQgYWZ0ZXIgNSBzZWNvbmRzLCBmYWxsaW5nIGJhY2sgdG8gbG9jYWwgVUknXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBsb2dnZXIuZGVidWcoYEVycm9yIGZldGNoaW5nIHRlYW0gaW5mbzogJHtlcnJvcn1gKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cblxuLy8gLyoqXG4vLyAgKiBDaGVjayBpZiB0aGUgVmVyY2VsIGRhc2hib2FyZCB3b3JrZmxvd3MgcGFnZSBpcyBhdmFpbGFibGVcbi8vICAqL1xuLy8gZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNoZWNrVmVyY2VsRGFzaGJvYXJkQXZhaWxhYmxlKFxuLy8gICB0ZWFtU2x1Zzogc3RyaW5nLFxuLy8gICBwcm9qZWN0TmFtZTogc3RyaW5nLFxuLy8gICBhdXRoVG9rZW46IHN0cmluZ1xuLy8gKTogUHJvbWlzZTxib29sZWFuPiB7XG4vLyAgIHRyeSB7XG4vLyAgICAgY29uc3QgZGFzaGJvYXJkVXJsID0gYGh0dHBzOi8vdmVyY2VsLmNvbS8ke3RlYW1TbHVnfS8ke3Byb2plY3ROYW1lfS9haS93b3JrZmxvd3NgO1xuLy8gICAgIGxvZ2dlci5kZWJ1ZyhgQ2hlY2tpbmcgVmVyY2VsIGRhc2hib2FyZCBhdmFpbGFiaWxpdHk6ICR7ZGFzaGJvYXJkVXJsfWApO1xuXG4vLyAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChkYXNoYm9hcmRVcmwsIHtcbi8vICAgICAgIG1ldGhvZDogJ0hFQUQnLFxuLy8gICAgICAgcmVkaXJlY3Q6ICdmb2xsb3cnLFxuLy8gICAgICAgaGVhZGVyczoge1xuLy8gICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7YXV0aFRva2VufWAsXG4vLyAgICAgICB9LFxuLy8gICAgIH0pO1xuXG4vLyAgICAgLy8gQ29uc2lkZXIgMnh4IGFuZCAzeHggYXMgc3VjY2Vzc1xuLy8gICAgIGNvbnN0IGlzQXZhaWxhYmxlID0gcmVzcG9uc2Uuc3RhdHVzID49IDIwMCAmJiByZXNwb25zZS5zdGF0dXMgPCA0MDA7XG4vLyAgICAgbG9nZ2VyLmRlYnVnKFxuLy8gICAgICAgYERhc2hib2FyZCBjaGVjayByZXN1bHQ6ICR7cmVzcG9uc2Uuc3RhdHVzfSAtICR7aXNBdmFpbGFibGUgPyAnYXZhaWxhYmxlJyA6ICdub3QgYXZhaWxhYmxlJ31gXG4vLyAgICAgKTtcblxuLy8gICAgIHJldHVybiBpc0F2YWlsYWJsZTtcbi8vICAgfSBjYXRjaCAoZXJyb3IpIHtcbi8vICAgICBsb2dnZXIuZGVidWcoYEVycm9yIGNoZWNraW5nIGRhc2hib2FyZCBhdmFpbGFiaWxpdHk6ICR7ZXJyb3J9YCk7XG4vLyAgICAgcmV0dXJuIGZhbHNlO1xuLy8gICB9XG4vLyB9XG5cbi8qKlxuICogR2V0IHRoZSBWZXJjZWwgZGFzaGJvYXJkIFVSTCBmb3Igd29ya2Zsb3dzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRWZXJjZWxEYXNoYm9hcmRVcmwoXG4gIHRlYW1TbHVnOiBzdHJpbmcsXG4gIHByb2plY3ROYW1lOiBzdHJpbmcsXG4gIHJlc291cmNlOiBzdHJpbmcsXG4gIGlkPzogc3RyaW5nXG4pOiBzdHJpbmcge1xuICBsZXQgdXJsID0gYGh0dHBzOi8vdmVyY2VsLmNvbS8ke3RlYW1TbHVnfS8ke3Byb2plY3ROYW1lfS9vYnNlcnZhYmlsaXR5L3dvcmtmbG93c2A7XG5cbiAgLy8gQWRkIHJlc291cmNlLXNwZWNpZmljIHBhdGggc2VnbWVudHNcbiAgaWYgKHJlc291cmNlID09PSAncnVuJyAmJiBpZCkge1xuICAgIHVybCArPSBgL3J1bnMvJHtpZH0/ZW52aXJvbm1lbnQ9cHJvZHVjdGlvbmA7XG4gIH0gZWxzZSBpZiAoaWQpIHtcbiAgICB1cmwgKz0gYD8ke3Jlc291cmNlfUlkPSR7aWR9YDtcbiAgfVxuXG4gIHJldHVybiB1cmw7XG59XG4iXX0=
|
|
@@ -272,4 +272,4 @@ export async function getRepoLink(cwd) {
|
|
|
272
272
|
return undefined;
|
|
273
273
|
}
|
|
274
274
|
}
|
|
275
|
-
//# sourceMappingURL=vercel-link.js.map
|
|
275
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyY2VsLWxpbmsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luc3BlY3QvdmVyY2VsLWxpbmsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDdkMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDbEMsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM3RCxPQUFPLElBQUksTUFBTSxXQUFXLENBQUM7QUFDN0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFMUMsTUFBTSxJQUFJLEdBQUcsT0FBTyxFQUFFLENBQUM7QUFnRHZCLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7QUFFeEMsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQztBQUNwQyxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxNQUFNLENBQUM7QUFDMUMsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsY0FBYyxDQUFDO0FBQ2pELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxXQUFXLENBQUM7QUFFM0MsTUFBTSxXQUFXLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRTtJQUNsQyxJQUFJLENBQUM7UUFDSCxPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBQUMsT0FBTyxH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QUNuRSxNQUFNLENBQUMsS0FBSyxDQUFDLDBDQUEwQyxjQUFjLEdBQUcsQ0FBQyxDQUFDO0lBQzFFLElBQUksQ0FBQztRQUNILE1BQU0sSUFBSSxHQUFHLE1BQU0sUUFBUSxDQUFDLGNBQWMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNwRCxNQUFNLFVBQVUsR0FBdUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4RCxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsQ0FBQztJQUNsRCxDQUFDO0lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLE1BQU0sQ0FBQyxLQUFLLENBQUMsbUJBQW1CLGNBQWMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQzFELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlzIGZpbGUgd2FzIGNvcGllZCBmcm9tIEB2ZXJjZWwvdmVyY2VsL3BhY2thZ2VzL2NsaS9zcmMvdXRpbC9wcm9qZWN0cy9saW5rLnRzXG4gKiBhbmQgYWRhcHRlZCB0byB3b3JrIHdpdGhvdXQgaW1wb3J0aW5nIG1vc3Qgb2YgdGhlIHZlcmNlbCBDTEkgY29kZS5cbiAqXG4gKiBJdCBzdHJpcHM6XG4gKiAtIE5ldHdvcmsgcmVxdWVzdHMgZm9yIHZhbGlkYXRpbmcgd2hldGhlciB0aGUgb3JnL3VzZXIvdGVhbS9wcm9qZWN0IGV4aXN0c1xuICogLSBTb21lIHZlcmNlbC1zcGVjaWZpYyBlbnZpcm9ubWVudCB2YXJpYWJsZSBjaGVja3MgYW5kIGluZmVyZW5jZVxuICogICB0aGF0IHdlJ3JlIG5vdCBzdXBwb3J0aW5nIGZvciBXb3JrZmxvdyBDTEkgZm9yIG5vd1xuICovXG5cbmltcG9ydCB7IGV4ZWNTeW5jIH0gZnJvbSAnbm9kZTpjaGlsZF9wcm9jZXNzJztcbmltcG9ydCBmcywgeyBzdGF0U3luYyB9IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHsgbHN0YXQgfSBmcm9tICdub2RlOmZzL3Byb21pc2VzJztcbmltcG9ydCB7IGhvbWVkaXIgfSBmcm9tICdub2RlOm9zJztcbmltcG9ydCB7IGpvaW4sIG5vcm1hbGl6ZSwgcG9zaXgsIHJlbGF0aXZlIH0gZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB1dGlsIGZyb20gJ25vZGU6dXRpbCc7XG5pbXBvcnQgeyBwcm9taXNpZnkgfSBmcm9tICd1dGlsJztcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gJy4uL2NvbmZpZy9sb2cuanMnO1xuXG5jb25zdCBob21lID0gaG9tZWRpcigpO1xuXG5pbnRlcmZhY2UgUmVwb1Byb2plY3RDb25maWcge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGRpcmVjdG9yeTogc3RyaW5nO1xuICAvKiogUGVyLXByb2plY3Qgb3JnSWQg4oCUIGFkZGVkIGluIHZlcmNlbC92ZXJjZWwjMTQ5NjcuIFByZWZlciB0aGlzIG92ZXIgcm9vdC1sZXZlbCBvcmdJZC4gKi9cbiAgb3JnSWQ/OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBSZXBvUHJvamVjdHNDb25maWcge1xuICAvKiogTGVnYWN5IHJvb3QtbGV2ZWwgb3JnSWQg4oCUIG9sZGVyIFZlcmNlbCBDTEkgdmVyc2lvbnMgcHV0IG9yZ0lkIGhlcmUuICovXG4gIG9yZ0lkPzogc3RyaW5nO1xuICByZW1vdGVOYW1lOiBzdHJpbmc7XG4gIHByb2plY3RzOiBSZXBvUHJvamVjdENvbmZpZ1tdO1xufVxuXG5pbnRlcmZhY2UgUmVwb0xpbmsge1xuICByb290UGF0aDogc3RyaW5nO1xuICByZXBvQ29uZmlnUGF0aDogc3RyaW5nO1xuICByZXBvQ29uZmlnPzogUmVwb1Byb2plY3RzQ29uZmlnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb2plY3RMaW5rIHtcbiAgLyoqXG4gICAqIElEIG9mIHRoZSBWZXJjZWwgUHJvamVjdC5cbiAgICovXG4gIHByb2plY3RJZDogc3RyaW5nO1xuICAvKipcbiAgICogVXNlciBvciBUZWFtIElEIG9mIHRoZSBvd25lciBvZiB0aGUgVmVyY2VsIFByb2plY3QuXG4gICAqL1xuICBvcmdJZDogc3RyaW5nO1xuICAvKipcbiAgICogV2hlbiBsaW5rZWQgYXMgYSByZXBvc2l0b3J5LCBjb250YWlucyB0aGUgYWJzb2x1dGUgcGF0aFxuICAgKiB0byB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhlIHJlcG9zaXRvcnkuXG4gICAqL1xuICByZXBvUm9vdD86IHN0cmluZztcbiAgLyoqXG4gICAqIFdoZW4gbGlua2VkIGFzIGEgcmVwb3NpdG9yeSwgY29udGFpbnMgdGhlIHJlbGF0aXZlIHBhdGhcbiAgICogdG8gdGhlIHNlbGVjdGVkIHByb2plY3Qgcm9vdCBkaXJlY3RvcnkuXG4gICAqL1xuICBwcm9qZWN0Um9vdERpcmVjdG9yeT86IHN0cmluZztcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIFZlcmNlbCBQcm9qZWN0LlxuICAgKi9cbiAgcHJvamVjdE5hbWU/OiBzdHJpbmc7XG59XG5cbmNvbnN0IHJlYWRGaWxlID0gcHJvbWlzaWZ5KGZzLnJlYWRGaWxlKTtcblxuZXhwb3J0IGNvbnN0IFZFUkNFTF9ESVIgPSAnLnZlcmNlbCc7XG5leHBvcnQgY29uc3QgVkVSQ0VMX0RJUl9GQUxMQkFDSyA9ICcubm93JztcbmV4cG9ydCBjb25zdCBWRVJDRUxfRElSX1BST0pFQ1QgPSAncHJvamVjdC5qc29uJztcbmV4cG9ydCBjb25zdCBWRVJDRUxfRElSX1JFUE8gPSAncmVwby5qc29uJztcblxuY29uc3QgaXNEaXJlY3RvcnkgPSAoZGlyOiBzdHJpbmcpID0+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gc3RhdFN5bmMoZGlyKS5pc0RpcmVjdG9yeSgpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBsb2dnZXIuZGVidWcoYCR7ZGlyfSBpcyBub3QgYSBkaXJlY3Rvcnk6ICR7ZXJyfWApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufTtcblxuLyoqXG4gKiBBIHR5cGUgZ3VhcmQgZm9yIGB0cnkuLi5jYXRjaGAgZXJyb3JzLlxuICogQGRlcHJlY2F0ZWQgdXNlIGByZXF1aXJlKCdub2RlOnV0aWwnKS50eXBlcy5pc05hdGl2ZUVycm9yKGVycm9yKWAgaW5zdGVhZFxuICovXG5leHBvcnQgY29uc3QgaXNFcnJvciA9IChlcnJvcjogdW5rbm93bik6IGVycm9yIGlzIEVycm9yID0+IHtcbiAgcmV0dXJuIHV0aWwudHlwZXMuaXNOYXRpdmVFcnJvcihlcnJvcik7XG59O1xuXG5leHBvcnQgY29uc3QgaXNFcnJub0V4Y2VwdGlvbiA9IChcbiAgZXJyb3I6IHVua25vd25cbik6IGVycm9yIGlzIE5vZGVKUy5FcnJub0V4Y2VwdGlvbiA9PiB7XG4gIHJldHVybiBpc0Vycm9yKGVycm9yKSAmJiAnY29kZScgaW4gZXJyb3I7XG59O1xuXG5leHBvcnQgY29uc3QgaXNPbmVPZkVyck5vRXhjZXB0aW9ucyA9IChlcnJvcjogdW5rbm93biwgY29kZXM6IHN0cmluZ1tdKSA9PiB7XG4gIHJldHVybiAoXG4gICAgaXNFcnJub0V4Y2VwdGlvbihlcnJvcikgJiZcbiAgICAnY29kZScgaW4gZXJyb3IgJiZcbiAgICBlcnJvci5jb2RlICYmXG4gICAgY29kZXMuaW5jbHVkZXMoZXJyb3IuY29kZSlcbiAgKTtcbn07XG5cbi8qKlxuICogUmV0dXJucyB0aGUgYDxjd2Q+Ly52ZXJjZWxgIGRpcmVjdG9yeSBmb3IgdGhlIGN1cnJlbnQgcHJvamVjdFxuICogd2l0aCBhIGZhbGxiYWNrIHRvIDxjd2Q+Ly5ub3dgIGlmIGl0IGV4aXN0cy5cbiAqXG4gKiBUaHJvd3MgYW4gZXJyb3IgaWYgKmJvdGgqIGAudmVyY2VsYCBhbmQgYC5ub3dgIGRpcmVjdG9yaWVzIGV4aXN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmVyY2VsRGlyZWN0b3J5KGN3ZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgbG9nZ2VyLmRlYnVnKGBHZXR0aW5nIHZlcmNlbCBkaXJlY3RvcnkgZm9yICR7Y3dkfWApO1xuICBjb25zdCBwb3NzaWJsZURpcnMgPSBbam9pbihjd2QsIFZFUkNFTF9ESVIpLCBqb2luKGN3ZCwgVkVSQ0VMX0RJUl9GQUxMQkFDSyldO1xuICBsb2dnZXIuZGVidWcoYFBvc3NpYmxlIHZlcmNlbCBkaXJlY3RvcmllczogJHtwb3NzaWJsZURpcnMuam9pbignLCAnKX1gKTtcbiAgY29uc3QgZXhpc3RpbmdEaXJzID0gcG9zc2libGVEaXJzLmZpbHRlcigoZCkgPT4gaXNEaXJlY3RvcnkoZCkpO1xuICBpZiAoZXhpc3RpbmdEaXJzLmxlbmd0aCA+IDEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnQ09ORkxJQ1RJTkdfQ09ORklHX0RJUkVDVE9SSUVTOiBCb3RoIGAudmVyY2VsYCBhbmQgYC5ub3dgIGRpcmVjdG9yaWVzIGV4aXN0LiBQbGVhc2UgcmVtb3ZlIHRoZSBgLm5vd2AgZGlyZWN0b3J5LidcbiAgICApO1xuICB9XG4gIHJldHVybiBleGlzdGluZ0RpcnNbMF0gfHwgcG9zc2libGVEaXJzWzBdO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0UHJvamVjdExpbmsoXG4gIHBhdGg6IHN0cmluZ1xuKTogUHJvbWlzZTxQcm9qZWN0TGluayB8IG51bGw+IHtcbiAgcmV0dXJuIChcbiAgICAoYXdhaXQgZ2V0UHJvamVjdExpbmtGcm9tUmVwb0xpbmsocGF0aCkpIHx8XG4gICAgKGF3YWl0IGdldExpbmtGcm9tRGlyKGdldFZlcmNlbERpcmVjdG9yeShwYXRoKSkpXG4gICk7XG59XG5cbi8qKlxuICogQ29udmVydCBXaW5kb3dzIHNlcGFyYXRvcnMgdG8gVW5peCBzZXBhcmF0b3JzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplT3NQYXRoKHA6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGlzV2luID0gcHJvY2Vzcy5wbGF0Zm9ybSA9PT0gJ3dpbjMyJztcbiAgcmV0dXJuIGlzV2luID8gcC5yZXBsYWNlKC9cXFxcL2csICcvJykgOiBwO1xufVxuXG5mdW5jdGlvbiBzb3J0QnlEaXJlY3RvcnkoXG4gIGE6IHsgZGlyZWN0b3J5OiBzdHJpbmcgfSxcbiAgYjogeyBkaXJlY3Rvcnk6IHN0cmluZyB9XG4pOiBudW1iZXIge1xuICBjb25zdCBhUGFydHMgPSBhLmRpcmVjdG9yeS5zcGxpdCgnLycpO1xuICBjb25zdCBiUGFydHMgPSBiLmRpcmVjdG9yeS5zcGxpdCgnLycpO1xuICByZXR1cm4gYlBhcnRzLmxlbmd0aCAtIGFQYXJ0cy5sZW5ndGg7XG59XG5cbi8qKlxuICogRmluZHMgdGhlIG1hdGNoaW5nIFByb2plY3RzIGZyb20gYW4gYXJyYXkgb2YgUHJvamVjdCBsaW5rc1xuICogd2hlcmUgdGhlIHByb3ZpZGVkIHJlbGF0aXZlIHBhdGggaXMgd2l0aGluIHRoZSBQcm9qZWN0J3NcbiAqIHJvb3QgZGlyZWN0b3J5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZFByb2plY3RzRnJvbVBhdGgoXG4gIHByb2plY3RzOiBSZXBvUHJvamVjdENvbmZpZ1tdLFxuICBwYXRoOiBzdHJpbmdcbik6IFJlcG9Qcm9qZWN0Q29uZmlnW10ge1xuICBsb2dnZXIuZGVidWcoXG4gICAgYEZpbmRpbmcgcHJvamVjdHMgJHtKU09OLnN0cmluZ2lmeShwcm9qZWN0cyl9IGZyb20gcGF0aCAke3BhdGh9YFxuICApO1xuICBjb25zdCBub3JtYWxpemVkUGF0aCA9IG5vcm1hbGl6ZU9zUGF0aChwYXRoKTtcbiAgY29uc3QgbWF0Y2hlcyA9IHByb2plY3RzXG4gICAgLnNsaWNlKClcbiAgICAuc29ydChzb3J0QnlEaXJlY3RvcnkpXG4gICAgLmZpbHRlcigocHJvamVjdCkgPT4ge1xuICAgICAgaWYgKHByb2plY3QuZGlyZWN0b3J5ID09PSAnLicpIHtcbiAgICAgICAgLy8gUHJvamVjdCBoYXMgbm8gXCJSb290IERpcmVjdG9yeVwiIHNldHRpbmcsIHNvIGFueSBwYXRoIGlzIHZhbGlkXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIChcbiAgICAgICAgbm9ybWFsaXplZFBhdGggPT09IHByb2plY3QuZGlyZWN0b3J5IHx8XG4gICAgICAgIG5vcm1hbGl6ZWRQYXRoLnN0YXJ0c1dpdGgoYCR7cHJvamVjdC5kaXJlY3Rvcnl9L2ApXG4gICAgICApO1xuICAgIH0pO1xuICAvLyBJZiB0aGVyZSBhcmUgbXVsdGlwbGUgbWF0Y2hlcywgd2Ugb25seSB3YW50IHRoZSBtb3N0IHJlbGV2YW50XG4gIC8vIHNlbGVjdGlvbnMgKHdpdGggdGhlIGRlZXBlc3QgZGlyZWN0b3J5IGRlcHRoKSwgc28gcGljayB0aGUgZmlyc3RcbiAgLy8gb25lIGFuZCBmaWx0ZXIgb24gdGhvc2UgbWF0Y2hlcy5cbiAgY29uc3QgZmlyc3RNYXRjaCA9IG1hdGNoZXNbMF07XG4gIHJldHVybiBtYXRjaGVzLmZpbHRlcigobWF0Y2gpID0+IG1hdGNoLmRpcmVjdG9yeSA9PT0gZmlyc3RNYXRjaC5kaXJlY3RvcnkpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRQcm9qZWN0TGlua0Zyb21SZXBvTGluayhcbiAgcGF0aDogc3RyaW5nXG4pOiBQcm9taXNlPFByb2plY3RMaW5rIHwgbnVsbD4ge1xuICBjb25zdCByZXBvTGluayA9IGF3YWl0IGdldFJlcG9MaW5rKHBhdGgpO1xuICBpZiAoIXJlcG9MaW5rPy5yZXBvQ29uZmlnKSB7XG4gICAgbG9nZ2VyLmRlYnVnKCdObyByZXBvIGxpbmsgZm91bmQnKTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBsb2dnZXIuZGVidWcoJ1JlcG8gbGluaycsIEpTT04uc3RyaW5naWZ5KHJlcG9MaW5rKSk7XG4gIGNvbnN0IHByb2plY3RzID0gZmluZFByb2plY3RzRnJvbVBhdGgoXG4gICAgcmVwb0xpbmsucmVwb0NvbmZpZy5wcm9qZWN0cyxcbiAgICByZWxhdGl2ZShyZXBvTGluay5yb290UGF0aCwgcGF0aClcbiAgKTtcbiAgbG9nZ2VyLmRlYnVnKGBGb3VuZCBtYXRjaGluZyByZXBvIHByb2plY3RzOiAke0pTT04uc3RyaW5naWZ5KHByb2plY3RzKX1gKTtcbiAgaWYgKHByb2plY3RzLmxlbmd0aCA9PT0gMSkge1xuICAgIGNvbnN0IHByb2plY3QgPSBwcm9qZWN0c1swXTtcbiAgICAvLyBQcmVmZXIgcGVyLXByb2plY3Qgb3JnSWQgKHZlcmNlbC92ZXJjZWwjMTQ5NjcpLCBmYWxsIGJhY2sgdG9cbiAgICAvLyByb290LWxldmVsIG9yZ0lkIGZvciBvbGRlciBWZXJjZWwgQ0xJIHZlcnNpb25zLlxuICAgIGNvbnN0IG9yZ0lkID0gcHJvamVjdC5vcmdJZCA/PyByZXBvTGluay5yZXBvQ29uZmlnPy5vcmdJZDtcbiAgICBpZiAoIW9yZ0lkKSB7XG4gICAgICBsb2dnZXIuZGVidWcoJ05vIG9yZ0lkIGZvdW5kIGluIHJlcG8gbGluayBwcm9qZWN0IG9yIHJvb3QgY29uZmlnJyk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHJlcG9Sb290OiByZXBvTGluay5yb290UGF0aCxcbiAgICAgIG9yZ0lkLFxuICAgICAgcHJvamVjdElkOiBwcm9qZWN0LmlkLFxuICAgICAgcHJvamVjdE5hbWU6IHByb2plY3QubmFtZSxcbiAgICAgIHByb2plY3RSb290RGlyZWN0b3J5OiBwcm9qZWN0LmRpcmVjdG9yeSxcbiAgICB9O1xuICB9IGVsc2UgaWYgKHByb2plY3RzLmxlbmd0aCA+IDEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ011bHRpcGxlIHByb2plY3RzIGZvdW5kJyk7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRMaW5rRnJvbURpcihcbiAgdmVyY2VsRGlyOiBzdHJpbmdcbik6IFByb21pc2U8UHJvamVjdExpbmsgfCBudWxsPiB7XG4gIGxvZ2dlci5kZWJ1ZyhgR2V0dGluZyBsaW5rIGZyb20gZGlyICR7dmVyY2VsRGlyfWApO1xuICB0cnkge1xuICAgIGNvbnN0IGpzb24gPSBhd2FpdCByZWFkRmlsZShqb2luKHZlcmNlbERpciwgVkVSQ0VMX0RJUl9QUk9KRUNUKSwgJ3V0ZjgnKTtcbiAgICBjb25zdCBsaW5rOiBQcm9qZWN0TGluayA9IEpTT04ucGFyc2UoanNvbik7XG5cbiAgICBpZiAoIWxpbmsgfHwgIWxpbmsucHJvamVjdElkIHx8ICFsaW5rLm9yZ0lkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBQcm9qZWN0IFNldHRpbmdzIGFyZSBpbnZhbGlkLiBUbyBsaW5rIHlvdXIgcHJvamVjdCBhZ2FpbiwgcmVtb3ZlIHRoZSAke3ZlcmNlbERpcn0gZGlyZWN0b3J5LmBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGxpbms7XG4gIH0gY2F0Y2ggKGVycjogdW5rbm93bikge1xuICAgIC8vIGxpbmsgZmlsZSBkb2VzIG5vdCBleGlzdHMsIHByb2plY3QgaXMgbm90IGxpbmtlZFxuICAgIGlmIChpc09uZU9mRXJyTm9FeGNlcHRpb25zKGVyciwgWydFTk9FTlQnLCAnRU5PVERJUiddKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLy8gbGluayBmaWxlIGNhbid0IGJlIHJlYWRcbiAgICBpZiAoaXNFcnJvcihlcnIpICYmIGVyci5uYW1lID09PSAnU3ludGF4RXJyb3InKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBQcm9qZWN0IFNldHRpbmdzIGNvdWxkIG5vdCBiZSByZXRyaWV2ZWQuIFRvIGxpbmsgeW91ciBwcm9qZWN0IGFnYWluLCByZW1vdmUgdGhlICR7dmVyY2VsRGlyfSBkaXJlY3RvcnkuYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aHJvdyBlcnI7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiB0cmF2ZXJzZVVwRGlyZWN0b3JpZXMoe1xuICBzdGFydCxcbiAgYmFzZSxcbiAgbWF4RGVwdGggPSAxMCxcbn06IHtcbiAgc3RhcnQ6IHN0cmluZztcbiAgYmFzZT86IHN0cmluZztcbiAgbWF4RGVwdGg/OiBudW1iZXI7XG59KSB7XG4gIGxldCBjdXJyZW50OiBzdHJpbmcgfCB1bmRlZmluZWQgPSBub3JtYWxpemUoc3RhcnQpO1xuICBjb25zdCBub3JtYWxpemVkUm9vdCA9IGJhc2UgPyBub3JtYWxpemUoYmFzZSkgOiB1bmRlZmluZWQ7XG4gIGxldCBkZXB0aCA9IDA7XG4gIHdoaWxlIChjdXJyZW50KSB7XG4gICAgeWllbGQgY3VycmVudDtcbiAgICBpZiAoY3VycmVudCA9PT0gbm9ybWFsaXplZFJvb3QpIGJyZWFrO1xuICAgIC8vIEdvIHVwIG9uZSBkaXJlY3RvcnlcbiAgICBjb25zdCBuZXh0ID0gam9pbihjdXJyZW50LCAnLi4nKTtcbiAgICBjdXJyZW50ID0gbmV4dCA9PT0gY3VycmVudCA/IHVuZGVmaW5lZCA6IG5leHQ7XG4gICAgZGVwdGgrKztcbiAgICBpZiAoZGVwdGggPiBtYXhEZXB0aCkge1xuICAgICAgbG9nZ2VyLmRlYnVnKGBNYXggdHJhdmVyc2FsIGRlcHRoIG9mICR7bWF4RGVwdGh9IHJlYWNoZWRgKTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEdpdmVuIGEgYHN0YXJ0YCBkaXJlY3RvcnksIHRyYXZlcnNlcyB1cCB0aGUgZGlyZWN0b3J5IGhpZXJhcmNoeSB1bnRpbFxuICogdGhlIG5lYXJlc3QgYC5naXQvY29uZmlnYCBmaWxlIGlzIGZvdW5kLiBSZXR1cm5zIHRoZSBkaXJlY3Rvcnkgd2hlcmVcbiAqIHRoZSBHaXQgY29uZmlnIHdhcyBmb3VuZCwgb3IgYHVuZGVmaW5lZGAgd2hlbiBubyBHaXQgcmVwbyB3YXMgZm91bmQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmaW5kUmVwb1Jvb3QoXG4gIGN3ZDogc3RyaW5nLFxuICBzdGFydDogc3RyaW5nXG4pOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICBjb25zdCBSRVBPX0pTT05fUEFUSCA9IGpvaW4oVkVSQ0VMX0RJUiwgVkVSQ0VMX0RJUl9SRVBPKTtcbiAgLyoqXG4gICAqIElmIHRoZSBjdXJyZW50IHJlcG8gaXMgYSBnaXQgc3VibW9kdWxlIG9yIGdpdCB3b3JrdHJlZSAnLmdpdCcgaXMgYSBmaWxlXG4gICAqIHdpdGggYSBwb2ludGVyIHRvIHRoZSBcInBhcmVudFwiIGdpdCByZXBvc2l0b3J5IGluc3RlYWQgb2YgYSBkaXJlY3RvcnkuXG4gICAqL1xuICBjb25zdCBHSVRfUEFUSCA9IGlzR2l0V29ya3RyZWVPclN1Ym1vZHVsZShjd2QpXG4gICAgPyBwb3NpeC5ub3JtYWxpemUoJy5naXQnKVxuICAgIDogcG9zaXgubm9ybWFsaXplKCcuZ2l0L2NvbmZpZycpO1xuXG4gIGZvciAoY29uc3QgY3VycmVudCBvZiB0cmF2ZXJzZVVwRGlyZWN0b3JpZXMoeyBzdGFydCB9KSkge1xuICAgIGlmIChjdXJyZW50ID09PSBob21lKSB7XG4gICAgICAvLyBTb21ldGltZXMgdGhlICRIT01FIGRpcmVjdG9yeSBpcyBzZXQgdXAgYXMgYSBHaXQgcmVwb1xuICAgICAgLy8gKGZvciBkb3RmaWxlcywgZXRjLikuIEluIHRoaXMgY2FzZSBpdCdzIHNhZmUgdG8gc2F5IHRoYXRcbiAgICAgIC8vIHRoaXMgaXNuJ3QgdGhlIHJlcG8gd2UncmUgbG9va2luZyBmb3IuIEJhaWwuXG4gICAgICBsb2dnZXIuZGVidWcoJ0Fycml2ZWQgYXQgaG9tZSBkaXJlY3RvcnknKTtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIC8vIGlmIGAudmVyY2VsL3JlcG8uanNvbmAgZXhpc3RzIChhbHJlYWR5IGxpbmtlZCksXG4gICAgLy8gdGhlbiBjb25zaWRlciB0aGlzIHRoZSByZXBvIHJvb3RcbiAgICBjb25zdCByZXBvQ29uZmlnUGF0aCA9IGpvaW4oY3VycmVudCwgUkVQT19KU09OX1BBVEgpO1xuICAgIGxldCBzdGF0ID0gYXdhaXQgbHN0YXQocmVwb0NvbmZpZ1BhdGgpLmNhdGNoKChlcnIpID0+IHtcbiAgICAgIGlmIChlcnIuY29kZSAhPT0gJ0VOT0VOVCcpIHRocm93IGVycjtcbiAgICB9KTtcbiAgICBpZiAoc3RhdCkge1xuICAgICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgICBgRm91bmQgcmVwbyBjb25maWcgXCIke1JFUE9fSlNPTl9QQVRIfVwiIC0gZGV0ZWN0ZWQgXCIke2N1cnJlbnR9XCIgYXMgcmVwbyByb290YFxuICAgICAgKTtcbiAgICAgIHJldHVybiBjdXJyZW50O1xuICAgIH1cblxuICAgIC8vIGlmIGAuZ2l0L2NvbmZpZ2AgZXhpc3RzICh1bmxpbmtlZCksXG4gICAgLy8gdGhlbiBjb25zaWRlciB0aGlzIHRoZSByZXBvIHJvb3RcbiAgICBjb25zdCBnaXRDb25maWdQYXRoID0gam9pbihjdXJyZW50LCBHSVRfUEFUSCk7XG4gICAgc3RhdCA9IGF3YWl0IGxzdGF0KGdpdENvbmZpZ1BhdGgpLmNhdGNoKChlcnIpID0+IHtcbiAgICAgIGlmIChlcnIuY29kZSAhPT0gJ0VOT0VOVCcpIHRocm93IGVycjtcbiAgICB9KTtcbiAgICBpZiAoc3RhdCkge1xuICAgICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgICBgRm91bmQgZ2l0IGNvbmZpZyBcIiR7R0lUX1BBVEh9XCIgLSBkZXRlY3RlZCBcIiR7Y3VycmVudH1cIiBhcyByZXBvIHJvb3RgXG4gICAgICApO1xuICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gICAgfVxuICB9XG5cbiAgbG9nZ2VyLmRlYnVnKCdBYm9ydGluZyBzZWFyY2ggZm9yIHJlcG8gcm9vdCcpO1xufVxuXG5mdW5jdGlvbiBnZXRHaXREaXJlY3RvcnkoY3dkOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgdHJ5IHtcbiAgICBjb25zdCBnaXRDb25maWdQYXRoID0gZXhlY1N5bmMoJ2dpdCByZXYtcGFyc2UgLS1naXQtZGlyJywge1xuICAgICAgY3dkLFxuICAgICAgZW5jb2Rpbmc6ICd1dGY4JyxcbiAgICAgIHN0ZGlvOiBbJ2lnbm9yZScsICdwaXBlJywgJ2lnbm9yZSddLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGdpdENvbmZpZ1BhdGg7XG4gIH0gY2F0Y2ggKGVycjogdW5rbm93bikge1xuICAgIGlmIChlcnIgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgbG9nZ2VyLmRlYnVnKGBGYWlsZWQgdG8gZ2V0IGdpdCBkaXJlY3Rvcnk6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0dpdFdvcmt0cmVlT3JTdWJtb2R1bGUoY3dkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgY29uc3QgZ2l0RGlyID0gZ2V0R2l0RGlyZWN0b3J5KGN3ZCk7XG5cbiAgaWYgKGdpdERpciA9PT0gbnVsbCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IGlzR2l0V29ya3RyZWUgPSBnaXREaXIuaW5jbHVkZXMoJy5naXQvd29ya3RyZWVzLycpO1xuICBjb25zdCBpc0dpdFN1Ym1vZHVsZSA9IGdpdERpci5pbmNsdWRlcygnLmdpdC9tb2R1bGVzLycpO1xuXG4gIHJldHVybiBpc0dpdFdvcmt0cmVlIHx8IGlzR2l0U3VibW9kdWxlO1xufVxuXG4vKipcbiAqIEdpdmVuIGEgZGlyZWN0b3J5IHBhdGggYGN3ZGAsIGZpbmRzIHRoZSByb290IG9mIHRoZSBHaXQgcmVwb3NpdG9yeVxuICogYW5kIHJldHVybnMgdGhlIHBhcnNlZCBgLnZlcmNlbC9yZXBvLmpzb25gIGZpbGUgaWYgdGhlIHJlcG9zaXRvcnlcbiAqIGhhcyBhbHJlYWR5IGJlZW4gbGlua2VkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0UmVwb0xpbmsoY3dkOiBzdHJpbmcpOiBQcm9taXNlPFJlcG9MaW5rIHwgdW5kZWZpbmVkPiB7XG4gIC8vIERldGVybWluZSB3aGVyZSB0aGUgcm9vdCBvZiB0aGUgcmVwbyBpc1xuICBsb2dnZXIuZGVidWcoYEdldHRpbmcgcmVwbyBsaW5rIGZvciAke2N3ZH1gKTtcbiAgY29uc3Qgcm9vdFBhdGggPSBhd2FpdCBmaW5kUmVwb1Jvb3QoY3dkLCAnLi8nKTtcbiAgaWYgKCFyb290UGF0aCkge1xuICAgIGxvZ2dlci5kZWJ1ZygnZ2V0UmVwb0xpbms6IE5vIHJlcG8gcm9vdCBmb3VuZCcpO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvLyBSZWFkIHRoZSBgcmVwby5qc29uYCwgaWYgdGhpcyByZXBvIGhhcyBhbHJlYWR5IGJlZW4gbGlua2VkXG4gIGNvbnN0IHJlcG9Db25maWdQYXRoID0gam9pbihyb290UGF0aCwgVkVSQ0VMX0RJUiwgVkVSQ0VMX0RJUl9SRVBPKTtcbiAgbG9nZ2VyLmRlYnVnKGBnZXRSZXBvTGluazogUmVhZGluZyByZXBvIGNvbmZpZyBwYXRoIFwiJHtyZXBvQ29uZmlnUGF0aH1cImApO1xuICB0cnkge1xuICAgIGNvbnN0IGZpbGUgPSBhd2FpdCByZWFkRmlsZShyZXBvQ29uZmlnUGF0aCwgJ3V0ZjgnKTtcbiAgICBjb25zdCByZXBvQ29uZmlnOiBSZXBvUHJvamVjdHNDb25maWcgPSBKU09OLnBhcnNlKGZpbGUpO1xuICAgIHJldHVybiB7IHJvb3RQYXRoLCByZXBvQ29uZmlnLCByZXBvQ29uZmlnUGF0aCB9O1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBsb2dnZXIuZGVidWcoYEZhaWxlZCB0byBwYXJzZSAke3JlcG9Db25maWdQYXRofTogJHtlcnJ9YCk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuIl19
|
package/dist/lib/inspect/web.js
CHANGED
|
@@ -146,4 +146,4 @@ export async function launchWebUI(resource, id, flags, _cliVersion) {
|
|
|
146
146
|
});
|
|
147
147
|
}
|
|
148
148
|
}
|
|
149
|
-
//# sourceMappingURL=web.js.map
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9pbnNwZWN0L3dlYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQ3hCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXhELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLE9BQWUsRUFBRSxFQUFFLENBQUMsb0JBQW9CLE9BQU8sRUFBRSxDQUFDO0FBRTdFLElBQUksVUFBVSxHQUFrQixJQUFJLENBQUM7QUFFckM7O0dBRUc7QUFDSCxLQUFLLFVBQVUsZUFBZSxDQUFDLE9BQWU7SUFDNUMsSUFBSSxDQUFDO1FBQ0gsTUFBTSxRQUFRLEdBQUcsTUFBTSxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDMUQsT0FBTyxRQUFRLENBQUMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7QUFDSCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxLQUFLLFVBQVUsY0FBYyxDQUFDLE9BQWU7SUFDM0MsSUFBSSxNQUFNLGVBQWUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQy9DLE1BQU0sQ0FBQyxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUMxQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJLENBQUM7UUFDSCxNQUFNLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFDekMsTUFBTSxFQUFFLFdB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LENBQUM7WUFDMUMsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sRUFBRSxDQUFDO1lBQ1osQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFNlcnZlciB9IGZyb20gJ25vZGU6aHR0cCc7XG5pbXBvcnQgY2hhbGsgZnJvbSAnY2hhbGsnO1xuaW1wb3J0IG9wZW4gZnJvbSAnb3Blbic7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuLi9jb25maWcvbG9nLmpzJztcbmltcG9ydCB7IGdldEVudlZhcnMgfSBmcm9tICcuL2Vudi5qcyc7XG5pbXBvcnQgeyBnZXRWZXJjZWxEYXNoYm9hcmRVcmwgfSBmcm9tICcuL3ZlcmNlbC1hcGkuanMnO1xuXG5leHBvcnQgY29uc3QgZ2V0SG9zdFVybCA9ICh3ZWJQb3J0OiBudW1iZXIpID0+IGBodHRwOi8vbG9jYWxob3N0OiR7d2ViUG9ydH1gO1xuXG5sZXQgaHR0cFNlcnZlcjogU2VydmVyIHwgbnVsbCA9IG51bGw7XG5cbi8qKlxuICogQ2hlY2sgaWYgYSBzZXJ2ZXIgaXMgYWxyZWFkeSBsaXN0ZW5pbmcgb24gdGhlIGdpdmVuIFVSTC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gaXNTZXJ2ZXJSdW5uaW5nKGhvc3RVcmw6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goaG9zdFVybCwgeyBtZXRob2Q6ICdIRUFEJyB9KTtcbiAgICByZXR1cm4gcmVzcG9uc2Uub2s7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vKipcbiAqIFN0YXJ0IHRoZSBAd29ya2Zsb3cvd2ViIHNlcnZlciBpbiB0aGUgY3VycmVudCBwcm9jZXNzLlxuICovXG5hc3luYyBmdW5jdGlvbiBzdGFydFdlYlNlcnZlcih3ZWJQb3J0OiBudW1iZXIpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgaWYgKGF3YWl0IGlzU2VydmVyUnVubmluZyhnZXRIb3N0VXJsKHdlYlBvcnQpKSkge1xuICAgIGxvZ2dlci5kZWJ1ZygnU2VydmVyIGlzIGFscmVhZHkgcnVubmluZycpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBsb2dnZXIuaW5mbygnU3RhcnRpbmcgd2ViIFVJIHNlcnZlci4uLicpO1xuICAgIGNvbnN0IHsgc3RhcnRTZXJ2ZXIgfSA9IGF3YWl0IGltcG9ydCgnQHdvcmtmbG93L3dlYi9zZXJ2ZXInKTtcbiAgICBodHRwU2VydmVyID0gYXdhaXQgc3RhcnRTZXJ2ZXIod2ViUG9ydCk7XG4gICAgbG9nZ2VyLnN1Y2Nlc3MoY2hhbGsuZ3JlZW4oYFdlYiBVSSBzZXJ2ZXIgc3RhcnRlZCBvbiBwb3J0ICR7d2ViUG9ydH1gKSk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgbG9nZ2VyLmVycm9yKGBGYWlsZWQgdG8gc3RhcnQgc2VydmVyOiAke2Vycm9yfWApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vKipcbiAqIEJ1aWxkIGEgVVJMIGZvciBvcGVuaW5nIHRoZSBsb2NhbCB3ZWIgVUkuXG4gKlxuICogVGhlIHdlYiBVSSByZWFkcyB3b3JsZCBjb25maWd1cmF0aW9uIGZyb20gc2VydmVyLXNpZGUgZW52aXJvbm1lbnQgdmFyaWFibGVzLlxuICogUXVlcnkgcGFyYW1zIGFyZSBvbmx5IHVzZWQgZm9yIGRlZXAtbGlua2luZyB0byBzcGVjaWZpYyByZXNvdXJjZXMgKHJlc291cmNlL2lkLCBydW5JZCwgZXRjLilcbiAqL1xuZnVuY3Rpb24gYnVpbGRXZWJVSVVybChcbiAgaG9zdFVybDogc3RyaW5nLFxuICByZXNvdXJjZTogc3RyaW5nLFxuICBpZDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICBmbGFnczogUmVjb3JkPHN0cmluZywgYW55PlxuKTogc3RyaW5nIHtcbiAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuXG4gIC8vIERlZXAtbGlua2luZyBwYXJhbXNcbiAgcGFyYW1zLnNldCgncmVzb3VyY2UnLCByZXNvdXJjZSk7XG4gIGlmIChpZCkge1xuICAgIHBhcmFtcy5zZXQoJ2lkJywgaWQpO1xuICB9XG5cbiAgLy8gT3B0aW9uYWwgZGVlcC1saW5raW5nIHRvIHNwZWNpZmljIHJ1bi9zdGVwL2hvb2tcbiAgZm9yIChjb25zdCBmbGFnTmFtZSBvZiBbJ3J1bklkJywgJ3N0ZXBJZCcsICdob29rSWQnXSBhcyBjb25zdCkge1xuICAgIGNvbnN0IHZhbHVlID0gZmxhZ3NbZmxhZ05hbWVdO1xuICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSAnJyAmJiB2YWx1ZSAhPT0gZmFsc2UpIHtcbiAgICAgIHBhcmFtcy5zZXQoZmxhZ05hbWUsIFN0cmluZyh2YWx1ZSkpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHF1ZXJ5U3RyaW5nID0gcGFyYW1zLnRvU3RyaW5nKCk7XG4gIHJldHVybiBxdWVyeVN0cmluZyA/IGAke2hvc3RVcmx9PyR7cXVlcnlTdHJpbmd9YCA6IGhvc3RVcmw7XG59XG5cbi8qKlxuICogTGF1bmNoIHRoZSB3ZWIgVUkgd2l0aCB0aGUgc3BlY2lmaWVkIGNvbmZpZ3VyYXRpb24uXG4gKiBUaGlzIHN0YXJ0cyB0aGUgc2VydmVyIChpZiBub3QgcnVubmluZyksIG9wZW5zIHRoZSBicm93c2VyLCB0aGVuIGtlZXBzIHRoZSBzZXJ2ZXIgcnVubmluZy5cbiAqXG4gKiBXb3JsZCBjb25maWd1cmF0aW9uIGlzIHBhc3NlZCB0byB0aGUgd2ViIHNlcnZlciB2aWEgZW52aXJvbm1lbnQgdmFyaWFibGVzLlxuICogVGhlIHdlYiBVSSByZWFkcyB0aGVzZSBmcm9tIHByb2Nlc3MuZW52IG9uIHRoZSBzZXJ2ZXIgc2lkZSwgbm90IGZyb20gcXVlcnkgcGFyYW1zLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbGF1bmNoV2ViVUkoXG4gIHJlc291cmNlOiBzdHJpbmcsXG4gIGlkOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIGZsYWdzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICBfY2xpVmVyc2lvbjogc3RyaW5nXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgZW52VmFycyA9IGdldEVudlZhcnMoKTtcblxuICAvLyBDaGVjayBpZiBicm93c2VyIG9wZW5pbmcgaXMgZGlzYWJsZWQgdmlhIGZsYWcgb3IgZW52aXJvbm1lbnQgdmFyaWFibGVcbiAgY29uc3QgZGlzYWJsZUJyb3dzZXJPcGVuID0gZmxhZ3Mubm9Ccm93c2VyO1xuXG4gIC8vIENoZWNrIGlmIHdlIHNob3VsZCB0cnkgdG8gdXNlIHRoZSBWZXJjZWwgZGFzaGJvYXJkXG4gIGNvbnN0IHZlcmNlbEJhY2tlbmROYW1lcyA9IFsndmVyY2VsJywgJ0B3b3JrZmxvdy93b3JsZC12ZXJjZWwnXTtcbiAgY29uc3QgaXNWZXJjZWxCYWNrZW5kID0gdmVyY2VsQmFja2VuZE5hbWVzLmluY2x1ZGVzKFxuICAgIGVudlZhcnMuV09SS0ZMT1dfVEFSR0VUX1dPUkxEXG4gICk7XG4gIGNvbnN0IHRlYW1TbHVnID0gZW52VmFycy5XT1JLRkxPV19WRVJDRUxfVEVBTTtcbiAgY29uc3QgcHJvamVjdE5hbWUgPVxuICAgIGVudlZhcnMuV09SS0ZMT1dfVkVSQ0VMX1BST0pFQ1RfTkFNRSB8fCBlbnZWYXJzLldPUktGTE9XX1ZFUkNFTF9QUk9KRUNUO1xuXG4gIC8vIENoZWNrIGlmIHVzZXIgd2FudHMgbG9jYWwgVUkgdmlhIGZsYWcgb3IgZW52aXJvbm1lbnQgdmFyaWFibGVcbiAgY29uc3QgdXNlTG9jYWxVaSA9IGZsYWdzLmxvY2FsVWk7XG5cbiAgaWYgKCF1c2VMb2NhbFVpICYmIGlzVmVyY2VsQmFja2VuZCkge1xuICAgIGxvZ2dlci5pbmZvKFxuICAgICAgJ0lmIHlvdSBkbyBub3Qgd2FudCB0byB1c2UgdGhlIFZlcmNlbCBkYXNoYm9hcmQsIHVzZSB0aGUgLS1sb2NhbFVpIGZsYWcgb3Igc2V0IFdPUktGTE9XX0xPQ0FMX1VJPTEgaW4geW91ciBlbnZpcm9ubWVudCB2YXJpYWJsZXMuJ1xuICAgICk7XG4gIH1cbiAgaWYgKGlzVmVyY2VsQmFja2VuZCAmJiB0ZWFtU2x1ZyAmJiBwcm9qZWN0TmFtZSAmJiAhdXNlTG9jYWxVaSkge1xuICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgIGBDaGVja2luZyBWZXJjZWwgZGFzaGJvYXJkIGF2YWlsYWJpbGl0eSBmb3IgdGVhbTogJHt0ZWFtU2x1Z30sIHByb2plY3Q6ICR7cHJvamVjdE5hbWV9YFxuICAgICk7XG5cbiAgICBjb25zdCBkYXNoYm9hcmRVcmwgPSBnZXRWZXJjZWxEYXNoYm9hcmRVcmwoXG4gICAgICB0ZWFtU2x1ZyxcbiAgICAgIHByb2plY3ROYW1lLFxuICAgICAgcmVzb3VyY2UsXG4gICAgICBpZFxuICAgICk7XG5cbiAgICBpZiAoZGlzYWJsZUJyb3dzZXJPcGVuKSB7XG4gICAgICBsb2dnZXIuaW5mbyhjaGFsay5jeWFuKGBWZXJjZWwgZGFzaGJvYXJkIFVSTDogJHtkYXNoYm9hcmRVcmx9YCkpO1xuICAgICAgbG9nZ2VyLmluZm8oY2hhbGsuY3lhbignKEJyb3dzZXIgYXV0by1vcGVuIGRpc2FibGVkKScpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsb2dnZXIuaW5mbyhcbiAgICAgIGNoYWxrLmdyZWVuKGBPcGVuaW5nIFZlcmNlbCBkYXNoYm9hcmQgZm9yIHdvcmtmbG93cyBhdDogJHtkYXNoYm9hcmRVcmx9YClcbiAgICApO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBvcGVuKGRhc2hib2FyZFVybCk7XG4gICAgICByZXR1cm47IC8vIEV4aXQgZWFybHkgc2luY2Ugd2Ugb3BlbmVkIHRoZSBkYXNoYm9hcmRcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgbG9nZ2VyLmVycm9yKGBGYWlsZWQgdG8gb3BlbiBicm93c2VyOiAke2Vycm9yfWApO1xuICAgICAgbG9nZ2VyLmluZm8oYFBsZWFzZSBvcGVuIHRoZSBsaW5rIG1hbnVhbGx5LmApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIC8vIEZhbGwgYmFjayB0byBsb2NhbCB3ZWIgVUlcbiAgY29uc3Qgd2ViUG9ydCA9IGZsYWdzLndlYlBvcnQgPz8gMzQ1NjtcbiAgY29uc3QgaG9zdFVybCA9IGdldEhvc3RVcmwod2ViUG9ydCk7XG4gIGNvbnN0IHVybCA9IGJ1aWxkV2ViVUlVcmwoaG9zdFVybCwgcmVzb3VyY2UsIGlkLCBmbGFncyk7XG5cbiAgLy8gQ2hlY2sgaWYgc2VydmVyIGlzIGFscmVhZHkgcnVubmluZ1xuICBjb25zdCBhbHJlYWR5UnVubmluZyA9IGF3YWl0IGlzU2VydmVyUnVubmluZyhob3N0VXJsKTtcblxuICBpZiAoYWxyZWFkeVJ1bm5pbmcpIHtcbiAgICBsb2dnZXIuaW5mbyhcbiAgICAgIGNoYWxrLmN5YW4oYFdlYiBVSSBzZXJ2ZXIgaXMgYWxyZWFkeSBydW5uaW5nIG9uIHBvcnQgJHt3ZWJQb3J0fS5gKVxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgLy8gU3RhcnQgdGhlIHNlcnZlclxuICAgIGNvbnN0IHN0YXJ0ZWQgPSBhd2FpdCBzdGFydFdlYlNlcnZlcih3ZWJQb3J0KTtcbiAgICBpZiAoIXN0YXJ0ZWQpIHtcbiAgICAgIGxvZ2dlci5lcnJvcignRmFpbGVkIHRvIHN0YXJ0IHdlYiBVSSBzZXJ2ZXInKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICAvLyBPcGVuIGJyb3dzZXJcbiAgaWYgKGRpc2FibGVCcm93c2VyT3Blbikge1xuICAgIGxvZ2dlci5pbmZvKGNoYWxrLmN5YW4oYFdlYiBVSSBhdmFpbGFibGUgYXQ6ICR7dXJsfWApKTtcbiAgICBsb2dnZXIuaW5mbyhjaGFsay5jeWFuKCcoQnJvd3NlciBhdXRvLW9wZW4gZGlzYWJsZWQpJykpO1xuICB9IGVsc2Uge1xuICAgIGxvZ2dlci5pbmZvKGNoYWxrLmN5YW4oYE9wZW5pbmcgYnJvd3NlciB0bzogJHt1cmx9YCkpO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBvcGVuKHVybCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGxvZ2dlci5lcnJvcihgRmFpbGVkIHRvIG9wZW4gYnJvd3NlcjogJHtlcnJvcn1gKTtcbiAgICAgIGxvZ2dlci5pbmZvKGBQbGVhc2Ugb3BlbiB0aGUgbGluayBtYW51YWxseS5gKTtcbiAgICB9XG4gIH1cblxuICAvLyBJZiB3ZSBzdGFydGVkIHRoZSBzZXJ2ZXIsIGtlZXAgdGhlIHByb2Nlc3MgcnVubmluZ1xuICBpZiAoIWFscmVhZHlSdW5uaW5nICYmIGh0dHBTZXJ2ZXIpIHtcbiAgICBsb2dnZXIuaW5mbyhjaGFsay5jeWFuKCdQcmVzcyBDdHJsK0MgdG8gc3RvcCB0aGUgd2ViIFVJIHNlcnZlciBhbmQgZXhpdCcpKTtcblxuICAgIC8vIEtlZXAgdGhlIENMSSBwcm9jZXNzIGFsaXZlIHdoaWxlIHRoZSBzZXJ2ZXIgaXMgcnVubmluZ1xuICAgIGF3YWl0IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlKSA9PiB7XG4gICAgICBpZiAoaHR0cFNlcnZlcikge1xuICAgICAgICBodHRwU2VydmVyLm9uKCdjbG9zZScsICgpID0+IHJlc29sdmUoKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|