@workflow/builders 5.0.0-beta.6 → 5.0.0-beta.8

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.
Files changed (66) hide show
  1. package/dist/apply-swc-transform.js +1 -1
  2. package/dist/base-builder.d.ts.map +1 -1
  3. package/dist/base-builder.js +2 -1
  4. package/dist/build-queue.js +1 -1
  5. package/dist/config-helpers.js +1 -1
  6. package/dist/constants.js +1 -1
  7. package/dist/discover-entries-esbuild-plugin.d.ts.map +1 -1
  8. package/dist/discover-entries-esbuild-plugin.js +3 -2
  9. package/dist/discover-entries-esbuild-plugin.test.js +1 -1
  10. package/dist/esbuild-tsconfig.js +1 -1
  11. package/dist/esbuild-tsconfig.test.js +1 -1
  12. package/dist/external-package-warning.test.js +1 -1
  13. package/dist/get-input-files.test.js +1 -1
  14. package/dist/index.js +1 -1
  15. package/dist/module-specifier.js +1 -1
  16. package/dist/module-specifier.test.js +1 -1
  17. package/dist/node-module-esbuild-plugin.js +1 -1
  18. package/dist/node-module-esbuild-plugin.test.js +1 -1
  19. package/dist/pseudo-package-esbuild-plugin.js +1 -1
  20. package/dist/pseudo-package-esbuild-plugin.test.js +1 -1
  21. package/dist/request-converter.js +1 -1
  22. package/dist/resolve-sourcemap.test.js +1 -1
  23. package/dist/serde-checker.js +1 -1
  24. package/dist/standalone.js +1 -1
  25. package/dist/swc-esbuild-plugin.js +1 -1
  26. package/dist/swc-esbuild-plugin.test.js +1 -1
  27. package/dist/transform-utils.js +1 -1
  28. package/dist/transform-utils.test.js +1 -1
  29. package/dist/types.js +1 -1
  30. package/dist/vercel-build-output-api.d.ts.map +1 -1
  31. package/dist/vercel-build-output-api.js +4 -1
  32. package/dist/workflow-alias.js +1 -1
  33. package/dist/workflow-alias.test.js +1 -1
  34. package/dist/workflows-extractor.js +1 -1
  35. package/package.json +4 -4
  36. package/dist/apply-swc-transform.js.map +0 -1
  37. package/dist/base-builder.js.map +0 -1
  38. package/dist/build-queue.js.map +0 -1
  39. package/dist/config-helpers.js.map +0 -1
  40. package/dist/constants.js.map +0 -1
  41. package/dist/discover-entries-esbuild-plugin.js.map +0 -1
  42. package/dist/discover-entries-esbuild-plugin.test.js.map +0 -1
  43. package/dist/esbuild-tsconfig.js.map +0 -1
  44. package/dist/esbuild-tsconfig.test.js.map +0 -1
  45. package/dist/external-package-warning.test.js.map +0 -1
  46. package/dist/get-input-files.test.js.map +0 -1
  47. package/dist/index.js.map +0 -1
  48. package/dist/module-specifier.js.map +0 -1
  49. package/dist/module-specifier.test.js.map +0 -1
  50. package/dist/node-module-esbuild-plugin.js.map +0 -1
  51. package/dist/node-module-esbuild-plugin.test.js.map +0 -1
  52. package/dist/pseudo-package-esbuild-plugin.js.map +0 -1
  53. package/dist/pseudo-package-esbuild-plugin.test.js.map +0 -1
  54. package/dist/request-converter.js.map +0 -1
  55. package/dist/resolve-sourcemap.test.js.map +0 -1
  56. package/dist/serde-checker.js.map +0 -1
  57. package/dist/standalone.js.map +0 -1
  58. package/dist/swc-esbuild-plugin.js.map +0 -1
  59. package/dist/swc-esbuild-plugin.test.js.map +0 -1
  60. package/dist/transform-utils.js.map +0 -1
  61. package/dist/transform-utils.test.js.map +0 -1
  62. package/dist/types.js.map +0 -1
  63. package/dist/vercel-build-output-api.js.map +0 -1
  64. package/dist/workflow-alias.js.map +0 -1
  65. package/dist/workflow-alias.test.js.map +0 -1
  66. package/dist/workflows-extractor.js.map +0 -1
@@ -91,4 +91,4 @@ describe('getEsbuildTsconfigOptions', () => {
91
91
  expect(normalizedInputs.some((input) => input.includes('turbopack-app/app/.well-known/agent/v1/steps.ts'))).toBe(false);
92
92
  });
93
93
  });
94
- //# sourceMappingURL=esbuild-tsconfig.test.js.map
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNidWlsZC10c2NvbmZpZy50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2VzYnVpbGQtdHNjb25maWcudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLFdBQVcsRUFDWCxhQUFhLEdBQ2QsTUFBTSxTQUFTLENBQUM7QUFDakIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNqQyxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMxQyxPQUFPLEtBQUssT0FBTyxNQUFNLFNBQVMsQ0FBQztBQUNuQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3pELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWxFLE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0FBRTFDLFNBQVMsU0FBUyxDQUFDLElBQVksRUFBRSxRQUFnQjtJQUMvQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUMsYUFBYSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDeEMsQ0FBQztBQUVELFNBQVMsU0FBUyxDQUFDLEtBQWU7SUFDaEMsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ2pELENBQUM7QUFFRCxLQUFLLFVBQVUsV0FBVyxDQUFDLEVBQ3pCLFVBQVUsRUFDVixlQUFlLEdBSWhCO0lBQ0MsTUFBTSxNQUFN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LENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUV6QyxNQUFNLGdCQUFnQixHQUFHLE1BQU0sV0FBVyxDQUFDO1lBQ3pDLFVBQVU7WUFDVixlQUFlLEVBQUUsT0FBTztTQUN6QixDQUFDLENBQUM7UUFFSCxNQUFNLENBQ0osZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FDeEUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDYixNQUFNLENBQ0osZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDOUIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxtQ0FBbUMsQ0FBQyxDQUNwRCxDQUNGLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2IsTUFBTSxDQUNKLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQzlCLEtBQUssQ0FBQyxRQUFRLENBQUMsbUNBQW1DLENBQUMsQ0FDcEQsQ0FDRixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNkLE1BQU0sQ0FDSixnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUM5QixLQUFLLENBQUMsUUFBUSxDQUFDLGlEQUFpRCxDQUFDLENBQ2xFLENBQ0YsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEIsQ0FBQyxDQUNGLENBQUM7QUFDSixDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIG1rZGlyU3luYyxcbiAgbWtkdGVtcFN5bmMsXG4gIHJlYWxwYXRoU3luYyxcbiAgcm1TeW5jLFxuICBzeW1saW5rU3luYyxcbiAgd3JpdGVGaWxlU3luYyxcbn0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgeyB0bXBkaXIgfSBmcm9tICdub2RlOm9zJztcbmltcG9ydCB7IGRpcm5hbWUsIGpvaW4gfSBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0ICogYXMgZXNidWlsZCBmcm9tICdlc2J1aWxkJztcbmltcG9ydCB7IGFmdGVyRWFjaCwgZGVzY3JpYmUsIGV4cGVjdCwgaXQgfSBmcm9tICd2aXRlc3QnO1xuaW1wb3J0IHsgZ2V0RXNidWlsZFRzY29uZmlnT3B0aW9ucyB9IGZyb20gJy4vZXNidWlsZC10c2NvbmZpZy5qcyc7XG5cbmNvbnN0IHJlYWxUbXBkaXIgPSByZWFscGF0aFN5bmModG1wZGlyKCkpO1xuXG5mdW5jdGlvbiB3cml0ZUZpbGUocGF0aDogc3RyaW5nLCBjb250ZW50czogc3RyaW5nKTogdm9pZCB7XG4gIG1rZGlyU3luYyhkaXJuYW1lKHBhdGgpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgd3JpdGVGaWxlU3luYyhwYXRoLCBjb250ZW50cywgJ3V0ZjgnKTtcbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplKHBhdGhzOiBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcbiAgcmV0dXJuIHBhdGhzLm1hcCgocCkgPT4gcC5yZXBsYWNlKC9cXFxcL2csICcvJykpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBidWlsZElucHV0cyh7XG4gIHdvcmtpbmdEaXIsXG4gIHRzY29uZmlnT3B0aW9ucyxcbn06IHtcbiAgd29ya2luZ0Rpcjogc3RyaW5nO1xuICB0c2NvbmZpZ09wdGlvbnM6IHsgdHNjb25maWc/OiBzdHJpbmc7IHRzY29uZmlnUmF3Pzogc3RyaW5nIH07XG59KTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICBjb25zdCByZXN1bHQgPSBhd2FpdCBlc2J1aWxkLmJ1aWxkKHtcbiAgICBhYnNXb3JraW5nRGlyOiB3b3JraW5nRGlyLFxuICAgIGJ1bmRsZTogdHJ1ZSxcbiAgICBmb3JtYXQ6ICdlc20nLFxuICAgIHBsYXRmb3JtOiAnbm9kZScsXG4gICAgd3JpdGU6IGZhbHNlLFxuICAgIGxvZ0xldmVsOiAnc2lsZW50JyxcbiAgICBtZXRhZmlsZTogdHJ1ZSxcbiAgICBzdGRpbjoge1xuICAgICAgY29udGVudHM6IGBpbXBvcnQgJ0Avd29ya2Zsb3dzL3RhcmdldCc7IGltcG9ydCAnQC9hcHAvLndlbGwta25vd24vYWdlbnQvdjEvc3RlcHMnO2AsXG4gICAgICByZXNvbHZlRGlyOiB3b3JraW5nRGlyLFxuICAgICAgc291cmNlZmlsZTogJ2VudHJ5LnRzJyxcbiAgICAgIGxvYWRlcjogJ3RzJyxcbiAgICB9LFxuICAgIC4uLnRzY29uZmlnT3B0aW9ucyxcbiAgfSk7XG5cbiAgcmV0dXJuIG5vcm1hbGl6ZShPYmplY3Qua2V5cyhyZXN1bHQubWV0YWZpbGUuaW5wdXRzKSk7XG59XG5cbmRlc2NyaWJlKCdnZXRFc2J1aWxkVHNjb25maWdPcHRpb25zJywgKCkgPT4ge1xuICBjb25zdCBjcmVhdGVkUm9vdHM6IHN0cmluZ1tdID0gW107XG4gIGNvbnN0IHN5bWxpbmtUZXN0ID0gcHJvY2Vzcy5wbGF0Zm9ybSA9PT0gJ3dpbjMyJyA/IGl0LnNraXAgOiBpdDtcblxuICBhZnRlckVhY2goKCkgPT4ge1xuICAgIGZvciAoY29uc3Qgcm9vdCBvZiBjcmVhdGVkUm9vdHMuc3BsaWNlKDApKSB7XG4gICAgICBybVN5bmMocm9vdCwgeyByZWN1cnNpdmU6IHRydWUsIGZvcmNlOiB0cnVlIH0pO1xuICAgIH1cbiAgfSk7XG5cbiAgaXQoJ3JldHVybnMgdHNjb25maWcgZm9yIHJlZ3VsYXIgZmlsZXMnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3Qgcm9vdCA9IG1rZHRlbXBTeW5jKGpvaW4ocmVhbFRtcGRpciwgJ3dvcmtmbG93LXRzY29uZmlnLXJlZ3VsYXItJykpO1xuICAgIGNyZWF0ZWRSb290cy5wdXNoKHJvb3QpO1xuICAgIGNvbnN0IHdvcmtpbmdEaXIgPSBqb2luKHJvb3QsICdhcHAnKTtcbiAgICBjb25zdCB0c2NvbmZpZ1BhdGggPSBqb2luKHdvcmtpbmdEaXIsICd0c2NvbmZpZy5qc29uJyk7XG5cbiAgICB3cml0ZUZpbGUoXG4gICAgICB0c2NvbmZpZ1BhdGgsXG4gICAgICBKU09OLnN0cmluZ2lmeShcbiAgICAgICAge1xuICAgICAgICAgIGNvbXBpbGVyT3B0aW9uczoge1xuICAgICAgICAgICAgcGF0aHM6IHtcbiAgICAgICAgICAgICAgJ0AvKic6IFsnLi8qJ10sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIG51bGwsXG4gICAgICAgIDJcbiAgICAgIClcbiAgICApO1xuXG4gICAgY29uc3Qgb3B0aW9ucyA9IGF3YWl0IGdldEVzYnVpbGRUc2NvbmZpZ09wdGlvbnModHNjb25maWdQYXRoKTtcbiAgICBleHBlY3Qob3B0aW9ucykudG9FcXVhbCh7IHRzY29uZmlnOiB0c2NvbmZpZ1BhdGggfSk7XG4gIH0pO1xuXG4gIHN5bWxpbmtUZXN0KFxuICAgICd1c2VzIHRzY29uZmlnUmF3IGZvciBzeW1saW5rZWQgY29uZmlncyBzbyBhbGlhc2VzIHJlc29sdmUgZnJvbSB3b3JraW5nIGRpcicsXG4gICAgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3Qgcm9vdCA9IG1rZHRlbXBTeW5jKGpvaW4ocmVhbFRtcGRpciwgJ3dvcmtmbG93LXRzY29uZmlnLXN5bWxpbmstJykpO1xuICAgICAgY3JlYXRlZFJvb3RzLnB1c2gocm9vdCk7XG4gICAgICBjb25zdCB3b3JraW5nRGlyID0gam9pbihyb290LCAnd2VicGFjay1hcHAnKTtcbiAgICAgIGNvbnN0IHNvdXJjZURpciA9IGpvaW4ocm9vdCwgJ3R1cmJvcGFjay1hcHAnKTtcbiAgICAgIGNvbnN0IHN5bWxpbmtUc2NvbmZpZ1BhdGggPSBqb2luKHdvcmtpbmdEaXIsICd0c2NvbmZpZy5qc29uJyk7XG5cbiAgICAgIHdyaXRlRmlsZShcbiAgICAgICAgam9pbihzb3VyY2VEaXIsICd0c2NvbmZpZy5qc29uJyksXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNvbXBpbGVyT3B0aW9uczoge1xuICAgICAgICAgICAgICBwYXRoczoge1xuICAgICAgICAgICAgICAgICdALyonOiBbJy4vKiddLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG51bGwsXG4gICAgICAgICAgMlxuICAgICAgICApXG4gICAgICApO1xuXG4gICAgICB3cml0ZUZpbGUoXG4gICAgICAgIGpvaW4od29ya2luZ0RpciwgJ3dvcmtmbG93cy90YXJnZXQudHMnKSxcbiAgICAgICAgJ2V4cG9ydCBjb25zdCBpZCA9IFwid2VicGFja1wiOydcbiAgICAgICk7XG4gICAgICB3cml0ZUZpbGUoXG4gICAgICAgIGpvaW4od29ya2luZ0RpciwgJ2FwcC8ud2VsbC1rbm93bi9hZ2VudC92MS9zdGVwcy50cycpLFxuICAgICAgICAnZXhwb3J0IGNvbnN0IGlkID0gXCJ3ZWJwYWNrLWFwcFwiOydcbiAgICAgICk7XG4gICAgICB3cml0ZUZpbGUoXG4gICAgICAgIGpvaW4oc291cmNlRGlyLCAnd29ya2Zsb3dzL3RhcmdldC50cycpLFxuICAgICAgICAnZXhwb3J0IGNvbnN0IGlkID0gXCJ0dXJib3BhY2tcIjsnXG4gICAgICApO1xuICAgICAgd3JpdGVGaWxlKFxuICAgICAgICBqb2luKHNvdXJjZURpciwgJ2FwcC8ud2VsbC1rbm93bi9hZ2VudC92MS9zdGVwcy50cycpLFxuICAgICAgICAnZXhwb3J0IGNvbnN0IGlkID0gXCJ0dXJib3BhY2stYXBwXCI7J1xuICAgICAgKTtcblxuICAgICAgc3ltbGlua1N5bmMoXG4gICAgICAgIGpvaW4oc291cmNlRGlyLCAndHNjb25maWcuanNvbicpLFxuICAgICAgICBzeW1saW5rVHNjb25maWdQYXRoLFxuICAgICAgICAnZmlsZSdcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IGRpcmVjdElucHV0cyA9IGF3YWl0IGJ1aWxkSW5wdXRzKHtcbiAgICAgICAgd29ya2luZ0RpcixcbiAgICAgICAgdHNjb25maWdPcHRpb25zOiB7IHRzY29uZmlnOiBzeW1saW5rVHNjb25maWdQYXRoIH0sXG4gICAgICB9KTtcbiAgICAgIGV4cGVjdChcbiAgICAgICAgZGlyZWN0SW5wdXRzLnNvbWUoKGlucHV0KSA9PlxuICAgICAgICAgIGlucHV0LmluY2x1ZGVzKCd0dXJib3BhY2stYXBwL3dvcmtmbG93cy90YXJnZXQudHMnKVxuICAgICAgICApXG4gICAgICApLnRvQmUodHJ1ZSk7XG4gICAgICBleHBlY3QoXG4gICAgICAgIGRpcmVjdElucHV0cy5zb21lKChpbnB1dCkgPT5cbiAgICAgICAgICBpbnB1dC5pbmNsdWRlcygndHVyYm9wYWNrLWFwcC9hcHAvLndlbGwta25vd24vYWdlbnQvdjEvc3RlcHMudHMnKVxuICAgICAgICApXG4gICAgICApLnRvQmUodHJ1ZSk7XG5cbiAgICAgIGNvbnN0IG9wdGlvbnMgPSBhd2FpdCBnZXRFc2J1aWxkVHNjb25maWdPcHRpb25zKHN5bWxpbmtUc2NvbmZpZ1BhdGgpO1xuICAgICAgZXhwZWN0KHR5cGVvZiBvcHRpb25zLnRzY29uZmlnUmF3KS50b0JlKCdzdHJpbmcnKTtcbiAgICAgIGV4cGVjdChvcHRpb25zLnRzY29uZmlnKS50b0JlVW5kZWZpbmVkKCk7XG5cbiAgICAgIGNvbnN0IG5vcm1hbGl6ZWRJbnB1dHMgPSBhd2FpdCBidWlsZElucHV0cyh7XG4gICAgICAgIHdvcmtpbmdEaXIsXG4gICAgICAgIHRzY29uZmlnT3B0aW9uczogb3B0aW9ucyxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QoXG4gICAgICAgIG5vcm1hbGl6ZWRJbnB1dHMuc29tZSgoaW5wdXQpID0+IGlucHV0LmVuZHNXaXRoKCd3b3JrZmxvd3MvdGFyZ2V0LnRzJykpXG4gICAgICApLnRvQmUodHJ1ZSk7XG4gICAgICBleHBlY3QoXG4gICAgICAgIG5vcm1hbGl6ZWRJbnB1dHMuc29tZSgoaW5wdXQpID0+XG4gICAgICAgICAgaW5wdXQuZW5kc1dpdGgoJ2FwcC8ud2VsbC1rbm93bi9hZ2VudC92MS9zdGVwcy50cycpXG4gICAgICAgIClcbiAgICAgICkudG9CZSh0cnVlKTtcbiAgICAgIGV4cGVjdChcbiAgICAgICAgbm9ybWFsaXplZElucHV0cy5zb21lKChpbnB1dCkgPT5cbiAgICAgICAgICBpbnB1dC5pbmNsdWRlcygndHVyYm9wYWNrLWFwcC93b3JrZmxvd3MvdGFyZ2V0LnRzJylcbiAgICAgICAgKVxuICAgICAgKS50b0JlKGZhbHNlKTtcbiAgICAgIGV4cGVjdChcbiAgICAgICAgbm9ybWFsaXplZElucHV0cy5zb21lKChpbnB1dCkgPT5cbiAgICAgICAgICBpbnB1dC5pbmNsdWRlcygndHVyYm9wYWNrLWFwcC9hcHAvLndlbGwta25vd24vYWdlbnQvdjEvc3RlcHMudHMnKVxuICAgICAgICApXG4gICAgICApLnRvQmUoZmFsc2UpO1xuICAgIH1cbiAgKTtcbn0pO1xuIl19
@@ -216,4 +216,4 @@ export class Foo {
216
216
  expect(warnMessage).toContain('"use step" functions');
217
217
  });
218
218
  });
219
- //# sourceMappingURL=external-package-warning.test.js.map
219
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWwtcGFja2FnZS13YXJuaW5nLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZXh0ZXJuYWwtcGFja2FnZS13YXJuaW5nLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixhQUFhLEdBQ2QsTUFBTSxTQUFTLENBQUM7QUFDakIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNqQyxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDekUsT0FBTyxFQUFFLFdBQVcsRUFBMEIsTUFBTSxtQkFBbUIsQ0FBQztBQUd4RTs7R0FFRztBQUNILE1BQU0sV0FBWSxTQUFRLFdBQVc7SUFDbkMsS0FBSyxDQUFDLEtBQUs7UUFDVCxRQUFRO0lBQ1YsQ0FBQztJQUVELG1CQUFtQjtJQUNaLHFCQUFxQixDQUMxQixNQUFnQixFQUNoQixNQUFjO1FBRWQsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM5QyxDQUFDO0NBQ0Y7QUFFRCx3RUFBd0U7QUFDeEUsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFFMUMsU0FBUyxTQUFTLENBQUMsSUFBWSxFQUFFLFFBQWdCO0lBQy9DLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5QyxhQUFhLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBRUQsU0FBUyxh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bnQiOlsiaW1wb3J0IHtcbiAgbWtkaXJTeW5jLFxuICBta2R0ZW1wU3luYyxcbiAgcmVhbHBhdGhTeW5jLFxuICBybVN5bmMsXG4gIHdyaXRlRmlsZVN5bmMsXG59IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHsgdG1wZGlyIH0gZnJvbSAnbm9kZTpvcyc7XG5pbXBvcnQgeyBkaXJuYW1lLCBqb2luIH0gZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7IGFmdGVyRWFjaCwgYmVmb3JlRWFjaCwgZGVzY3JpYmUsIGV4cGVjdCwgaXQsIHZpIH0gZnJvbSAndml0ZXN0JztcbmltcG9ydCB7IEJhc2VCdWlsZGVyLCB0eXBlIERpc2NvdmVyZWRFbnRyaWVzIH0gZnJvbSAnLi9iYXNlLWJ1aWxkZXIuanMnO1xuaW1wb3J0IHR5cGUgeyBTdGFuZGFsb25lQ29uZmlnIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbi8qKlxuICogTWluaW1hbCBzdWJjbGFzcyB0byBleHBvc2UgdGhlIHByb3RlY3RlZCBgZGlzY292ZXJFbnRyaWVzKClgIGZvciB0ZXN0aW5nLlxuICovXG5jbGFzcyBUZXN0QnVpbGRlciBleHRlbmRzIEJhc2VCdWlsZGVyIHtcbiAgYXN5bmMgYnVpbGQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gbm8tb3BcbiAgfVxuXG4gIC8vIEV4cG9zZSBmb3IgdGVzdHNcbiAgcHVibGljIGRpc2NvdmVyRW50cmllc1B1YmxpYyhcbiAgICBpbnB1dHM6IHN0cmluZ1tdLFxuICAgIG91dGRpcjogc3RyaW5nXG4gICk6IFByb21pc2U8RGlzY292ZXJlZEVudHJpZXM+IHtcbiAgICByZXR1cm4gdGhpcy5kaXNjb3ZlckVudHJpZXMoaW5wdXRzLCBvdXRkaXIpO1xuICB9XG59XG5cbi8vIFJlc29sdmUgc3ltbGlua3MgaW4gdG1wZGlyIHRvIGF2b2lkIG1hY09TIC92YXIgLT4gL3ByaXZhdGUvdmFyIGlzc3Vlc1xuY29uc3QgcmVhbFRtcGRpciA9IHJlYWxwYXRoU3luYyh0bXBkaXIoKSk7XG5cbmZ1bmN0aW9uIHdyaXRlRmlsZShwYXRoOiBzdHJpbmcsIGNvbnRlbnRzOiBzdHJpbmcpOiB2b2lkIHtcbiAgbWtkaXJTeW5jKGRpcm5hbWUocGF0aCksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICB3cml0ZUZpbGVTeW5jKHBhdGgsIGNvbnRlbnRzLCAndXRmLTgnKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlQnVpbGRlcihcbiAgd29ya2luZ0Rpcjogc3RyaW5nLFxuICBleHRlcm5hbFBhY2thZ2VzOiBzdHJpbmdbXVxuKTogVGVzdEJ1aWxkZXIge1xuICBjb25zdCBjb25maWc6IFN0YW5kYWxvbmVDb25maWcgPSB7XG4gICAgYnVpbGRUYXJnZXQ6ICdzdGFuZGFsb25lJyxcbiAgICB3b3JraW5nRGlyLFxuICAgIGRpcnM6IFsnLiddLFxuICAgIGV4dGVybmFsUGFja2FnZXMsXG4gICAgc3RlcHNCdW5kbGVQYXRoOiBqb2luKHdvcmtpbmdEaXIsICdzdGVwcy5qcycpLFxuICAgIHdvcmtmbG93c0J1bmRsZVBhdGg6IGpvaW4od29ya2luZ0RpciwgJ3dvcmtmbG93cy5qcycpLFxuICAgIHdlYmhvb2tCdW5kbGVQYXRoOiBqb2luKHdvcmtpbmdEaXIsICd3ZWJob29rLmpzJyksXG4gIH07XG4gIHJldHVybiBuZXcgVGVzdEJ1aWxkZXIoY29uZmlnKTtcbn1cblxuZGVzY3JpYmUoJ3dhcm5BYm91dEV4dGVybmFsV29ya2Zsb3dQYWNrYWdlcycsICgpID0+IHtcbiAgbGV0IHRlc3RSb290OiBzdHJpbmc7XG4gIGxldCB3YXJuU3B5OiBSZXR1cm5UeXBlPHR5cGVvZiB2aS5zcHlPbj47XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgdGVzdFJvb3QgPSBta2R0ZW1wU3luYyhqb2luKHJlYWxUbXBkaXIsICd3b3JrZmxvdy1leHRlcm5hbC1wa2ctd2FybmluZy0nKSk7XG4gICAgd2FyblNweSA9IHZpLnNweU9uKGNvbnNvbGUsICd3YXJuJykubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IHt9KTtcbiAgfSk7XG5cbiAgYWZ0ZXJFYWNoKCgpID0+IHtcbiAgICB3YXJuU3B5Lm1vY2tSZXN0b3JlKCk7XG4gICAgcm1TeW5jKHRlc3RSb290LCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gIH0pO1xuXG4gIGl0KCd3YXJucyB3aGVuIGFuIGV4dGVybmFsIHBhY2thZ2UgZGVwZW5kcyBvbiBAd29ya2Zsb3cvc2VyZGUnLCBhc3luYyAoKSA9PiB7XG4gICAgLy8gQ3JlYXRlIGEgbW9jayBwcm9qZWN0IHdpdGggYSBub2RlX21vZHVsZXMgcGFja2FnZVxuICAgIGNvbnN0IHByb2plY3REaXIgPSBqb2luKHRlc3RSb290LCAncHJvamVjdCcpO1xuXG4gICAgLy8gQ3JlYXRlIGEgbWluaW1hbCBlbnRyeSBmaWxlIGZvciB0aGUgcHJvamVjdFxuICAgIHdyaXRlRmlsZShqb2luKHByb2plY3REaXIsICdpbmRleC50cycpLCAnZXhwb3J0IGNvbnN0IHggPSAxOycpO1xuXG4gICAgLy8gQ3JlYXRlIHRoZSBleHRlcm5hbCBwYWNrYWdlIHdpdGggQHdvcmtmbG93L3NlcmRlIGRlcGVuZGVuY3lcbiAgICB3cml0ZUZpbGUoXG4gICAgICBqb2luKHByb2plY3REaXIsICdub2RlX21vZHVsZXMnLCAnbXktc2VyZGUtcGtnJywgJ3BhY2thZ2UuanNvbicpLFxuICAgICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBuYW1lOiAnbXktc2VyZGUtcGtnJyxcbiAgICAgICAgdmVyc2lvbjogJzEuMC4wJyxcbiAgICAgICAgbWFpbjogJ2luZGV4LmpzJyxcbiAgICAgICAgZGVwZW5kZW5jaWVzOiB7XG4gICAgICAgICAgJ0B3b3JrZmxvdy9zZXJkZSc6ICdeMS4wLjAnLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICApO1xuICAgIHdyaXRlRmlsZShcbiAgICAgIGpvaW4ocHJvamVjdERpciwgJ25vZGVfbW9kdWxlcycsICdteS1zZXJkZS1wa2cnLCAnaW5kZXguanMnKSxcbiAgICAgICdleHBvcnQgY2xhc3MgRm9vIHt9J1xuICAgICk7XG5cbiAgICBjb25zdCBidWlsZGVyID0gY3JlYXRlQnVpbGRlcihwcm9qZWN0RGlyLCBbJ215LXNlcmRlLXBrZyddKTtcbiAgICBhd2FpdCBidWlsZGVyLmRpc2NvdmVyRW50cmllc1B1YmxpYyhcbiAgICAgIFtqb2luKHByb2plY3REaXIsICdpbmRleC50cycpXSxcbiAgICAgIGpvaW4ocHJvamVjdERpciwgJ291dCcpXG4gICAgKTtcblxuICAgIGV4cGVjdCh3YXJuU3B5KS50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgY29uc3Qgd2Fybk1lc3NhZ2UgPSB3YXJuU3B5Lm1vY2suY2FsbHNbMF0/LlswXSBhcyBzdHJpbmc7XG4gICAgZXhwZWN0KHdhcm5NZXNzYWdlKS50b0NvbnRhaW4oJ215LXNlcmRlLXBrZycpO1xuICAgIGV4cGVjdCh3YXJuTWVzc2FnZSkudG9Db250YWluKCdzZXJ2ZXJFeHRlcm5hbFBhY2thZ2VzJyk7XG4gICAgZXhwZWN0KHdhcm5NZXNzYWdlKS50b0NvbnRhaW4oJ3NlcmlhbGl6YXRpb24gY2xhc3NlcycpO1xuICB9KTtcblxuICBpdCgnd2FybnMgd2hlbiBhbiBleHRlcm5hbCBwYWNrYWdlIHNvdXJjZSBjb250YWlucyBzZXJkZSBzeW1ib2xzJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHByb2plY3REaXIgPSBqb2luKHRlc3RSb290LCAncHJvamVjdCcpO1xuXG4gICAgd3JpdGVGaWxlKGpvaW4ocHJvamVjdERpciwgJ2luZGV4LnRzJyksICdleHBvcnQgY29uc3QgeCA9IDE7Jyk7XG5cbiAgICAvLyBQYWNrYWdlIHdpdGhvdXQgQHdvcmtmbG93L3NlcmRlIGRlcCBidXQgd2l0aCBTeW1ib2wuZm9yIHBhdHRlcm5zIGluIHNvdXJjZVxuICAgIHdyaXRlRmlsZShcbiAgICAgIGpvaW4ocHJvamVjdERpciwgJ25vZGVfbW9kdWxlcycsICdteS1zeW1ib2wtcGtnJywgJ3BhY2thZ2UuanNvbicpLFxuICAgICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBuYW1lOiAnbXktc3ltYm9sLXBrZycsXG4gICAgICAgIHZlcnNpb246ICcxLjAuMCcsXG4gICAgICAgIG1haW46ICdpbmRleC5qcycsXG4gICAgICB9KVxuICAgICk7XG4gICAgd3JpdGVGaWxlKFxuICAgICAgam9pbihwcm9qZWN0RGlyLCAnbm9kZV9tb2R1bGVzJywgJ215LXN5bWJvbC1wa2cnLCAnaW5kZXguanMnKSxcbiAgICAgIGBleHBvcnQgY2xhc3MgQmFyIHtcbiAgc3RhdGljIFtTeW1ib2wuZm9yKCd3b3JrZmxvdy1zZXJpYWxpemUnKV0oaW5zdGFuY2UpIHsgcmV0dXJuIHt9OyB9XG4gIHN0YXRpYyBbU3ltYm9sLmZvcignd29ya2Zsb3ctZGVzZXJpYWxpemUnKV0oZGF0YSkgeyByZXR1cm4gbmV3IEJhcigpOyB9XG59YFxuICAgICk7XG5cbiAgICBjb25zdCBidWlsZGVyID0gY3JlYXRlQnVpbGRlcihwcm9qZWN0RGlyLCBbJ215LXN5bWJvbC1wa2cnXSk7XG4gICAgYXdhaXQgYnVpbGRlci5kaXNjb3ZlckVudHJpZXNQdWJsaWMoXG4gICAgICBbam9pbihwcm9qZWN0RGlyLCAnaW5kZXgudHMnKV0sXG4gICAgICBqb2luKHByb2plY3REaXIsICdvdXQnKVxuICAgICk7XG5cbiAgICBleHBlY3Qod2FyblNweSkudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgIGNvbnN0IHdhcm5NZXNzYWdlID0gd2FyblNweS5tb2NrLmNhbGxzWzBdPy5bMF0gYXMgc3RyaW5nO1xuICAgIGV4cGVjdCh3YXJuTWVzc2FnZSkudG9Db250YWluKCdteS1zeW1ib2wtcGtnJyk7XG4gICAgZXhwZWN0KHdhcm5NZXNzYWdlKS50b0NvbnRhaW4oJ3NlcmlhbGl6YXRpb24gY2xhc3NlcycpO1xuICB9KTtcblxuICBpdCgnd2FybnMgd2hlbiBhbiBleHRlcm5hbCBwYWNrYWdlIGNvbnRhaW5zIFwidXNlIHN0ZXBcIiBkaXJlY3RpdmVzJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHByb2plY3REaXIgPSBqb2luKHRlc3RSb290LCAncHJvamVjdCcpO1xuXG4gICAgd3JpdGVGaWxlKGpvaW4ocHJvamVjdERpciwgJ2luZGV4LnRzJyksICdleHBvcnQgY29uc3QgeCA9IDE7Jyk7XG5cbiAgICB3cml0ZUZpbGUoXG4gICAgICBqb2luKHByb2plY3REaXIsICdub2RlX21vZHVsZXMnLCAnbXktc3RlcC1wa2cnLCAncGFja2FnZS5qc29uJyksXG4gICAgICBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIG5hbWU6ICdteS1zdGVwLXBrZycsXG4gICAgICAgIHZlcnNpb246ICcxLjAuMCcsXG4gICAgICAgIG1haW46ICdpbmRleC5qcycsXG4gICAgICB9KVxuICAgICk7XG4gICAgd3JpdGVGaWxlKFxuICAgICAgam9pbihwcm9qZWN0RGlyLCAnbm9kZV9tb2R1bGVzJywgJ215LXN0ZXAtcGtnJywgJ2luZGV4LmpzJyksXG4gICAgICBgZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRvV29yaygpIHtcbiAgXCJ1c2Ugc3RlcFwiO1xuICByZXR1cm4gNDI7XG59YFxuICAgICk7XG5cbiAgICBjb25zdCBidWlsZGVyID0gY3JlYXRlQnVpbGRlcihwcm9qZWN0RGlyLCBbJ215LXN0ZXAtcGtnJ10pO1xuICAgIGF3YWl0IGJ1aWxkZXIuZGlzY292ZXJFbnRyaWVzUHVibGljKFxuICAgICAgW2pvaW4ocHJvamVjdERpciwgJ2luZGV4LnRzJyldLFxuICAgICAgam9pbihwcm9qZWN0RGlyLCAnb3V0JylcbiAgICApO1xuXG4gICAgZXhwZWN0KHdhcm5TcHkpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICBjb25zdCB3YXJuTWVzc2FnZSA9IHdhcm5TcHkubW9jay5jYWxsc1swXT8uWzBdIGFzIHN0cmluZztcbiAgICBleHBlY3Qod2Fybk1lc3NhZ2UpLnRvQ29udGFpbignbXktc3RlcC1wa2cnKTtcbiAgICBleHBlY3Qod2Fybk1lc3NhZ2UpLnRvQ29udGFpbignXCJ1c2Ugc3RlcFwiIGZ1bmN0aW9ucycpO1xuICB9KTtcblxuICBpdCgnd2FybnMgd2hlbiBhbiBleHRlcm5hbCBwYWNrYWdlIGNvbnRhaW5zIFwidXNlIHdvcmtmbG93XCIgZGlyZWN0aXZlcycsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBwcm9qZWN0RGlyID0gam9pbih0ZXN0Um9vdCwgJ3Byb2plY3QnKTtcblxuICAgIHdyaXRlRmlsZShqb2luKHByb2plY3REaXIsICdpbmRleC50cycpLCAnZXhwb3J0IGNvbnN0IHggPSAxOycpO1xuXG4gICAgd3JpdGVGaWxlKFxuICAgICAgam9pbihwcm9qZWN0RGlyLCAnbm9kZV9tb2R1bGVzJywgJ215LXdvcmtmbG93LXBrZycsICdwYWNrYWdlLmpzb24nKSxcbiAgICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgbmFtZTogJ215LXdvcmtmbG93LXBrZycsXG4gICAgICAgIHZlcnNpb246ICcxLjAuMCcsXG4gICAgICAgIG1haW46ICdpbmRleC5qcycsXG4gICAgICB9KVxuICAgICk7XG4gICAgd3JpdGVGaWxlKFxuICAgICAgam9pbihwcm9qZWN0RGlyLCAnbm9kZV9tb2R1bGVzJywgJ215LXdvcmtmbG93LXBrZycsICdpbmRleC5qcycpLFxuICAgICAgYGV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5Kb2IoKSB7XG4gIFwidXNlIHdvcmtmbG93XCI7XG4gIHJldHVybiBcImRvbmVcIjtcbn1gXG4gICAgKTtcblxuICAgIGNvbnN0IGJ1aWxkZXIgPSBjcmVhdGVCdWlsZGVyKHByb2plY3REaXIsIFsnbXktd29ya2Zsb3ctcGtnJ10pO1xuICAgIGF3YWl0IGJ1aWxkZXIuZGlzY292ZXJFbnRyaWVzUHVibGljKFxuICAgICAgW2pvaW4ocHJvamVjdERpciwgJ2luZGV4LnRzJyldLFxuICAgICAgam9pbihwcm9qZWN0RGlyLCAnb3V0JylcbiAgICApO1xuXG4gICAgZXhwZWN0KHdhcm5TcHkpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICBjb25zdCB3YXJuTWVzc2FnZSA9IHdhcm5TcHkubW9jay5jYWxsc1swXT8uWzBdIGFzIHN0cmluZztcbiAgICBleHBlY3Qod2Fybk1lc3NhZ2UpLnRvQ29udGFpbignbXktd29ya2Zsb3ctcGtnJyk7XG4gICAgZXhwZWN0KHdhcm5NZXNzYWdlKS50b0NvbnRhaW4oJ1widXNlIHdvcmtmbG93XCIgZnVuY3Rpb25zJyk7XG4gIH0pO1xuXG4gIGl0KCdkb2VzIG5vdCB3YXJuIGZvciBwYWNrYWdlcyB3aXRob3V0IHdvcmtmbG93IHBhdHRlcm5zJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHByb2plY3REaXIgPSBqb2luKHRlc3RSb290LCAncHJvamVjdCcpO1xuXG4gICAgd3JpdGVGaWxlKGpvaW4ocHJvamVjdERpciwgJ2luZGV4LnRzJyksICdleHBvcnQgY29uc3QgeCA9IDE7Jyk7XG5cbiAgICB3cml0ZUZpbGUoXG4gICAgICBqb2luKHByb2plY3REaXIsICdub2RlX21vZHVsZXMnLCAncGxhaW4tcGtnJywgJ3BhY2thZ2UuanNvbicpLFxuICAgICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBuYW1lOiAncGxhaW4tcGtnJyxcbiAgICAgICAgdmVyc2lvbjogJzEuMC4wJyxcbiAgICAgICAgbWFpbjogJ2luZGV4LmpzJyxcbiAgICAgIH0pXG4gICAgKTtcbiAgICB3cml0ZUZpbGUoXG4gICAgICBqb2luKHByb2plY3REaXIsICdub2RlX21vZHVsZXMnLCAncGxhaW4tcGtnJywgJ2luZGV4LmpzJyksXG4gICAgICAnZXhwb3J0IGNvbnN0IGhlbGxvID0gXCJ3b3JsZFwiOydcbiAgICApO1xuXG4gICAgY29uc3QgYnVpbGRlciA9IGNyZWF0ZUJ1aWxkZXIocHJvamVjdERpciwgWydwbGFpbi1wa2cnXSk7XG4gICAgYXdhaXQgYnVpbGRlci5kaXNjb3ZlckVudHJpZXNQdWJsaWMoXG4gICAgICBbam9pbihwcm9qZWN0RGlyLCAnaW5kZXgudHMnKV0sXG4gICAgICBqb2luKHByb2plY3REaXIsICdvdXQnKVxuICAgICk7XG5cbiAgICBleHBlY3Qod2FyblNweSkubm90LnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgfSk7XG5cbiAgaXQoJ2RvZXMgbm90IHdhcm4gZm9yIHBzZXVkby1wYWNrYWdlcyAoc2VydmVyLW9ubHksIGNsaWVudC1vbmx5KScsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBwcm9qZWN0RGlyID0gam9pbih0ZXN0Um9vdCwgJ3Byb2plY3QnKTtcblxuICAgIHdyaXRlRmlsZShqb2luKHByb2plY3REaXIsICdpbmRleC50cycpLCAnZXhwb3J0IGNvbnN0IHggPSAxOycpO1xuXG4gICAgY29uc3QgYnVpbGRlciA9IGNyZWF0ZUJ1aWxkZXIocHJvamVjdERpciwgWydzZXJ2ZXItb25seScsICdjbGllbnQtb25seSddKTtcbiAgICBhd2FpdCBidWlsZGVyLmRpc2NvdmVyRW50cmllc1B1YmxpYyhcbiAgICAgIFtqb2luKHByb2plY3REaXIsICdpbmRleC50cycpXSxcbiAgICAgIGpvaW4ocHJvamVjdERpciwgJ291dCcpXG4gICAgKTtcblxuICAgIGV4cGVjdCh3YXJuU3B5KS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpO1xuICB9KTtcblxuICBpdCgnZG9lcyBub3Qgd2FybiB3aGVuIGV4dGVybmFsUGFja2FnZXMgaXMgZW1wdHknLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcHJvamVjdERpciA9IGpvaW4odGVzdFJvb3QsICdwcm9qZWN0Jyk7XG5cbiAgICB3cml0ZUZpbGUoam9pbihwcm9qZWN0RGlyLCAnaW5kZXgudHMnKSwgJ2V4cG9ydCBjb25zdCB4ID0gMTsnKTtcblxuICAgIGNvbnN0IGJ1aWxkZXIgPSBjcmVhdGVCdWlsZGVyKHByb2plY3REaXIsIFtdKTtcbiAgICBhd2FpdCBidWlsZGVyLmRpc2NvdmVyRW50cmllc1B1YmxpYyhcbiAgICAgIFtqb2luKHByb2plY3REaXIsICdpbmRleC50cycpXSxcbiAgICAgIGpvaW4ocHJvamVjdERpciwgJ291dCcpXG4gICAgKTtcblxuICAgIGV4cGVjdCh3YXJuU3B5KS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpO1xuICB9KTtcblxuICBpdCgnd2FybnMgb25seSBvbmNlIHBlciBwYWNrYWdlIGFjcm9zcyBtdWx0aXBsZSBkaXNjb3ZlckVudHJpZXMgY2FsbHMnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcHJvamVjdERpciA9IGpvaW4odGVzdFJvb3QsICdwcm9qZWN0Jyk7XG5cbiAgICB3cml0ZUZpbGUoam9pbihwcm9qZWN0RGlyLCAnaW5kZXgudHMnKSwgJ2V4cG9ydCBjb25zdCB4ID0gMTsnKTtcbiAgICB3cml0ZUZpbGUoam9pbihwcm9qZWN0RGlyLCAnb3RoZXIudHMnKSwgJ2V4cG9ydCBjb25zdCB5ID0gMjsnKTtcblxuICAgIHdyaXRlRmlsZShcbiAgICAgIGpvaW4ocHJvamVjdERpciwgJ25vZGVfbW9kdWxlcycsICdteS1zZXJkZS1wa2cnLCAncGFja2FnZS5qc29uJyksXG4gICAgICBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIG5hbWU6ICdteS1zZXJkZS1wa2cnLFxuICAgICAgICB2ZXJzaW9uOiAnMS4wLjAnLFxuICAgICAgICBtYWluOiAnaW5kZXguanMnLFxuICAgICAgICBkZXBlbmRlbmNpZXM6IHsgJ0B3b3JrZmxvdy9zZXJkZSc6ICdeMS4wLjAnIH0sXG4gICAgICB9KVxuICAgICk7XG4gICAgd3JpdGVGaWxlKFxuICAgICAgam9pbihwcm9qZWN0RGlyLCAnbm9kZV9tb2R1bGVzJywgJ215LXNlcmRlLXBrZycsICdpbmRleC5qcycpLFxuICAgICAgJ2V4cG9ydCBjbGFzcyBGb28ge30nXG4gICAgKTtcblxuICAgIGNvbnN0IGJ1aWxkZXIgPSBjcmVhdGVCdWlsZGVyKHByb2plY3REaXIsIFsnbXktc2VyZGUtcGtnJ10pO1xuXG4gICAgLy8gQ2FsbCBkaXNjb3ZlckVudHJpZXMgdHdpY2Ugd2l0aCBkaWZmZXJlbnQgaW5wdXRzXG4gICAgYXdhaXQgYnVpbGRlci5kaXNjb3ZlckVudHJpZXNQdWJsaWMoXG4gICAgICBbam9pbihwcm9qZWN0RGlyLCAnaW5kZXgudHMnKV0sXG4gICAgICBqb2luKHByb2plY3REaXIsICdvdXQnKVxuICAgICk7XG4gICAgYXdhaXQgYnVpbGRlci5kaXNjb3ZlckVudHJpZXNQdWJsaWMoXG4gICAgICBbam9pbihwcm9qZWN0RGlyLCAnb3RoZXIudHMnKV0sXG4gICAgICBqb2luKHByb2plY3REaXIsICdvdXQyJylcbiAgICApO1xuXG4gICAgLy8gU2hvdWxkIG9ubHkgd2FybiBvbmNlXG4gICAgY29uc3Qgd2FybkNhbGxzID0gd2FyblNweS5tb2NrLmNhbGxzLmZpbHRlcigoY2FsbDogdW5rbm93bltdKSA9PlxuICAgICAgKGNhbGxbMF0gYXMgc3RyaW5nKS5pbmNsdWRlcygnbXktc2VyZGUtcGtnJylcbiAgICApO1xuICAgIGV4cGVjdCh3YXJuQ2FsbHMpLnRvSGF2ZUxlbmd0aCgxKTtcbiAgfSk7XG5cbiAgaXQoJ2xpc3RzIG11bHRpcGxlIGRldGVjdGVkIGlzc3VlcyBpbiB0aGUgd2FybmluZyBtZXNzYWdlJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHByb2plY3REaXIgPSBqb2luKHRlc3RSb290LCAncHJvamVjdCcpO1xuXG4gICAgd3JpdGVGaWxlKGpvaW4ocHJvamVjdERpciwgJ2luZGV4LnRzJyksICdleHBvcnQgY29uc3QgeCA9IDE7Jyk7XG5cbiAgICB3cml0ZUZpbGUoXG4gICAgICBqb2luKHByb2plY3REaXIsICdub2RlX21vZHVsZXMnLCAnbXVsdGktcGtnJywgJ3BhY2thZ2UuanNvbicpLFxuICAgICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBuYW1lOiAnbXVsdGktcGtnJyxcbiAgICAgICAgdmVyc2lvbjogJzEuMC4wJyxcbiAgICAgICAgbWFpbjogJ2luZGV4LmpzJyxcbiAgICAgICAgZGVwZW5kZW5jaWVzOiB7ICdAd29ya2Zsb3cvc2VyZGUnOiAnXjEuMC4wJyB9LFxuICAgICAgfSlcbiAgICApO1xuICAgIHdyaXRlRmlsZShcbiAgICAgIGpvaW4ocHJvamVjdERpciwgJ25vZGVfbW9kdWxlcycsICdtdWx0aS1wa2cnLCAnaW5kZXguanMnKSxcbiAgICAgIGBleHBvcnQgYXN5bmMgZnVuY3Rpb24gZG9Xb3JrKCkge1xuICBcInVzZSBzdGVwXCI7XG4gIHJldHVybiA0Mjtcbn1cbmV4cG9ydCBjbGFzcyBGb28ge1xuICBzdGF0aWMgW1N5bWJvbC5mb3IoJ3dvcmtmbG93LXNlcmlhbGl6ZScpXShpbnN0YW5jZSkgeyByZXR1cm4ge307IH1cbiAgc3RhdGljIFtTeW1ib2wuZm9yKCd3b3JrZmxvdy1kZXNlcmlhbGl6ZScpXShkYXRhKSB7IHJldHVybiBuZXcgRm9vKCk7IH1cbn1gXG4gICAgKTtcblxuICAgIGNvbnN0IGJ1aWxkZXIgPSBjcmVhdGVCdWlsZGVyKHByb2plY3REaXIsIFsnbXVsdGktcGtnJ10pO1xuICAgIGF3YWl0IGJ1aWxkZXIuZGlzY292ZXJFbnRyaWVzUHVibGljKFxuICAgICAgW2pvaW4ocHJvamVjdERpciwgJ2luZGV4LnRzJyldLFxuICAgICAgam9pbihwcm9qZWN0RGlyLCAnb3V0JylcbiAgICApO1xuXG4gICAgZXhwZWN0KHdhcm5TcHkpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICBjb25zdCB3YXJuTWVzc2FnZSA9IHdhcm5TcHkubW9jay5jYWxsc1swXT8uWzBdIGFzIHN0cmluZztcbiAgICBleHBlY3Qod2Fybk1lc3NhZ2UpLnRvQ29udGFpbignXCJ1c2Ugc3RlcFwiIGZ1bmN0aW9ucycpO1xuICAgIGV4cGVjdCh3YXJuTWVzc2FnZSkudG9Db250YWluKCdzZXJpYWxpemF0aW9uIGNsYXNzZXMnKTtcbiAgfSk7XG5cbiAgaXQoJ3dhcm5zIHZpYSBlbnRyeS1maWxlIGRldGVjdGlvbiB3aGVuIHBhY2thZ2UuanNvbiBoYXMgbm8gc2VyZGUgZGVwJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHByb2plY3REaXIgPSBqb2luKHRlc3RSb290LCAncHJvamVjdCcpO1xuXG4gICAgd3JpdGVGaWxlKGpvaW4ocHJvamVjdERpciwgJ2luZGV4LnRzJyksICdleHBvcnQgY29uc3QgeCA9IDE7Jyk7XG5cbiAgICAvLyBQYWNrYWdlIHdpdGhvdXQgQHdvcmtmbG93L3NlcmRlIGluIGRlcHMsIGJ1dCBlbnRyeSBoYXMgXCJ1c2Ugc3RlcFwiXG4gICAgd3JpdGVGaWxlKFxuICAgICAgam9pbihwcm9qZWN0RGlyLCAnbm9kZV9tb2R1bGVzJywgJ25vLXNlcmRlLWRlcC1wa2cnLCAncGFja2FnZS5qc29uJyksXG4gICAgICBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIG5hbWU6ICduby1zZXJkZS1kZXAtcGtnJyxcbiAgICAgICAgdmVyc2lvbjogJzEuMC4wJyxcbiAgICAgICAgbWFpbjogJ2luZGV4LmpzJyxcbiAgICAgIH0pXG4gICAgKTtcbiAgICB3cml0ZUZpbGUoXG4gICAgICBqb2luKHByb2plY3REaXIsICdub2RlX21vZHVsZXMnLCAnbm8tc2VyZGUtZGVwLXBrZycsICdpbmRleC5qcycpLFxuICAgICAgYGV4cG9ydCBhc3luYyBmdW5jdGlvbiBkb1dvcmsoKSB7XG4gIFwidXNlIHN0ZXBcIjtcbiAgcmV0dXJuIDQyO1xufWBcbiAgICApO1xuXG4gICAgY29uc3QgYnVpbGRlciA9IGNyZWF0ZUJ1aWxkZXIocHJvamVjdERpciwgWyduby1zZXJkZS1kZXAtcGtnJ10pO1xuICAgIGF3YWl0IGJ1aWxkZXIuZGlzY292ZXJFbnRyaWVzUHVibGljKFxuICAgICAgW2pvaW4ocHJvamVjdERpciwgJ2luZGV4LnRzJyldLFxuICAgICAgam9pbihwcm9qZWN0RGlyLCAnb3V0JylcbiAgICApO1xuXG4gICAgZXhwZWN0KHdhcm5TcHkpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICBjb25zdCB3YXJuTWVzc2FnZSA9IHdhcm5TcHkubW9jay5jYWxsc1swXT8uWzBdIGFzIHN0cmluZztcbiAgICBleHBlY3Qod2Fybk1lc3NhZ2UpLnRvQ29udGFpbignbm8tc2VyZGUtZGVwLXBrZycpO1xuICAgIGV4cGVjdCh3YXJuTWVzc2FnZSkudG9Db250YWluKCdcInVzZSBzdGVwXCIgZnVuY3Rpb25zJyk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -165,4 +165,4 @@ describe('getDiagnosticsManifestPath', () => {
165
165
  expect(builder.getDiagnosticsManifestPath()).toBe(join(testRoot, '.vercel/output/diagnostics/workflows-manifest.json'));
166
166
  });
167
167
  });
168
- //# sourceMappingURL=get-input-files.test.js.map
168
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWlucHV0LWZpbGVzLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZ2V0LWlucHV0LWZpbGVzLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixhQUFhLEdBQ2QsTUFBTSxTQUFTLENBQUM7QUFDakIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNqQyxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHaEQ7O0dBRUc7QUFDSCxNQUFNLFdBQVksU0FBUSxXQUFXO0lBQ25DLEtBQUssQ0FBQyxLQUFLO1FBQ1QsUUFBUTtJQUNWLENBQUM7SUFFRCxtQkFBbUI7SUFDWixhQUFhO1FBQ2xCLE9BQU8sS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFTSwwQkFBMEI7UUFDL0IsT0FBTyxLQUFLLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0NBQ0Y7QUFFRCx3RUFBd0U7QUFDeEUsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFFMUM7Ozs7R0FJRztBQUNILFNBQVMsU0FBUyxDQUFDLENBQVM7SUFDMUIsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztBQUMvQixDQUFDO0FBRUQsU0FBUyxTQUFTLENBQUMsR0FBVyxFQUFFLFlBQW9CLEVBQUUsT0FBTyxHQUFHLEVBQUU7SUFDaEUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcs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RyxDQUFDLHFCQUFxQixDQUFDO1lBQzNDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixHQUFHLG1CQUFtQixDQUFDO1lBQzFELENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsZ0VBQWdFLEVBQUUsR0FBRyxFQUFFO1FBQ3hFLE1BQU0sTUFBTSxHQUE0QjtZQUN0QyxXQUFXLEVBQUUseUJBQXlCO1lBQ3RDLFVBQVUsRUFBRSxRQUFRO1lBQ3BCLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQztZQUNiLGVBQWUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQztZQUMzQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQztZQUNuRCxpQkFBaUIsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQztTQUNoRCxDQUFDO1FBQ0YsTUFBTSxPQUFPLEdBQUcsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFeEMsTUFBTSxDQUFDLE9BQU8sQ0FBQywwQkFBMEIsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUMvQyxJQUFJLENBQUMsUUFBUSxFQUFFLG9EQUFvRCxDQUFDLENBQ3JFLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgbWtkaXJTeW5jLFxuICBta2R0ZW1wU3luYyxcbiAgcmVhbHBhdGhTeW5jLFxuICBybVN5bmMsXG4gIHdyaXRlRmlsZVN5bmMsXG59IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHsgdG1wZGlyIH0gZnJvbSAnbm9kZTpvcyc7XG5pbXBvcnQgeyBkaXJuYW1lLCBqb2luIH0gZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7IGFmdGVyRWFjaCwgYmVmb3JlRWFjaCwgZGVzY3JpYmUsIGV4cGVjdCwgaXQgfSBmcm9tICd2aXRlc3QnO1xuaW1wb3J0IHsgQmFzZUJ1aWxkZXIgfSBmcm9tICcuL2Jhc2UtYnVpbGRlci5qcyc7XG5pbXBvcnQgdHlwZSB7IFN0YW5kYWxvbmVDb25maWcsIFZlcmNlbEJ1aWxkT3V0cHV0Q29uZmlnIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbi8qKlxuICogTWluaW1hbCBzdWJjbGFzcyB0byBleHBvc2UgdGhlIHByb3RlY3RlZCBgZ2V0SW5wdXRGaWxlcygpYCBmb3IgdGVzdGluZy5cbiAqL1xuY2xhc3MgVGVzdEJ1aWxkZXIgZXh0ZW5kcyBCYXNlQnVpbGRlciB7XG4gIGFzeW5jIGJ1aWxkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIG5vLW9wXG4gIH1cblxuICAvLyBFeHBvc2UgZm9yIHRlc3RzXG4gIHB1YmxpYyBnZXRJbnB1dEZpbGVzKCk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICByZXR1cm4gc3VwZXIuZ2V0SW5wdXRGaWxlcygpO1xuICB9XG5cbiAgcHVibGljIGdldERpYWdub3N0aWNzTWFuaWZlc3RQYXRoKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHN1cGVyLmdldERpYWdub3N0aWNzTWFuaWZlc3RQYXRoKCk7XG4gIH1cbn1cblxuLy8gUmVzb2x2ZSBzeW1saW5rcyBpbiB0bXBkaXIgdG8gYXZvaWQgbWFjT1MgL3ZhciAtPiAvcHJpdmF0ZS92YXIgaXNzdWVzXG5jb25zdCByZWFsVG1wZGlyID0gcmVhbHBhdGhTeW5jKHRtcGRpcigpKTtcblxuLyoqXG4gKiBOb3JtYWxpemUgYSBwYXRoIHRvIGZvcndhcmQgc2xhc2hlcyBmb3IgY3Jvc3MtcGxhdGZvcm0gY29tcGFyaXNvbi5cbiAqIHRpbnlnbG9iYnkgYWx3YXlzIHJldHVybnMgZm9yd2FyZC1zbGFzaCBwYXRocywgZXZlbiBvbiBXaW5kb3dzLFxuICogd2hpbGUgTm9kZSdzIGBwYXRoLmpvaW4oKWAgdXNlcyBiYWNrc2xhc2hlcyBvbiBXaW5kb3dzLlxuICovXG5mdW5jdGlvbiBub3JtYWxpemUocDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHAucmVwbGFjZSgvXFxcXC9nLCAnLycpO1xufVxuXG5mdW5jdGlvbiB3cml0ZUZpbGUoZGlyOiBzdHJpbmcsIHJlbGF0aXZlUGF0aDogc3RyaW5nLCBjb250ZW50ID0gJycpOiBzdHJpbmcge1xuICBjb25zdCBmdWxsUGF0aCA9IGpvaW4oZGlyLCByZWxhdGl2ZVBhdGgpO1xuICBta2RpclN5bmMoZGlybmFtZShmdWxsUGF0aCksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICB3cml0ZUZpbGVTeW5jKGZ1bGxQYXRoLCBjb250ZW50LCAndXRmLTgnKTtcbiAgcmV0dXJuIGZ1bGxQYXRoO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVCdWlsZGVyKFxuICB3b3JraW5nRGlyOiBzdHJpbmcsXG4gIGRpcnM6IHN0cmluZ1tdLFxuICBjb25maWdPdmVycmlkZXM6IFBhcnRpYWw8U3RhbmRhbG9uZUNvbmZpZz4gPSB7fVxuKTogVGVzdEJ1aWxkZXIge1xuICBjb25zdCBjb25maWc6IFN0YW5kYWxvbmVDb25maWcgPSB7XG4gICAgYnVpbGRUYXJnZXQ6ICdzdGFuZGFsb25lJyxcbiAgICB3b3JraW5nRGlyLFxuICAgIGRpcnMsXG4gICAgc3RlcHNCdW5kbGVQYXRoOiBqb2luKHdvcmtpbmdEaXIsICdzdGVwcy5qcycpLFxuICAgIHdvcmtmbG93c0J1bmRsZVBhdGg6IGpvaW4od29ya2luZ0RpciwgJ3dvcmtmbG93cy5qcycpLFxuICAgIHdlYmhvb2tCdW5kbGVQYXRoOiBqb2luKHdvcmtpbmdEaXIsICd3ZWJob29rLmpzJyksXG4gICAgLi4uY29uZmlnT3ZlcnJpZGVzLFxuICB9O1xuICByZXR1cm4gbmV3IFRlc3RCdWlsZGVyKGNvbmZpZyk7XG59XG5cbmRlc2NyaWJlKCdnZXRJbnB1dEZpbGVzJywgKCkgPT4ge1xuICBsZXQgdGVzdFJvb3Q6IHN0cmluZztcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICB0ZXN0Um9vdCA9IG1rZHRlbXBTeW5jKGpvaW4ocmVhbFRtcGRpciwgJ2dldC1pbnB1dC1maWxlcy0nKSk7XG4gIH0pO1xuXG4gIGFmdGVyRWFjaCgoKSA9PiB7XG4gICAgcm1TeW5jKHRlc3RSb290LCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gIH0pO1xuXG4gIGl0KCdkaXNjb3ZlcnMgZmlsZXMgaW5zaWRlIGRvdC1wcmVmaXhlZCBkaXJlY3RvcmllcycsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBzcmNEaXIgPSBqb2luKHRlc3RSb290LCAnc3JjJyk7XG4gICAgd3JpdGVGaWxlKHNyY0RpciwgJy5oaWRkZW4vc3RlcC50cycsIFwiJ3VzZSBzdGVwJztcIik7XG4gICAgd3JpdGVGaWxlKHNyY0RpciwgJy5jb25maWcvd29ya2Zsb3cudHMnLCBcIid1c2Ugd29ya2Zsb3cnO1wiKTtcbiAgICB3cml0ZUZpbGUoc3JjRGlyLCAncmVndWxhci9zdGVwLnRzJywgXCIndXNlIHN0ZXAnO1wiKTtcblxuICAgIGNvbnN0IGJ1aWxkZXIgPSBjcmVhdGVCdWlsZGVyKHRlc3RSb290LCBbJ3NyYyddKTtcbiAgICBjb25zdCBmaWxlcyA9IChhd2FpdCBidWlsZGVyLmdldElucHV0RmlsZXMoKSkubWFwKG5vcm1hbGl6ZSk7XG5cbiAgICBleHBlY3QoZmlsZXMpLnRvQ29udGFpbihub3JtYWxpemUoam9pbihzcmNEaXIsICcuaGlkZGVuL3N0ZXAudHMnKSkpO1xuICAgIGV4cGVjdChmaWxlcykudG9Db250YWluKG5vcm1hbGl6ZShqb2luKHNyY0RpciwgJy5jb25maWcvd29ya2Zsb3cudHMnKSkpO1xuICAgIGV4cGVjdChmaWxlcykudG9Db250YWluKG5vcm1hbGl6ZShqb2luKHNyY0RpciwgJ3JlZ3VsYXIvc3RlcC50cycpKSk7XG4gIH0pO1xuXG4gIGl0KCdkaXNjb3ZlcnMgZG90LXByZWZpeGVkIGZpbGVzJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHNyY0RpciA9IGpvaW4odGVzdFJvb3QsICdzcmMnKTtcbiAgICB3cml0ZUZpbGUoc3JjRGlyLCAnLmhpZGRlbi1zdGVwLnRzJywgXCIndXNlIHN0ZXAnO1wiKTtcbiAgICB3cml0ZUZpbGUoc3JjRGlyLCAndmlzaWJsZS1zdGVwLnRzJywgXCIndXNlIHN0ZXAnO1wiKTtcblxuICAgIGNvbnN0IGJ1aWxkZXIgPSBjcmVhdGVCdWlsZGVyKHRlc3RSb290LCBbJ3NyYyddKTtcbiAgICBjb25zdCBmaWxlcyA9IChhd2FpdCBidWlsZGVyLmdldElucHV0RmlsZXMoKSkubWFwKG5vcm1hbGl6ZSk7XG5cbiAgICBleHBlY3QoZmlsZXMpLnRvQ29udGFpbihub3JtYWxpemUoam9pbihzcmNEaXIsICcuaGlkZGVuLXN0ZXAudHMnKSkpO1xuICAgIGV4cGVjdChmaWxlcykudG9Db250YWluKG5vcm1hbGl6ZShqb2luKHNyY0RpciwgJ3Zpc2libGUtc3RlcC50cycpKSk7XG4gIH0pO1xuXG4gIGl0KCdzdGlsbCBleGNsdWRlcyBleHBsaWNpdGx5IGlnbm9yZWQgZG90LWRpcmVjdG9yaWVzJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHNyY0RpciA9IGpvaW4odGVzdFJvb3QsICdzcmMnKTtcbiAgICB3cml0ZUZpbGUoc3JjRGlyLCAnLmdpdC9ob29rcy9wcmUtY29tbWl0LnRzJyk7XG4gICAgd3JpdGVGaWxlKHNyY0RpciwgJy5uZXh0L3NlcnZlci9wYWdlLnRzJyk7XG4gICAgd3JpdGVGaWxlKHNyY0RpciwgJy5udXh0L3dvcmtmbG93L3N0ZXBzLm1qcycpO1xuICAgIHdyaXRlRmlsZShzcmNEaXIsICcudmVyY2VsL291dHB1dC9zdGVwLnRzJyk7XG4gICAgd3JpdGVGaWxlKHNyY0RpciwgJy5zdmVsdGUta2l0L291dHB1dC9zdGVwLnRzJyk7XG4gICAgd3JpdGVGaWxlKHNyY0RpciwgJy53b3JrZmxvdy1kYXRhL3N0YXRlLnRzJyk7XG4gICAgd3JpdGVGaWxlKHNyY0RpciwgJy53b3JrZmxvdy12aXRlc3Qvd29ya2Zsb3dzLm1qcycpO1xuICAgIHdyaXRlRmlsZShzcmNEaXIsICcud2VsbC1rbm93bi93b3JrZmxvdy9yb3V0ZS50cycpO1xuICAgIHdyaXRlRmlsZShzcmNEaXIsICcudHVyYm8vY2FjaGUvYnVpbGQudHMnKTtcbiAgICB3cml0ZUZpbGUoc3JjRGlyLCAnLmNhY2hlL2JhYmVsL3BsdWdpbi5qcycpO1xuICAgIHdyaXRlRmlsZShzcmNEaXIsICcueWFybi9yZWxlYXNlcy95YXJuLmNqcycpO1xuICAgIHdyaXRlRmlsZShzcmNEaXIsICcucG5wbS1zdG9yZS92My9maWxlcy50cycpO1xuICAgIHdyaXRlRmlsZShzcmNEaXIsICdub2RlX21vZHVsZXMvcGtnL2luZGV4LnRzJyk7XG4gICAgLy8gVGhpcyBvbmUgc2hvdWxkIHN0aWxsIGJlIGZvdW5kXG4gICAgd3JpdGVGaWxlKHNyY0RpciwgJy5jdXN0b20vc3RlcC50cycsIFwiJ3VzZSBzdGVwJztcIik7XG5cbiAgICBjb25zdCBidWlsZGVyID0gY3JlYXRlQnVpbGRlcih0ZXN0Um9vdCwgWydzcmMnXSk7XG4gICAgY29uc3QgZmlsZXMgPSAoYXdhaXQgYnVpbGRlci5nZXRJbnB1dEZpbGVzKCkpLm1hcChub3JtYWxpemUpO1xuXG4gICAgZXhwZWN0KGZpbGVzKS5ub3QudG9Db250YWluKFxuICAgICAgbm9ybWFsaXplKGpvaW4oc3JjRGlyLCAnLmdpdC9ob29rcy9wcmUtY29tbWl0LnRzJykpXG4gICAgKTtcbiAgICBleHBlY3QoZmlsZXMpLm5vdC50b0NvbnRhaW4oXG4gICAgICBub3JtYWxpemUoam9pbihzcmNEaXIsICcubmV4dC9zZXJ2ZXIvcGFnZS50cycpKVxuICAgICk7XG4gICAgZXhwZWN0KGZpbGVzKS5ub3QudG9Db250YWluKFxuICAgICAgbm9ybWFsaXplKGpvaW4oc3JjRGlyLCAnLm51eHQvd29ya2Zsb3cvc3RlcHMubWpzJykpXG4gICAgKTtcbiAgICBleHBlY3QoZmlsZXMpLm5vdC50b0NvbnRhaW4oXG4gICAgICBub3JtYWxpemUoam9pbihzcmNEaXIsICcudmVyY2VsL291dHB1dC9zdGVwLnRzJykpXG4gICAgKTtcbiAgICBleHBlY3QoZmlsZXMpLm5vdC50b0NvbnRhaW4oXG4gICAgICBub3JtYWxpemUoam9pbihzcmNEaXIsICcuc3ZlbHRlLWtpdC9vdXRwdXQvc3RlcC50cycpKVxuICAgICk7XG4gICAgZXhwZWN0KGZpbGVzKS5ub3QudG9Db250YWluKFxuICAgICAgbm9ybWFsaXplKGpvaW4oc3JjRGlyLCAnLndvcmtmbG93LWRhdGEvc3RhdGUudHMnKSlcbiAgICApO1xuICAgIGV4cGVjdChmaWxlcykubm90LnRvQ29udGFpbihcbiAgICAgIG5vcm1hbGl6ZShqb2luKHNyY0RpciwgJy53b3JrZmxvdy12aXRlc3Qvd29ya2Zsb3dzLm1qcycpKVxuICAgICk7XG4gICAgZXhwZWN0KGZpbGVzKS5ub3QudG9Db250YWluKFxuICAgICAgbm9ybWFsaXplKGpvaW4oc3JjRGlyLCAnLndlbGwta25vd24vd29ya2Zsb3cvcm91dGUudHMnKSlcbiAgICApO1xuICAgIGV4cGVjdChmaWxlcykubm90LnRvQ29udGFpbihcbiAgICAgIG5vcm1hbGl6ZShqb2luKHNyY0RpciwgJy50dXJiby9jYWNoZS9idWlsZC50cycpKVxuICAgICk7XG4gICAgZXhwZWN0KGZpbGVzKS5ub3QudG9Db250YWluKFxuICAgICAgbm9ybWFsaXplKGpvaW4oc3JjRGlyLCAnLmNhY2hlL2JhYmVsL3BsdWdpbi5qcycpKVxuICAgICk7XG4gICAgZXhwZWN0KGZpbGVzKS5ub3QudG9Db250YWluKFxuICAgICAgbm9ybWFsaXplKGpvaW4oc3JjRGlyLCAnLnlhcm4vcmVsZWFzZXMveWFybi5janMnKSlcbiAgICApO1xuICAgIGV4cGVjdChmaWxlcykubm90LnRvQ29udGFpbihcbiAgICAgIG5vcm1hbGl6ZShqb2luKHNyY0RpciwgJy5wbnBtLXN0b3JlL3YzL2ZpbGVzLnRzJykpXG4gICAgKTtcbiAgICBleHBlY3QoZmlsZXMpLm5vdC50b0NvbnRhaW4oXG4gICAgICBub3JtYWxpemUoam9pbihzcmNEaXIsICdub2RlX21vZHVsZXMvcGtnL2luZGV4LnRzJykpXG4gICAgKTtcbiAgICBleHBlY3QoZmlsZXMpLnRvQ29udGFpbihub3JtYWxpemUoam9pbihzcmNEaXIsICcuY3VzdG9tL3N0ZXAudHMnKSkpO1xuICB9KTtcblxuICBpdCgnZGlzY292ZXJzIGZpbGVzIHdpdGggdmFyaW91cyBzdXBwb3J0ZWQgZXh0ZW5zaW9ucyBpbiBkb3QtZGlyZWN0b3JpZXMnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3Qgc3JjRGlyID0gam9pbih0ZXN0Um9vdCwgJ3NyYycpO1xuICAgIHdyaXRlRmlsZShzcmNEaXIsICcuYXBpL3JvdXRlLnRzeCcpO1xuICAgIHdyaXRlRmlsZShzcmNEaXIsICcuYXBpL2hhbmRsZXIubXRzJyk7XG4gICAgd3JpdGVGaWxlKHNyY0RpciwgJy5hcGkvdXRpbHMuanMnKTtcbiAgICB3cml0ZUZpbGUoc3JjRGlyLCAnLmFwaS9jb25maWcuY2pzJyk7XG5cbiAgICBjb25zdCBidWlsZGVyID0gY3JlYXRlQnVpbGRlcih0ZXN0Um9vdCwgWydzcmMnXSk7XG4gICAgY29uc3QgZmlsZXMgPSAoYXdhaXQgYnVpbGRlci5nZXRJbnB1dEZpbGVzKCkpLm1hcChub3JtYWxpemUpO1xuXG4gICAgZXhwZWN0KGZpbGVzKS50b0NvbnRhaW4obm9ybWFsaXplKGpvaW4oc3JjRGlyLCAnLmFwaS9yb3V0ZS50c3gnKSkpO1xuICAgIGV4cGVjdChmaWxlcykudG9Db250YWluKG5vcm1hbGl6ZShqb2luKHNyY0RpciwgJy5hcGkvaGFuZGxlci5tdHMnKSkpO1xuICAgIGV4cGVjdChmaWxlcykudG9Db250YWluKG5vcm1hbGl6ZShqb2luKHNyY0RpciwgJy5hcGkvdXRpbHMuanMnKSkpO1xuICAgIGV4cGVjdChmaWxlcykudG9Db250YWluKG5vcm1hbGl6ZShqb2luKHNyY0RpciwgJy5hcGkvY29uZmlnLmNqcycpKSk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKCdnZXREaWFnbm9zdGljc01hbmlmZXN0UGF0aCcsICgpID0+IHtcbiAgbGV0IHRlc3RSb290OiBzdHJpbmc7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgdGVzdFJvb3QgPSBta2R0ZW1wU3luYyhqb2luKHJlYWxUbXBkaXIsICdkaWFnbm9zdGljcy1wYXRoLScpKTtcbiAgfSk7XG5cbiAgYWZ0ZXJFYWNoKCgpID0+IHtcbiAgICBybVN5bmModGVzdFJvb3QsIHsgcmVjdXJzaXZlOiB0cnVlLCBmb3JjZTogdHJ1ZSB9KTtcbiAgfSk7XG5cbiAgaXQoJ3VzZXMgYW4gZXhwbGljaXQgZGlhZ25vc3RpY3NEaXIgd2hlbiBjb25maWd1cmVkJywgKCkgPT4ge1xuICAgIGNvbnN0IGJ1aWxkZXIgPSBjcmVhdGVCdWlsZGVyKHRlc3RSb290LCBbJ3NyYyddLCB7XG4gICAgICBkaWFnbm9zdGljc0RpcjogJy5uZXh0L2RpYWdub3N0aWNzJyxcbiAgICB9KTtcblxuICAgIGV4cGVjdChidWlsZGVyLmdldERpYWdub3N0aWNzTWFuaWZlc3RQYXRoKCkpLnRvQmUoXG4gICAgICBqb2luKHRlc3RSb290LCAnLm5leHQvZGlhZ25vc3RpY3Mvd29ya2Zsb3dzLW1hbmlmZXN0Lmpzb24nKVxuICAgICk7XG4gIH0pO1xuXG4gIGl0KCdkb2VzIG5vdCBlbWl0IFZlcmNlbCBkaWFnbm9zdGljcyBmb3Igbm9uLVZlcmNlbCBidWlsZGVyIHRhcmdldHMnLCAoKSA9PiB7XG4gICAgY29uc3QgcHJldmlvdXNUYXJnZXRXb3JsZCA9IHByb2Nlc3MuZW52LldPUktGTE9XX1RBUkdFVF9XT1JMRDtcbiAgICBwcm9jZXNzLmVudi5XT1JLRkxPV19UQVJHRVRfV09STEQgPSAndmVyY2VsJztcbiAgICB0cnkge1xuICAgICAgY29uc3QgYnVpbGRlciA9IGNyZWF0ZUJ1aWxkZXIodGVzdFJvb3QsIFsnc3JjJ10pO1xuXG4gICAgICBleHBlY3QoYnVpbGRlci5nZXREaWFnbm9zdGljc01hbmlmZXN0UGF0aCgpKS50b0JlVW5kZWZpbmVkKCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmIChwcmV2aW91c1RhcmdldFdvcmxkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZGVsZXRlIHByb2Nlc3MuZW52LldPUktGTE9XX1RBUkdFVF9XT1JMRDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHByb2Nlc3MuZW52LldPUktGTE9XX1RBUkdFVF9XT1JMRCA9IHByZXZpb3VzVGFyZ2V0V29ybGQ7XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICBpdCgnZmFsbHMgYmFjayB0byBWZXJjZWwgb3V0cHV0IGRpYWdub3N0aWNzIGZvciB0aGUgVmVyY2VsIGJ1aWxkZXInLCAoKSA9PiB7XG4gICAgY29uc3QgY29uZmlnOiBWZXJjZWxCdWlsZE91dHB1dENvbmZpZyA9IHtcbiAgICAgIGJ1aWxkVGFyZ2V0OiAndmVyY2VsLWJ1aWxkLW91dHB1dC1hcGknLFxuICAgICAgd29ya2luZ0RpcjogdGVzdFJvb3QsXG4gICAgICBkaXJzOiBbJ3NyYyddLFxuICAgICAgc3RlcHNCdW5kbGVQYXRoOiBqb2luKHRlc3RSb290LCAnc3RlcHMuanMnKSxcbiAgICAgIHdvcmtmbG93c0J1bmRsZVBhdGg6IGpvaW4odGVzdFJvb3QsICd3b3JrZmxvd3MuanMnKSxcbiAgICAgIHdlYmhvb2tCdW5kbGVQYXRoOiBqb2luKHRlc3RSb290LCAnd2ViaG9vay5qcycpLFxuICAgIH07XG4gICAgY29uc3QgYnVpbGRlciA9IG5ldyBUZXN0QnVpbGRlcihjb25maWcpO1xuXG4gICAgZXhwZWN0KGJ1aWxkZXIuZ2V0RGlhZ25vc3RpY3NNYW5pZmVzdFBhdGgoKSkudG9CZShcbiAgICAgIGpvaW4odGVzdFJvb3QsICcudmVyY2VsL291dHB1dC9kaWFnbm9zdGljcy93b3JrZmxvd3MtbWFuaWZlc3QuanNvbicpXG4gICAgKTtcbiAgfSk7XG59KTtcbiJdfQ==
package/dist/index.js CHANGED
@@ -15,4 +15,4 @@ export { detectWorkflowPatterns, generatedWorkflowPathPattern, isGeneratedWorkfl
15
15
  export { isValidBuildTarget, validBuildTargets } from './types.js';
16
16
  export { VercelBuildOutputAPIBuilder } from './vercel-build-output-api.js';
17
17
  export { resolveWorkflowAliasRelativePath } from './workflow-alias.js';
18
- //# sourceMappingURL=index.js.map
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3BELE9BQU8sRUFDTCx1QkFBdUIsRUFHdkIsK0JBQStCLEVBQy9CLDZDQUE2QyxHQUM5QyxNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ25GLE9BQU8sRUFDTCx5QkFBeUIsRUFDekIsYUFBYSxFQUdiLHNCQUFzQixHQUN2QixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzlFLE9BQU8sRUFDTCx5QkFBeUIsRUFDekIsZUFBZSxHQUNoQixNQUFNLG9DQUFvQyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2hFLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsbUJBQW1CLEdBR3BCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsNEJBQTRCLEVBQzVCLHVCQUF1QixFQUN2QixtQkFBbUIsRUFDbkIsdUJBQXVCLEVBQ3ZCLGNBQWMsRUFDZCxrQkFBa0IsRUFFbEIsMEJBQTBCLEVBQzFCLDBCQUEwQixHQUMzQixNQUFNLHNCQUFzQixDQUFDO0FBVTlCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNuRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIHsgV29ya2Zsb3dNYW5pZmVzdCB9IGZyb20gJy4vYXBwbHktc3djLXRyYW5zZm9ybS5qcyc7XG5leHBvcnQgeyBhcHBseVN3Y1RyYW5zZm9ybSB9IGZyb20gJy4vYXBwbHktc3djLXRyYW5zZm9ybS5qcyc7XG5leHBvcnQgeyBCYXNlQnVpbGRlciB9IGZyb20gJy4vYmFzZS1idWlsZGVyLmpzJztcbmV4cG9ydCB7IGNyZWF0ZUJ1aWxkUXVldWUgfSBmcm9tICcuL2J1aWxkLXF1ZXVlLmpzJztcbmV4cG9ydCB7XG4gIGNyZWF0ZUJhc2VCdWlsZGVyQ29uZmlnLFxuICB0eXBlIERlY29yYXRvck9wdGlvbnMsXG4gIHR5cGUgRGVjb3JhdG9yT3B0aW9uc1dpdGhDb25maWdQYXRoLFxuICBnZXREZWNvcmF0b3JPcHRpb25zRm9yRGlyZWN0b3J5LFxuICBnZXREZWNvcmF0b3JPcHRpb25zRm9yRGlyZWN0b3J5V2l0aENvbmZpZ1BhdGgsXG59IGZyb20gJy4vY29uZmlnLWhlbHBlcnMuanMnO1xuZXhwb3J0IHsgV09SS0ZMT1dfUVVFVUVfVFJJR0dFUiB9IGZyb20gJy4vY29uc3RhbnRzLmpzJztcbmV4cG9ydCB7IGNyZWF0ZURpc2NvdmVyRW50cmllc1BsdWdpbiB9IGZyb20gJy4vZGlzY292ZXItZW50cmllcy1lc2J1aWxkLXBsdWdpbi5qcyc7XG5leHBvcnQge1xuICBjbGVhck1vZHVsZVNwZWNpZmllckNhY2hlLFxuICBnZXRJbXBvcnRQYXRoLFxuICB0eXBlIEltcG9ydFBhdGhSZXN1bHQsXG4gIHR5cGUgTW9kdWxlU3BlY2lmaWVyUmVzdWx0LFxuICByZXNvbHZlTW9kdWxlU3BlY2lmaWVyLFxufSBmcm9tICcuL21vZHVsZS1zcGVjaWZpZXIuanMnO1xuZXhwb3J0IHsgY3JlYXRlTm9kZU1vZHVsZUVycm9yUGx1Z2luIH0gZnJvbSAnLi9ub2RlLW1vZHVsZS1lc2J1aWxkLXBsdWdpbi5qcyc7XG5leHBvcnQge1xuICBjcmVhdGVQc2V1ZG9QYWNrYWdlUGx1Z2luLFxuICBQU0VVRE9fUEFDS0FHRVMsXG59IGZyb20gJy4vcHNldWRvLXBhY2thZ2UtZXNidWlsZC1wbHVnaW4uanMnO1xuZXhwb3J0IHsgTk9STUFMSVpFX1JFUVVFU1RfQ09ERSB9IGZyb20gJy4vcmVxdWVzdC1jb252ZXJ0ZXIuanMnO1xuZXhwb3J0IHtcbiAgYW5hbHl6ZVNlcmRlQ29tcGxpYW5jZSxcbiAgZXh0cmFjdENsYXNzRW50cmllcyxcbiAgdHlwZSBTZXJkZUNoZWNrUmVzdWx0LFxuICB0eXBlIFNlcmRlQ2xhc3NDaGVja1Jlc3VsdCxcbn0gZnJvbSAnLi9zZXJkZS1jaGVja2VyLmpzJztcbmV4cG9ydCB7IFN0YW5kYWxvbmVCdWlsZGVyIH0gZnJvbSAnLi9zdGFuZGFsb25lLmpzJztcbmV4cG9ydCB7IGNyZWF0ZVN3Y1BsdWdpbiB9IGZyb20gJy4vc3djLWVzYnVpbGQtcGx1Z2luLmpzJztcbmV4cG9ydCB7XG4gIGRldGVjdFdvcmtmbG93UGF0dGVybnMsXG4gIGdlbmVyYXRlZFdvcmtmbG93UGF0aFBhdHRlcm4sXG4gIGlzR2VuZXJhdGVkV29ya2Zsb3dGaWxlLFxuICBzaG91bGRUcmFuc2Zvcm1GaWxlLFxuICB0dXJib3BhY2tDb250ZW50UGF0dGVybixcbiAgdXNlU3RlcFBhdHRlcm4sXG4gIHVzZVdvcmtmbG93UGF0dGVybixcbiAgdHlwZSBXb3JrZmxvd1BhdHRlcm5NYXRjaCxcbiAgd29ya2Zsb3dTZXJkZUltcG9ydFBhdHRlcm4sXG4gIHdvcmtmbG93U2VyZGVTeW1ib2xQYXR0ZXJuLFxufSBmcm9tICcuL3RyYW5zZm9ybS11dGlscy5qcyc7XG5leHBvcnQgdHlwZSB7XG4gIEFzdHJvQ29uZmlnLFxuICBCdWlsZFRhcmdldCxcbiAgTmV4dENvbmZpZyxcbiAgU3RhbmRhbG9uZUNvbmZpZyxcbiAgU3ZlbHRlS2l0Q29uZmlnLFxuICBWZXJjZWxCdWlsZE91dHB1dENvbmZpZyxcbiAgV29ya2Zsb3dDb25maWcsXG59IGZyb20gJy4vdHlwZXMuanMnO1xuZXhwb3J0IHsgaXNWYWxpZEJ1aWxkVGFyZ2V0LCB2YWxpZEJ1aWxkVGFyZ2V0cyB9IGZyb20gJy4vdHlwZXMuanMnO1xuZXhwb3J0IHsgVmVyY2VsQnVpbGRPdXRwdXRBUElCdWlsZGVyIH0gZnJvbSAnLi92ZXJjZWwtYnVpbGQtb3V0cHV0LWFwaS5qcyc7XG5leHBvcnQgeyByZXNvbHZlV29ya2Zsb3dBbGlhc1JlbGF0aXZlUGF0aCB9IGZyb20gJy4vd29ya2Zsb3ctYWxpYXMuanMnO1xuIl19
@@ -483,4 +483,4 @@ export function getImportPath(filePath, projectRoot) {
483
483
  isPackage: false,
484
484
  };
485
485
  }
486
- //# sourceMappingURL=module-specifier.js.map
486
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLXNwZWNpZmllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9tb2R1bGUtc3BlY2lmaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBMkJsRTs7O0dBR0c7QUFDSCxNQUFNLGdCQUFnQixHQUFHLElBQUksR0FBRyxFQUE4QixDQUFDO0FBRS9EOzs7R0FHRztBQUNILFNBQVMsZUFBZSxDQUFDLFFBQWdCO0lBQ3ZDLElBQUksR0FBRyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUU1QixnRUFBZ0U7SUFDaEUsTUFBTSxXQUFXLEdBQWEsRUFBRSxDQUFDO0lBRWpDLG1EQUFtRDtJQUNuRCxPQUFPLEdBQUcsS0FBSyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUM1QixvQkFBb0I7UUFDcEIsTUFBTSxNQUFNLEdBQUcsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pDLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3pCLG1FQUFtRTtZQUNuRSxLQUFLLE1BQU0sVUFBVSxJQUFJLFdBQVcsRUFBRSxDQUFDO2dCQUNyQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzNDLENBQUM7WUFDRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBRUQsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUV0QixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ2xELElBQUksVUFBVSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7WUFD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QUFVLEVBQUUsb0JBQW9CLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQztvQkFDdkQsU0FBUyxFQUFFLEtBQUs7aUJBQ2pCLENBQUM7WUFDSixDQUFDO1lBRUQsT0FBTztnQkFDTCxVQUFVLEVBQUUsR0FBRyxDQUFDLElBQUk7Z0JBQ3BCLFNBQVMsRUFBRSxJQUFJO2FBQ2hCLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVELHFDQUFxQztJQUNyQyxPQUFPO1FBQ0wsVUFBVSxFQUFFLG9CQUFvQixDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUM7UUFDdkQsU0FBUyxFQUFFLEtBQUs7S0FDakIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleGlzdHNTeW5jLCByZWFkRmlsZVN5bmMgfSBmcm9tICdub2RlOmZzJztcbmltcG9ydCB7IGRpcm5hbWUsIGpvaW4sIHJlbGF0aXZlLCByZXNvbHZlLCBzZXAgfSBmcm9tICdub2RlOnBhdGgnO1xuXG4vKipcbiAqIFJlc3VsdCBvZiByZXNvbHZpbmcgYSBtb2R1bGUgc3BlY2lmaWVyIGZvciBhIGZpbGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTW9kdWxlU3BlY2lmaWVyUmVzdWx0IHtcbiAgLyoqXG4gICAqIFRoZSBtb2R1bGUgc3BlY2lmaWVyIHRvIHVzZSBmb3IgSUQgZ2VuZXJhdGlvbi5cbiAgICogLSBGb3IgcGFja2FnZXM6IFwie25hbWV9QHt2ZXJzaW9ufVwiIG9yIFwie25hbWV9L3tzdWJwYXRofUB7dmVyc2lvbn1cIlxuICAgKiAgIChlLmcuLCBcInBvaW50QDEuMC4wXCIsIFwiQG15b3JnL3NoYXJlZEAyLjAuMFwiLCBcIndvcmtmbG93L2ludGVybmFsL2J1aWx0aW5zQDQuMC4wXCIpXG4gICAqIC0gRm9yIGxvY2FsIGZpbGVzOiB1bmRlZmluZWQgKHBsdWdpbiB3aWxsIHVzZSBkZWZhdWx0IFwiLi9yZWxhdGl2ZS9wYXRoXCIgZm9ybWF0KVxuICAgKi9cbiAgbW9kdWxlU3BlY2lmaWVyOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogUGFyc2VkIHBhY2thZ2UuanNvbiBkYXRhIHdpdGggZGlyZWN0b3J5IGluZm9ybWF0aW9uLlxuICovXG5pbnRlcmZhY2UgUGFja2FnZUluZm8ge1xuICBuYW1lOiBzdHJpbmc7XG4gIHZlcnNpb246IHN0cmluZztcbiAgZGlyOiBzdHJpbmc7XG4gIGV4cG9ydHM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgbWFpbj86IHN0cmluZztcbiAgbW9kdWxlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENhY2hlIGZvciBwYWNrYWdlLmpzb24gbG9va3VwcyB0byBhdm9pZCByZXBlYXRlZCBmaWxlc3lzdGVtIHJlYWRzLlxuICogTWFwcyBkaXJlY3RvcnkgcGF0aCB0byBwYXJzZWQgcGFja2FnZS5qc29uIGluZm8gb3IgbnVsbCBpZiBub3QgZm91bmQuXG4gKi9cbmNvbnN0IHBhY2thZ2VKc29uQ2FjaGUgPSBuZXcgTWFwPHN0cmluZywgUGFja2FnZUluZm8gfCBudWxsPigpO1xuXG4vKipcbiAqIEZpbmQgYW5kIHJlYWQgdGhlIG5lYXJlc3QgcGFja2FnZS5qc29uIGZvciBhIGdpdmVuIGZpbGUgcGF0aC5cbiAqIFJlc3VsdHMgYXJlIGNhY2hlZCBmb3IgcGVyZm9ybWFuY2UuXG4gKi9cbmZ1bmN0aW9uIGZpbmRQYWNrYWdlSnNvbihmaWxlUGF0aDogc3RyaW5nKTogUGFja2FnZUluZm8gfCBudWxsIHtcbiAgbGV0IGRpciA9IGRpcm5hbWUoZmlsZVBhdGgpO1xuXG4gIC8vIFRyYWNrIGRpcmVjdG9yaWVzIHdlJ3ZlIHZpc2l0ZWQgc28gd2UgY2FuIGJhY2stZmlsbCB0aGUgY2FjaGVcbiAgY29uc3QgdmlzaXRlZERpcnM6IHN0cmluZ1tdID0gW107XG5cbiAgLy8gV2FsayB1cCB0aGUgZGlyZWN0b3J5IHRyZWUgdW50aWwgd2UgaGl0IHRoZSByb290XG4gIHdoaWxlIChkaXIgIT09IGRpcm5hbWUoZGlyKSkge1xuICAgIC8vIENoZWNrIGNhY2hlIGZpcnN0XG4gICAgY29uc3QgY2FjaGVkID0gcGFja2FnZUpzb25DYWNoZS5nZXQoZGlyKTtcbiAgICBpZiAoY2FjaGVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIEJhY2stZmlsbCBjYWNoZSBmb3IgYWxsIHZpc2l0ZWQgZGlyZWN0b3JpZXMgd2l0aCB0aGUgc2FtZSByZXN1bHRcbiAgICAgIGZvciAoY29uc3QgdmlzaXRlZERpciBvZiB2aXNpdGVkRGlycykge1xuICAgICAgICBwYWNrYWdlSnNvbkNhY2hlLnNldCh2aXNpdGVkRGlyLCBjYWNoZWQpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNhY2hlZDtcbiAgICB9XG5cbiAgICB2aXNpdGVkRGlycy5wdXNoKGRpcik7XG5cbiAgICBjb25zdCBwYWNrYWdlSnNvblBhdGggPSBqb2luKGRpciwgJ3BhY2thZ2UuanNvbicpO1xuICAgIGlmIChleGlzdHNTeW5jKHBhY2thZ2VKc29uUGF0aCkpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSByZWFkRmlsZVN5bmMocGFja2FnZUpzb25QYXRoLCAndXRmLTgnKTtcbiAgICAgICAgY29uc3QgcGFyc2VkID0gSlNPTi5wYXJzZShjb250ZW50KTtcbiAgICAgICAgaWYgKHBhcnNlZC5uYW1lICYmIHBhcnNlZC52ZXJzaW9uKSB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0OiBQYWNrYWdlSW5mbyA9IHtcbiAgICAgICAgICAgIG5hbWU6IHBhcnNlZC5uYW1lLFxuICAgICAgICAgICAgdmVyc2lvbjogcGFyc2VkLnZlcnNpb24sXG4gICAgICAgICAgICBkaXIsXG4gICAgICAgICAgICBleHBvcnRzOiBwYXJzZWQuZXhwb3J0cyxcbiAgICAgICAgICAgIG1haW46IHBhcnNlZC5tYWluLFxuICAgICAgICAgICAgbW9kdWxlOiBwYXJzZWQubW9kdWxlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgLy8gQ2FjaGUgdGhlIHJlc3VsdCBmb3IgdGhpcyBkaXJlY3RvcnkgYW5kIGFsbCB2aXNpdGVkIGRpcmVjdG9yaWVzXG4gICAgICAgICAgcGFja2FnZUpzb25DYWNoZS5zZXQoZGlyLCByZXN1bHQpO1xuICAgICAgICAgIGZvciAoY29uc3QgdmlzaXRlZERpciBvZiB2aXNpdGVkRGlycykge1xuICAgICAgICAgICAgcGFja2FnZUpzb25DYWNoZS5zZXQodmlzaXRlZERpciwgcmVzdWx0KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIC8vIEludmFsaWQgSlNPTiBvciBtaXNzaW5nIGZpZWxkcywgY29udGludWUgc2VhcmNoaW5nXG4gICAgICB9XG4gICAgfVxuXG4gICAgZGlyID0gZGlybmFtZShkaXIpO1xuICB9XG5cbiAgLy8gTm8gcGFja2FnZS5qc29uIGZvdW5kIC0gY2FjaGUgbnVsbCBmb3IgYWxsIHZpc2l0ZWQgZGlyZWN0b3JpZXNcbiAgZm9yIChjb25zdCB2aXNpdGVkRGlyIG9mIHZpc2l0ZWREaXJzKSB7XG4gICAgcGFja2FnZUpzb25DYWNoZS5zZXQodmlzaXRlZERpciwgbnVsbCk7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBSZXNvbHZlIHRoZSBleHBvcnQgc3VicGF0aCBmb3IgYSBmaWxlIHdpdGhpbiBhIHBhY2thZ2UuXG4gKiBMb29rcyB1cCB0aGUgcGFja2FnZS5qc29uIGV4cG9ydHMgZmllbGQgdG8gZmluZCB3aGljaCBzdWJwYXRoIG1hcHMgdG8gdGhlIGZpbGUuXG4gKlxuICogQHBhcmFtIGZpbGVQYXRoIC0gQWJzb2x1dGUgcGF0aCB0byB0aGUgZmlsZVxuICogQHBhcmFtIHBrZyAtIFBhY2thZ2UgaW5mbyBmcm9tIGZpbmRQYWNrYWdlSnNvblxuICogQHJldHVybnMgVGhlIHN1YnBhdGggKGUuZy4sIFwiL2ludGVybmFsL2J1aWx0aW5zXCIpIG9yIGVtcHR5IHN0cmluZyBmb3Igcm9vdCBleHBvcnRcbiAqL1xuZnVuY3Rpb24gdG9QYWNrYWdlUmVsYXRpdmVQYXRoKFxuICBmaWxlUGF0aDogc3RyaW5nLFxuICBwa2c6IFBhY2thZ2VJbmZvXG4pOiBzdHJpbmcgfCBudWxsIHtcbiAgY29uc3Qgbm9ybWFsaXplZEZpbGVQYXRoID0gZmlsZVBhdGgucmVwbGFjZSgvXFxcXC9nLCAnLycpO1xuICBjb25zdCBub3JtYWxpemVkUGtnRGlyID0gcGtnLmRpci5yZXBsYWNlKC9cXFxcL2csICcvJyk7XG4gIGlmICghbm9ybWFsaXplZEZpbGVQYXRoLnN0YXJ0c1dpdGgobm9ybWFsaXplZFBrZ0RpciArICcvJykpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiBub3JtYWxpemVkRmlsZVBhdGguc3Vic3RyaW5nKG5vcm1hbGl6ZWRQa2dEaXIubGVuZ3RoICsgMSk7XG59XG5cbmZ1bmN0aW9uIGdldFNvdXJjZUZhbGxiYWNrRXhwb3J0VGFyZ2V0cyhyZWxhdGl2ZVBhdGg6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgY29uc3QgZmFsbGJhY2tUYXJnZXRzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIGNvbnN0IGV4dGVuc2lvbkZhbGxiYWNrczogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+ID0ge1xuICAgICcudHMnOiBbJy5qcyddLFxuICAgICcudHN4JzogWycuanMnXSxcbiAgICAnLm10cyc6IFsnLm1qcyddLFxuICAgICcuY3RzJzogWycuY2pzJ10sXG4gICAgJy5qc3gnOiBbJy5qcyddLFxuICB9O1xuXG4gIGNvbnN0IGV4dGVuc2lvbk1hdGNoID0gcmVsYXRpdmVQYXRoLm1hdGNoKC8oXFwuW14uL1xcXFxdKykkLyk7XG4gIGNvbnN0IGV4dGVuc2lvbiA9IGV4dGVuc2lvbk1hdGNoPy5bMV0/LnRvTG93ZXJDYXNlKCk7XG4gIGlmICghZXh0ZW5zaW9uKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgY29uc3QgcGF0aFdpdGhvdXRFeHRlbnNpb24gPSByZWxhdGl2ZVBhdGguc2xpY2UoMCwgLWV4dGVuc2lvbi5sZW5ndGgpO1xuICBjb25zdCBleHRlbnNpb25UYXJnZXRzID0gZXh0ZW5zaW9uRmFsbGJhY2tzW2V4dGVuc2lvbl0gPz8gW107XG4gIGZvciAoY29uc3QgZmFsbGJhY2tFeHRlbnNpb24gb2YgZXh0ZW5zaW9uVGFyZ2V0cykge1xuICAgIGZhbGxiYWNrVGFyZ2V0cy5hZGQoYCR7cGF0aFdpdGhvdXRFeHRlbnNpb259JHtmYWxsYmFja0V4dGVuc2lvbn1gKTtcbiAgfVxuXG4gIGlmIChyZWxhdGl2ZVBhdGguc3RhcnRzV2l0aCgnc3JjLycpKSB7XG4gICAgY29uc3QgZGlzdFBhdGhXaXRob3V0UHJlZml4ID0gcmVsYXRpdmVQYXRoLnNsaWNlKCdzcmMvJy5sZW5ndGgpO1xuICAgIGZvciAoY29uc3QgZmFsbGJhY2tFeHRlbnNpb24gb2YgZXh0ZW5zaW9uVGFyZ2V0cykge1xuICAgICAgZmFsbGJhY2tUYXJnZXRzLmFkZChcbiAgICAgICAgYGRpc3QvJHtkaXN0UGF0aFdpdGhvdXRQcmVmaXguc2xpY2UoMCwgLWV4dGVuc2lvbi5sZW5ndGgpfSR7ZmFsbGJhY2tFeHRlbnNpb259YFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gQXJyYXkuZnJvbShmYWxsYmFja1RhcmdldHMpO1xufVxuXG5mdW5jdGlvbiByZXNvbHZlRXhwb3J0U3VicGF0aChcbiAgZmlsZVBhdGg6IHN0cmluZyxcbiAgcGtnOiBQYWNrYWdlSW5mbyxcbiAgb3B0aW9ucz86IHsgYWxsb3dTb3VyY2VGYWxsYmFjaz86IGJvb2xlYW4gfVxuKTogc3RyaW5nIHtcbiAgaWYgKCFwa2cuZXhwb3J0cyB8fCB0eXBlb2YgcGtnLmV4cG9ydHMgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgY29uc3QgcmVsYXRpdmVQYXRoID0gdG9QYWNrYWdlUmVsYXRpdmVQYXRoKGZpbGVQYXRoLCBwa2cpO1xuICBpZiAoIXJlbGF0aXZlUGF0aCkge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGNvbnN0IGNvbXBhcmFibGVUYXJnZXRzID0gbmV3IFNldChbYC4vJHtyZWxhdGl2ZVBhdGh9YF0pO1xuICBpZiAob3B0aW9ucz8uYWxsb3dTb3VyY2VGYWxsYmFjaykge1xuICAgIGZvciAoY29uc3QgZmFsbGJhY2tUYXJnZXQgb2YgZ2V0U291cmNlRmFsbGJhY2tFeHBvcnRUYXJnZXRzKHJlbGF0aXZlUGF0aCkpIHtcbiAgICAgIGNvbXBhcmFibGVUYXJnZXRzLmFkZChgLi8ke2ZhbGxiYWNrVGFyZ2V0fWApO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNlYXJjaCB0aHJvdWdoIGV4cG9ydHMgdG8gZmluZCBhIG1hdGNoaW5nIHN1YnBhdGhcbiAgZm9yIChjb25zdCBbc3VicGF0aCwgdGFyZ2V0XSBvZiBPYmplY3QuZW50cmllcyhwa2cuZXhwb3J0cykpIHtcbiAgICBjb25zdCByZXNvbHZlZFRhcmdldCA9IHJlc29sdmVFeHBvcnRUYXJnZXQodGFyZ2V0KTtcbiAgICBpZiAoXG4gICAgICByZXNvbHZlZFRhcmdldCAmJlxuICAgICAgY29tcGFyYWJsZVRhcmdldHMuaGFzKG5vcm1hbGl6ZUV4cG9ydFBhdGgocmVzb2x2ZWRUYXJnZXQpKVxuICAgICkge1xuICAgICAgLy8gRm91bmQgYSBtYXRjaCAtIHJldHVybiB0aGUgc3VicGF0aCB3aXRob3V0IHRoZSBsZWFkaW5nIFwiLlwiXG4gICAgICAvLyBlLmcuLCBcIi4vaW50ZXJuYWwvYnVpbHRpbnNcIiAtPiBcIi9pbnRlcm5hbC9idWlsdGluc1wiXG4gICAgICByZXR1cm4gc3VicGF0aCA9PT0gJy4nID8gJycgOiBzdWJwYXRoLnN1YnN0cmluZygxKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gJyc7XG59XG5cbi8qKlxuICogUmVzb2x2ZSBhbiBleHBvcnQgdGFyZ2V0IHRvIGEgZmlsZSBwYXRoLCBoYW5kbGluZyBjb25kaXRpb25hbCBleHBvcnRzIGFuZCBhcnJheXMuXG4gKi9cbmZ1bmN0aW9uIHJlc29sdmVFeHBvcnRUYXJnZXQodGFyZ2V0OiB1bmtub3duKTogc3RyaW5nIHwgbnVsbCB7XG4gIGlmICh0eXBlb2YgdGFyZ2V0ID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiB0YXJnZXQ7XG4gIH1cblxuICAvLyBIYW5kbGUgYXJyYXkgZXhwb3J0cyAoZmFsbGJhY2sgY2hhaW5zKVxuICBpZiAoQXJyYXkuaXNBcnJheSh0YXJnZXQpKSB7XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIHRhcmdldCkge1xuICAgICAgY29uc3QgcmVzb2x2ZWQgPSByZXNvbHZlRXhwb3J0VGFyZ2V0KGl0ZW0pO1xuICAgICAgaWYgKHJlc29sdmVkKSByZXR1cm4gcmVzb2x2ZWQ7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKHRhcmdldCAmJiB0eXBlb2YgdGFyZ2V0ID09PSAnb2JqZWN0Jykge1xuICAgIC8vIENvbmRpdGlvbmFsIGV4cG9ydCAtIHRyeSBjb21tb24gY29uZGl0aW9ucyBpbiBvcmRlciBvZiBwcmVmZXJlbmNlXG4gICAgY29uc3QgY29uZGl0aW9ucyA9IFsnd29ya2Zsb3cnLCAnZGVmYXVsdCcsICdyZXF1aXJlJywgJ2ltcG9ydCcsICdub2RlJ107XG4gICAgZm9yIChjb25zdCBjb25kaXRpb24gb2YgY29uZGl0aW9ucykge1xuICAgICAgY29uc3QgdmFsdWUgPSAodGFyZ2V0IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KVtjb25kaXRpb25dO1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfVxuICAgICAgLy8gSGFuZGxlIG5lc3RlZCBjb25kaXRpb25hbHMgb3IgYXJyYXlzXG4gICAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgICBjb25zdCBuZXN0ZWQgPSByZXNvbHZlRXhwb3J0VGFyZ2V0KHZhbHVlKTtcbiAgICAgICAgaWYgKG5lc3RlZCkgcmV0dXJuIG5lc3RlZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBOb3JtYWxpemUgYW4gZXhwb3J0IHBhdGggZm9yIGNvbXBhcmlzb24uXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZUV4cG9ydFBhdGgocGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgLy8gRW5zdXJlIGl0IHN0YXJ0cyB3aXRoIC4vXG4gIGlmICghcGF0aC5zdGFydHNXaXRoKCcuLycpKSB7XG4gICAgcmV0dXJuICcuLycgKyBwYXRoO1xuICB9XG4gIHJldHVybiBwYXRoO1xufVxuXG4vKipcbiAqIENoZWNrIGlmIGEgZmlsZSBwYXRoIGlzIGluc2lkZSBub2RlX21vZHVsZXMuXG4gKi9cbmZ1bmN0aW9uIGlzSW5Ob2RlTW9kdWxlcyhmaWxlUGF0aDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGNvbnN0IG5vcm1hbGl6ZWRQYXRoID0gZmlsZVBhdGguc3BsaXQoc2VwKS5qb2luKCcvJyk7XG4gIHJldHVybiBub3JtYWxpemVkUGF0aC5pbmNsdWRlcygnL25vZGVfbW9kdWxlcy8nKTtcbn1cblxuLyoqXG4gKiBDYWNoZSBmb3IgcHJvamVjdCBkZXBlbmRlbmNpZXMgdG8gYXZvaWQgcmVwZWF0ZWQgZmlsZXN5c3RlbSByZWFkcy5cbiAqIE1hcHMgcHJvamVjdCByb290IHRvIHNldCBvZiBkZXBlbmRlbmN5IHBhY2thZ2UgbmFtZXMuXG4gKi9cbmNvbnN0IHByb2plY3REZXBzQ2FjaGUgPSBuZXcgTWFwPHN0cmluZywgU2V0PHN0cmluZz4+KCk7XG5cbi8qKlxuICogR2V0IGFsbCBkZXBlbmRlbmNpZXMgKGluY2x1ZGluZyBkZXZEZXBlbmRlbmNpZXMpIGZvciBhIHByb2plY3QuXG4gKi9cbmZ1bmN0aW9uIGdldFByb2plY3REZXBlbmRlbmNpZXMocHJvamVjdFJvb3Q6IHN0cmluZyk6IFNldDxzdHJpbmc+IHtcbiAgY29uc3QgY2FjaGVkID0gcHJvamVjdERlcHNDYWNoZS5nZXQocHJvamVjdFJvb3QpO1xuICBpZiAoY2FjaGVkKSB7XG4gICAgcmV0dXJuIGNhY2hlZDtcbiAgfVxuXG4gIGNvbnN0IGRlcHMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgY29uc3QgcGtnUGF0aCA9IGpvaW4ocHJvamVjdFJvb3QsICdwYWNrYWdlLmpzb24nKTtcblxuICBpZiAoZXhpc3RzU3luYyhwa2dQYXRoKSkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjb250ZW50ID0gcmVhZEZpbGVTeW5jKHBrZ1BhdGgsICd1dGYtOCcpO1xuICAgICAgY29uc3QgcGFyc2VkID0gSlNPTi5wYXJzZShjb250ZW50KTtcblxuICAgICAgLy8gQ29sbGVjdCBhbGwgZGVwZW5kZW5jeSB0eXBlc1xuICAgICAgZm9yIChjb25zdCBkZXBUeXBlIG9mIFtcbiAgICAgICAgJ2RlcGVuZGVuY2llcycsXG4gICAgICAgICdkZXZEZXBlbmRlbmNpZXMnLFxuICAgICAgICAncGVlckRlcGVuZGVuY2llcycsXG4gICAgICAgICdvcHRpb25hbERlcGVuZGVuY2llcycsXG4gICAgICBdKSB7XG4gICAgICAgIGNvbnN0IGRlcE9iaiA9IHBhcnNlZFtkZXBUeXBlXTtcbiAgICAgICAgaWYgKGRlcE9iaiAmJiB0eXBlb2YgZGVwT2JqID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgIGZvciAoY29uc3QgbmFtZSBvZiBPYmplY3Qua2V5cyhkZXBPYmopKSB7XG4gICAgICAgICAgICBkZXBzLmFkZChuYW1lKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIEludmFsaWQgSlNPTiBvciBmaWxlIG5vdCByZWFkYWJsZVxuICAgIH1cbiAgfVxuXG4gIHByb2plY3REZXBzQ2FjaGUuc2V0KHByb2plY3RSb290LCBkZXBzKTtcbiAgcmV0dXJuIGRlcHM7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgYSBmaWxlIHBhdGggaXMgaW5zaWRlIGEgd29ya3NwYWNlIHBhY2thZ2UgdGhhdCBpcyBhIGRlcGVuZGVuY3kgb2YgdGhlIHByb2plY3QuXG4gKiBUaGlzIGlzIGEgaGV1cmlzdGljIC0gd2UgY2hlY2sgaWYgdGhlIGZpbGUgaXMgaW4gYSBkaXJlY3Rvcnkgd2l0aCBhIHBhY2thZ2UuanNvblxuICogdGhhdCBoYXMgYSBcIm5hbWVcIiBmaWVsZCwgaXMgTk9UIGluIG5vZGVfbW9kdWxlcywgYW5kIGlzIGxpc3RlZCBhcyBhIGRlcGVuZGVuY3lcbiAqIG9mIHRoZSBwcm9qZWN0LlxuICovXG5mdW5jdGlvbiBpc1dvcmtzcGFjZVBhY2thZ2UoZmlsZVBhdGg6IHN0cmluZywgcHJvamVjdFJvb3Q6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBpZiAoaXNJbk5vZGVNb2R1bGVzKGZpbGVQYXRoKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IHBrZyA9IGZpbmRQYWNrYWdlSnNvbihmaWxlUGF0aCk7XG4gIGlmICghcGtnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIHBhY2thZ2UuanNvbiBpcyBub3QgdGhlIHJvb3QgcGFja2FnZS5qc29uXG4gIC8vIFVzZSByZXNvbHZlKCkgdG8gbm9ybWFsaXplIHBhdGhzIGZvciBjcm9zcy1wbGF0Zm9ybSBjb21wYXJpc29uXG4gIGNvbnN0IHJvb3RQa2dEaXIgPSByZXNvbHZlKHByb2plY3RSb290KTtcbiAgY29uc3QgcGtnRGlyID0gcmVzb2x2ZShwa2cuZGlyKTtcblxuICAvLyBJZiB0aGUgcGFja2FnZSBkaXJlY3RvcnkgaXMgdGhlIHByb2plY3Qgcm9vdCwgaXQncyBub3QgYSB3b3Jrc3BhY2UgcGFja2FnZVxuICBpZiAocGtnRGlyID09PSByb290UGtnRGlyKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gRm91bmQgYSBwYWNrYWdlLmpzb24gdGhhdCdzIG5vdCB0aGUgcm9vdC5cbiAgLy8gT25seSB0cmVhdCBpdCBhcyBhIHdvcmtzcGFjZSBwYWNrYWdlIGlmIGl0J3MgYWN0dWFsbHkgYSBkZXBlbmRlbmN5XG4gIC8vIG9mIHRoZSBjdXJyZW50IHByb2plY3QuIFRoaXMgcHJldmVudHMgc2libGluZyBhcHBzIGluIGEgbW9ub3JlcG9cbiAgLy8gZnJvbSBiZWluZyBpbmNvcnJlY3RseSB0cmVhdGVkIGFzIGltcG9ydGFibGUgcGFja2FnZXMuXG4gIGNvbnN0IHByb2plY3REZXBzID0gZ2V0UHJvamVjdERlcGVuZGVuY2llcyhwcm9qZWN0Um9vdCk7XG4gIHJldHVybiBwcm9qZWN0RGVwcy5oYXMocGtnLm5hbWUpO1xufVxuXG4vKipcbiAqIFJlc29sdmUgdGhlIG1vZHVsZSBzcGVjaWZpZXIgZm9yIGEgZmlsZS5cbiAqXG4gKiBAcGFyYW0gZmlsZVBhdGggLSBBYnNvbHV0ZSBwYXRoIHRvIHRoZSBmaWxlIGJlaW5nIHRyYW5zZm9ybWVkXG4gKiBAcGFyYW0gcHJvamVjdFJvb3QgLSBBYnNvbHV0ZSBwYXRoIHRvIHRoZSBwcm9qZWN0IHJvb3QgKHVzdWFsbHkgcHJvY2Vzcy5jd2QoKSlcbiAqIEByZXR1cm5zIFRoZSBtb2R1bGUgc3BlY2lmaWVyIHJlc3VsdFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBGaWxlIGluIG5vZGVfbW9kdWxlcyAocm9vdCBleHBvcnQpXG4gKiByZXNvbHZlTW9kdWxlU3BlY2lmaWVyKCcvcHJvamVjdC9ub2RlX21vZHVsZXMvcG9pbnQvZGlzdC9pbmRleC5qcycsICcvcHJvamVjdCcpXG4gKiAvLyA9PiB7IG1vZHVsZVNwZWNpZmllcjogJ3BvaW50QDEuMC4wJyB9XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEZpbGUgaW4gbm9kZV9tb2R1bGVzIChzdWJwYXRoIGV4cG9ydClcbiAqIHJlc29sdmVNb2R1bGVTcGVjaWZpZXIoJy9wcm9qZWN0L25vZGVfbW9kdWxlcy93b3JrZmxvdy9kaXN0L2ludGVybmFsL2J1aWx0aW5zLmpzJywgJy9wcm9qZWN0JylcbiAqIC8vID0+IHsgbW9kdWxlU3BlY2lmaWVyOiAnd29ya2Zsb3cvaW50ZXJuYWwvYnVpbHRpbnNANC4wLjAnIH1cbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gRmlsZSBpbiB3b3Jrc3BhY2UgcGFja2FnZVxuICogcmVzb2x2ZU1vZHVsZVNwZWNpZmllcignL3Byb2plY3QvcGFja2FnZXMvc2hhcmVkL3NyYy91dGlscy50cycsICcvcHJvamVjdCcpXG4gKiAvLyA9PiB7IG1vZHVsZVNwZWNpZmllcjogJ0BteW9yZy9zaGFyZWRAMC4wLjAnIH1cbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gTG9jYWwgYXBwIGZpbGVcbiAqIHJlc29sdmVNb2R1bGVTcGVjaWZpZXIoJy9wcm9qZWN0L3NyYy93b3JrZmxvd3Mvb3JkZXIudHMnLCAnL3Byb2plY3QnKVxuICogLy8gPT4geyBtb2R1bGVTcGVjaWZpZXI6IHVuZGVmaW5lZCB9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlTW9kdWxlU3BlY2lmaWVyKFxuICBmaWxlUGF0aDogc3RyaW5nLFxuICBwcm9qZWN0Um9vdDogc3RyaW5nXG4pOiBNb2R1bGVTcGVjaWZpZXJSZXN1bHQge1xuICAvLyBDaGVjayBpZiBmaWxlIGlzIGluIG5vZGVfbW9kdWxlcyBvciBhIHdvcmtzcGFjZSBwYWNrYWdlXG4gIGNvbnN0IGluTm9kZU1vZHVsZXMgPSBpc0luTm9kZU1vZHVsZXMoZmlsZVBhdGgpO1xuICBjb25zdCBpbldvcmtzcGFjZSA9XG4gICAgIWluTm9kZU1vZHVsZXMgJiYgaXNXb3Jrc3BhY2VQYWNrYWdlKGZpbGVQYXRoLCBwcm9qZWN0Um9vdCk7XG5cbiAgaWYgKCFpbk5vZGVNb2R1bGVzICYmICFpbldvcmtzcGFjZSkge1xuICAgIC8vIExvY2FsIGFwcCBmaWxlIC0gdXNlIGRlZmF1bHQgcmVsYXRpdmUgcGF0aCBmb3JtYXRcbiAgICByZXR1cm4geyBtb2R1bGVTcGVjaWZpZXI6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgLy8gRmluZCB0aGUgcGFja2FnZS5qc29uIGZvciB0aGlzIGZpbGVcbiAgY29uc3QgcGtnID0gZmluZFBhY2thZ2VKc29uKGZpbGVQYXRoKTtcbiAgaWYgKCFwa2cpIHtcbiAgICAvLyBDb3VsZG4ndCBmaW5kIHBhY2thZ2UuanNvbiAtIGZhbGwgYmFjayB0byBkZWZhdWx0XG4gICAgcmV0dXJuIHsgbW9kdWxlU3BlY2lmaWVyOiB1bmRlZmluZWQgfTtcbiAgfVxuXG4gIC8vIFJlc29sdmUgdGhlIGV4cG9ydCBzdWJwYXRoIChlLmcuLCBcIi9pbnRlcm5hbC9idWlsdGluc1wiIGZvciBcIndvcmtmbG93L2ludGVybmFsL2J1aWx0aW5zXCIpXG4gIGNvbnN0IHN1YnBhdGggPSByZXNvbHZlRXhwb3J0U3VicGF0aChmaWxlUGF0aCwgcGtnLCB7XG4gICAgYWxsb3dTb3VyY2VGYWxsYmFjazogdHJ1ZSxcbiAgfSk7XG5cbiAgLy8gUmV0dXJuIHRoZSBtb2R1bGUgc3BlY2lmaWVyIGFzIFwibmFtZS9zdWJwYXRoQHZlcnNpb25cIiBvciBcIm5hbWVAdmVyc2lvblwiXG4gIGNvbnN0IHNwZWNpZmllciA9IHN1YnBhdGhcbiAgICA/IGAke3BrZy5uYW1lfSR7c3VicGF0aH1AJHtwa2cudmVyc2lvbn1gXG4gICAgOiBgJHtwa2cubmFtZX1AJHtwa2cudmVyc2lvbn1gO1xuXG4gIHJldHVybiB7XG4gICAgbW9kdWxlU3BlY2lmaWVyOiBzcGVjaWZpZXIsXG4gIH07XG59XG5cbi8qKlxuICogQ2xlYXIgdGhlIHBhY2thZ2UuanNvbiBjYWNoZS4gVXNlZnVsIGZvciB0ZXN0aW5nIG9yIHdoZW4gcGFja2FnZS5qc29uIGZpbGVzIG1heSBoYXZlIGNoYW5nZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjbGVhck1vZHVsZVNwZWNpZmllckNhY2hlKCk6IHZvaWQge1xuICBwYWNrYWdlSnNvbkNhY2hlLmNsZWFyKCk7XG4gIHByb2plY3REZXBzQ2FjaGUuY2xlYXIoKTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGEgZmlsZSBwYXRoIHRvIGEgcmVsYXRpdmUgaW1wb3J0IHBhdGggZnJvbSBwcm9qZWN0IHJvb3QuXG4gKi9cbmZ1bmN0aW9uIHRvUmVsYXRpdmVJbXBvcnRQYXRoKGZpbGVQYXRoOiBzdHJpbmcsIHByb2plY3RSb290OiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBub3JtYWxpemVkUHJvamVjdFJvb3QgPSBwcm9qZWN0Um9vdC5yZXBsYWNlKC9cXFxcL2csICcvJyk7XG4gIGNvbnN0IG5vcm1hbGl6ZWRGaWxlUGF0aCA9IGZpbGVQYXRoLnJlcGxhY2UoL1xcXFwvZywgJy8nKTtcblxuICBsZXQgcmVsYXRpdmVQYXRoOiBzdHJpbmc7XG4gIGlmIChub3JtYWxpemVkRmlsZVBhdGguc3RhcnRzV2l0aChub3JtYWxpemVkUHJvamVjdFJvb3QgKyAnLycpKSB7XG4gICAgcmVsYXRpdmVQYXRoID0gbm9ybWFsaXplZEZpbGVQYXRoLnN1YnN0cmluZyhcbiAgICAgIG5vcm1hbGl6ZWRQcm9qZWN0Um9vdC5sZW5ndGggKyAxXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBGaWxlIGlzIG91dHNpZGUgcHJvamVjdCByb290LCB1c2UgdGhlIGZ1bGwgcGF0aCBzZWdtZW50cyBhZnRlciBjb21tb24gYW5jZXN0b3JcbiAgICByZWxhdGl2ZVBhdGggPSByZWxhdGl2ZShwcm9qZWN0Um9vdCwgZmlsZVBhdGgpLnJlcGxhY2UoL1xcXFwvZywgJy8nKTtcbiAgfVxuXG4gIC8vIEVuc3VyZSByZWxhdGl2ZSBwYXRocyBzdGFydCB3aXRoIC4vXG4gIGlmICghcmVsYXRpdmVQYXRoLnN0YXJ0c1dpdGgoJy4nKSkge1xuICAgIHJlbGF0aXZlUGF0aCA9IGAuLyR7cmVsYXRpdmVQYXRofWA7XG4gIH1cblxuICByZXR1cm4gcmVsYXRpdmVQYXRoO1xufVxuXG4vKipcbiAqIFJldHVybnMgdHJ1ZSB3aGVuIHBhY2thZ2UgZXhwb3J0cyBpbmNsdWRlIGEgcm9vdCBlbnRyeSAoXCIuXCIpLlxuICogU3RyaW5nL2FycmF5L2NvbmRpdGlvbmFsIG9iamVjdCBleHBvcnRzIGFyZSBhbGwgY29uc2lkZXJlZCByb290IGV4cG9ydHMuXG4gKi9cbmZ1bmN0aW9uIGhhc1Jvb3RFeHBvcnQoZXhwb3J0c0ZpZWxkOiB1bmtub3duKTogYm9vbGVhbiB7XG4gIGlmICh0eXBlb2YgZXhwb3J0c0ZpZWxkID09PSAnc3RyaW5nJyB8fCBBcnJheS5pc0FycmF5KGV4cG9ydHNGaWVsZCkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlmICghZXhwb3J0c0ZpZWxkIHx8IHR5cGVvZiBleHBvcnRzRmllbGQgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGV4cG9ydHNGaWVsZCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik7XG4gIC8vIENvbmRpdGlvbmFsIGV4cG9ydHMgb2JqZWN0IChlLmcuIHsgXCJpbXBvcnRcIjogXCIuLi5cIiwgXCJkZWZhdWx0XCI6IFwiLi4uXCIgfSlcbiAgLy8gcmVwcmVzZW50cyB0aGUgcm9vdCBleHBvcnQuXG4gIGlmIChrZXlzLmxlbmd0aCA+IDAgJiYga2V5cy5ldmVyeSgoa2V5KSA9PiAha2V5LnN0YXJ0c1dpdGgoJy4nKSkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiAnLicgaW4gKGV4cG9ydHNGaWVsZCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik7XG59XG5cbi8qKlxuICogTm9ybWFsaXplIGEgcGFja2FnZSB0YXJnZXQgcGF0aCB0byBhIGNvbXBhcmFibGUgcGFja2FnZS1yZWxhdGl2ZSBwYXRoLlxuICogUmV0dXJucyBudWxsIGZvciBpbnZhbGlkL3Vuc3VwcG9ydGVkIHBhdGhzLlxuICovXG5mdW5jdGlvbiBub3JtYWxpemVQYWNrYWdlVGFyZ2V0UGF0aChwYXRoOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgY29uc3Qgbm9ybWFsaXplZCA9IHBhdGgucmVwbGFjZSgvXFxcXC9nLCAnLycpO1xuICBpZiAobm9ybWFsaXplZC5zdGFydHNXaXRoKCcuLycpKSB7XG4gICAgcmV0dXJuIG5vcm1hbGl6ZWQuc3Vic3RyaW5nKDIpO1xuICB9XG4gIGlmIChub3JtYWxpemVkLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgIHJldHVybiBub3JtYWxpemVkLnN1YnN0cmluZygxKTtcbiAgfVxuICByZXR1cm4gbm9ybWFsaXplZDtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgZmlsZVBhdGggaXMgdGhlIHBhY2thZ2Ugcm9vdCBlbnRyeXBvaW50LlxuICogVGhpcyBjaGVja3Mgcm9vdCBleHBvcnRzIGZpcnN0LCB0aGVuIG1haW4vbW9kdWxlL2luZGV4IGZhbGxiYWNrcyB3aGVuIGV4cG9ydHMgYXJlIGFic2VudC5cbiAqL1xuZnVuY3Rpb24gaXNSb290RW50cnlwb2ludEZpbGUoZmlsZVBhdGg6IHN0cmluZywgcGtnOiBQYWNrYWdlSW5mbyk6IGJvb2xlYW4ge1xuICBjb25zdCBub3JtYWxpemVkRmlsZVBhdGggPSBmaWxlUGF0aC5yZXBsYWNlKC9cXFxcL2csICcvJyk7XG4gIGNvbnN0IG5vcm1hbGl6ZWRQa2dEaXIgPSBwa2cuZGlyLnJlcGxhY2UoL1xcXFwvZywgJy8nKTtcblxuICBpZiAoIW5vcm1hbGl6ZWRGaWxlUGF0aC5zdGFydHNXaXRoKG5vcm1hbGl6ZWRQa2dEaXIgKyAnLycpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgcmVsYXRpdmVGaWxlUGF0aCA9IG5vcm1hbGl6ZWRGaWxlUGF0aC5zdWJzdHJpbmcoXG4gICAgbm9ybWFsaXplZFBrZ0Rpci5sZW5ndGggKyAxXG4gICk7XG5cbiAgaWYgKHBrZy5leHBvcnRzKSB7XG4gICAgbGV0IHJvb3RUYXJnZXQ6IHVua25vd247XG5cbiAgICBpZiAoXG4gICAgICB0eXBlb2YgcGtnLmV4cG9ydHMgPT09ICdvYmplY3QnICYmXG4gICAgICAhQXJyYXkuaXNBcnJheShwa2cuZXhwb3J0cykgJiZcbiAgICAgICcuJyBpbiBwa2cuZXhwb3J0c1xuICAgICkge1xuICAgICAgcm9vdFRhcmdldCA9IChwa2cuZXhwb3J0cyBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbJy4nXTtcbiAgICB9IGVsc2UgaWYgKGhhc1Jvb3RFeHBvcnQocGtnLmV4cG9ydHMpKSB7XG4gICAgICByb290VGFyZ2V0ID0gcGtnLmV4cG9ydHM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCByZXNvbHZlZFRhcmdldCA9IHJlc29sdmVFeHBvcnRUYXJnZXQocm9vdFRhcmdldCk7XG4gICAgaWYgKCFyZXNvbHZlZFRhcmdldCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IG5vcm1hbGl6ZWRUYXJnZXQgPSBub3JtYWxpemVQYWNrYWdlVGFyZ2V0UGF0aChyZXNvbHZlZFRhcmdldCk7XG4gICAgcmV0dXJuIG5vcm1hbGl6ZWRUYXJnZXQgPT09IHJlbGF0aXZlRmlsZVBhdGg7XG4gIH1cblxuICBjb25zdCByb290Q2FuZGlkYXRlcyA9IFtcbiAgICBwa2cubW9kdWxlLFxuICAgIHBrZy5tYWluLFxuICAgICdpbmRleC5qcycsXG4gICAgJ2luZGV4Lm1qcycsXG4gICAgJ2luZGV4LmNqcycsXG4gICAgJ2luZGV4LnRzJyxcbiAgICAnaW5kZXgubXRzJyxcbiAgICAnaW5kZXguY3RzJyxcbiAgXVxuICAgIC5maWx0ZXIoKGNhbmRpZGF0ZSk6IGNhbmRpZGF0ZSBpcyBzdHJpbmcgPT4gdHlwZW9mIGNhbmRpZGF0ZSA9PT0gJ3N0cmluZycpXG4gICAgLm1hcCgoY2FuZGlkYXRlKSA9PiBub3JtYWxpemVQYWNrYWdlVGFyZ2V0UGF0aChjYW5kaWRhdGUpKVxuICAgIC5maWx0ZXIoKGNhbmRpZGF0ZSk6IGNhbmRpZGF0ZSBpcyBzdHJpbmcgPT4gY2FuZGlkYXRlICE9PSBudWxsKTtcblxuICByZXR1cm4gcm9vdENhbmRpZGF0ZXMuaW5jbHVkZXMocmVsYXRpdmVGaWxlUGF0aCk7XG59XG5cbi8qKlxuICogUmVzdWx0IG9mIHJlc29sdmluZyBhbiBpbXBvcnQgcGF0aCBmb3IgYSBmaWxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEltcG9ydFBhdGhSZXN1bHQge1xuICAvKipcbiAgICogVGhlIGltcG9ydCBwYXRoIHRvIHVzZS5cbiAgICogLSBGb3Igd29ya3NwYWNlIHBhY2thZ2VzOiB0aGUgcGFja2FnZSBuYW1lIChlLmcuLCBcIkBteW9yZy9zaGFyZWRcIilcbiAgICogLSBGb3Igbm9kZV9tb2R1bGVzIHBhY2thZ2VzOiB0aGUgcGFja2FnZSBuYW1lXG4gICAqIC0gRm9yIGxvY2FsIGZpbGVzOiBhIHJlbGF0aXZlIHBhdGggKGUuZy4sIFwiLi9zcmMvd29ya2Zsb3dzL29yZGVyLnRzXCIpXG4gICAqL1xuICBpbXBvcnRQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBmaWxlIGlzIGZyb20gYSBwYWNrYWdlICh3b3Jrc3BhY2Ugb3Igbm9kZV9tb2R1bGVzKS5cbiAgICogV2hlbiB0cnVlLCB0aGUgaW1wb3J0IHNob3VsZCBnbyB0aHJvdWdoIHBhY2thZ2UgcmVzb2x1dGlvbiB3aGljaCByZXNwZWN0cyBleHBvcnQgY29uZGl0aW9ucy5cbiAgICovXG4gIGlzUGFja2FnZTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIGltcG9ydCBwYXRoIHRvIHVzZSBmb3IgYSBmaWxlIGluIGEgYnVuZGxlJ3MgdmlydHVhbCBlbnRyeS5cbiAqXG4gKiBGb3Igd29ya3NwYWNlIHBhY2thZ2VzIGFuZCBub2RlX21vZHVsZXMgcGFja2FnZXMsIHJldHVybnMgdGhlIHBhY2thZ2UgbmFtZVxuICogc28gdGhhdCBidW5kbGVyIHJlc29sdXRpb24gd2lsbCByZXNwZWN0IHBhY2thZ2UuanNvbiBleHBvcnRzIGFuZCBjb25kaXRpb25zLlxuICpcbiAqIEZvciBsb2NhbCBhcHAgZmlsZXMsIHJldHVybnMgYSByZWxhdGl2ZSBwYXRoLlxuICpcbiAqIEBwYXJhbSBmaWxlUGF0aCAtIEFic29sdXRlIHBhdGggdG8gdGhlIGZpbGVcbiAqIEBwYXJhbSBwcm9qZWN0Um9vdCAtIEFic29sdXRlIHBhdGggdG8gdGhlIHByb2plY3Qgcm9vdFxuICogQHJldHVybnMgVGhlIGltcG9ydCBwYXRoIGFuZCB3aGV0aGVyIGl0J3MgYSBwYWNrYWdlXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFdvcmtzcGFjZSBwYWNrYWdlXG4gKiBnZXRJbXBvcnRQYXRoKCcvcHJvamVjdC9wYWNrYWdlcy9zaGFyZWQvc3JjL2luZGV4LnRzJywgJy9wcm9qZWN0JylcbiAqIC8vID0+IHsgaW1wb3J0UGF0aDogJ0BteW9yZy9zaGFyZWQnLCBpc1BhY2thZ2U6IHRydWUgfVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBMb2NhbCBhcHAgZmlsZVxuICogZ2V0SW1wb3J0UGF0aCgnL3Byb2plY3Qvc3JjL3dvcmtmbG93cy9vcmRlci50cycsICcvcHJvamVjdCcpXG4gKiAvLyA9PiB7IGltcG9ydFBhdGg6ICcuL3NyYy93b3JrZmxvd3Mvb3JkZXIudHMnLCBpc1BhY2thZ2U6IGZhbHNlIH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEltcG9ydFBhdGgoXG4gIGZpbGVQYXRoOiBzdHJpbmcsXG4gIHByb2plY3RSb290OiBzdHJpbmdcbik6IEltcG9ydFBhdGhSZXN1bHQge1xuICAvLyBDaGVjayBpZiBmaWxlIGlzIGluIG5vZGVfbW9kdWxlcyBvciBhIHdvcmtzcGFjZSBwYWNrYWdlXG4gIGNvbnN0IGluTm9kZU1vZHVsZXMgPSBpc0luTm9kZU1vZHVsZXMoZmlsZVBhdGgpO1xuICBjb25zdCBpbldvcmtzcGFjZSA9XG4gICAgIWluTm9kZU1vZHVsZXMgJiYgaXNXb3Jrc3BhY2VQYWNrYWdlKGZpbGVQYXRoLCBwcm9qZWN0Um9vdCk7XG5cbiAgaWYgKGluTm9kZU1vZHVsZXMgfHwgaW5Xb3Jrc3BhY2UpIHtcbiAgICAvLyBGaW5kIHRoZSBwYWNrYWdlLmpzb24gZm9yIHRoaXMgZmlsZVxuICAgIGNvbnN0IHBrZyA9IGZpbmRQYWNrYWdlSnNvbihmaWxlUGF0aCk7XG4gICAgaWYgKHBrZykge1xuICAgICAgY29uc3QgaXNEaXJlY3RQcm9qZWN0RGVwZW5kZW5jeSA9IGdldFByb2plY3REZXBlbmRlbmNpZXMocHJvamVjdFJvb3QpLmhhcyhcbiAgICAgICAgcGtnLm5hbWVcbiAgICAgICk7XG4gICAgICBjb25zdCBjYW5Vc2VQYWNrYWdlU3BlY2lmaWVyID0gaW5Xb3Jrc3BhY2UgfHwgaXNEaXJlY3RQcm9qZWN0RGVwZW5kZW5jeTtcblxuICAgICAgLy8gRm9yIHRyYW5zaXRpdmUgbm9kZV9tb2R1bGVzIGRlcGVuZGVuY2llcyB1bmRlciBzdHJpY3QgcGFja2FnZSBtYW5hZ2Vyc1xuICAgICAgLy8gKGZvciBleGFtcGxlLCBwbnBtKSwgaW1wb3J0aW5nIGJ5IHBhY2thZ2UgbmFtZSBjYW4gZmFpbC4gVXNlIGEgZGlyZWN0XG4gICAgICAvLyBmaWxlIHBhdGggaW1wb3J0IGluIHRob3NlIGNhc2VzLlxuICAgICAgaWYgKCFjYW5Vc2VQYWNrYWdlU3BlY2lmaWVyKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaW1wb3J0UGF0aDogdG9SZWxhdGl2ZUltcG9ydFBhdGgoZmlsZVBhdGgsIHByb2plY3RSb290KSxcbiAgICAgICAgICBpc1BhY2thZ2U6IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICAvLyBQcmVmZXIgYSBwYWNrYWdlIHN1YnBhdGggaW1wb3J0IHdoZW4gdGhpcyBmaWxlIG1hcHMgdG8gYW4gZXhwb3J0LlxuICAgICAgLy8gVGhpcyBwcmVzZXJ2ZXMgdGhlIGV4YWN0IG1vZHVsZSBiZWluZyBidW5kbGVkIHdoaWxlIHN0aWxsIHJlc3BlY3RpbmdcbiAgICAgIC8vIHBhY2thZ2UgZXhwb3J0IGNvbmRpdGlvbnMuXG4gICAgICAvLyBOb3RlOiByZXNvbHZlRXhwb3J0U3VicGF0aCByZXR1cm5zIFwiXCIgZm9yIGJvdGggcm9vdCBcIi5cIiBtYXRjaGVzIGFuZFxuICAgICAgLy8gbm8gbWF0Y2g7IHJvb3QgZW50cnlwb2ludHMgYXJlIGludGVudGlvbmFsbHkgaGFuZGxlZCBiZWxvdyB2aWFcbiAgICAgIC8vIGlzUm9vdEVudHJ5cG9pbnRGaWxlKCkuXG4gICAgICBjb25zdCBzdWJwYXRoID0gcmVzb2x2ZUV4cG9ydFN1YnBhdGgoZmlsZVBhdGgsIHBrZyk7XG4gICAgICBpZiAoc3VicGF0aCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGltcG9ydFBhdGg6IGAke3BrZy5uYW1lfSR7c3VicGF0aH1gLFxuICAgICAgICAgIGlzUGFja2FnZTogdHJ1ZSxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgLy8gT25seSBpbXBvcnQgcGFja2FnZSByb290IHdoZW4gdGhpcyBmaWxlIGlzIHRoZSByb290IGVudHJ5cG9pbnQuXG4gICAgICAvLyBGb3IgZGVlcC9pbnRlcm5hbCBmaWxlcywgZmFsbCBiYWNrIHRvIGRpcmVjdCByZWxhdGl2ZSBpbXBvcnRzIHNvIHdlXG4gICAgICAvLyBkb24ndCBhY2NpZGVudGFsbHkgaW1wb3J0IGEgbm9uLWV4aXN0ZW50IG9yIGRpZmZlcmVudCBtb2R1bGUuXG4gICAgICBpZiAoIWlzUm9vdEVudHJ5cG9pbnRGaWxlKGZpbGVQYXRoLCBwa2cpKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaW1wb3J0UGF0aDogdG9SZWxhdGl2ZUltcG9ydFBhdGgoZmlsZVBhdGgsIHByb2plY3RSb290KSxcbiAgICAgICAgICBpc1BhY2thZ2U6IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBpbXBvcnRQYXRoOiBwa2cubmFtZSxcbiAgICAgICAgaXNQYWNrYWdlOiB0cnVlLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICAvLyBMb2NhbCBhcHAgZmlsZSAtIHVzZSByZWxhdGl2ZSBwYXRoXG4gIHJldHVybiB7XG4gICAgaW1wb3J0UGF0aDogdG9SZWxhdGl2ZUltcG9ydFBhdGgoZmlsZVBhdGgsIHByb2plY3RSb290KSxcbiAgICBpc1BhY2thZ2U6IGZhbHNlLFxuICB9O1xufVxuIl19
@@ -257,4 +257,4 @@ describe('getImportPath', () => {
257
257
  });
258
258
  });
259
259
  });
260
- //# sourceMappingURL=module-specifier.test.js.map
260
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLXNwZWNpZmllci50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL21vZHVsZS1zcGVjaWZpZXIudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDakMsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDckUsT0FBTyxFQUNMLHlCQUF5QixFQUN6QixhQUFhLEVBQ2Isc0JBQXNCLEdBQ3ZCLE1BQU0sdUJBQXVCLENBQUM7QUFFL0IsU0FBUyxTQUFTLENBQUMsSUFBWSxFQUFFLEtBQWM7SUFDN0MsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzlDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQy9ELENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxJQUFZLEVBQUUsUUFBUSxHQUFHLEVBQUU7SUFDNUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzlDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRCxRQUFRLENBQUMsZUFBZSxFQUFFLEdBQUcsRUFBRTtJQUM3QixJQUFJLFFBQWdCLENB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Q0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1rZGlyU3luYywgbWtkdGVtcFN5bmMsIHJtU3luYywgd3JpdGVGaWxlU3luYyB9IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHsgdG1wZGlyIH0gZnJvbSAnbm9kZTpvcyc7XG5pbXBvcnQgeyBkaXJuYW1lLCBqb2luIH0gZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7IGFmdGVyRWFjaCwgYmVmb3JlRWFjaCwgZGVzY3JpYmUsIGV4cGVjdCwgaXQgfSBmcm9tICd2aXRlc3QnO1xuaW1wb3J0IHtcbiAgY2xlYXJNb2R1bGVTcGVjaWZpZXJDYWNoZSxcbiAgZ2V0SW1wb3J0UGF0aCxcbiAgcmVzb2x2ZU1vZHVsZVNwZWNpZmllcixcbn0gZnJvbSAnLi9tb2R1bGUtc3BlY2lmaWVyLmpzJztcblxuZnVuY3Rpb24gd3JpdGVKc29uKHBhdGg6IHN0cmluZywgdmFsdWU6IHVua25vd24pOiB2b2lkIHtcbiAgbWtkaXJTeW5jKGRpcm5hbWUocGF0aCksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICB3cml0ZUZpbGVTeW5jKHBhdGgsIEpTT04uc3RyaW5naWZ5KHZhbHVlLCBudWxsLCAyKSwgJ3V0Zi04Jyk7XG59XG5cbmZ1bmN0aW9uIHdyaXRlRmlsZShwYXRoOiBzdHJpbmcsIGNvbnRlbnRzID0gJycpOiB2b2lkIHtcbiAgbWtkaXJTeW5jKGRpcm5hbWUocGF0aCksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICB3cml0ZUZpbGVTeW5jKHBhdGgsIGNvbnRlbnRzLCAndXRmLTgnKTtcbn1cblxuZGVzY3JpYmUoJ2dldEltcG9ydFBhdGgnLCAoKSA9PiB7XG4gIGxldCB0ZXN0Um9vdDogc3RyaW5nO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIGNsZWFyTW9kdWxlU3BlY2lmaWVyQ2FjaGUoKTtcbiAgICB0ZXN0Um9vdCA9IG1rZHRlbXBTeW5jKGpvaW4odG1wZGlyKCksICd3b3JrZmxvdy1tb2R1bGUtc3BlY2lmaWVyLScpKTtcbiAgfSk7XG5cbiAgYWZ0ZXJFYWNoKCgpID0+IHtcbiAgICBjbGVhck1vZHVsZVNwZWNpZmllckNhY2hlKCk7XG4gICAgcm1TeW5jKHRlc3RSb290LCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gIH0pO1xuXG4gIGl0KCd1c2VzIHBhY2thZ2Ugc3VicGF0aCBpbXBvcnQgd2hlbiBmaWxlIG1hdGNoZXMgYW4gZXhwb3J0IHN1YnBhdGgnLCAoKSA9PiB7XG4gICAgY29uc3QgcHJvamVjdFJvb3QgPSBqb2luKHRlc3RSb290LCAnYXBwcy9jaGF0Jyk7XG4gICAgY29uc3Qgd29ya3NwYWNlUGtnRGlyID0gam9pbih0ZXN0Um9vdCwgJ3BhY2thZ2VzL2FnZW50Jyk7XG4gICAgY29uc3QgZmlsZVBhdGggPSBqb2luKHdvcmtzcGFjZVBrZ0RpciwgJ3NyYy9zZXJ2ZXIudHMnKTtcblxuICAgIHdyaXRlSnNvbihqb2luKHByb2plY3RSb290LCAncGFja2FnZS5qc29uJyksIHtcbiAgICAgIG5hbWU6ICdjaGF0JyxcbiAgICAgIGRlcGVuZGVuY2llczogeyAnQGludGVybmFsL2FnZW50JzogJ3dvcmtzcGFjZToqJyB9LFxuICAgIH0pO1xuXG4gICAgd3JpdGVKc29uKGpvaW4od29ya3NwYWNlUGtnRGlyLCAncGFja2FnZS5qc29uJyksIHtcbiAgICAgIG5hbWU6ICdAaW50ZXJuYWwvYWdlbnQnLFxuICAgICAgdmVyc2lvbjogJzEuMC4wJyxcbiAgICAgIGV4cG9ydHM6IHtcbiAgICAgICAgJy4vc2VydmVyJzogJy4vc3JjL3NlcnZlci50cycsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgd3JpdGVGaWxlKGZpbGVQYXRoLCBgJ3VzZSBzdGVwJztcXG5gKTtcblxuICAgIGV4cGVjdChnZXRJbXBvcnRQYXRoKGZpbGVQYXRoLCBwcm9qZWN0Um9vdCkpLnRvRXF1YWwoe1xuICAgICAgaW1wb3J0UGF0aDogJ0BpbnRlcm5hbC9hZ2VudC9zZXJ2ZXInLFxuICAgICAgaXNQYWNrYWdlOiB0cnVlLFxuICAgIH0pO1xuICB9KTtcblxuICBpdCgnZmFsbHMgYmFjayB0byByZWxhdGl2ZSBpbXBvcnQgd2hlbiBwYWNrYWdlIGhhcyBubyByb290IGV4cG9ydCcsICgpID0+IHtcbiAgICBjb25zdCBwcm9qZWN0Um9vdCA9IGpvaW4odGVzdFJvb3QsICdhcHBzL2NoYXQnKTtcbiAgICBjb25zdCB3b3Jrc3BhY2VQa2dEaXIgPSBqb2luKHRlc3RSb290LCAncGFja2FnZXMvYWdlbnQnKTtcbiAgICBjb25zdCBmaWxlUGF0aCA9IGpvaW4od29ya3NwYWNlUGtnRGlyLCAnc3JjL3NlcnZlci50cycpO1xuXG4gICAgd3JpdGVKc29uKGpvaW4ocHJvamVjdFJvb3QsICdwYWNrYWdlLmpzb24nKSwge1xuICAgICAgbmFtZTogJ2NoYXQnLFxuICAgICAgZGVwZW5kZW5jaWVzOiB7ICdAaW50ZXJuYWwvYWdlbnQnOiAnd29ya3NwYWNlOionIH0sXG4gICAgfSk7XG5cbiAgICB3cml0ZUpzb24oam9pbih3b3Jrc3BhY2VQa2dEaXIsICdwYWNrYWdlLmpzb24nKSwge1xuICAgICAgbmFtZTogJ0BpbnRlcm5hbC9hZ2VudCcsXG4gICAgICB2ZXJzaW9uOiAnMS4wLjAnLFxuICAgICAgZXhwb3J0czoge1xuICAgICAgICAnLi9zZXJ2ZXInOiAnLi9kaXN0L3NlcnZlci5qcycsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgd3JpdGVGaWxlKGZpbGVQYXRoLCBgJ3VzZSBzdGVwJztcXG5gKTtcblxuICAgIGV4cGVjdChnZXRJbXBvcnRQYXRoKGZpbGVQYXRoLCBwcm9qZWN0Um9vdCkpLnRvRXF1YWwoe1xuICAgICAgaW1wb3J0UGF0aDogJy4uLy4uL3BhY2thZ2VzL2FnZW50L3NyYy9zZXJ2ZXIudHMnLFxuICAgICAgaXNQYWNrYWdlOiBmYWxzZSxcbiAgICB9KTtcbiAgfSk7XG5cbiAgaXQoJ3VzZXMgcGFja2FnZSByb290IGltcG9ydCBmb3Igcm9vdCBleHBvcnRzJywgKCkgPT4ge1xuICAgIGNvbnN0IHByb2plY3RSb290ID0gam9pbih0ZXN0Um9vdCwgJ2FwcHMvY2hhdCcpO1xuICAgIGNvbnN0IHdvcmtzcGFjZVBrZ0RpciA9IGpvaW4odGVzdFJvb3QsICdwYWNrYWdlcy9hZ2VudCcpO1xuICAgIGNvbnN0IGZpbGVQYXRoID0gam9pbih3b3Jrc3BhY2VQa2dEaXIsICdzcmMvaW5kZXgudHMnKTtcblxuICAgIHdyaXRlSnNvbihqb2luKHByb2plY3RSb290LCAncGFja2FnZS5qc29uJyksIHtcbiAgICAgIG5hbWU6ICdjaGF0JyxcbiAgICAgIGRlcGVuZGVuY2llczogeyAnQGludGVybmFsL2FnZW50JzogJ3dvcmtzcGFjZToqJyB9LFxuICAgIH0pO1xuXG4gICAgd3JpdGVKc29uKGpvaW4od29ya3NwYWNlUGtnRGlyLCAncGFja2FnZS5qc29uJyksIHtcbiAgICAgIG5hbWU6ICdAaW50ZXJuYWwvYWdlbnQnLFxuICAgICAgdmVyc2lvbjogJzEuMC4wJyxcbiAgICAgIGV4cG9ydHM6IHtcbiAgICAgICAgJy4nOiAnLi9zcmMvaW5kZXgudHMnLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHdyaXRlRmlsZShmaWxlUGF0aCwgYCd1c2Ugd29ya2Zsb3cnO1xcbmApO1xuXG4gICAgZXhwZWN0KGdldEltcG9ydFBhdGgoZmlsZVBhdGgsIHByb2plY3RSb290KSkudG9FcXVhbCh7XG4gICAgICBpbXBvcnRQYXRoOiAnQGludGVybmFsL2FnZW50JyxcbiAgICAgIGlzUGFja2FnZTogdHJ1ZSxcbiAgICB9KTtcbiAgfSk7XG5cbiAgaXQoJ3VzZXMgcGFja2FnZSByb290IGltcG9ydCB3aGVuIHBhY2thZ2UgbW9kdWxlIHBvaW50cyB0byBmaWxlJywgKCkgPT4ge1xuICAgIGNvbnN0IHByb2plY3RSb290ID0gam9pbih0ZXN0Um9vdCwgJ2FwcHMvY2hhdCcpO1xuICAgIGNvbnN0IHdvcmtzcGFjZVBrZ0RpciA9IGpvaW4odGVzdFJvb3QsICdwYWNrYWdlcy9hZ2VudCcpO1xuICAgIGNvbnN0IGZpbGVQYXRoID0gam9pbih3b3Jrc3BhY2VQa2dEaXIsICdzcmMvaW5kZXgubWpzJyk7XG5cbiAgICB3cml0ZUpzb24oam9pbihwcm9qZWN0Um9vdCwgJ3BhY2thZ2UuanNvbicpLCB7XG4gICAgICBuYW1lOiAnY2hhdCcsXG4gICAgICBkZXBlbmRlbmNpZXM6IHsgJ0BpbnRlcm5hbC9hZ2VudCc6ICd3b3Jrc3BhY2U6KicgfSxcbiAgICB9KTtcblxuICAgIHdyaXRlSnNvbihqb2luKHdvcmtzcGFjZVBrZ0RpciwgJ3BhY2thZ2UuanNvbicpLCB7XG4gICAgICBuYW1lOiAnQGludGVybmFsL2FnZW50JyxcbiAgICAgIHZlcnNpb246ICcxLjAuMCcsXG4gICAgICBtb2R1bGU6ICcuL3NyYy9pbmRleC5tanMnLFxuICAgICAgbWFpbjogJy4vZGlzdC9pbmRleC5janMnLFxuICAgIH0pO1xuXG4gICAgd3JpdGVGaWxlKGZpbGVQYXRoLCBgJ3VzZSB3b3JrZmxvdyc7XFxuYCk7XG5cbiAgICBleHBlY3QoZ2V0SW1wb3J0UGF0aChmaWxlUGF0aCwgcHJvamVjdFJvb3QpKS50b0VxdWFsKHtcbiAgICAgIGltcG9ydFBhdGg6ICdAaW50ZXJuYWwvYWdlbnQnLFxuICAgICAgaXNQYWNrYWdlOiB0cnVlLFxuICAgIH0pO1xuICB9KTtcblxuICBpdCgndXNlcyBwYWNrYWdlIHJvb3QgaW1wb3J0IGZvciBjb25kaXRpb25hbCByb290IGV4cG9ydHMnLCAoKSA9PiB7XG4gICAgY29uc3QgcHJvamVjdFJvb3QgPSBqb2luKHRlc3RSb290LCAnYXBwcy9jaGF0Jyk7XG4gICAgY29uc3Qgd29ya3NwYWNlUGtnRGlyID0gam9pbih0ZXN0Um9vdCwgJ3BhY2thZ2VzL2FnZW50Jyk7XG4gICAgY29uc3QgZmlsZVBhdGggPSBqb2luKHdvcmtzcGFjZVBrZ0RpciwgJ3NyYy9pbmRleC5qcycpO1xuXG4gICAgd3JpdGVKc29uKGpvaW4ocHJvamVjdFJvb3QsICdwYWNrYWdlLmpzb24nKSwge1xuICAgICAgbmFtZTogJ2NoYXQnLFxuICAgICAgZGVwZW5kZW5jaWVzOiB7ICdAaW50ZXJuYWwvYWdlbnQnOiAnd29ya3NwYWNlOionIH0sXG4gICAgfSk7XG5cbiAgICB3cml0ZUpzb24oam9pbih3b3Jrc3BhY2VQa2dEaXIsICdwYWNrYWdlLmpzb24nKSwge1xuICAgICAgbmFtZTogJ0BpbnRlcm5hbC9hZ2VudCcsXG4gICAgICB2ZXJzaW9uOiAnMS4wLjAnLFxuICAgICAgZXhwb3J0czoge1xuICAgICAgICAnLic6IHtcbiAgICAgICAgICBpbXBvcnQ6ICcuL3NyYy9pbmRleC5tanMnLFxuICAgICAgICAgIGRlZmF1bHQ6ICcuL3NyYy9pbmRleC5qcycsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgd3JpdGVGaWxlKGZpbGVQYXRoLCBgJ3VzZSB3b3JrZmxvdyc7XFxuYCk7XG5cbiAgICBleHBlY3QoZ2V0SW1wb3J0UGF0aChmaWxlUGF0aCwgcHJvamVjdFJvb3QpKS50b0VxdWFsKHtcbiAgICAgIGltcG9ydFBhdGg6ICdAaW50ZXJuYWwvYWdlbnQnLFxuICAgICAgaXNQYWNrYWdlOiB0cnVlLFxuICAgIH0pO1xuICB9KTtcblxuICBpdCgnZmFsbHMgYmFjayB0byByZWxhdGl2ZSBpbXBvcnQgZm9yIGRlZXAgZmlsZXMgaW4gcGFja2FnZXMgd2l0aG91dCBleHBvcnRzJywgKCkgPT4ge1xuICAgIGNvbnN0IHByb2plY3RSb290ID0gam9pbih0ZXN0Um9vdCwgJ2FwcHMvY2hhdCcpO1xuICAgIGNvbnN0IHdvcmtzcGFjZVBrZ0RpciA9IGpvaW4odGVzdFJvb3QsICdwYWNrYWdlcy9hZ2VudCcpO1xuICAgIGNvbnN0IGZpbGVQYXRoID0gam9pbih3b3Jrc3BhY2VQa2dEaXIsICdsaWIvdG9vbHMvZHluYW1pYy93b3JrZmxvdy50cycpO1xuXG4gICAgd3JpdGVKc29uKGpvaW4ocHJvamVjdFJvb3QsICdwYWNrYWdlLmpzb24nKSwge1xuICAgICAgbmFtZTogJ2NoYXQnLFxuICAgICAgZGVwZW5kZW5jaWVzOiB7ICdAaW50ZXJuYWwvYWdlbnQnOiAnd29ya3NwYWNlOionIH0sXG4gICAgfSk7XG5cbiAgICB3cml0ZUpzb24oam9pbih3b3Jrc3BhY2VQa2dEaXIsICdwYWNrYWdlLmpzb24nKSwge1xuICAgICAgbmFtZTogJ0BpbnRlcm5hbC9hZ2VudCcsXG4gICAgICB2ZXJzaW9uOiAnMS4wLjAnLFxuICAgIH0pO1xuXG4gICAgd3JpdGVGaWxlKGZpbGVQYXRoLCBgJ3VzZSB3b3JrZmxvdyc7XFxuYCk7XG5cbiAgICBleHBlY3QoZ2V0SW1wb3J0UGF0aChmaWxlUGF0aCwgcHJvamVjdFJvb3QpKS50b0VxdWFsKHtcbiAgICAgIGltcG9ydFBhdGg6ICcuLi8uLi9wYWNrYWdlcy9hZ2VudC9saWIvdG9vbHMvZHluYW1pYy93b3JrZmxvdy50cycsXG4gICAgICBpc1BhY2thZ2U6IGZhbHNlLFxuICAgIH0pO1xuICB9KTtcblxuICBpdCgndXNlcyBwYWNrYWdlIHJvb3QgaW1wb3J0IHdoZW4gcGFja2FnZSBtYWluIHBvaW50cyB0byBmaWxlJywgKCkgPT4ge1xuICAgIGNvbnN0IHByb2plY3RSb290ID0gam9pbih0ZXN0Um9vdCwgJ2FwcHMvY2hhdCcpO1xuICAgIGNvbnN0IHdvcmtzcGFjZVBrZ0RpciA9IGpvaW4odGVzdFJvb3QsICdwYWNrYWdlcy9hZ2VudCcpO1xuICAgIGNvbnN0IGZpbGVQYXRoID0gam9pbih3b3Jrc3BhY2VQa2dEaXIsICdzcmMvaW5kZXgudHMnKTtcblxuICAgIHdyaXRlSnNvbihqb2luKHByb2plY3RSb290LCAncGFja2FnZS5qc29uJyksIHtcbiAgICAgIG5hbWU6ICdjaGF0JyxcbiAgICAgIGRlcGVuZGVuY2llczogeyAnQGludGVybmFsL2FnZW50JzogJ3dvcmtzcGFjZToqJyB9LFxuICAgIH0pO1xuXG4gICAgd3JpdGVKc29uKGpvaW4od29ya3NwYWNlUGtnRGlyLCAncGFja2FnZS5qc29uJyksIHtcbiAgICAgIG5hbWU6ICdAaW50ZXJuYWwvYWdlbnQnLFxuICAgICAgdmVyc2lvbjogJzEuMC4wJyxcbiAgICAgIG1haW46ICcuL3NyYy9pbmRleC50cycsXG4gICAgfSk7XG5cbiAgICB3cml0ZUZpbGUoZmlsZVBhdGgsIGAndXNlIHN0ZXAnO1xcbmApO1xuXG4gICAgZXhwZWN0KGdldEltcG9ydFBhdGgoZmlsZVBhdGgsIHByb2plY3RSb290KSkudG9FcXVhbCh7XG4gICAgICBpbXBvcnRQYXRoOiAnQGludGVybmFsL2FnZW50JyxcbiAgICAgIGlzUGFja2FnZTogdHJ1ZSxcbiAgICB9KTtcbiAgfSk7XG5cbiAgaXQoJ3VzZXMgcGFja2FnZSBzdWJwYXRoIGltcG9ydCBmb3IgZGlyZWN0IG5vZGVfbW9kdWxlcyBkZXBlbmRlbmNpZXMnLCAoKSA9PiB7XG4gICAgY29uc3QgcHJvamVjdFJvb3QgPSBqb2luKHRlc3RSb290LCAnYXBwcy9jaGF0Jyk7XG4gICAgY29uc3QgcGFja2FnZURpciA9IGpvaW4odGVzdFJvb3QsICdhcHBzL2NoYXQvbm9kZV9tb2R1bGVzL0B3b3JrZmxvdy9jb3JlJyk7XG4gICAgY29uc3QgZmlsZVBhdGggPSBqb2luKHBhY2thZ2VEaXIsICdkaXN0L3NlcmlhbGl6YXRpb24uanMnKTtcblxuICAgIHdyaXRlSnNvbihqb2luKHByb2plY3RSb290LCAncGFja2FnZS5qc29uJyksIHtcbiAgICAgIG5hbWU6ICdjaGF0JyxcbiAgICAgIGRlcGVuZGVuY2llczogeyAnQHdvcmtmbG93L2NvcmUnOiAnMS4wLjAnIH0sXG4gICAgfSk7XG5cbiAgICB3cml0ZUpzb24oam9pbihwYWNrYWdlRGlyLCAncGFja2FnZS5qc29uJyksIHtcbiAgICAgIG5hbWU6ICdAd29ya2Zsb3cvY29yZScsXG4gICAgICB2ZXJzaW9uOiAnMS4wLjAnLFxuICAgICAgZXhwb3J0czoge1xuICAgICAgICAnLi9zZXJpYWxpemF0aW9uJzogJy4vZGlzdC9zZXJpYWxpemF0aW9uLmpzJyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB3cml0ZUZpbGUoZmlsZVBhdGgsIGAndXNlIHdvcmtmbG93JztcXG5gKTtcblxuICAgIGV4cGVjdChnZXRJbXBvcnRQYXRoKGZpbGVQYXRoLCBwcm9qZWN0Um9vdCkpLnRvRXF1YWwoe1xuICAgICAgaW1wb3J0UGF0aDogJ0B3b3JrZmxvdy9jb3JlL3NlcmlhbGl6YXRpb24nLFxuICAgICAgaXNQYWNrYWdlOiB0cnVlLFxuICAgIH0pO1xuICB9KTtcblxuICBpdCgnZmFsbHMgYmFjayB0byByZWxhdGl2ZSBpbXBvcnQgZm9yIHRyYW5zaXRpdmUgbm9kZV9tb2R1bGVzIGRlcGVuZGVuY2llcycsICgpID0+IHtcbiAgICBjb25zdCBwcm9qZWN0Um9vdCA9IGpvaW4odGVzdFJvb3QsICdhcHBzL2NoYXQnKTtcbiAgICBjb25zdCBwYWNrYWdlRGlyID0gam9pbih0ZXN0Um9vdCwgJ2FwcHMvY2hhdC9ub2RlX21vZHVsZXMvQHdvcmtmbG93L2NvcmUnKTtcbiAgICBjb25zdCBmaWxlUGF0aCA9IGpvaW4ocGFja2FnZURpciwgJ2Rpc3Qvc2VyaWFsaXphdGlvbi5qcycpO1xuXG4gICAgd3JpdGVKc29uKGpvaW4ocHJvamVjdFJvb3QsICdwYWNrYWdlLmpzb24nKSwge1xuICAgICAgbmFtZTogJ2NoYXQnLFxuICAgICAgZGVwZW5kZW5jaWVzOiB7IHdvcmtmbG93OiAnMS4wLjAnIH0sXG4gICAgfSk7XG5cbiAgICB3cml0ZUpzb24oam9pbihwYWNrYWdlRGlyLCAncGFja2FnZS5qc29uJyksIHtcbiAgICAgIG5hbWU6ICdAd29ya2Zsb3cvY29yZScsXG4gICAgICB2ZXJzaW9uOiAnMS4wLjAnLFxuICAgICAgZXhwb3J0czoge1xuICAgICAgICAnLi9zZXJpYWxpemF0aW9uJzogJy4vZGlzdC9zZXJpYWxpemF0aW9uLmpzJyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB3cml0ZUZpbGUoZmlsZVBhdGgsIGAndXNlIHdvcmtmbG93JztcXG5gKTtcblxuICAgIGV4cGVjdChnZXRJbXBvcnRQYXRoKGZpbGVQYXRoLCBwcm9qZWN0Um9vdCkpLnRvRXF1YWwoe1xuICAgICAgaW1wb3J0UGF0aDogJy4vbm9kZV9tb2R1bGVzL0B3b3JrZmxvdy9jb3JlL2Rpc3Qvc2VyaWFsaXphdGlvbi5qcycsXG4gICAgICBpc1BhY2thZ2U6IGZhbHNlLFxuICAgIH0pO1xuICB9KTtcblxuICBpdCgndHJlYXRzIGEgd29ya3NwYWNlIHBhY2thZ2UgZmlsZSBhcyBsb2NhbCB3aGVuIHByb2plY3RSb290IGlzIHRoZSBwYWNrYWdlIGl0c2VsZicsICgpID0+IHtcbiAgICBjb25zdCBwcm9qZWN0Um9vdCA9IGpvaW4odGVzdFJvb3QsICdwYWNrYWdlcy92YWRlJyk7XG4gICAgY29uc3QgZmlsZVBhdGggPSBqb2luKFxuICAgICAgcHJvamVjdFJvb3QsXG4gICAgICAnc3JjL2ludGVybmFsL21lc3NhZ2Uvd29ya2Zsb3cvaGFuZGxlLW1lc3NhZ2UudHMnXG4gICAgKTtcblxuICAgIHdyaXRlSnNvbihqb2luKHByb2plY3RSb290LCAncGFja2FnZS5qc29uJyksIHtcbiAgICAgIG5hbWU6ICd2YWRlJyxcbiAgICAgIHZlcnNpb246ICcwLjAuMCcsXG4gICAgfSk7XG5cbiAgICB3cml0ZUZpbGUoZmlsZVBhdGgsIGAndXNlIHdvcmtmbG93JztcXG5gKTtcblxuICAgIGV4cGVjdChyZXNvbHZlTW9kdWxlU3BlY2lmaWVyKGZpbGVQYXRoLCBwcm9qZWN0Um9vdCkpLnRvRXF1YWwoe1xuICAgICAgbW9kdWxlU3BlY2lmaWVyOiB1bmRlZmluZWQsXG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KCd1c2VzIHRoZSBjb25zdW1pbmcgYXBwIHJvb3QgdG8gcmVzb2x2ZSB3b3Jrc3BhY2UgcGFja2FnZSB3b3JrZmxvdyBpZHMnLCAoKSA9PiB7XG4gICAgY29uc3QgcHJvamVjdFJvb3QgPSBqb2luKHRlc3RSb290LCAnYXBwcy9jaGF0Jyk7XG4gICAgY29uc3QgcGFja2FnZURpciA9IGpvaW4odGVzdFJvb3QsICdwYWNrYWdlcy92YWRlJyk7XG4gICAgY29uc3QgZmlsZVBhdGggPSBqb2luKFxuICAgICAgcGFja2FnZURpcixcbiAgICAgICdzcmMvaW50ZXJuYWwvbWVzc2FnZS93b3JrZmxvdy9oYW5kbGUtbWVzc2FnZS50cydcbiAgICApO1xuXG4gICAgd3JpdGVKc29uKGpvaW4ocHJvamVjdFJvb3QsICdwYWNrYWdlLmpzb24nKSwge1xuICAgICAgbmFtZTogJ2NoYXQnLFxuICAgICAgZGVwZW5kZW5jaWVzOiB7IHZhZGU6ICd3b3Jrc3BhY2U6KicgfSxcbiAgICB9KTtcblxuICAgIHdyaXRlSnNvbihqb2luKHBhY2thZ2VEaXIsICdwYWNrYWdlLmpzb24nKSwge1xuICAgICAgbmFtZTogJ3ZhZGUnLFxuICAgICAgdmVyc2lvbjogJzAuMC4wJyxcbiAgICB9KTtcblxuICAgIHdyaXRlRmlsZShmaWxlUGF0aCwgYCd1c2Ugd29ya2Zsb3cnO1xcbmApO1xuXG4gICAgZXhwZWN0KHJlc29sdmVNb2R1bGVTcGVjaWZpZXIoZmlsZVBhdGgsIHByb2plY3RSb290KSkudG9FcXVhbCh7XG4gICAgICBtb2R1bGVTcGVjaWZpZXI6ICd2YWRlQDAuMC4wJyxcbiAgICB9KTtcbiAgfSk7XG5cbiAgaXQoJ3ByZXNlcnZlcyBwYWNrYWdlIGV4cG9ydCBzdWJwYXRocyB3aGVuIHNvdXJjZSBmaWxlcyBiYWNrIGRpc3QgZXhwb3J0cycsICgpID0+IHtcbiAgICBjb25zdCBwcm9qZWN0Um9vdCA9IGpvaW4odGVzdFJvb3QsICdhcHBzL2NoYXQnKTtcbiAgICBjb25zdCB3b3Jrc3BhY2VQa2dEaXIgPSBqb2luKHRlc3RSb290LCAncGFja2FnZXMvYWdlbnQnKTtcbiAgICBjb25zdCBmaWxlUGF0aCA9IGpvaW4od29ya3NwYWNlUGtnRGlyLCAnc3JjL3NlcnZlci50cycpO1xuXG4gICAgd3JpdGVKc29uKGpvaW4ocHJvamVjdFJvb3QsICdwYWNrYWdlLmpzb24nKSwge1xuICAgICAgbmFtZTogJ2NoYXQnLFxuICAgICAgZGVwZW5kZW5jaWVzOiB7ICdAaW50ZXJuYWwvYWdlbnQnOiAnd29ya3NwYWNlOionIH0sXG4gICAgfSk7XG5cbiAgICB3cml0ZUpzb24oam9pbih3b3Jrc3BhY2VQa2dEaXIsICdwYWNrYWdlLmpzb24nKSwge1xuICAgICAgbmFtZTogJ0BpbnRlcm5hbC9hZ2VudCcsXG4gICAgICB2ZXJzaW9uOiAnMS4wLjAnLFxuICAgICAgZXhwb3J0czoge1xuICAgICAgICAnLi9zZXJ2ZXInOiAnLi9kaXN0L3NlcnZlci5qcycsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgd3JpdGVGaWxlKGZpbGVQYXRoLCBgJ3VzZSBzdGVwJztcXG5gKTtcblxuICAgIGV4cGVjdChyZXNvbHZlTW9kdWxlU3BlY2lmaWVyKGZpbGVQYXRoLCBwcm9qZWN0Um9vdCkpLnRvRXF1YWwoe1xuICAgICAgbW9kdWxlU3BlY2lmaWVyOiAnQGludGVybmFsL2FnZW50L3NlcnZlckAxLjAuMCcsXG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -429,4 +429,4 @@ export function createNodeModuleErrorPlugin() {
429
429
  },
430
430
  };
431
431
  }
432
- //# sourceMappingURL=node-module-esbuild-plugin.js.map
432
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1tb2R1bGUtZXNidWlsZC1wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbm9kZS1tb2R1bGUtZXNidWlsZC1wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN6RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMvQyxPQUFPLGNBQWMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLHVCQUF1QixNQUFNLGtCQUFrQixDQUFDO0FBR3ZELE1BQU0sZUFBZSxHQUFHLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0FBRTNELDZDQUE2QztBQUM3Qyw4Q0FBOEM7QUFDOUMsb0RBQW9EO0FBQ3BELCtEQUErRDtBQUMvRCxNQUFNLGtCQUFrQixHQUFHLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO0FBRTNELHFCQUFxQjtBQUNyQix3QkFBd0I7QUFDeEIsb0RBQW9EO0FBQ3BELE1BQU0sZUFBZSxHQUFHLFdBQVcsQ0FBQztBQUVwQyxrREFBa0Q7QUFDbEQsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLE1BQU0sQ0FDcEMsYUFBYSxrQkFBa0IsY0FBYyxDQUM5QyxDQUFDO0FBU0Y7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQUMsUUFBZ0I7SUFDN0MsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDaEQsTUFBTSxNQUFNLEdBQUcsZ0JBQWdCLENBQUM7SUFDaEMsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQyxN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RSxFQUFFLENBQ3JDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQ3RDO29CQUNILENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztnQkFFdEIsSUFBSSxjQUFjLENBQUMsTUFBTSxLQUFLLENBQUM7b0JBQUUsT0FBTztnQkFFeEMsT0FBTztvQkFDTCxNQUFNLEVBQUUsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO3dCQUN2QyxNQUFNLGVBQWUsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQzlDLFNBQVMsQ0FBQyxXQUFXLENBQ3RCLENBQUM7d0JBQ0YsTUFBTSxVQUFVLEdBQUcsa0JBQWtCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUV0RCx3RUFBd0U7d0JBQ3hFLE1BQU0sSUFBSSxHQUFHLGVBQWU7NEJBQzFCLENBQUMsQ0FBQyw4QkFBOEIsU0FBUyxDQUFDLFdBQVcsZ0JBQWdCLFVBQVUsWUFBWSxVQUFVLGlHQUFpRyxXQUFXLENBQUMsMEJBQTBCLEVBQUU7NEJBQzlPLENBQUMsQ0FBQyw4QkFBOEIsU0FBUyxDQUFDLFdBQVcsc0JBQXNCLFVBQVUscUNBQXFDLFVBQVUsaUdBQWlHLFdBQVcsQ0FBQywwQkFBMEIsRUFBRSxDQUFDO3dCQUVoUixPQUFPOzRCQUNMLElBQUk7NEJBQ0osUUFBUSxFQUFFLFNBQVMsQ0FBQyxRQUFRO2dDQUMxQixDQUFDLENBQUM7b0NBQ0UsR0FBRyxTQUFTLENBQUMsUUFBUTtvQ0FDckIsVUFBVSxFQUFFLDBDQUEwQztpQ0FDdkQ7Z0NBQ0gsQ0FBQyxDQUFDLFNBQVM7eUJBQ2QsQ0FBQztvQkFDSixDQUFDLENBQUM7aUJBQ0gsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVhZEZpbGUgfSBmcm9tICdub2RlOmZzL3Byb21pc2VzJztcbmltcG9ydCB7IG5vcm1hbGl6ZSwgcmVsYXRpdmUsIHJlc29sdmUgfSBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHsgcHJvbWlzaWZ5IH0gZnJvbSAnbm9kZTp1dGlsJztcbmltcG9ydCB7IEVSUk9SX1NMVUdTIH0gZnJvbSAnQHdvcmtmbG93L2Vycm9ycyc7XG5pbXBvcnQgYnVpbHRpbk1vZHVsZXMgZnJvbSAnYnVpbHRpbi1tb2R1bGVzJztcbmltcG9ydCBlbmhhbmNlZFJlc29sdmVPcmlnaW5hbCBmcm9tICdlbmhhbmNlZC1yZXNvbHZlJztcbmltcG9ydCB0eXBlICogYXMgZXNidWlsZCBmcm9tICdlc2J1aWxkJztcblxuY29uc3QgZW5oYW5jZWRSZXNvbHZlID0gcHJvbWlzaWZ5KGVuaGFuY2VkUmVzb2x2ZU9yaWdpbmFsKTtcblxuLy8gTWF0Y2ggZXhhY3QgTm9kZS5qcyBidWlsdC1pbiBtb2R1bGUgbmFtZXM6XG4vLyAtIFwiZnNcIiwgXCJwYXRoXCIsIFwic3RyZWFtXCIgZXRjLiAoZXhhY3QgbWF0Y2gpXG4vLyAtIFwibm9kZTpmc1wiLCBcIm5vZGU6cGF0aFwiIGV0Yy4gKHdpdGggbm9kZTogcHJlZml4KVxuLy8gQnV0IE5PVCBcInNvbWUtcGFja2FnZS9zdHJlYW1cIiBvciBcImV2ZW50c291cmNlLXBhcnNlci9zdHJlYW1cIlxuY29uc3Qgbm9kZU1vZHVsZXNQYXR0ZXJuID0gYCgke2J1aWx0aW5Nb2R1bGVzLmpvaW4oJ3wnKX0pYDtcblxuLy8gTWF0Y2ggQnVuIG1vZHVsZXM6XG4vLyAtIFwiYnVuXCIgKGV4YWN0IG1hdGNoKVxuLy8gLSBcImJ1bjpzcWxpdGVcIiwgXCJidW46ZmZpXCIgZXRjLiAod2l0aCBidW46IHByZWZpeClcbmNvbnN0IGJ1bk1vZHVsZXNSZWdleCA9IC9eYnVuKDp8JCkvO1xuXG4vLyBDb21iaW5lZCByZWdleCBmb3IgYm90aCBOb2RlLmpzIGFuZCBCdW4gbW9kdWxlc1xuY29uc3QgcnVudGltZU1vZHVsZXNSZWdleCA9IG5ldyBSZWdFeHAoXG4gIGBeKChub2RlOik/JHtub2RlTW9kdWxlc1BhdHRlcm59fGJ1big6LiopPykkYFxuKTtcblxudHlwZSBQYWNrYWdlVmlvbGF0aW9uID0ge1xuICBwYWNrYWdlTmFtZTogc3RyaW5nO1xuICBpbXBvcnRlcjogc3RyaW5nO1xuICBwYXRoOiBzdHJpbmc7XG4gIGxvY2F0aW9uOiBQYXJ0aWFsPGVzYnVpbGQuTG9jYXRpb24+O1xufTtcblxuLyoqXG4gKiBHZXQgdGhlIHBhY2thZ2UgbmFtZSBmcm9tIGEgZmlsZSBwYXRoLlxuICogQHBhcmFtIGZpbGVQYXRoIC0gVGhlIGZpbGUgcGF0aCB0byBnZXQgdGhlIHBhY2thZ2UgbmFtZSBmcm9tLlxuICogQHJldHVybnMgVGhlIHBhY2thZ2UgbmFtZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFBhY2thZ2VOYW1lKGZpbGVQYXRoOiBzdHJpbmcpIHtcbiAgY29uc3Qgbm9ybWFsaXplZCA9IGZpbGVQYXRoLnJlcGxhY2UoL1xcXFwvZywgJy8nKTtcbiAgY29uc3QgbWFya2VyID0gJy9ub2RlX21vZHVsZXMvJztcbiAgY29uc3QgaWR4ID0gbm9ybWFsaXplZC5sYXN0SW5kZXhPZihtYXJrZXIpO1xuICBpZiAoaWR4ID09PSAtMSkgcmV0dXJuIG51bGw7XG5cbiAgY29uc3QgYWZ0ZXIgPSBub3JtYWxpemVkLnNsaWNlKGlkeCArIG1hcmtlci5sZW5ndGgpOyAvLyBlLmcuIFwiLnBucG0vbm9kZS1mZXRjaEAzLjMuMi9ub2RlX21vZHVsZXMvbm9kZS1mZXRjaC9zcmMvaW5kZXguanNcIlxuICBjb25zdCBzZWdtZW50cyA9IGFmdGVyLnNwbGl0KCcvJyk7XG4gIGlmICghc2VnbWVudHMubGVuZ3RoKSByZXR1cm4gbnVsbDtcblxuICBsZXQgcGFja2FnZU5hbWUgPSBzZWdtZW50c1swXTtcblxuICAvLyBwbnBtIG5lc3RzOiBcIi5wbnBtLzxwa2c+QDx2ZXJzaW9uPi9ub2RlX21vZHVsZXMvPHBrZz4vLi4uXCJcbiAgaWYgKHBhY2thZ2VOYW1lID09PSAnLnBucG0nICYmIHNlZ21lbnRzLmxlbmd0aCA+PSAzKSB7XG4gICAgcGFja2FnZU5hbWUgPSBzZWdtZW50c1syXTtcbiAgfSBlbHNlIGlmIChwYWNrYWdlTmFtZS5zdGFydHNXaXRoKCdAJykgJiYgc2VnbWVudHMubGVuZ3RoID49IDIpIHtcbiAgICBwYWNrYWdlTmFtZSA9IGAke3NlZ21lbnRzWzBdfS8ke3NlZ21lbnRzWzFdfWA7XG4gIH1cblxuICByZXR1cm4gcGFja2FnZU5hbWU7XG59XG5cbi8qKlxuICogR2V0IHRoZSBwYWNrYWdlIG5hbWUgZnJvbSBhbiBpbXBvcnQgc3BlY2lmaWVyLlxuICogQHBhcmFtIHNwZWNpZmllciAtIFRoZSBpbXBvcnQgc3BlY2lmaWVyIHRvIHBhcnNlLlxuICogQHJldHVybnMgVGhlIHBhY2thZ2UgbmFtZSAoZm9yIGJhcmUgcGFja2FnZSBpbXBvcnRzKSwgb3RoZXJ3aXNlIG51bGwuXG4gKi9cbmZ1bmN0aW9uIGdldFBhY2thZ2VOYW1lRnJvbVNwZWNpZmllcihzcGVjaWZpZXI6IHN0cmluZykge1xuICAvLyBOb3QgYSBiYXJlIHBhY2thZ2Ugc3BlY2lmaWVyIChyZWxhdGl2ZSwgYWJzb2x1dGUsIG9yIFVSTC1saWtlKVxuICBpZiAoXG4gICAgIXNwZWNpZmllciB8fFxuICAgIHNwZWNpZmllci5zdGFydHNXaXRoKCcuJykgfHxcbiAgICBzcGVjaWZpZXIuc3RhcnRzV2l0aCgnLycpIHx8XG4gICAgL15bQS1aYS16XTpbXFxcXC9dLy50ZXN0KHNwZWNpZmllcilcbiAgKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBJZ25vcmUgcnVudGltZSBidWlsdC1pbnMgYW5kIFVSTC1saWtlIHNwZWNpZmllcnNcbiAgaWYgKFxuICAgIHJ1bnRpbWVNb2R1bGVzUmVnZXgudGVzdChzcGVjaWZpZXIpIHx8XG4gICAgc3BlY2lmaWVyLmluY2x1ZGVzKCc6Ly8nKSB8fFxuICAgIHNwZWNpZmllci5zdGFydHNXaXRoKCcjJylcbiAgKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBub3JtYWxpemVkID0gc3BlY2lmaWVyLnJlcGxhY2UoL1xcXFwvZywgJy8nKTtcbiAgaWYgKG5vcm1hbGl6ZWQuc3RhcnRzV2l0aCgnQCcpKSB7XG4gICAgY29uc3QgW3Njb3BlLCBuYW1lXSA9IG5vcm1hbGl6ZWQuc3BsaXQoJy8nKTtcbiAgICBpZiAoIXNjb3BlIHx8ICFuYW1lKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGAke3Njb3BlfS8ke25hbWV9YDtcbiAgfVxuXG4gIGNvbnN0IFtuYW1lXSA9IG5vcm1hbGl6ZWQuc3BsaXQoJy8nKTtcbiAgcmV0dXJuIG5hbWUgPz8gbnVsbDtcbn1cblxuLyoqXG4gKiBFc2NhcGUgYSByZWd1bGFyIGV4cHJlc3Npb24gc3RyaW5nLlxuICogQHBhcmFtIHZhbHVlIC0gVGhlIHN0cmluZyB0byBlc2NhcGUuXG4gKiBAcmV0dXJucyBUaGUgZXNjYXBlZCBzdHJpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlc2NhcGVSZWdFeHAodmFsdWU6IHN0cmluZykge1xuICByZXR1cm4gdmFsdWUucmVwbGFjZSgvWy4qKz9eJHt9KCl8W1xcXVxcXFxdL2csICdcXFxcJCYnKTtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIGltcG9ydGVkIGlkZW50aWZpZXIgZnJvbSBhIHNwZWNpZmllci5cbiAqIEBwYXJhbSBzcGVjaWZpZXIgLSBUaGUgc3BlY2lmaWVyIHRvIGdldCB0aGUgaW1wb3J0ZWQgaWRlbnRpZmllciBmcm9tLlxuICogQHJldHVybnMgVGhlIGltcG9ydGVkIGlkZW50aWZpZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbXBvcnRlZElkZW50aWZpZXIoc3BlY2lmaWVyOiBzdHJpbmcpIHtcbiAgY29uc3QgbmFtZXNwYWNlTWF0Y2ggPSBzcGVjaWZpZXIubWF0Y2goL1xcKlxccythc1xccysoW0EtWmEtejAtOV8kXSspLyk7XG4gIGlmIChuYW1lc3BhY2VNYXRjaCkge1xuICAgIHJldHVybiBuYW1lc3BhY2VNYXRjaFsxXTtcbiAgfVxuXG4gIGlmIChzcGVjaWZpZXIuaW5jbHVkZXMoJ3snKSkge1xuICAgIGNvbnN0IGluc2lkZSA9IHNwZWNpZmllci5yZXBsYWNlKC9eW157XSpcXHsvLCAnJykucmVwbGFjZSgvXFx9LiokLywgJycpO1xuICAgIGNvbnN0IGZpcnN0TmFtZWQgPSBpbnNpZGVcbiAgICAgIC5zcGxpdCgnLCcpXG4gICAgICAubWFwKCh0b2tlbikgPT4gdG9rZW4udHJpbSgpKVxuICAgICAgLmZpbmQoQm9vbGVhbik7XG5cbiAgICBpZiAoZmlyc3ROYW1lZCkge1xuICAgICAgY29uc3QgYWxpYXNNYXRjaCA9IGZpcnN0TmFtZWQubWF0Y2goXG4gICAgICAgIC8oW0EtWmEtejAtOV8kXSspXFxzK2FzXFxzKyhbQS1aYS16MC05XyRdKykvXG4gICAgICApO1xuICAgICAgaWYgKGFsaWFzTWF0Y2gpIHtcbiAgICAgICAgcmV0dXJuIGFsaWFzTWF0Y2hbMl07XG4gICAgICB9XG4gICAgICAvLyBWYWxpZGF0ZSB0aGF0IGZpcnN0TmFtZWQgaXMgYSB2YWxpZCBpZGVudGlmaWVyIChub3QgZW1wdHkgYnJhY2VzIG9yIHdoaXRlc3BhY2UpXG4gICAgICBjb25zdCBpZGVudGlmaWVyTWF0Y2ggPSBmaXJzdE5hbWVkLm1hdGNoKC9eW0EtWmEtel8kXVtBLVphLXowLTlfJF0qLyk7XG4gICAgICBpZiAoaWRlbnRpZmllck1hdGNoKSB7XG4gICAgICAgIHJldHVybiBpZGVudGlmaWVyTWF0Y2hbMF07XG4gICAgICB9XG4gICAgfVxuICAgIC8vIEVtcHR5IGJyYWNlcyBvciBubyB2YWxpZCBpZGVudGlmaWVyIGZvdW5kIC0gcmV0dXJuIHVuZGVmaW5lZFxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBkZWZhdWx0UGFydCA9IHNwZWNpZmllci5zcGxpdCgnLCcpWzBdPy50cmltKCk7XG4gIGlmIChkZWZhdWx0UGFydCAmJiBkZWZhdWx0UGFydCAhPT0gJyonKSB7XG4gICAgcmV0dXJuIGRlZmF1bHRQYXJ0O1xuICB9XG59XG5cbi8qKlxuICogRmluZCB0aGUgdXNhZ2Ugb2YgYW4gaWRlbnRpZmllciBpbiBhIGxpc3Qgb2YgbGluZXMuXG4gKiBAcGFyYW0gbGluZXMgLSBUaGUgbGlzdCBvZiBsaW5lcyB0byBzZWFyY2ggaW4uXG4gKiBAcGFyYW0gc3RhcnRJbmRleCAtIFRoZSBpbmRleCB0byBzdGFydCBzZWFyY2hpbmcgZnJvbS5cbiAqIEBwYXJhbSBpZGVudGlmaWVyIC0gVGhlIGlkZW50aWZpZXIgdG8gc2VhcmNoIGZvci5cbiAqIEByZXR1cm5zIFRoZSB1c2FnZSBvZiB0aGUgaWRlbnRpZmllci5cbiAqL1xuZnVuY3Rpb24gZmluZElkZW50aWZpZXJVc2FnZShcbiAgbGluZXM6IHN0cmluZ1tdLFxuICBzdGFydEluZGV4OiBudW1iZXIsXG4gIGlkZW50aWZpZXI6IHN0cmluZ1xuKSB7XG4gIGNvbnN0IHVzYWdlUmVnZXggPSBuZXcgUmVnRXhwKGBcXFxcYiR7ZXNjYXBlUmVnRXhwKGlkZW50aWZpZXIpfVxcXFxiYCk7XG4gIGxldCBpbkJsb2NrQ29tbWVudCA9IGZhbHNlO1xuXG4gIGZvciAobGV0IGkgPSBzdGFydEluZGV4OyBpIDwgbGluZXMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAvLyBTdHJpcCBzdHJpbmcgbGl0ZXJhbHMgZmlyc3Qgc28gdGhhdCBjb21tZW50IGRlbGltaXRlcnMgaW5zaWRlIHN0cmluZ3NcbiAgICAvLyAoZS5nLiBgY29uc3QgcyA9IFwiLypcIjtgKSBkb24ndCBjb25mdXNlIHRoZSBjb21tZW50IHNjYW5uZXIuXG4gICAgY29uc3Qgc3RyaW5nc1N0cmlwcGVkID0gbGluZXNbaV1cbiAgICAgIC5yZXBsYWNlKC8nKD86W14nXFxcXF18XFxcXC4pKicvZywgKHMpID0+ICcgJy5yZXBlYXQocy5sZW5ndGgpKVxuICAgICAgLnJlcGxhY2UoL1wiKD86W15cIlxcXFxdfFxcXFwuKSpcIi9nLCAocykgPT4gJyAnLnJlcGVhdChzLmxlbmd0aCkpXG4gICAgICAucmVwbGFjZSgvYCg/OlteYFxcXFxdfFxcXFwuKSpgL2csIChzKSA9PiAnICcucmVwZWF0KHMubGVuZ3RoKSk7XG5cbiAgICBsZXQgbGluZSA9IHN0cmluZ3NTdHJpcHBlZDtcblxuICAgIC8vIEhhbmRsZSBtdWx0aS1saW5lIGJsb2NrIGNvbW1lbnRzIChpbmNsdWRpbmcgSlNEb2MpXG4gICAgaWYgKGluQmxvY2tDb21tZW50KSB7XG4gICAgICBjb25zdCBlbmRJZHggPSBsaW5lLmluZGV4T2YoJyovJyk7XG4gICAgICBpZiAoZW5kSWR4ID09PSAtMSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGxpbmUgPSAnICcucmVwZWF0KGVuZElkeCArIDIpICsgbGluZS5zbGljZShlbmRJZHggKyAyKTtcbiAgICAgIGluQmxvY2tDb21tZW50ID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gU2NhbiBmb3IgY29tbWVudHMsIHJlcGxhY2luZyB0aGVtIHdpdGggc3BhY2VzXG4gICAgbGV0IHByb2Nlc3NlZCA9ICcnO1xuICAgIGxldCBqID0gMDtcbiAgICB3aGlsZSAoaiA8IGxpbmUubGVuZ3RoKSB7XG4gICAgICBpZiAobGluZVtqXSA9PT0gJy8nICYmIGxpbmVbaiArIDFdID09PSAnLycpIHtcbiAgICAgICAgcHJvY2Vzc2VkICs9ICcgJy5yZXBlYXQobGluZS5sZW5ndGggLSBqKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBpZiAobGluZVtqXSA9PT0gJy8nICYmIGxpbmVbaiArIDFdID09PSAnKicpIHtcbiAgICAgICAgY29uc3QgZW5kSWR4ID0gbGluZS5pbmRleE9mKCcqLycsIGogKyAyKTtcbiAgICAgICAgaWYgKGVuZElkeCAhPT0gLTEpIHtcbiAgICAgICAgICBjb25zdCBsZW4gPSBlbmRJZHggKyAyIC0gajtcbiAgICAgICAgICBwcm9jZXNzZWQgKz0gJyAnLnJlcGVhdChsZW4pO1xuICAgICAgICAgIGogPSBlbmRJZHggKyAyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHByb2Nlc3NlZCArPSAnICcucmVwZWF0KGxpbmUubGVuZ3RoIC0gaik7XG4gICAgICAgICAgaW5CbG9ja0NvbW1lbnQgPSB0cnVlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwcm9jZXNzZWQgKz0gbGluZVtqXTtcbiAgICAgICAgaiArPSAxO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IG1hdGNoID0gcHJvY2Vzc2VkLm1hdGNoKHVzYWdlUmVnZXgpO1xuICAgIGlmIChtYXRjaCAmJiBtYXRjaC5pbmRleCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBsaW5lOiBpLFxuICAgICAgICBjb2x1bW46IG1hdGNoLmluZGV4LFxuICAgICAgICBsaW5lVGV4dDogbGluZXNbaV0sXG4gICAgICB9O1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEdldCB0aGUgbG9jYXRpb24gb2YgYSB2aW9sYXRpb24uXG4gKiBAcGFyYW0gY3dkIC0gVGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkuXG4gKiBAcGFyYW0gcmVsYXRpdmVQYXRoIC0gVGhlIHJlbGF0aXZlIHBhdGggdG8gdGhlIGZpbGUuXG4gKiBAcGFyYW0gcGFja2FnZU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgcGFja2FnZS5cbiAqIEByZXR1cm5zIFRoZSBsb2NhdGlvbiBvZiB0aGUgdmlvbGF0aW9uLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0VmlvbGF0aW9uTG9jYXRpb24oXG4gIGN3ZDogc3RyaW5nLFxuICByZWxhdGl2ZVBhdGg6IHN0cmluZyxcbiAgcGFja2FnZU5hbWU6IHN0cmluZ1xuKSB7XG4gIHRyeSB7XG4gICAgY29uc3QgYWJzb2x1dGVQYXRoID0gcmVzb2x2ZShjd2QsIHJlbGF0aXZlUGF0aCk7XG4gICAgY29uc3QgY29udGVudHMgPSBhd2FpdCByZWFkRmlsZShhYnNvbHV0ZVBhdGgsICd1dGY4Jyk7XG4gICAgY29uc3QgbGluZXMgPSBjb250ZW50cy5zcGxpdCgvXFxyP1xcbi8pO1xuXG4gICAgY29uc3QgaW1wb3J0UmVnZXggPSBuZXcgUmVnRXhwKFxuICAgICAgYGltcG9ydFxcXFxzKyguKz8pXFxcXHMrZnJvbVxcXFxzK1snXCJdJHtlc2NhcGVSZWdFeHAocGFja2FnZU5hbWUpfSg/Oi9bXidcIl0qKT9bJ1wiXWBcbiAgICApO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgY29uc3QgbGluZSA9IGxpbmVzW2ldO1xuICAgICAgY29uc3QgaW1wb3J0TWF0Y2ggPSBsaW5lLm1hdGNoKGltcG9ydFJlZ2V4KTtcblxuICAgICAgaWYgKGltcG9ydE1hdGNoICYmIGltcG9ydE1hdGNoLmluZGV4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29uc3Qgc3BlY2lmaWVyID0gaW1wb3J0TWF0Y2hbMV0udHJpbSgpO1xuICAgICAgICBjb25zdCBpZGVudGlmaWVyID0gZ2V0SW1wb3J0ZWRJZGVudGlmaWVyKHNwZWNpZmllcik7XG4gICAgICAgIGlmIChpZGVudGlmaWVyKSB7XG4gICAgICAgICAgY29uc3QgdXNhZ2UgPSBmaW5kSWRlbnRpZmllclVzYWdlKGxpbmVzLCBpICsgMSwgaWRlbnRpZmllcik7XG4gICAgICAgICAgaWYgKHVzYWdlKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBmaWxlOiByZWxhdGl2ZVBhdGgsXG4gICAgICAgICAgICAgIGxpbmU6IHVzYWdlLmxpbmUgKyAxLFxuICAgICAgICAgICAgICBjb2x1bW46IHVzYWdlLmNvbHVtbixcbiAgICAgICAgICAgICAgbGluZVRleHQ6IHVzYWdlLmxpbmVUZXh0LFxuICAgICAgICAgICAgICBsZW5ndGg6IGlkZW50aWZpZXIubGVuZ3RoLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBJZGVudGlmaWVyIGV4aXN0cyBidXQgaXMgbmV2ZXIgcmVmZXJlbmNlZDsgc3VyZmFjZSBubyBsb2NhdGlvblxuICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBGYWxsYmFjazogaWYgd2UgY2FuJ3QgZXh0cmFjdCBpZGVudGlmaWVyLCBwb2ludCB0byBwYWNrYWdlIG5hbWVcbiAgICAgICAgY29uc3QgY29sdW1uSW5kZXggPSBsaW5lLmluZGV4T2YocGFja2FnZU5hbWUpO1xuICAgICAgICBpZiAoY29sdW1uSW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGZpbGU6IHJlbGF0aXZlUGF0aCxcbiAgICAgICAgICAgIGxpbmU6IGkgKyAxLFxuICAgICAgICAgICAgY29sdW1uOiBjb2x1bW5JbmRleCxcbiAgICAgICAgICAgIGxpbmVUZXh0OiBsaW5lLFxuICAgICAgICAgICAgbGVuZ3RoOiBwYWNrYWdlTmFtZS5sZW5ndGgsXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSBjYXRjaCB7XG4gICAgLy8gaWdub3JlIGZpbGUgcmVhZCBmYWlsdXJlcywgZmFsbGJhY2sgdG8gbm8gbG9jYXRpb24gaW5mb1xuICB9XG59XG5cbi8qKlxuICogR2V0IHRoZSBtb2R1bGUgdHlwZSBsYWJlbCBmb3IgZXJyb3IgbWVzc2FnZXMuXG4gKiBAcGFyYW0gbW9kdWxlUGF0aCAtIFRoZSBtb2R1bGUgcGF0aCB0byBjaGVjay5cbiAqIEByZXR1cm5zIFRoZSBtb2R1bGUgdHlwZSBsYWJlbC5cbiAqL1xuZnVuY3Rpb24gZ2V0TW9kdWxlVHlwZUxhYmVsKG1vZHVsZVBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmIChidW5Nb2R1bGVzUmVnZXgudGVzdChtb2R1bGVQYXRoKSkge1xuICAgIHJldHVybiAnQnVuJztcbiAgfVxuICByZXR1cm4gJ05vZGUuanMnO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhbiBlc2J1aWxkIHBsdWdpbiB0byBkZXRlY3QgdmlvbGF0aW9ucyBvZiB0aGUgTm9kZS5qcyBtb2R1bGUgdXNhZ2UgcnVsZS5cbiAqIFRoaXMgcGx1Z2luIHByZXZlbnRzIHdvcmtmbG93IGZ1bmN0aW9ucyBmcm9tIGltcG9ydGluZyBOb2RlLmpzIG9yIEJ1biBidWlsdC1pblxuICogbW9kdWxlcywgd2hpY2ggYXJlIG5vdCBhdmFpbGFibGUgaW4gdGhlIHNhbmRib3hlZCB3b3JrZmxvdyBydW50aW1lLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTm9kZU1vZHVsZUVycm9yUGx1Z2luKCk6IGVzYnVpbGQuUGx1Z2luIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnd29ya2Zsb3ctbm9kZS1tb2R1bGUtZXJyb3InLFxuICAgIHNldHVwKGJ1aWxkKSB7XG4gICAgICBjb25zdCBjd2QgPSBwcm9jZXNzLmN3ZCgpO1xuICAgICAgY29uc3QgaW1wb3J0UGFyZW50cyA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG4gICAgICBjb25zdCBwYWNrYWdlVmlvbGF0aW9uczogUGFja2FnZVZpb2xhdGlvbltdID0gW107XG4gICAgICBjb25zdCBzZWVuVmlvbGF0aW9ucyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gICAgICAvLyBFbmFibGUgdGhlIGVzYnVpbGQgbWV0YWZpbGUgc28gd2UgY2FuIGluc3BlY3Qgd2hpY2ggTm9kZS5qcyAvIEJ1blxuICAgICAgLy8gYnVpbHQtaW4gaW1wb3J0cyBhY3R1YWxseSBzdXJ2aXZlIHRyZWUtc2hha2luZy4gV2UgbmVlZCB0aGlzIHRvXG4gICAgICAvLyBzdXBwcmVzcyBmYWxzZSBwb3NpdGl2ZXMgd2hlcmUgYSBzaGFyZWQgbW9kdWxlIGhhcyBhIHdvcmtmbG93LXNhZmVcbiAgICAgIC8vIGV4cG9ydCBhbG9uZ3NpZGUgYSBzdGVwLW9ubHkgZXhwb3J0IHRoYXQgcmVmZXJlbmNlcyBOb2RlLmpzIGJ1aWx0aW5zXG4gICAgICAvLyDigJQgZXNidWlsZCdzIHRyZWUtc2hha2VyIGNhbiBkcm9wIHRoZSBzdGVwLW9ubHkgYnJhbmNoLCBidXQgYG9uUmVzb2x2ZWBcbiAgICAgIC8vIGZpcmVzIGJlZm9yZSB0cmVlLXNoYWtpbmcsIHNvIHdlIGRlZmVyIHRoZSBmaW5hbCBlcnJvciBkZWNpc2lvbiB0b1xuICAgICAgLy8gYG9uRW5kYCAoc2VlIHRoZSBtZXRhZmlsZS1iYXNlZCBmaWx0ZXIgYmVsb3cpLlxuICAgICAgYnVpbGQuaW5pdGlhbE9wdGlvbnMubWV0YWZpbGUgPSB0cnVlO1xuXG4gICAgICAvLyBUcmFjayBBTEwgaW1wb3J0IHJlbGF0aW9uc2hpcHMgdG8gYnVpbGQgdGhlIGRlcGVuZGVuY3kgZ3JhcGguXG4gICAgICAvLyBUaGlzIGlzIG5lY2Vzc2FyeSB0byB0cmFjZSB0cmFuc2l0aXZlIGRlcGVuZGVuY2llcyBiYWNrIHRvIHVzZXIgY29kZS5cbiAgICAgIC8vIFBlcmZvcm1hbmNlIGltcGFjdCBpcyBtaW5pbWFsIGFzIHdlIG9ubHkgc3RvcmUgcGF0aCBtYXBwaW5ncy5cbiAgICAgIGJ1aWxkLm9uUmVzb2x2ZSh7IGZpbHRlcjogLy4qLyB9LCBhc3luYyAoYXJncykgPT4ge1xuICAgICAgICBpZiAoIWFyZ3MuaW1wb3J0ZXIpIHJldHVybiBudWxsO1xuXG4gICAgICAgIGNvbnN0IHBhcmVudFZhbHVlID0gbm9ybWFsaXplKGFyZ3MuaW1wb3J0ZXIpO1xuICAgICAgICBjb25zdCBzcGVjaWZpZXJQYWNrYWdlTmFtZSA9IGdldFBhY2thZ2VOYW1lRnJvbVNwZWNpZmllcihhcmdzLnBhdGgpO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgcmVzb2x2ZWRDaGlsZCA9IGF3YWl0IGVuaGFuY2VkUmVzb2x2ZShcbiAgICAgICAgICAgIGFyZ3MucmVzb2x2ZURpcixcbiAgICAgICAgICAgIGFyZ3MucGF0aFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAocmVzb2x2ZWRDaGlsZCkge1xuICAgICAgICAgICAgY29uc3QgY2hpbGRLZXkgPSBub3JtYWxpemUocmVzb2x2ZWRDaGlsZCk7XG4gICAgICAgICAgICBpbXBvcnRQYXJlbnRzLnNldChjaGlsZEtleSwgcGFyZW50VmFsdWUpO1xuXG4gICAgICAgICAgICAvLyBSZWNvcmQgdGhlIHJlc29sdmVkIHBhY2thZ2UgZWRnZSBzbyB0cmFuc2l0aXZlIGJ1aWx0aW4gdXNhZ2UgY2FuXG4gICAgICAgICAgICAvLyBzdGlsbCB0cmFjZSBiYWNrIGV2ZW4gd2hlbiBlc2J1aWxkIGFuZCBlbmhhbmNlZC1yZXNvbHZlIHBpY2tcbiAgICAgICAgICAgIC8vIGRpZmZlcmVudCBlbnRyeSBmaWxlcyAoZS5nLiBgbW9kdWxlYCB2cyBgbWFpbmApLlxuICAgICAgICAgICAgY29uc3QgcmVzb2x2ZWRQYWNrYWdlTmFtZSA9IGdldFBhY2thZ2VOYW1lKGNoaWxkS2V5KTtcbiAgICAgICAgICAgIGlmIChyZXNvbHZlZFBhY2thZ2VOYW1lKSB7XG4gICAgICAgICAgICAgIGltcG9ydFBhcmVudHMuc2V0KHJlc29sdmVkUGFja2FnZU5hbWUsIHBhcmVudFZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBBbHNvIHByZXNlcnZlIHRoZSBiYXJlIHBhY2thZ2Utc3BlY2lmaWVyIGVkZ2UgKGUuZy4gXCJwb3N0Z3Jlc1wiKSxcbiAgICAgICAgICAvLyB3aGljaCBpcyB0aGUgZmFsbGJhY2sga2V5IHVzZWQgd2hlbiB0cmFjaW5nIGZyb20gZmlsZXMgaW5cbiAgICAgICAgICAvLyBub2RlX21vZHVsZXMgYmFjayB0byB1c2VyIGNvZGUuXG4gICAgICAgICAgaWYgKHNwZWNpZmllclBhY2thZ2VOYW1lKSB7XG4gICAgICAgICAgICBpbXBvcnRQYXJlbnRzLnNldChzcGVjaWZpZXJQYWNrYWdlTmFtZSwgcGFyZW50VmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgLy8gRm9yIGJ1aWx0LWluIG1vZHVsZXMgdGhhdCBjYW4ndCBiZSByZXNvbHZlZCwgc3RpbGwgdHJhY2sgdXNpbmcgdGhlIGltcG9ydCBwYXRoXG4gICAgICAgICAgY29uc3QgY2hpbGRLZXkgPSBhcmdzLnBhdGg7XG4gICAgICAgICAgaW1wb3J0UGFyZW50cy5zZXQoY2hpbGRLZXksIHBhcmVudFZhbHVlKTtcblxuICAgICAgICAgIGlmIChzcGVjaWZpZXJQYWNrYWdlTmFtZSkge1xuICAgICAgICAgICAgaW1wb3J0UGFyZW50cy5zZXQoc3BlY2lmaWVyUGFja2FnZU5hbWUsIHBhcmVudFZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9KTtcblxuICAgICAgLy8gRGV0ZWN0IE5vZGUuanMgYW5kIEJ1biBtb2R1bGUgaW1wb3J0c1xuICAgICAgYnVpbGQub25SZXNvbHZlKHsgZmlsdGVyOiBydW50aW1lTW9kdWxlc1JlZ2V4IH0sIGFzeW5jIChhcmdzKSA9PiB7XG4gICAgICAgIGNvbnN0IGltcG9ydGVyUGF0aCA9IHJlc29sdmUoY3dkLCBhcmdzLmltcG9ydGVyKTtcbiAgICAgICAgbGV0IGN1cnJlbnQgPSBpbXBvcnRlclBhdGg7XG4gICAgICAgIGNvbnN0IGNoYWluOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICBjb25zdCB2aXNpdGVkID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgICAgIHdoaWxlIChjdXJyZW50KSB7XG4gICAgICAgICAgaWYgKHZpc2l0ZWQuaGFzKGN1cnJlbnQpKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgdmlzaXRlZC5hZGQoY3VycmVudCk7XG4gICAgICAgICAgY2hhaW4ucHVzaChjdXJyZW50KTtcbiAgICAgICAgICBsZXQgbmV4dCA9IGltcG9ydFBhcmVudHMuZ2V0KGN1cnJlbnQpO1xuXG4gICAgICAgICAgLy8gSWYgd2UgY2FuJ3QgZmluZCB0aGUgcGFyZW50IGFuZCBjdXJyZW50IGlzIGluIG5vZGVfbW9kdWxlcyxcbiAgICAgICAgICAvLyB0cnkgbG9va2luZyB1cCBieSBwb3RlbnRpYWwgcGFja2FnZSBpbXBvcnQgc3RyaW5nc1xuICAgICAgICAgIGlmICghbmV4dCAmJiBjdXJyZW50LmluY2x1ZGVzKCdub2RlX21vZHVsZXMnKSkge1xuICAgICAgICAgICAgY29uc3QgcGFja2FnZU5hbWUgPSBnZXRQYWNrYWdlTmFtZShjdXJyZW50KTtcbiAgICAgICAgICAgIGlmIChwYWNrYWdlTmFtZSkge1xuICAgICAgICAgICAgICAvLyBUcnkgdGhlIHBhY2thZ2UgbmFtZSBkaXJlY3RseVxuICAgICAgICAgICAgICBuZXh0ID0gaW1wb3J0UGFyZW50cy5nZXQocGFja2FnZU5hbWUpO1xuICAgICAgICAgICAgICBpZiAoIW5leHQpIHtcbiAgICAgICAgICAgICAgICAvLyBUcnkgd2l0aCBub2RlOiBwcmVmaXhcbiAgICAgICAgICAgICAgICBuZXh0ID0gaW1wb3J0UGFyZW50cy5nZXQoYG5vZGU6JHtwYWNrYWdlTmFtZX1gKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGN1cnJlbnQgPSBuZXh0ID8/ICcnO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZpbHRlcmVkQ2hhaW4gPSBjaGFpbi5maWx0ZXIoXG4gICAgICAgICAgKHBhdGgpID0+ICFwYXRoLmluY2x1ZGVzKCdub2RlX21vZHVsZXMnKVxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IHdvcmtmbG93RmlsZSA9IGZpbHRlcmVkQ2hhaW5bMF0gPz8gaW1wb3J0ZXJQYXRoO1xuXG4gICAgICAgIGlmICghd29ya2Zsb3dGaWxlIHx8IHdvcmtmbG93RmlsZS5pbmNsdWRlcygnbm9kZV9tb2R1bGVzJykpIHtcbiAgICAgICAgICAvLyBNYXJrIGJ1aWx0aW4gaW1wb3J0cyBhcyBzaWRlLWVmZmVjdC1mcmVlIHNvIGVzYnVpbGQgY2FuIHRyZWUtc2hha2VcbiAgICAgICAgICAvLyB0aGVtIHdoZW4gdGhleSdyZSBvbmx5IHJlZmVyZW5jZWQgYnkgZGVhZCAoZS5nLiBzdGVwLW9ubHkpIGNvZGVcbiAgICAgICAgICAvLyBwYXRocyBpbiBzaGFyZWQgbW9kdWxlcy4gVGhlIG9uRW5kIGZpbHRlciBiZWxvdyB1c2VzIHRoZSBtZXRhZmlsZVxuICAgICAgICAgIC8vIHRvIGRlY2lkZSB3aGljaCBpbXBvcnRzIGFjdHVhbGx5IHN1cnZpdmUuXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHBhdGg6IGFyZ3MucGF0aCxcbiAgICAgICAgICAgIGV4dGVybmFsOiB0cnVlLFxuICAgICAgICAgICAgc2lkZUVmZmVjdHM6IGZhbHNlLFxuICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwYWNrYWdlTmFtZSA9IGltcG9ydGVyUGF0aC5pbmNsdWRlcygnbm9kZV9tb2R1bGVzJylcbiAgICAgICAgICA/IChnZXRQYWNrYWdlTmFtZShpbXBvcnRlclBhdGgpID8/IGFyZ3MucGF0aClcbiAgICAgICAgICA6IGFyZ3MucGF0aDtcblxuICAgICAgICBjb25zdCByZWxhdGl2ZVdvcmtmbG93RmlsZSA9IHJlbGF0aXZlKGN3ZCwgd29ya2Zsb3dGaWxlKTtcbiAgICAgICAgY29uc3QgdmlvbGF0aW9uS2V5ID0gYCR7cGFja2FnZU5hbWV9OiR7cmVsYXRpdmVXb3JrZmxvd0ZpbGV9YDtcblxuICAgICAgICBpZiAoIXNlZW5WaW9sYXRpb25zLmhhcyh2aW9sYXRpb25LZXkpKSB7XG4gICAgICAgICAgc2VlblZpb2xhdGlvbnMuYWRkKHZpb2xhdGlvbktleSk7XG4gICAgICAgICAgY29uc3QgbG9jYXRpb24gPSBhd2FpdCBnZXRWaW9sYXRpb25Mb2NhdGlvbihcbiAgICAgICAgICAgIGN3ZCxcbiAgICAgICAgICAgIHJlbGF0aXZlV29ya2Zsb3dGaWxlLFxuICAgICAgICAgICAgcGFja2FnZU5hbWVcbiAgICAgICAgICApO1xuICAgICAgICAgIC8vIE9ubHkgcmVwb3J0IHZpb2xhdGlvbnMgd2hlcmUgd2UgY2FuIGZpbmQgdGhlIGltcG9ydCBsb2NhdGlvbi5cbiAgICAgICAgICAvLyBJZiB3ZSBjYW4ndCBmaW5kIGl0LCB0aGUgcGFja2FnZSBpcyBsaWtlbHkgYSB0cmFuc2l0aXZlIGRlcGVuZGVuY3lcbiAgICAgICAgICAvLyB0aGF0IHRoZSB1c2VyIGRpZG4ndCBkaXJlY3RseSBpbXBvcnQgLSB3ZSdsbCByZXBvcnQgdGhlIHRvcC1sZXZlbFxuICAgICAgICAgIC8vIHBhY2thZ2UgdGhleSBkaWQgaW1wb3J0IGluc3RlYWQuXG4gICAgICAgICAgaWYgKGxvY2F0aW9uKSB7XG4gICAgICAgICAgICBwYWNrYWdlVmlvbGF0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgICAgcGF0aDogYXJncy5wYXRoLFxuICAgICAgICAgICAgICBpbXBvcnRlcjogcmVsYXRpdmVXb3JrZmxvd0ZpbGUsXG4gICAgICAgICAgICAgIHBhY2thZ2VOYW1lLFxuICAgICAgICAgICAgICBsb2NhdGlvbixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE1hcmsgYnVpbHRpbiBpbXBvcnRzIGFzIHNpZGUtZWZmZWN0LWZyZWUgc28gZXNidWlsZCBjYW4gdHJlZS1zaGFrZVxuICAgICAgICAvLyB0aGVtIHdoZW4gdGhleSdyZSBvbmx5IHJlZmVyZW5jZWQgYnkgZGVhZCAoZS5nLiBzdGVwLW9ubHkpIGNvZGVcbiAgICAgICAgLy8gcGF0aHMgaW4gc2hhcmVkIG1vZHVsZXMuIFRoZSBvbkVuZCBmaWx0ZXIgYmVsb3cgdXNlcyB0aGUgbWV0YWZpbGVcbiAgICAgICAgLy8gdG8gZGVjaWRlIHdoaWNoIGltcG9ydHMgYWN0dWFsbHkgc3Vydml2ZS5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBwYXRoOiBhcmdzLnBhdGgsXG4gICAgICAgICAgZXh0ZXJuYWw6IHRydWUsXG4gICAgICAgICAgc2lkZUVmZmVjdHM6IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgfSk7XG5cbiAgICAgIC8vIFJlcG9ydCB2aW9sYXRpb25zIGF0IHRoZSBlbmQgb2YgdGhlIGJ1aWxkLCBmaWx0ZXJlZCB0byBvbmx5IHRob3NlXG4gICAgICAvLyB3aG9zZSBOb2RlLmpzIC8gQnVuIGJ1aWx0aW4gaW1wb3J0cyBhY3R1YWxseSBzdXJ2aXZlZCB0cmVlLXNoYWtpbmcuXG4gICAgICAvL1xuICAgICAgLy8gYG9uUmVzb2x2ZWAgZmlyZXMgZHVyaW5nIG1vZHVsZSBsb2FkaW5nLCBiZWZvcmUgZXNidWlsZCdzIHRyZWUtc2hha2VyXG4gICAgICAvLyBydW5zLiBUaGF0IG1lYW5zIGEgc2hhcmVkIG1vZHVsZSB3aG9zZSBzdGVwLW9ubHkgZXhwb3J0IHJlZmVyZW5jZXMgYVxuICAgICAgLy8gYnVpbHRpbiB3aWxsIHJlY29yZCBhIHZpb2xhdGlvbiBldmVuIGlmIHRoZSB3b3JrZmxvdyBuZXZlciB0b3VjaGVzXG4gICAgICAvLyB0aGF0IGV4cG9ydC4gQnkgbWFya2luZyBidWlsdGluIGltcG9ydHMgYXMgYHNpZGVFZmZlY3RzOiBmYWxzZWAgaW5cbiAgICAgIC8vIGBvblJlc29sdmVgIGFib3ZlLCBlc2J1aWxkIGNhbiBkcm9wIHN1Y2ggaW1wb3J0cyBmcm9tIHRoZSBvdXRwdXQuXG4gICAgICAvLyBIZXJlIHdlIGNvbnN1bHQgdGhlIG1ldGFmaWxlIHRvIHNlZSB3aGljaCBidWlsdGluIGltcG9ydHMgcmVtYWluXG4gICAgICAvLyBpbiB0aGUgZW1pdHRlZCBidW5kbGUgYW5kIG9ubHkgcmVwb3J0IHRob3NlLlxuICAgICAgYnVpbGQub25FbmQoKHJlc3VsdCkgPT4ge1xuICAgICAgICBpZiAocGFja2FnZVZpb2xhdGlvbnMubGVuZ3RoID09PSAwKSByZXR1cm47XG5cbiAgICAgICAgY29uc3Qgc3Vydml2aW5nQnVpbHRpbnMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgICAgICAgY29uc3Qgb3V0cHV0cyA9IHJlc3VsdC5tZXRhZmlsZT8ub3V0cHV0cztcbiAgICAgICAgaWYgKG91dHB1dHMpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IG91dHB1dCBvZiBPYmplY3QudmFsdWVzKG91dHB1dHMpKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGltcCBvZiBvdXRwdXQuaW1wb3J0cykge1xuICAgICAgICAgICAgICAvLyBFeHRlcm5hbCBpbXBvcnRzIGluIHRoZSBtZXRhZmlsZSBhcmUgcmVjb3JkZWQgd2l0aCB0aGUgcGF0aFxuICAgICAgICAgICAgICAvLyB0aGF0IHdhcyByZXR1cm5lZCBmcm9tIGBvblJlc29sdmVgIChlLmcuIFwibm9kZTpmcy9wcm9taXNlc1wiLFxuICAgICAgICAgICAgICAvLyBcImZzXCIsIFwiYnVuOnNxbGl0ZVwiKS4gT25seSBjb2xsZWN0IHRoZSBvbmVzIHRoYXQgbWF0Y2hcbiAgICAgICAgICAgICAgLy8gTm9kZS5qcyAvIEJ1biBidWlsdGlucy5cbiAgICAgICAgICAgICAgaWYgKGltcC5leHRlcm5hbCAmJiBydW50aW1lTW9kdWxlc1JlZ2V4LnRlc3QoaW1wLnBhdGgpKSB7XG4gICAgICAgICAgICAgICAgc3Vydml2aW5nQnVpbHRpbnMuYWRkKGltcC5wYXRoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIHRoZSBtZXRhZmlsZSBpcyB1bmF2YWlsYWJsZSBmb3Igc29tZSByZWFzb24sIGZhbGwgYmFjayB0b1xuICAgICAgICAvLyByZXBvcnRpbmcgYWxsIHJlY29yZGVkIHZpb2xhdGlvbnMgc28gd2UgbmV2ZXIgc2lsZW50bHkgc3VwcHJlc3NcbiAgICAgICAgLy8gcmVhbCBvbmVzLlxuICAgICAgICBjb25zdCBsaXZlVmlvbGF0aW9ucyA9IG91dHB1dHNcbiAgICAgICAgICA/IHBhY2thZ2VWaW9sYXRpb25zLmZpbHRlcigodmlvbGF0aW9uKSA9PlxuICAgICAgICAgICAgICBzdXJ2aXZpbmdCdWlsdGlucy5oYXModmlvbGF0aW9uLnBhdGgpXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiBwYWNrYWdlVmlvbGF0aW9ucztcblxuICAgICAgICBpZiAobGl2ZVZpb2xhdGlvbnMubGVuZ3RoID09PSAwKSByZXR1cm47XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBlcnJvcnM6IGxpdmVWaW9sYXRpb25zLm1hcCgodmlvbGF0aW9uKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpc0J1aWx0aW5Nb2R1bGUgPSBydW50aW1lTW9kdWxlc1JlZ2V4LnRlc3QoXG4gICAgICAgICAgICAgIHZpb2xhdGlvbi5wYWNrYWdlTmFtZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnN0IG1vZHVsZVR5cGUgPSBnZXRNb2R1bGVUeXBlTGFiZWwodmlvbGF0aW9uLnBhdGgpO1xuXG4gICAgICAgICAgICAvLyBEaWZmZXJlbnQgbWVzc2FnZXMgZm9yIGJ1aWx0LWluIG1vZHVsZXMgdnMgbnBtIHBhY2thZ2VzIHRoYXQgdXNlIHRoZW1cbiAgICAgICAgICAgIGNvbnN0IHRleHQgPSBpc0J1aWx0aW5Nb2R1bGVcbiAgICAgICAgICAgICAgPyBgWW91IGFyZSBhdHRlbXB0aW5nIHRvIHVzZSBcIiR7dmlvbGF0aW9uLnBhY2thZ2VOYW1lfVwiIHdoaWNoIGlzIGEgJHttb2R1bGVUeXBlfSBtb2R1bGUuICR7bW9kdWxlVHlwZX0gbW9kdWxlcyBhcmUgbm90IGF2YWlsYWJsZSBpbiB3b3JrZmxvdyBmdW5jdGlvbnMuXFxuXFxuTGVhcm4gbW9yZTogaHR0cHM6Ly93b3JrZmxvdy1zZGsuZGV2L2Vyci8ke0VSUk9SX1NMVUdTLk5PREVfSlNfTU9EVUxFX0lOX1dPUktGTE9XfWBcbiAgICAgICAgICAgICAgOiBgWW91IGFyZSBhdHRlbXB0aW5nIHRvIHVzZSBcIiR7dmlvbGF0aW9uLnBhY2thZ2VOYW1lfVwiIHdoaWNoIGRlcGVuZHMgb24gJHttb2R1bGVUeXBlfSBtb2R1bGVzLiBQYWNrYWdlcyB0aGF0IGRlcGVuZCBvbiAke21vZHVsZVR5cGV9IG1vZHVsZXMgYXJlIG5vdCBhdmFpbGFibGUgaW4gd29ya2Zsb3cgZnVuY3Rpb25zLlxcblxcbkxlYXJuIG1vcmU6IGh0dHBzOi8vd29ya2Zsb3ctc2RrLmRldi9lcnIvJHtFUlJPUl9TTFVHUy5OT0RFX0pTX01PRFVMRV9JTl9XT1JLRkxPV31gO1xuXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICB0ZXh0LFxuICAgICAgICAgICAgICBsb2NhdGlvbjogdmlvbGF0aW9uLmxvY2F0aW9uXG4gICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgIC4uLnZpb2xhdGlvbi5sb2NhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgc3VnZ2VzdGlvbjogJ01vdmUgdGhpcyBmdW5jdGlvbiBpbnRvIGEgc3RlcCBmdW5jdGlvbi4nLFxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgIH0sXG4gIH07XG59XG4iXX0=