@pipeline-builder/pipeline-core 4.4.5 → 4.4.7
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/lib/cdk.js +1 -1
- package/lib/config/app-config.js +1 -1
- package/lib/config/aws-config-cdk.js +1 -1
- package/lib/config/config-types.d.ts +36 -1
- package/lib/config/config-types.js +1 -1
- package/lib/config/handler-constants.js +1 -1
- package/lib/config/infrastructure-config.js +8 -2
- package/lib/config/server-config.js +1 -1
- package/lib/config/service-client.js +1 -1
- package/lib/core/artifact-manager.js +1 -1
- package/lib/core/audit-correlation.js +1 -1
- package/lib/core/id-generator.js +1 -1
- package/lib/core/metadata-builder.js +1 -1
- package/lib/core/metadata-helpers.js +1 -1
- package/lib/core/network-types.js +1 -1
- package/lib/core/network.js +1 -1
- package/lib/core/pipeline-helpers.js +1 -1
- package/lib/core/pipeline-registration.js +1 -1
- package/lib/core/pipeline-types.js +1 -1
- package/lib/core/platform-tls.js +1 -1
- package/lib/core/plugin-contract.js +1 -1
- package/lib/core/plugin-lookup-envelope.js +1 -1
- package/lib/core/quota-exceeded.js +1 -1
- package/lib/core/role-types.js +1 -1
- package/lib/core/role.js +1 -1
- package/lib/core/runtime-check.js +1 -1
- package/lib/core/security-group-types.js +1 -1
- package/lib/core/security-group.js +1 -1
- package/lib/core/security-reports.js +1 -1
- package/lib/core/step-manifest.js +1 -1
- package/lib/core/synth-failure.js +1 -1
- package/lib/handlers/bundle/index.mjs +43 -0
- package/lib/handlers/platform-credential.js +1 -1
- package/lib/handlers/plugin-lookup-handler.js +1 -1
- package/lib/index.js +1 -1
- package/lib/pipeline/deploy-attribution.js +1 -1
- package/lib/pipeline/pipeline-builder.js +1 -1
- package/lib/pipeline/pipeline-configuration.js +1 -1
- package/lib/pipeline/plugin-lookup.js +18 -26
- package/lib/pipeline/plugin-spec.js +1 -1
- package/lib/pipeline/runtime-vuln-check-step.js +1 -1
- package/lib/pipeline/source-builder.js +1 -1
- package/lib/pipeline/source-types.js +1 -1
- package/lib/pipeline/stage-builder.js +1 -1
- package/lib/pipeline/step-manifest-recorder.js +1 -1
- package/lib/pipeline/step-types.js +1 -1
- package/lib/pipeline/structure-preview.js +1 -1
- package/lib/template/draft.js +1 -1
- package/lib/template/evaluator.js +1 -1
- package/lib/template/index.js +1 -1
- package/lib/template/plugin-resolver.js +1 -1
- package/lib/template/tokenizer.js +1 -1
- package/lib/template/topo-sort.js +1 -1
- package/lib/template/validate.js +1 -1
- package/lib/template/walker.js +1 -1
- package/package.json +8 -8
|
@@ -84,4 +84,4 @@ export function createPlatformCredential(opts) {
|
|
|
84
84
|
},
|
|
85
85
|
};
|
|
86
86
|
}
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm0tY3JlZGVudGlhbC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hhbmRsZXJzL3BsYXRmb3JtLWNyZWRlbnRpYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU5Rjs7Ozs7Ozs7R0FRRztBQUVILDZFQUE2RTtBQUM3RSxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBc0IsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFFNUUsd0VBQXdFO0FBQ3hFLE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxNQUEwQjtJQUM1RCxPQUFPLE1BQU0sS0FBSyxHQUFHLElBQUksTUFBTSxLQUFLLEdBQUcsQ0FBQztBQUMxQyxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxlQUFlLENBQUMsS0FBYSxFQUFFLE1BQWM7SUFDM0QsSUFBSSxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFBRSxPQUFPO0lBQ2pFLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztJQUNuRCxNQUFNLElBQUksS0FBSyxDQUNiLEdBQUcsTUFBTSxrRUFBa0U7VUFDekUsQ0FBQyxZQUFZO1lBQ2IsQ0FBQyxDQUFDLHlHQUF5RztZQUMzRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQ1QsQ0FBQztBQUNKLENBQUM7QUFFRCxnRkFBZ0Y7QUFDaEYsTUFBTSxDQUFDLEtBQUssVUFBVSxvQkFBb0IsQ0FDeEMsVUFBa0IsRUFDbEIsTUFBTSxHQUF1QyxJQUFJLG9CQUFvQixDQUFDLEVBQUUsQ0FBQztJQUV6RSxNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxxQkFBcUIsQ0FBQyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDeEYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZO1FBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxXQUFXLFVBQVUsWUFBWSxDQUFDLENBQUM7SUFDL0UsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQU0sQ0FBQztBQUNoRCxDQUFDO0FBRUQsNEZBQTRGO0FBQzVGLE1BQU0sQ0FBQyxLQUFLLFVBQVUsdUJBQXVCLENBQUMsVUFBa0I7SUFDOUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxvQkFBb0IsQ0FBeUIsVUFBVSxDQUFDLENBQUM7SUFDOUUsTUFBTSxHQUFHLEdBQUcsT0FBTyxNQUFNLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3ZFLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNULE1BQU0sSUFBSSxLQUFLLENBQUMsV0FBVyxVQUFVLGtHQUFrRyxDQUFDLENBQUM7SUFDM0ksQ0FBQztJQUNELGVBQWUsQ0FBQyxHQUFHLEVBQUUsV0FBVyxVQUFVLEdBQUcsQ0FBQyxDQUFDO0lBQy9DLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQWdCRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLHdCQUF3QixDQUFDLElBSXhDO0lBQ0MsSUFBSSxNQUFNLEdBQWtCLElBQUksQ0FBQztJQUNqQyxJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDcEIsT0FBTztRQUNMLEtBQUssQ0FBQyxNQUFNO1lBQ1YsSUFBSSxNQUFNO2dCQUFFLE9BQU8sTUFBTSxDQUFDO1lBQzFCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDeEUsSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDWCxlQUFlLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFVLENBQUMsQ0FBQztnQkFDekMsTUFBTSxHQUFHLE1BQU0sQ0FBQztnQkFDaEIsT0FBTyxHQUFHLElBQUksQ0FBQztnQkFDZixPQUFPLE1BQU0sQ0FBQztZQUNoQixDQUFDO1lBQ0QsTUFBTSxVQUFVLEdBQUcsT0FBTyxJQUFJLENBQUMsVUFBVSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQy9GLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLHVEQUF1RCxDQUFDLENBQUM7WUFDM0gsQ0FBQztZQUNELE1BQU0sR0FBRyxNQUFNLHVCQUF1QixDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ25ELE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDaEIsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQztRQUNELFVBQVU7WUFDUixJQUFJLENBQUMsT0FBTztnQkFBRSxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQzlCLENBQUM7UUFDRCxLQUFLO1lBQ0gsTUFBTSxHQUFHLElBQUksQ0FBQztZQUNkLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDbEIsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB7IEdldFNlY3JldFZhbHVlQ29tbWFuZCwgU2VjcmV0c01hbmFnZXJDbGllbnQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyJztcblxuLyoqXG4gKiBUaGUgcGxhdGZvcm0gY3JlZGVudGlhbCBhIGRlcGxveWVkIExhbWJkYSBob2xkczogYW4gb3BhcXVlIHNlcnZpY2UtYWNjb3VudCBrZXlcbiAqIChgcGJfc2Ff4oCmYCksIHN0b3JlZCBpbiB0aGUgYHBhc3N3b3JkYCBmaWVsZCBvZiB0aGUgU2VjcmV0cyBNYW5hZ2VyIHNlY3JldCB0aGF0XG4gKiBgcGlwZWxpbmUtbWFuYWdlciBpbmZyYSBzdG9yZS10b2tlbmAgd3JpdGVzLiBgcGFzc3dvcmRgIHN0YXlzIHRoZSBjYW5vbmljYWxcbiAqIGZpZWxkIGJlY2F1c2UgQ29kZUJ1aWxkJ3MgYHNlY3JldHNNYW5hZ2VyQ3JlZGVudGlhbHNgIHJlYWRzIHRoZSBzYW1lIG9uZS5cbiAqXG4gKiBEZXBlbmRlbmN5LWZyZWUgYXBhcnQgZnJvbSB0aGUgU2VjcmV0cyBNYW5hZ2VyIGNsaWVudCBzbyBldmVyeSBMYW1iZGEgYnVuZGxlXG4gKiBjYW4gaW1wb3J0IGl0IHdpdGhvdXQgZHJhZ2dpbmcgaW4gYXdzLWNkay1saWIuXG4gKi9cblxuLyoqIEFjY2Vzcy1rZXkgcHJlZml4ZXMgcGxhdGZvcm0gaXNzdWVzLiBBIHN0b3JlZCBKV1QgaXMgTk9UIG9uZSBvZiB0aGVzZS4gKi9cbmV4cG9ydCBjb25zdCBBQ0NFU1NfS0VZX1BSRUZJWEVTOiByZWFkb25seSBzdHJpbmdbXSA9IFsncGJfc2FfJywgJ3BiX3BhdF8nXTtcblxuLyoqIFRydWUgZm9yIGFuIEhUVFAgc3RhdHVzIHRoYXQgbWVhbnMgXCJ0aGlzIGNyZWRlbnRpYWwgd2FzIHJlZnVzZWRcIi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0NyZWRlbnRpYWxSZWZ1c2FsKHN0YXR1czogbnVtYmVyIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gIHJldHVybiBzdGF0dXMgPT09IDQwMSB8fCBzdGF0dXMgPT09IDQwMztcbn1cblxuLyoqXG4gKiBSZWZ1c2UgYW55dGhpbmcgdGhhdCBpcyBub3QgYW4gb3BhcXVlIGFjY2VzcyBrZXksIG5hbWluZyB3aGVyZSBpdCBjYW1lIGZyb20uXG4gKiBBIHN0b3JlZCBKV1Qgd291bGQgb3RoZXJ3aXNlIHN1cmZhY2UgbXVjaCBsYXRlciBhcyBhbiBvcGFxdWUgNDAxIGZyb20gdGhlIEFQSSxcbiAqIHNldmVyYWwgbGF5ZXJzIGF3YXkgZnJvbSB0aGUgc2VjcmV0IGFuIG9wZXJhdG9yIGhhcyB0byBmaXguXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnRBY2Nlc3NLZXkodmFsdWU6IHN0cmluZywgc291cmNlOiBzdHJpbmcpOiB2b2lkIHtcbiAgaWYgKEFDQ0VTU19LRVlfUFJFRklYRVMuc29tZSgocCkgPT4gdmFsdWUuc3RhcnRzV2l0aChwKSkpIHJldHVybjtcbiAgY29uc3QgbG9va3NMaWtlSnd0ID0gdmFsdWUuc3BsaXQoJy4nKS5sZW5ndGggPT09IDM7XG4gIHRocm93IG5ldyBFcnJvcihcbiAgICBgJHtzb3VyY2V9IGRvZXMgbm90IGhvbGQgYW4gb3BhcXVlIGFjY2VzcyBrZXkgKGV4cGVjdGVkIGEgXCJwYl9zYV/igKZcIiB2YWx1ZSlgXG4gICAgKyAobG9va3NMaWtlSnd0XG4gICAgICA/ICcg4oCUIGl0IGhvbGRzIGEgSldULCBub3QgYSBzZXJ2aWNlLWFjY291bnQga2V5LiBSZS1ydW4gXCJwaXBlbGluZS1tYW5hZ2VyIGluZnJhIHN0b3JlLXRva2VuXCIgdG8gaXNzdWUgb25lLidcbiAgICAgIDogJy4nKSxcbiAgKTtcbn1cblxuLyoqIFJlYWQgYW5kIHBhcnNlIGEgU2VjcmV0cyBNYW5hZ2VyIHNlY3JldCBob2xkaW5nIGEgSlNPTiBjcmVkZW50aWFsIHJlY29yZC4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWFkQ3JlZGVudGlhbFNlY3JldDxUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4+KFxuICBzZWNyZXROYW1lOiBzdHJpbmcsXG4gIGNsaWVudDogUGljazxTZWNyZXRzTWFuYWdlckNsaWVudCwgJ3NlbmQnPiA9IG5ldyBTZWNyZXRzTWFuYWdlckNsaWVudCh7fSksXG4pOiBQcm9taXNlPFQ+IHtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuc2VuZChuZXcgR2V0U2VjcmV0VmFsdWVDb21tYW5kKHsgU2VjcmV0SWQ6IHNlY3JldE5hbWUgfSkpO1xuICBpZiAoIXJlc3BvbnNlLlNlY3JldFN0cmluZykgdGhyb3cgbmV3IEVycm9yKGBTZWNyZXQgXCIke3NlY3JldE5hbWV9XCIgaXMgZW1wdHlgKTtcbiAgcmV0dXJuIEpTT04ucGFyc2UocmVzcG9uc2UuU2VjcmV0U3RyaW5nKSBhcyBUO1xufVxuXG4vKiogUmVhZCB0aGUgYHBiX3NhX+KApmAga2V5IGZyb20gYSBjcmVkZW50aWFsIHNlY3JldCwgcmVmdXNpbmcgYSBtaXNzaW5nIG9yIG5vbi1rZXkgdmFsdWUuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVhZEFjY2Vzc0tleUZyb21TZWNyZXQoc2VjcmV0TmFtZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3Qgc2VjcmV0ID0gYXdhaXQgcmVhZENyZWRlbnRpYWxTZWNyZXQ8eyBwYXNzd29yZD86IHVua25vd24gfT4oc2VjcmV0TmFtZSk7XG4gIGNvbnN0IGtleSA9IHR5cGVvZiBzZWNyZXQucGFzc3dvcmQgPT09ICdzdHJpbmcnID8gc2VjcmV0LnBhc3N3b3JkIDogJyc7XG4gIGlmICgha2V5KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBTZWNyZXQgXCIke3NlY3JldE5hbWV9XCIgbWlzc2luZyBwYXNzd29yZCDigJQgcnVuIFwicGlwZWxpbmUtbWFuYWdlciBpbmZyYSBzdG9yZS10b2tlblwiIHRvIHByb3Zpc2lvbiBhIHNlcnZpY2UtYWNjb3VudCBrZXlgKTtcbiAgfVxuICBhc3NlcnRBY2Nlc3NLZXkoa2V5LCBgc2VjcmV0IFwiJHtzZWNyZXROYW1lfVwiYCk7XG4gIHJldHVybiBrZXk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGxhdGZvcm1DcmVkZW50aWFsIHtcbiAgLyoqIFRoZSBjYWNoZWQga2V5LCByZWFkIGZyb20gdGhlIHNlY3JldCBvbiBmaXJzdCB1c2UgKG9yIGFmdGVyIHtAbGluayBpbnZhbGlkYXRlfSkuICovXG4gIGdldEtleSgpOiBQcm9taXNlPHN0cmluZz47XG4gIC8qKlxuICAgKiBGb3JnZXQgdGhlIGNhY2hlZCBrZXkgYWZ0ZXIgdGhlIEFQSSByZWZ1c2VkIGl0ICg0MDEvNDAzKS4gVGhlIHRva2VuLXJlbmV3XG4gICAqIExhbWJkYSByb3RhdGVzIHRoZSBzZWNyZXQgYW5kIHRoZW4gcmV2b2tlcyB0aGUgcHJlZGVjZXNzb3IsIHNvIGEgd2FybVxuICAgKiBjb250YWluZXIgdGhhdCBrZXB0IGl0cyBjYWNoZWQga2V5IHdvdWxkIHByZXNlbnQgdGhlIHJldGlyZWQgb25lIGZvcmV2ZXIuXG4gICAqIFRoZSBuZXh0IHtAbGluayBnZXRLZXl9IHJlLXJlYWRzIHRoZSBzZWNyZXQgYW5kIHBpY2tzIHVwIHRoZSByZXBsYWNlbWVudC5cbiAgICovXG4gIGludmFsaWRhdGUoKTogdm9pZDtcbiAgLyoqIEZvcmdldCBldmVyeXRoaW5nLCBpbmNsdWRpbmcgYW4gZW52LXByb3ZpZGVkIGtleSAodGVzdHMpLiAqL1xuICByZXNldCgpOiB2b2lkO1xufVxuXG4vKipcbiAqIEEgcGVyLWNvbnRhaW5lciBjYWNoZWQgcGxhdGZvcm0gY3JlZGVudGlhbC4gYGVudktleVZhcmAgbmFtZXMgYW4gb3B0aW9uYWwgZW52XG4gKiB2YXIgaG9sZGluZyB0aGUga2V5IGRpcmVjdGx5OyBhbiBlbnYtcHJvdmlkZWQga2V5IGNhbm5vdCBjaGFuZ2Ugd2l0aG91dCBhIG5ld1xuICogY29udGFpbmVyLCBzbyB7QGxpbmsgUGxhdGZvcm1DcmVkZW50aWFsLmludmFsaWRhdGV9IGtlZXBzIGl0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUGxhdGZvcm1DcmVkZW50aWFsKG9wdHM6IHtcbiAgLyoqIFRoZSBzZWNyZXQgbmFtZSwgb3IgYSBnZXR0ZXIgcmVhZCBhdCBmaXJzdCB1c2UgKGVudiBzZXQgYWZ0ZXIgbW9kdWxlIGxvYWQpLiAqL1xuICBzZWNyZXROYW1lPzogc3RyaW5nIHwgKCgpID0+IHN0cmluZyB8IHVuZGVmaW5lZCk7XG4gIGVudktleVZhcj86IHN0cmluZztcbn0pOiBQbGF0Zm9ybUNyZWRlbnRpYWwge1xuICBsZXQgY2FjaGVkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgbGV0IGZyb21FbnYgPSBmYWxzZTtcbiAgcmV0dXJuIHtcbiAgICBhc3luYyBnZXRLZXkoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgIGlmIChjYWNoZWQpIHJldHVybiBjYWNoZWQ7XG4gICAgICBjb25zdCBkaXJlY3QgPSBvcHRzLmVudktleVZhciA/IHByb2Nlc3MuZW52W29wdHMuZW52S2V5VmFyXSA6IHVuZGVmaW5lZDtcbiAgICAgIGlmIChkaXJlY3QpIHtcbiAgICAgICAgYXNzZXJ0QWNjZXNzS2V5KGRpcmVjdCwgb3B0cy5lbnZLZXlWYXIhKTtcbiAgICAgICAgY2FjaGVkID0gZGlyZWN0O1xuICAgICAgICBmcm9tRW52ID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIGNhY2hlZDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHNlY3JldE5hbWUgPSB0eXBlb2Ygb3B0cy5zZWNyZXROYW1lID09PSAnZnVuY3Rpb24nID8gb3B0cy5zZWNyZXROYW1lKCkgOiBvcHRzLnNlY3JldE5hbWU7XG4gICAgICBpZiAoIXNlY3JldE5hbWUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke29wdHMuZW52S2V5VmFyID8gYCR7b3B0cy5lbnZLZXlWYXJ9IG9yIGAgOiAnJ31QTEFURk9STV9TRUNSRVRfTkFNRSBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyByZXF1aXJlZGApO1xuICAgICAgfVxuICAgICAgY2FjaGVkID0gYXdhaXQgcmVhZEFjY2Vzc0tleUZyb21TZWNyZXQoc2VjcmV0TmFtZSk7XG4gICAgICBmcm9tRW52ID0gZmFsc2U7XG4gICAgICByZXR1cm4gY2FjaGVkO1xuICAgIH0sXG4gICAgaW52YWxpZGF0ZSgpOiB2b2lkIHtcbiAgICAgIGlmICghZnJvbUVudikgY2FjaGVkID0gbnVsbDtcbiAgICB9LFxuICAgIHJlc2V0KCk6IHZvaWQge1xuICAgICAgY2FjaGVkID0gbnVsbDtcbiAgICAgIGZyb21FbnYgPSBmYWxzZTtcbiAgICB9LFxuICB9O1xufVxuIl19
|
|
@@ -385,4 +385,4 @@ export const handler = async (event, context) => {
|
|
|
385
385
|
lambdaLog.info('END', 'Custom resource execution completed');
|
|
386
386
|
}
|
|
387
387
|
};
|
|
388
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLWxvb2t1cC1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hhbmRsZXJzL3BsdWdpbi1sb29rdXAtaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFHOUIsT0FBTyxLQUFLLEVBQUUsRUFBc0IsVUFBVSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzlELG1GQUFtRjtBQUNuRixtRkFBbUY7QUFDbkYscUZBQXFGO0FBQ3JGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pGLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLHNCQUFzQixFQUN0QiwwQkFBMEIsRUFDMUIsd0JBQXdCLEdBQ3pCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxtQkFBbUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMvRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVsRTs7O0dBR0c7QUFDSCxTQUFTLFFBQVEsQ0FBQyxLQUFhLEVBQUUsR0FBVyxFQUFFLE9BQWUsRUFBRSxJQUFjO0lBQzNFLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3pGLFFBQVEsS0FBSyxFQUFFLENBQUM7UUFDZCxLQUFL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QUUscUJBQXFCLEVBQUUsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFFN0UsT0FBTztZQUNMLEdBQUcsWUFBWTtZQUNmLE1BQU0sRUFBRSxTQUFTO1lBQ2pCLE1BQU0sRUFBRSxXQUFXLE1BQU0sQ0FBQyxJQUFJLE9BQU8sTUFBTSxDQUFDLE9BQU8sMEJBQTBCO1lBQzdFLElBQUksRUFBRTtnQkFDSixXQUFXLEVBQUUsT0FBTzthQUNyQjtTQUNzQyxDQUFDO0lBQzVDLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsTUFBTSxNQUFNLEdBQUcsS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsMkJBQTJCLENBQUM7UUFDcEYsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUU7WUFDekMsTUFBTTtZQUNOLEtBQUssRUFBRSxLQUFLLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTO1NBQ3hELENBQUMsQ0FBQztRQUVILE9BQU87WUFDTCxHQUFHLFlBQVk7WUFDZixNQUFNLEVBQUUsUUFBUTtZQUNoQixNQUFNLEVBQUUsY0FBYyxDQUFDLE1BQU0sQ0FBQztTQUNTLENBQUM7SUFDNUMsQ0FBQztZQUFTLENBQUM7UUFDVCxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxxQ0FBcUMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7QUFDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHsgQWdlbnQgfSBmcm9tICdodHRwcyc7XG5pbXBvcnQgdHlwZSB7IFBsdWdpbkZpbHRlciwgUGx1Z2luIH0gZnJvbSAnQHBpcGVsaW5lLWJ1aWxkZXIvcGlwZWxpbmUtZGF0YSc7XG5pbXBvcnQgdHlwZSB7IENsb3VkRm9ybWF0aW9uQ3VzdG9tUmVzb3VyY2VFdmVudCwgQ2xvdWRGb3JtYXRpb25DdXN0b21SZXNvdXJjZVJlc3BvbnNlLCBDb250ZXh0IH0gZnJvbSAnYXdzLWxhbWJkYSc7XG5pbXBvcnQgYXhpb3MsIHsgdHlwZSBBeGlvc0luc3RhbmNlLCBBeGlvc0Vycm9yIH0gZnJvbSAnYXhpb3MnO1xuLy8gSW1wb3J0IHRoZSBkZXBlbmRlbmN5LWZyZWUgbGVhZiwgTk9UIGBhcHAtY29uZmlnLmpzYC9gQ29yZUNvbnN0YW50c2A6IHRoZSBsYXR0ZXJcbi8vIHRyYW5zaXRpdmVseSBwdWxscyBpbmZyYXN0cnVjdHVyZS1jb25maWcg4oaSIGF3cy1jZGstbGliLCB3aGljaCBlc2J1aWxkIHRoZW4gdHJpZXNcbi8vIHRvIGJ1bmRsZSBpbnRvIHRoaXMgTGFtYmRhIChodW5kcmVkcyBvZiBNQiDihpIgT09NL1NJR0tJTEwgZHVyaW5nIGNvbGQtc3RhcnQgc3ludGgpLlxuaW1wb3J0IHsgY3JlYXRlUGxhdGZvcm1DcmVkZW50aWFsLCBpc0NyZWRlbnRpYWxSZWZ1c2FsIH0gZnJvbSAnLi9wbGF0Zm9ybS1jcmVkZW50aWFsLmpzJztcbmltcG9ydCB7XG4gIEhBTkRMRVJfVElNRU9VVF9NUyxcbiAgSEFORExFUl9NQVhfUkVUUklFUyxcbiAgSEFORExFUl9SRVRSWV9ERUxBWV9NUyxcbiAgSEFORExFUl9SRVRSWV9BRlRFUl9NQVhfTVMsXG4gIEhBTkRMRVJfREVGQVVMVF9CQVNFX1VSTCxcbn0gZnJvbSAnLi4vY29uZmlnL2hhbmRsZXItY29uc3RhbnRzLmpzJztcbmltcG9ydCB7IGNvcnJlbGF0aW9uSGVhZGVycyB9IGZyb20gJy4uL2NvcmUvYXVkaXQtY29ycmVsYXRpb24uanMnO1xuaW1wb3J0IHsgcGxhdGZvcm1DYUxpc3QgfSBmcm9tICcuLi9jb3JlL3BsYXRmb3JtLXRscy5qcyc7XG5pbXBvcnQgeyBleGFjdFBpbk5vdEZvdW5kTWVzc2FnZSwgbG9va3VwTm90Rm91bmRTdGF0ZSwgdW53cmFwTG9va3VwIH0gZnJvbSAnLi4vY29yZS9wbHVnaW4tbG9va3VwLWVudmVsb3BlLmpzJztcbmltcG9ydCB7IGRlc2NyaWJlUXVvdGFFeGNlZWRlZCB9IGZyb20gJy4uL2NvcmUvcXVvdGEtZXhjZWVkZWQuanMnO1xuXG4vKipcbiAqIFN0cnVjdHVyZWQgbG9nZ2VyIGZvciBMYW1iZGEgKG91dHB1dHMgSlNPTiB0byBDbG91ZFdhdGNoKS5cbiAqIERlYnVnIG1lc3NhZ2VzIG9ubHkgZW1pdHRlZCB3aGVuIExPR19MRVZFTD1kZWJ1Zy5cbiAqL1xuZnVuY3Rpb24gbG9nRW50cnkobGV2ZWw6IHN0cmluZywgdGFnOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZywgZGF0YT86IHVua25vd24pIHtcbiAgY29uc3QgbGluZSA9IEpTT04uc3RyaW5naWZ5KHsgbGV2ZWwsIHRhZywgbWVzc2FnZSwgZGF0YSwgdHM6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSB9KTtcbiAgc3dpdGNoIChsZXZlbCkge1xuICAgIGNhc2UgJ0VSUk9SJzogY29uc29sZS5lcnJvcihsaW5lKTsgYnJlYWs7XG4gICAgY2FzZSAnV0FSTic6IGNvbnNvbGUud2FybihsaW5lKTsgYnJlYWs7XG4gICAgY2FzZSAnREVCVUcnOiBpZiAocHJvY2Vzcy5lbnYuTE9HX0xFVkVMID09PSAnZGVidWcnKSBjb25zb2xlLmRlYnVnKGxpbmUpOyBicmVhaztcbiAgICBkZWZhdWx0OiBjb25zb2xlLmxvZyhsaW5lKTtcbiAgfVxufVxuXG5jb25zdCBsYW1iZGFMb2cgPSB7XG4gIGluZm86ICh0YWc6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nLCBkYXRhPzogdW5rbm93bikgPT4gbG9nRW50cnkoJ0lORk8nLCB0YWcsIG1lc3NhZ2UsIGRhdGEpLFxuICBlcnJvcjogKHRhZzogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcsIGRhdGE/OiB1bmtub3duKSA9PiBsb2dFbnRyeSgnRVJST1InLCB0YWcsIG1lc3NhZ2UsIGRhdGEpLFxuICB3YXJuOiAodGFnOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZywgZGF0YT86IHVua25vd24pID0+IGxvZ0VudHJ5KCdXQVJOJywgdGFnLCBtZXNzYWdlLCBkYXRhKSxcbiAgZGVidWc6ICh0YWc6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nLCBkYXRhPzogdW5rbm93bikgPT4gbG9nRW50cnkoJ0RFQlVHJywgdGFnLCBtZXNzYWdlLCBkYXRhKSxcbn07XG5cbmNvbnN0IFJFVFJZQUJMRV9TVEFUVVNFUyA9IG5ldyBTZXQoWzQyOSwgNTAyLCA1MDMsIDUwNF0pO1xuY29uc3QgUkVUUllBQkxFX0NPREVTID0gbmV3IFNldChbJ0VDT05OUkVTRVQnLCAnRUNPTk5SRUZVU0VEJywgJ0VUSU1FRE9VVCddKTtcblxuZnVuY3Rpb24gc2xlZXAobXM6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIG1zKSk7XG59XG5cbi8qKlxuICogQSBwbGFpbiA0MjkncyBgUmV0cnktQWZ0ZXJgIChkZWx0YS1zZWNvbmRzKSBpbiBtcywgY2xpcHBlZCB0b1xuICoge0BsaW5rIEhBTkRMRVJfUkVUUllfQUZURVJfTUFYX01TfTsgYHVuZGVmaW5lZGAgd2hlbiBhYnNlbnQgb3IgdW5wYXJzZWFibGUgKGFuXG4gKiBIVFRQLWRhdGUgaXMgbm90IHdvcnRoIHBhcnNpbmcgZm9yIGEgd2FpdCB0aGlzIHNob3J0IOKAlCB0aGUgYmFja29mZiBhcHBsaWVzKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJldHJ5QWZ0ZXJNcyhoZWFkZXJzOiB1bmtub3duKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgcmF3ID0gKGhlYWRlcnMgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCB1bmRlZmluZWQpPy5bJ3JldHJ5LWFmdGVyJ107XG4gIGNvbnN0IHNlY29uZHMgPSB0eXBlb2YgcmF3ID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgcmF3ID09PSAnbnVtYmVyJyA/IE51bWJlcihyYXcpIDogTmFOO1xuICBpZiAoIU51bWJlci5pc0Zpbml0ZShzZWNvbmRzKSB8fCBzZWNvbmRzIDwgMCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgcmV0dXJuIE1hdGgubWluKHNlY29uZHMgKiAxMDAwLCBIQU5ETEVSX1JFVFJZX0FGVEVSX01BWF9NUyk7XG59XG5cbi8qKiBQbGF0Zm9ybSBzZWNyZXQgbmFtZSDigJQgaW5qZWN0ZWQgYXMgUExBVEZPUk1fU0VDUkVUX05BTUUgZW52IHZhciBieSBQbHVnaW5Mb29rdXAgY29uc3RydWN0LiAqL1xuY29uc3QgUExBVEZPUk1fU0VDUkVUX05BTUUgPSBwcm9jZXNzLmVudi5QTEFURk9STV9TRUNSRVRfTkFNRTtcbmlmICghUExBVEZPUk1fU0VDUkVUX05BTUUpIHtcbiAgdGhyb3cgbmV3IEVycm9yKCdQTEFURk9STV9TRUNSRVRfTkFNRSBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyByZXF1aXJlZCcpO1xufVxuXG4vKipcbiAqIFRoZSBzZXJ2aWNlLWFjY291bnQga2V5IChgcGJfc2Ff4oCmYCkgZnJvbSBTZWNyZXRzIE1hbmFnZXIsIGNhY2hlZCBmb3IgdGhlIHdhcm1cbiAqIGNvbnRhaW5lci4gVGhlIHBsdWdpbiBBUEkgdHJhZGVzIGl0IGZvciBhIHNob3J0LWxpdmVkIEpXVCBpdHNlbGYsIHNvIHRoZSBrZXlcbiAqIGdvZXMgb3V0IGFzIHRoZSBCZWFyZXIgY3JlZGVudGlhbC4gQ3JlYXRlIHRoZSBzZWNyZXQgd2l0aFxuICogYHBpcGVsaW5lLW1hbmFnZXIgaW5mcmEgc3RvcmUtdG9rZW5gLlxuICovXG5jb25zdCBjcmVkZW50aWFsID0gY3JlYXRlUGxhdGZvcm1DcmVkZW50aWFsKHsgc2VjcmV0TmFtZTogUExBVEZPUk1fU0VDUkVUX05BTUUgfSk7XG5cbi8qKiBAaW50ZXJuYWwgUmVzZXQgY2FjaGVkIGNyZWRlbnRpYWwgKGZvciB0ZXN0aW5nIG9ubHkpLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIF9yZXNldENyZWRlbnRpYWxzQ2FjaGUoKTogdm9pZCB7IGNyZWRlbnRpYWwucmVzZXQoKTsgfVxuXG4vKiogVGhlIEFQSSByZWZ1c2VkIHRoZSBjcmVkZW50aWFsICg0MDEvNDAzKSDigJQgdGhlIGNhbGxlciBtYXkgcmVmcmVzaCBpdCBhbmQgcmV0cnkgb25jZS4gKi9cbmNsYXNzIENyZWRlbnRpYWxSZWZ1c2VkRXJyb3IgZXh0ZW5kcyBFcnJvciB7fVxuXG4vKipcbiAqIENsb3VkRm9ybWF0aW9uIGNhcHMgYSBjdXN0b20gcmVzb3VyY2UncyBgUmVhc29uYCAodGhlIHJlc3BvbnNlIGJvZHkgYXMgYVxuICogd2hvbGUgbXVzdCBzdGF5IHVuZGVyIDQwOTYgYnl0ZXMsIGFuZCB0aGUgcmVhc29uIGlzIHdoYXQgdGhlIGNvbnNvbGUgYW5kXG4gKiBgY2RrIGRlcGxveWAgcHJpbnQpLiBMZWF2ZSBoZWFkcm9vbSBmb3IgdGhlIG90aGVyIHJlc3BvbnNlIGZpZWxkcy5cbiAqL1xuY29uc3QgTUFYX1JFQVNPTl9CWVRFUyA9IDM1MDA7XG5cbi8qKiBUcnVuY2F0ZSB0byBgbWF4YCBVVEYtOCBieXRlcyBvbiBhIGNoYXJhY3RlciBib3VuZGFyeSwgbWFya2luZyB0aGUgY3V0LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRydW5jYXRlUmVhc29uKHJlYXNvbjogc3RyaW5nLCBtYXggPSBNQVhfUkVBU09OX0JZVEVTKTogc3RyaW5nIHtcbiAgaWYgKEJ1ZmZlci5ieXRlTGVuZ3RoKHJlYXNvbiwgJ3V0ZjgnKSA8PSBtYXgpIHJldHVybiByZWFzb247XG4gIGNvbnN0IG1hcmtlciA9ICcg4oCmW3RydW5jYXRlZF0nO1xuICBsZXQgb3V0ID0gcmVhc29uLnNsaWNlKDAsIG1heCk7XG4gIHdoaWxlIChCdWZmZXIuYnl0ZUxlbmd0aChvdXQgKyBtYXJrZXIsICd1dGY4JykgPiBtYXgpIG91dCA9IG91dC5zbGljZSgwLCAtMSk7XG4gIHJldHVybiBvdXQgKyBtYXJrZXI7XG59XG5cbi8qKlxuICogVGhlIHJlZnVzYWwgYXMgdGhlIHBsdWdpbiBzZXJ2aWNlIHdyb3RlIGl0IOKAlCBgY29kZWAsIGBtZXNzYWdlYCBhbmQgYSBjb21wYWN0XG4gKiByZW5kZXJpbmcgb2YgYGRldGFpbHNgICh0aGUgYmxvY2tpbmcgQ1ZFcywgdGhlIHBvbGljeSB0aGF0IHJlZnVzZWQgaXTigKYpIOKAlFxuICogc28gdGhlIENsb3VkRm9ybWF0aW9uIGZhaWx1cmUgc2F5cyBXSFksIG5vdCBqdXN0IFwiQVBJIGVycm9yIDQwOTogQ29uZmxpY3RcIi5cbiAqIE9ubHkgdGhvc2UgdGhyZWUgZmllbGRzIGFyZSByZWFkOiB0aGUgYm9keSBpcyBuZXZlciBlY2hvZWQgdmVyYmF0aW0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZXNjcmliZVJlZnVzYWwoc3RhdHVzOiBudW1iZXIsIHN0YXR1c1RleHQ6IHN0cmluZywgYm9keTogdW5rbm93biwgZmlsdGVyPzogUGx1Z2luRmlsdGVyKTogc3RyaW5nIHtcbiAgY29uc3QgZGF0YSA9IGJvZHkgJiYgdHlwZW9mIGJvZHkgPT09ICdvYmplY3QnID8gYm9keSBhcyB7IGNvZGU/OiB1bmtub3duOyBtZXNzYWdlPzogdW5rbm93bjsgZGV0YWlscz86IHVua25vd24gfSA6IHt9O1xuICBjb25zdCBjb2RlID0gdHlwZW9mIGRhdGEuY29kZSA9PT0gJ3N0cmluZycgPyBkYXRhLmNvZGUgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IHBpbiA9IHR5cGVvZiBmaWx0ZXI/LnZlcnNpb24gPT09ICdzdHJpbmcnICYmIC9eXFxkK1xcLlxcZCtcXC5cXGQrKC1bMC05QS1aYS16Li1dKyk/JC8udGVzdChmaWx0ZXIudmVyc2lvbikgPyBmaWx0ZXIudmVyc2lvbiA6IHVuZGVmaW5lZDtcbiAgLy8gQW4gZXhhY3QgcGluIHRoYXQgZG9lcyBub3QgcmVzb2x2ZTogcGhyYXNlIGl0IGZyb20gZGV0YWlscy5zdGF0ZSwgYXMgdGhlIENMSSBkb2VzLlxuICBpZiAoc3RhdHVzID09PSA0MDQgJiYgcGluICYmIHR5cGVvZiBmaWx0ZXI/Lm5hbWUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGAke2NvZGUgPz8gJ05PVF9GT1VORCd9OiAke2V4YWN0UGluTm90Rm91bmRNZXNzYWdlKGZpbHRlci5uYW1lLCBwaW4sIGxvb2t1cE5vdEZvdW5kU3RhdGUoYm9keSkpfWA7XG4gIH1cbiAgY29uc3QgbWVzc2FnZSA9IHR5cGVvZiBkYXRhLm1lc3NhZ2UgPT09ICdzdHJpbmcnICYmIGRhdGEubWVzc2FnZS5sZW5ndGggPiAwID8gZGF0YS5tZXNzYWdlIDogYEFQSSBlcnJvciAke3N0YXR1c306ICR7c3RhdHVzVGV4dH1gO1xuICBsZXQgZGV0YWlscyA9ICcnO1xuICBpZiAoZGF0YS5kZXRhaWxzICE9PSB1bmRlZmluZWQgJiYgZGF0YS5kZXRhaWxzICE9PSBudWxsKSB7XG4gICAgdHJ5IHtcbiAgICAgIGRldGFpbHMgPSBgIOKAlCBkZXRhaWxzOiAke0pTT04uc3RyaW5naWZ5KGRhdGEuZGV0YWlscyl9YDtcbiAgICB9IGNhdGNoIHtcbiAgICAgIGRldGFpbHMgPSAnJztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGAke2NvZGUgPyBgJHtjb2RlfTogYCA6ICcnfSR7bWVzc2FnZX0ke2RldGFpbHN9YDtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgcHJlLWNvbmZpZ3VyZWQgQXhpb3MgaW5zdGFuY2UgZm9yIEFQSSByZXF1ZXN0cy5cbiAqXG4gKiBAcGFyYW0gYmFzZVVSTCAtIEJhc2UgVVJMIG9mIHRoZSB0YXJnZXQgQVBJXG4gKiBAcGFyYW0ga2V5IC0gc2VydmljZS1hY2NvdW50IGtleSBzZW50IGFzIHRoZSBCZWFyZXIgY3JlZGVudGlhbFxuICogQHBhcmFtIHJlcXVlc3RJZCAtIHRoaXMgTGFtYmRhIGludm9jYXRpb24ncyBhd3NSZXF1ZXN0SWQsIHNlbnQgYXMgYFgtUmVxdWVzdC1JZGBcbiAqICAgc28gdGhlIHBsdWdpbiBzZXJ2aWNlJ3MgYXVkaXQgcm93IGpvaW5zIGJhY2sgdG8gdGhpcyBpbnZvY2F0aW9uJ3MgbG9nXG4gKiBAcmV0dXJucyBDb25maWd1cmVkIEF4aW9zIGluc3RhbmNlXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZShiYXNlVVJMOiBzdHJpbmcsIGtleTogc3RyaW5nLCByZXF1ZXN0SWQ/OiBzdHJpbmcpOiBBeGlvc0luc3RhbmNlIHtcbiAgLy8gQSBwcml2YXRlLUNBIHBsYXRmb3JtIGlzIFZFUklGSUVEIGFnYWluc3QgUExBVEZPUk1fQ0FfQlVORExFIChzZXQgYnkgdGhlXG4gIC8vIFBsdWdpbkxvb2t1cCBjb25zdHJ1Y3Qgd2hlbiB0aGUgc3ludGggaGFkIG9uZSk7IG90aGVyd2lzZSBOb2RlJ3MgZGVmYXVsdCBzdG9yZS5cbiAgY29uc3QgY2EgPSBwbGF0Zm9ybUNhTGlzdCgpO1xuICByZXR1cm4gYXhpb3MuY3JlYXRlKHtcbiAgICBiYXNlVVJMLFxuICAgIHRpbWVvdXQ6IEhBTkRMRVJfVElNRU9VVF9NUyxcbiAgICAuLi4oY2EgJiYgeyBodHRwc0FnZW50OiBuZXcgQWdlbnQoeyBjYSB9KSB9KSxcbiAgICBoZWFkZXJzOiB7XG4gICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgJ0F1dGhvcml6YXRpb24nOiBgQmVhcmVyICR7a2V5fWAsXG4gICAgICAuLi5jb3JyZWxhdGlvbkhlYWRlcnMoeyByZXF1ZXN0SWQgfSksXG4gICAgfSxcbiAgfSk7XG59XG5cbi8qKlxuICogRmV0Y2hlcyBwbHVnaW4gY29uZmlndXJhdGlvbiBmcm9tIHRoZSBleHRlcm5hbCBBUEkgd2l0aCByZXRyeSBsb2dpYy5cbiAqIFJldHJpZXMgb24gdHJhbnNpZW50IGZhaWx1cmVzICg0MjksIDUwMiwgNTAzLCA1MDQsIG5ldHdvcmsgZXJyb3JzKVxuICogd2l0aCBleHBvbmVudGlhbCBiYWNrb2ZmLlxuICpcbiAqIEBwYXJhbSBhcGkgLSBDb25maWd1cmVkIEF4aW9zIGluc3RhbmNlXG4gKiBAcGFyYW0gYmFzZVVSTCAtIFRoZSBwbGF0Zm9ybSBVUkwgYGFwaWAgdGFyZ2V0cyAocHJlZml4ZXMgYSBxdW90YSByZWZ1c2FsJ3MgdXBncmFkZSBwYXRoKVxuICogQHBhcmFtIHBsdWdpbkZpbHRlciAtIEZpbHRlciBjcml0ZXJpYSBmb3IgdGhlIHBsdWdpbiBsb29rdXBcbiAqIEByZXR1cm5zIFRoZSBwbHVnaW4gZGF0YSByZXR1cm5lZCBieSB0aGUgQVBJXG4gKiBAdGhyb3dzIEVycm9yIG9uIHBlcnNpc3RlbnQgZmFpbHVyZSwgdGltZW91dCBvciBpbnZhbGlkIHJlc3BvbnNlXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGZldGNoKGFwaTogQXhpb3NJbnN0YW5jZSwgYmFzZVVSTDogc3RyaW5nLCBwbHVnaW5GaWx0ZXI6IFBsdWdpbkZpbHRlciwgc3RlcEtleT86IHN0cmluZyk6IFByb21pc2U8UGx1Z2luPiB7XG4gIGxhbWJkYUxvZy5kZWJ1ZygnRkVUQ0gnLCAnU3RhcnRpbmcgcGx1Z2luIGZldGNoJywgeyBmaWx0ZXI6IHBsdWdpbkZpbHRlciB9KTtcblxuICBsZXQgbGFzdEVycm9yOiBFcnJvciB8IHVuZGVmaW5lZDtcbiAgLy8gQSBwbGFpbiA0MjkncyBSZXRyeS1BZnRlciwgaG9ub3VyZWQgb24gdGhlIG5leHQgYXR0ZW1wdCB3aGVuIGxvbmdlciB0aGFuIHRoZSBiYWNrb2ZmLlxuICBsZXQgc2VydmVyRGVsYXk6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICBmb3IgKGxldCBhdHRlbXB0ID0gMDsgYXR0ZW1wdCA8PSBIQU5ETEVSX01BWF9SRVRSSUVTOyBhdHRlbXB0KyspIHtcbiAgICBpZiAoYXR0ZW1wdCA+IDApIHtcbiAgICAgIGNvbnN0IGRlbGF5ID0gTWF0aC5tYXgoSEFORExFUl9SRVRSWV9ERUxBWV9NUyAqIE1hdGgucG93KDIsIGF0dGVtcHQgLSAxKSwgc2VydmVyRGVsYXkgPz8gMCk7XG4gICAgICBzZXJ2ZXJEZWxheSA9IHVuZGVmaW5lZDtcbiAgICAgIGxhbWJkYUxvZy5pbmZvKCdSRVRSWScsIGBBdHRlbXB0ICR7YXR0ZW1wdCArIDF9LyR7SEFORExFUl9NQVhfUkVUUklFUyArIDF9IGFmdGVyICR7ZGVsYXl9bXNgKTtcbiAgICAgIGF3YWl0IHNsZWVwKGRlbGF5KTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgLy8gQ29udHJhY3QgQzE6IHdpdGggYSBrbm93biBwaXBlbGluZSArIHN0ZXAsIHRoZSBwbHVnaW4gc2VydmljZSByZWNvcmRzXG4gICAgICAvLyB0aGUgd2FybmluZ3MgaXQgcmV0dXJucyBhZ2FpbnN0IHRoZW0gKG5vdCBvbmx5IHRoaXMgTGFtYmRhJ3MgbG9nKS5cbiAgICAgIGNvbnN0IHBpcGVsaW5lSWQgPSBwcm9jZXNzLmVudi5QSVBFTElORV9JRDtcbiAgICAgIGNvbnN0IHsgZGF0YTogYm9keSwgc3RhdHVzIH0gPSBhd2FpdCBhcGkucG9zdDx1bmtub3duPignL2FwaS9wbHVnaW5zL2xvb2t1cCcsIHtcbiAgICAgICAgZmlsdGVyOiBwbHVnaW5GaWx0ZXIsXG4gICAgICAgIC4uLihwaXBlbGluZUlkICYmIHN0ZXBLZXkgPyB7IGNvbnRleHQ6IHsgcGlwZWxpbmVJZCwgc3RlcEtleXM6IFtzdGVwS2V5XSB9IH0gOiB7fSksXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgeyBwbHVnaW46IGRhdGEsIHdhcm5pbmdzIH0gPSB1bndyYXBMb29rdXAoYm9keSk7XG4gICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFbXB0eSByZXNwb25zZSBkYXRhIGZyb20gQVBJJyk7XG4gICAgICB9XG4gICAgICAvLyBHcmFkZWQgd2FybmluZ3MgKGxpZmVjeWNsZSwgdnVsbmVyYWJpbGl0eSwgY29tcGxpYW5jZSkg4oCUIHN1cmZhY2VkIGluIHRoZVxuICAgICAgLy8gZGVwbG95IGxvZzsgdGhlIGxvb2t1cCBzdGlsbCBzdWNjZWVkcy4gVnVsbmVyYWJpbGl0eSBzdGF0ZSBuZXZlciBmYWlscyBhXG4gICAgICAvLyBkZXBsb3k6IGl0IGlzIHJlcG9ydGVkIChhbmQsIHdpdGggY29udGV4dCwgcmVjb3JkZWQgc2VydmVyLXNpZGUpLlxuICAgICAgZm9yIChjb25zdCB3IG9mIHdhcm5pbmdzKSB7XG4gICAgICAgIGxhbWJkYUxvZy53YXJuKCdQTFVHSU5fV0FSTklORycsIGBbJHt3LnNldmVyaXR5LnRvVXBwZXJDYXNlKCl9XSAke3cubWVzc2FnZX1gLCB7IHBsdWdpbjogZGF0YS5uYW1lLCB2ZXJzaW9uOiBkYXRhLnZlcnNpb24sIGNvZGU6IHcuY29kZSwgc2V2ZXJpdHk6IHcuc2V2ZXJpdHkgfSk7XG4gICAgICB9XG5cbiAgICAgIGxhbWJkYUxvZy5pbmZvKCdGRVRDSCcsICdQbHVnaW4gZmV0Y2hlZCBzdWNjZXNzZnVsbHknLCB7XG4gICAgICAgIHN0YXR1cyxcbiAgICAgICAgcGx1Z2luOiBkYXRhLm5hbWUsXG4gICAgICAgIHZlcnNpb246IGRhdGEudmVyc2lvbixcbiAgICAgICAgaWQ6IGRhdGEuaWQsXG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEF4aW9zRXJyb3IpIHtcbiAgICAgICAgaWYgKGVycm9yLmNvZGUgPT09ICdFQ09OTkFCT1JURUQnKSB7XG4gICAgICAgICAgbGFtYmRhTG9nLmVycm9yKCdGRVRDSCcsIGBQbHVnaW4gbG9va3VwIHRpbWVkIG91dCBhZnRlciAke0hBTkRMRVJfVElNRU9VVF9NU31tc2ApO1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgUGx1Z2luIGxvb2t1cCB0aW1lZCBvdXQgYWZ0ZXIgJHtIQU5ETEVSX1RJTUVPVVRfTVN9bXNgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEEgUVVPVEEgcmVmdXNhbCBpcyBub3QgdHJhbnNpZW50OiB0aGUgY291bnRlciBvbmx5IGVtcHRpZXMgd2hlbiB0aGVcbiAgICAgICAgLy8gcGVyaW9kIHJlc2V0cywgc28gcmV0cnlpbmcganVzdCBzcGVuZHMgdHdvIG1vcmUgbG9va3Vwcycgd29ydGggb2ZcbiAgICAgICAgLy8gd2FpdGluZyBhbmQgcmVwb3J0cyB0aGUgc2FtZSB0aGluZy4gRmFpbCBmYXN0IHdpdGggdGhlIHF1b3RhLCB0aGVcbiAgICAgICAgLy8gbnVtYmVycywgdGhlIHJlc2V0IGRhdGUgYW5kIHdoZXJlIHRvIHJhaXNlIGl0LCBhcyB0aGUgQ0ZOIFJlYXNvbi5cbiAgICAgICAgY29uc3QgcXVvdGFNZXNzYWdlID0gZXJyb3IucmVzcG9uc2U/LnN0YXR1cyA9PT0gNDI5XG4gICAgICAgICAgPyBkZXNjcmliZVF1b3RhRXhjZWVkZWQoZXJyb3IucmVzcG9uc2UuZGF0YSwgYmFzZVVSTClcbiAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKHF1b3RhTWVzc2FnZSkge1xuICAgICAgICAgIGxhbWJkYUxvZy5lcnJvcignRkVUQ0gnLCBxdW90YU1lc3NhZ2UpO1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGZldGNoIHBsdWdpbjogJHtxdW90YU1lc3NhZ2V9YCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXRyeWFibGUgPSBlcnJvci5yZXNwb25zZVxuICAgICAgICAgID8gUkVUUllBQkxFX1NUQVRVU0VTLmhhcyhlcnJvci5yZXNwb25zZS5zdGF0dXMpXG4gICAgICAgICAgOiBSRVRSWUFCTEVfQ09ERVMuaGFzKGVycm9yLmNvZGUgPz8gJycpO1xuICAgICAgICBpZiAoZXJyb3IucmVzcG9uc2U/LnN0YXR1cyA9PT0gNDI5KSBzZXJ2ZXJEZWxheSA9IHJldHJ5QWZ0ZXJNcyhlcnJvci5yZXNwb25zZS5oZWFkZXJzKTtcblxuICAgICAgICBjb25zdCBtc2cgPSBlcnJvci5yZXNwb25zZVxuICAgICAgICAgID8gZGVzY3JpYmVSZWZ1c2FsKGVycm9yLnJlc3BvbnNlLnN0YXR1cywgZXJyb3IucmVzcG9uc2Uuc3RhdHVzVGV4dCwgZXJyb3IucmVzcG9uc2UuZGF0YSwgcGx1Z2luRmlsdGVyKVxuICAgICAgICAgIDogZXJyb3IuY29kZSB8fCBlcnJvci5tZXNzYWdlO1xuXG4gICAgICAgIGlmIChpc0NyZWRlbnRpYWxSZWZ1c2FsKGVycm9yLnJlc3BvbnNlPy5zdGF0dXMpKSB7XG4gICAgICAgICAgbGFtYmRhTG9nLndhcm4oJ0FVVEgnLCBgQ3JlZGVudGlhbCByZWZ1c2VkOiAke21zZ31gKTtcbiAgICAgICAgICB0aHJvdyBuZXcgQ3JlZGVudGlhbFJlZnVzZWRFcnJvcihgRmFpbGVkIHRvIGZldGNoIHBsdWdpbjogJHttc2d9YCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmV0cnlhYmxlICYmIGF0dGVtcHQgPCBIQU5ETEVSX01BWF9SRVRSSUVTKSB7XG4gICAgICAgICAgbGFtYmRhTG9nLmluZm8oJ1JFVFJZJywgYFJldHJ5YWJsZSBlcnJvcjogJHttc2d9YCwgeyBhdHRlbXB0OiBhdHRlbXB0ICsgMSB9KTtcbiAgICAgICAgICBsYXN0RXJyb3IgPSBuZXcgRXJyb3IoYEZhaWxlZCB0byBmZXRjaCBwbHVnaW46ICR7bXNnfWApO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRG9uJ3QgbG9nIHRoZSB1cHN0cmVhbSBib2R5IHZlcmJhdGltIOKAlCBpdCBtYXkgY2FycnkgYSBzdGFjayB0cmFjZSxcbiAgICAgICAgLy8gYSByZXF1ZXN0IHBheWxvYWQgZWNobywgb3Igb3RoZXIgc2Vuc2l0aXZlIGRhdGEgd2Ugc2hvdWxkbid0IGVjaG9cbiAgICAgICAgLy8gaW50byBMYW1iZGEgQ2xvdWRXYXRjaCBsb2dzLiBLZWVwIGp1c3QgdGhlIGhpZ2gtbGV2ZWwgc2hhcGUuXG4gICAgICAgIGNvbnN0IHNhZmVCb2R5ID0gZXJyb3IucmVzcG9uc2U/LmRhdGEgJiYgdHlwZW9mIGVycm9yLnJlc3BvbnNlLmRhdGEgPT09ICdvYmplY3QnXG4gICAgICAgICAgPyB7IGNvZGU6IChlcnJvci5yZXNwb25zZS5kYXRhIGFzIHsgY29kZT86IHN0cmluZyB9KS5jb2RlLCBtZXNzYWdlOiAoZXJyb3IucmVzcG9uc2UuZGF0YSBhcyB7IG1lc3NhZ2U/OiBzdHJpbmcgfSkubWVzc2FnZSB9XG4gICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICAgIGxhbWJkYUxvZy5lcnJvcignRkVUQ0gnLCBtc2csIHsgcmVzcG9uc2VCb2R5OiBzYWZlQm9keSB9KTtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gZmV0Y2ggcGx1Z2luOiAke21zZ31gKTtcbiAgICAgIH1cblxuICAgICAgdGhyb3cgZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yIDogbmV3IEVycm9yKCdVbmtub3duIGVycm9yIGR1cmluZyBwbHVnaW4gZmV0Y2gnKTtcbiAgICB9XG4gIH1cblxuICB0aHJvdyBsYXN0RXJyb3IgPz8gbmV3IEVycm9yKCdGYWlsZWQgdG8gZmV0Y2ggcGx1Z2luIGFmdGVyIHJldHJpZXMnKTtcbn1cblxuLyoqXG4gKiBMb29rIHRoZSBwbHVnaW4gdXAgd2l0aCB0aGUgY2FjaGVkIGNyZWRlbnRpYWwuIE9uIGEgNDAxLzQwMyB0aGUga2V5IHdhcyBtb3N0XG4gKiBsaWtlbHkgcm90YXRlZCB1bmRlcm5lYXRoIHRoaXMgd2FybSBjb250YWluZXIgKHRva2VuLXJlbmV3IHN0b3JlcyB0aGUgbmV3IGtleVxuICogYW5kIHJldm9rZXMgdGhlIG9sZCBvbmUpLCBzbyBkcm9wIHRoZSBjYWNoZSwgcmUtcmVhZCB0aGUgc2VjcmV0IGFuZCByZXRyeSBvbmNlLlxuICovXG5hc3luYyBmdW5jdGlvbiBsb29rdXBXaXRoQ3JlZGVudGlhbFJlZnJlc2goYmFzZVVSTDogc3RyaW5nLCBwbHVnaW5GaWx0ZXI6IFBsdWdpbkZpbHRlciwgc3RlcEtleT86IHN0cmluZywgcmVxdWVzdElkPzogc3RyaW5nKTogUHJvbWlzZTxQbHVnaW4+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gYXdhaXQgZmV0Y2goY3JlYXRlKGJhc2VVUkwsIGF3YWl0IGNyZWRlbnRpYWwuZ2V0S2V5KCksIHJlcXVlc3RJZCksIGJhc2VVUkwsIHBsdWdpbkZpbHRlciwgc3RlcEtleSk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGlmICghKGVyciBpbnN0YW5jZW9mIENyZWRlbnRpYWxSZWZ1c2VkRXJyb3IpKSB0aHJvdyBlcnI7XG4gICAgY3JlZGVudGlhbC5pbnZhbGlkYXRlKCk7XG4gICAgbGFtYmRhTG9nLmluZm8oJ0FVVEgnLCAnUmUtcmVhZGluZyB0aGUgc2VydmljZS1hY2NvdW50IGtleSBmcm9tIFNlY3JldHMgTWFuYWdlciBhbmQgcmV0cnlpbmcgb25jZScpO1xuICAgIHJldHVybiBmZXRjaChjcmVhdGUoYmFzZVVSTCwgYXdhaXQgY3JlZGVudGlhbC5nZXRLZXkoKSwgcmVxdWVzdElkKSwgYmFzZVVSTCwgcGx1Z2luRmlsdGVyLCBzdGVwS2V5KTtcbiAgfVxufVxuXG4vKipcbiAqIFZhbGlkYXRlcyB0aGUgcGx1Z2luIGZpbHRlciBvYmplY3RcbiAqXG4gKiBAcGFyYW0gcGx1Z2luRmlsdGVyIC0gRmlsdGVyIHRvIHZhbGlkYXRlXG4gKiBAcmV0dXJucyB0cnVlIGlmIHZhbGlkXG4gKiBAdGhyb3dzIEVycm9yIGlmIGludmFsaWRcbiAqL1xuZnVuY3Rpb24gdmFsaWRhdGVQbHVnaW5GaWx0ZXIocGx1Z2luRmlsdGVyOiB1bmtub3duKTogcGx1Z2luRmlsdGVyIGlzIFBsdWdpbkZpbHRlciB7XG4gIGlmICghcGx1Z2luRmlsdGVyIHx8IHR5cGVvZiBwbHVnaW5GaWx0ZXIgIT09ICdvYmplY3QnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIG9yIGludmFsaWQgcGx1Z2luRmlsdGVyJyk7XG4gIH1cblxuICBjb25zdCBmaWx0ZXIgPSBwbHVnaW5GaWx0ZXIgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGlmICghZmlsdGVyLm5hbWUgJiYgIWZpbHRlci5pZCAmJiAhZmlsdGVyLnZlcnNpb24gJiYgIWZpbHRlci5vcmdJZCkge1xuICAgIHRocm93IG5ldyBFcnJvcignUGx1Z2luRmlsdGVyIG11c3QgaGF2ZSBhdCBsZWFzdCBvbmUgY3JpdGVyaW9uIChuYW1lLCBpZCwgdmVyc2lvbiwgb3Igb3JnSWQpJyk7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuLyoqXG4gKiBMYW1iZGEgaGFuZGxlciBmb3IgQ2xvdWRGb3JtYXRpb24gQ3VzdG9tIFJlc291cmNlIHRoYXQgcGVyZm9ybXMgcGx1Z2luIGxvb2t1cC5cbiAqXG4gKiBBdXRoZW50aWNhdGVzIHdpdGggdGhlIHNlcnZpY2UtYWNjb3VudCBrZXkgZnJvbSBBV1MgU2VjcmV0cyBNYW5hZ2VyIChQTEFURk9STV9TRUNSRVRfTkFNRSBlbnYgdmFyKS5cbiAqIENyZWF0ZSB0aGUgc2VjcmV0IHdpdGg6IGBwaXBlbGluZS1tYW5hZ2VyIGluZnJhIHN0b3JlLXRva2VuYFxuICpcbiAqIFJlcXVlc3QgVHlwZXM6XG4gKiAtIENyZWF0ZS9VcGRhdGU6IGZldGNoZXMgYW5kIHJldHVybnMgcGx1Z2luIGNvbmZpZ3VyYXRpb24gZnJvbSBBUElcbiAqIC0gRGVsZXRlOiBuby1vcCAoYWx3YXlzIHN1Y2NlZWRzKVxuICpcbiAqIFJlc3BvbnNlOlxuICogLSBTdWNjZXNzOiBSZXR1cm5zIGJhc2U2NC1lbmNvZGVkIHBsdWdpbiBKU09OIGluIERhdGEuUmVzdWx0VmFsdWVcbiAqIC0gRmFpbHVyZTogUmV0dXJucyBlcnJvciBtZXNzYWdlIGluIFJlYXNvblxuICpcbiAqIEBwYXJhbSBldmVudCAtIENsb3VkRm9ybWF0aW9uIGN1c3RvbSByZXNvdXJjZSBldmVudFxuICogQHBhcmFtIGNvbnRleHQgLSBMYW1iZGEgY29udGV4dDsgaXRzIGF3c1JlcXVlc3RJZCByaWRlcyB0aGUgbG9va3VwIGFzIGBYLVJlcXVlc3QtSWRgXG4gKiBAcmV0dXJucyBDbG91ZEZvcm1hdGlvbiByZXNwb25zZVxuICpcbiAqIEBleGFtcGxlXG4gKiBDdXN0b20gUmVzb3VyY2UgUHJvcGVydGllczpcbiAqIGBgYGpzb25cbiAqIHtcbiAqICAgXCJiYXNlVVJMXCI6IFwiaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb21cIixcbiAqICAgXCJwbHVnaW5GaWx0ZXJcIjoge1xuICogICAgIFwibmFtZVwiOiBcIm5vZGVqcy1idWlsZFwiLFxuICogICAgIFwidmVyc2lvblwiOiBcIjEuMC4wXCIsXG4gKiAgICAgXCJpc0FjdGl2ZVwiOiB0cnVlXG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3QgaGFuZGxlciA9IGFzeW5jIChcbiAgZXZlbnQ6IENsb3VkRm9ybWF0aW9uQ3VzdG9tUmVzb3VyY2VFdmVudCxcbiAgY29udGV4dD86IFBpY2s8Q29udGV4dCwgJ2F3c1JlcXVlc3RJZCc+LFxuKTogUHJvbWlzZTxDbG91ZEZvcm1hdGlvbkN1c3RvbVJlc291cmNlUmVzcG9uc2U+ID0+IHtcbiAgLy8gTk9URTogbmV2ZXIgbG9nIGV2ZW50LlN0YWNrSWQgaGVyZSDigJQgdGhlIENsb3VkRm9ybWF0aW9uIFN0YWNrIEFSTiBlbWJlZHMgdGhlXG4gIC8vIEFXUyBhY2NvdW50IGlkIChhcm46YXdzOmNsb3VkZm9ybWF0aW9uOjxyZWdpb24+OjxBQ0NPVU5UX0lEPjpzdGFjay/igKYpLCB3aGljaFxuICAvLyBtdXN0IG5ldmVyIGJlIHBlcnNpc3RlZCB0byBDbG91ZFdhdGNoLiByZXF1ZXN0SWQgKyBsb2dpY2FsUmVzb3VyY2VJZCBhcmVcbiAgLy8gc3VmZmljaWVudCBmb3IgY29ycmVsYXRpb24uIChTdGFja0lkIGlzIHN0aWxsIHJldHVybmVkIGluIHRoZSBDRk4gcmVzcG9uc2VcbiAgLy8gYm9keSBiZWxvdyDigJQgdGhhdCBpcyB0aGUgbWFuZGF0b3J5IENGTiBwcm90b2NvbCBmaWVsZCBhbmQgaXMgbm90IGEgbG9nLilcbiAgbGFtYmRhTG9nLmluZm8oJ1NUQVJUJywgYCR7ZXZlbnQuUmVxdWVzdFR5cGV9IHJlcXVlc3QgcmVjZWl2ZWRgLCB7XG4gICAgbG9naWNhbFJlc291cmNlSWQ6IGV2ZW50LkxvZ2ljYWxSZXNvdXJjZUlkLFxuICAgIHJlcXVlc3RJZDogZXZlbnQuUmVxdWVzdElkLFxuICB9KTtcblxuICBjb25zdCBiYXNlUmVzcG9uc2U6IFBhcnRpYWw8Q2xvdWRGb3JtYXRpb25DdXN0b21SZXNvdXJjZVJlc3BvbnNlPiA9IHtcbiAgICBTdGFja0lkOiBldmVudC5TdGFja0lkLFxuICAgIFJlcXVlc3RJZDogZXZlbnQuUmVxdWVzdElkLFxuICAgIExvZ2ljYWxSZXNvdXJjZUlkOiBldmVudC5Mb2dpY2FsUmVzb3VyY2VJZCxcbiAgICBQaHlzaWNhbFJlc291cmNlSWQ6IGV2ZW50LkxvZ2ljYWxSZXNvdXJjZUlkLFxuICB9O1xuXG4gIHRyeSB7XG4gICAgLy8gSGFuZGxlIERlbGV0ZSAtIGFsd2F5cyBzdWNjZWVkIChuby1vcClcbiAgICBpZiAoZXZlbnQuUmVxdWVzdFR5cGUgPT09ICdEZWxldGUnKSB7XG4gICAgICBsYW1iZGFMb2cuaW5mbygnREVMRVRFJywgJ05vLW9wIC0gcmV0dXJuaW5nIFNVQ0NFU1MnKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmJhc2VSZXNwb25zZSxcbiAgICAgICAgU3RhdHVzOiAnU1VDQ0VTUycsXG4gICAgICAgIFJlYXNvbjogJ0RlbGV0ZSBjb21wbGV0ZWQgKG5vLW9wKScsXG4gICAgICB9IGFzIENsb3VkRm9ybWF0aW9uQ3VzdG9tUmVzb3VyY2VSZXNwb25zZTtcbiAgICB9XG5cbiAgICAvLyBFeHRyYWN0IGFuZCB2YWxpZGF0ZSBwcm9wZXJ0aWVzXG4gICAgY29uc3QgcGx1Z2luRmlsdGVyID0gZXZlbnQuUmVzb3VyY2VQcm9wZXJ0aWVzLnBsdWdpbkZpbHRlcjtcbiAgICBjb25zdCBiYXNlVVJMID0gZXZlbnQuUmVzb3VyY2VQcm9wZXJ0aWVzLmJhc2VVUkwgfHwgSEFORExFUl9ERUZBVUxUX0JBU0VfVVJMO1xuXG4gICAgaWYgKCFiYXNlVVJMLnN0YXJ0c1dpdGgoJ2h0dHBzOi8vJykgJiYgIWJhc2VVUkwuc3RhcnRzV2l0aCgnaHR0cDovLycpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgYmFzZVVSTDogXCIke2Jhc2VVUkx9XCIg4oCUIG11c3Qgc3RhcnQgd2l0aCBodHRwOi8vIG9yIGh0dHBzOi8vYCk7XG4gICAgfVxuXG4gICAgbGFtYmRhTG9nLmluZm8oJ0NPTkZJRycsICdDb25maWd1cmF0aW9uIGxvYWRlZCcsIHsgYmFzZVVSTCwgcGx1Z2luRmlsdGVyIH0pO1xuXG4gICAgdmFsaWRhdGVQbHVnaW5GaWx0ZXIocGx1Z2luRmlsdGVyKTtcblxuICAgIGxhbWJkYUxvZy5pbmZvKCdGRVRDSCcsICdJbml0aWF0aW5nIHBsdWdpbiBsb29rdXAuLi4nKTtcbiAgICBjb25zdCBzdGVwS2V5ID0gdHlwZW9mIGV2ZW50LlJlc291cmNlUHJvcGVydGllcy5zdGVwS2V5ID09PSAnc3RyaW5nJyA/IGV2ZW50LlJlc291cmNlUHJvcGVydGllcy5zdGVwS2V5IDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IHBsdWdpbiA9IGF3YWl0IGxvb2t1cFdpdGhDcmVkZW50aWFsUmVmcmVzaChiYXNlVVJMLCBwbHVnaW5GaWx0ZXIsIHN0ZXBLZXksIGNvbnRleHQ/LmF3c1JlcXVlc3RJZCk7XG4gICAgbGFtYmRhTG9nLmluZm8oJ0ZFVENIJywgJ1BsdWdpbiByZXRyaWV2ZWQgc3VjY2Vzc2Z1bGx5Jywge1xuICAgICAgbmFtZTogcGx1Z2luLm5hbWUsXG4gICAgICB2ZXJzaW9uOiBwbHVnaW4udmVyc2lvbixcbiAgICAgIGlkOiBwbHVnaW4uaWQsXG4gICAgfSk7XG5cbiAgICAvLyBTdHJpcCBsYXJnZSBmaWVsZHMgdG8gc3RheSB3aXRoaW4gQ2xvdWRGb3JtYXRpb24ncyA0MDk2LWJ5dGUgRGF0YSBsaW1pdC5cbiAgICAvLyBDREsgY29uc3RydWN0cyBvbmx5IG5lZWQgdGhlIGZpZWxkcyB1c2VkIGJ5IGNyZWF0ZUNvZGVCdWlsZFN0ZXAoKS5cbiAgICBjb25zdCBzbGltID0ge1xuICAgICAgaWQ6IHBsdWdpbi5pZCxcbiAgICAgIG5hbWU6IHBsdWdpbi5uYW1lLFxuICAgICAgdmVyc2lvbjogcGx1Z2luLnZlcnNpb24sXG4gICAgICBwbHVnaW5UeXBlOiBwbHVnaW4ucGx1Z2luVHlwZSxcbiAgICAgIGNvbXB1dGVUeXBlOiBwbHVnaW4uY29tcHV0ZVR5cGUsXG4gICAgICBjb21tYW5kczogcGx1Z2luLmNvbW1hbmRzLFxuICAgICAgaW5zdGFsbENvbW1hbmRzOiBwbHVnaW4uaW5zdGFsbENvbW1hbmRzLFxuICAgICAgZW52OiBwbHVnaW4uZW52LFxuICAgICAgbWV0YWRhdGE6IHBsdWdpbi5tZXRhZGF0YSxcbiAgICAgIHByaW1hcnlPdXRwdXREaXJlY3Rvcnk6IHBsdWdpbi5wcmltYXJ5T3V0cHV0RGlyZWN0b3J5LFxuICAgICAgc2VjcmV0czogcGx1Z2luLnNlY3JldHMsXG4gICAgICBmYWlsdXJlQmVoYXZpb3I6IHBsdWdpbi5mYWlsdXJlQmVoYXZpb3IsXG4gICAgICB0aW1lb3V0OiBwbHVnaW4udGltZW91dCxcbiAgICB9O1xuXG4gICAgY29uc3QgZW5jb2RlZCA9IEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KHNsaW0pLCAndXRmLTgnKS50b1N0cmluZygnYmFzZTY0Jyk7XG4gICAgbGFtYmRhTG9nLmRlYnVnKCdFTkNPREUnLCAnRW5jb2RlZCBwbHVnaW4gZGF0YScsIHsgbGVuZ3RoOiBlbmNvZGVkLmxlbmd0aCB9KTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5iYXNlUmVzcG9uc2UsXG4gICAgICBTdGF0dXM6ICdTVUNDRVNTJyxcbiAgICAgIFJlYXNvbjogYFBsdWdpbiAnJHtwbHVnaW4ubmFtZX0nICh2JHtwbHVnaW4udmVyc2lvbn0pIHJldHJpZXZlZCBzdWNjZXNzZnVsbHlgLFxuICAgICAgRGF0YToge1xuICAgICAgICBSZXN1bHRWYWx1ZTogZW5jb2RlZCxcbiAgICAgIH0sXG4gICAgfSBhcyBDbG91ZEZvcm1hdGlvbkN1c3RvbVJlc291cmNlUmVzcG9uc2U7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc3QgcmVhc29uID0gZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnVW5leHBlY3RlZCBlcnJvciBvY2N1cnJlZCc7XG4gICAgbGFtYmRhTG9nLmVycm9yKCdFUlJPUicsICdIYW5kbGVyIGZhaWxlZCcsIHtcbiAgICAgIHJlYXNvbixcbiAgICAgIHN0YWNrOiBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3Iuc3RhY2sgOiB1bmRlZmluZWQsXG4gICAgfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uYmFzZVJlc3BvbnNlLFxuICAgICAgU3RhdHVzOiAnRkFJTEVEJyxcbiAgICAgIFJlYXNvbjogdHJ1bmNhdGVSZWFzb24ocmVhc29uKSxcbiAgICB9IGFzIENsb3VkRm9ybWF0aW9uQ3VzdG9tUmVzb3VyY2VSZXNwb25zZTtcbiAgfSBmaW5hbGx5IHtcbiAgICBsYW1iZGFMb2cuaW5mbygnRU5EJywgJ0N1c3RvbSByZXNvdXJjZSBleGVjdXRpb24gY29tcGxldGVkJyk7XG4gIH1cbn07XG4iXX0=
|
|
388
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLWxvb2t1cC1oYW5kbGVyLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGFuZGxlcnMvcGx1Z2luLWxvb2t1cC1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUc5QixPQUFPLEtBQUssRUFBRSxFQUFzQixVQUFVLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDOUQsbUZBQW1GO0FBQ25GLG1GQUFtRjtBQUNuRixxRkFBcUY7QUFDckYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekYsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsc0JBQXNCLEVBQ3RCLDBCQUEwQixFQUMxQix3QkFBd0IsR0FDekIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLG1CQUFtQixFQUFFLFlBQVksRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQy9HLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRWxFOzs7R0FHRztBQUNILFNBQVMsUUFBUSxDQUFDLEtBQWEsRUFBRSxHQUFXLEVBQUUsT0FBZSxFQUFFLElBQWM7SUFDM0UsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDekYsUUFBUSxLQUFLLEVBQUUsQ0FBQztRQUNkLEtBQUssT0FBTztZQUFFLE9BQU8s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QUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUU3RSxPQUFPO1lBQ0wsR0FBRyxZQUFZO1lBQ2YsTUFBTSxFQUFFLFNBQVM7WUFDakIsTUFBTSxFQUFFLFdBQVcsTUFBTSxDQUFDLElBQUksT0FBTyxNQUFNLENBQUMsT0FBTywwQkFBMEI7WUFDN0UsSUFBSSxFQUFFO2dCQUNKLFdBQVcsRUFBRSxPQUFPO2FBQ3JCO1NBQ3NDLENBQUM7SUFDNUMsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQywyQkFBMkIsQ0FBQztRQUNwRixTQUFTLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRTtZQUN6QyxNQUFNO1lBQ04sS0FBSyxFQUFFLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVM7U0FDeEQsQ0FBQyxDQUFDO1FBRUgsT0FBTztZQUNMLEdBQUcsWUFBWTtZQUNmLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLE1BQU0sRUFBRSxjQUFjLENBQUMsTUFBTSxDQUFDO1NBQ1MsQ0FBQztJQUM1QyxDQUFDO1lBQVMsQ0FBQztRQUNULFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLHFDQUFxQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztBQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyBBZ2VudCB9IGZyb20gJ2h0dHBzJztcbmltcG9ydCB0eXBlIHsgUGx1Z2luRmlsdGVyLCBQbHVnaW4gfSBmcm9tICdAcGlwZWxpbmUtYnVpbGRlci9waXBlbGluZS1kYXRhJztcbmltcG9ydCB0eXBlIHsgQ2xvdWRGb3JtYXRpb25DdXN0b21SZXNvdXJjZUV2ZW50LCBDbG91ZEZvcm1hdGlvbkN1c3RvbVJlc291cmNlUmVzcG9uc2UsIENvbnRleHQgfSBmcm9tICdhd3MtbGFtYmRhJztcbmltcG9ydCBheGlvcywgeyB0eXBlIEF4aW9zSW5zdGFuY2UsIEF4aW9zRXJyb3IgfSBmcm9tICdheGlvcyc7XG4vLyBJbXBvcnQgdGhlIGRlcGVuZGVuY3ktZnJlZSBsZWFmLCBOT1QgYGFwcC1jb25maWcuanNgL2BDb3JlQ29uc3RhbnRzYDogdGhlIGxhdHRlclxuLy8gdHJhbnNpdGl2ZWx5IHB1bGxzIGluZnJhc3RydWN0dXJlLWNvbmZpZyDihpIgYXdzLWNkay1saWIsIHdoaWNoIGVzYnVpbGQgdGhlbiB0cmllc1xuLy8gdG8gYnVuZGxlIGludG8gdGhpcyBMYW1iZGEgKGh1bmRyZWRzIG9mIE1CIOKGkiBPT00vU0lHS0lMTCBkdXJpbmcgY29sZC1zdGFydCBzeW50aCkuXG5pbXBvcnQgeyBjcmVhdGVQbGF0Zm9ybUNyZWRlbnRpYWwsIGlzQ3JlZGVudGlhbFJlZnVzYWwgfSBmcm9tICcuL3BsYXRmb3JtLWNyZWRlbnRpYWwuanMnO1xuaW1wb3J0IHtcbiAgSEFORExFUl9USU1FT1VUX01TLFxuICBIQU5ETEVSX01BWF9SRVRSSUVTLFxuICBIQU5ETEVSX1JFVFJZX0RFTEFZX01TLFxuICBIQU5ETEVSX1JFVFJZX0FGVEVSX01BWF9NUyxcbiAgSEFORExFUl9ERUZBVUxUX0JBU0VfVVJMLFxufSBmcm9tICcuLi9jb25maWcvaGFuZGxlci1jb25zdGFudHMuanMnO1xuaW1wb3J0IHsgY29ycmVsYXRpb25IZWFkZXJzIH0gZnJvbSAnLi4vY29yZS9hdWRpdC1jb3JyZWxhdGlvbi5qcyc7XG5pbXBvcnQgeyBwbGF0Zm9ybUNhTGlzdCB9IGZyb20gJy4uL2NvcmUvcGxhdGZvcm0tdGxzLmpzJztcbmltcG9ydCB7IGV4YWN0UGluTm90Rm91bmRNZXNzYWdlLCBsb29rdXBOb3RGb3VuZFN0YXRlLCB1bndyYXBMb29rdXAgfSBmcm9tICcuLi9jb3JlL3BsdWdpbi1sb29rdXAtZW52ZWxvcGUuanMnO1xuaW1wb3J0IHsgZGVzY3JpYmVRdW90YUV4Y2VlZGVkIH0gZnJvbSAnLi4vY29yZS9xdW90YS1leGNlZWRlZC5qcyc7XG5cbi8qKlxuICogU3RydWN0dXJlZCBsb2dnZXIgZm9yIExhbWJkYSAob3V0cHV0cyBKU09OIHRvIENsb3VkV2F0Y2gpLlxuICogRGVidWcgbWVzc2FnZXMgb25seSBlbWl0dGVkIHdoZW4gTE9HX0xFVkVMPWRlYnVnLlxuICovXG5mdW5jdGlvbiBsb2dFbnRyeShsZXZlbDogc3RyaW5nLCB0YWc6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nLCBkYXRhPzogdW5rbm93bikge1xuICBjb25zdCBsaW5lID0gSlNPTi5zdHJpbmdpZnkoeyBsZXZlbCwgdGFnLCBtZXNzYWdlLCBkYXRhLCB0czogbmV3IERhdGUoKS50b0lTT1N0cmluZygpIH0pO1xuICBzd2l0Y2ggKGxldmVsKSB7XG4gICAgY2FzZSAnRVJST1InOiBjb25zb2xlLmVycm9yKGxpbmUpOyBicmVhaztcbiAgICBjYXNlICdXQVJOJzogY29uc29sZS53YXJuKGxpbmUpOyBicmVhaztcbiAgICBjYXNlICdERUJVRyc6IGlmIChwcm9jZXNzLmVudi5MT0dfTEVWRUwgPT09ICdkZWJ1ZycpIGNvbnNvbGUuZGVidWcobGluZSk7IGJyZWFrO1xuICAgIGRlZmF1bHQ6IGNvbnNvbGUubG9nKGxpbmUpO1xuICB9XG59XG5cbmNvbnN0IGxhbWJkYUxvZyA9IHtcbiAgaW5mbzogKHRhZzogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcsIGRhdGE/OiB1bmtub3duKSA9PiBsb2dFbnRyeSgnSU5GTycsIHRhZywgbWVzc2FnZSwgZGF0YSksXG4gIGVycm9yOiAodGFnOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZywgZGF0YT86IHVua25vd24pID0+IGxvZ0VudHJ5KCdFUlJPUicsIHRhZywgbWVzc2FnZSwgZGF0YSksXG4gIHdhcm46ICh0YWc6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nLCBkYXRhPzogdW5rbm93bikgPT4gbG9nRW50cnkoJ1dBUk4nLCB0YWcsIG1lc3NhZ2UsIGRhdGEpLFxuICBkZWJ1ZzogKHRhZzogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcsIGRhdGE/OiB1bmtub3duKSA9PiBsb2dFbnRyeSgnREVCVUcnLCB0YWcsIG1lc3NhZ2UsIGRhdGEpLFxufTtcblxuY29uc3QgUkVUUllBQkxFX1NUQVRVU0VTID0gbmV3IFNldChbNDI5LCA1MDIsIDUwMywgNTA0XSk7XG5jb25zdCBSRVRSWUFCTEVfQ09ERVMgPSBuZXcgU2V0KFsnRUNPTk5SRVNFVCcsICdFQ09OTlJFRlVTRUQnLCAnRVRJTUVET1VUJ10pO1xuXG5mdW5jdGlvbiBzbGVlcChtczogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgbXMpKTtcbn1cblxuLyoqXG4gKiBBIHBsYWluIDQyOSdzIGBSZXRyeS1BZnRlcmAgKGRlbHRhLXNlY29uZHMpIGluIG1zLCBjbGlwcGVkIHRvXG4gKiB7QGxpbmsgSEFORExFUl9SRVRSWV9BRlRFUl9NQVhfTVN9OyBgdW5kZWZpbmVkYCB3aGVuIGFic2VudCBvciB1bnBhcnNlYWJsZSAoYW5cbiAqIEhUVFAtZGF0ZSBpcyBub3Qgd29ydGggcGFyc2luZyBmb3IgYSB3YWl0IHRoaXMgc2hvcnQg4oCUIHRoZSBiYWNrb2ZmIGFwcGxpZXMpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmV0cnlBZnRlck1zKGhlYWRlcnM6IHVua25vd24pOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICBjb25zdCByYXcgPSAoaGVhZGVycyBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZCk/LlsncmV0cnktYWZ0ZXInXTtcbiAgY29uc3Qgc2Vjb25kcyA9IHR5cGVvZiByYXcgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiByYXcgPT09ICdudW1iZXInID8gTnVtYmVyKHJhdykgOiBOYU47XG4gIGlmICghTnVtYmVyLmlzRmluaXRlKHNlY29uZHMpIHx8IHNlY29uZHMgPCAwKSByZXR1cm4gdW5kZWZpbmVkO1xuICByZXR1cm4gTWF0aC5taW4oc2Vjb25kcyAqIDEwMDAsIEhBTkRMRVJfUkVUUllfQUZURVJfTUFYX01TKTtcbn1cblxuLyoqIFBsYXRmb3JtIHNlY3JldCBuYW1lIOKAlCBpbmplY3RlZCBhcyBQTEFURk9STV9TRUNSRVRfTkFNRSBlbnYgdmFyIGJ5IFBsdWdpbkxvb2t1cCBjb25zdHJ1Y3QuICovXG5jb25zdCBQTEFURk9STV9TRUNSRVRfTkFNRSA9IHByb2Nlc3MuZW52LlBMQVRGT1JNX1NFQ1JFVF9OQU1FO1xuaWYgKCFQTEFURk9STV9TRUNSRVRfTkFNRSkge1xuICB0aHJvdyBuZXcgRXJyb3IoJ1BMQVRGT1JNX1NFQ1JFVF9OQU1FIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIHJlcXVpcmVkJyk7XG59XG5cbi8qKlxuICogVGhlIHNlcnZpY2UtYWNjb3VudCBrZXkgKGBwYl9zYV/igKZgKSBmcm9tIFNlY3JldHMgTWFuYWdlciwgY2FjaGVkIGZvciB0aGUgd2FybVxuICogY29udGFpbmVyLiBUaGUgcGx1Z2luIEFQSSB0cmFkZXMgaXQgZm9yIGEgc2hvcnQtbGl2ZWQgSldUIGl0c2VsZiwgc28gdGhlIGtleVxuICogZ29lcyBvdXQgYXMgdGhlIEJlYXJlciBjcmVkZW50aWFsLiBDcmVhdGUgdGhlIHNlY3JldCB3aXRoXG4gKiBgcGlwZWxpbmUtbWFuYWdlciBpbmZyYSBzdG9yZS10b2tlbmAuXG4gKi9cbmNvbnN0IGNyZWRlbnRpYWwgPSBjcmVhdGVQbGF0Zm9ybUNyZWRlbnRpYWwoeyBzZWNyZXROYW1lOiBQTEFURk9STV9TRUNSRVRfTkFNRSB9KTtcblxuLyoqIEBpbnRlcm5hbCBSZXNldCBjYWNoZWQgY3JlZGVudGlhbCAoZm9yIHRlc3Rpbmcgb25seSkuICovXG5leHBvcnQgZnVuY3Rpb24gX3Jlc2V0Q3JlZGVudGlhbHNDYWNoZSgpOiB2b2lkIHsgY3JlZGVudGlhbC5yZXNldCgpOyB9XG5cbi8qKiBUaGUgQVBJIHJlZnVzZWQgdGhlIGNyZWRlbnRpYWwgKDQwMS80MDMpIOKAlCB0aGUgY2FsbGVyIG1heSByZWZyZXNoIGl0IGFuZCByZXRyeSBvbmNlLiAqL1xuY2xhc3MgQ3JlZGVudGlhbFJlZnVzZWRFcnJvciBleHRlbmRzIEVycm9yIHt9XG5cbi8qKlxuICogQ2xvdWRGb3JtYXRpb24gY2FwcyBhIGN1c3RvbSByZXNvdXJjZSdzIGBSZWFzb25gICh0aGUgcmVzcG9uc2UgYm9keSBhcyBhXG4gKiB3aG9sZSBtdXN0IHN0YXkgdW5kZXIgNDA5NiBieXRlcywgYW5kIHRoZSByZWFzb24gaXMgd2hhdCB0aGUgY29uc29sZSBhbmRcbiAqIGBjZGsgZGVwbG95YCBwcmludCkuIExlYXZlIGhlYWRyb29tIGZvciB0aGUgb3RoZXIgcmVzcG9uc2UgZmllbGRzLlxuICovXG5jb25zdCBNQVhfUkVBU09OX0JZVEVTID0gMzUwMDtcblxuLyoqIFRydW5jYXRlIHRvIGBtYXhgIFVURi04IGJ5dGVzIG9uIGEgY2hhcmFjdGVyIGJvdW5kYXJ5LCBtYXJraW5nIHRoZSBjdXQuICovXG5leHBvcnQgZnVuY3Rpb24gdHJ1bmNhdGVSZWFzb24ocmVhc29uOiBzdHJpbmcsIG1heCA9IE1BWF9SRUFTT05fQllURVMpOiBzdHJpbmcge1xuICBpZiAoQnVmZmVyLmJ5dGVMZW5ndGgocmVhc29uLCAndXRmOCcpIDw9IG1heCkgcmV0dXJuIHJlYXNvbjtcbiAgY29uc3QgbWFya2VyID0gJyDigKZbdHJ1bmNhdGVkXSc7XG4gIGxldCBvdXQgPSByZWFzb24uc2xpY2UoMCwgbWF4KTtcbiAgd2hpbGUgKEJ1ZmZlci5ieXRlTGVuZ3RoKG91dCArIG1hcmtlciwgJ3V0ZjgnKSA+IG1heCkgb3V0ID0gb3V0LnNsaWNlKDAsIC0xKTtcbiAgcmV0dXJuIG91dCArIG1hcmtlcjtcbn1cblxuLyoqXG4gKiBUaGUgcmVmdXNhbCBhcyB0aGUgcGx1Z2luIHNlcnZpY2Ugd3JvdGUgaXQg4oCUIGBjb2RlYCwgYG1lc3NhZ2VgIGFuZCBhIGNvbXBhY3RcbiAqIHJlbmRlcmluZyBvZiBgZGV0YWlsc2AgKHRoZSBibG9ja2luZyBDVkVzLCB0aGUgcG9saWN5IHRoYXQgcmVmdXNlZCBpdOKApikg4oCUXG4gKiBzbyB0aGUgQ2xvdWRGb3JtYXRpb24gZmFpbHVyZSBzYXlzIFdIWSwgbm90IGp1c3QgXCJBUEkgZXJyb3IgNDA5OiBDb25mbGljdFwiLlxuICogT25seSB0aG9zZSB0aHJlZSBmaWVsZHMgYXJlIHJlYWQ6IHRoZSBib2R5IGlzIG5ldmVyIGVjaG9lZCB2ZXJiYXRpbS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlc2NyaWJlUmVmdXNhbChzdGF0dXM6IG51bWJlciwgc3RhdHVzVGV4dDogc3RyaW5nLCBib2R5OiB1bmtub3duLCBmaWx0ZXI/OiBQbHVnaW5GaWx0ZXIpOiBzdHJpbmcge1xuICBjb25zdCBkYXRhID0gYm9keSAmJiB0eXBlb2YgYm9keSA9PT0gJ29iamVjdCcgPyBib2R5IGFzIHsgY29kZT86IHVua25vd247IG1lc3NhZ2U/OiB1bmtub3duOyBkZXRhaWxzPzogdW5rbm93biB9IDoge307XG4gIGNvbnN0IGNvZGUgPSB0eXBlb2YgZGF0YS5jb2RlID09PSAnc3RyaW5nJyA/IGRhdGEuY29kZSA6IHVuZGVmaW5lZDtcbiAgY29uc3QgcGluID0gdHlwZW9mIGZpbHRlcj8udmVyc2lvbiA9PT0gJ3N0cmluZycgJiYgL15cXGQrXFwuXFxkK1xcLlxcZCsoLVswLTlBLVphLXouLV0rKT8kLy50ZXN0KGZpbHRlci52ZXJzaW9uKSA/IGZpbHRlci52ZXJzaW9uIDogdW5kZWZpbmVkO1xuICAvLyBBbiBleGFjdCBwaW4gdGhhdCBkb2VzIG5vdCByZXNvbHZlOiBwaHJhc2UgaXQgZnJvbSBkZXRhaWxzLnN0YXRlLCBhcyB0aGUgQ0xJIGRvZXMuXG4gIGlmIChzdGF0dXMgPT09IDQwNCAmJiBwaW4gJiYgdHlwZW9mIGZpbHRlcj8ubmFtZSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gYCR7Y29kZSA/PyAnTk9UX0ZPVU5EJ306ICR7ZXhhY3RQaW5Ob3RGb3VuZE1lc3NhZ2UoZmlsdGVyLm5hbWUsIHBpbiwgbG9va3VwTm90Rm91bmRTdGF0ZShib2R5KSl9YDtcbiAgfVxuICBjb25zdCBtZXNzYWdlID0gdHlwZW9mIGRhdGEubWVzc2FnZSA9PT0gJ3N0cmluZycgJiYgZGF0YS5tZXNzYWdlLmxlbmd0aCA+IDAgPyBkYXRhLm1lc3NhZ2UgOiBgQVBJIGVycm9yICR7c3RhdHVzfTogJHtzdGF0dXNUZXh0fWA7XG4gIGxldCBkZXRhaWxzID0gJyc7XG4gIGlmIChkYXRhLmRldGFpbHMgIT09IHVuZGVmaW5lZCAmJiBkYXRhLmRldGFpbHMgIT09IG51bGwpIHtcbiAgICB0cnkge1xuICAgICAgZGV0YWlscyA9IGAg4oCUIGRldGFpbHM6ICR7SlNPTi5zdHJpbmdpZnkoZGF0YS5kZXRhaWxzKX1gO1xuICAgIH0gY2F0Y2gge1xuICAgICAgZGV0YWlscyA9ICcnO1xuICAgIH1cbiAgfVxuICByZXR1cm4gYCR7Y29kZSA/IGAke2NvZGV9OiBgIDogJyd9JHttZXNzYWdlfSR7ZGV0YWlsc31gO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBwcmUtY29uZmlndXJlZCBBeGlvcyBpbnN0YW5jZSBmb3IgQVBJIHJlcXVlc3RzLlxuICpcbiAqIEBwYXJhbSBiYXNlVVJMIC0gQmFzZSBVUkwgb2YgdGhlIHRhcmdldCBBUElcbiAqIEBwYXJhbSBrZXkgLSBzZXJ2aWNlLWFjY291bnQga2V5IHNlbnQgYXMgdGhlIEJlYXJlciBjcmVkZW50aWFsXG4gKiBAcGFyYW0gcmVxdWVzdElkIC0gdGhpcyBMYW1iZGEgaW52b2NhdGlvbidzIGF3c1JlcXVlc3RJZCwgc2VudCBhcyBgWC1SZXF1ZXN0LUlkYFxuICogICBzbyB0aGUgcGx1Z2luIHNlcnZpY2UncyBhdWRpdCByb3cgam9pbnMgYmFjayB0byB0aGlzIGludm9jYXRpb24ncyBsb2dcbiAqIEByZXR1cm5zIENvbmZpZ3VyZWQgQXhpb3MgaW5zdGFuY2VcbiAqL1xuZnVuY3Rpb24gY3JlYXRlKGJhc2VVUkw6IHN0cmluZywga2V5OiBzdHJpbmcsIHJlcXVlc3RJZD86IHN0cmluZyk6IEF4aW9zSW5zdGFuY2Uge1xuICAvLyBBIHByaXZhdGUtQ0EgcGxhdGZvcm0gaXMgVkVSSUZJRUQgYWdhaW5zdCBQTEFURk9STV9DQV9CVU5ETEUgKHNldCBieSB0aGVcbiAgLy8gUGx1Z2luTG9va3VwIGNvbnN0cnVjdCB3aGVuIHRoZSBzeW50aCBoYWQgb25lKTsgb3RoZXJ3aXNlIE5vZGUncyBkZWZhdWx0IHN0b3JlLlxuICBjb25zdCBjYSA9IHBsYXRmb3JtQ2FMaXN0KCk7XG4gIHJldHVybiBheGlvcy5jcmVhdGUoe1xuICAgIGJhc2VVUkwsXG4gICAgdGltZW91dDogSEFORExFUl9USU1FT1VUX01TLFxuICAgIC4uLihjYSAmJiB7IGh0dHBzQWdlbnQ6IG5ldyBBZ2VudCh7IGNhIH0pIH0pLFxuICAgIGhlYWRlcnM6IHtcbiAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAnQXV0aG9yaXphdGlvbic6IGBCZWFyZXIgJHtrZXl9YCxcbiAgICAgIC4uLmNvcnJlbGF0aW9uSGVhZGVycyh7IHJlcXVlc3RJZCB9KSxcbiAgICB9LFxuICB9KTtcbn1cblxuLyoqXG4gKiBGZXRjaGVzIHBsdWdpbiBjb25maWd1cmF0aW9uIGZyb20gdGhlIGV4dGVybmFsIEFQSSB3aXRoIHJldHJ5IGxvZ2ljLlxuICogUmV0cmllcyBvbiB0cmFuc2llbnQgZmFpbHVyZXMgKDQyOSwgNTAyLCA1MDMsIDUwNCwgbmV0d29yayBlcnJvcnMpXG4gKiB3aXRoIGV4cG9uZW50aWFsIGJhY2tvZmYuXG4gKlxuICogQHBhcmFtIGFwaSAtIENvbmZpZ3VyZWQgQXhpb3MgaW5zdGFuY2VcbiAqIEBwYXJhbSBiYXNlVVJMIC0gVGhlIHBsYXRmb3JtIFVSTCBgYXBpYCB0YXJnZXRzIChwcmVmaXhlcyBhIHF1b3RhIHJlZnVzYWwncyB1cGdyYWRlIHBhdGgpXG4gKiBAcGFyYW0gcGx1Z2luRmlsdGVyIC0gRmlsdGVyIGNyaXRlcmlhIGZvciB0aGUgcGx1Z2luIGxvb2t1cFxuICogQHJldHVybnMgVGhlIHBsdWdpbiBkYXRhIHJldHVybmVkIGJ5IHRoZSBBUElcbiAqIEB0aHJvd3MgRXJyb3Igb24gcGVyc2lzdGVudCBmYWlsdXJlLCB0aW1lb3V0IG9yIGludmFsaWQgcmVzcG9uc2VcbiAqL1xuYXN5bmMgZnVuY3Rpb24gZmV0Y2goYXBpOiBBeGlvc0luc3RhbmNlLCBiYXNlVVJMOiBzdHJpbmcsIHBsdWdpbkZpbHRlcjogUGx1Z2luRmlsdGVyLCBzdGVwS2V5Pzogc3RyaW5nKTogUHJvbWlzZTxQbHVnaW4+IHtcbiAgbGFtYmRhTG9nLmRlYnVnKCdGRVRDSCcsICdTdGFydGluZyBwbHVnaW4gZmV0Y2gnLCB7IGZpbHRlcjogcGx1Z2luRmlsdGVyIH0pO1xuXG4gIGxldCBsYXN0RXJyb3I6IEVycm9yIHwgdW5kZWZpbmVkO1xuICAvLyBBIHBsYWluIDQyOSdzIFJldHJ5LUFmdGVyLCBob25vdXJlZCBvbiB0aGUgbmV4dCBhdHRlbXB0IHdoZW4gbG9uZ2VyIHRoYW4gdGhlIGJhY2tvZmYuXG4gIGxldCBzZXJ2ZXJEZWxheTogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIGZvciAobGV0IGF0dGVtcHQgPSAwOyBhdHRlbXB0IDw9IEhBTkRMRVJfTUFYX1JFVFJJRVM7IGF0dGVtcHQrKykge1xuICAgIGlmIChhdHRlbXB0ID4gMCkge1xuICAgICAgY29uc3QgZGVsYXkgPSBNYXRoLm1heChIQU5ETEVSX1JFVFJZX0RFTEFZX01TICogTWF0aC5wb3coMiwgYXR0ZW1wdCAtIDEpLCBzZXJ2ZXJEZWxheSA/PyAwKTtcbiAgICAgIHNlcnZlckRlbGF5ID0gdW5kZWZpbmVkO1xuICAgICAgbGFtYmRhTG9nLmluZm8oJ1JFVFJZJywgYEF0dGVtcHQgJHthdHRlbXB0ICsgMX0vJHtIQU5ETEVSX01BWF9SRVRSSUVTICsgMX0gYWZ0ZXIgJHtkZWxheX1tc2ApO1xuICAgICAgYXdhaXQgc2xlZXAoZGVsYXkpO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICAvLyBDb250cmFjdCBDMTogd2l0aCBhIGtub3duIHBpcGVsaW5lICsgc3RlcCwgdGhlIHBsdWdpbiBzZXJ2aWNlIHJlY29yZHNcbiAgICAgIC8vIHRoZSB3YXJuaW5ncyBpdCByZXR1cm5zIGFnYWluc3QgdGhlbSAobm90IG9ubHkgdGhpcyBMYW1iZGEncyBsb2cpLlxuICAgICAgY29uc3QgcGlwZWxpbmVJZCA9IHByb2Nlc3MuZW52LlBJUEVMSU5FX0lEO1xuICAgICAgY29uc3QgeyBkYXRhOiBib2R5LCBzdGF0dXMgfSA9IGF3YWl0IGFwaS5wb3N0PHVua25vd24+KCcvYXBpL3BsdWdpbnMvbG9va3VwJywge1xuICAgICAgICBmaWx0ZXI6IHBsdWdpbkZpbHRlcixcbiAgICAgICAgLi4uKHBpcGVsaW5lSWQgJiYgc3RlcEtleSA/IHsgY29udGV4dDogeyBwaXBlbGluZUlkLCBzdGVwS2V5czogW3N0ZXBLZXldIH0gfSA6IHt9KSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCB7IHBsdWdpbjogZGF0YSwgd2FybmluZ3MgfSA9IHVud3JhcExvb2t1cChib2R5KTtcbiAgICAgIGlmICghZGF0YSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0VtcHR5IHJlc3BvbnNlIGRhdGEgZnJvbSBBUEknKTtcbiAgICAgIH1cbiAgICAgIC8vIEdyYWRlZCB3YXJuaW5ncyAobGlmZWN5Y2xlLCB2dWxuZXJhYmlsaXR5LCBjb21wbGlhbmNlKSDigJQgc3VyZmFjZWQgaW4gdGhlXG4gICAgICAvLyBkZXBsb3kgbG9nOyB0aGUgbG9va3VwIHN0aWxsIHN1Y2NlZWRzLiBWdWxuZXJhYmlsaXR5IHN0YXRlIG5ldmVyIGZhaWxzIGFcbiAgICAgIC8vIGRlcGxveTogaXQgaXMgcmVwb3J0ZWQgKGFuZCwgd2l0aCBjb250ZXh0LCByZWNvcmRlZCBzZXJ2ZXItc2lkZSkuXG4gICAgICBmb3IgKGNvbnN0IHcgb2Ygd2FybmluZ3MpIHtcbiAgICAgICAgbGFtYmRhTG9nLndhcm4oJ1BMVUdJTl9XQVJOSU5HJywgYFske3cuc2V2ZXJpdHkudG9VcHBlckNhc2UoKX1dICR7dy5tZXNzYWdlfWAsIHsgcGx1Z2luOiBkYXRhLm5hbWUsIHZlcnNpb246IGRhdGEudmVyc2lvbiwgY29kZTogdy5jb2RlLCBzZXZlcml0eTogdy5zZXZlcml0eSB9KTtcbiAgICAgIH1cblxuICAgICAgbGFtYmRhTG9nLmluZm8oJ0ZFVENIJywgJ1BsdWdpbiBmZXRjaGVkIHN1Y2Nlc3NmdWxseScsIHtcbiAgICAgICAgc3RhdHVzLFxuICAgICAgICBwbHVnaW46IGRhdGEubmFtZSxcbiAgICAgICAgdmVyc2lvbjogZGF0YS52ZXJzaW9uLFxuICAgICAgICBpZDogZGF0YS5pZCxcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgQXhpb3NFcnJvcikge1xuICAgICAgICBpZiAoZXJyb3IuY29kZSA9PT0gJ0VDT05OQUJPUlRFRCcpIHtcbiAgICAgICAgICBsYW1iZGFMb2cuZXJyb3IoJ0ZFVENIJywgYFBsdWdpbiBsb29rdXAgdGltZWQgb3V0IGFmdGVyICR7SEFORExFUl9USU1FT1VUX01TfW1zYCk7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQbHVnaW4gbG9va3VwIHRpbWVkIG91dCBhZnRlciAke0hBTkRMRVJfVElNRU9VVF9NU31tc2ApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQSBRVU9UQSByZWZ1c2FsIGlzIG5vdCB0cmFuc2llbnQ6IHRoZSBjb3VudGVyIG9ubHkgZW1wdGllcyB3aGVuIHRoZVxuICAgICAgICAvLyBwZXJpb2QgcmVzZXRzLCBzbyByZXRyeWluZyBqdXN0IHNwZW5kcyB0d28gbW9yZSBsb29rdXBzJyB3b3J0aCBvZlxuICAgICAgICAvLyB3YWl0aW5nIGFuZCByZXBvcnRzIHRoZSBzYW1lIHRoaW5nLiBGYWlsIGZhc3Qgd2l0aCB0aGUgcXVvdGEsIHRoZVxuICAgICAgICAvLyBudW1iZXJzLCB0aGUgcmVzZXQgZGF0ZSBhbmQgd2hlcmUgdG8gcmFpc2UgaXQsIGFzIHRoZSBDRk4gUmVhc29uLlxuICAgICAgICBjb25zdCBxdW90YU1lc3NhZ2UgPSBlcnJvci5yZXNwb25zZT8uc3RhdHVzID09PSA0MjlcbiAgICAgICAgICA/IGRlc2NyaWJlUXVvdGFFeGNlZWRlZChlcnJvci5yZXNwb25zZS5kYXRhLCBiYXNlVVJMKVxuICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgICBpZiAocXVvdGFNZXNzYWdlKSB7XG4gICAgICAgICAgbGFtYmRhTG9nLmVycm9yKCdGRVRDSCcsIHF1b3RhTWVzc2FnZSk7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gZmV0Y2ggcGx1Z2luOiAke3F1b3RhTWVzc2FnZX1gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJldHJ5YWJsZSA9IGVycm9yLnJlc3BvbnNlXG4gICAgICAgICAgPyBSRVRSWUFCTEVfU1RBVFVTRVMuaGFzKGVycm9yLnJlc3BvbnNlLnN0YXR1cylcbiAgICAgICAgICA6IFJFVFJZQUJMRV9DT0RFUy5oYXMoZXJyb3IuY29kZSA/PyAnJyk7XG4gICAgICAgIGlmIChlcnJvci5yZXNwb25zZT8uc3RhdHVzID09PSA0MjkpIHNlcnZlckRlbGF5ID0gcmV0cnlBZnRlck1zKGVycm9yLnJlc3BvbnNlLmhlYWRlcnMpO1xuXG4gICAgICAgIGNvbnN0IG1zZyA9IGVycm9yLnJlc3BvbnNlXG4gICAgICAgICAgPyBkZXNjcmliZVJlZnVzYWwoZXJyb3IucmVzcG9uc2Uuc3RhdHVzLCBlcnJvci5yZXNwb25zZS5zdGF0dXNUZXh0LCBlcnJvci5yZXNwb25zZS5kYXRhLCBwbHVnaW5GaWx0ZXIpXG4gICAgICAgICAgOiBlcnJvci5jb2RlIHx8IGVycm9yLm1lc3NhZ2U7XG5cbiAgICAgICAgaWYgKGlzQ3JlZGVudGlhbFJlZnVzYWwoZXJyb3IucmVzcG9uc2U/LnN0YXR1cykpIHtcbiAgICAgICAgICBsYW1iZGFMb2cud2FybignQVVUSCcsIGBDcmVkZW50aWFsIHJlZnVzZWQ6ICR7bXNnfWApO1xuICAgICAgICAgIHRocm93IG5ldyBDcmVkZW50aWFsUmVmdXNlZEVycm9yKGBGYWlsZWQgdG8gZmV0Y2ggcGx1Z2luOiAke21zZ31gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyZXRyeWFibGUgJiYgYXR0ZW1wdCA8IEhBTkRMRVJfTUFYX1JFVFJJRVMpIHtcbiAgICAgICAgICBsYW1iZGFMb2cuaW5mbygnUkVUUlknLCBgUmV0cnlhYmxlIGVycm9yOiAke21zZ31gLCB7IGF0dGVtcHQ6IGF0dGVtcHQgKyAxIH0pO1xuICAgICAgICAgIGxhc3RFcnJvciA9IG5ldyBFcnJvcihgRmFpbGVkIHRvIGZldGNoIHBsdWdpbjogJHttc2d9YCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBEb24ndCBsb2cgdGhlIHVwc3RyZWFtIGJvZHkgdmVyYmF0aW0g4oCUIGl0IG1heSBjYXJyeSBhIHN0YWNrIHRyYWNlLFxuICAgICAgICAvLyBhIHJlcXVlc3QgcGF5bG9hZCBlY2hvLCBvciBvdGhlciBzZW5zaXRpdmUgZGF0YSB3ZSBzaG91bGRuJ3QgZWNob1xuICAgICAgICAvLyBpbnRvIExhbWJkYSBDbG91ZFdhdGNoIGxvZ3MuIEtlZXAganVzdCB0aGUgaGlnaC1sZXZlbCBzaGFwZS5cbiAgICAgICAgY29uc3Qgc2FmZUJvZHkgPSBlcnJvci5yZXNwb25zZT8uZGF0YSAmJiB0eXBlb2YgZXJyb3IucmVzcG9uc2UuZGF0YSA9PT0gJ29iamVjdCdcbiAgICAgICAgICA/IHsgY29kZTogKGVycm9yLnJlc3BvbnNlLmRhdGEgYXMgeyBjb2RlPzogc3RyaW5nIH0pLmNvZGUsIG1lc3NhZ2U6IChlcnJvci5yZXNwb25zZS5kYXRhIGFzIHsgbWVzc2FnZT86IHN0cmluZyB9KS5tZXNzYWdlIH1cbiAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgbGFtYmRhTG9nLmVycm9yKCdGRVRDSCcsIG1zZywgeyByZXNwb25zZUJvZHk6IHNhZmVCb2R5IH0pO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBmZXRjaCBwbHVnaW46ICR7bXNnfWApO1xuICAgICAgfVxuXG4gICAgICB0aHJvdyBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IgOiBuZXcgRXJyb3IoJ1Vua25vd24gZXJyb3IgZHVyaW5nIHBsdWdpbiBmZXRjaCcpO1xuICAgIH1cbiAgfVxuXG4gIHRocm93IGxhc3RFcnJvciA/PyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBmZXRjaCBwbHVnaW4gYWZ0ZXIgcmV0cmllcycpO1xufVxuXG4vKipcbiAqIExvb2sgdGhlIHBsdWdpbiB1cCB3aXRoIHRoZSBjYWNoZWQgY3JlZGVudGlhbC4gT24gYSA0MDEvNDAzIHRoZSBrZXkgd2FzIG1vc3RcbiAqIGxpa2VseSByb3RhdGVkIHVuZGVybmVhdGggdGhpcyB3YXJtIGNvbnRhaW5lciAodG9rZW4tcmVuZXcgc3RvcmVzIHRoZSBuZXcga2V5XG4gKiBhbmQgcmV2b2tlcyB0aGUgb2xkIG9uZSksIHNvIGRyb3AgdGhlIGNhY2hlLCByZS1yZWFkIHRoZSBzZWNyZXQgYW5kIHJldHJ5IG9uY2UuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGxvb2t1cFdpdGhDcmVkZW50aWFsUmVmcmVzaChiYXNlVVJMOiBzdHJpbmcsIHBsdWdpbkZpbHRlcjogUGx1Z2luRmlsdGVyLCBzdGVwS2V5Pzogc3RyaW5nLCByZXF1ZXN0SWQ/OiBzdHJpbmcpOiBQcm9taXNlPFBsdWdpbj4ge1xuICB0cnkge1xuICAgIHJldHVybiBhd2FpdCBmZXRjaChjcmVhdGUoYmFzZVVSTCwgYXdhaXQgY3JlZGVudGlhbC5nZXRLZXkoKSwgcmVxdWVzdElkKSwgYmFzZVVSTCwgcGx1Z2luRmlsdGVyLCBzdGVwS2V5KTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgaWYgKCEoZXJyIGluc3RhbmNlb2YgQ3JlZGVudGlhbFJlZnVzZWRFcnJvcikpIHRocm93IGVycjtcbiAgICBjcmVkZW50aWFsLmludmFsaWRhdGUoKTtcbiAgICBsYW1iZGFMb2cuaW5mbygnQVVUSCcsICdSZS1yZWFkaW5nIHRoZSBzZXJ2aWNlLWFjY291bnQga2V5IGZyb20gU2VjcmV0cyBNYW5hZ2VyIGFuZCByZXRyeWluZyBvbmNlJyk7XG4gICAgcmV0dXJuIGZldGNoKGNyZWF0ZShiYXNlVVJMLCBhd2FpdCBjcmVkZW50aWFsLmdldEtleSgpLCByZXF1ZXN0SWQpLCBiYXNlVVJMLCBwbHVnaW5GaWx0ZXIsIHN0ZXBLZXkpO1xuICB9XG59XG5cbi8qKlxuICogVmFsaWRhdGVzIHRoZSBwbHVnaW4gZmlsdGVyIG9iamVjdFxuICpcbiAqIEBwYXJhbSBwbHVnaW5GaWx0ZXIgLSBGaWx0ZXIgdG8gdmFsaWRhdGVcbiAqIEByZXR1cm5zIHRydWUgaWYgdmFsaWRcbiAqIEB0aHJvd3MgRXJyb3IgaWYgaW52YWxpZFxuICovXG5mdW5jdGlvbiB2YWxpZGF0ZVBsdWdpbkZpbHRlcihwbHVnaW5GaWx0ZXI6IHVua25vd24pOiBwbHVnaW5GaWx0ZXIgaXMgUGx1Z2luRmlsdGVyIHtcbiAgaWYgKCFwbHVnaW5GaWx0ZXIgfHwgdHlwZW9mIHBsdWdpbkZpbHRlciAhPT0gJ29iamVjdCcpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3Npbmcgb3IgaW52YWxpZCBwbHVnaW5GaWx0ZXInKTtcbiAgfVxuXG4gIGNvbnN0IGZpbHRlciA9IHBsdWdpbkZpbHRlciBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgaWYgKCFmaWx0ZXIubmFtZSAmJiAhZmlsdGVyLmlkICYmICFmaWx0ZXIudmVyc2lvbiAmJiAhZmlsdGVyLm9yZ0lkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdQbHVnaW5GaWx0ZXIgbXVzdCBoYXZlIGF0IGxlYXN0IG9uZSBjcml0ZXJpb24gKG5hbWUsIGlkLCB2ZXJzaW9uLCBvciBvcmdJZCknKTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG4vKipcbiAqIExhbWJkYSBoYW5kbGVyIGZvciBDbG91ZEZvcm1hdGlvbiBDdXN0b20gUmVzb3VyY2UgdGhhdCBwZXJmb3JtcyBwbHVnaW4gbG9va3VwLlxuICpcbiAqIEF1dGhlbnRpY2F0ZXMgd2l0aCB0aGUgc2VydmljZS1hY2NvdW50IGtleSBmcm9tIEFXUyBTZWNyZXRzIE1hbmFnZXIgKFBMQVRGT1JNX1NFQ1JFVF9OQU1FIGVudiB2YXIpLlxuICogQ3JlYXRlIHRoZSBzZWNyZXQgd2l0aDogYHBpcGVsaW5lLW1hbmFnZXIgaW5mcmEgc3RvcmUtdG9rZW5gXG4gKlxuICogUmVxdWVzdCBUeXBlczpcbiAqIC0gQ3JlYXRlL1VwZGF0ZTogZmV0Y2hlcyBhbmQgcmV0dXJucyBwbHVnaW4gY29uZmlndXJhdGlvbiBmcm9tIEFQSVxuICogLSBEZWxldGU6IG5vLW9wIChhbHdheXMgc3VjY2VlZHMpXG4gKlxuICogUmVzcG9uc2U6XG4gKiAtIFN1Y2Nlc3M6IFJldHVybnMgYmFzZTY0LWVuY29kZWQgcGx1Z2luIEpTT04gaW4gRGF0YS5SZXN1bHRWYWx1ZVxuICogLSBGYWlsdXJlOiBSZXR1cm5zIGVycm9yIG1lc3NhZ2UgaW4gUmVhc29uXG4gKlxuICogQHBhcmFtIGV2ZW50IC0gQ2xvdWRGb3JtYXRpb24gY3VzdG9tIHJlc291cmNlIGV2ZW50XG4gKiBAcGFyYW0gY29udGV4dCAtIExhbWJkYSBjb250ZXh0OyBpdHMgYXdzUmVxdWVzdElkIHJpZGVzIHRoZSBsb29rdXAgYXMgYFgtUmVxdWVzdC1JZGBcbiAqIEByZXR1cm5zIENsb3VkRm9ybWF0aW9uIHJlc3BvbnNlXG4gKlxuICogQGV4YW1wbGVcbiAqIEN1c3RvbSBSZXNvdXJjZSBQcm9wZXJ0aWVzOlxuICogYGBganNvblxuICoge1xuICogICBcImJhc2VVUkxcIjogXCJodHRwczovL2FwaS5leGFtcGxlLmNvbVwiLFxuICogICBcInBsdWdpbkZpbHRlclwiOiB7XG4gKiAgICAgXCJuYW1lXCI6IFwibm9kZWpzLWJ1aWxkXCIsXG4gKiAgICAgXCJ2ZXJzaW9uXCI6IFwiMS4wLjBcIixcbiAqICAgICBcImlzQWN0aXZlXCI6IHRydWVcbiAqICAgfVxuICogfVxuICogYGBgXG4gKi9cbmV4cG9ydCBjb25zdCBoYW5kbGVyID0gYXN5bmMgKFxuICBldmVudDogQ2xvdWRGb3JtYXRpb25DdXN0b21SZXNvdXJjZUV2ZW50LFxuICBjb250ZXh0PzogUGljazxDb250ZXh0LCAnYXdzUmVxdWVzdElkJz4sXG4pOiBQcm9taXNlPENsb3VkRm9ybWF0aW9uQ3VzdG9tUmVzb3VyY2VSZXNwb25zZT4gPT4ge1xuICAvLyBOT1RFOiBuZXZlciBsb2cgZXZlbnQuU3RhY2tJZCBoZXJlIOKAlCB0aGUgQ2xvdWRGb3JtYXRpb24gU3RhY2sgQVJOIGVtYmVkcyB0aGVcbiAgLy8gQVdTIGFjY291bnQgaWQgKGFybjphd3M6Y2xvdWRmb3JtYXRpb246PHJlZ2lvbj46PEFDQ09VTlRfSUQ+OnN0YWNrL+KApiksIHdoaWNoXG4gIC8vIG11c3QgbmV2ZXIgYmUgcGVyc2lzdGVkIHRvIENsb3VkV2F0Y2guIHJlcXVlc3RJZCArIGxvZ2ljYWxSZXNvdXJjZUlkIGFyZVxuICAvLyBzdWZmaWNpZW50IGZvciBjb3JyZWxhdGlvbi4gKFN0YWNrSWQgaXMgc3RpbGwgcmV0dXJuZWQgaW4gdGhlIENGTiByZXNwb25zZVxuICAvLyBib2R5IGJlbG93IOKAlCB0aGF0IGlzIHRoZSBtYW5kYXRvcnkgQ0ZOIHByb3RvY29sIGZpZWxkIGFuZCBpcyBub3QgYSBsb2cuKVxuICBsYW1iZGFMb2cuaW5mbygnU1RBUlQnLCBgJHtldmVudC5SZXF1ZXN0VHlwZX0gcmVxdWVzdCByZWNlaXZlZGAsIHtcbiAgICBsb2dpY2FsUmVzb3VyY2VJZDogZXZlbnQuTG9naWNhbFJlc291cmNlSWQsXG4gICAgcmVxdWVzdElkOiBldmVudC5SZXF1ZXN0SWQsXG4gIH0pO1xuXG4gIGNvbnN0IGJhc2VSZXNwb25zZTogUGFydGlhbDxDbG91ZEZvcm1hdGlvbkN1c3RvbVJlc291cmNlUmVzcG9uc2U+ID0ge1xuICAgIFN0YWNrSWQ6IGV2ZW50LlN0YWNrSWQsXG4gICAgUmVxdWVzdElkOiBldmVudC5SZXF1ZXN0SWQsXG4gICAgTG9naWNhbFJlc291cmNlSWQ6IGV2ZW50LkxvZ2ljYWxSZXNvdXJjZUlkLFxuICAgIFBoeXNpY2FsUmVzb3VyY2VJZDogZXZlbnQuTG9naWNhbFJlc291cmNlSWQsXG4gIH07XG5cbiAgdHJ5IHtcbiAgICAvLyBIYW5kbGUgRGVsZXRlIC0gYWx3YXlzIHN1Y2NlZWQgKG5vLW9wKVxuICAgIGlmIChldmVudC5SZXF1ZXN0VHlwZSA9PT0gJ0RlbGV0ZScpIHtcbiAgICAgIGxhbWJkYUxvZy5pbmZvKCdERUxFVEUnLCAnTm8tb3AgLSByZXR1cm5pbmcgU1VDQ0VTUycpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uYmFzZVJlc3BvbnNlLFxuICAgICAgICBTdGF0dXM6ICdTVUNDRVNTJyxcbiAgICAgICAgUmVhc29uOiAnRGVsZXRlIGNvbXBsZXRlZCAobm8tb3ApJyxcbiAgICAgIH0gYXMgQ2xvdWRGb3JtYXRpb25DdXN0b21SZXNvdXJjZVJlc3BvbnNlO1xuICAgIH1cblxuICAgIC8vIEV4dHJhY3QgYW5kIHZhbGlkYXRlIHByb3BlcnRpZXNcbiAgICBjb25zdCBwbHVnaW5GaWx0ZXIgPSBldmVudC5SZXNvdXJjZVByb3BlcnRpZXMucGx1Z2luRmlsdGVyO1xuICAgIGNvbnN0IGJhc2VVUkwgPSBldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuYmFzZVVSTCB8fCBIQU5ETEVSX0RFRkFVTFRfQkFTRV9VUkw7XG5cbiAgICBpZiAoIWJhc2VVUkwuc3RhcnRzV2l0aCgnaHR0cHM6Ly8nKSAmJiAhYmFzZVVSTC5zdGFydHNXaXRoKCdodHRwOi8vJykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBiYXNlVVJMOiBcIiR7YmFzZVVSTH1cIiDigJQgbXVzdCBzdGFydCB3aXRoIGh0dHA6Ly8gb3IgaHR0cHM6Ly9gKTtcbiAgICB9XG5cbiAgICBsYW1iZGFMb2cuaW5mbygnQ09ORklHJywgJ0NvbmZpZ3VyYXRpb24gbG9hZGVkJywgeyBiYXNlVVJMLCBwbHVnaW5GaWx0ZXIgfSk7XG5cbiAgICB2YWxpZGF0ZVBsdWdpbkZpbHRlcihwbHVnaW5GaWx0ZXIpO1xuXG4gICAgbGFtYmRhTG9nLmluZm8oJ0ZFVENIJywgJ0luaXRpYXRpbmcgcGx1Z2luIGxvb2t1cC4uLicpO1xuICAgIGNvbnN0IHN0ZXBLZXkgPSB0eXBlb2YgZXZlbnQuUmVzb3VyY2VQcm9wZXJ0aWVzLnN0ZXBLZXkgPT09ICdzdHJpbmcnID8gZXZlbnQuUmVzb3VyY2VQcm9wZXJ0aWVzLnN0ZXBLZXkgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgcGx1Z2luID0gYXdhaXQgbG9va3VwV2l0aENyZWRlbnRpYWxSZWZyZXNoKGJhc2VVUkwsIHBsdWdpbkZpbHRlciwgc3RlcEtleSwgY29udGV4dD8uYXdzUmVxdWVzdElkKTtcbiAgICBsYW1iZGFMb2cuaW5mbygnRkVUQ0gnLCAnUGx1Z2luIHJldHJpZXZlZCBzdWNjZXNzZnVsbHknLCB7XG4gICAgICBuYW1lOiBwbHVnaW4ubmFtZSxcbiAgICAgIHZlcnNpb246IHBsdWdpbi52ZXJzaW9uLFxuICAgICAgaWQ6IHBsdWdpbi5pZCxcbiAgICB9KTtcblxuICAgIC8vIFN0cmlwIGxhcmdlIGZpZWxkcyB0byBzdGF5IHdpdGhpbiBDbG91ZEZvcm1hdGlvbidzIDQwOTYtYnl0ZSBEYXRhIGxpbWl0LlxuICAgIC8vIENESyBjb25zdHJ1Y3RzIG9ubHkgbmVlZCB0aGUgZmllbGRzIHVzZWQgYnkgY3JlYXRlQ29kZUJ1aWxkU3RlcCgpLlxuICAgIGNvbnN0IHNsaW0gPSB7XG4gICAgICBpZDogcGx1Z2luLmlkLFxuICAgICAgbmFtZTogcGx1Z2luLm5hbWUsXG4gICAgICB2ZXJzaW9uOiBwbHVnaW4udmVyc2lvbixcbiAgICAgIHBsdWdpblR5cGU6IHBsdWdpbi5wbHVnaW5UeXBlLFxuICAgICAgY29tcHV0ZVR5cGU6IHBsdWdpbi5jb21wdXRlVHlwZSxcbiAgICAgIGNvbW1hbmRzOiBwbHVnaW4uY29tbWFuZHMsXG4gICAgICBpbnN0YWxsQ29tbWFuZHM6IHBsdWdpbi5pbnN0YWxsQ29tbWFuZHMsXG4gICAgICBlbnY6IHBsdWdpbi5lbnYsXG4gICAgICBtZXRhZGF0YTogcGx1Z2luLm1ldGFkYXRhLFxuICAgICAgcHJpbWFyeU91dHB1dERpcmVjdG9yeTogcGx1Z2luLnByaW1hcnlPdXRwdXREaXJlY3RvcnksXG4gICAgICBzZWNyZXRzOiBwbHVnaW4uc2VjcmV0cyxcbiAgICAgIGZhaWx1cmVCZWhhdmlvcjogcGx1Z2luLmZhaWx1cmVCZWhhdmlvcixcbiAgICAgIHRpbWVvdXQ6IHBsdWdpbi50aW1lb3V0LFxuICAgIH07XG5cbiAgICBjb25zdCBlbmNvZGVkID0gQnVmZmVyLmZyb20oSlNPTi5zdHJpbmdpZnkoc2xpbSksICd1dGYtOCcpLnRvU3RyaW5nKCdiYXNlNjQnKTtcbiAgICBsYW1iZGFMb2cuZGVidWcoJ0VOQ09ERScsICdFbmNvZGVkIHBsdWdpbiBkYXRhJywgeyBsZW5ndGg6IGVuY29kZWQubGVuZ3RoIH0pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmJhc2VSZXNwb25zZSxcbiAgICAgIFN0YXR1czogJ1NVQ0NFU1MnLFxuICAgICAgUmVhc29uOiBgUGx1Z2luICcke3BsdWdpbi5uYW1lfScgKHYke3BsdWdpbi52ZXJzaW9ufSkgcmV0cmlldmVkIHN1Y2Nlc3NmdWxseWAsXG4gICAgICBEYXRhOiB7XG4gICAgICAgIFJlc3VsdFZhbHVlOiBlbmNvZGVkLFxuICAgICAgfSxcbiAgICB9IGFzIENsb3VkRm9ybWF0aW9uQ3VzdG9tUmVzb3VyY2VSZXNwb25zZTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zdCByZWFzb24gPSBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdVbmV4cGVjdGVkIGVycm9yIG9jY3VycmVkJztcbiAgICBsYW1iZGFMb2cuZXJyb3IoJ0VSUk9SJywgJ0hhbmRsZXIgZmFpbGVkJywge1xuICAgICAgcmVhc29uLFxuICAgICAgc3RhY2s6IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5zdGFjayA6IHVuZGVmaW5lZCxcbiAgICB9KTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5iYXNlUmVzcG9uc2UsXG4gICAgICBTdGF0dXM6ICdGQUlMRUQnLFxuICAgICAgUmVhc29uOiB0cnVuY2F0ZVJlYXNvbihyZWFzb24pLFxuICAgIH0gYXMgQ2xvdWRGb3JtYXRpb25DdXN0b21SZXNvdXJjZVJlc3BvbnNlO1xuICB9IGZpbmFsbHkge1xuICAgIGxhbWJkYUxvZy5pbmZvKCdFTkQnLCAnQ3VzdG9tIHJlc291cmNlIGV4ZWN1dGlvbiBjb21wbGV0ZWQnKTtcbiAgfVxufTtcbiJdfQ==
|
package/lib/index.js
CHANGED
|
@@ -62,4 +62,4 @@ export * from './pipeline/plugin-spec.js';
|
|
|
62
62
|
export { tokenize, hasTemplate, MAX_FIELD_SIZE_BYTES, MAX_PATH_DEPTH, resolve, dependencies, validateTemplates, detectCycles, allowedScopeRoots, resolveSelfReferencing, validateTemplateDraft, formatTemplateDraftProblems, } from './template/index.js';
|
|
63
63
|
// A plugin's `{{ … }}` resolution against a pipeline scope (synth, `plugin test`)
|
|
64
64
|
export { resolvePluginTemplates } from './template/plugin-resolver.js';
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTZCRztBQUVILGdCQUFnQjtBQUNoQixjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUV6RSw4QkFBOEI7QUFDOUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQXNDLFdBQVcsRUFBRSxZQUFZLEVBQW9CLE1BQU0sMEJBQTBCLENBQUM7QUFDcEosY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSw4QkFBOEIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BLLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsT0FBTyxFQU1MLHFCQUFxQixFQUNyQixxQkFBcUIsRUFDckIsOEJBQThCLEVBQzlCLHFCQUFxQixFQUNyQixtQkFBbUIsRUFFbkIsa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsZUFBZSxFQUVmLGlCQUFpQixHQUNsQixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFDTCxZQUFZLEVBQ1osdUJBQXVCLEVBQ3ZCLHlCQUF5QixFQUd6QixtQkFBbUIsRUFDbkIsdUJBQXVCLEdBRXhCLE1BQU0sa0NBQWtDLENBQUM7QUFDMUMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxpQ0FBaUMsQ0FBQztBQUVoRCwrRUFBK0U7QUFDL0UsMkVBQTJFO0FBQzNFLHdFQUF3RTtBQUN4RSxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELG1GQUFtRjtBQUNuRix3RUFBd0U7QUFDeEUsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLDJCQUEyQixDQUFDO0FBRTFDLDRFQUE0RTtBQUM1RSxPQUFPLEVBQ0wsUUFBUSxFQUNSLFdBQVcsRUFDWCxvQkFBb0IsRUFDcEIsY0FBYyxFQUtkLE9BQU8sRUFDUCxZQUFZLEVBR1osaUJBQWlCLEVBQ2pCLFlBQVksRUFDWixpQkFBaUIsRUFJakIsc0JBQXNCLEVBQ3RCLHFCQUFxQixFQUNyQiwyQkFBMkIsR0FNNUIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixrRkFBa0Y7QUFDbEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0JBQStCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuLyoqXG4gKiBAbW9kdWxlIEBwaXBlbGluZS1idWlsZGVyL3BpcGVsaW5lLWNvcmVcbiAqXG4gKiBBcHBsaWNhdGlvbiBjb25maWd1cmF0aW9uLCBwaXBlbGluZSBkb21haW4gdHlwZXMsIGFuZCB0aGUgdGVtcGxhdGUgZW5naW5lLlxuICpcbiAqIFRoaXMgZW50cnkgcG9pbnQgaXMgZGVsaWJlcmF0ZWx5IEZSRUUgb2YgYGF3cy1jZGstbGliYC4gVGhlIENESyBjb25zdHJ1Y3RzIGxpdmVcbiAqIGJlaGluZCBhIHNlcGFyYXRlIHN1YnBhdGgg4oCUIGBAcGlwZWxpbmUtYnVpbGRlci9waXBlbGluZS1jb3JlL2Nka2Ag4oCUIGJlY2F1c2UgdGhlXG4gKiBBUEkgc2VydmljZXMgY29uc3VtZSB0aGlzIHBhY2thZ2UgZm9yIGNvbmZpZyBhbmQgZG9tYWluIHR5cGVzIG9ubHksIGFuZCBhblxuICogYGV4cG9ydCAqYCBvZiB0aGUgY29uc3RydWN0cyBmcm9tIGhlcmUgcHV0IHRoZSB3aG9sZSBvZiBgYXdzLWNkay1saWJgIG9uIHRoZVxuICogaW1wb3J0IGdyYXBoIG9mIGV2ZXJ5IHNlcnZpY2UgdGhhdCByZWFkIHNvIG11Y2ggYXMgYSBwb3J0IG51bWJlci4gQW55dGhpbmcgdGhhdFxuICogaW1wb3J0cyBgYXdzLWNkay1saWJgLCBhdCB0eXBlIGxldmVsIG9yIHZhbHVlIGxldmVsLCBiZWxvbmdzIGluIGBjZGsudHNgLlxuICpcbiAqICoqQ29uZmlnKipcbiAqIC0gQ29uZmlnIOKAlCBhcHBsaWNhdGlvbiBjb25maWd1cmF0aW9uIHNpbmdsZXRvbiAoZW52aXJvbm1lbnQtZHJpdmVuKVxuICogLSBDb25maWdUeXBlcyDigJQgdHlwZWQgY29uZmlndXJhdGlvbiBpbnRlcmZhY2VzXG4gKlxuICogKipUeXBlcyoqXG4gKiAtIFBpcGVsaW5lVHlwZSwgQ29tcHV0ZVR5cGUsIFBsdWdpblR5cGUsIFZpc2liaWxpdHkg4oCUIHBpcGVsaW5lIGRvbWFpbiBlbnVtc1xuICogLSBSb2xlVHlwZXMsIFNlY3VyaXR5R3JvdXBUeXBlcyDigJQgaW5mcmFzdHJ1Y3R1cmUgdHlwZSBkZWZpbml0aW9uc1xuICogLSBQbHVnaW5TcGVjIOKAlCBhIHBsdWdpbidzIGRlY2xhcmVkIGNvbnRyYWN0XG4gKiAtIElkR2VuZXJhdG9yIOKAlCBkZXRlcm1pbmlzdGljIElEIGdlbmVyYXRpb25cbiAqXG4gKiAqKkhlbHBlcnMqKlxuICogLSByZXBsYWNlTm9uQWxwaGFudW1lcmljLCBleHRyYWN0TWV0YWRhdGFFbnYg4oCUIHN0cmluZyBhbmQgbWV0YWRhdGEgdXRpbGl0aWVzXG4gKiAtIHJlc29sdmVGYWlsdXJlQmVoYXZpb3IsIHdyYXBDb21tYW5kc0ZvckZhaWx1cmVCZWhhdmlvciDigJQgYSBzdGVwJ3MgZmFpbHVyZUJlaGF2aW9yLCBhcyBDb2RlQnVpbGQgcnVucyBpdFxuICpcbiAqIFRoZSBQb3N0Z3Jlcy9Ecml6emxlIGRhdGEgbGF5ZXIgKGRiLCBzY2hlbWEsIENydWRTZXJ2aWNlLCBxdWVyeSBidWlsZGVycyxcbiAqIGZpbHRlci9jb21wbGlhbmNlIHR5cGVzLCBldGMuKSBpcyBOT1QgcmUtZXhwb3J0ZWQgaGVyZSDigJQgaW1wb3J0IHRob3NlXG4gKiBkaXJlY3RseSBmcm9tIGBAcGlwZWxpbmUtYnVpbGRlci9waXBlbGluZS1kYXRhYC5cbiAqL1xuXG4vLyBDb25maWd1cmF0aW9uXG5leHBvcnQgKiBmcm9tICcuL2NvbmZpZy9hcHAtY29uZmlnLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vY29uZmlnL2NvbmZpZy10eXBlcy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbmZpZy9zZXJ2aWNlLWNsaWVudC5qcyc7XG5leHBvcnQgeyBwYXJzZVBsYXRmb3JtQmFzZVVybCB9IGZyb20gJy4vY29uZmlnL2luZnJhc3RydWN0dXJlLWNvbmZpZy5qcyc7XG5cbi8vIENvcmUgdHlwZXMgKHB1YmxpYyBzdXJmYWNlKVxuZXhwb3J0IHsgQ29tcHV0ZVR5cGUsIFBsdWdpblR5cGUsIHR5cGUgTWV0YURhdGFUeXBlLCB0eXBlIFZpc2liaWxpdHksIFRyaWdnZXJUeXBlLCBNZXRhZGF0YUtleXMsIHR5cGUgTWV0YWRhdGFLZXkgfSBmcm9tICcuL2NvcmUvcGlwZWxpbmUtdHlwZXMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb3JlL3JvbGUtdHlwZXMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb3JlL3NlY3VyaXR5LWdyb3VwLXR5cGVzLmpzJztcbmV4cG9ydCB7IHJlcGxhY2VOb25BbHBoYW51bWVyaWMsIGV4dHJhY3RNZXRhZGF0YUVudiwgcmVzb2x2ZUZhaWx1cmVCZWhhdmlvciwgd3JhcENvbW1hbmRzRm9yRmFpbHVyZUJlaGF2aW9yLCBTVEVQX0JPT1RTVFJBUF9DTUQgfSBmcm9tICcuL2NvcmUvbWV0YWRhdGEtaGVscGVycy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2NvcmUvc3RlcC1tYW5pZmVzdC5qcyc7XG5leHBvcnQge1xuICB0eXBlIENvbnRyYWN0VmFsdWVUeXBlLFxuICB0eXBlIFBsdWdpbkNvbnRyYWN0LFxuICB0eXBlIENvbnRyYWN0U2NvcGUsXG4gIHR5cGUgQ29udHJhY3RJc3N1ZSxcbiAgdHlwZSBDb250cmFjdFNjb3BlUHJvcHMsXG4gIHBpcGVsaW5lU2NvcGVNZXRhZGF0YSxcbiAgcGlwZWxpbmVDb250cmFjdFNjb3BlLFxuICBjb250cmFjdFNjb3BlRnJvbVRlbXBsYXRlU2NvcGUsXG4gIGlzQ29udHJhY3RWYWx1ZU9mVHlwZSxcbiAgY2hlY2tQbHVnaW5Db250cmFjdCxcbiAgdHlwZSBQbHVnaW5TdGVwUmVmLFxuICBjb2xsZWN0UGx1Z2luU3RlcHMsXG4gIHBsdWdpbkxvb2t1cEZpbHRlcixcbiAgcGx1Z2luQXJ0aWZhY3RBbGlhcyxcbiAgcGx1Z2luU3RlcExhYmVsLFxuICB0eXBlIFBsdWdpblJlZklkZW50aXR5LFxuICBzYW5pdGl6ZVB1Ymxpc2hlcixcbn0gZnJvbSAnLi9jb3JlL3BsdWdpbi1jb250cmFjdC5qcyc7XG5leHBvcnQge1xuICB1bndyYXBMb29rdXAsXG4gIHN1bW1hcml6ZUxvb2t1cFdhcm5pbmdzLFxuICBMT09LVVBfV0FSTklOR19TRVZFUklUSUVTLFxuICB0eXBlIExvb2t1cFdhcm5pbmcsXG4gIHR5cGUgTG9va3VwV2FybmluZ1NldmVyaXR5LFxuICBsb29rdXBOb3RGb3VuZFN0YXRlLFxuICBleGFjdFBpbk5vdEZvdW5kTWVzc2FnZSxcbiAgdHlwZSBMb29rdXBOb3RGb3VuZFN0YXRlLFxufSBmcm9tICcuL2NvcmUvcGx1Z2luLWxvb2t1cC1lbnZlbG9wZS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2NvcmUvc3ludGgtZmFpbHVyZS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2NvcmUvcnVudGltZS1jaGVjay5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2NvcmUvcGxhdGZvcm0tdGxzLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vY29yZS9hdWRpdC1jb3JyZWxhdGlvbi5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2NvcmUvcXVvdGEtZXhjZWVkZWQuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb3JlL3NlY3VyaXR5LXJlcG9ydHMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb3JlL3BpcGVsaW5lLXJlZ2lzdHJhdGlvbi5qcyc7XG5cbi8vIFBsdWdpbiBkb21haW4gdHlwZSAodGhlIHN5bnRoLXRpbWUgYXV0aG9yaW5nIHR5cGVzIGxpdmUgaW4gdGhlIGAvY2RrYCBlbnRyeSlcbi8vIENESy1mcmVlOiB0aGUgRE9SQSBkZXBsb3kgYXR0cmlidXRpb24gdGhlIEFQSSByZXBvcnRzIGluIGNyZWF0ZS92YWxpZGF0ZVxuLy8gcmVzcG9uc2VzLiBUaGUgY29uc3RydWN0IHRoYXQgc3RhbXBzIHRoZSB0YWcgcmVhZHMgdGhlIHNhbWUgZnVuY3Rpb24uXG5leHBvcnQgKiBmcm9tICcuL3BpcGVsaW5lL2RlcGxveS1hdHRyaWJ1dGlvbi5qcyc7XG4vLyBDREstZnJlZTogdGhlIHN0YWdlL3BsdWdpbi9JQU0gcHJvamVjdGlvbiB0aGUgY3JlYXRlICsgdmFsaWRhdGUgcmVzcG9uc2VzIHJldHVyblxuLy8gc28gYSByZXZpZXdlciBhcHByb3ZlcyBzb21ldGhpbmcgY29uY3JldGUgcmF0aGVyIHRoYW4gcmF3IHByb3BzIEpTT04uXG5leHBvcnQgKiBmcm9tICcuL3BpcGVsaW5lL3N0cnVjdHVyZS1wcmV2aWV3LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vcGlwZWxpbmUvcGx1Z2luLXNwZWMuanMnO1xuXG4vLyBUZW1wbGF0ZSBlbmdpbmUg4oCUIHN5bnRoLXRpbWUgc2NyaXB0aW5nIGZvciBwaXBlbGluZSBjb25maWcgKyBwbHVnaW4gc3BlY3NcbmV4cG9ydCB7XG4gIHRva2VuaXplLFxuICBoYXNUZW1wbGF0ZSxcbiAgTUFYX0ZJRUxEX1NJWkVfQllURVMsXG4gIE1BWF9QQVRIX0RFUFRILFxuICB0eXBlIFRva2VuLFxuICB0eXBlIExpdGVyYWxUb2tlbixcbiAgdHlwZSBFeHByVG9rZW4sXG4gIHR5cGUgU291cmNlUG9zaXRpb24sXG4gIHJlc29sdmUsXG4gIGRlcGVuZGVuY2llcyxcbiAgdHlwZSBTY29wZSxcbiAgdHlwZSBGaWVsZFByZWRpY2F0ZSxcbiAgdmFsaWRhdGVUZW1wbGF0ZXMsXG4gIGRldGVjdEN5Y2xlcyxcbiAgYWxsb3dlZFNjb3BlUm9vdHMsXG4gIHR5cGUgVGVtcGxhdGVFcnJvcixcbiAgdHlwZSBUZW1wbGF0ZVZhbGlkYXRpb25SZXN1bHQsXG4gIHR5cGUgUmVzb2x2ZVJlc3VsdCxcbiAgcmVzb2x2ZVNlbGZSZWZlcmVuY2luZyxcbiAgdmFsaWRhdGVUZW1wbGF0ZURyYWZ0LFxuICBmb3JtYXRUZW1wbGF0ZURyYWZ0UHJvYmxlbXMsXG4gIHR5cGUgVGVtcGxhdGVEcmFmdElucHV0LFxuICB0eXBlIFRlbXBsYXRlRHJhZnRMaWtlLFxuICB0eXBlIFRlbXBsYXRlRHJhZnRQcm9ibGVtLFxuICB0eXBlIFRlbXBsYXRlRHJhZnRQcm9ibGVtS2luZCxcbiAgdHlwZSBUZW1wbGF0ZURyYWZ0VmFsaWRhdGlvbixcbn0gZnJvbSAnLi90ZW1wbGF0ZS9pbmRleC5qcyc7XG4vLyBBIHBsdWdpbidzIGB7eyDigKYgfX1gIHJlc29sdXRpb24gYWdhaW5zdCBhIHBpcGVsaW5lIHNjb3BlIChzeW50aCwgYHBsdWdpbiB0ZXN0YClcbmV4cG9ydCB7IHJlc29sdmVQbHVnaW5UZW1wbGF0ZXMgfSBmcm9tICcuL3RlbXBsYXRlL3BsdWdpbi1yZXNvbHZlci5qcyc7XG4iXX0=
|
|
@@ -119,4 +119,4 @@ export function describeDeployAttribution(props) {
|
|
|
119
119
|
}
|
|
120
120
|
return { deploysTag: value, deploys, warnings };
|
|
121
121
|
}
|
|
122
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95LWF0dHJpYnV0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BpcGVsaW5lL2RlcGxveS1hdHRyaWJ1dGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDOzs7Ozs7Ozs7O0dBVUc7QUFFSCx1Q0FBdUM7QUFDdkMsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsR0FBRyxDQUFDO0FBZ0R4Qzs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxLQUEwRDtJQUM5RixPQUFPLEtBQUssQ0FBQyxLQUFLLElBQUksR0FBRyxLQUFLLENBQUMsU0FBUyxRQUFRLENBQUM7QUFDbkQsQ0FBQztBQUVELHFGQUFxRjtBQUNyRixTQUFTLFlBQVksQ0FBQyxLQUFhO0lBQ2pDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUNuRCxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBUyxlQUFlLENBQUMsS0FBNEI7SUFDbkQsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0MsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLG9CQUFvQjtRQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUU3RSw0RUFBNEU7SUFDNUUsK0VBQStFO0lBQy9FLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxLQUFLLFlBQVksQ0FBQyxDQUFDO0lBQy9FLE1BQU0sT0FBTyxHQUFHLFdBQVcsR0FBRyxDQUFDO1FBQzdCLENBQUMs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QUFHLFFBQVEsQ0FBQztRQUN2QixDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDN0UsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsTUFBTSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsR0FBRyxlQUFlLENBQ3hDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQzNHLENBQUM7SUFDRixJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDdkIsUUFBUSxDQUFDLElBQUksQ0FBQztZQUNaLElBQUksRUFBRSxlQUFlO1lBQ3JCLE9BQU8sRUFDTCxxQ0FBcUMsb0JBQW9CLDZCQUE2QjtrQkFDcEYsV0FBVyxPQUFPLENBQUMsTUFBTSxvQkFBb0IsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSTtrQkFDbkUscUZBQXFGO2tCQUNyRixnREFBZ0Q7U0FDckQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsQ0FBQztBQUNsRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbi8qKlxuICogV2hhdCBET1JBIGRlcGxveSBzaWduYWwgYSBwaXBlbGluZSdzIGNvbmZpZ3VyYXRpb24gd2lsbCBwcm9kdWNlIOKAlCBkZXJpdmVkXG4gKiBXSVRIT1VUIHN5bnRoZXNpemluZywgYW5kIFdJVEhPVVQgaW1wb3J0aW5nIGBhd3MtY2RrLWxpYmAuXG4gKlxuICogQ0RLLWZyZWUgb24gcHVycG9zZS4gYHBpcGVsaW5lLWJ1aWxkZXIudHNgIGlzIG9ubHkgcmVhY2hhYmxlIHRocm91Z2ggdGhlXG4gKiBgL2Nka2Agc3VicGF0aCwgc28gYW4gQVBJIHJvdXRlIHRoYXQgd2FudGVkIHRvIHRlbGwgYW4gYXV0aG9yIFwidGhpcyBkZXBsb3kgd2FzXG4gKiBhdHRyaWJ1dGVkIHRvIGEgc3RhZ2UgeW91IGRpZG4ndCBuYW1lXCIgd291bGQgaGF2ZSBoYWQgdG8gcHVsbCB0aGUgd2hvbGUgQ0RLXG4gKiB0eXBlIGdyYXBoIGludG8gdGhlIHNlcnZpY2UuIFRoZSBkZXJpdmF0aW9uIGxpdmVzIGhlcmUsIHRoZSBjb25zdHJ1Y3QgaW1wb3J0c1xuICogaXQsIGFuZCBgUE9TVCAvcGlwZWxpbmVzYCBhbmQgYFBPU1QgL3BpcGVsaW5lcy92YWxpZGF0ZWAgYW5zd2VyIGZyb20gdGhlIHNhbWVcbiAqIGNvZGUgdGhhdCBzdGFtcHMgdGhlIHRhZy5cbiAqL1xuXG4vKiogQVdTJ3MgaGFyZCBsaW1pdCBvbiBhIHRhZyBWQUxVRS4gKi9cbmV4cG9ydCBjb25zdCBNQVhfVEFHX1ZBTFVFX0xFTkdUSCA9IDI1NjtcblxuLyoqIE9uZSBgPHN0YWdlPjo8ZW52aXJvbm1lbnQ+YCBwYWlyLCBrZXB0IHdpdGggaXRzIHJhdyBlbnYgZm9yIGNhcCBwcmlvcml0aXphdGlvbi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVwbG95UGFpciB7XG4gIHJlYWRvbmx5IHN0cjogc3RyaW5nO1xuICByZWFkb25seSBlbnY6IHN0cmluZztcbn1cblxuLyoqIFRoZSBmaWVsZHMgb2YgYSBzdGFnZSB0aGlzIGRlcml2YXRpb24gcmVhZHMuICovXG5leHBvcnQgaW50ZXJmYWNlIERlcGxveUF0dHJpYnV0aW9uU3RhZ2Uge1xuICByZWFkb25seSBzdGFnZU5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgYWxpYXM/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGVudmlyb25tZW50Pzogc3RyaW5nO1xufVxuXG4vKiogVGhlIHNsaWNlIG9mIGBCdWlsZGVyUHJvcHNgIHRoaXMgZGVyaXZhdGlvbiByZWFkcy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVwbG95QXR0cmlidXRpb25JbnB1dCB7XG4gIHJlYWRvbmx5IHN0YWdlcz86IHJlYWRvbmx5IERlcGxveUF0dHJpYnV0aW9uU3RhZ2VbXTtcbiAgcmVhZG9ubHkgZW52aXJvbm1lbnQ/OiBzdHJpbmc7XG59XG5cbi8qKiBBIERPUkEgZGVwbG95IHRoZSBwaXBlbGluZSB3aWxsIHJlcG9ydDogd2hpY2ggc3RhZ2UsIHRvIHdoaWNoIGVudmlyb25tZW50LiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZXBsb3lBdHRyaWJ1dGlvbiB7XG4gIC8qKiBDb2RlUGlwZWxpbmUgc3RhZ2UgbmFtZSB0aGUgZGVwbG95IGlzIGF0dHJpYnV0ZWQgdG8uICovXG4gIHJlYWRvbmx5IHN0YWdlOiBzdHJpbmc7XG4gIC8qKiBFbnZpcm9ubWVudCB0aGF0IHN0YWdlIGRlcGxveXMgdG8uICovXG4gIHJlYWRvbmx5IGVudmlyb25tZW50OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBlbnZpcm9ubWVudCBjYW1lIGZyb20gYSBwZXItc3RhZ2UgYGVudmlyb25tZW50YCAocHJlY2lzZSkgb3Igd2FzXG4gICAqIGluZmVycmVkIGZyb20gdGhlIHBpcGVsaW5lLWxldmVsIG9uZSAoYSBndWVzcyB3b3J0aCB3YXJuaW5nIGFib3V0KS5cbiAgICovXG4gIHJlYWRvbmx5IGluZmVycmVkOiBib29sZWFuO1xufVxuXG4vKiogV2h5IGEgZGVwbG95IHNpZ25hbCBtYXkgYmUgd3Jvbmcgb3IgbWlzc2luZywgZm9yIHRoZSBjcmVhdGUvdmFsaWRhdGUgcmVzcG9uc2UuICovXG5leHBvcnQgaW50ZXJmYWNlIERlcGxveUF0dHJpYnV0aW9uV2FybmluZyB7XG4gIHJlYWRvbmx5IGNvZGU6ICdpbmZlcnJlZC1zdGFnZScgfCAncGFpcnMtZHJvcHBlZCc7XG4gIHJlYWRvbmx5IG1lc3NhZ2U6IHN0cmluZztcbn1cblxuLyoqIFRoZSBmdWxsIGFuc3dlcjogdGhlIHRhZyB2YWx1ZSwgdGhlIGRlcGxveXMgaXQgZW5jb2RlcywgYW5kIHRoZSBjYXZlYXRzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZXBsb3lBdHRyaWJ1dGlvblJlcG9ydCB7XG4gIC8qKiBUaGUgYHBiLmRlcGxveXNgIHRhZyB2YWx1ZSwgb3IgdW5kZWZpbmVkIHdoZW4gbm90aGluZyBkZWNsYXJlcyBhbiBlbnZpcm9ubWVudC4gKi9cbiAgcmVhZG9ubHkgZGVwbG95c1RhZz86IHN0cmluZztcbiAgcmVhZG9ubHkgZGVwbG95czogcmVhZG9ubHkgRGVwbG95QXR0cmlidXRpb25bXTtcbiAgcmVhZG9ubHkgd2FybmluZ3M6IHJlYWRvbmx5IERlcGxveUF0dHJpYnV0aW9uV2FybmluZ1tdO1xufVxuXG4vKipcbiAqIFRoZSBuYW1lIENvZGVQaXBlbGluZSBnaXZlcyBhIGNvbmZpZ3VyZWQgc3RhZ2U6IHRoZSB3YXZlIGlkLCBpLmUuIHRoZSBzdGFnZSdzXG4gKiBgYWxpYXNgLCBlbHNlIGA8c3RhZ2VOYW1lPi1hbGlhc2AuIFRoaXMg4oCUIG5vdCBgc3RhZ2VOYW1lYCDigJQgaXMgd2hhdCBhcHBlYXJzIGFzXG4gKiBgZGV0YWlsLnN0YWdlYCBpbiBDb2RlUGlwZWxpbmUgZXZlbnRzLCBzbyBhbnl0aGluZyB0aGF0IG11c3QgTUFUQ0ggdGhvc2VcbiAqIGV2ZW50cyAodGhlIGBwYi5kZXBsb3lzYCBET1JBIHRhZykgaGFzIHRvIGJlIGJ1aWx0IGZyb20gdGhpcyBvbmUgZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb2RlUGlwZWxpbmVTdGFnZU5hbWUoc3RhZ2U6IFBpY2s8RGVwbG95QXR0cmlidXRpb25TdGFnZSwgJ3N0YWdlTmFtZScgfCAnYWxpYXMnPik6IHN0cmluZyB7XG4gIHJldHVybiBzdGFnZS5hbGlhcyA/PyBgJHtzdGFnZS5zdGFnZU5hbWV9LWFsaWFzYDtcbn1cblxuLyoqIFN0cmlwIGNoYXJhY3RlcnMgQVdTIHJlamVjdHMgaW4gYSB0YWcgdmFsdWUsIGFuZCB0aGUgYCtgL2A6YCB0aGlzIGZvcm1hdCB1c2VzLiAqL1xuZnVuY3Rpb24gdGFnU2FmZVRva2VuKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gdmFsdWUucmVwbGFjZSgvW15BLVphLXowLTkuXy9APS1dL2csICctJyk7XG59XG5cbi8qKlxuICogSm9pbiBgcGIuZGVwbG95c2AgcGFpcnMgd2l0aCBgK2AsIGNhcHBlZCBhdCB7QGxpbmsgTUFYX1RBR19WQUxVRV9MRU5HVEh9LiBXaGVuXG4gKiB0aGUgZnVsbCB2YWx1ZSB3b3VsZCBleGNlZWQgdGhlIGNhcCwgdGhlIGhlYWRsaW5lL3Byb2R1Y3Rpb24gcGFpciBpcyBwbGFjZWRcbiAqIGZpcnN0IGFuZCBvbmx5IHRoZSBsZWFkaW5nIHBhaXJzIHRoYXQgZml0IGFyZSBrZXB0OyB0aGUgdHJhaWxpbmcgb3ZlcmZsb3cgcGFpcnNcbiAqIGFyZSByZXR1cm5lZCBpbiBgZHJvcHBlZGAgZm9yIHRoZSBjYWxsZXIgdG8gd2FybiBhYm91dC4gTmV2ZXIgZW1pdHMgbW9yZSB0aGFuXG4gKiAyNTYgY2hhcnMuXG4gKi9cbmZ1bmN0aW9uIGNhcERlcGxveXNWYWx1ZShwYWlyczogcmVhZG9ubHkgRGVwbG95UGFpcltdKTogeyB2YWx1ZTogc3RyaW5nOyBkcm9wcGVkOiBzdHJpbmdbXSB9IHtcbiAgY29uc3QgZnVsbCA9IHBhaXJzLm1hcChwID0+IHAuc3RyKS5qb2luKCcrJyk7XG4gIGlmIChmdWxsLmxlbmd0aCA8PSBNQVhfVEFHX1ZBTFVFX0xFTkdUSCkgcmV0dXJuIHsgdmFsdWU6IGZ1bGwsIGRyb3BwZWQ6IFtdIH07XG5cbiAgLy8gUHJpb3JpdGl6ZSB0aGUgaGVhZGxpbmUgcGFpciDigJQgdGhlIHByb2R1Y3Rpb24gZGVwbG95IGlmIHByZXNlbnQsIGVsc2UgdGhlXG4gIC8vIGZpcnN0IHBhaXIg4oCUIHNvIGEgY2FwIG5ldmVyIGRyb3BzIHRoZSBtb3N0IG9wZXJhdGlvbmFsbHktc2lnbmlmaWNhbnQgZGVwbG95LlxuICBjb25zdCBoZWFkbGluZUlkeCA9IHBhaXJzLmZpbmRJbmRleChwID0+IHAuZW52LnRvTG93ZXJDYXNlKCkgPT09ICdwcm9kdWN0aW9uJyk7XG4gIGNvbnN0IG9yZGVyZWQgPSBoZWFkbGluZUlkeCA+IDBcbiAgICA/IFtwYWlyc1toZWFkbGluZUlkeF0sIC4uLnBhaXJzLmZpbHRlcigoXywgaSkgPT4gaSAhPT0gaGVhZGxpbmVJZHgpXVxuICAgIDogcGFpcnM7XG5cbiAgY29uc3Qga2VwdDogc3RyaW5nW10gPSBbXTtcbiAgY29uc3QgZHJvcHBlZDogc3RyaW5nW10gPSBbXTtcbiAgZm9yIChjb25zdCBwIG9mIG9yZGVyZWQpIHtcbiAgICBjb25zdCBjYW5kaWRhdGUgPSBrZXB0Lmxlbmd0aCA9PT0gMCA/IHAuc3RyIDogYCR7a2VwdC5qb2luKCcrJyl9KyR7cC5zdHJ9YDtcbiAgICBpZiAoY2FuZGlkYXRlLmxlbmd0aCA8PSBNQVhfVEFHX1ZBTFVFX0xFTkdUSCkge1xuICAgICAga2VwdC5wdXNoKHAuc3RyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZHJvcHBlZC5wdXNoKHAuc3RyKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHsgdmFsdWU6IGtlcHQuam9pbignKycpLCBkcm9wcGVkIH07XG59XG5cbi8qKlxuICogRGVyaXZlIHRoZSBgcGIuZGVwbG95c2AgdGFnIGFuZCB0aGUgZGVwbG95cyBpdCBlbmNvZGVzLlxuICpcbiAqIEEgc3RhZ2UgaXMgYSBkZXBsb3kgaWZmIGl0IGRlY2xhcmVzIGFuIGBlbnZpcm9ubWVudGAuIFByZWNlZGVuY2U6XG4gKiAgLSBNdWx0aS1lbnY6IGFueSBzdGFnZSB3aXRoIGEgcGVyLXN0YWdlIGBlbnZpcm9ubWVudGAg4oCUIGxpc3QgZWFjaCBzdWNoIHN0YWdlLlxuICogIC0gU2luZ2xlLWVudjogbm8gcGVyLXN0YWdlIGVudmlyb25tZW50IGJ1dCBhIHBpcGVsaW5lLWxldmVsIGBlbnZpcm9ubWVudGAg4oCUXG4gKiAgICBhdHRyaWJ1dGUgaXQgdG8gdGhlIHNvbGUgc3RhZ2UsIHRoZSBMQVNUIHN0YWdlIG9mIGEgbXVsdGktc3RhZ2UgcGlwZWxpbmVcbiAqICAgIChkZXBsb3lzIGFyZSBjb252ZW50aW9uYWxseSBmaW5hbCDigJQgcmVwb3J0ZWQgYXMgYGluZmVycmVkYCwgd2l0aCBhIHdhcm5pbmdcbiAqICAgIHJlY29tbWVuZGluZyBleHBsaWNpdCBwZXItc3RhZ2UgYGVudmlyb25tZW50YCksIG9yIGEgbGl0ZXJhbCBgRGVwbG95OjxlbnY+YFxuICogICAgd2hlbiB0aGVyZSBhcmUgbm8gc3RhZ2VzIHRvIG5hbWUuXG4gKlxuICogYGRlcGxveXNUYWdgIGlzIHVuZGVmaW5lZCB3aGVuIG5vdGhpbmcgZGVjbGFyZXMgYW4gZW52aXJvbm1lbnQ6IHN1Y2ggcGlwZWxpbmVzXG4gKiBwcm9kdWNlIG5vIERPUkEgZGVwbG95IHNpZ25hbCBhdCBhbGwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZXNjcmliZURlcGxveUF0dHJpYnV0aW9uKHByb3BzOiBEZXBsb3lBdHRyaWJ1dGlvbklucHV0KTogRGVwbG95QXR0cmlidXRpb25SZXBvcnQge1xuICBjb25zdCBzdGFnZXMgPSBwcm9wcy5zdGFnZXMgPz8gW107XG4gIGNvbnN0IHN0YWdlc1dpdGhFbnYgPSBzdGFnZXMuZmlsdGVyKHMgPT4gdHlwZW9mIHMuZW52aXJvbm1lbnQgPT09ICdzdHJpbmcnICYmIHMuZW52aXJvbm1lbnQubGVuZ3RoID4gMCk7XG4gIGNvbnN0IHdhcm5pbmdzOiBEZXBsb3lBdHRyaWJ1dGlvbldhcm5pbmdbXSA9IFtdO1xuXG4gIGxldCBkZXBsb3lzOiBEZXBsb3lBdHRyaWJ1dGlvbltdO1xuICBpZiAoc3RhZ2VzV2l0aEVudi5sZW5ndGggPiAwKSB7XG4gICAgZGVwbG95cyA9IHN0YWdlc1dpdGhFbnYubWFwKHMgPT4gKHtcbiAgICAgIHN0YWdlOiBjb2RlUGlwZWxpbmVTdGFnZU5hbWUocyksIGVudmlyb25tZW50OiBzLmVudmlyb25tZW50IGFzIHN0cmluZywgaW5mZXJyZWQ6IGZhbHNlLFxuICAgIH0pKTtcbiAgfSBlbHNlIGlmIChwcm9wcy5lbnZpcm9ubWVudCkge1xuICAgIGxldCBzdGFnZU5hbWU6IHN0cmluZztcbiAgICBsZXQgaW5mZXJyZWQgPSBmYWxzZTtcbiAgICBpZiAoc3RhZ2VzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgc3RhZ2VOYW1lID0gY29kZVBpcGVsaW5lU3RhZ2VOYW1lKHN0YWdlc1swXSk7XG4gICAgfSBlbHNlIGlmIChzdGFnZXMubGVuZ3RoID4gMSkge1xuICAgICAgLy8gUGlwZWxpbmUtbGV2ZWwgZW52aXJvbm1lbnQgb24gYSBtdWx0aS1zdGFnZSBwaXBlbGluZTogYXR0cmlidXRlIGl0IHRvIHRoZVxuICAgICAgLy8gTEFTVCBzdGFnZSAoZGVwbG95cyBhcmUgY29udmVudGlvbmFsbHkgZmluYWwpIHJhdGhlciB0aGFuIGFuIHVubWF0Y2hlZFxuICAgICAgLy8gbGl0ZXJhbCBgRGVwbG95YC4gV2FybiBzbyBhdXRob3JzIG1vdmUgdG8gZXhwbGljaXQgcGVyLXN0YWdlIGBlbnZpcm9ubWVudGAuXG4gICAgICBzdGFnZU5hbWUgPSBjb2RlUGlwZWxpbmVTdGFnZU5hbWUoc3RhZ2VzW3N0YWdlcy5sZW5ndGggLSAxXSk7XG4gICAgICBpbmZlcnJlZCA9IHRydWU7XG4gICAgICB3YXJuaW5ncy5wdXNoKHtcbiAgICAgICAgY29kZTogJ2luZmVycmVkLXN0YWdlJyxcbiAgICAgICAgbWVzc2FnZTpcbiAgICAgICAgICBgUGlwZWxpbmUtbGV2ZWwgZW52aXJvbm1lbnQgXCIke3Byb3BzLmVudmlyb25tZW50fVwiIGF0dHJpYnV0ZWQgdG8gdGhlIGxhc3Qgc3RhZ2UgYFxuICAgICAgICAgICsgYFwiJHtzdGFnZU5hbWV9XCIgb2YgYSAke3N0YWdlcy5sZW5ndGh9LXN0YWdlIHBpcGVsaW5lLiBEZWNsYXJlIGEgcGVyLXN0YWdlIGBcbiAgICAgICAgICArICdgZW52aXJvbm1lbnRgIG9uIHRoZSBhY3R1YWwgZGVwbG95IHN0YWdlKHMpIGZvciBwcmVjaXNlIERPUkEgYXR0cmlidXRpb24uJyxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdGFnZU5hbWUgPSAnRGVwbG95JztcbiAgICB9XG4gICAgZGVwbG95cyA9IFt7IHN0YWdlOiBzdGFnZU5hbWUsIGVudmlyb25tZW50OiBwcm9wcy5lbnZpcm9ubWVudCwgaW5mZXJyZWQgfV07XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHsgZGVwbG95czogW10sIHdhcm5pbmdzIH07XG4gIH1cblxuICBjb25zdCB7IHZhbHVlLCBkcm9wcGVkIH0gPSBjYXBEZXBsb3lzVmFsdWUoXG4gICAgZGVwbG95cy5tYXAoZCA9PiAoeyBzdHI6IGAke3RhZ1NhZmVUb2tlbihkLnN0YWdlKX06JHt0YWdTYWZlVG9rZW4oZC5lbnZpcm9ubWVudCl9YCwgZW52OiBkLmVudmlyb25tZW50IH0pKSxcbiAgKTtcbiAgaWYgKGRyb3BwZWQubGVuZ3RoID4gMCkge1xuICAgIHdhcm5pbmdzLnB1c2goe1xuICAgICAgY29kZTogJ3BhaXJzLWRyb3BwZWQnLFxuICAgICAgbWVzc2FnZTpcbiAgICAgICAgYHBiLmRlcGxveXMgdGFnIHZhbHVlIGV4Y2VlZGVkIHRoZSAke01BWF9UQUdfVkFMVUVfTEVOR1RIfS1jaGFyIEFXUyB0YWctdmFsdWUgbGltaXQ7IGBcbiAgICAgICAgKyBgZHJvcHBlZCAke2Ryb3BwZWQubGVuZ3RofSBkZXBsb3kgcGFpcihzKTogJHtkcm9wcGVkLmpvaW4oJywgJyl9LiBgXG4gICAgICAgICsgJ1RoZXNlIGVudmlyb25tZW50cyB3aWxsIG5vdCBwcm9kdWNlIERPUkEgZGVwbG95IHNpZ25hbHMg4oCUIHJlZHVjZSBzdGFnZS9lbnZpcm9ubWVudCAnXG4gICAgICAgICsgJ25hbWUgbGVuZ3RocyBvciBzcGxpdCBpbnRvIHNlcGFyYXRlIHBpcGVsaW5lcy4nLFxuICAgIH0pO1xuICB9XG4gIHJldHVybiB7IGRlcGxveXNUYWc6IHZhbHVlLCBkZXBsb3lzLCB3YXJuaW5ncyB9O1xufVxuIl19
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95LWF0dHJpYnV0aW9uLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGlwZWxpbmUvZGVwbG95LWF0dHJpYnV0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEM7Ozs7Ozs7Ozs7R0FVRztBQUVILHVDQUF1QztBQUN2QyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxHQUFHLENBQUM7QUFnRHhDOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLHFCQUFxQixDQUFDLEtBQTBEO0lBQzlGLE9BQU8sS0FBSyxDQUFDLEtBQUssSUFBSSxHQUFHLEtBQUssQ0FBQyxTQUFTLFFBQVEsQ0FBQztBQUNuRCxDQUFDO0FBRUQscUZBQXFGO0FBQ3JGLFNBQVMsWUFBWSxDQUFDLEtBQWE7SUFDakMsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLHFCQUFxQixFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ25ELENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFTLGVBQWUsQ0FBQyxLQUE0QjtJQUNuRCxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3QyxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksb0JBQW9CO1FBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBRTdFLDRFQUE0RTtJQUM1RSwrRUFBK0U7SUFDL0UsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLEtBQUssWUFBWSxDQUFDLENBQUM7SUFDL0UsTUFBTSxPQUFPLEdBQUcsV0FBVyxHQUFHLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUMsS0FBSyxD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Q3ZCLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUM3RSxDQUFDO1NBQU0sQ0FBQztRQUNOLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxNQUFNLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxHQUFHLGVBQWUsQ0FDeEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLFlBQVksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FDM0csQ0FBQztJQUNGLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN2QixRQUFRLENBQUMsSUFBSSxDQUFDO1lBQ1osSUFBSSxFQUFFLGVBQWU7WUFDckIsT0FBTyxFQUNMLHFDQUFxQyxvQkFBb0IsNkJBQTZCO2tCQUNwRixXQUFXLE9BQU8sQ0FBQyxNQUFNLG9CQUFvQixPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJO2tCQUNuRSxxRkFBcUY7a0JBQ3JGLGdEQUFnRDtTQUNyRCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxDQUFDO0FBQ2xELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuLyoqXG4gKiBXaGF0IERPUkEgZGVwbG95IHNpZ25hbCBhIHBpcGVsaW5lJ3MgY29uZmlndXJhdGlvbiB3aWxsIHByb2R1Y2Ug4oCUIGRlcml2ZWRcbiAqIFdJVEhPVVQgc3ludGhlc2l6aW5nLCBhbmQgV0lUSE9VVCBpbXBvcnRpbmcgYGF3cy1jZGstbGliYC5cbiAqXG4gKiBDREstZnJlZSBvbiBwdXJwb3NlLiBgcGlwZWxpbmUtYnVpbGRlci50c2AgaXMgb25seSByZWFjaGFibGUgdGhyb3VnaCB0aGVcbiAqIGAvY2RrYCBzdWJwYXRoLCBzbyBhbiBBUEkgcm91dGUgdGhhdCB3YW50ZWQgdG8gdGVsbCBhbiBhdXRob3IgXCJ0aGlzIGRlcGxveSB3YXNcbiAqIGF0dHJpYnV0ZWQgdG8gYSBzdGFnZSB5b3UgZGlkbid0IG5hbWVcIiB3b3VsZCBoYXZlIGhhZCB0byBwdWxsIHRoZSB3aG9sZSBDREtcbiAqIHR5cGUgZ3JhcGggaW50byB0aGUgc2VydmljZS4gVGhlIGRlcml2YXRpb24gbGl2ZXMgaGVyZSwgdGhlIGNvbnN0cnVjdCBpbXBvcnRzXG4gKiBpdCwgYW5kIGBQT1NUIC9waXBlbGluZXNgIGFuZCBgUE9TVCAvcGlwZWxpbmVzL3ZhbGlkYXRlYCBhbnN3ZXIgZnJvbSB0aGUgc2FtZVxuICogY29kZSB0aGF0IHN0YW1wcyB0aGUgdGFnLlxuICovXG5cbi8qKiBBV1MncyBoYXJkIGxpbWl0IG9uIGEgdGFnIFZBTFVFLiAqL1xuZXhwb3J0IGNvbnN0IE1BWF9UQUdfVkFMVUVfTEVOR1RIID0gMjU2O1xuXG4vKiogT25lIGA8c3RhZ2U+OjxlbnZpcm9ubWVudD5gIHBhaXIsIGtlcHQgd2l0aCBpdHMgcmF3IGVudiBmb3IgY2FwIHByaW9yaXRpemF0aW9uLiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZXBsb3lQYWlyIHtcbiAgcmVhZG9ubHkgc3RyOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGVudjogc3RyaW5nO1xufVxuXG4vKiogVGhlIGZpZWxkcyBvZiBhIHN0YWdlIHRoaXMgZGVyaXZhdGlvbiByZWFkcy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVwbG95QXR0cmlidXRpb25TdGFnZSB7XG4gIHJlYWRvbmx5IHN0YWdlTmFtZTogc3RyaW5nO1xuICByZWFkb25seSBhbGlhcz86IHN0cmluZztcbiAgcmVhZG9ubHkgZW52aXJvbm1lbnQ/OiBzdHJpbmc7XG59XG5cbi8qKiBUaGUgc2xpY2Ugb2YgYEJ1aWxkZXJQcm9wc2AgdGhpcyBkZXJpdmF0aW9uIHJlYWRzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZXBsb3lBdHRyaWJ1dGlvbklucHV0IHtcbiAgcmVhZG9ubHkgc3RhZ2VzPzogcmVhZG9ubHkgRGVwbG95QXR0cmlidXRpb25TdGFnZVtdO1xuICByZWFkb25seSBlbnZpcm9ubWVudD86IHN0cmluZztcbn1cblxuLyoqIEEgRE9SQSBkZXBsb3kgdGhlIHBpcGVsaW5lIHdpbGwgcmVwb3J0OiB3aGljaCBzdGFnZSwgdG8gd2hpY2ggZW52aXJvbm1lbnQuICovXG5leHBvcnQgaW50ZXJmYWNlIERlcGxveUF0dHJpYnV0aW9uIHtcbiAgLyoqIENvZGVQaXBlbGluZSBzdGFnZSBuYW1lIHRoZSBkZXBsb3kgaXMgYXR0cmlidXRlZCB0by4gKi9cbiAgcmVhZG9ubHkgc3RhZ2U6IHN0cmluZztcbiAgLyoqIEVudmlyb25tZW50IHRoYXQgc3RhZ2UgZGVwbG95cyB0by4gKi9cbiAgcmVhZG9ubHkgZW52aXJvbm1lbnQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGVudmlyb25tZW50IGNhbWUgZnJvbSBhIHBlci1zdGFnZSBgZW52aXJvbm1lbnRgIChwcmVjaXNlKSBvciB3YXNcbiAgICogaW5mZXJyZWQgZnJvbSB0aGUgcGlwZWxpbmUtbGV2ZWwgb25lIChhIGd1ZXNzIHdvcnRoIHdhcm5pbmcgYWJvdXQpLlxuICAgKi9cbiAgcmVhZG9ubHkgaW5mZXJyZWQ6IGJvb2xlYW47XG59XG5cbi8qKiBXaHkgYSBkZXBsb3kgc2lnbmFsIG1heSBiZSB3cm9uZyBvciBtaXNzaW5nLCBmb3IgdGhlIGNyZWF0ZS92YWxpZGF0ZSByZXNwb25zZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVwbG95QXR0cmlidXRpb25XYXJuaW5nIHtcbiAgcmVhZG9ubHkgY29kZTogJ2luZmVycmVkLXN0YWdlJyB8ICdwYWlycy1kcm9wcGVkJztcbiAgcmVhZG9ubHkgbWVzc2FnZTogc3RyaW5nO1xufVxuXG4vKiogVGhlIGZ1bGwgYW5zd2VyOiB0aGUgdGFnIHZhbHVlLCB0aGUgZGVwbG95cyBpdCBlbmNvZGVzLCBhbmQgdGhlIGNhdmVhdHMuICovXG5leHBvcnQgaW50ZXJmYWNlIERlcGxveUF0dHJpYnV0aW9uUmVwb3J0IHtcbiAgLyoqIFRoZSBgcGIuZGVwbG95c2AgdGFnIHZhbHVlLCBvciB1bmRlZmluZWQgd2hlbiBub3RoaW5nIGRlY2xhcmVzIGFuIGVudmlyb25tZW50LiAqL1xuICByZWFkb25seSBkZXBsb3lzVGFnPzogc3RyaW5nO1xuICByZWFkb25seSBkZXBsb3lzOiByZWFkb25seSBEZXBsb3lBdHRyaWJ1dGlvbltdO1xuICByZWFkb25seSB3YXJuaW5nczogcmVhZG9ubHkgRGVwbG95QXR0cmlidXRpb25XYXJuaW5nW107XG59XG5cbi8qKlxuICogVGhlIG5hbWUgQ29kZVBpcGVsaW5lIGdpdmVzIGEgY29uZmlndXJlZCBzdGFnZTogdGhlIHdhdmUgaWQsIGkuZS4gdGhlIHN0YWdlJ3NcbiAqIGBhbGlhc2AsIGVsc2UgYDxzdGFnZU5hbWU+LWFsaWFzYC4gVGhpcyDigJQgbm90IGBzdGFnZU5hbWVgIOKAlCBpcyB3aGF0IGFwcGVhcnMgYXNcbiAqIGBkZXRhaWwuc3RhZ2VgIGluIENvZGVQaXBlbGluZSBldmVudHMsIHNvIGFueXRoaW5nIHRoYXQgbXVzdCBNQVRDSCB0aG9zZVxuICogZXZlbnRzICh0aGUgYHBiLmRlcGxveXNgIERPUkEgdGFnKSBoYXMgdG8gYmUgYnVpbHQgZnJvbSB0aGlzIG9uZSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvZGVQaXBlbGluZVN0YWdlTmFtZShzdGFnZTogUGljazxEZXBsb3lBdHRyaWJ1dGlvblN0YWdlLCAnc3RhZ2VOYW1lJyB8ICdhbGlhcyc+KTogc3RyaW5nIHtcbiAgcmV0dXJuIHN0YWdlLmFsaWFzID8/IGAke3N0YWdlLnN0YWdlTmFtZX0tYWxpYXNgO1xufVxuXG4vKiogU3RyaXAgY2hhcmFjdGVycyBBV1MgcmVqZWN0cyBpbiBhIHRhZyB2YWx1ZSwgYW5kIHRoZSBgK2AvYDpgIHRoaXMgZm9ybWF0IHVzZXMuICovXG5mdW5jdGlvbiB0YWdTYWZlVG9rZW4odmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiB2YWx1ZS5yZXBsYWNlKC9bXkEtWmEtejAtOS5fL0A9LV0vZywgJy0nKTtcbn1cblxuLyoqXG4gKiBKb2luIGBwYi5kZXBsb3lzYCBwYWlycyB3aXRoIGArYCwgY2FwcGVkIGF0IHtAbGluayBNQVhfVEFHX1ZBTFVFX0xFTkdUSH0uIFdoZW5cbiAqIHRoZSBmdWxsIHZhbHVlIHdvdWxkIGV4Y2VlZCB0aGUgY2FwLCB0aGUgaGVhZGxpbmUvcHJvZHVjdGlvbiBwYWlyIGlzIHBsYWNlZFxuICogZmlyc3QgYW5kIG9ubHkgdGhlIGxlYWRpbmcgcGFpcnMgdGhhdCBmaXQgYXJlIGtlcHQ7IHRoZSB0cmFpbGluZyBvdmVyZmxvdyBwYWlyc1xuICogYXJlIHJldHVybmVkIGluIGBkcm9wcGVkYCBmb3IgdGhlIGNhbGxlciB0byB3YXJuIGFib3V0LiBOZXZlciBlbWl0cyBtb3JlIHRoYW5cbiAqIDI1NiBjaGFycy5cbiAqL1xuZnVuY3Rpb24gY2FwRGVwbG95c1ZhbHVlKHBhaXJzOiByZWFkb25seSBEZXBsb3lQYWlyW10pOiB7IHZhbHVlOiBzdHJpbmc7IGRyb3BwZWQ6IHN0cmluZ1tdIH0ge1xuICBjb25zdCBmdWxsID0gcGFpcnMubWFwKHAgPT4gcC5zdHIpLmpvaW4oJysnKTtcbiAgaWYgKGZ1bGwubGVuZ3RoIDw9IE1BWF9UQUdfVkFMVUVfTEVOR1RIKSByZXR1cm4geyB2YWx1ZTogZnVsbCwgZHJvcHBlZDogW10gfTtcblxuICAvLyBQcmlvcml0aXplIHRoZSBoZWFkbGluZSBwYWlyIOKAlCB0aGUgcHJvZHVjdGlvbiBkZXBsb3kgaWYgcHJlc2VudCwgZWxzZSB0aGVcbiAgLy8gZmlyc3QgcGFpciDigJQgc28gYSBjYXAgbmV2ZXIgZHJvcHMgdGhlIG1vc3Qgb3BlcmF0aW9uYWxseS1zaWduaWZpY2FudCBkZXBsb3kuXG4gIGNvbnN0IGhlYWRsaW5lSWR4ID0gcGFpcnMuZmluZEluZGV4KHAgPT4gcC5lbnYudG9Mb3dlckNhc2UoKSA9PT0gJ3Byb2R1Y3Rpb24nKTtcbiAgY29uc3Qgb3JkZXJlZCA9IGhlYWRsaW5lSWR4ID4gMFxuICAgID8gW3BhaXJzW2hlYWRsaW5lSWR4XSwgLi4ucGFpcnMuZmlsdGVyKChfLCBpKSA9PiBpICE9PSBoZWFkbGluZUlkeCldXG4gICAgOiBwYWlycztcblxuICBjb25zdCBrZXB0OiBzdHJpbmdbXSA9IFtdO1xuICBjb25zdCBkcm9wcGVkOiBzdHJpbmdbXSA9IFtdO1xuICBmb3IgKGNvbnN0IHAgb2Ygb3JkZXJlZCkge1xuICAgIGNvbnN0IGNhbmRpZGF0ZSA9IGtlcHQubGVuZ3RoID09PSAwID8gcC5zdHIgOiBgJHtrZXB0LmpvaW4oJysnKX0rJHtwLnN0cn1gO1xuICAgIGlmIChjYW5kaWRhdGUubGVuZ3RoIDw9IE1BWF9UQUdfVkFMVUVfTEVOR1RIKSB7XG4gICAgICBrZXB0LnB1c2gocC5zdHIpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkcm9wcGVkLnB1c2gocC5zdHIpO1xuICAgIH1cbiAgfVxuICByZXR1cm4geyB2YWx1ZToga2VwdC5qb2luKCcrJyksIGRyb3BwZWQgfTtcbn1cblxuLyoqXG4gKiBEZXJpdmUgdGhlIGBwYi5kZXBsb3lzYCB0YWcgYW5kIHRoZSBkZXBsb3lzIGl0IGVuY29kZXMuXG4gKlxuICogQSBzdGFnZSBpcyBhIGRlcGxveSBpZmYgaXQgZGVjbGFyZXMgYW4gYGVudmlyb25tZW50YC4gUHJlY2VkZW5jZTpcbiAqICAtIE11bHRpLWVudjogYW55IHN0YWdlIHdpdGggYSBwZXItc3RhZ2UgYGVudmlyb25tZW50YCDigJQgbGlzdCBlYWNoIHN1Y2ggc3RhZ2UuXG4gKiAgLSBTaW5nbGUtZW52OiBubyBwZXItc3RhZ2UgZW52aXJvbm1lbnQgYnV0IGEgcGlwZWxpbmUtbGV2ZWwgYGVudmlyb25tZW50YCDigJRcbiAqICAgIGF0dHJpYnV0ZSBpdCB0byB0aGUgc29sZSBzdGFnZSwgdGhlIExBU1Qgc3RhZ2Ugb2YgYSBtdWx0aS1zdGFnZSBwaXBlbGluZVxuICogICAgKGRlcGxveXMgYXJlIGNvbnZlbnRpb25hbGx5IGZpbmFsIOKAlCByZXBvcnRlZCBhcyBgaW5mZXJyZWRgLCB3aXRoIGEgd2FybmluZ1xuICogICAgcmVjb21tZW5kaW5nIGV4cGxpY2l0IHBlci1zdGFnZSBgZW52aXJvbm1lbnRgKSwgb3IgYSBsaXRlcmFsIGBEZXBsb3k6PGVudj5gXG4gKiAgICB3aGVuIHRoZXJlIGFyZSBubyBzdGFnZXMgdG8gbmFtZS5cbiAqXG4gKiBgZGVwbG95c1RhZ2AgaXMgdW5kZWZpbmVkIHdoZW4gbm90aGluZyBkZWNsYXJlcyBhbiBlbnZpcm9ubWVudDogc3VjaCBwaXBlbGluZXNcbiAqIHByb2R1Y2Ugbm8gRE9SQSBkZXBsb3kgc2lnbmFsIGF0IGFsbC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlc2NyaWJlRGVwbG95QXR0cmlidXRpb24ocHJvcHM6IERlcGxveUF0dHJpYnV0aW9uSW5wdXQpOiBEZXBsb3lBdHRyaWJ1dGlvblJlcG9ydCB7XG4gIGNvbnN0IHN0YWdlcyA9IHByb3BzLnN0YWdlcyA/PyBbXTtcbiAgY29uc3Qgc3RhZ2VzV2l0aEVudiA9IHN0YWdlcy5maWx0ZXIocyA9PiB0eXBlb2Ygcy5lbnZpcm9ubWVudCA9PT0gJ3N0cmluZycgJiYgcy5lbnZpcm9ubWVudC5sZW5ndGggPiAwKTtcbiAgY29uc3Qgd2FybmluZ3M6IERlcGxveUF0dHJpYnV0aW9uV2FybmluZ1tdID0gW107XG5cbiAgbGV0IGRlcGxveXM6IERlcGxveUF0dHJpYnV0aW9uW107XG4gIGlmIChzdGFnZXNXaXRoRW52Lmxlbmd0aCA+IDApIHtcbiAgICBkZXBsb3lzID0gc3RhZ2VzV2l0aEVudi5tYXAocyA9PiAoe1xuICAgICAgc3RhZ2U6IGNvZGVQaXBlbGluZVN0YWdlTmFtZShzKSwgZW52aXJvbm1lbnQ6IHMuZW52aXJvbm1lbnQgYXMgc3RyaW5nLCBpbmZlcnJlZDogZmFsc2UsXG4gICAgfSkpO1xuICB9IGVsc2UgaWYgKHByb3BzLmVudmlyb25tZW50KSB7XG4gICAgbGV0IHN0YWdlTmFtZTogc3RyaW5nO1xuICAgIGxldCBpbmZlcnJlZCA9IGZhbHNlO1xuICAgIGlmIChzdGFnZXMubGVuZ3RoID09PSAxKSB7XG4gICAgICBzdGFnZU5hbWUgPSBjb2RlUGlwZWxpbmVTdGFnZU5hbWUoc3RhZ2VzWzBdKTtcbiAgICB9IGVsc2UgaWYgKHN0YWdlcy5sZW5ndGggPiAxKSB7XG4gICAgICAvLyBQaXBlbGluZS1sZXZlbCBlbnZpcm9ubWVudCBvbiBhIG11bHRpLXN0YWdlIHBpcGVsaW5lOiBhdHRyaWJ1dGUgaXQgdG8gdGhlXG4gICAgICAvLyBMQVNUIHN0YWdlIChkZXBsb3lzIGFyZSBjb252ZW50aW9uYWxseSBmaW5hbCkgcmF0aGVyIHRoYW4gYW4gdW5tYXRjaGVkXG4gICAgICAvLyBsaXRlcmFsIGBEZXBsb3lgLiBXYXJuIHNvIGF1dGhvcnMgbW92ZSB0byBleHBsaWNpdCBwZXItc3RhZ2UgYGVudmlyb25tZW50YC5cbiAgICAgIHN0YWdlTmFtZSA9IGNvZGVQaXBlbGluZVN0YWdlTmFtZShzdGFnZXNbc3RhZ2VzLmxlbmd0aCAtIDFdKTtcbiAgICAgIGluZmVycmVkID0gdHJ1ZTtcbiAgICAgIHdhcm5pbmdzLnB1c2goe1xuICAgICAgICBjb2RlOiAnaW5mZXJyZWQtc3RhZ2UnLFxuICAgICAgICBtZXNzYWdlOlxuICAgICAgICAgIGBQaXBlbGluZS1sZXZlbCBlbnZpcm9ubWVudCBcIiR7cHJvcHMuZW52aXJvbm1lbnR9XCIgYXR0cmlidXRlZCB0byB0aGUgbGFzdCBzdGFnZSBgXG4gICAgICAgICAgKyBgXCIke3N0YWdlTmFtZX1cIiBvZiBhICR7c3RhZ2VzLmxlbmd0aH0tc3RhZ2UgcGlwZWxpbmUuIERlY2xhcmUgYSBwZXItc3RhZ2UgYFxuICAgICAgICAgICsgJ2BlbnZpcm9ubWVudGAgb24gdGhlIGFjdHVhbCBkZXBsb3kgc3RhZ2UocykgZm9yIHByZWNpc2UgRE9SQSBhdHRyaWJ1dGlvbi4nLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0YWdlTmFtZSA9ICdEZXBsb3knO1xuICAgIH1cbiAgICBkZXBsb3lzID0gW3sgc3RhZ2U6IHN0YWdlTmFtZSwgZW52aXJvbm1lbnQ6IHByb3BzLmVudmlyb25tZW50LCBpbmZlcnJlZCB9XTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4geyBkZXBsb3lzOiBbXSwgd2FybmluZ3MgfTtcbiAgfVxuXG4gIGNvbnN0IHsgdmFsdWUsIGRyb3BwZWQgfSA9IGNhcERlcGxveXNWYWx1ZShcbiAgICBkZXBsb3lzLm1hcChkID0+ICh7IHN0cjogYCR7dGFnU2FmZVRva2VuKGQuc3RhZ2UpfToke3RhZ1NhZmVUb2tlbihkLmVudmlyb25tZW50KX1gLCBlbnY6IGQuZW52aXJvbm1lbnQgfSkpLFxuICApO1xuICBpZiAoZHJvcHBlZC5sZW5ndGggPiAwKSB7XG4gICAgd2FybmluZ3MucHVzaCh7XG4gICAgICBjb2RlOiAncGFpcnMtZHJvcHBlZCcsXG4gICAgICBtZXNzYWdlOlxuICAgICAgICBgcGIuZGVwbG95cyB0YWcgdmFsdWUgZXhjZWVkZWQgdGhlICR7TUFYX1RBR19WQUxVRV9MRU5HVEh9LWNoYXIgQVdTIHRhZy12YWx1ZSBsaW1pdDsgYFxuICAgICAgICArIGBkcm9wcGVkICR7ZHJvcHBlZC5sZW5ndGh9IGRlcGxveSBwYWlyKHMpOiAke2Ryb3BwZWQuam9pbignLCAnKX0uIGBcbiAgICAgICAgKyAnVGhlc2UgZW52aXJvbm1lbnRzIHdpbGwgbm90IHByb2R1Y2UgRE9SQSBkZXBsb3kgc2lnbmFscyDigJQgcmVkdWNlIHN0YWdlL2Vudmlyb25tZW50ICdcbiAgICAgICAgKyAnbmFtZSBsZW5ndGhzIG9yIHNwbGl0IGludG8gc2VwYXJhdGUgcGlwZWxpbmVzLicsXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIHsgZGVwbG95c1RhZzogdmFsdWUsIGRlcGxveXMsIHdhcm5pbmdzIH07XG59XG4iXX0=
|