lerna-projen 0.1.328 → 0.1.329

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.jsii CHANGED
@@ -88,7 +88,7 @@
88
88
  "stability": "stable"
89
89
  },
90
90
  "homepage": "https://github.com/AminFazlMondo/Lerna-Projen.git",
91
- "jsiiVersion": "5.1.10 (build 041401a)",
91
+ "jsiiVersion": "5.3.3 (build 720b620)",
92
92
  "keywords": [
93
93
  "lerna",
94
94
  "monorepo",
@@ -797,6 +797,6 @@
797
797
  "symbolId": "src/types:TaskCustomization"
798
798
  }
799
799
  },
800
- "version": "0.1.328",
801
- "fingerprint": "dZq2qTcZuodakb6Ic/BGI8mLnf+FxIAPnvnBx3eSTFI="
800
+ "version": "0.1.329",
801
+ "fingerprint": "4RKTI1dndyTvfBHzyjHQw3jn3oEPJ4sVTLKTSjbBpdk="
802
802
  }
package/lib/cli.js CHANGED
@@ -59,4 +59,4 @@ function writeFileIfExists(details) {
59
59
  (0, fs_extra_1.writeFileSync)(details.path, details.content);
60
60
  }
61
61
  program.parse(process.argv);
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHlDQUFpQztBQUNqQyx1Q0FBdUc7QUFFdkcsTUFBTSxPQUFPLEdBQUcsSUFBSSxtQkFBTyxFQUFFLENBQUE7QUFPN0IsT0FBTztLQUNKLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQztLQUNsQyxNQUFNLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxFQUFFO0lBQzNCLE1BQU0sYUFBYSxHQUFhO1FBQzlCLEdBQUcsVUFBVSxlQUFlO1FBQzVCLEdBQUcsVUFBVSxjQUFjO1FBQzNCLEdBQUcsVUFBVSxpQkFBaUI7S0FDL0IsQ0FBQTtJQUNELE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtJQUN2RCxJQUFBLHVCQUFZLEVBQUMsVUFBVSxDQUFDLENBQUE7SUFDeEIsV0FBVyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO0FBQ3hDLENBQUMsQ0FBQyxDQUFBO0FBRUosT0FBTztLQUNKLE9BQU8sQ0FBQyx5Q0FBeUMsQ0FBQztLQUNsRCxNQUFNLENBQUMsS0FBSyxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsRUFBRTtJQUMzQyxNQUFNLGNBQWMsR0FBRyxLQUFLLGNBQWMsRUFBRSxDQUFBO0lBQzVDLElBQUksQ0FBQyxJQUFBLHFCQUFVLEVBQUMsY0FBYyxDQUFDO1FBQzdCLE9BQU07SUFFUixNQUFNLE9BQU8sR0FBRyxJQUFBLHNCQUFXLEVBQUMsY0FBYyxDQUFDLENBQUE7SUFDM0MsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFBLGVBQUksRUFBQyxHQUFHLGNBQWMsSUFBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLFVBQVUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQy9ILENBQUMsQ0FBQyxDQUFBO0FBR0osT0FBTztLQUNKLE9BQU8sQ0FBQyw0RUFBNEUsQ0FBQztLQUNyRixNQUFNLENBQUMsS0FBSyxFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBRSx1QkFBdUIsRUFBRSxFQUFFO0lBQzdFLE1BQU0sUUFBUSxDQUFDLG1CQUFtQixFQUFFLGNBQWMsRUFBRSx1QkFBdUIsRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUNuRixNQUFNLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFBO0FBQ3JFLENBQUMsQ0FBQyxDQUFBO0FBRUosS0FBSyxVQUFVLFFBQVEsQ0FBQyxtQkFBMkIsRUFBRSxjQUFzQixFQUFFLE9BQWUsRUFBRSxNQUFlO0lBQzNHLE1BQU0sY0FBYyxHQUFHLEtBQUssY0FBYyxJQUFJLE9BQU8sRUFBRSxDQUFBO0lBQ3ZELElBQUksQ0FBQyxJQUFBLHFCQUFVLEVBQUMsY0FBYyxDQUFDO1FBQzdCLE9BQU07SUFFUixNQUFNLGlCQUFpQixHQUFHLEtBQUssbUJBQW1CLElBQUksY0FBYyxFQUFFLENBQUE7SUFDdEUsSUFBQSx1QkFBWSxFQUFDLGlCQUFpQixDQUFDLENBQUE7SUFDL0IsTUFBTSxXQUFXLEdBQUcsRUFBQyxTQUFTLEVBQUUsSUFBSSxFQUFDLENBQUE7SUFDckMsSUFBSSxNQUFNLEVBQUU7UUFDVixNQUFNLElBQUEsZUFBSSxFQUFDLGNBQWMsRUFBRSxHQUFHLGlCQUFpQixJQUFJLE9BQU8sRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFBO0tBQzNFO1NBQU07UUFDTCxNQUFNLE9BQU8sR0FBRyxJQUFBLHNCQUFXLEVBQUMsY0FBYyxDQUFDLENBQUE7UUFDM0MsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFBLGVBQUksRUFBQyxHQUFHLGNBQWMsSUFBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLGlCQUFpQixJQUFJLENBQUMsRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQTtLQUM5RztBQUNILENBQUM7QUFFRCxTQUFTLGdCQUFnQixDQUFDLFFBQWdCO0lBQ3hDLElBQUksQ0FBQyxDQUFDLElBQUEscUJBQVUsRUFBQyxRQUFRLENBQUMsQ0FBQztRQUN6QixPQUFPLEVBQUMsSUFBSSxFQUFFLFFBQVEsRUFBQyxDQUFBO0lBRXpCLE9BQU87UUFDTCxJQUFJLEVBQUUsUUFBUTtRQUNkLE9BQU8sRUFBRSxJQUFBLHVCQUFZLEVBQUMsUUFBUSxDQUFDO0tBQ2hDLENBQUE7QUFDSCxDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBQyxPQUF3QjtJQUNqRCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU87UUFDbEIsT0FBTTtJQUVSLElBQUEsd0JBQWEsRUFBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQTtBQUM5QyxDQUFDO0FBRUQsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbW1hbmR9IGZyb20gJ2NvbW1hbmRlcidcbmltcG9ydCB7Y29weSwgcmVhZGRpclN5bmMsIGV4aXN0c1N5bmMsIG1vdmUsIGVtcHR5RGlyU3luYywgcmVhZEZpbGVTeW5jLCB3cml0ZUZpbGVTeW5jfSBmcm9tICdmcy1leHRyYSdcblxuY29uc3QgcHJvZ3JhbSA9IG5ldyBDb21tYW5kKClcblxuaW50ZXJmYWNlIEZpbGVEZXRhaWxzVHlwZSB7XG4gIHBhdGg6IHN0cmluZztcbiAgY29udGVudD86IEJ1ZmZlciB8IHVuZGVmaW5lZDtcbn1cblxucHJvZ3JhbVxuICAuY29tbWFuZCgnY2xlYW4tZGlzdCA8ZGlzdEZvbGRlcj4nKVxuICAuYWN0aW9uKGFzeW5jIChkaXN0Rm9sZGVyKSA9PiB7XG4gICAgY29uc3QgZXhpc3RpbmdGaWxlczogc3RyaW5nW10gPSBbXG4gICAgICBgJHtkaXN0Rm9sZGVyfS9jaGFuZ2Vsb2cubWRgLFxuICAgICAgYCR7ZGlzdEZvbGRlcn0vdmVyc2lvbi50eHRgLFxuICAgICAgYCR7ZGlzdEZvbGRlcn0vcmVsZWFzZXRhZy50eHRgLFxuICAgIF1cbiAgICBjb25zdCBmaWxlRGV0YWlscyA9IGV4aXN0aW5nRmlsZXMubWFwKHJlYWRGaWxlSWZFeGlzdHMpXG4gICAgZW1wdHlEaXJTeW5jKGRpc3RGb2xkZXIpXG4gICAgZmlsZURldGFpbHMuZm9yRWFjaCh3cml0ZUZpbGVJZkV4aXN0cylcbiAgfSlcblxucHJvZ3JhbVxuICAuY29tbWFuZCgnY29weS1kaXN0IDxzdWJQcm9qZWN0RGlzdD4gPHBhcmVudERpc3Q+JylcbiAgLmFjdGlvbihhc3luYyAoc3ViUHJvamVjdFBhdGgsIHBhcmVudERpc3QpID0+IHtcbiAgICBjb25zdCBzdWJQcm9qZWN0RGlzdCA9IGAuLyR7c3ViUHJvamVjdFBhdGh9YFxuICAgIGlmICghZXhpc3RzU3luYyhzdWJQcm9qZWN0RGlzdCkpXG4gICAgICByZXR1cm5cblxuICAgIGNvbnN0IGVudHJpZXMgPSByZWFkZGlyU3luYyhzdWJQcm9qZWN0RGlzdClcbiAgICBhd2FpdCBQcm9taXNlLmFsbChlbnRyaWVzLm1hcChmID0+IGNvcHkoYCR7c3ViUHJvamVjdERpc3R9LyR7Zn1gLCBgJHtwYXJlbnREaXN0fS8ke2Z9YCwge3JlY3Vyc2l2ZTogdHJ1ZSwgb3ZlcndyaXRlOiB0cnVlfSkpKVxuICB9KVxuXG5cbnByb2dyYW1cbiAgLmNvbW1hbmQoJ21vdmUtZG9jcyA8cGFyZW50RG9jc0RpcmVjdG9yeT4gPHN1YlByb2plY3RQYXRoPiA8c3ViUHJvamVjdERvY3NEaXJlY3Rvcnk+JylcbiAgLmFjdGlvbihhc3luYyAocGFyZW50RG9jc0RpcmVjdG9yeSwgc3ViUHJvamVjdFBhdGgsIHN1YlByb2plY3REb2NzRGlyZWN0b3J5KSA9PiB7XG4gICAgYXdhaXQgbW92ZURvY3MocGFyZW50RG9jc0RpcmVjdG9yeSwgc3ViUHJvamVjdFBhdGgsIHN1YlByb2plY3REb2NzRGlyZWN0b3J5LCBmYWxzZSlcbiAgICBhd2FpdCBtb3ZlRG9jcyhwYXJlbnREb2NzRGlyZWN0b3J5LCBzdWJQcm9qZWN0UGF0aCwgJ0FQSS5tZCcsIHRydWUpXG4gIH0pXG5cbmFzeW5jIGZ1bmN0aW9uIG1vdmVEb2NzKHBhcmVudERvY3NEaXJlY3Rvcnk6IHN0cmluZywgc3ViUHJvamVjdFBhdGg6IHN0cmluZywgc3ViUGF0aDogc3RyaW5nLCBpc0ZpbGU6IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3Qgc3ViUHJvamVjdERvY3MgPSBgLi8ke3N1YlByb2plY3RQYXRofS8ke3N1YlBhdGh9YFxuICBpZiAoIWV4aXN0c1N5bmMoc3ViUHJvamVjdERvY3MpKVxuICAgIHJldHVyblxuXG4gIGNvbnN0IGRlc3RpbmF0aW9uRm9sZGVyID0gYC4vJHtwYXJlbnREb2NzRGlyZWN0b3J5fS8ke3N1YlByb2plY3RQYXRofWBcbiAgZW1wdHlEaXJTeW5jKGRlc3RpbmF0aW9uRm9sZGVyKVxuICBjb25zdCBtb3ZlT3B0aW9ucyA9IHtvdmVyd3JpdGU6IHRydWV9XG4gIGlmIChpc0ZpbGUpIHtcbiAgICBhd2FpdCBtb3ZlKHN1YlByb2plY3REb2NzLCBgJHtkZXN0aW5hdGlvbkZvbGRlcn0vJHtzdWJQYXRofWAsIG1vdmVPcHRpb25zKVxuICB9IGVsc2Uge1xuICAgIGNvbnN0IGVudHJpZXMgPSByZWFkZGlyU3luYyhzdWJQcm9qZWN0RG9jcylcbiAgICBhd2FpdCBQcm9taXNlLmFsbChlbnRyaWVzLm1hcChmID0+IG1vdmUoYCR7c3ViUHJvamVjdERvY3N9LyR7Zn1gLCBgJHtkZXN0aW5hdGlvbkZvbGRlcn0vJHtmfWAsIG1vdmVPcHRpb25zKSkpXG4gIH1cbn1cblxuZnVuY3Rpb24gcmVhZEZpbGVJZkV4aXN0cyhmaWxlUGF0aDogc3RyaW5nKTogRmlsZURldGFpbHNUeXBlIHtcbiAgaWYgKCEoZXhpc3RzU3luYyhmaWxlUGF0aCkpKVxuICAgIHJldHVybiB7cGF0aDogZmlsZVBhdGh9XG5cbiAgcmV0dXJuIHtcbiAgICBwYXRoOiBmaWxlUGF0aCxcbiAgICBjb250ZW50OiByZWFkRmlsZVN5bmMoZmlsZVBhdGgpLFxuICB9XG59XG5cbmZ1bmN0aW9uIHdyaXRlRmlsZUlmRXhpc3RzKGRldGFpbHM6IEZpbGVEZXRhaWxzVHlwZSk6IHZvaWQge1xuICBpZiAoIWRldGFpbHMuY29udGVudClcbiAgICByZXR1cm5cblxuICB3cml0ZUZpbGVTeW5jKGRldGFpbHMucGF0aCwgZGV0YWlscy5jb250ZW50KVxufVxuXG5wcm9ncmFtLnBhcnNlKHByb2Nlc3MuYXJndikiXX0=
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHlDQUFpQztBQUNqQyx1Q0FBdUc7QUFFdkcsTUFBTSxPQUFPLEdBQUcsSUFBSSxtQkFBTyxFQUFFLENBQUE7QUFPN0IsT0FBTztLQUNKLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQztLQUNsQyxNQUFNLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxFQUFFO0lBQzNCLE1BQU0sYUFBYSxHQUFhO1FBQzlCLEdBQUcsVUFBVSxlQUFlO1FBQzVCLEdBQUcsVUFBVSxjQUFjO1FBQzNCLEdBQUcsVUFBVSxpQkFBaUI7S0FDL0IsQ0FBQTtJQUNELE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtJQUN2RCxJQUFBLHVCQUFZLEVBQUMsVUFBVSxDQUFDLENBQUE7SUFDeEIsV0FBVyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO0FBQ3hDLENBQUMsQ0FBQyxDQUFBO0FBRUosT0FBTztLQUNKLE9BQU8sQ0FBQyx5Q0FBeUMsQ0FBQztLQUNsRCxNQUFNLENBQUMsS0FBSyxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsRUFBRTtJQUMzQyxNQUFNLGNBQWMsR0FBRyxLQUFLLGNBQWMsRUFBRSxDQUFBO0lBQzVDLElBQUksQ0FBQyxJQUFBLHFCQUFVLEVBQUMsY0FBYyxDQUFDO1FBQzdCLE9BQU07SUFFUixNQUFNLE9BQU8sR0FBRyxJQUFBLHNCQUFXLEVBQUMsY0FBYyxDQUFDLENBQUE7SUFDM0MsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFBLGVBQUksRUFBQyxHQUFHLGNBQWMsSUFBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLFVBQVUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQy9ILENBQUMsQ0FBQyxDQUFBO0FBR0osT0FBTztLQUNKLE9BQU8sQ0FBQyw0RUFBNEUsQ0FBQztLQUNyRixNQUFNLENBQUMsS0FBSyxFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBRSx1QkFBdUIsRUFBRSxFQUFFO0lBQzdFLE1BQU0sUUFBUSxDQUFDLG1CQUFtQixFQUFFLGNBQWMsRUFBRSx1QkFBdUIsRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUNuRixNQUFNLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFBO0FBQ3JFLENBQUMsQ0FBQyxDQUFBO0FBRUosS0FBSyxVQUFVLFFBQVEsQ0FBQyxtQkFBMkIsRUFBRSxjQUFzQixFQUFFLE9BQWUsRUFBRSxNQUFlO0lBQzNHLE1BQU0sY0FBYyxHQUFHLEtBQUssY0FBYyxJQUFJLE9BQU8sRUFBRSxDQUFBO0lBQ3ZELElBQUksQ0FBQyxJQUFBLHFCQUFVLEVBQUMsY0FBYyxDQUFDO1FBQzdCLE9BQU07SUFFUixNQUFNLGlCQUFpQixHQUFHLEtBQUssbUJBQW1CLElBQUksY0FBYyxFQUFFLENBQUE7SUFDdEUsSUFBQSx1QkFBWSxFQUFDLGlCQUFpQixDQUFDLENBQUE7SUFDL0IsTUFBTSxXQUFXLEdBQUcsRUFBQyxTQUFTLEVBQUUsSUFBSSxFQUFDLENBQUE7SUFDckMsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUNYLE1BQU0sSUFBQSxlQUFJLEVBQUMsY0FBYyxFQUFFLEdBQUcsaUJBQWlCLElBQUksT0FBTyxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUE7SUFDNUUsQ0FBQztTQUFNLENBQUM7UUFDTixNQUFNLE9BQU8sR0FBRyxJQUFBLHNCQUFXLEVBQUMsY0FBYyxDQUFDLENBQUE7UUFDM0MsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFBLGVBQUksRUFBQyxHQUFHLGNBQWMsSUFBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLGlCQUFpQixJQUFJLENBQUMsRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUMvRyxDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQVMsZ0JBQWdCLENBQUMsUUFBZ0I7SUFDeEMsSUFBSSxDQUFDLENBQUMsSUFBQSxxQkFBVSxFQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pCLE9BQU8sRUFBQyxJQUFJLEVBQUUsUUFBUSxFQUFDLENBQUE7SUFFekIsT0FBTztRQUNMLElBQUksRUFBRSxRQUFRO1FBQ2QsT0FBTyxFQUFFLElBQUEsdUJBQVksRUFBQyxRQUFRLENBQUM7S0FDaEMsQ0FBQTtBQUNILENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLE9BQXdCO0lBQ2pELElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTztRQUNsQixPQUFNO0lBRVIsSUFBQSx3QkFBYSxFQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0FBQzlDLENBQUM7QUFFRCxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tbWFuZH0gZnJvbSAnY29tbWFuZGVyJ1xuaW1wb3J0IHtjb3B5LCByZWFkZGlyU3luYywgZXhpc3RzU3luYywgbW92ZSwgZW1wdHlEaXJTeW5jLCByZWFkRmlsZVN5bmMsIHdyaXRlRmlsZVN5bmN9IGZyb20gJ2ZzLWV4dHJhJ1xuXG5jb25zdCBwcm9ncmFtID0gbmV3IENvbW1hbmQoKVxuXG5pbnRlcmZhY2UgRmlsZURldGFpbHNUeXBlIHtcbiAgcGF0aDogc3RyaW5nO1xuICBjb250ZW50PzogQnVmZmVyIHwgdW5kZWZpbmVkO1xufVxuXG5wcm9ncmFtXG4gIC5jb21tYW5kKCdjbGVhbi1kaXN0IDxkaXN0Rm9sZGVyPicpXG4gIC5hY3Rpb24oYXN5bmMgKGRpc3RGb2xkZXIpID0+IHtcbiAgICBjb25zdCBleGlzdGluZ0ZpbGVzOiBzdHJpbmdbXSA9IFtcbiAgICAgIGAke2Rpc3RGb2xkZXJ9L2NoYW5nZWxvZy5tZGAsXG4gICAgICBgJHtkaXN0Rm9sZGVyfS92ZXJzaW9uLnR4dGAsXG4gICAgICBgJHtkaXN0Rm9sZGVyfS9yZWxlYXNldGFnLnR4dGAsXG4gICAgXVxuICAgIGNvbnN0IGZpbGVEZXRhaWxzID0gZXhpc3RpbmdGaWxlcy5tYXAocmVhZEZpbGVJZkV4aXN0cylcbiAgICBlbXB0eURpclN5bmMoZGlzdEZvbGRlcilcbiAgICBmaWxlRGV0YWlscy5mb3JFYWNoKHdyaXRlRmlsZUlmRXhpc3RzKVxuICB9KVxuXG5wcm9ncmFtXG4gIC5jb21tYW5kKCdjb3B5LWRpc3QgPHN1YlByb2plY3REaXN0PiA8cGFyZW50RGlzdD4nKVxuICAuYWN0aW9uKGFzeW5jIChzdWJQcm9qZWN0UGF0aCwgcGFyZW50RGlzdCkgPT4ge1xuICAgIGNvbnN0IHN1YlByb2plY3REaXN0ID0gYC4vJHtzdWJQcm9qZWN0UGF0aH1gXG4gICAgaWYgKCFleGlzdHNTeW5jKHN1YlByb2plY3REaXN0KSlcbiAgICAgIHJldHVyblxuXG4gICAgY29uc3QgZW50cmllcyA9IHJlYWRkaXJTeW5jKHN1YlByb2plY3REaXN0KVxuICAgIGF3YWl0IFByb21pc2UuYWxsKGVudHJpZXMubWFwKGYgPT4gY29weShgJHtzdWJQcm9qZWN0RGlzdH0vJHtmfWAsIGAke3BhcmVudERpc3R9LyR7Zn1gLCB7cmVjdXJzaXZlOiB0cnVlLCBvdmVyd3JpdGU6IHRydWV9KSkpXG4gIH0pXG5cblxucHJvZ3JhbVxuICAuY29tbWFuZCgnbW92ZS1kb2NzIDxwYXJlbnREb2NzRGlyZWN0b3J5PiA8c3ViUHJvamVjdFBhdGg+IDxzdWJQcm9qZWN0RG9jc0RpcmVjdG9yeT4nKVxuICAuYWN0aW9uKGFzeW5jIChwYXJlbnREb2NzRGlyZWN0b3J5LCBzdWJQcm9qZWN0UGF0aCwgc3ViUHJvamVjdERvY3NEaXJlY3RvcnkpID0+IHtcbiAgICBhd2FpdCBtb3ZlRG9jcyhwYXJlbnREb2NzRGlyZWN0b3J5LCBzdWJQcm9qZWN0UGF0aCwgc3ViUHJvamVjdERvY3NEaXJlY3RvcnksIGZhbHNlKVxuICAgIGF3YWl0IG1vdmVEb2NzKHBhcmVudERvY3NEaXJlY3RvcnksIHN1YlByb2plY3RQYXRoLCAnQVBJLm1kJywgdHJ1ZSlcbiAgfSlcblxuYXN5bmMgZnVuY3Rpb24gbW92ZURvY3MocGFyZW50RG9jc0RpcmVjdG9yeTogc3RyaW5nLCBzdWJQcm9qZWN0UGF0aDogc3RyaW5nLCBzdWJQYXRoOiBzdHJpbmcsIGlzRmlsZTogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBzdWJQcm9qZWN0RG9jcyA9IGAuLyR7c3ViUHJvamVjdFBhdGh9LyR7c3ViUGF0aH1gXG4gIGlmICghZXhpc3RzU3luYyhzdWJQcm9qZWN0RG9jcykpXG4gICAgcmV0dXJuXG5cbiAgY29uc3QgZGVzdGluYXRpb25Gb2xkZXIgPSBgLi8ke3BhcmVudERvY3NEaXJlY3Rvcnl9LyR7c3ViUHJvamVjdFBhdGh9YFxuICBlbXB0eURpclN5bmMoZGVzdGluYXRpb25Gb2xkZXIpXG4gIGNvbnN0IG1vdmVPcHRpb25zID0ge292ZXJ3cml0ZTogdHJ1ZX1cbiAgaWYgKGlzRmlsZSkge1xuICAgIGF3YWl0IG1vdmUoc3ViUHJvamVjdERvY3MsIGAke2Rlc3RpbmF0aW9uRm9sZGVyfS8ke3N1YlBhdGh9YCwgbW92ZU9wdGlvbnMpXG4gIH0gZWxzZSB7XG4gICAgY29uc3QgZW50cmllcyA9IHJlYWRkaXJTeW5jKHN1YlByb2plY3REb2NzKVxuICAgIGF3YWl0IFByb21pc2UuYWxsKGVudHJpZXMubWFwKGYgPT4gbW92ZShgJHtzdWJQcm9qZWN0RG9jc30vJHtmfWAsIGAke2Rlc3RpbmF0aW9uRm9sZGVyfS8ke2Z9YCwgbW92ZU9wdGlvbnMpKSlcbiAgfVxufVxuXG5mdW5jdGlvbiByZWFkRmlsZUlmRXhpc3RzKGZpbGVQYXRoOiBzdHJpbmcpOiBGaWxlRGV0YWlsc1R5cGUge1xuICBpZiAoIShleGlzdHNTeW5jKGZpbGVQYXRoKSkpXG4gICAgcmV0dXJuIHtwYXRoOiBmaWxlUGF0aH1cblxuICByZXR1cm4ge1xuICAgIHBhdGg6IGZpbGVQYXRoLFxuICAgIGNvbnRlbnQ6IHJlYWRGaWxlU3luYyhmaWxlUGF0aCksXG4gIH1cbn1cblxuZnVuY3Rpb24gd3JpdGVGaWxlSWZFeGlzdHMoZGV0YWlsczogRmlsZURldGFpbHNUeXBlKTogdm9pZCB7XG4gIGlmICghZGV0YWlscy5jb250ZW50KVxuICAgIHJldHVyblxuXG4gIHdyaXRlRmlsZVN5bmMoZGV0YWlscy5wYXRoLCBkZXRhaWxzLmNvbnRlbnQpXG59XG5cbnByb2dyYW0ucGFyc2UocHJvY2Vzcy5hcmd2KSJdfQ==
package/lib/index.js CHANGED
@@ -92,7 +92,7 @@ class LernaProject extends projen_1.javascript.NodeProject {
92
92
  }
93
93
  exports.LernaProject = LernaProject;
94
94
  _a = JSII_RTTI_SYMBOL_1;
95
- LernaProject[_a] = { fqn: "lerna-projen.LernaProject", version: "0.1.328" };
95
+ LernaProject[_a] = { fqn: "lerna-projen.LernaProject", version: "0.1.329" };
96
96
  /**
97
97
  * @pjid lerna-ts-project
98
98
  */
@@ -125,7 +125,7 @@ class LernaTypescriptProject extends projen_1.typescript.TypeScriptProject {
125
125
  }
126
126
  exports.LernaTypescriptProject = LernaTypescriptProject;
127
127
  _b = JSII_RTTI_SYMBOL_1;
128
- LernaTypescriptProject[_b] = { fqn: "lerna-projen.LernaTypescriptProject", version: "0.1.328" };
128
+ LernaTypescriptProject[_b] = { fqn: "lerna-projen.LernaTypescriptProject", version: "0.1.329" };
129
129
  class LernaProjectFactory {
130
130
  constructor(project) {
131
131
  this.project = project;
@@ -269,4 +269,4 @@ class LernaProjectFactory {
269
269
  this.project.gitattributes.addAttributes(`/${this.project.docsDirectory}/**`, 'linguist-generated');
270
270
  }
271
271
  }
272
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZCQUE0QjtBQUM1QixtQ0FBNkY7QUFHN0YsMENBQXVCO0FBQ3ZCLG1DQUFnQztBQUVoQyxTQUFTLGdCQUFnQixDQUFDLE9BQWdCO0lBQ3hDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLGVBQWUsQ0FBQyxDQUFBO0lBQy9FLE9BQU8sTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTtBQUN2QyxDQUFDO0FBRUQsU0FBUyxxQkFBcUIsQ0FBQyxPQUFnQjtJQUM3QyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxvQkFBb0IsQ0FBQyxDQUFBO0lBQ3BGLE9BQU8sTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDcEIsQ0FBQztBQUVELE1BQU0sZUFBZSxHQUFHLGdDQUFnQyxDQUFBO0FBRXhELFNBQVMscUJBQXFCLENBQUMsS0FBWTtJQUN6QyxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUN0RyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUk7UUFDbkMsT0FBTTtJQUVSLE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFBO0lBQ3JELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUE7QUFDOUIsQ0FBQztBQUVELFNBQVMsNEJBQTRCLENBQWdFLE9BQVU7SUFDN0csSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0I7UUFDM0IsT0FBTyxPQUFPLENBQUE7SUFFaEIsT0FBTztRQUNMLEdBQUcsT0FBTztRQUNWLHNCQUFzQixFQUFFO1lBQ3RCO2dCQUNFLElBQUksRUFBRSxZQUFZO2dCQUNsQixHQUFHLEVBQUUsZ0hBQWdIO2dCQUNySCxFQUFFLEVBQUUscUNBQXFDO2FBQzFDO1lBQ0QsR0FBRyxPQUFPLENBQUMsc0JBQXNCLElBQUksRUFBRTtTQUN4QztLQUNGLENBQUE7QUFDSCxDQUFDO0FBRUQsTUFBTSxlQUFlLEdBQUcsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxjQUFjLENBQUMsQ0FBQTtBQWN6Rjs7R0FFRztBQUNILE1BQWEsWUFBYSxTQUFRLG1CQUFVLENBQUMsV0FBVztJQWN0RCxZQUFZLE9BQTRCO1FBQ3RDLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO1FBRTVDLElBQUksT0FBTyxDQUFDLFVBQVU7WUFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDLENBQUE7UUFFMUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxJQUFJLE1BQU0sQ0FBQTtRQUNwRCxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFBO1FBQ3JDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLElBQUksS0FBSyxDQUFBO1FBQ3pELElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUE7UUFDbkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxJQUFJLEtBQUssQ0FBQTtRQUM3QyxJQUFJLENBQUMsZUFBZSxHQUFHLE9BQU8sQ0FBQyxlQUFlLElBQUksS0FBSyxDQUFBO1FBQ3ZELElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDLGFBQWEsSUFBSSxLQUFLLENBQUE7UUFDbkQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsSUFBSSxFQUFFLENBQUE7UUFFMUQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFBO0lBQzlDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGFBQWEsQ0FBQyxRQUFnQixFQUFFLGFBQWdDO1FBQzlELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsR0FBRyxhQUFhLENBQUE7SUFDbkQsQ0FBQztJQUVELGFBQWE7UUFDWCxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUE7UUFDckIsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMscUNBQXFDLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFBO1FBQ25HLE1BQU0sRUFBQyxXQUFXLEVBQUMsR0FBRyxJQUFJLENBQUE7UUFDMUIsSUFBSSxDQUFDLFdBQVc7WUFDZCxNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUE7UUFDaEQsV0FBVyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUVoQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFBO0lBQ3RCLENBQUM7O0FBbkRILG9DQW9EQzs7O0FBRUQ7O0dBRUc7QUFDSCxNQUFhLHNCQUF1QixTQUFRLG1CQUFVLENBQUMsaUJBQWlCO0lBU3RFLFlBQVksT0FBc0M7UUFDaEQsS0FBSyxDQUFDLDRCQUE0QixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUE7UUFFNUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsSUFBSSxLQUFLLENBQUE7UUFDekQsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQTtRQUNuQyxJQUFJLENBQUMsZUFBZSxHQUFHLE9BQU8sQ0FBQyxlQUFlLElBQUksS0FBSyxDQUFBO1FBQ3ZELElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDLGFBQWEsSUFBSSxLQUFLLENBQUE7UUFDbkQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsSUFBSSxFQUFFLENBQUE7UUFFMUQsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLGlCQUFpQixJQUFJLEtBQUssQ0FBQztZQUN2QyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQTtRQUV4QyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQTtRQUVyQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDOUMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsYUFBYSxDQUFDLFFBQWdCLEVBQUUsYUFBZ0M7UUFDOUQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxHQUFHLGFBQWEsQ0FBQTtJQUNuRCxDQUFDO0lBRUQsYUFBYTtRQUNYLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQTtRQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFBO0lBQ3RCLENBQUM7O0FBdkNILHdEQXdDQzs7O0FBRUQsTUFBTSxtQkFBbUI7SUFDdkIsWUFBNkIsT0FBK0M7UUFBL0MsWUFBTyxHQUFQLE9BQU8sQ0FBd0M7UUFDMUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUE7SUFDN0MsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxJQUFJLENBQUMsT0FBTyxDQUFDLDRCQUE0QixFQUFFLENBQUMsQ0FBQTtRQUN2RixJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFBO1FBRTlGLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFBO1FBQzFCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQTtRQUNwQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQTtRQUN4QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQTtJQUMxQixDQUFDO0lBRU8saUJBQWlCLENBQUMsVUFBbUI7UUFDM0MsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUM5RCxDQUFDO0lBRU8sYUFBYTtRQUVuQixNQUFNLFdBQVcsR0FBUTtZQUN2QixLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLO1lBQ3pCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxPQUFPO1NBQ2hFLENBQUE7UUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQTtRQUUvRixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFO1lBQzlCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEtBQUssbUJBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJO2dCQUNwRSxJQUFJLGlCQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRTtvQkFDaEQsR0FBRyxFQUFFO3dCQUNILFFBQVE7cUJBQ1Q7aUJBQ0YsQ0FBQyxDQUFBO1lBQ0osSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQTtTQUN0RDthQUFNO1lBQUMsV0FBVyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUE7U0FBQztRQUd4QyxJQUFJLGlCQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUU7WUFDdkMsR0FBRyxFQUFFLFdBQVc7U0FDakIsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVPLG1CQUFtQjtRQUN6QixNQUFNLGVBQWUsR0FBRyxTQUFTLENBQUE7UUFDakMsTUFBTSxtQkFBbUIsR0FBRyxjQUFjLENBQUE7UUFDMUMsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUE7UUFDdkUsZUFBZSxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGVBQWUsRUFBRSxFQUFDLGdCQUFnQixFQUFFLEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBQTtRQUM5RixlQUFlLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFBO1FBRW5DLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUc7YUFDbkIsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2QsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDaEUsTUFBTSxZQUFZLEdBQUcsYUFBYSxFQUFFLFlBQVksSUFBSSxJQUFJLENBQUE7WUFFeEQsSUFBSSxlQUFlLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVk7Z0JBQ3RELE9BQU07WUFFUixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFBO1FBQzNELENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUVPLGVBQWUsQ0FBQyxRQUFnQixFQUFFLGFBQWlDO1FBQ3pFLE1BQU0sV0FBVyxHQUFHLGFBQWEsUUFBUSxXQUFXLENBQUE7UUFDcEQsTUFBTSxZQUFZLEdBQUcsYUFBYSxFQUFFLGdCQUFnQixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUE7UUFFckYsTUFBTSxlQUFlLEdBQUcsYUFBYSxFQUFFLE9BQU8sSUFBSSxFQUFFLENBQUE7UUFDcEQsTUFBTSxlQUFlLEdBQUcsYUFBYSxFQUFFLE9BQU8sSUFBSSxFQUFFLENBQUE7UUFFcEQsTUFBTSxVQUFVLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUM3RSxNQUFNLFdBQVcsR0FBRyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBRy9FLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMseURBQXlELENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtRQUNqRyxPQUFPLEdBQUcsV0FBVyxHQUFHLFdBQVcsR0FBRyxVQUFVLEdBQUcsV0FBVyxFQUFFLENBQUE7SUFDbEUsQ0FBQztJQUVPLGlCQUFpQjtRQUN2QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDbkQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBRXZELElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQzlDLE1BQU0sdUJBQXVCLEdBQUcsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUE7WUFDNUQsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFBO1lBQ3pELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksdUJBQXVCO2dCQUNoRCxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxJQUFJLGNBQWMsSUFBSSx1QkFBdUIsRUFBRSxDQUFDLENBQUE7WUFFeEksTUFBTSxjQUFjLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUE7WUFFOUQsSUFBSSxjQUFjO2dCQUNoQixVQUFVLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQTtZQUU5QyxNQUFNLGtCQUFrQixHQUFHLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxDQUFBO1lBRTVELElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQywwQkFBMEIsY0FBYyxJQUFJLGtCQUFrQixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFBO1lBRWxJLFVBQVUsQ0FBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLENBQUE7WUFFL0IsTUFBTSxRQUFRLEdBQUc7Z0JBQ2YsT0FBTyxFQUFFLGNBQWM7Z0JBQ3ZCLFNBQVMsRUFBRSxHQUFHLGtCQUFrQixlQUFlO2dCQUMvQyxRQUFRLEVBQUUsR0FBRyxrQkFBa0IsY0FBYztnQkFDN0MsVUFBVSxFQUFFLEdBQUcsa0JBQWtCLGlCQUFpQjtnQkFDbEQsa0JBQWtCLEVBQUUsRUFBRTthQUN2QixDQUFBO1lBRUQsSUFBSSxRQUFRLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDakQsTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFO29CQUNwRCxXQUFXLEVBQUUsUUFBUSxDQUFDLFdBQVc7b0JBQ2pDLFNBQVMsRUFBRSxRQUFRLENBQUMsU0FBUztvQkFDN0IsR0FBRyxFQUFFLFFBQVE7aUJBQ2QsQ0FBQyxDQUFBO2dCQUNGLFdBQVcsQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUMsQ0FBQTthQUM1QztZQUVELElBQUksVUFBVSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ3JELE1BQU0sV0FBVyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRTtvQkFDdEQsV0FBVyxFQUFFLFVBQVUsQ0FBQyxXQUFXO29CQUNuQyxTQUFTLEVBQUUsVUFBVSxDQUFDLFNBQVM7b0JBQy9CLEdBQUcsRUFBRSxRQUFRO2lCQUNkLENBQUMsQ0FBQTtnQkFDRixXQUFXLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLENBQUE7YUFDN0M7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTTtZQUN0QixPQUFNO1FBRVIsTUFBTSxlQUFlLEdBQTJCLEVBQUUsQ0FBQTtRQUVsRCxNQUFNLGFBQWEsR0FBRyxJQUFJLG1CQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxXQUFXLENBQUMsQ0FBQTtRQUM1RixNQUFNLGNBQWMsR0FBRyxJQUFJLG1CQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxZQUFZLENBQUMsQ0FBQTtRQUU5RixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUM5QyxNQUFNLHVCQUF1QixHQUFHLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFBO1lBQzVELElBQUksQ0FBQyx1QkFBdUI7Z0JBQzFCLE9BQU07WUFFUixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLENBQUE7WUFDekQsTUFBTSxjQUFjLEdBQUcscUJBQXFCLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQzlELElBQUksY0FBYyxFQUFFO2dCQUNsQixNQUFNLFFBQVEsR0FBRyxHQUFHLGNBQWMsSUFBSSxjQUFjLEVBQUUsQ0FBQTtnQkFDdEQsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLFVBQVUsQ0FBQyxJQUFJLEtBQUssUUFBUSxHQUFHLENBQUMsQ0FBQTtnQkFDNUQsZUFBZSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUE7YUFDNUM7aUJBQU07Z0JBQ0wsZUFBZSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLGNBQWMsYUFBYSxDQUFBO2FBQ2xFO1lBQ0QsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLFVBQVUsQ0FBQyxJQUFJLFFBQVEsY0FBYyxhQUFhLENBQUMsQ0FBQTtRQUNsRixDQUFDLENBQUMsQ0FBQTtRQUVGLE1BQU0sU0FBUyxHQUFHLElBQUksbUJBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLGFBQWEsQ0FBQyxDQUFBO1FBQzFGLFNBQVMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtRQUNqQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQ3hCLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDeEIsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUN0QixNQUFNLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUU7WUFDM0QsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUN0QixTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksUUFBUSxJQUFJLENBQUMsQ0FBQTtZQUN4QyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQ3BCLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUE7WUFDdkIsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUMxQixDQUFDLENBQUMsQ0FBQTtRQUNGLFNBQVMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDeEIsU0FBUyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUMxQixTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ3pCLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUVoQixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsS0FBSyxFQUFFLG9CQUFvQixDQUFDLENBQUE7SUFDckcsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJ1xuaW1wb3J0IHtKc29uRmlsZSwgamF2YXNjcmlwdCwgUHJvamVjdCwgVGFza3MsIFNvdXJjZUNvZGUsIHR5cGVzY3JpcHQsIFlhbWxGaWxlfSBmcm9tICdwcm9qZW4nXG5pbXBvcnQge0xlcm5hUHJvamVjdE9wdGlvbnMsIExlcm5hVHlwZXNjcmlwdFByb2plY3RPcHRpb25zLCBUYXNrQ3VzdG9taXphdGlvbiwgVGFza0N1c3RvbWl6YXRpb25zfSBmcm9tICcuL3R5cGVzJ1xuXG5leHBvcnQgKiBmcm9tICcuL3R5cGVzJ1xuZXhwb3J0ICogYXMgdXRpbHMgZnJvbSAnLi91dGlscydcblxuZnVuY3Rpb24gZ2V0RG9jc0RpcmVjdG9yeShwcm9qZWN0OiBQcm9qZWN0KSB7XG4gIGNvbnN0IHJlc3VsdCA9IE9iamVjdC5lbnRyaWVzKHByb2plY3QpLmZpbmQoKFtrZXldKSA9PiBrZXkgPT09ICdkb2NzRGlyZWN0b3J5JylcbiAgcmV0dXJuIHJlc3VsdD8uWzFdLnJlcGxhY2UoL1xcLyQvLCAnJylcbn1cblxuZnVuY3Rpb24gZ2V0QXJ0aWZhY3RzRGlyZWN0b3J5KHByb2plY3Q6IFByb2plY3QpIHtcbiAgY29uc3QgcmVzdWx0ID0gT2JqZWN0LmVudHJpZXMocHJvamVjdCkuZmluZCgoW2tleV0pID0+IGtleSA9PT0gJ2FydGlmYWN0c0RpcmVjdG9yeScpXG4gIHJldHVybiByZXN1bHQ/LlsxXVxufVxuXG5jb25zdCBqc2lpVGFza1BhdHRlcm4gPSAvanNpaS1kb2NnZW4gLW8gKD88b3V0cHV0Pi4rKSQvaVxuXG5mdW5jdGlvbiBleHRyYWN0SnNpaURvY3NPdXRwdXQodGFza3M6IFRhc2tzKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QganNpaURvY1N0ZXAgPSB0YXNrcy50cnlGaW5kKCdkb2NnZW4nKT8uc3RlcHMuZmluZChzdGVwID0+IGpzaWlUYXNrUGF0dGVybi50ZXN0KHN0ZXAuZXhlYyA/PyAnJykpXG4gIGlmICghanNpaURvY1N0ZXAgfHwgIWpzaWlEb2NTdGVwLmV4ZWMpXG4gICAgcmV0dXJuXG5cbiAgY29uc3QgbWF0Y2ggPSBqc2lpRG9jU3RlcC5leGVjLm1hdGNoKGpzaWlUYXNrUGF0dGVybilcbiAgcmV0dXJuIG1hdGNoPy5ncm91cHM/Lm91dHB1dFxufVxuXG5mdW5jdGlvbiBhcHBlbmRXb3JrZmxvd0Jvb3RzdHJhcFN0ZXBzPFQgZXh0ZW5kcyBMZXJuYVByb2plY3RPcHRpb25zIHwgTGVybmFUeXBlc2NyaXB0UHJvamVjdE9wdGlvbnM+KG9wdGlvbnM6IFQpOiBUIHtcbiAgaWYgKCFvcHRpb25zLnNpbmNlTGFzdFJlbGVhc2UpXG4gICAgcmV0dXJuIG9wdGlvbnNcblxuICByZXR1cm4ge1xuICAgIC4uLm9wdGlvbnMsXG4gICAgd29ya2Zsb3dCb290c3RyYXBTdGVwczogW1xuICAgICAge1xuICAgICAgICBuYW1lOiAnRmV0Y2ggdGFncycsXG4gICAgICAgIHJ1bjogJ2lmIFsgJChnaXQgcmV2LXBhcnNlIC0taXMtc2hhbGxvdy1yZXBvc2l0b3J5KSAhPSBcImZhbHNlXCIgXSA7IHRoZW4gZ2l0IGZldGNoIG9yaWdpbiBtYWluIC0tdGFncyAtLXVuc2hhbGxvdzsgZmknLFxuICAgICAgICBpZjogJyR7eyBnaXRodWIud29ya2Zsb3cgPT0gXFwnYnVpbGRcXCcgfX0nLFxuICAgICAgfSxcbiAgICAgIC4uLm9wdGlvbnMud29ya2Zsb3dCb290c3RyYXBTdGVwcyA/PyBbXSxcbiAgICBdLFxuICB9XG59XG5cbmNvbnN0IGxvY2tlZFRhc2tOYW1lcyA9IFsnYnVpbGQnLCAndXBncmFkZScsICd1cGdyYWRlLXByb2plbicsICdjbG9iYmVyJywgJ3Bvc3QtdXBncmFkZSddXG5cbmludGVyZmFjZSBJTGVybmFQcm9qZWN0IHtcbiAgcmVhZG9ubHkgc2luY2VMYXN0UmVsZWFzZTogYm9vbGVhbjtcbiAgcmVhZG9ubHkgdXNlTng6IGJvb2xlYW47XG4gIHJlYWRvbmx5IGluZGVwZW5kZW50TW9kZTogYm9vbGVhbjtcbiAgcmVhZG9ubHkgdXNlV29ya3NwYWNlczogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZG9jc0RpcmVjdG9yeTogc3RyaW5nO1xuICByZWFkb25seSBkb2NnZW4/OiBib29sZWFuO1xuICByZWFkb25seSB0YXNrQ3VzdG9taXphdGlvbnM6IFRhc2tDdXN0b21pemF0aW9ucztcblxuICBjdXN0b21pemVUYXNrKHRhc2tOYW1lOiBzdHJpbmcsIGN1c3RvbWl6YXRpb246IFRhc2tDdXN0b21pemF0aW9uKTogdm9pZDtcbn1cblxuLyoqXG4gKiBAcGppZCBsZXJuYS1wcm9qZWN0XG4gKi9cbmV4cG9ydCBjbGFzcyBMZXJuYVByb2plY3QgZXh0ZW5kcyBqYXZhc2NyaXB0Lk5vZGVQcm9qZWN0IGltcGxlbWVudHMgSUxlcm5hUHJvamVjdCB7XG5cbiAgcHJpdmF0ZSBwcm9qZW5yY1RzOiBib29sZWFuXG5cbiAgcmVhZG9ubHkgZG9jc0RpcmVjdG9yeTogc3RyaW5nXG4gIHJlYWRvbmx5IGRvY2dlbjogYm9vbGVhblxuICByZWFkb25seSBzaW5jZUxhc3RSZWxlYXNlOiBib29sZWFuXG4gIHJlYWRvbmx5IHVzZU54OiBib29sZWFuXG4gIHJlYWRvbmx5IGluZGVwZW5kZW50TW9kZTogYm9vbGVhblxuICByZWFkb25seSB1c2VXb3Jrc3BhY2VzOiBib29sZWFuXG4gIHJlYWRvbmx5IHRhc2tDdXN0b21pemF0aW9uczogVGFza0N1c3RvbWl6YXRpb25zXG5cbiAgcHJpdmF0ZSByZWFkb25seSBmYWN0b3J5OiBMZXJuYVByb2plY3RGYWN0b3J5XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogTGVybmFQcm9qZWN0T3B0aW9ucykge1xuICAgIHN1cGVyKGFwcGVuZFdvcmtmbG93Qm9vdHN0cmFwU3RlcHMob3B0aW9ucykpXG5cbiAgICBpZiAob3B0aW9ucy5wcm9qZW5yY1RzKVxuICAgICAgdGhpcy5hZGREZXZEZXBzKCd0cy1ub2RlJywgJ3R5cGVzY3JpcHQnKVxuXG4gICAgdGhpcy5kb2NzRGlyZWN0b3J5ID0gb3B0aW9ucy5kb2NzRGlyZWN0b3J5ID8/ICdkb2NzJ1xuICAgIHRoaXMuZG9jZ2VuID0gb3B0aW9ucy5kb2NnZW4gPz8gZmFsc2VcbiAgICB0aGlzLnNpbmNlTGFzdFJlbGVhc2UgPSBvcHRpb25zLnNpbmNlTGFzdFJlbGVhc2UgPz8gZmFsc2VcbiAgICB0aGlzLnVzZU54ID0gb3B0aW9ucy51c2VOeCA/PyBmYWxzZVxuICAgIHRoaXMucHJvamVucmNUcyA9IG9wdGlvbnMucHJvamVucmNUcyA/PyBmYWxzZVxuICAgIHRoaXMuaW5kZXBlbmRlbnRNb2RlID0gb3B0aW9ucy5pbmRlcGVuZGVudE1vZGUgPz8gZmFsc2VcbiAgICB0aGlzLnVzZVdvcmtzcGFjZXMgPSBvcHRpb25zLnVzZVdvcmtzcGFjZXMgPz8gZmFsc2VcbiAgICB0aGlzLnRhc2tDdXN0b21pemF0aW9ucyA9IG9wdGlvbnMudGFza0N1c3RvbWl6YXRpb25zID8/IHt9XG5cbiAgICB0aGlzLmZhY3RvcnkgPSBuZXcgTGVybmFQcm9qZWN0RmFjdG9yeSh0aGlzKVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBjdXN0b21pemF0aW9uIGZvciB0aGUgc3BlY2lmaWVkIHRhc2tcbiAgICpcbiAgICogQHBhcmFtIHRhc2tOYW1lIE5hbWUgb2YgdGhlIHRhc2sgdG8gY3VzdG9taXplXG4gICAqIEBwYXJhbSBjdXN0b21pemF0aW9uIFRhc2tDdXN0b21pemF0aW9uIG9wdGlvbnNcbiAgICovXG4gIGN1c3RvbWl6ZVRhc2sodGFza05hbWU6IHN0cmluZywgY3VzdG9taXphdGlvbjogVGFza0N1c3RvbWl6YXRpb24pOiB2b2lkIHtcbiAgICB0aGlzLnRhc2tDdXN0b21pemF0aW9uc1t0YXNrTmFtZV0gPSBjdXN0b21pemF0aW9uXG4gIH1cblxuICBwcmVTeW50aGVzaXplKCkge1xuICAgIHN1cGVyLnByZVN5bnRoZXNpemUoKVxuICAgIGNvbnN0IHByb2plbkNvbW1hbmQgPSB0aGlzLnByb2plbnJjVHMgPyAndHMtbm9kZSAtLXNraXAtcHJvamVjdCAucHJvamVucmMudHMnIDogJ25vZGUgLnByb2plbnJjLmpzJ1xuICAgIGNvbnN0IHtkZWZhdWx0VGFza30gPSB0aGlzXG4gICAgaWYgKCFkZWZhdWx0VGFzaylcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ291bGQgbm90IGZpbmQgZGVmYXVsdCB0YXNrJylcbiAgICBkZWZhdWx0VGFzay5yZXNldChwcm9qZW5Db21tYW5kKVxuXG4gICAgdGhpcy5mYWN0b3J5LmJ1aWxkKClcbiAgfVxufVxuXG4vKipcbiAqIEBwamlkIGxlcm5hLXRzLXByb2plY3RcbiAqL1xuZXhwb3J0IGNsYXNzIExlcm5hVHlwZXNjcmlwdFByb2plY3QgZXh0ZW5kcyB0eXBlc2NyaXB0LlR5cGVTY3JpcHRQcm9qZWN0IGltcGxlbWVudHMgSUxlcm5hUHJvamVjdCB7XG4gIHJlYWRvbmx5IHNpbmNlTGFzdFJlbGVhc2U6IGJvb2xlYW5cbiAgcmVhZG9ubHkgdXNlTng6IGJvb2xlYW5cbiAgcmVhZG9ubHkgaW5kZXBlbmRlbnRNb2RlOiBib29sZWFuXG4gIHJlYWRvbmx5IHVzZVdvcmtzcGFjZXM6IGJvb2xlYW5cbiAgcmVhZG9ubHkgdGFza0N1c3RvbWl6YXRpb25zOiBUYXNrQ3VzdG9taXphdGlvbnNcblxuICBwcml2YXRlIHJlYWRvbmx5IGZhY3Rvcnk6IExlcm5hUHJvamVjdEZhY3RvcnlcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBMZXJuYVR5cGVzY3JpcHRQcm9qZWN0T3B0aW9ucykge1xuICAgIHN1cGVyKGFwcGVuZFdvcmtmbG93Qm9vdHN0cmFwU3RlcHMob3B0aW9ucykpXG5cbiAgICB0aGlzLnNpbmNlTGFzdFJlbGVhc2UgPSBvcHRpb25zLnNpbmNlTGFzdFJlbGVhc2UgPz8gZmFsc2VcbiAgICB0aGlzLnVzZU54ID0gb3B0aW9ucy51c2VOeCA/PyBmYWxzZVxuICAgIHRoaXMuaW5kZXBlbmRlbnRNb2RlID0gb3B0aW9ucy5pbmRlcGVuZGVudE1vZGUgPz8gZmFsc2VcbiAgICB0aGlzLnVzZVdvcmtzcGFjZXMgPSBvcHRpb25zLnVzZVdvcmtzcGFjZXMgPz8gZmFsc2VcbiAgICB0aGlzLnRhc2tDdXN0b21pemF0aW9ucyA9IG9wdGlvbnMudGFza0N1c3RvbWl6YXRpb25zID8/IHt9XG5cbiAgICBpZiAoIShvcHRpb25zLmhhc1Jvb3RTb3VyY2VDb2RlID8/IGZhbHNlKSlcbiAgICAgIHRoaXMudGFza3MudHJ5RmluZCgnY29tcGlsZScpPy5yZXNldCgpXG5cbiAgICB0aGlzLnRhc2tzLnRyeUZpbmQoJ2RvY2dlbicpPy5yZXNldCgpXG5cbiAgICB0aGlzLmZhY3RvcnkgPSBuZXcgTGVybmFQcm9qZWN0RmFjdG9yeSh0aGlzKVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBjdXN0b21pemF0aW9uIGZvciB0aGUgc3BlY2lmaWVkIHRhc2tcbiAgICpcbiAgICogQHBhcmFtIHRhc2tOYW1lIE5hbWUgb2YgdGhlIHRhc2sgdG8gY3VzdG9taXplXG4gICAqIEBwYXJhbSBjdXN0b21pemF0aW9uIFRhc2tDdXN0b21pemF0aW9uIG9wdGlvbnNcbiAgICovXG4gIGN1c3RvbWl6ZVRhc2sodGFza05hbWU6IHN0cmluZywgY3VzdG9taXphdGlvbjogVGFza0N1c3RvbWl6YXRpb24pOiB2b2lkIHtcbiAgICB0aGlzLnRhc2tDdXN0b21pemF0aW9uc1t0YXNrTmFtZV0gPSBjdXN0b21pemF0aW9uXG4gIH1cblxuICBwcmVTeW50aGVzaXplKCkge1xuICAgIHN1cGVyLnByZVN5bnRoZXNpemUoKVxuICAgIHRoaXMuZmFjdG9yeS5idWlsZCgpXG4gIH1cbn1cblxuY2xhc3MgTGVybmFQcm9qZWN0RmFjdG9yeSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcHJvamVjdDogSUxlcm5hUHJvamVjdCAmIGphdmFzY3JpcHQuTm9kZVByb2plY3QpIHtcbiAgICBwcm9qZWN0LmFkZERldkRlcHMoJ2xlcm5hLXByb2plbicsICdsZXJuYScpXG4gIH1cblxuICBidWlsZCgpIHtcbiAgICB0aGlzLnByb2plY3QucGFja2FnZVRhc2sucmVzZXQoYG1rZGlyIC1wICR7dGhpcy5wcm9qZWN0LmFydGlmYWN0c0phdmFzY3JpcHREaXJlY3Rvcnl9YClcbiAgICB0aGlzLnByb2plY3QucHJlQ29tcGlsZVRhc2suZXhlYyhgbGVybmEtcHJvamVuIGNsZWFuLWRpc3QgJHt0aGlzLnByb2plY3QuYXJ0aWZhY3RzRGlyZWN0b3J5fWApXG5cbiAgICB0aGlzLmFwcGVuZExlcm5hQ29tbWFuZHMoKVxuICAgIHRoaXMuYWRkQ3Jvc3NMaW5rcygpXG4gICAgdGhpcy51cGRhdGVTdWJQcm9qZWN0cygpXG4gICAgdGhpcy5hZGREb2N1bWVudHNJbmRleCgpXG4gIH1cblxuICBwcml2YXRlIGdldFN1YlByb2plY3RQYXRoKHN1YlByb2plY3Q6IFByb2plY3QpIHtcbiAgICByZXR1cm4gcGF0aC5yZWxhdGl2ZSh0aGlzLnByb2plY3Qub3V0ZGlyLCBzdWJQcm9qZWN0Lm91dGRpcilcbiAgfVxuXG4gIHByaXZhdGUgYWRkQ3Jvc3NMaW5rcygpIHtcblxuICAgIGNvbnN0IGxlcm5hQ29uZmlnOiBhbnkgPSB7XG4gICAgICB1c2VOeDogdGhpcy5wcm9qZWN0LnVzZU54LFxuICAgICAgdmVyc2lvbjogdGhpcy5wcm9qZWN0LmluZGVwZW5kZW50TW9kZSA/ICdpbmRlcGVuZGVudCcgOiAnMC4wLjAnLFxuICAgIH1cblxuICAgIGNvbnN0IHBhY2thZ2VzID0gdGhpcy5wcm9qZWN0LnN1YnByb2plY3RzLm1hcChzdWJQcm9qZWN0ID0+IHRoaXMuZ2V0U3ViUHJvamVjdFBhdGgoc3ViUHJvamVjdCkpXG5cbiAgICBpZiAodGhpcy5wcm9qZWN0LnVzZVdvcmtzcGFjZXMpIHtcbiAgICAgIGlmICh0aGlzLnByb2plY3QucGFja2FnZU1hbmFnZXIgPT09IGphdmFzY3JpcHQuTm9kZVBhY2thZ2VNYW5hZ2VyLlBOUE0pXG4gICAgICAgIG5ldyBZYW1sRmlsZSh0aGlzLnByb2plY3QsICdwbnBtLXdvcmtzcGFjZS55YW1sJywge1xuICAgICAgICAgIG9iajoge1xuICAgICAgICAgICAgcGFja2FnZXMsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgIHRoaXMucHJvamVjdC5wYWNrYWdlLmFkZEZpZWxkKCd3b3Jrc3BhY2VzJywgcGFja2FnZXMpXG4gICAgfSBlbHNlIHtsZXJuYUNvbmZpZy5wYWNrYWdlcyA9IHBhY2thZ2VzfVxuXG5cbiAgICBuZXcgSnNvbkZpbGUodGhpcy5wcm9qZWN0LCAnbGVybmEuanNvbicsIHtcbiAgICAgIG9iajogbGVybmFDb25maWcsXG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgYXBwZW5kTGVybmFDb21tYW5kcygpIHtcbiAgICBjb25zdCB1cGdyYWRlVGFza05hbWUgPSAndXBncmFkZSdcbiAgICBjb25zdCBwb3N0VXBncmFkZVRhc2tOYW1lID0gJ3Bvc3QtdXBncmFkZSdcbiAgICBjb25zdCBwb3N0VXBncmFkZVRhc2sgPSB0aGlzLnByb2plY3QudGFza3MudHJ5RmluZChwb3N0VXBncmFkZVRhc2tOYW1lKVxuICAgIHBvc3RVcGdyYWRlVGFzaz8ucHJlcGVuZEV4ZWModGhpcy5nZXRMZXJuYUNvbW1hbmQodXBncmFkZVRhc2tOYW1lLCB7c2luY2VMYXN0UmVsZWFzZTogZmFsc2V9KSlcbiAgICBwb3N0VXBncmFkZVRhc2s/LmV4ZWMoJ25weCBwcm9qZW4nKVxuXG4gICAgdGhpcy5wcm9qZWN0LnRhc2tzLmFsbFxuICAgICAgLmZvckVhY2godGFzayA9PiB7XG4gICAgICAgIGNvbnN0IGN1c3RvbWl6YXRpb24gPSB0aGlzLnByb2plY3QudGFza0N1c3RvbWl6YXRpb25zW3Rhc2submFtZV1cbiAgICAgICAgY29uc3QgYWRkTGVybmFTdGVwID0gY3VzdG9taXphdGlvbj8uYWRkTGVybmFTdGVwID8/IHRydWVcblxuICAgICAgICBpZiAobG9ja2VkVGFza05hbWVzLmluY2x1ZGVzKHRhc2submFtZSkgfHwgIWFkZExlcm5hU3RlcClcbiAgICAgICAgICByZXR1cm5cblxuICAgICAgICB0YXNrLmV4ZWModGhpcy5nZXRMZXJuYUNvbW1hbmQodGFzay5uYW1lLCBjdXN0b21pemF0aW9uKSlcbiAgICAgIH0pXG4gIH1cblxuICBwcml2YXRlIGdldExlcm5hQ29tbWFuZCh0YXNrTmFtZTogc3RyaW5nLCBjdXN0b21pemF0aW9uPzogVGFza0N1c3RvbWl6YXRpb24pIHtcbiAgICBjb25zdCBtYWluQ29tbWFuZCA9IGBsZXJuYSBydW4gJHt0YXNrTmFtZX0gLS1zdHJlYW1gXG4gICAgY29uc3QgdXNlU2luY2VGbGFnID0gY3VzdG9taXphdGlvbj8uc2luY2VMYXN0UmVsZWFzZSA/PyB0aGlzLnByb2plY3Quc2luY2VMYXN0UmVsZWFzZVxuXG4gICAgY29uc3QgaW5jbHVkZVBhdHRlcm5zID0gY3VzdG9taXphdGlvbj8uaW5jbHVkZSA/PyBbXVxuICAgIGNvbnN0IGV4Y2x1ZGVQYXR0ZXJucyA9IGN1c3RvbWl6YXRpb24/LmV4Y2x1ZGUgPz8gW11cblxuICAgIGNvbnN0IHNjb3BlRmxhZ3MgPSBpbmNsdWRlUGF0dGVybnMubWFwKChnbG9iKSA9PiBgIC0tc2NvcGUgJHtnbG9ifWApLmpvaW4oJycpXG4gICAgY29uc3QgaWdub3JlRmxhZ3MgPSBleGNsdWRlUGF0dGVybnMubWFwKChnbG9iKSA9PiBgIC0taWdub3JlICR7Z2xvYn1gKS5qb2luKCcnKVxuXG5cbiAgICBjb25zdCBwb3N0Q29tbWFuZCA9IHVzZVNpbmNlRmxhZyA/ICcgLS1zaW5jZSAkKGdpdCBkZXNjcmliZSAtLWFiYnJldj0wIC0tdGFncyAtLW1hdGNoIFwidipcIiknIDogJydcbiAgICByZXR1cm4gYCR7bWFpbkNvbW1hbmR9JHtwb3N0Q29tbWFuZH0ke3Njb3BlRmxhZ3N9JHtpZ25vcmVGbGFnc31gXG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVN1YlByb2plY3RzKCkge1xuICAgIGNvbnN0IGJ1bXBUYXNrID0gdGhpcy5wcm9qZWN0LnRhc2tzLnRyeUZpbmQoJ2J1bXAnKVxuICAgIGNvbnN0IHVuYnVtcFRhc2sgPSB0aGlzLnByb2plY3QudGFza3MudHJ5RmluZCgndW5idW1wJylcblxuICAgIHRoaXMucHJvamVjdC5zdWJwcm9qZWN0cy5mb3JFYWNoKChzdWJQcm9qZWN0KSA9PiB7XG4gICAgICBjb25zdCBzdWJQcm9qZWN0RG9jc0RpcmVjdG9yeSA9IGdldERvY3NEaXJlY3Rvcnkoc3ViUHJvamVjdClcbiAgICAgIGNvbnN0IHN1YlByb2plY3RQYXRoID0gdGhpcy5nZXRTdWJQcm9qZWN0UGF0aChzdWJQcm9qZWN0KVxuICAgICAgaWYgKHRoaXMucHJvamVjdC5kb2NnZW4gJiYgc3ViUHJvamVjdERvY3NEaXJlY3RvcnkpXG4gICAgICAgIHRoaXMucHJvamVjdC5wb3N0Q29tcGlsZVRhc2suZXhlYyhgbGVybmEtcHJvamVuIG1vdmUtZG9jcyAke3RoaXMucHJvamVjdC5kb2NzRGlyZWN0b3J5fSAke3N1YlByb2plY3RQYXRofSAke3N1YlByb2plY3REb2NzRGlyZWN0b3J5fWApXG5cbiAgICAgIGNvbnN0IHBhY2thZ2VBbGxUYXNrID0gc3ViUHJvamVjdC50YXNrcy50cnlGaW5kKCdwYWNrYWdlLWFsbCcpXG5cbiAgICAgIGlmIChwYWNrYWdlQWxsVGFzaylcbiAgICAgICAgc3ViUHJvamVjdC5wYWNrYWdlVGFzay5zcGF3bihwYWNrYWdlQWxsVGFzaylcblxuICAgICAgY29uc3QgYXJ0aWZhY3RzRGlyZWN0b3J5ID0gZ2V0QXJ0aWZhY3RzRGlyZWN0b3J5KHN1YlByb2plY3QpXG5cbiAgICAgIHRoaXMucHJvamVjdC5wYWNrYWdlVGFzay5leGVjKGBsZXJuYS1wcm9qZW4gY29weS1kaXN0ICR7c3ViUHJvamVjdFBhdGh9LyR7YXJ0aWZhY3RzRGlyZWN0b3J5fSAke3RoaXMucHJvamVjdC5hcnRpZmFjdHNEaXJlY3Rvcnl9YClcblxuICAgICAgc3ViUHJvamVjdC5kZWZhdWx0VGFzaz8ucmVzZXQoKVxuXG4gICAgICBjb25zdCBidW1wRW52cyA9IHtcbiAgICAgICAgT1VURklMRTogJ3BhY2thZ2UuanNvbicsXG4gICAgICAgIENIQU5HRUxPRzogYCR7YXJ0aWZhY3RzRGlyZWN0b3J5fS9jaGFuZ2Vsb2cubWRgLFxuICAgICAgICBCVU1QRklMRTogYCR7YXJ0aWZhY3RzRGlyZWN0b3J5fS92ZXJzaW9uLnR4dGAsXG4gICAgICAgIFJFTEVBU0VUQUc6IGAke2FydGlmYWN0c0RpcmVjdG9yeX0vcmVsZWFzZXRhZy50eHRgLFxuICAgICAgICBSRUxFQVNFX1RBR19QUkVGSVg6ICcnLFxuICAgICAgfVxuXG4gICAgICBpZiAoYnVtcFRhc2sgJiYgIXN1YlByb2plY3QudGFza3MudHJ5RmluZCgnYnVtcCcpKSB7XG4gICAgICAgIGNvbnN0IHN1YkJ1bXBUYXNrID0gc3ViUHJvamVjdC5hZGRUYXNrKGJ1bXBUYXNrLm5hbWUsIHtcbiAgICAgICAgICBkZXNjcmlwdGlvbjogYnVtcFRhc2suZGVzY3JpcHRpb24sXG4gICAgICAgICAgY29uZGl0aW9uOiBidW1wVGFzay5jb25kaXRpb24sXG4gICAgICAgICAgZW52OiBidW1wRW52cyxcbiAgICAgICAgfSlcbiAgICAgICAgc3ViQnVtcFRhc2suYnVpbHRpbigncmVsZWFzZS9idW1wLXZlcnNpb24nKVxuICAgICAgfVxuXG4gICAgICBpZiAodW5idW1wVGFzayAmJiAhc3ViUHJvamVjdC50YXNrcy50cnlGaW5kKCd1bmJ1bXAnKSkge1xuICAgICAgICBjb25zdCBzdWJCdW1wVGFzayA9IHN1YlByb2plY3QuYWRkVGFzayh1bmJ1bXBUYXNrLm5hbWUsIHtcbiAgICAgICAgICBkZXNjcmlwdGlvbjogdW5idW1wVGFzay5kZXNjcmlwdGlvbixcbiAgICAgICAgICBjb25kaXRpb246IHVuYnVtcFRhc2suY29uZGl0aW9uLFxuICAgICAgICAgIGVudjogYnVtcEVudnMsXG4gICAgICAgIH0pXG4gICAgICAgIHN1YkJ1bXBUYXNrLmJ1aWx0aW4oJ3JlbGVhc2UvcmVzZXQtdmVyc2lvbicpXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgYWRkRG9jdW1lbnRzSW5kZXgoKSB7XG4gICAgaWYgKCF0aGlzLnByb2plY3QuZG9jZ2VuKVxuICAgICAgcmV0dXJuXG5cbiAgICBjb25zdCBzdWJQcm9qZWN0c0RvY3M6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fVxuXG4gICAgY29uc3QgaW5kZXhNYXJrZG93biA9IG5ldyBTb3VyY2VDb2RlKHRoaXMucHJvamVjdCwgYCR7dGhpcy5wcm9qZWN0LmRvY3NEaXJlY3Rvcnl9L2luZGV4Lm1kYClcbiAgICBjb25zdCByZWFkbWVNYXJrZG93biA9IG5ldyBTb3VyY2VDb2RlKHRoaXMucHJvamVjdCwgYCR7dGhpcy5wcm9qZWN0LmRvY3NEaXJlY3Rvcnl9L1JFQURNRS5tZGApXG5cbiAgICB0aGlzLnByb2plY3Quc3VicHJvamVjdHMuZm9yRWFjaCgoc3ViUHJvamVjdCkgPT4ge1xuICAgICAgY29uc3Qgc3ViUHJvamVjdERvY3NEaXJlY3RvcnkgPSBnZXREb2NzRGlyZWN0b3J5KHN1YlByb2plY3QpXG4gICAgICBpZiAoIXN1YlByb2plY3REb2NzRGlyZWN0b3J5KVxuICAgICAgICByZXR1cm5cblxuICAgICAgY29uc3Qgc3ViUHJvamVjdFBhdGggPSB0aGlzLmdldFN1YlByb2plY3RQYXRoKHN1YlByb2plY3QpXG4gICAgICBjb25zdCBqc2lpRG9jc091dHB1dCA9IGV4dHJhY3RKc2lpRG9jc091dHB1dChzdWJQcm9qZWN0LnRhc2tzKVxuICAgICAgaWYgKGpzaWlEb2NzT3V0cHV0KSB7XG4gICAgICAgIGNvbnN0IGRvY3NQYXRoID0gYCR7c3ViUHJvamVjdFBhdGh9LyR7anNpaURvY3NPdXRwdXR9YFxuICAgICAgICBpbmRleE1hcmtkb3duLmxpbmUoYC0gIyMgWyR7c3ViUHJvamVjdC5uYW1lfV0oJHtkb2NzUGF0aH0pYClcbiAgICAgICAgc3ViUHJvamVjdHNEb2NzW3N1YlByb2plY3QubmFtZV0gPSBkb2NzUGF0aFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3ViUHJvamVjdHNEb2NzW3N1YlByb2plY3QubmFtZV0gPSBgJHtzdWJQcm9qZWN0UGF0aH0vaW5kZXguaHRtbGBcbiAgICAgIH1cbiAgICAgIHJlYWRtZU1hcmtkb3duLmxpbmUoYC0gIyMgWyR7c3ViUHJvamVjdC5uYW1lfV0oLi4vJHtzdWJQcm9qZWN0UGF0aH0vUkVBRE1FLm1kKWApXG4gICAgfSlcblxuICAgIGNvbnN0IGluZGV4SHRtbCA9IG5ldyBTb3VyY2VDb2RlKHRoaXMucHJvamVjdCwgYCR7dGhpcy5wcm9qZWN0LmRvY3NEaXJlY3Rvcnl9L2luZGV4Lmh0bWxgKVxuICAgIGluZGV4SHRtbC5saW5lKCc8IURPQ1RZUEUgaHRtbD4nKVxuICAgIGluZGV4SHRtbC5saW5lKCc8aHRtbD4nKVxuICAgIGluZGV4SHRtbC5vcGVuKCc8Ym9keT4nKVxuICAgIGluZGV4SHRtbC5vcGVuKCc8dWw+JylcbiAgICBPYmplY3QuZW50cmllcyhzdWJQcm9qZWN0c0RvY3MpLmZvckVhY2goKFtuYW1lLCBkb2NzUGF0aF0pID0+IHtcbiAgICAgIGluZGV4SHRtbC5vcGVuKCc8bGk+JylcbiAgICAgIGluZGV4SHRtbC5vcGVuKGA8YSBocmVmPVwiJHtkb2NzUGF0aH1cIj5gKVxuICAgICAgaW5kZXhIdG1sLmxpbmUobmFtZSlcbiAgICAgIGluZGV4SHRtbC5jbG9zZSgnPC9hPicpXG4gICAgICBpbmRleEh0bWwuY2xvc2UoJzwvbGk+JylcbiAgICB9KVxuICAgIGluZGV4SHRtbC5jbG9zZSgnPC91bD4nKVxuICAgIGluZGV4SHRtbC5jbG9zZSgnPC9ib2R5PicpXG4gICAgaW5kZXhIdG1sLmxpbmUoJzwvaHRtbD4nKVxuICAgIGluZGV4SHRtbC5saW5lKClcblxuICAgIHRoaXMucHJvamVjdC5naXRhdHRyaWJ1dGVzLmFkZEF0dHJpYnV0ZXMoYC8ke3RoaXMucHJvamVjdC5kb2NzRGlyZWN0b3J5fS8qKmAsICdsaW5ndWlzdC1nZW5lcmF0ZWQnKVxuICB9XG59Il19
272
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZCQUE0QjtBQUM1QixtQ0FBNkY7QUFHN0YsMENBQXVCO0FBQ3ZCLG1DQUFnQztBQUVoQyxTQUFTLGdCQUFnQixDQUFDLE9BQWdCO0lBQ3hDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLGVBQWUsQ0FBQyxDQUFBO0lBQy9FLE9BQU8sTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTtBQUN2QyxDQUFDO0FBRUQsU0FBUyxxQkFBcUIsQ0FBQyxPQUFnQjtJQUM3QyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxvQkFBb0IsQ0FBQyxDQUFBO0lBQ3BGLE9BQU8sTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDcEIsQ0FBQztBQUVELE1BQU0sZUFBZSxHQUFHLGdDQUFnQyxDQUFBO0FBRXhELFNBQVMscUJBQXFCLENBQUMsS0FBWTtJQUN6QyxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUN0RyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUk7UUFDbkMsT0FBTTtJQUVSLE1B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QUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUN0QixTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksUUFBUSxJQUFJLENBQUMsQ0FBQTtZQUN4QyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQ3BCLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUE7WUFDdkIsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUMxQixDQUFDLENBQUMsQ0FBQTtRQUNGLFNBQVMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDeEIsU0FBUyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUMxQixTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ3pCLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUVoQixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsS0FBSyxFQUFFLG9CQUFvQixDQUFDLENBQUE7SUFDckcsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJ1xuaW1wb3J0IHtKc29uRmlsZSwgamF2YXNjcmlwdCwgUHJvamVjdCwgVGFza3MsIFNvdXJjZUNvZGUsIHR5cGVzY3JpcHQsIFlhbWxGaWxlfSBmcm9tICdwcm9qZW4nXG5pbXBvcnQge0xlcm5hUHJvamVjdE9wdGlvbnMsIExlcm5hVHlwZXNjcmlwdFByb2plY3RPcHRpb25zLCBUYXNrQ3VzdG9taXphdGlvbiwgVGFza0N1c3RvbWl6YXRpb25zfSBmcm9tICcuL3R5cGVzJ1xuXG5leHBvcnQgKiBmcm9tICcuL3R5cGVzJ1xuZXhwb3J0ICogYXMgdXRpbHMgZnJvbSAnLi91dGlscydcblxuZnVuY3Rpb24gZ2V0RG9jc0RpcmVjdG9yeShwcm9qZWN0OiBQcm9qZWN0KSB7XG4gIGNvbnN0IHJlc3VsdCA9IE9iamVjdC5lbnRyaWVzKHByb2plY3QpLmZpbmQoKFtrZXldKSA9PiBrZXkgPT09ICdkb2NzRGlyZWN0b3J5JylcbiAgcmV0dXJuIHJlc3VsdD8uWzFdLnJlcGxhY2UoL1xcLyQvLCAnJylcbn1cblxuZnVuY3Rpb24gZ2V0QXJ0aWZhY3RzRGlyZWN0b3J5KHByb2plY3Q6IFByb2plY3QpIHtcbiAgY29uc3QgcmVzdWx0ID0gT2JqZWN0LmVudHJpZXMocHJvamVjdCkuZmluZCgoW2tleV0pID0+IGtleSA9PT0gJ2FydGlmYWN0c0RpcmVjdG9yeScpXG4gIHJldHVybiByZXN1bHQ/LlsxXVxufVxuXG5jb25zdCBqc2lpVGFza1BhdHRlcm4gPSAvanNpaS1kb2NnZW4gLW8gKD88b3V0cHV0Pi4rKSQvaVxuXG5mdW5jdGlvbiBleHRyYWN0SnNpaURvY3NPdXRwdXQodGFza3M6IFRhc2tzKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QganNpaURvY1N0ZXAgPSB0YXNrcy50cnlGaW5kKCdkb2NnZW4nKT8uc3RlcHMuZmluZChzdGVwID0+IGpzaWlUYXNrUGF0dGVybi50ZXN0KHN0ZXAuZXhlYyA/PyAnJykpXG4gIGlmICghanNpaURvY1N0ZXAgfHwgIWpzaWlEb2NTdGVwLmV4ZWMpXG4gICAgcmV0dXJuXG5cbiAgY29uc3QgbWF0Y2ggPSBqc2lpRG9jU3RlcC5leGVjLm1hdGNoKGpzaWlUYXNrUGF0dGVybilcbiAgcmV0dXJuIG1hdGNoPy5ncm91cHM/Lm91dHB1dFxufVxuXG5mdW5jdGlvbiBhcHBlbmRXb3JrZmxvd0Jvb3RzdHJhcFN0ZXBzPFQgZXh0ZW5kcyBMZXJuYVByb2plY3RPcHRpb25zIHwgTGVybmFUeXBlc2NyaXB0UHJvamVjdE9wdGlvbnM+KG9wdGlvbnM6IFQpOiBUIHtcbiAgaWYgKCFvcHRpb25zLnNpbmNlTGFzdFJlbGVhc2UpXG4gICAgcmV0dXJuIG9wdGlvbnNcblxuICByZXR1cm4ge1xuICAgIC4uLm9wdGlvbnMsXG4gICAgd29ya2Zsb3dCb290c3RyYXBTdGVwczogW1xuICAgICAge1xuICAgICAgICBuYW1lOiAnRmV0Y2ggdGFncycsXG4gICAgICAgIHJ1bjogJ2lmIFsgJChnaXQgcmV2LXBhcnNlIC0taXMtc2hhbGxvdy1yZXBvc2l0b3J5KSAhPSBcImZhbHNlXCIgXSA7IHRoZW4gZ2l0IGZldGNoIG9yaWdpbiBtYWluIC0tdGFncyAtLXVuc2hhbGxvdzsgZmknLFxuICAgICAgICBpZjogJyR7eyBnaXRodWIud29ya2Zsb3cgPT0gXFwnYnVpbGRcXCcgfX0nLFxuICAgICAgfSxcbiAgICAgIC4uLm9wdGlvbnMud29ya2Zsb3dCb290c3RyYXBTdGVwcyA/PyBbXSxcbiAgICBdLFxuICB9XG59XG5cbmNvbnN0IGxvY2tlZFRhc2tOYW1lcyA9IFsnYnVpbGQnLCAndXBncmFkZScsICd1cGdyYWRlLXByb2plbicsICdjbG9iYmVyJywgJ3Bvc3QtdXBncmFkZSddXG5cbmludGVyZmFjZSBJTGVybmFQcm9qZWN0IHtcbiAgcmVhZG9ubHkgc2luY2VMYXN0UmVsZWFzZTogYm9vbGVhbjtcbiAgcmVhZG9ubHkgdXNlTng6IGJvb2xlYW47XG4gIHJlYWRvbmx5IGluZGVwZW5kZW50TW9kZTogYm9vbGVhbjtcbiAgcmVhZG9ubHkgdXNlV29ya3NwYWNlczogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZG9jc0RpcmVjdG9yeTogc3RyaW5nO1xuICByZWFkb25seSBkb2NnZW4/OiBib29sZWFuO1xuICByZWFkb25seSB0YXNrQ3VzdG9taXphdGlvbnM6IFRhc2tDdXN0b21pemF0aW9ucztcblxuICBjdXN0b21pemVUYXNrKHRhc2tOYW1lOiBzdHJpbmcsIGN1c3RvbWl6YXRpb246IFRhc2tDdXN0b21pemF0aW9uKTogdm9pZDtcbn1cblxuLyoqXG4gKiBAcGppZCBsZXJuYS1wcm9qZWN0XG4gKi9cbmV4cG9ydCBjbGFzcyBMZXJuYVByb2plY3QgZXh0ZW5kcyBqYXZhc2NyaXB0Lk5vZGVQcm9qZWN0IGltcGxlbWVudHMgSUxlcm5hUHJvamVjdCB7XG5cbiAgcHJpdmF0ZSBwcm9qZW5yY1RzOiBib29sZWFuXG5cbiAgcmVhZG9ubHkgZG9jc0RpcmVjdG9yeTogc3RyaW5nXG4gIHJlYWRvbmx5IGRvY2dlbjogYm9vbGVhblxuICByZWFkb25seSBzaW5jZUxhc3RSZWxlYXNlOiBib29sZWFuXG4gIHJlYWRvbmx5IHVzZU54OiBib29sZWFuXG4gIHJlYWRvbmx5IGluZGVwZW5kZW50TW9kZTogYm9vbGVhblxuICByZWFkb25seSB1c2VXb3Jrc3BhY2VzOiBib29sZWFuXG4gIHJlYWRvbmx5IHRhc2tDdXN0b21pemF0aW9uczogVGFza0N1c3RvbWl6YXRpb25zXG5cbiAgcHJpdmF0ZSByZWFkb25seSBmYWN0b3J5OiBMZXJuYVByb2plY3RGYWN0b3J5XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogTGVybmFQcm9qZWN0T3B0aW9ucykge1xuICAgIHN1cGVyKGFwcGVuZFdvcmtmbG93Qm9vdHN0cmFwU3RlcHMob3B0aW9ucykpXG5cbiAgICBpZiAob3B0aW9ucy5wcm9qZW5yY1RzKVxuICAgICAgdGhpcy5hZGREZXZEZXBzKCd0cy1ub2RlJywgJ3R5cGVzY3JpcHQnKVxuXG4gICAgdGhpcy5kb2NzRGlyZWN0b3J5ID0gb3B0aW9ucy5kb2NzRGlyZWN0b3J5ID8/ICdkb2NzJ1xuICAgIHRoaXMuZG9jZ2VuID0gb3B0aW9ucy5kb2NnZW4gPz8gZmFsc2VcbiAgICB0aGlzLnNpbmNlTGFzdFJlbGVhc2UgPSBvcHRpb25zLnNpbmNlTGFzdFJlbGVhc2UgPz8gZmFsc2VcbiAgICB0aGlzLnVzZU54ID0gb3B0aW9ucy51c2VOeCA/PyBmYWxzZVxuICAgIHRoaXMucHJvamVucmNUcyA9IG9wdGlvbnMucHJvamVucmNUcyA/PyBmYWxzZVxuICAgIHRoaXMuaW5kZXBlbmRlbnRNb2RlID0gb3B0aW9ucy5pbmRlcGVuZGVudE1vZGUgPz8gZmFsc2VcbiAgICB0aGlzLnVzZVdvcmtzcGFjZXMgPSBvcHRpb25zLnVzZVdvcmtzcGFjZXMgPz8gZmFsc2VcbiAgICB0aGlzLnRhc2tDdXN0b21pemF0aW9ucyA9IG9wdGlvbnMudGFza0N1c3RvbWl6YXRpb25zID8/IHt9XG5cbiAgICB0aGlzLmZhY3RvcnkgPSBuZXcgTGVybmFQcm9qZWN0RmFjdG9yeSh0aGlzKVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBjdXN0b21pemF0aW9uIGZvciB0aGUgc3BlY2lmaWVkIHRhc2tcbiAgICpcbiAgICogQHBhcmFtIHRhc2tOYW1lIE5hbWUgb2YgdGhlIHRhc2sgdG8gY3VzdG9taXplXG4gICAqIEBwYXJhbSBjdXN0b21pemF0aW9uIFRhc2tDdXN0b21pemF0aW9uIG9wdGlvbnNcbiAgICovXG4gIGN1c3RvbWl6ZVRhc2sodGFza05hbWU6IHN0cmluZywgY3VzdG9taXphdGlvbjogVGFza0N1c3RvbWl6YXRpb24pOiB2b2lkIHtcbiAgICB0aGlzLnRhc2tDdXN0b21pemF0aW9uc1t0YXNrTmFtZV0gPSBjdXN0b21pemF0aW9uXG4gIH1cblxuICBwcmVTeW50aGVzaXplKCkge1xuICAgIHN1cGVyLnByZVN5bnRoZXNpemUoKVxuICAgIGNvbnN0IHByb2plbkNvbW1hbmQgPSB0aGlzLnByb2plbnJjVHMgPyAndHMtbm9kZSAtLXNraXAtcHJvamVjdCAucHJvamVucmMudHMnIDogJ25vZGUgLnByb2plbnJjLmpzJ1xuICAgIGNvbnN0IHtkZWZhdWx0VGFza30gPSB0aGlzXG4gICAgaWYgKCFkZWZhdWx0VGFzaylcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ291bGQgbm90IGZpbmQgZGVmYXVsdCB0YXNrJylcbiAgICBkZWZhdWx0VGFzay5yZXNldChwcm9qZW5Db21tYW5kKVxuXG4gICAgdGhpcy5mYWN0b3J5LmJ1aWxkKClcbiAgfVxufVxuXG4vKipcbiAqIEBwamlkIGxlcm5hLXRzLXByb2plY3RcbiAqL1xuZXhwb3J0IGNsYXNzIExlcm5hVHlwZXNjcmlwdFByb2plY3QgZXh0ZW5kcyB0eXBlc2NyaXB0LlR5cGVTY3JpcHRQcm9qZWN0IGltcGxlbWVudHMgSUxlcm5hUHJvamVjdCB7XG4gIHJlYWRvbmx5IHNpbmNlTGFzdFJlbGVhc2U6IGJvb2xlYW5cbiAgcmVhZG9ubHkgdXNlTng6IGJvb2xlYW5cbiAgcmVhZG9ubHkgaW5kZXBlbmRlbnRNb2RlOiBib29sZWFuXG4gIHJlYWRvbmx5IHVzZVdvcmtzcGFjZXM6IGJvb2xlYW5cbiAgcmVhZG9ubHkgdGFza0N1c3RvbWl6YXRpb25zOiBUYXNrQ3VzdG9taXphdGlvbnNcblxuICBwcml2YXRlIHJlYWRvbmx5IGZhY3Rvcnk6IExlcm5hUHJvamVjdEZhY3RvcnlcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBMZXJuYVR5cGVzY3JpcHRQcm9qZWN0T3B0aW9ucykge1xuICAgIHN1cGVyKGFwcGVuZFdvcmtmbG93Qm9vdHN0cmFwU3RlcHMob3B0aW9ucykpXG5cbiAgICB0aGlzLnNpbmNlTGFzdFJlbGVhc2UgPSBvcHRpb25zLnNpbmNlTGFzdFJlbGVhc2UgPz8gZmFsc2VcbiAgICB0aGlzLnVzZU54ID0gb3B0aW9ucy51c2VOeCA/PyBmYWxzZVxuICAgIHRoaXMuaW5kZXBlbmRlbnRNb2RlID0gb3B0aW9ucy5pbmRlcGVuZGVudE1vZGUgPz8gZmFsc2VcbiAgICB0aGlzLnVzZVdvcmtzcGFjZXMgPSBvcHRpb25zLnVzZVdvcmtzcGFjZXMgPz8gZmFsc2VcbiAgICB0aGlzLnRhc2tDdXN0b21pemF0aW9ucyA9IG9wdGlvbnMudGFza0N1c3RvbWl6YXRpb25zID8/IHt9XG5cbiAgICBpZiAoIShvcHRpb25zLmhhc1Jvb3RTb3VyY2VDb2RlID8/IGZhbHNlKSlcbiAgICAgIHRoaXMudGFza3MudHJ5RmluZCgnY29tcGlsZScpPy5yZXNldCgpXG5cbiAgICB0aGlzLnRhc2tzLnRyeUZpbmQoJ2RvY2dlbicpPy5yZXNldCgpXG5cbiAgICB0aGlzLmZhY3RvcnkgPSBuZXcgTGVybmFQcm9qZWN0RmFjdG9yeSh0aGlzKVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBjdXN0b21pemF0aW9uIGZvciB0aGUgc3BlY2lmaWVkIHRhc2tcbiAgICpcbiAgICogQHBhcmFtIHRhc2tOYW1lIE5hbWUgb2YgdGhlIHRhc2sgdG8gY3VzdG9taXplXG4gICAqIEBwYXJhbSBjdXN0b21pemF0aW9uIFRhc2tDdXN0b21pemF0aW9uIG9wdGlvbnNcbiAgICovXG4gIGN1c3RvbWl6ZVRhc2sodGFza05hbWU6IHN0cmluZywgY3VzdG9taXphdGlvbjogVGFza0N1c3RvbWl6YXRpb24pOiB2b2lkIHtcbiAgICB0aGlzLnRhc2tDdXN0b21pemF0aW9uc1t0YXNrTmFtZV0gPSBjdXN0b21pemF0aW9uXG4gIH1cblxuICBwcmVTeW50aGVzaXplKCkge1xuICAgIHN1cGVyLnByZVN5bnRoZXNpemUoKVxuICAgIHRoaXMuZmFjdG9yeS5idWlsZCgpXG4gIH1cbn1cblxuY2xhc3MgTGVybmFQcm9qZWN0RmFjdG9yeSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcHJvamVjdDogSUxlcm5hUHJvamVjdCAmIGphdmFzY3JpcHQuTm9kZVByb2plY3QpIHtcbiAgICBwcm9qZWN0LmFkZERldkRlcHMoJ2xlcm5hLXByb2plbicsICdsZXJuYScpXG4gIH1cblxuICBidWlsZCgpIHtcbiAgICB0aGlzLnByb2plY3QucGFja2FnZVRhc2sucmVzZXQoYG1rZGlyIC1wICR7dGhpcy5wcm9qZWN0LmFydGlmYWN0c0phdmFzY3JpcHREaXJlY3Rvcnl9YClcbiAgICB0aGlzLnByb2plY3QucHJlQ29tcGlsZVRhc2suZXhlYyhgbGVybmEtcHJvamVuIGNsZWFuLWRpc3QgJHt0aGlzLnByb2plY3QuYXJ0aWZhY3RzRGlyZWN0b3J5fWApXG5cbiAgICB0aGlzLmFwcGVuZExlcm5hQ29tbWFuZHMoKVxuICAgIHRoaXMuYWRkQ3Jvc3NMaW5rcygpXG4gICAgdGhpcy51cGRhdGVTdWJQcm9qZWN0cygpXG4gICAgdGhpcy5hZGREb2N1bWVudHNJbmRleCgpXG4gIH1cblxuICBwcml2YXRlIGdldFN1YlByb2plY3RQYXRoKHN1YlByb2plY3Q6IFByb2plY3QpIHtcbiAgICByZXR1cm4gcGF0aC5yZWxhdGl2ZSh0aGlzLnByb2plY3Qub3V0ZGlyLCBzdWJQcm9qZWN0Lm91dGRpcilcbiAgfVxuXG4gIHByaXZhdGUgYWRkQ3Jvc3NMaW5rcygpIHtcblxuICAgIGNvbnN0IGxlcm5hQ29uZmlnOiBhbnkgPSB7XG4gICAgICB1c2VOeDogdGhpcy5wcm9qZWN0LnVzZU54LFxuICAgICAgdmVyc2lvbjogdGhpcy5wcm9qZWN0LmluZGVwZW5kZW50TW9kZSA/ICdpbmRlcGVuZGVudCcgOiAnMC4wLjAnLFxuICAgIH1cblxuICAgIGNvbnN0IHBhY2thZ2VzID0gdGhpcy5wcm9qZWN0LnN1YnByb2plY3RzLm1hcChzdWJQcm9qZWN0ID0+IHRoaXMuZ2V0U3ViUHJvamVjdFBhdGgoc3ViUHJvamVjdCkpXG5cbiAgICBpZiAodGhpcy5wcm9qZWN0LnVzZVdvcmtzcGFjZXMpIHtcbiAgICAgIGlmICh0aGlzLnByb2plY3QucGFja2FnZU1hbmFnZXIgPT09IGphdmFzY3JpcHQuTm9kZVBhY2thZ2VNYW5hZ2VyLlBOUE0pXG4gICAgICAgIG5ldyBZYW1sRmlsZSh0aGlzLnByb2plY3QsICdwbnBtLXdvcmtzcGFjZS55YW1sJywge1xuICAgICAgICAgIG9iajoge1xuICAgICAgICAgICAgcGFja2FnZXMsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgIHRoaXMucHJvamVjdC5wYWNrYWdlLmFkZEZpZWxkKCd3b3Jrc3BhY2VzJywgcGFja2FnZXMpXG4gICAgfSBlbHNlIHtsZXJuYUNvbmZpZy5wYWNrYWdlcyA9IHBhY2thZ2VzfVxuXG5cbiAgICBuZXcgSnNvbkZpbGUodGhpcy5wcm9qZWN0LCAnbGVybmEuanNvbicsIHtcbiAgICAgIG9iajogbGVybmFDb25maWcsXG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgYXBwZW5kTGVybmFDb21tYW5kcygpIHtcbiAgICBjb25zdCB1cGdyYWRlVGFza05hbWUgPSAndXBncmFkZSdcbiAgICBjb25zdCBwb3N0VXBncmFkZVRhc2tOYW1lID0gJ3Bvc3QtdXBncmFkZSdcbiAgICBjb25zdCBwb3N0VXBncmFkZVRhc2sgPSB0aGlzLnByb2plY3QudGFza3MudHJ5RmluZChwb3N0VXBncmFkZVRhc2tOYW1lKVxuICAgIHBvc3RVcGdyYWRlVGFzaz8ucHJlcGVuZEV4ZWModGhpcy5nZXRMZXJuYUNvbW1hbmQodXBncmFkZVRhc2tOYW1lLCB7c2luY2VMYXN0UmVsZWFzZTogZmFsc2V9KSlcbiAgICBwb3N0VXBncmFkZVRhc2s/LmV4ZWMoJ25weCBwcm9qZW4nKVxuXG4gICAgdGhpcy5wcm9qZWN0LnRhc2tzLmFsbFxuICAgICAgLmZvckVhY2godGFzayA9PiB7XG4gICAgICAgIGNvbnN0IGN1c3RvbWl6YXRpb24gPSB0aGlzLnByb2plY3QudGFza0N1c3RvbWl6YXRpb25zW3Rhc2submFtZV1cbiAgICAgICAgY29uc3QgYWRkTGVybmFTdGVwID0gY3VzdG9taXphdGlvbj8uYWRkTGVybmFTdGVwID8/IHRydWVcblxuICAgICAgICBpZiAobG9ja2VkVGFza05hbWVzLmluY2x1ZGVzKHRhc2submFtZSkgfHwgIWFkZExlcm5hU3RlcClcbiAgICAgICAgICByZXR1cm5cblxuICAgICAgICB0YXNrLmV4ZWModGhpcy5nZXRMZXJuYUNvbW1hbmQodGFzay5uYW1lLCBjdXN0b21pemF0aW9uKSlcbiAgICAgIH0pXG4gIH1cblxuICBwcml2YXRlIGdldExlcm5hQ29tbWFuZCh0YXNrTmFtZTogc3RyaW5nLCBjdXN0b21pemF0aW9uPzogVGFza0N1c3RvbWl6YXRpb24pIHtcbiAgICBjb25zdCBtYWluQ29tbWFuZCA9IGBsZXJuYSBydW4gJHt0YXNrTmFtZX0gLS1zdHJlYW1gXG4gICAgY29uc3QgdXNlU2luY2VGbGFnID0gY3VzdG9taXphdGlvbj8uc2luY2VMYXN0UmVsZWFzZSA/PyB0aGlzLnByb2plY3Quc2luY2VMYXN0UmVsZWFzZVxuXG4gICAgY29uc3QgaW5jbHVkZVBhdHRlcm5zID0gY3VzdG9taXphdGlvbj8uaW5jbHVkZSA/PyBbXVxuICAgIGNvbnN0IGV4Y2x1ZGVQYXR0ZXJucyA9IGN1c3RvbWl6YXRpb24/LmV4Y2x1ZGUgPz8gW11cblxuICAgIGNvbnN0IHNjb3BlRmxhZ3MgPSBpbmNsdWRlUGF0dGVybnMubWFwKChnbG9iKSA9PiBgIC0tc2NvcGUgJHtnbG9ifWApLmpvaW4oJycpXG4gICAgY29uc3QgaWdub3JlRmxhZ3MgPSBleGNsdWRlUGF0dGVybnMubWFwKChnbG9iKSA9PiBgIC0taWdub3JlICR7Z2xvYn1gKS5qb2luKCcnKVxuXG5cbiAgICBjb25zdCBwb3N0Q29tbWFuZCA9IHVzZVNpbmNlRmxhZyA/ICcgLS1zaW5jZSAkKGdpdCBkZXNjcmliZSAtLWFiYnJldj0wIC0tdGFncyAtLW1hdGNoIFwidipcIiknIDogJydcbiAgICByZXR1cm4gYCR7bWFpbkNvbW1hbmR9JHtwb3N0Q29tbWFuZH0ke3Njb3BlRmxhZ3N9JHtpZ25vcmVGbGFnc31gXG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVN1YlByb2plY3RzKCkge1xuICAgIGNvbnN0IGJ1bXBUYXNrID0gdGhpcy5wcm9qZWN0LnRhc2tzLnRyeUZpbmQoJ2J1bXAnKVxuICAgIGNvbnN0IHVuYnVtcFRhc2sgPSB0aGlzLnByb2plY3QudGFza3MudHJ5RmluZCgndW5idW1wJylcblxuICAgIHRoaXMucHJvamVjdC5zdWJwcm9qZWN0cy5mb3JFYWNoKChzdWJQcm9qZWN0KSA9PiB7XG4gICAgICBjb25zdCBzdWJQcm9qZWN0RG9jc0RpcmVjdG9yeSA9IGdldERvY3NEaXJlY3Rvcnkoc3ViUHJvamVjdClcbiAgICAgIGNvbnN0IHN1YlByb2plY3RQYXRoID0gdGhpcy5nZXRTdWJQcm9qZWN0UGF0aChzdWJQcm9qZWN0KVxuICAgICAgaWYgKHRoaXMucHJvamVjdC5kb2NnZW4gJiYgc3ViUHJvamVjdERvY3NEaXJlY3RvcnkpXG4gICAgICAgIHRoaXMucHJvamVjdC5wb3N0Q29tcGlsZVRhc2suZXhlYyhgbGVybmEtcHJvamVuIG1vdmUtZG9jcyAke3RoaXMucHJvamVjdC5kb2NzRGlyZWN0b3J5fSAke3N1YlByb2plY3RQYXRofSAke3N1YlByb2plY3REb2NzRGlyZWN0b3J5fWApXG5cbiAgICAgIGNvbnN0IHBhY2thZ2VBbGxUYXNrID0gc3ViUHJvamVjdC50YXNrcy50cnlGaW5kKCdwYWNrYWdlLWFsbCcpXG5cbiAgICAgIGlmIChwYWNrYWdlQWxsVGFzaylcbiAgICAgICAgc3ViUHJvamVjdC5wYWNrYWdlVGFzay5zcGF3bihwYWNrYWdlQWxsVGFzaylcblxuICAgICAgY29uc3QgYXJ0aWZhY3RzRGlyZWN0b3J5ID0gZ2V0QXJ0aWZhY3RzRGlyZWN0b3J5KHN1YlByb2plY3QpXG5cbiAgICAgIHRoaXMucHJvamVjdC5wYWNrYWdlVGFzay5leGVjKGBsZXJuYS1wcm9qZW4gY29weS1kaXN0ICR7c3ViUHJvamVjdFBhdGh9LyR7YXJ0aWZhY3RzRGlyZWN0b3J5fSAke3RoaXMucHJvamVjdC5hcnRpZmFjdHNEaXJlY3Rvcnl9YClcblxuICAgICAgc3ViUHJvamVjdC5kZWZhdWx0VGFzaz8ucmVzZXQoKVxuXG4gICAgICBjb25zdCBidW1wRW52cyA9IHtcbiAgICAgICAgT1VURklMRTogJ3BhY2thZ2UuanNvbicsXG4gICAgICAgIENIQU5HRUxPRzogYCR7YXJ0aWZhY3RzRGlyZWN0b3J5fS9jaGFuZ2Vsb2cubWRgLFxuICAgICAgICBCVU1QRklMRTogYCR7YXJ0aWZhY3RzRGlyZWN0b3J5fS92ZXJzaW9uLnR4dGAsXG4gICAgICAgIFJFTEVBU0VUQUc6IGAke2FydGlmYWN0c0RpcmVjdG9yeX0vcmVsZWFzZXRhZy50eHRgLFxuICAgICAgICBSRUxFQVNFX1RBR19QUkVGSVg6ICcnLFxuICAgICAgfVxuXG4gICAgICBpZiAoYnVtcFRhc2sgJiYgIXN1YlByb2plY3QudGFza3MudHJ5RmluZCgnYnVtcCcpKSB7XG4gICAgICAgIGNvbnN0IHN1YkJ1bXBUYXNrID0gc3ViUHJvamVjdC5hZGRUYXNrKGJ1bXBUYXNrLm5hbWUsIHtcbiAgICAgICAgICBkZXNjcmlwdGlvbjogYnVtcFRhc2suZGVzY3JpcHRpb24sXG4gICAgICAgICAgY29uZGl0aW9uOiBidW1wVGFzay5jb25kaXRpb24sXG4gICAgICAgICAgZW52OiBidW1wRW52cyxcbiAgICAgICAgfSlcbiAgICAgICAgc3ViQnVtcFRhc2suYnVpbHRpbigncmVsZWFzZS9idW1wLXZlcnNpb24nKVxuICAgICAgfVxuXG4gICAgICBpZiAodW5idW1wVGFzayAmJiAhc3ViUHJvamVjdC50YXNrcy50cnlGaW5kKCd1bmJ1bXAnKSkge1xuICAgICAgICBjb25zdCBzdWJCdW1wVGFzayA9IHN1YlByb2plY3QuYWRkVGFzayh1bmJ1bXBUYXNrLm5hbWUsIHtcbiAgICAgICAgICBkZXNjcmlwdGlvbjogdW5idW1wVGFzay5kZXNjcmlwdGlvbixcbiAgICAgICAgICBjb25kaXRpb246IHVuYnVtcFRhc2suY29uZGl0aW9uLFxuICAgICAgICAgIGVudjogYnVtcEVudnMsXG4gICAgICAgIH0pXG4gICAgICAgIHN1YkJ1bXBUYXNrLmJ1aWx0aW4oJ3JlbGVhc2UvcmVzZXQtdmVyc2lvbicpXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgYWRkRG9jdW1lbnRzSW5kZXgoKSB7XG4gICAgaWYgKCF0aGlzLnByb2plY3QuZG9jZ2VuKVxuICAgICAgcmV0dXJuXG5cbiAgICBjb25zdCBzdWJQcm9qZWN0c0RvY3M6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fVxuXG4gICAgY29uc3QgaW5kZXhNYXJrZG93biA9IG5ldyBTb3VyY2VDb2RlKHRoaXMucHJvamVjdCwgYCR7dGhpcy5wcm9qZWN0LmRvY3NEaXJlY3Rvcnl9L2luZGV4Lm1kYClcbiAgICBjb25zdCByZWFkbWVNYXJrZG93biA9IG5ldyBTb3VyY2VDb2RlKHRoaXMucHJvamVjdCwgYCR7dGhpcy5wcm9qZWN0LmRvY3NEaXJlY3Rvcnl9L1JFQURNRS5tZGApXG5cbiAgICB0aGlzLnByb2plY3Quc3VicHJvamVjdHMuZm9yRWFjaCgoc3ViUHJvamVjdCkgPT4ge1xuICAgICAgY29uc3Qgc3ViUHJvamVjdERvY3NEaXJlY3RvcnkgPSBnZXREb2NzRGlyZWN0b3J5KHN1YlByb2plY3QpXG4gICAgICBpZiAoIXN1YlByb2plY3REb2NzRGlyZWN0b3J5KVxuICAgICAgICByZXR1cm5cblxuICAgICAgY29uc3Qgc3ViUHJvamVjdFBhdGggPSB0aGlzLmdldFN1YlByb2plY3RQYXRoKHN1YlByb2plY3QpXG4gICAgICBjb25zdCBqc2lpRG9jc091dHB1dCA9IGV4dHJhY3RKc2lpRG9jc091dHB1dChzdWJQcm9qZWN0LnRhc2tzKVxuICAgICAgaWYgKGpzaWlEb2NzT3V0cHV0KSB7XG4gICAgICAgIGNvbnN0IGRvY3NQYXRoID0gYCR7c3ViUHJvamVjdFBhdGh9LyR7anNpaURvY3NPdXRwdXR9YFxuICAgICAgICBpbmRleE1hcmtkb3duLmxpbmUoYC0gIyMgWyR7c3ViUHJvamVjdC5uYW1lfV0oJHtkb2NzUGF0aH0pYClcbiAgICAgICAgc3ViUHJvamVjdHNEb2NzW3N1YlByb2plY3QubmFtZV0gPSBkb2NzUGF0aFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3ViUHJvamVjdHNEb2NzW3N1YlByb2plY3QubmFtZV0gPSBgJHtzdWJQcm9qZWN0UGF0aH0vaW5kZXguaHRtbGBcbiAgICAgIH1cbiAgICAgIHJlYWRtZU1hcmtkb3duLmxpbmUoYC0gIyMgWyR7c3ViUHJvamVjdC5uYW1lfV0oLi4vJHtzdWJQcm9qZWN0UGF0aH0vUkVBRE1FLm1kKWApXG4gICAgfSlcblxuICAgIGNvbnN0IGluZGV4SHRtbCA9IG5ldyBTb3VyY2VDb2RlKHRoaXMucHJvamVjdCwgYCR7dGhpcy5wcm9qZWN0LmRvY3NEaXJlY3Rvcnl9L2luZGV4Lmh0bWxgKVxuICAgIGluZGV4SHRtbC5saW5lKCc8IURPQ1RZUEUgaHRtbD4nKVxuICAgIGluZGV4SHRtbC5saW5lKCc8aHRtbD4nKVxuICAgIGluZGV4SHRtbC5vcGVuKCc8Ym9keT4nKVxuICAgIGluZGV4SHRtbC5vcGVuKCc8dWw+JylcbiAgICBPYmplY3QuZW50cmllcyhzdWJQcm9qZWN0c0RvY3MpLmZvckVhY2goKFtuYW1lLCBkb2NzUGF0aF0pID0+IHtcbiAgICAgIGluZGV4SHRtbC5vcGVuKCc8bGk+JylcbiAgICAgIGluZGV4SHRtbC5vcGVuKGA8YSBocmVmPVwiJHtkb2NzUGF0aH1cIj5gKVxuICAgICAgaW5kZXhIdG1sLmxpbmUobmFtZSlcbiAgICAgIGluZGV4SHRtbC5jbG9zZSgnPC9hPicpXG4gICAgICBpbmRleEh0bWwuY2xvc2UoJzwvbGk+JylcbiAgICB9KVxuICAgIGluZGV4SHRtbC5jbG9zZSgnPC91bD4nKVxuICAgIGluZGV4SHRtbC5jbG9zZSgnPC9ib2R5PicpXG4gICAgaW5kZXhIdG1sLmxpbmUoJzwvaHRtbD4nKVxuICAgIGluZGV4SHRtbC5saW5lKClcblxuICAgIHRoaXMucHJvamVjdC5naXRhdHRyaWJ1dGVzLmFkZEF0dHJpYnV0ZXMoYC8ke3RoaXMucHJvamVjdC5kb2NzRGlyZWN0b3J5fS8qKmAsICdsaW5ndWlzdC1nZW5lcmF0ZWQnKVxuICB9XG59Il19
@@ -0,0 +1,6 @@
1
+ The ISC License
2
+ Copyright (c) 2020 Ryan Zimmerman <opensrc@ryanzim.com>
3
+
4
+ Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
5
+
6
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
@@ -0,0 +1,25 @@
1
+ # at-least-node
2
+
3
+ ![npm](https://img.shields.io/npm/v/at-least-node)
4
+ ![node](https://img.shields.io/node/v/at-least-node)
5
+ ![NPM](https://img.shields.io/npm/l/at-least-node)
6
+
7
+ Sometimes you need to check if you're on _at least_ a given Node.js version, but you don't want to pull in the whole [`semver`](https://www.npmjs.com/package/semver) kitchen sink. That's what `at-least-node` is for.
8
+
9
+ | Package | Size |
10
+ | --------------- | ------- |
11
+ | `at-least-node` | 2.6 kB |
12
+ | `semver` | 75.5 kB |
13
+
14
+ ```js
15
+ const atLeastNode = require('at-least-node')
16
+ atLeastNode('10.12.0')
17
+ // -> true on Node 10.12.0+, false on anything below that
18
+ ```
19
+
20
+ When passing in a version string:
21
+
22
+ - You cannot include a leading `v` (i.e. `v10.12.0`)
23
+ - You cannot omit sections (i.e. `10.12`)
24
+ - You cannot use pre-releases (i.e. `1.0.0-beta`)
25
+ - There is no input validation, if you make a mistake, the resulting behavior is undefined
@@ -0,0 +1,5 @@
1
+ module.exports = r => {
2
+ const n = process.versions.node.split('.').map(x => parseInt(x, 10))
3
+ r = r.split('.').map(x => parseInt(x, 10))
4
+ return n[0] > r[0] || (n[0] === r[0] && (n[1] > r[1] || (n[1] === r[1] && n[2] >= r[2])))
5
+ }
@@ -0,0 +1,32 @@
1
+ {
2
+ "name": "at-least-node",
3
+ "version": "1.0.0",
4
+ "description": "Lightweight Node.js version sniffing/comparison",
5
+ "keywords": [
6
+ "semver",
7
+ "feature"
8
+ ],
9
+ "homepage": "https://github.com/RyanZim/at-least-node#readme",
10
+ "bugs": {
11
+ "url": "https://github.com/RyanZim/at-least-node/issues"
12
+ },
13
+ "repository": {
14
+ "type": "git",
15
+ "url": "git+https://github.com/RyanZim/at-least-node.git"
16
+ },
17
+ "license": "ISC",
18
+ "author": "Ryan Zimmerman <opensrc@ryanzim.com>",
19
+ "main": "index.js",
20
+ "files": [],
21
+ "scripts": {
22
+ "test": "ava"
23
+ },
24
+ "devDependencies": {
25
+ "ava": "^3.1.0",
26
+ "rewire": "^4.0.1",
27
+ "semver": "^7.1.2"
28
+ },
29
+ "engines": {
30
+ "node": ">= 4.0.0"
31
+ }
32
+ }
@@ -0,0 +1,15 @@
1
+ The ISC License
2
+
3
+ Copyright (c) 2011-2022 Isaac Z. Schlueter, Ben Noordhuis, and Contributors
4
+
5
+ Permission to use, copy, modify, and/or distribute this software for any
6
+ purpose with or without fee is hereby granted, provided that the above
7
+ copyright notice and this permission notice appear in all copies.
8
+
9
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10
+ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11
+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12
+ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14
+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
15
+ IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
@@ -0,0 +1,143 @@
1
+ # graceful-fs
2
+
3
+ graceful-fs functions as a drop-in replacement for the fs module,
4
+ making various improvements.
5
+
6
+ The improvements are meant to normalize behavior across different
7
+ platforms and environments, and to make filesystem access more
8
+ resilient to errors.
9
+
10
+ ## Improvements over [fs module](https://nodejs.org/api/fs.html)
11
+
12
+ * Queues up `open` and `readdir` calls, and retries them once
13
+ something closes if there is an EMFILE error from too many file
14
+ descriptors.
15
+ * fixes `lchmod` for Node versions prior to 0.6.2.
16
+ * implements `fs.lutimes` if possible. Otherwise it becomes a noop.
17
+ * ignores `EINVAL` and `EPERM` errors in `chown`, `fchown` or
18
+ `lchown` if the user isn't root.
19
+ * makes `lchmod` and `lchown` become noops, if not available.
20
+ * retries reading a file if `read` results in EAGAIN error.
21
+
22
+ On Windows, it retries renaming a file for up to one second if `EACCESS`
23
+ or `EPERM` error occurs, likely because antivirus software has locked
24
+ the directory.
25
+
26
+ ## USAGE
27
+
28
+ ```javascript
29
+ // use just like fs
30
+ var fs = require('graceful-fs')
31
+
32
+ // now go and do stuff with it...
33
+ fs.readFile('some-file-or-whatever', (err, data) => {
34
+ // Do stuff here.
35
+ })
36
+ ```
37
+
38
+ ## Sync methods
39
+
40
+ This module cannot intercept or handle `EMFILE` or `ENFILE` errors from sync
41
+ methods. If you use sync methods which open file descriptors then you are
42
+ responsible for dealing with any errors.
43
+
44
+ This is a known limitation, not a bug.
45
+
46
+ ## Global Patching
47
+
48
+ If you want to patch the global fs module (or any other fs-like
49
+ module) you can do this:
50
+
51
+ ```javascript
52
+ // Make sure to read the caveat below.
53
+ var realFs = require('fs')
54
+ var gracefulFs = require('graceful-fs')
55
+ gracefulFs.gracefulify(realFs)
56
+ ```
57
+
58
+ This should only ever be done at the top-level application layer, in
59
+ order to delay on EMFILE errors from any fs-using dependencies. You
60
+ should **not** do this in a library, because it can cause unexpected
61
+ delays in other parts of the program.
62
+
63
+ ## Changes
64
+
65
+ This module is fairly stable at this point, and used by a lot of
66
+ things. That being said, because it implements a subtle behavior
67
+ change in a core part of the node API, even modest changes can be
68
+ extremely breaking, and the versioning is thus biased towards
69
+ bumping the major when in doubt.
70
+
71
+ The main change between major versions has been switching between
72
+ providing a fully-patched `fs` module vs monkey-patching the node core
73
+ builtin, and the approach by which a non-monkey-patched `fs` was
74
+ created.
75
+
76
+ The goal is to trade `EMFILE` errors for slower fs operations. So, if
77
+ you try to open a zillion files, rather than crashing, `open`
78
+ operations will be queued up and wait for something else to `close`.
79
+
80
+ There are advantages to each approach. Monkey-patching the fs means
81
+ that no `EMFILE` errors can possibly occur anywhere in your
82
+ application, because everything is using the same core `fs` module,
83
+ which is patched. However, it can also obviously cause undesirable
84
+ side-effects, especially if the module is loaded multiple times.
85
+
86
+ Implementing a separate-but-identical patched `fs` module is more
87
+ surgical (and doesn't run the risk of patching multiple times), but
88
+ also imposes the challenge of keeping in sync with the core module.
89
+
90
+ The current approach loads the `fs` module, and then creates a
91
+ lookalike object that has all the same methods, except a few that are
92
+ patched. It is safe to use in all versions of Node from 0.8 through
93
+ 7.0.
94
+
95
+ ### v4
96
+
97
+ * Do not monkey-patch the fs module. This module may now be used as a
98
+ drop-in dep, and users can opt into monkey-patching the fs builtin
99
+ if their app requires it.
100
+
101
+ ### v3
102
+
103
+ * Monkey-patch fs, because the eval approach no longer works on recent
104
+ node.
105
+ * fixed possible type-error throw if rename fails on windows
106
+ * verify that we *never* get EMFILE errors
107
+ * Ignore ENOSYS from chmod/chown
108
+ * clarify that graceful-fs must be used as a drop-in
109
+
110
+ ### v2.1.0
111
+
112
+ * Use eval rather than monkey-patching fs.
113
+ * readdir: Always sort the results
114
+ * win32: requeue a file if error has an OK status
115
+
116
+ ### v2.0
117
+
118
+ * A return to monkey patching
119
+ * wrap process.cwd
120
+
121
+ ### v1.1
122
+
123
+ * wrap readFile
124
+ * Wrap fs.writeFile.
125
+ * readdir protection
126
+ * Don't clobber the fs builtin
127
+ * Handle fs.read EAGAIN errors by trying again
128
+ * Expose the curOpen counter
129
+ * No-op lchown/lchmod if not implemented
130
+ * fs.rename patch only for win32
131
+ * Patch fs.rename to handle AV software on Windows
132
+ * Close #4 Chown should not fail on einval or eperm if non-root
133
+ * Fix isaacs/fstream#1 Only wrap fs one time
134
+ * Fix #3 Start at 1024 max files, then back off on EMFILE
135
+ * lutimes that doens't blow up on Linux
136
+ * A full on-rewrite using a queue instead of just swallowing the EMFILE error
137
+ * Wrap Read/Write streams as well
138
+
139
+ ### 1.0
140
+
141
+ * Update engines for node 0.6
142
+ * Be lstat-graceful on Windows
143
+ * first
@@ -0,0 +1,23 @@
1
+ 'use strict'
2
+
3
+ module.exports = clone
4
+
5
+ var getPrototypeOf = Object.getPrototypeOf || function (obj) {
6
+ return obj.__proto__
7
+ }
8
+
9
+ function clone (obj) {
10
+ if (obj === null || typeof obj !== 'object')
11
+ return obj
12
+
13
+ if (obj instanceof Object)
14
+ var copy = { __proto__: getPrototypeOf(obj) }
15
+ else
16
+ var copy = Object.create(null)
17
+
18
+ Object.getOwnPropertyNames(obj).forEach(function (key) {
19
+ Object.defineProperty(copy, key, Object.getOwnPropertyDescriptor(obj, key))
20
+ })
21
+
22
+ return copy
23
+ }