sliftutils 1.8.1 → 1.8.2
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/misc/dist/strings.ts.cache +2 -2
- package/misc/https/dist/certs.ts.cache +2 -2
- package/misc/https/dist/persistentLocalStorage.ts.cache +2 -2
- package/package.json +1 -1
- package/security/authorizedKeys/daemon/dist/changes.ts.cache +2 -2
- package/security/authorizedKeys/daemon/dist/git.ts.cache +2 -2
- package/security/authorizedKeys/daemon/dist/notify.ts.cache +2 -2
- package/security/authorizedKeys/daemon/dist/readSignedRepo.ts.cache +36 -21
- package/security/authorizedKeys/daemon/dist/repoFiles.ts.cache +2 -2
- package/security/authorizedKeys/daemon/dist/revocation.ts.cache +2 -2
- package/security/authorizedKeys/daemon/dist/sessions.ts.cache +2 -2
- package/security/authorizedKeys/daemon/dist/state.ts.cache +2 -2
- package/security/authorizedKeys/daemon/readSignedRepo.d.ts +28 -4
- package/security/authorizedKeys/daemon/readSignedRepo.ts +38 -13
- package/security/machines/dist/addMachine.ts.cache +7 -5
- package/security/machines/dist/machines.ts.cache +18 -6
- package/security/machines/dist/printMachineId.ts.cache +100 -7
- package/security/machines/machines.ts +18 -5
- package/security/machines/printMachineId.ts +36 -1
- package/security/signedFiles/dist/manifest.ts.cache +2 -2
- package/security/signedFiles/dist/sshsig.ts.cache +2 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
3
|
return (mod && mod.__esModule && mod.default) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
@@ -318,4 +318,4 @@ async function reportRevokedKeys() {
|
|
|
318
318
|
}
|
|
319
319
|
exports.reportRevokedKeys = reportRevokedKeys;
|
|
320
320
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV2b2NhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInJldm9jYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsMkRBQTZCO0FBQzdCLGdEQUF3QjtBQUN4QixtQ0FBcUM7QUFDckMsc0RBQThFO0FBQzlFLGtEQUFnRTtBQUNoRSwrQkFBK0I7QUFDL0IsMkNBQWdIO0FBQ2hILHlEQUErRDtBQUMvRCx1Q0FBb0U7QUFDcEUseUNBQWlFO0FBQ2pFLG1DQUE4QztBQUU5QyxtR0FBbUc7QUFDbkcsbUdBQW1HO0FBQ25HLGdHQUFnRztBQUNoRywwRkFBMEY7QUFDMUYsTUFBTSxlQUFlLEdBQUcsYUFBYSxDQUFDO0FBQ3RDLE1BQU0sYUFBYSxHQUFHLFdBQVcsQ0FBQztBQUNsQyxNQUFNLGlCQUFpQixHQUFHLDRDQUE0QyxDQUFDO0FBVXZFO3NDQUNzQztBQUN0QyxTQUFnQixPQUFPLENBQUMsTUFBMkM7SUFDL0QsT0FBTyxHQUFHLE1BQU0sQ0FBQyxXQUFXLElBQUksTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDO0FBQ2hELENBQUM7QUFGRCwwQkFFQztBQUVELDZGQUE2RjtBQUM3RixTQUFnQixlQUFlLENBQUMsV0FBbUI7SUFDL0MsSUFBSSxLQUFLLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzNELE9BQU8sR0FBRyxLQUFLLElBQUksSUFBQSxvQkFBVyxFQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDO0FBQ3pJLENBQUM7QUFIRCwwQ0FHQztBQUVELHlGQUF5RjtBQUN6RixT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TUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1FBQ3RELElBQUksVUFBVSxDQUFDLFNBQVMsSUFBSSxVQUFVLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDckQsU0FBUztRQUNiLENBQUM7UUFDRCxVQUFVLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztRQUNsQyxNQUFNLElBQUEsaUJBQVMsR0FBRSxDQUFDO1FBQ2xCLDRGQUE0RjtRQUM1RiwwREFBMEQ7UUFDMUQsSUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFBLCtCQUFjLEVBQUMsT0FBTyxDQUFDLEtBQUssVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2hHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNQLFNBQVM7UUFDYixDQUFDO1FBQ0Qsa0RBQWtEO1FBQ2xELElBQUksS0FBSyxHQUFHLElBQUEsMkJBQWdCLEVBQUMsTUFBTSxJQUFBLDRCQUFpQixHQUFFLENBQUMsQ0FBQztRQUN4RCxJQUFBLGdDQUFzQixFQUFDO1lBQ25CLFFBQVEsRUFBRSxpQkFBaUIsVUFBVSxDQUFDLEVBQUUsSUFBSSxTQUFTLGNBQWMsSUFBQSw0QkFBVyxFQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3JGLElBQUksRUFDQSwrRUFBK0U7a0JBQzdFLG1FQUFtRSxLQUFLLEVBQUU7a0JBQzFFLGNBQWMsSUFBQSw2QkFBWSxFQUFDLEdBQUcsQ0FBQyxJQUFJO2tCQUNuQyxLQUFLLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxFQUFFO1NBQzlDLENBQUMsQ0FBQztJQUNQLENBQUM7QUFDTCxDQUFDO0FBekJELDhDQXlCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmcyBmcm9tIFwiZnMvcHJvbWlzZXNcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyByYW5kb21CeXRlcyB9IGZyb20gXCJjcnlwdG9cIjtcbmltcG9ydCB7IGtleUZpbmdlcnByaW50LCBrZXlOaWNlTmFtZSwgc3VtbWFyaXplS2V5IH0gZnJvbSBcIi4uL2F1dGhvcml6ZWRLZXlzXCI7XG5pbXBvcnQgeyByZXZva2VSZXBvUGF0aCwgcmV2b2tlUmVwb1VSTCB9IGZyb20gXCIuLi9yZXZva2VTb3VyY2VcIjtcbmltcG9ydCB7IHJ1bkdpdCB9IGZyb20gXCIuL2dpdFwiO1xuaW1wb3J0IHsgZW5zdXJlUmV2b2tlS2V5LCBsaXN0UmVwb0RpciwgcmVhZFJlcG9GaWxlLCByZXZva2VSZXBvLCBzb3VyY2VSZXBvLCBzeW5jUmVwb0ZpbGVzIH0gZnJvbSBcIi4vcmVwb0ZpbGVzXCI7XG5pbXBvcnQgeyBtZXNzYWdlVGltZXN0YW1wIH0gZnJvbSBcIi4uLy4uL25vdGlmaWNhdGlvbnMvZGlzY29yZFwiO1xuaW1wb3J0IHsgYWRkQ2hhbmdlUmVhc29uLCBhZGRMZWFkaW5nQ2hhbmdlUmVhc29uIH0gZnJvbSBcIi4vY2hhbmdlc1wiO1xuaW1wb3J0IHsgZGVzY3JpYmVBbGxFbmRlZCwgZW5kQWxsU1NIU2Vzc2lvbnMgfSBmcm9tIFwiLi9zZXNzaW9uc1wiO1xuaW1wb3J0IHsgZ2V0U3RhdGUsIHNhdmVTdGF0ZSB9IGZyb20gXCIuL3N0YXRlXCI7XG5cbi8vIEEgcmV2b2NhdGlvbiBzYXlzOiB0aGlzIGtleSwgdXNlZCBmcm9tIHRoaXMgYWRkcmVzcywgaXMgbm8gbG9uZ2VyIGFjY2VwdGVkLiBBbiB1bnJldm9rZSBzYXlzIHRoZVxuLy8gb3Bwb3NpdGUgYWJvdXQgb25lIHBhaXI6IHRoaXMga2V5IGlzIGFsbG93ZWQgZnJvbSB0aGlzIGFkZHJlc3MuIFRoZXkgY2FuY2VsIG91dCB3aGVuIGJvdGggaGFsdmVzXG4vLyBtYXRjaCwgd2hpY2ggaXMgd2h5IGEgcmV2b2NhdGlvbiBpcyBvbmUgZXZlbnQgd2l0aCBhbiBpZCBvZiBpdHMgb3duLCBhbmQgbmV2ZXIgYSBuYW1lIGRlcml2ZWRcbi8vIGZyb20gdGhlIGtleSAtIGZvcmdpdmluZyBhIGtleSBmb3Igb25lIGFkZHJlc3MgbXVzdCBub3QgbWFrZSBpdCB1bnJldm9rYWJsZSBldmVyeXdoZXJlLlxuY29uc3QgUkVWT0NBVElPTlNfRElSID0gXCJyZXZvY2F0aW9uc1wiO1xuY29uc3QgVU5SRVZPS0VTX0RJUiA9IFwidW5yZXZva2VkXCI7XG5jb25zdCBSRVZPQ0FUSU9OX1JFQVNPTiA9IFwiYXV0aGVudGljYXRlZCBhY2Nlc3MgZnJvbSBhbiB1bmFwcHJvdmVkIElQXCI7XG5cbmV4cG9ydCB0eXBlIEF0dGVtcHQgPSB7XG4gICAgaXA6IHN0cmluZztcbiAgICB1c2VyOiBzdHJpbmc7XG4gICAgcG9ydDogc3RyaW5nO1xuICAgIHJlcXVpcmVkOiBzdHJpbmc7XG4gICAgbGluZTogc3RyaW5nO1xufTtcblxuLyoqIFdoYXQgYW4gdW5yZXZva2UgaGFzIHRvIG5hbWUgdG8gdW5kbyBhIHJldm9jYXRpb24sIGFuZCB3aGF0IHN0b3BzIGEgc2Vjb25kIHJldm9jYXRpb24gb2YgdGhlXG4gICAgc2FtZSBrZXkgZnJvbSB0aGUgc2FtZSBhZGRyZXNzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhaXJLZXkoY29uZmlnOiB7IGZpbmdlcnByaW50OiBzdHJpbmc7IGlwOiBzdHJpbmcgfSkge1xuICAgIHJldHVybiBgJHtjb25maWcuZmluZ2VycHJpbnR9ICR7Y29uZmlnLmlwfWA7XG59XG5cbi8qKiBVbmlxdWUgdG8gdGhlIGV2ZW50LiBUaGUgdGltZSBpcyB0aGVyZSB0byByZWFkLCB0aGUgcmFuZG9tIGhhbGYgaXMgdGhlcmUgdG8gYmUgdW5pcXVlLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5ld1Jldm9jYXRpb25JZChmaW5nZXJwcmludDogc3RyaW5nKSB7XG4gICAgbGV0IHN0YW1wID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpLnJlcGxhY2UoL1s6Ll0vZywgXCItXCIpO1xuICAgIHJldHVybiBgJHtzdGFtcH0tJHtyYW5kb21CeXRlcyg4KS50b1N0cmluZyhcImhleFwiKX0tJHtmaW5nZXJwcmludC5yZXBsYWNlKC9eU0hBMjU2Oi8sIFwiXCIpLnNsaWNlKDAsIDgpLnJlcGxhY2UoL1teQS1aYS16MC05XSsvZywgXCJcIil9YDtcbn1cblxuLyoqIFdoeSBhIGtleSBzdG9wcGVkIGJlaW5nIGFjY2VwdGVkLCBpbiB0aGUgd29yZHMgb2Ygd2hpY2hldmVyIG1hY2hpbmUgc2F3IGl0IGhhcHBlbi4gKi9cbmZ1bmN0aW9uIGRlc2NyaWJlUmV2b2NhdGlvbihyZXZvY2F0aW9uOiB7IHJldm9rZWRBdDogc3RyaW5nOyByZXZva2VkQnk6IHN0cmluZzsgcmVhc29uOiBzdHJpbmc7IGlwOiBzdHJpbmcgfSkge1xuICAgIGxldCB3aGVuID0gRGF0ZS5wYXJzZShyZXZvY2F0aW9uLnJldm9rZWRBdCk7XG4gICAgbGV0IHBhcnRzID0gW1xuICAgICAgICBOdW1iZXIuaXNGaW5pdGUod2hlbikgPyBgcmV2b2tlZCAke21lc3NhZ2VUaW1lc3RhbXAobmV3IERhdGUod2hlbikpfWAgOiBgcmV2b2tlZCBhdCBhbiB1bnJlY29yZGVkIHRpbWVgLFxuICAgICAgICByZXZvY2F0aW9uLnJldm9rZWRCeSAmJiBgYnkgXFxgJHtyZXZvY2F0aW9uLnJldm9rZWRCeX1cXGBgIHx8IFwiXCIsXG4gICAgICAgIHJldm9jYXRpb24ucmVhc29uIHx8IFwiXCIsXG4gICAgICAgIHJldm9jYXRpb24uaXAgJiYgYGZyb20gXFxgJHtyZXZvY2F0aW9uLmlwfVxcYGAgfHwgXCJcIixcbiAgICBdO1xuICAgIHJldHVybiBwYXJ0cy5maWx0ZXIocGFydCA9PiBwYXJ0KS5qb2luKFwiLCBcIik7XG59XG5cbmV4cG9ydCB0eXBlIFJldm9jYXRpb25GaWxlID0ge1xuICAgIHJldm9jYXRpb25JZDogc3RyaW5nO1xuICAgIGZpbmdlcnByaW50OiBzdHJpbmc7XG4gICAgaXA6IHN0cmluZztcbiAgICByZXZva2VkQXQ6IHN0cmluZztcbiAgICByZXZva2VkQnk6IHN0cmluZztcbiAgICByZWFzb246IHN0cmluZztcbn07XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWFkUmV2b2NhdGlvbkZpbGVzKHNvdXJjZVVSTDogc3RyaW5nKTogUHJvbWlzZTxSZXZvY2F0aW9uRmlsZVtdPiB7XG4gICAgbGV0IHJlcG8gPSByZXZva2VSZXBvKHNvdXJjZVVSTCk7XG4gICAgbGV0IHJldm9jYXRpb25zOiBSZXZvY2F0aW9uRmlsZVtdID0gW107XG4gICAgZm9yIChsZXQgbmFtZSBvZiBhd2FpdCBsaXN0UmVwb0RpcihyZXBvLCBSRVZPQ0FUSU9OU19ESVIpKSB7XG4gICAgICAgIGlmICghbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgbGV0IHBhcnNlZCA9IEpTT04ucGFyc2UoYXdhaXQgcmVhZFJlcG9GaWxlKHJlcG8sIHBhdGguam9pbihSRVZPQ0FUSU9OU19ESVIsIG5hbWUpKSB8fCBcIlwiKTtcbiAgICAgICAgICAgIGlmIChwYXJzZWQuZmluZ2VycHJpbnQpIHtcbiAgICAgICAgICAgICAgICByZXZvY2F0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgcmV2b2NhdGlvbklkOiBwYXJzZWQucmV2b2NhdGlvbklkIHx8IG5hbWUucmVwbGFjZSgvXFwuanNvbiQvLCBcIlwiKSxcbiAgICAgICAgICAgICAgICAgICAgZmluZ2VycHJpbnQ6IHBhcnNlZC5maW5nZXJwcmludCxcbiAgICAgICAgICAgICAgICAgICAgaXA6IHBhcnNlZC5pcCB8fCBwYXJzZWQuYXR0ZW1wdD8uaXAgfHwgXCJcIixcbiAgICAgICAgICAgICAgICAgICAgcmV2b2tlZEF0OiBwYXJzZWQucmV2b2tlZEF0IHx8IFwiXCIsXG4gICAgICAgICAgICAgICAgICAgIHJldm9rZWRCeTogcGFyc2VkLnJldm9rZWRCeSB8fCBcIlwiLFxuICAgICAgICAgICAgICAgICAgICByZWFzb246IHBhcnNlZC5yZWFzb24gfHwgXCJcIixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYElnbm9yaW5nIHVucmVhZGFibGUgcmV2b2NhdGlvbiAke25hbWV9LiAke2V9YCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJldm9jYXRpb25zO1xufVxuXG4vKiogV2hpY2gga2V5IGlzIGFsbG93ZWQgZnJvbSB3aGljaCBhZGRyZXNzLiBVbnJldm9rZXMgbGl2ZSBpbiB0aGUgc291cmNlIHJlcG8sIHNvIHRoZXkgYXJlIGNvdmVyZWRcbiAgICBieSBpdHMgc2lnbmF0dXJlLCBhbmQgbm90aGluZyBpcyByZWFkIG91dCBvZiB0aGVtIGJ1dCB0aGUgcGFpcnMgdGhleSBhbGxvdyBhbmQsIGZvciBmaWxlc1xuICAgIHdyaXR0ZW4gYmVmb3JlIHBhaXJzIGV4aXN0ZWQsIHRoZSByZXZvY2F0aW9uIGlkcyB0aGV5IG5hbWUuICovXG5leHBvcnQgdHlwZSBVbnJldm9rZXMgPSB7XG4gICAgLy8gZmluZ2VycHJpbnQgYW5kIGlwLCB0byBldmVyeSB1bnJldm9rZSB0aGF0IGFsbG93cyB0aGVtLiBFdmVyeSBvbmUgcmF0aGVyIHRoYW4gdGhlIGxhc3QsXG4gICAgLy8gYmVjYXVzZSB0aGUgc2FtZSBwYWlyIGlzIG9mdGVuIG5hbWVkIGFnYWluIGJ5IGEgbGF0ZXIgdW5yZXZva2UgYW5kIHRoZXJlIGlzIG5vIHJlYXNvbiB0b1xuICAgIC8vIHByZWZlciBvbmUgb3ZlciBhbm90aGVyLlxuICAgIHBhaXJzOiBNYXA8c3RyaW5nLCBzdHJpbmdbXT47XG4gICAgLy8gUmV2b2NhdGlvbiBpZCB0byB0aGUgdW5yZXZva2VzIG5hbWluZyBpdC4gT25seSBmb3IgdW5yZXZva2VzIHdyaXR0ZW4gYmVmb3JlIHRoaXMgd2FzIGFib3V0XG4gICAgLy8gcGFpcnMgYXQgYWxsLCBzbyBhIG1hY2hpbmUgcmVhZGluZyBvbmUgYWxyZWFkeSBpbiBhIHJlcG8gc3RpbGwgaG9ub3VycyBpdC5cbiAgICBsZWdhY3lJZHM6IE1hcDxzdHJpbmcsIHN0cmluZ1tdPjtcbn07XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWFkVW5yZXZva2VzKHNvdXJjZVVSTDogc3RyaW5nKTogUHJvbWlzZTxVbnJldm9rZXM+IHtcbiAgICBsZXQgcmVwbyA9IHNvdXJjZVJlcG8oc291cmNlVVJMKTtcbiAgICBsZXQgcGFpcnMgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nW10+KCk7XG4gICAgbGV0IGxlZ2FjeUlkcyA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmdbXT4oKTtcbiAgICBsZXQgYWRkID0gKGludG86IE1hcDxzdHJpbmcsIHN0cmluZ1tdPiwga2V5OiBzdHJpbmcsIHVucmV2b2tlSWQ6IHN0cmluZykgPT4ge1xuICAgICAgICBpbnRvLnNldChrZXksIFsuLi4oaW50by5nZXQoa2V5KSB8fCBbXSksIHVucmV2b2tlSWRdKTtcbiAgICB9O1xuICAgIGZvciAobGV0IG5hbWUgb2YgYXdhaXQgbGlzdFJlcG9EaXIocmVwbywgVU5SRVZPS0VTX0RJUikpIHtcbiAgICAgICAgaWYgKCFuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGxldCB1bnJldm9rZUlkID0gbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiXCIpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgbGV0IHBhcnNlZCA9IEpTT04ucGFyc2UoYXdhaXQgcmVhZFJlcG9GaWxlKHJlcG8sIHBhdGguam9pbihVTlJFVk9LRVNfRElSLCBuYW1lKSkgfHwgXCJcIik7XG4gICAgICAgICAgICBmb3IgKGxldCBhbGxvd2VkIG9mIHBhcnNlZC5hbGxvd2VkIHx8IFtdKSB7XG4gICAgICAgICAgICAgICAgLy8gRWl0aGVyIGtpbmQgb2YgaWRlbnRpdHk6IGFuIHNzaCBrZXkgbmFtZXMgYSBmaW5nZXJwcmludCwgYSBtYWNoaW5lIGEgbWFjaGluZUlkLlxuICAgICAgICAgICAgICAgIGxldCBpZGVudGl0eSA9IGFsbG93ZWQuZmluZ2VycHJpbnQgfHwgYWxsb3dlZC5tYWNoaW5lSWQ7XG4gICAgICAgICAgICAgICAgaWYgKGlkZW50aXR5ICYmIGFsbG93ZWQuaXApIHtcbiAgICAgICAgICAgICAgICAgICAgYWRkKHBhaXJzLCBwYWlyS2V5KHsgZmluZ2VycHJpbnQ6IGlkZW50aXR5LCBpcDogYWxsb3dlZC5pcCB9KSwgdW5yZXZva2VJZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yIChsZXQgcmV2b2NhdGlvbklkIG9mIHBhcnNlZC5yZXZvY2F0aW9uSWRzIHx8IFtdKSB7XG4gICAgICAgICAgICAgICAgYWRkKGxlZ2FjeUlkcywgcmV2b2NhdGlvbklkLCB1bnJldm9rZUlkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYElnbm9yaW5nIHVucmVhZGFibGUgdW5yZXZva2UgJHtuYW1lfS4gJHtlfWApO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7IHBhaXJzLCBsZWdhY3lJZHMgfTtcbn1cblxuLyoqIEV2ZXJ5IHVucmV2b2tlIGNvdmVyaW5nIG9uZSByZXZvY2F0aW9uOiBieSB0aGUgcGFpciBpdCBpcyBhYm91dCwgYW5kIGJ5IGl0cyBpZCBmb3IgdGhlIGZpbGVzXG4gICAgd3JpdHRlbiBiZWZvcmUgcGFpcnMgZXhpc3RlZC4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1bnJldm9rZXNGb3IodW5yZXZva2VzOiBVbnJldm9rZXMsIHJldm9jYXRpb246IHsgcmV2b2NhdGlvbklkOiBzdHJpbmc7IGZpbmdlcnByaW50OiBzdHJpbmc7IGlwOiBzdHJpbmcgfSkge1xuICAgIHJldHVybiBbXG4gICAgICAgIC4uLnVucmV2b2tlcy5wYWlycy5nZXQocGFpcktleShyZXZvY2F0aW9uKSkgfHwgW10sXG4gICAgICAgIC4uLnVucmV2b2tlcy5sZWdhY3lJZHMuZ2V0KHJldm9jYXRpb24ucmV2b2NhdGlvbklkKSB8fCBbXSxcbiAgICBdO1xufVxuXG4vKiogV3JpdGVzIGEgcmV2b2NhdGlvbiwgdW5sZXNzIHRoaXMga2V5IGlzIGFscmVhZHkgcmV2b2tlZCBmb3IgdGhpcyBhZGRyZXNzLiBDaGVja2VkIHR3aWNlOlxuICAgIGFnYWluc3Qgd2hhdCB0aGlzIG1hY2hpbmUgYWxyZWFkeSBrbm93cywgd2hpY2ggbmVlZHMgbm8gbmV0d29yaywgYW5kIGFnYWluIGFnYWluc3QgdGhlIHJlcG9cbiAgICBhZnRlciBwdWxsaW5nIGl0LCBzbyBhIGZsb29kIG9mIHVua25vd24ga2V5cyBjYW5ub3QgdHVybiBpbnRvIGEgZmxvb2Qgb2YgY29tbWl0cy5cblxuICAgIERlZHVwbGljYXRpb24gaXMgb24gdGhlIHBhaXIuIFRoZSBzYW1lIGtleSBmcm9tIGEgc2Vjb25kIGFkZHJlc3MgaXMgYSBzZWNvbmQgZXZlbnQgYW5kIGdldHMgaXRzXG4gICAgb3duIHJldm9jYXRpb24sIGJlY2F1c2UgYW4gdW5yZXZva2Ugb25seSBldmVyIGZvcmdpdmVzIHRoZSBwYWlyIGl0IG5hbWVzLiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlY29yZFJldm9jYXRpb24oY29uZmlnOiB7XG4gICAgc291cmNlVVJMOiBzdHJpbmc7XG4gICAgZmluZ2VycHJpbnQ6IHN0cmluZztcbiAgICBrZXlMaW5lOiBzdHJpbmc7XG4gICAgYXR0ZW1wdDogQXR0ZW1wdDtcbiAgICBob3N0TGFiZWw6IHN0cmluZztcbn0pIHtcbiAgICBsZXQgeyBzb3VyY2VVUkwsIGZpbmdlcnByaW50LCBrZXlMaW5lLCBhdHRlbXB0LCBob3N0TGFiZWwgfSA9IGNvbmZpZztcbiAgICBsZXQgc3RhdGUgPSBnZXRTdGF0ZSgpO1xuICAgIGxldCBwYWlyID0gcGFpcktleSh7IGZpbmdlcnByaW50LCBpcDogYXR0ZW1wdC5pcCB9KTtcbiAgICBpZiAoT2JqZWN0LnZhbHVlcyhzdGF0ZS5yZXZvY2F0aW9ucykuc29tZShlbnRyeSA9PiBwYWlyS2V5KGVudHJ5KSA9PT0gcGFpcikpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICBhd2FpdCBzeW5jUmVwb0ZpbGVzKHJldm9rZVJlcG8oc291cmNlVVJMKSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBDYW5ub3QgcmVjb3JkIHRoZSByZXZvY2F0aW9uIG9mICR7ZmluZ2VycHJpbnR9LCAke3Jldm9rZVJlcG9VUkwoc291cmNlVVJMKX0gY291bGQgbm90IGJlIHJlYWQuICR7ZX1gKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBsZXQgcmV2b2NhdGlvbklkID0gbmV3UmV2b2NhdGlvbklkKGZpbmdlcnByaW50KTtcbiAgICBsZXQgZXhpc3RpbmcgPSAoYXdhaXQgcmVhZFJldm9jYXRpb25GaWxlcyhzb3VyY2VVUkwpKS5maW5kKGVudHJ5ID0+IHBhaXJLZXkoZW50cnkpID09PSBwYWlyKTtcbiAgICBpZiAoZXhpc3RpbmcpIHtcbiAgICAgICAgLy8gQW5vdGhlciBtYWNoaW5lIGdvdCB0aGVyZSBmaXJzdCwgd2hpY2ggaXMgdGhlIG5vcm1hbCBvdXRjb21lIHdoZW4gc2V2ZXJhbCBzZWUgdGhlIHNhbWVcbiAgICAgICAgLy8gYXR0ZW1wdC4gUmVjb3JkIGl0IGxvY2FsbHkgc28gd2UgbmV2ZXIgbG9vayBhZ2Fpbi5cbiAgICAgICAgc3RhdGUucmV2b2NhdGlvbnNbZXhpc3RpbmcucmV2b2NhdGlvbklkXSA9IHtcbiAgICAgICAgICAgIHJldm9jYXRpb25JZDogZXhpc3RpbmcucmV2b2NhdGlvbklkLFxuICAgICAgICAgICAgZmluZ2VycHJpbnQ6IGV4aXN0aW5nLmZpbmdlcnByaW50LCBpcDogZXhpc3RpbmcuaXAsXG4gICAgICAgICAgICByZXZva2VkQXQ6IGV4aXN0aW5nLnJldm9rZWRBdCwgcmV2b2tlZEJ5OiBleGlzdGluZy5yZXZva2VkQnksXG4gICAgICAgICAgICByZWFzb246IGV4aXN0aW5nLnJlYXNvbixcbiAgICAgICAgICAgIHVucmV2b2tlSWQ6IFwiXCIsIHVucmV2b2tlZDogZmFsc2UsXG4gICAgICAgICAgICByZXBvcnRlZFJlbW92ZWQ6IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgICBhd2FpdCBzYXZlU3RhdGUoKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGxldCByZXBvUGF0aCA9IHJldm9rZVJlcG9QYXRoKHNvdXJjZVVSTCk7XG4gICAgbGV0IGtleVBhdGggPSBhd2FpdCBlbnN1cmVSZXZva2VLZXkoc291cmNlVVJMKTtcbiAgICBsZXQgZGlyZWN0b3J5ID0gcGF0aC5qb2luKHJlcG9QYXRoLCBSRVZPQ0FUSU9OU19ESVIpO1xuICAgIGF3YWl0IGZzLm1rZGlyKGRpcmVjdG9yeSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgbGV0IHJldm9rZWRBdCA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKTtcbiAgICBhd2FpdCBmcy53cml0ZUZpbGUocGF0aC5qb2luKGRpcmVjdG9yeSwgYCR7cmV2b2NhdGlvbklkfS5qc29uYCksIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgcmV2b2NhdGlvbklkLFxuICAgICAgICBmaW5nZXJwcmludCxcbiAgICAgICAgLy8gVGhlIHR3byBoYWx2ZXMgb2Ygd2hhdCBoYXBwZW5lZC4gQW4gdW5yZXZva2UgbmFtaW5nIGJvdGggaXMgd2hhdCB1bmRvZXMgdGhpcy5cbiAgICAgICAgaXA6IGF0dGVtcHQuaXAsXG4gICAgICAgIGtleToga2V5TGluZSxcbiAgICAgICAgcmV2b2tlZEF0LFxuICAgICAgICByZXZva2VkQnk6IGhvc3RMYWJlbCxcbiAgICAgICAgcmVhc29uOiBSRVZPQ0FUSU9OX1JFQVNPTixcbiAgICAgICAgYXR0ZW1wdCxcbiAgICB9LCB1bmRlZmluZWQsIDQpICsgXCJcXG5cIik7XG5cbiAgICBhd2FpdCBydW5HaXQoeyBhcmdzOiBbXCJhZGRcIiwgXCItQVwiXSwgY3dkOiByZXBvUGF0aCwga2V5UGF0aCB9KTtcbiAgICBhd2FpdCBydW5HaXQoeyBhcmdzOiBbXCItY1wiLCBcInVzZXIuZW1haWw9cG9ydHNlY3VyZUBsb2NhbGhvc3RcIiwgXCItY1wiLCBcInVzZXIubmFtZT1wb3J0c2VjdXJlXCIsIFwiY29tbWl0XCIsIFwiLW1cIiwgYHJldm9rZSAke3Jldm9jYXRpb25JZH1gXSwgY3dkOiByZXBvUGF0aCwga2V5UGF0aCB9KTtcbiAgICBsZXQgcHVzaCA9IGF3YWl0IHJ1bkdpdCh7IGFyZ3M6IFtcInB1c2hcIiwgXCJvcmlnaW5cIiwgXCJIRUFEXCJdLCBjd2Q6IHJlcG9QYXRoLCBrZXlQYXRoLCBhbGxvd0ZhaWx1cmU6IHRydWUgfSk7XG4gICAgaWYgKHB1c2guc3RhdHVzICE9PSAwKSB7XG4gICAgICAgIC8vIE1vc3QgbGlrZWx5IGFub3RoZXIgbWFjaGluZSBwdXNoZWQgdGhlIHNhbWUgcmV2b2NhdGlvbiBmaXJzdC4gVGhlIG5leHQgY2hlY2sgd2lsbCBwdWxsXG4gICAgICAgIC8vIGl0IGFuZCByZWNvcmQgaXQsIHNvIHRoZXJlIGlzIG5vdGhpbmcgdG8gcmV0cnkgaGVyZS5cbiAgICAgICAgY29uc29sZS5sb2coYENvdWxkIG5vdCBwdXNoIHRoZSByZXZvY2F0aW9uIG9mICR7ZmluZ2VycHJpbnR9LCB3aWxsIHBpY2sgaXQgdXAgb24gdGhlIG5leHQgY2hlY2suICR7KHB1c2guc3Rkb3V0ICsgcHVzaC5zdGRlcnIpLnRyaW0oKX1gKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBzdGF0ZS5yZXZvY2F0aW9uc1tyZXZvY2F0aW9uSWRdID0ge1xuICAgICAgICByZXZvY2F0aW9uSWQsIGZpbmdlcnByaW50LCBpcDogYXR0ZW1wdC5pcCxcbiAgICAgICAgcmV2b2tlZEF0LCByZXZva2VkQnk6IGhvc3RMYWJlbCwgcmVhc29uOiBSRVZPQ0FUSU9OX1JFQVNPTixcbiAgICAgICAgdW5yZXZva2VJZDogXCJcIiwgdW5yZXZva2VkOiBmYWxzZSxcbiAgICAgICAgLy8gVGhlIG1lc3NhZ2UgYmVsb3cgYWxyZWFkeSBzYXlzIHRoaXMgbWFjaGluZSBoYXMgc3RvcHBlZCBhY2NlcHRpbmcgdGhlIGtleSwgc28gdGhlIG9uZVxuICAgICAgICAvLyBhYm91dCBub3RpY2luZyBhIHJldm9jYXRpb24gd291bGQgb25seSByZXBlYXQgaXQuXG4gICAgICAgIHJlcG9ydGVkUmVtb3ZlZDogdHJ1ZSxcbiAgICB9O1xuICAgIGF3YWl0IHNhdmVTdGF0ZSgpO1xuICAgIGxldCBlbmRlZCA9IGRlc2NyaWJlQWxsRW5kZWQoYXdhaXQgZW5kQWxsU1NIU2Vzc2lvbnMoKSk7XG4gICAgLy8gU2FpZCB3aGVuIHRoZSBmaWxlIGlzIHdyaXR0ZW4sIG5vdCBoZXJlLCBzbyBvbmUgZXZlbnQgcHJvZHVjZXMgb25lIG1lc3NhZ2UuXG4gICAgYWRkTGVhZGluZ0NoYW5nZVJlYXNvbih7XG4gICAgICAgIGhlYWRsaW5lOiBgU1VTUElDSU9VUyBJUCAke2F0dGVtcHQuaXB9IEZST1pFIEtFWSAke2tleUxpbmUgJiYga2V5TmljZU5hbWUoa2V5TGluZSkgfHwgZmluZ2VycHJpbnR9YCxcbiAgICAgICAgYm9keTpcbiAgICAgICAgICAgIGBTb21lb25lIGxvZ2dlZCBpbiBmcm9tICR7YXR0ZW1wdC5pcH0gdXNpbmcgYSBrZXkgdGhhdCBpcyBub3QgYWxsb3dlZCBmcm9tIHRoZXJlLiBUaGVgXG4gICAgICAgICAgICArIGAga2V5IGl0c2VsZiB3YXMgY29ycmVjdCwgc28gZWl0aGVyIHNvbWVvbmUgZWxzZSBoYXMgYSBjb3B5IG9mIGl0LCBvciBvbmUgb2YgeW91ciBvd25gXG4gICAgICAgICAgICArIGAgYWRkcmVzc2VzIGNoYW5nZWQuYFxuICAgICAgICAgICAgKyBgXFxuXFxuVGhlIGtleSBpcyBmcm96ZW4gb24gZXZlcnkgbWFjaGluZSBub3csIGFuZCB3b3JrcyBub3doZXJlLiR7ZW5kZWR9YFxuICAgICAgICAgICAgKyBgXFxuXFxuSWYgdGhpcyB3YXMgYW4gYXR0YWNrLCByZW1vdmUgdGhhdCBrZXkgZnJvbSBcXGAke3NvdXJjZVVSTH1cXGAgbm93LmBcbiAgICAgICAgICAgICsgYFxcbklmIGl0IHdhcyB5b3UsIHJ1biBcXGB5YXJuIHVucmV2b2tlIGdpdFxcYCBpbiB0aGF0IHJlcG8uIEl0IGFsbG93cyAke2F0dGVtcHQuaXB9IG9uYFxuICAgICAgICAgICAgKyBgIHRoYXQga2V5LCBhbmQgdGFrZXMgYW4gaG91ciB0byByZWFjaCBldmVyeSBtYWNoaW5lLmBcbiAgICAgICAgICAgICsgYFxcblxcbmtleTogXFxgJHtrZXlMaW5lICYmIHN1bW1hcml6ZUtleShrZXlMaW5lKSB8fCBmaW5nZXJwcmludH1cXGBgXG4gICAgICAgICAgICArIGBcXG50cmllZCB0byBsb2cgaW4gYXM6IFxcYCR7YXR0ZW1wdC51c2VyfVxcYGBcbiAgICAgICAgICAgICsgYFxcbmFsbG93ZWQgb25seSBmcm9tOiBcXGAke2F0dGVtcHQucmVxdWlyZWR9XFxgYCxcbiAgICB9KTtcbiAgICByZXR1cm4gdHJ1ZTtcbn1cblxuLyoqIFRha2VzIGV2ZXJ5dGhpbmcgdGhlIHJldm9rZSByZXBvcyBsaXN0IGludG8gbG9jYWwgc3RhdGUuIE9uY2UgaGVyZSBhIHJldm9jYXRpb24gbmV2ZXIgbGVhdmVzLFxuICAgIGV2ZW4gaWYgdGhlIGZpbGUgaXMgZGVsZXRlZDogdGhlIGtleSB0aGF0IHdyaXRlcyByZXZvY2F0aW9ucyBpcyBvbiBldmVyeSBzZXJ2ZXIsIHNvIGFuIGF0dGFja2VyXG4gICAgaG9sZGluZyBpdCBjb3VsZCBvdGhlcndpc2UgZXJhc2UgdGhlIHJlY29yZCB0aGF0IGxvY2tlZCB0aGVtIG91dC4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhYnNvcmJSZXZvY2F0aW9ucyhzb3VyY2VVUkxzOiBzdHJpbmdbXSkge1xuICAgIGxldCBzdGF0ZSA9IGdldFN0YXRlKCk7XG4gICAgbGV0IGNoYW5nZWQgPSBmYWxzZTtcbiAgICBmb3IgKGxldCBzb3VyY2VVUkwgb2Ygc291cmNlVVJMcykge1xuICAgICAgICBsZXQgZW50cmllcztcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGVudHJpZXMgPSBhd2FpdCByZWFkUmV2b2NhdGlvbkZpbGVzKHNvdXJjZVVSTCk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIC8vIFVucmVhZGFibGUgaXMgbm90IGVtcHR5LiBXaGF0ZXZlciB3ZSBhbHJlYWR5IGtuZXcgc3RheXMgZXhhY3RseSBhcyBpdCBpcy5cbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYFNraXBwaW5nIHRoZSByZXZvY2F0aW9ucyBvZiAke3Jldm9rZVJlcG9VUkwoc291cmNlVVJMKX0sIHRoZXkgY291bGQgbm90IGJlIHJlYWQuICR7ZX1gKTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGZvciAobGV0IGVudHJ5IG9mIGVudHJpZXMpIHtcbiAgICAgICAgICAgIGlmIChzdGF0ZS5yZXZvY2F0aW9uc1tlbnRyeS5yZXZvY2F0aW9uSWRdKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdGF0ZS5yZXZvY2F0aW9uc1tlbnRyeS5yZXZvY2F0aW9uSWRdID0ge1xuICAgICAgICAgICAgICAgIHJldm9jYXRpb25JZDogZW50cnkucmV2b2NhdGlvbklkLFxuICAgICAgICAgICAgICAgIGZpbmdlcnByaW50OiBlbnRyeS5maW5nZXJwcmludCxcbiAgICAgICAgICAgICAgICBpcDogZW50cnkuaXAsXG4gICAgICAgICAgICAgICAgcmV2b2tlZEF0OiBlbnRyeS5yZXZva2VkQXQsXG4gICAgICAgICAgICAgICAgcmV2b2tlZEJ5OiBlbnRyeS5yZXZva2VkQnksXG4gICAgICAgICAgICAgICAgcmVhc29uOiBlbnRyeS5yZWFzb24sXG4gICAgICAgICAgICAgICAgdW5yZXZva2VJZDogXCJcIixcbiAgICAgICAgICAgICAgICB1bnJldm9rZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlcG9ydGVkUmVtb3ZlZDogZmFsc2UsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY2hhbmdlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKGNoYW5nZWQpIHtcbiAgICAgICAgYXdhaXQgc2F2ZVN0YXRlKCk7XG4gICAgfVxufVxuXG4vKiogQW4gdW5yZXZva2UgY291bnRzIHRoZSBtb21lbnQgaXQgaXMgc2Vlbi5cblxuICAgIFRoZXJlIHVzZWQgdG8gYmUgYW4gaG91cidzIHdhaXQgYmVmb3JlIGhvbm91cmluZyBvbmUsIGFnYWluc3QgYSBzaWduaW5nIGtleSB0aGF0IGhhZCBpdHNlbGZcbiAgICBiZWVuIHN0b2xlbi4gSXQgd2FzIG5ldmVyIHdvcnRoIGl0OiBhbiB1bnJldm9rZSBoYXMgdG8gYmUgc2lnbmVkLCBzbyB3cml0aW5nIG9uZSBhbHJlYWR5IHRha2VzXG4gICAgdGhlIGhhcmR3YXJlIGtleSwgYW5kIGFueW9uZSBob2xkaW5nIHRoYXQgY2FuIHNpZ24gYSBuZXcgYXV0aG9yaXplZF9rZXlzIG5hbWluZyB3aGF0ZXZlciB0aGV5XG4gICAgbGlrZSAtIHRoZXkgaGF2ZSBubyByZWFzb24gdG8gZ28gbmVhciBhbiB1bnJldm9rZS4gTWVhbndoaWxlIHRoZSB3YWl0IGNvc3QgcmVhbCBhY2Nlc3MsIGFuZCBhXG4gICAgbWFjaGluZSBkZXBsb3llZCBhZnRlciBhbiBpbmNpZGVudCB3b3VsZCBmcmVlemUga2V5cyBpdCBoYWQgbmV2ZXIgaGFkIGEgcHJvYmxlbSB3aXRoLCBmb3IgYW5cbiAgICBob3VyLCBiZWNhdXNlIGl0IHdhcyBzZWVpbmcgdGhlIHVucmV2b2tlIGZvciB0aGUgZmlyc3QgdGltZS5cblxuICAgIFdoYXQgc3RpbGwgcHJvdGVjdHMgYSBzdG9sZW4gc2lnbmluZyBrZXkgaXMgdGhlIDI0IGhvdXJzIGJlZm9yZSBhIE5FVyBzaWduZXIgaXMgYWNjZXB0ZWQuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXBwbHlVbnJldm9rZXMoc291cmNlVVJMczogc3RyaW5nW10pIHtcbiAgICBsZXQgc3RhdGUgPSBnZXRTdGF0ZSgpO1xuICAgIGxldCB1bnJldm9rZXM6IFVucmV2b2tlcyA9IHsgcGFpcnM6IG5ldyBNYXAoKSwgbGVnYWN5SWRzOiBuZXcgTWFwKCkgfTtcbiAgICBmb3IgKGxldCBzb3VyY2VVUkwgb2Ygc291cmNlVVJMcykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgbGV0IHNvdXJjZSA9IGF3YWl0IHJlYWRVbnJldm9rZXMoc291cmNlVVJMKTtcbiAgICAgICAgICAgIGZvciAobGV0IFtwYWlyLCBpZHNdIG9mIHNvdXJjZS5wYWlycykge1xuICAgICAgICAgICAgICAgIHVucmV2b2tlcy5wYWlycy5zZXQocGFpciwgWy4uLih1bnJldm9rZXMucGFpcnMuZ2V0KHBhaXIpIHx8IFtdKSwgLi4uaWRzXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGxldCBbcmV2b2NhdGlvbklkLCBpZHNdIG9mIHNvdXJjZS5sZWdhY3lJZHMpIHtcbiAgICAgICAgICAgICAgICB1bnJldm9rZXMubGVnYWN5SWRzLnNldChyZXZvY2F0aW9uSWQsIFsuLi4odW5yZXZva2VzLmxlZ2FjeUlkcy5nZXQocmV2b2NhdGlvbklkKSB8fCBbXSksIC4uLmlkc10pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAvLyBVbnJlYWRhYmxlIGlzIG5vdCBcInRoZXJlIGFyZSBubyB1bnJldm9rZXNcIi4gVGhlIHJldm9jYXRpb25zIHNpbXBseSBzdGFuZC5cbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYFNraXBwaW5nIHRoZSB1bnJldm9rZXMgb2YgJHtzb3VyY2VVUkx9LCB0aGV5IGNvdWxkIG5vdCBiZSByZWFkLiAke2V9YCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZm9yIChsZXQgcmV2b2NhdGlvbiBvZiBPYmplY3QudmFsdWVzKHN0YXRlLnJldm9jYXRpb25zKSkge1xuICAgICAgICBpZiAocmV2b2NhdGlvbi51bnJldm9rZWQpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGxldCBjb3ZlcmluZyA9IHVucmV2b2tlc0Zvcih1bnJldm9rZXMsIHJldm9jYXRpb24pO1xuICAgICAgICBpZiAoIWNvdmVyaW5nLmxlbmd0aCkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHVucmV2b2tlSWQgPSBjb3ZlcmluZ1swXTtcbiAgICAgICAgcmV2b2NhdGlvbi51bnJldm9rZUlkID0gdW5yZXZva2VJZDtcbiAgICAgICAgcmV2b2NhdGlvbi51bnJldm9rZWQgPSB0cnVlO1xuICAgICAgICByZXZvY2F0aW9uLnJlcG9ydGVkUmVtb3ZlZCA9IGZhbHNlO1xuICAgICAgICBhd2FpdCBzYXZlU3RhdGUoKTtcbiAgICAgICAgLy8gT25seSBtZWFucyBhbnl0aGluZyBpZiB0aGUga2V5IGNvbWVzIGJhY2sgaW50byB0aGUgZmlsZSwgc28gaXQgaXMgc2FpZCB0aGVyZS5cbiAgICAgICAgYWRkQ2hhbmdlUmVhc29uKFxuICAgICAgICAgICAgYFVuZnJvemUgYSBrZXkgZm9yIFxcYCR7cmV2b2NhdGlvbi5pcH1cXGAuIEl0IHdhcyBmcm96ZW4gZm9yIGJlaW5nIHVzZWQgZnJvbSB0aGVyZSwgYW5kYFxuICAgICAgICAgICAgKyBgICR7dW5yZXZva2VJZH0gc2F5cyB0aGF0IGFkZHJlc3MgaXMgYWxsb3dlZCBhZnRlciBhbGwuYFxuICAgICAgICApO1xuICAgIH1cbn1cblxuLyoqIFJlcG9ydHMgZWFjaCByZXZvY2F0aW9uIHRoZSBmaXJzdCB0aW1lIGl0IGFjdHVhbGx5IHRha2VzIGEga2V5IG91dCBvZiB0aGlzIG1hY2hpbmUncyBmaWxlLiBUaGVcbiAgICBkcm9wcGluZyBpdHNlbGYgaGFwcGVucyBpbiByZWFkU2lnbmVkUmVwbywgd2hpY2ggc3RyaXBzIHJldm9rZWQga2V5cyBiZWZvcmUgYW55dGhpbmcgcmVhZHMgdGhlbVxuICAgIC0gdGhpcyBvbmx5IHNheXMgc28sIGFuZCBraWxscyB3aGF0ZXZlciBzZXNzaW9ucyB0aGUga2V5IHdhcyBob2xkaW5nIG9wZW4uICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVwb3J0UmV2b2tlZEtleXMoKSB7XG4gICAgbGV0IHN0YXRlID0gZ2V0U3RhdGUoKTtcbiAgICBmb3IgKGxldCByZXZvY2F0aW9uIG9mIE9iamVjdC52YWx1ZXMoc3RhdGUucmV2b2NhdGlvbnMpKSB7XG4gICAgICAgIGlmIChyZXZvY2F0aW9uLnVucmV2b2tlZCB8fCByZXZvY2F0aW9uLnJlcG9ydGVkUmVtb3ZlZCkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV2b2NhdGlvbi5yZXBvcnRlZFJlbW92ZWQgPSB0cnVlO1xuICAgICAgICBhd2FpdCBzYXZlU3RhdGUoKTtcbiAgICAgICAgLy8gTm90aGluZyB0byBkbyBpZiB0aGUga2V5IGlzIG5vdCBpbiB0aGUgZmlsZS4gSXQgbGVmdCBsb25nIGFnbywgYW5kIHRoaXMgaXMgYSBtYWNoaW5lIHRoYXRcbiAgICAgICAgLy8gcmVzdGFydGVkIGFuZCByZWFkIHRoZSByZXZvY2F0aW9uIGJhY2sgb3V0IG9mIHRoZSByZXBvLlxuICAgICAgICBsZXQga2V5ID0gc3RhdGUuYXBwbGllZEtleXMuZmluZChhcHBsaWVkID0+IGtleUZpbmdlcnByaW50KGFwcGxpZWQpID09PSByZXZvY2F0aW9uLmZpbmdlcnByaW50KTtcbiAgICAgICAgaWYgKCFrZXkpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIC8vIFdoYXRldmVyIHRoYXQga2V5IGlzIGhvbGRpbmcgb3BlbiBnb2VzIHdpdGggaXQuXG4gICAgICAgIGxldCBlbmRlZCA9IGRlc2NyaWJlQWxsRW5kZWQoYXdhaXQgZW5kQWxsU1NIU2Vzc2lvbnMoKSk7XG4gICAgICAgIGFkZExlYWRpbmdDaGFuZ2VSZWFzb24oe1xuICAgICAgICAgICAgaGVhZGxpbmU6IGBTVVNQSUNJT1VTIElQICR7cmV2b2NhdGlvbi5pcCB8fCBcInVua25vd25cIn0gRlJPWkUgS0VZICR7a2V5TmljZU5hbWUoa2V5KX1gLFxuICAgICAgICAgICAgYm9keTpcbiAgICAgICAgICAgICAgICBgQW5vdGhlciBtYWNoaW5lIHNhdyB0aGlzIGtleSB1c2VkIGZyb20gYW4gYWRkcmVzcyBpdCBpcyBub3QgYWxsb3dlZCBmcm9tLCBhbmRgXG4gICAgICAgICAgICAgICAgKyBgIGZyb3plIGl0IGV2ZXJ5d2hlcmUuIFRoaXMgbWFjaGluZSBoYXMgc3RvcHBlZCBhY2NlcHRpbmcgaXQgdG9vLiR7ZW5kZWR9YFxuICAgICAgICAgICAgICAgICsgYFxcblxcbmtleTogXFxgJHtzdW1tYXJpemVLZXkoa2V5KX1cXGBgXG4gICAgICAgICAgICAgICAgKyBgXFxuJHtkZXNjcmliZVJldm9jYXRpb24ocmV2b2NhdGlvbil9YCxcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|
|
321
|
-
/* _JS_SOURCE_HASH = "
|
|
321
|
+
/* _JS_SOURCE_HASH = "1226c9536dc529f80f862418c1a8dd08fc2b5c97d5c7ddeb04594cfdac5c8915"; */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
3
|
return (mod && mod.__esModule && mod.default) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
@@ -144,4 +144,4 @@ function describeEndedSessions(ended) {
|
|
|
144
144
|
}
|
|
145
145
|
exports.describeEndedSessions = describeEndedSessions;
|
|
146
146
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzZXNzaW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwyREFBNkI7QUFDN0IsK0NBQW1EO0FBQ25ELG1DQUF3QztBQUV4QyxtR0FBbUc7QUFDbkcsNkZBQTZGO0FBQzdGLHVDQUF1QztBQUN2QyxFQUFFO0FBQ0YsbUdBQW1HO0FBQ25HLDZFQUE2RTtBQUM3RSxNQUFNLFFBQVEsR0FBRyx5SEFBeUgsQ0FBQztBQUkzSSxTQUFnQixxQkFBcUIsQ0FBQyxRQUFnQixFQUFFLFdBQW1CO0lBQ3ZFLElBQUksUUFBUSxHQUFpQixFQUFFLENBQUM7SUFDaEMsS0FBSyxJQUFJLElBQUksSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDcEMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUNyQyxTQUFTO1FBQ2IsQ0FBQztRQUNELFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNqRyxDQUFDO0lBQ0QsT0FBTyxRQUFRLENBQUM7QUFDcEIsQ0FBQztBQVZELHNEQVVDO0FBRUQ7aUZBQ2lGO0FBQ2pGLEtBQUssVUFBVSxZQUFZLENBQUMsU0FBaUI7SUFDekMsSUFBSSxDQUFDO1FBQ0QsSUFBSSxJQUFJLEdBQUcsTUFBTSxrQkFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLFNBQVMsT0FB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SyxDQUFDLE1BQU0sb0JBQW9CLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDO0FBckJELDhDQXFCQztBQUVELFNBQWdCLGdCQUFnQixDQUFDLEtBQWU7SUFDNUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoQixPQUFPLHlCQUF5QixDQUFDO0lBQ3JDLENBQUM7SUFDRCxPQUFPLHdEQUF3RCxLQUFLLENBQUMsTUFBTSxXQUFXLENBQUM7QUFDM0YsQ0FBQztBQUxELDRDQUtDO0FBRUQsU0FBZ0IscUJBQXFCLENBQUMsS0FBbUI7SUFDckQsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoQixPQUFPLGlDQUFpQyxDQUFDO0lBQzdDLENBQUM7SUFDRCxPQUFPLElBQUksS0FBSyxDQUFDLE1BQU0seUNBQXlDO1VBQzFELEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLEVBQUUsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQ2pHLENBQUM7QUFORCxzREFNQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmcyBmcm9tIFwiZnMvcHJvbWlzZXNcIjtcbmltcG9ydCB7IHNwYXduUHJvbWlzZSB9IGZyb20gXCIuLi8uLi9oZWxwZXJzL3NwYXduXCI7XG5pbXBvcnQgeyBBVVRIX0xPR19QQVRIIH0gZnJvbSBcIi4vcGF0aHNcIjtcblxuLy8gVGFraW5nIGEga2V5IG91dCBvZiBhdXRob3JpemVkX2tleXMgb25seSBzdG9wcyB0aGUgbmV4dCBsb2dpbi4gV2hvZXZlciBpcyBhbHJlYWR5IGNvbm5lY3RlZCB3aXRoXG4vLyBpdCBzdGF5cyBjb25uZWN0ZWQgZm9yIGFzIGxvbmcgYXMgdGhleSBsaWtlLCB3aGljaCB3b3VsZCBtYWtlIHJldm9raW5nIGEga2V5IHRoYXQgaXMgYmVpbmdcbi8vIGFjdGl2ZWx5IG1pc3VzZWQgY2xvc2UgdG8gcG9pbnRsZXNzLlxuLy9cbi8vIHNzaGQgbmFtZXMgdGhlIGtleSBpdCBhY2NlcHRlZCBhbmQgdGhlIHByb2Nlc3MgaGFuZGxpbmcgdGhhdCBjb25uZWN0aW9uIG9uIHRoZSBzYW1lIGxpbmUsIHNvIHRoZVxuLy8gc2Vzc2lvbnMgYmVsb25naW5nIHRvIG9uZSBrZXkgY2FuIGJlIGVuZGVkIHdpdGhvdXQgdG91Y2hpbmcgYW55b25lIGVsc2Uncy5cbmNvbnN0IEFDQ0VQVEVEID0gLyg/OnNzaGR8c3NoZC1zZXNzaW9uKVxcWyhcXGQrKVxcXTpcXHMrQWNjZXB0ZWQgcHVibGlja2V5IGZvciAoXFxTKykgZnJvbSAoXFxTKykgcG9ydCAoXFxkKykgc3NoMjogXFxTKyAoU0hBMjU2OltBLVphLXowLTkrLz1dKykvO1xuXG5leHBvcnQgdHlwZSBLZXlTZXNzaW9uID0geyBwcm9jZXNzSWQ6IG51bWJlcjsgdXNlcjogc3RyaW5nOyBpcDogc3RyaW5nOyBwb3J0OiBzdHJpbmcgfTtcblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQWNjZXB0ZWRTZXNzaW9ucyhjb250ZW50czogc3RyaW5nLCBmaW5nZXJwcmludDogc3RyaW5nKSB7XG4gICAgbGV0IHNlc3Npb25zOiBLZXlTZXNzaW9uW10gPSBbXTtcbiAgICBmb3IgKGxldCBsaW5lIG9mIGNvbnRlbnRzLnNwbGl0KFwiXFxuXCIpKSB7XG4gICAgICAgIGxldCBtYXRjaCA9IGxpbmUubWF0Y2goQUNDRVBURUQpO1xuICAgICAgICBpZiAoIW1hdGNoIHx8IG1hdGNoWzVdICE9PSBmaW5nZXJwcmludCkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgc2Vzc2lvbnMucHVzaCh7IHByb2Nlc3NJZDogTnVtYmVyKG1hdGNoWzFdKSwgdXNlcjogbWF0Y2hbMl0sIGlwOiBtYXRjaFszXSwgcG9ydDogbWF0Y2hbNF0gfSk7XG4gICAgfVxuICAgIHJldHVybiBzZXNzaW9ucztcbn1cblxuLyoqIFByb2Nlc3MgaWRzIGFyZSByZXVzZWQsIHNvIG9uZSBpcyBvbmx5IGtpbGxlZCB3aGVuIGl0IGlzIHN0aWxsIGFuIHNzaCBzZXNzaW9uLiBLaWxsaW5nIHdoYXRldmVyXG4gICAgaGFwcGVucyB0byBob2xkIHRoYXQgbnVtYmVyIG5vdyB3b3VsZCBiZSBmYXIgd29yc2UgdGhhbiBtaXNzaW5nIGEgc2Vzc2lvbi4gKi9cbmFzeW5jIGZ1bmN0aW9uIGlzU1NIU2Vzc2lvbihwcm9jZXNzSWQ6IG51bWJlcikge1xuICAgIHRyeSB7XG4gICAgICAgIGxldCBuYW1lID0gYXdhaXQgZnMucmVhZEZpbGUoYC9wcm9jLyR7cHJvY2Vzc0lkfS9jb21tYCwgXCJ1dGY4XCIpO1xuICAgICAgICByZXR1cm4gbmFtZS50cmltKCkuc3RhcnRzV2l0aChcInNzaGRcIik7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuXG4vKiogVGhlIHdob2xlIGxvZywgbm90IG9ubHkgd2hhdCBpcyBuZXcsIGJlY2F1c2UgdGhlIHNlc3Npb24gYmVpbmcgZW5kZWQgbWF5IGhhdmUgYmVlbiBlc3RhYmxpc2hlZFxuICAgIGxvbmcgYmVmb3JlIHRoZSBrZXkgd2FzIG1pc3VzZWQuICovXG5hc3luYyBmdW5jdGlvbiByZWFkV2hvbGVBdXRoTG9nKCkge1xuICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBhd2FpdCBmcy5yZWFkRmlsZShBVVRIX0xPR19QQVRILCBcInV0ZjhcIik7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgc3Bhd25Qcm9taXNlKHtcbiAgICAgICAgICAgIGNvbW1hbmQ6IFwiam91cm5hbGN0bFwiLFxuICAgICAgICAgICAgYXJnczogW1wiLXVcIiwgXCJzc2hcIiwgXCItdVwiLCBcInNzaGRcIiwgXCItLW5vLXBhZ2VyXCIsIFwiLS1zaW5jZVwiLCBcIi0zMGRheXNcIl0sXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcmVzdWx0LnN0YXR1cyA9PT0gMCAmJiByZXN1bHQuc3Rkb3V0IHx8IFwiXCI7XG4gICAgfVxufVxuXG4vKiogRW5kcyBldmVyeSBsaXZlIHNlc3Npb24gdGhhdCBhdXRoZW50aWNhdGVkIHdpdGggdGhpcyBrZXkuIFJldHVybnMgd2hhdCB3YXMgZW5kZWQsIHNvIHRoZVxuICAgIHJldm9jYXRpb24gY2FuIHNheSBzbyByYXRoZXIgdGhhbiBsZWF2aW5nIGl0IHRvIGJlIGRpc2NvdmVyZWQuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZW5kU2Vzc2lvbnNVc2luZ0tleShmaW5nZXJwcmludDogc3RyaW5nKSB7XG4gICAgbGV0IGVuZGVkOiBLZXlTZXNzaW9uW10gPSBbXTtcbiAgICBmb3IgKGxldCBzZXNzaW9uIG9mIHBhcnNlQWNjZXB0ZWRTZXNzaW9ucyhhd2FpdCByZWFkV2hvbGVBdXRoTG9nKCksIGZpbmdlcnByaW50KSkge1xuICAgICAgICBpZiAoc2Vzc2lvbi5wcm9jZXNzSWQgPD0gMSB8fCBzZXNzaW9uLnByb2Nlc3NJZCA9PT0gcHJvY2Vzcy5waWQpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICghYXdhaXQgaXNTU0hTZXNzaW9uKHNlc3Npb24ucHJvY2Vzc0lkKSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHByb2Nlc3Mua2lsbChzZXNzaW9uLnByb2Nlc3NJZCwgXCJTSUdLSUxMXCIpO1xuICAgICAgICAgICAgZW5kZWQucHVzaChzZXNzaW9uKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBFbmRlZCBzc2ggc2Vzc2lvbiAke3Nlc3Npb24ucHJvY2Vzc0lkfSAoJHtzZXNzaW9uLnVzZXJ9IGZyb20gJHtzZXNzaW9uLmlwfSksIGl0IHVzZWQgJHtmaW5nZXJwcmludH1gKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgLy8gR29uZSBiZXR3ZWVuIGxvb2tpbmcgYW5kIGtpbGxpbmcsIHdoaWNoIGlzIHRoZSBvdXRjb21lIHdlIHdhbnRlZCBhbnl3YXkuXG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGVuZGVkO1xufVxuXG4vKiogV2hldGhlciB0aGlzIHByb2Nlc3MgaXMgb25lIGNvbm5lY3Rpb24uIFRoZSBsaXN0ZW5lciBpcyBub3QgYSBjb25uZWN0aW9uIC0gaXQgaXMgdGhlIHByb2Nlc3NcbiAgICB0aGF0IGFjY2VwdHMgdGhlbSAtIHNvIGl0IGlzIG5vdCBhIGNhbmRpZGF0ZSBoZXJlIGF0IGFsbC5cblxuICAgIEV2ZXJ5IG9wZW5zc2ggc2luY2UgOS44IHJ1bnMgZWFjaCBjb25uZWN0aW9uIGFzIGl0cyBvd24gc3NoZC1zZXNzaW9uLiBPbiBvbGRlciBvbmVzIGNvbm5lY3Rpb25zXG4gICAgYXJlIG5hbWVkIHNzaGQgdG9vLCBhbmQgdGhlIGxpc3RlbmVyIGlzIHRoZSBvbmUgc3lzdGVtZCBzdGFydGVkIGRpcmVjdGx5IHdpdGggLUQuICovXG5hc3luYyBmdW5jdGlvbiBpc0Nvbm5lY3Rpb25Qcm9jZXNzKHByb2Nlc3NJZDogbnVtYmVyKSB7XG4gICAgbGV0IG5hbWU6IHN0cmluZztcbiAgICB0cnkge1xuICAgICAgICBuYW1lID0gKGF3YWl0IGZzLnJlYWRGaWxlKGAvcHJvYy8ke3Byb2Nlc3NJZH0vY29tbWAsIFwidXRmOFwiKSkudHJpbSgpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAobmFtZSA9PT0gXCJzc2hkLXNlc3Npb25cIikge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKG5hbWUgIT09IFwic3NoZFwiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgbGV0IGNvbW1hbmRMaW5lID0gYXdhaXQgZnMucmVhZEZpbGUoYC9wcm9jLyR7cHJvY2Vzc0lkfS9jbWRsaW5lYCwgXCJ1dGY4XCIpLmNhdGNoKCgpID0+IFwiXCIpO1xuICAgIGxldCBwYXJlbnRJZCA9IE51bWJlcigoYXdhaXQgZnMucmVhZEZpbGUoYC9wcm9jLyR7cHJvY2Vzc0lkfS9zdGF0YCwgXCJ1dGY4XCIpLmNhdGNoKCgpID0+IFwiXCIpKS5zcGxpdChcIikgXCIpWzFdPy5zcGxpdChcIiBcIilbMV0gfHwgMCk7XG4gICAgcmV0dXJuICFjb21tYW5kTGluZS5pbmNsdWRlcyhcIi1EXCIpICYmIHBhcmVudElkICE9PSAxO1xufVxuXG4vKiogRGlzY29ubmVjdHMgZXZlcnkgc3NoIHNlc3Npb24gb24gdGhlIG1hY2hpbmUuXG5cbiAgICBOb3Qgb25seSB0aGUgb25lcyB1c2luZyB0aGUga2V5IHRoYXQgd2FzIGp1c3QgdGFrZW4gYXdheTogYSBzZXNzaW9uIHRoYXQgcHJlZGF0ZXMgdGhlIGtleSBiZWluZ1xuICAgIHJlbW92ZWQgaXMgZXhhY3RseSBhcyBkYW5nZXJvdXMsIGFuZCB3b3JraW5nIG91dCB3aGljaCBzZXNzaW9ucyBhcmUgc3RpbGwgZW50aXRsZWQgdG8gYmUgaGVyZVxuICAgIGlzIGd1ZXNzd29yay4gQW55b25lIHdobyBzdGlsbCBoYXMgYWNjZXNzIGNhbiByZWNvbm5lY3QgaW4gYSBzZWNvbmQsIGFuZCBhbnlvbmUgd2hvIGRvZXMgbm90XG4gICAgc2hvdWxkIG5vdCBiZSBoZXJlLiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGVuZEFsbFNTSFNlc3Npb25zKCkge1xuICAgIGxldCBlbmRlZDogbnVtYmVyW10gPSBbXTtcbiAgICBmb3IgKGxldCBlbnRyeSBvZiBhd2FpdCBmcy5yZWFkZGlyKFwiL3Byb2NcIikpIHtcbiAgICAgICAgbGV0IHByb2Nlc3NJZCA9IE51bWJlcihlbnRyeSk7XG4gICAgICAgIGlmICghcHJvY2Vzc0lkIHx8IHByb2Nlc3NJZCA8PSAxIHx8IHByb2Nlc3NJZCA9PT0gcHJvY2Vzcy5waWQpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICghYXdhaXQgaXNDb25uZWN0aW9uUHJvY2Vzcyhwcm9jZXNzSWQpKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcHJvY2Vzcy5raWxsKHByb2Nlc3NJZCwgXCJTSUdLSUxMXCIpO1xuICAgICAgICAgICAgZW5kZWQucHVzaChwcm9jZXNzSWQpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAvLyBHb25lIGJldHdlZW4gbG9va2luZyBhbmQga2lsbGluZywgd2hpY2ggaXMgdGhlIG91dGNvbWUgd2Ugd2FudGVkIGFueXdheS5cbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoZW5kZWQubGVuZ3RoKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBEaXNjb25uZWN0ZWQgJHtlbmRlZC5sZW5ndGh9IHNzaCBzZXNzaW9uKHMpOiAke2VuZGVkLmpvaW4oXCIsIFwiKX1gKTtcbiAgICB9XG4gICAgcmV0dXJuIGVuZGVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVzY3JpYmVBbGxFbmRlZChlbmRlZDogbnVtYmVyW10pIHtcbiAgICBpZiAoIWVuZGVkLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gXCIgTm90aGluZyB3YXMgY29ubmVjdGVkLlwiO1xuICAgIH1cbiAgICByZXR1cm4gYCBFdmVyeSBzc2ggc2Vzc2lvbiBvbiB0aGlzIG1hY2hpbmUgd2FzIGRpc2Nvbm5lY3RlZCwgJHtlbmRlZC5sZW5ndGh9IG9mIHRoZW0uYDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlc2NyaWJlRW5kZWRTZXNzaW9ucyhlbmRlZDogS2V5U2Vzc2lvbltdKSB7XG4gICAgaWYgKCFlbmRlZC5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIFwiIE5vdGhpbmcgd2FzIGNvbm5lY3RlZCB3aXRoIGl0LlwiO1xuICAgIH1cbiAgICByZXR1cm4gYCAke2VuZGVkLmxlbmd0aH0gbGl2ZSBzZXNzaW9uKHMpIHVzaW5nIGl0IHdlcmUga2lsbGVkOiBgXG4gICAgICAgICsgZW5kZWQubWFwKHNlc3Npb24gPT4gYCR7c2Vzc2lvbi51c2VyfUAke3Nlc3Npb24uaXB9OiR7c2Vzc2lvbi5wb3J0fWApLmpvaW4oXCIsIFwiKSArIFwiLlwiO1xufVxuIl19
|
|
147
|
-
/* _JS_SOURCE_HASH = "
|
|
147
|
+
/* _JS_SOURCE_HASH = "cf2ea8f23e7beb7a09486c083165a234b4ab5ff28fd30dc6d6a9f582ff201eaf"; */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
3
|
return (mod && mod.__esModule && mod.default) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
@@ -73,4 +73,4 @@ async function saveState() {
|
|
|
73
73
|
}
|
|
74
74
|
exports.saveState = saveState;
|
|
75
75
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwyREFBNkI7QUFDN0IsZ0RBQXdCO0FBQ3hCLG1DQUFxQztBQXVFckMsSUFBSSxLQUFLLEdBQWdCO0lBQ3JCLE9BQU8sRUFBRSxFQUFFO0lBQ1gsYUFBYSxFQUFFLEVBQUU7SUFDakIsV0FBVyxFQUFFLEVBQUU7SUFDZixrQkFBa0IsRUFBRSxFQUFFO0lBQ3RCLFdBQVcsRUFBRSxFQUFFO0lBQ2YsYUFBYSxFQUFFLENBQUM7SUFDaEIsZ0JBQWdCLEVBQUUsRUFBRTtDQUN2QixDQUFDO0FBRUYsU0FBZ0IsUUFBUTtJQUNwQixPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDO0FBRkQsNEJBRUM7QUFFRCxzRkFBc0Y7QUFDdEYsU0FBZ0IsV0FBVyxDQUFDLE9BQWU7SUFDdkMsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0QyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQ1gsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztJQUNELElBQUksT0FBTyxHQUFnQjtRQUN2QixPQUFPLEVBQUUsRUFBRTtRQUNYLE1BQU0sRUFBRSxFQUFFO1FBQ1YsUUFBUSxFQUFFLEtBQUs7UUFDZixjQUFjLEVBQUUsRUFBRTtRQUNsQixZQUFZLEVBQUUsRUFBRTtRQUNoQixvQkFBb0IsRUFBRSxFQUFFO1FBQ3hCLHFCQUFxQixFQUFFLEVBQUU7UUFDekIsYUFBYSxFQUFFLEVBQUU7UUFDakIsWUFBWSxFQUFFLENBQUM7UUFDZixlQUFlLEVBQUUsRUFBRTtLQUN0QixDQUFDO0lBQ0YsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxPQUFPLENBQUM7SUFDakMsT0FBTyxPQUFPLENBQUM7QUFDbkIsQ0FBQztBQW5CRCxrQ0FtQkM7QUFFTSxLQUFLLFVBQVUsU0FBUztJQUMzQixJQUFJLFFBQVEsQ0FBQztJQUNiLElBQUksQ0FBQztRQUNELFFBQVEsR0FBRyxNQUFNLGtCQUFFLENBQUMsUUFBUSxDQUFDLGtCQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDVCxPQUFPO0lBQ1gsQ0FBQztJQUNELElBQUksQ0FBQztRQUNELElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEMsd0ZBQXdGO1FBQ3hGLDBEQUEwRDtRQUMxRCxPQUFPLE1BQU0sQ0FBQyxXQUFXLENBQUM7UUFDMUIsd0ZBQXdGO1FBQ3hGLDZFQUE2RTtRQUM3RSxPQUFPLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQztRQUNoQyxLQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDVCwyRkFBMkY7UUFDM0YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQ0FBa0Msa0JBQVUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7QUFDTCxDQUFDO0FBcEJELDhCQW9CQztBQUVNLEtBQUssVUFBVSxTQUFTO0lBQzNCLElBQUksRUFBRSxXQUFXLEVBQUUsR0FBRyxTQUFTLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFDMUMsTUFBTSxrQkFBRSxDQUFDLEtBQUssQ0FBQyxjQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFVLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzlELE1BQU0sa0JBQUUsQ0FBQyxTQUFTLENBQUMsa0JBQVUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztBQUM3RixDQUFDO0FBSkQsOEJBSUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZnMgZnJvbSBcImZzL3Byb21pc2VzXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgU1RBVEVfUEFUSCB9IGZyb20gXCIuL3BhdGhzXCI7XG5cbi8qKiBXaGF0IHdlIGxhc3QgZGVjaWRlZCB0byB0cnVzdCBmb3Igb25lIHNvdXJjZSwga2VwdCBvbiBkaXNrIHNvIG5vYm9keSBjYW4gdGVsbCB1cyBhIGRpZmZlcmVudFxuICAgIHN0b3J5IGFib3V0IHdoYXQgd2Ugc2F3IGxhc3QgdGltZS4gKi9cbmV4cG9ydCB0eXBlIFNvdXJjZVN0YXRlID0ge1xuICAgIGxhc3RTaGE6IHN0cmluZztcbiAgICBicmFuY2g6IHN0cmluZztcbiAgICBhY2NlcHRlZDogYm9vbGVhbjtcbiAgICBhY2NlcHRlZFNpZ25lcjogc3RyaW5nO1xuICAgIGFjY2VwdGVkS2V5czogc3RyaW5nW107XG4gICAgYWNjZXB0ZWRNYW5pZmVzdEhhc2g6IHN0cmluZztcbiAgICBhY2NlcHRlZFNpZ25hdHVyZUhhc2g6IHN0cmluZztcbiAgICBwZW5kaW5nU2lnbmVyOiBzdHJpbmc7XG4gICAgcGVuZGluZ1NpbmNlOiBudW1iZXI7XG4gICAgcmVwb3J0ZWRQcm9ibGVtOiBzdHJpbmc7XG59O1xuXG4vKiogT25lIHJldm9jYXRpb24gZXZlbnQ6IHRoaXMga2V5LCB1c2VkIGZyb20gdGhpcyBhZGRyZXNzLCBzbyBpdCBpcyBubyBsb25nZXIgYWNjZXB0ZWQuIEtlcHQgZXZlblxuICAgIHdoZW4gdGhlIHJldm9rZSByZXBvIG5vIGxvbmdlciBsaXN0cyBpdDogdGhlIGRlcGxveSBrZXkgdGhhdCB3cml0ZXMgcmV2b2NhdGlvbnMgbGl2ZXMgb24gZXZlcnlcbiAgICBzZXJ2ZXIsIHNvIGFuIGF0dGFja2VyIHdobyB0b29rIG9uZSBjb3VsZCBvdGhlcndpc2UgZGVsZXRlIHRoZSByZXZvY2F0aW9uIHRoYXQgbG9ja2VkIHRoZW0gb3V0LlxuXG4gICAgVGhlIGlkIGlzIHVuaXF1ZSB0byB0aGUgZXZlbnQsIG5ldmVyIGRlcml2ZWQgZnJvbSB0aGUga2V5LiBBIGtleSB0aGF0IGhhcyBiZWVuIGZvcmdpdmVuIGZvciBvbmVcbiAgICBhZGRyZXNzIGlzIHN0aWxsIGFuIG9yZGluYXJ5IGtleSwgYW5kIHVzaW5nIGl0IGZyb20gc29tZSBvdGhlciBhZGRyZXNzIHJldm9rZXMgaXQgYWdhaW4sIHdpdGggYVxuICAgIG5ldyBpZCB0aGF0IG5vIGV4aXN0aW5nIHVucmV2b2tlIG5hbWVzLiAqL1xuZXhwb3J0IHR5cGUgUmV2b2NhdGlvblN0YXRlID0ge1xuICAgIHJldm9jYXRpb25JZDogc3RyaW5nO1xuICAgIGZpbmdlcnByaW50OiBzdHJpbmc7XG4gICAgLy8gVGhlIGFkZHJlc3MgaXQgd2FzIHVzZWQgZnJvbS4gSGFsZiBvZiB3aGF0IGEgcmV2b2NhdGlvbiBzYXlzLCBhbmQgdGhlIGhhbGYgYW4gdW5yZXZva2UgaGFzXG4gICAgLy8gdG8gbmFtZSB0byB1bmRvIGl0LlxuICAgIGlwOiBzdHJpbmc7XG4gICAgLy8gV2h5IHRoaXMga2V5IHdhcyByZXZva2VkLCBjYXJyaWVkIGZyb20gdGhlIHJldm9jYXRpb24gZmlsZSBzbyBhIG1hY2hpbmUgdGhhdCByZWFkcyBvbmVcbiAgICAvLyB3cml0dGVuIGVsc2V3aGVyZSBjYW4gc2F5IHdoYXQgaGFwcGVuZWQgcmF0aGVyIHRoYW4gb25seSB0aGF0IHNvbWV0aGluZyBkaWQuXG4gICAgcmV2b2tlZEF0OiBzdHJpbmc7XG4gICAgcmV2b2tlZEJ5OiBzdHJpbmc7XG4gICAgcmVhc29uOiBzdHJpbmc7XG4gICAgLy8gV2hpY2ggdW5yZXZva2UgYWxsb3dlZCB0aGlzIGtleSBmcm9tIHRoaXMgYWRkcmVzcywgb25jZSBvbmUgaGFzIGJlZW4gc2Vlbi5cbiAgICB1bnJldm9rZUlkOiBzdHJpbmc7XG4gICAgdW5yZXZva2VkOiBib29sZWFuO1xuICAgIC8vIFdoZXRoZXIgd2UgaGF2ZSBzYWlkIHRoYXQgdGhpcyBrZXkgYWN0dWFsbHkgbGVmdCByb290J3MgYXV0aG9yaXplZF9rZXlzLiBUaGUgcmVtb3ZhbCBpcyB0aGVcbiAgICAvLyB0aGluZyB3b3J0aCByZXBvcnRpbmcsIGFuZCBpdCBpcyB3b3J0aCByZXBvcnRpbmcgZXhhY3RseSBvbmNlLlxuICAgIHJlcG9ydGVkUmVtb3ZlZDogYm9vbGVhbjtcbn07XG5cbi8qKiBBIHJlZnVzYWwgd2Ugc2F3IGJ1dCBjb3VsZCBub3Qgd3JpdGUgZG93biB5ZXQuIEhlbGQgdW50aWwgaXQgaXMgcmVjb3JkZWQsIGJlY2F1c2UgdGhlIGxvZyBpc1xuICAgIHJlYWQgb25jZSBhbmQgbW92ZXMgb246IGxvc2luZyBvbmUgb2YgdGhlc2UgdG8gYSByZXBvIHRoYXQgaGFwcGVuZWQgdG8gYmUgdW5yZWFjaGFibGUgd291bGRcbiAgICBsZWF2ZSBhIGtleSB0aGF0IHdhcyBtaXN1c2VkIGFjY2VwdGVkIGZvcmV2ZXIuICovXG5leHBvcnQgdHlwZSBQZW5kaW5nUmV2b2NhdGlvbiA9IHtcbiAgICBmaW5nZXJwcmludDogc3RyaW5nO1xuICAgIGtleUxpbmU6IHN0cmluZztcbiAgICBzb3VyY2VVUkw6IHN0cmluZztcbiAgICBhdHRlbXB0OiB7IGlwOiBzdHJpbmc7IHVzZXI6IHN0cmluZzsgcG9ydDogc3RyaW5nOyByZXF1aXJlZDogc3RyaW5nOyBsaW5lOiBzdHJpbmcgfTtcbn07XG5cbmV4cG9ydCB0eXBlIERhZW1vblN0YXRlID0ge1xuICAgIHNvdXJjZXM6IHsgW3JlcG9VUkw6IHN0cmluZ106IFNvdXJjZVN0YXRlIH07XG4gICAgdXNlcktleUhhc2hlczogeyBbdXNlck5hbWU6IHN0cmluZ106IHN0cmluZyB9O1xuICAgIC8vIEhlbGQgaW4gbWVtb3J5IG9ubHksIG5ldmVyIHdyaXR0ZW4gdG8gZGlzay4gRGVsZXRpbmcgYSByZXZvY2F0aW9uIGZyb20gdGhlIHJldm9rZSByZXBvIGRvZXNcbiAgICAvLyBub3QgYnJpbmcgYSBrZXkgYmFjaywgYmVjYXVzZSB0aGlzIG1hY2hpbmUgc3RpbGwgcmVtZW1iZXJzIGl0IC0gdGhlIGtleSB0aGF0IHdyaXRlc1xuICAgIC8vIHJldm9jYXRpb25zIGlzIG9uIGV2ZXJ5IHNlcnZlciwgc28gd2hvZXZlciBzdG9sZSBvbmUgY291bGQgb3RoZXJ3aXNlIGVyYXNlIHRoZSByZWNvcmQgdGhhdFxuICAgIC8vIHNodXQgdGhlbSBvdXQuIFJlc3RhcnRpbmcgdGhlIGRhZW1vbiBkb2VzIGNsZWFyIGl0LCB3aGljaCBpcyB0aGUgd2F5IGJhY2sgZnJvbSBhIHJldm9jYXRpb25cbiAgICAvLyB0aGF0IHNob3VsZCBub3QgaGF2ZSBoYXBwZW5lZC5cbiAgICByZXZvY2F0aW9uczogeyBbcmV2b2NhdGlvbklkOiBzdHJpbmddOiBSZXZvY2F0aW9uU3RhdGUgfTtcbiAgICBwZW5kaW5nUmV2b2NhdGlvbnM6IFBlbmRpbmdSZXZvY2F0aW9uW107XG4gICAgLy8gVGhlIGtleXMgd2UgbGFzdCB3cm90ZSBvdXQuIFdoYXQgdGVsbHMgYSBjaGFuZ2Ugd2UgbWFkZSBhcGFydCBmcm9tIG9uZSBzb21lYm9keSBlbHNlIG1hZGU6XG4gICAgLy8gaWYgdGhpcyBzdGlsbCBtYXRjaGVzIHdoYXQgd2Ugd2FudCwgYW5kIHRoZSBmaWxlIGRvZXMgbm90LCB0aGUgZmlsZSB3YXMgZWRpdGVkIGJlaGluZCB1cy5cbiAgICBhcHBsaWVkS2V5czogc3RyaW5nW107XG4gICAgLy8gV2hlcmUgd2UgaGFkIHJlYWQgdXAgdG8gaW4gdGhlIGF1dGggbG9nLCBzbyBhIHJlc3RhcnQgZG9lcyBub3QgcmUtcmVwb3J0IG9sZCBhdHRlbXB0cy5cbiAgICBhdXRoTG9nT2Zmc2V0OiBudW1iZXI7XG4gICAgYXV0aExvZ1NpZ25hdHVyZTogc3RyaW5nO1xufTtcblxubGV0IHN0YXRlOiBEYWVtb25TdGF0ZSA9IHtcbiAgICBzb3VyY2VzOiB7fSxcbiAgICB1c2VyS2V5SGFzaGVzOiB7fSxcbiAgICByZXZvY2F0aW9uczoge30sXG4gICAgcGVuZGluZ1Jldm9jYXRpb25zOiBbXSxcbiAgICBhcHBsaWVkS2V5czogW10sXG4gICAgYXV0aExvZ09mZnNldDogMCxcbiAgICBhdXRoTG9nU2lnbmF0dXJlOiBcIlwiLFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFN0YXRlKCkge1xuICAgIHJldHVybiBzdGF0ZTtcbn1cblxuLyoqIFBlciBzb3VyY2UgcHJvZ3Jlc3MsIGNyZWF0ZWQgb24gZmlyc3QgdXNlIHNvIGEgbmV3bHkgYWRkZWQgc291cmNlIHN0YXJ0cyBjbGVhbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzb3VyY2VTdGF0ZShyZXBvVVJMOiBzdHJpbmcpIHtcbiAgICBsZXQgZXhpc3RpbmcgPSBzdGF0ZS5zb3VyY2VzW3JlcG9VUkxdO1xuICAgIGlmIChleGlzdGluZykge1xuICAgICAgICByZXR1cm4gZXhpc3Rpbmc7XG4gICAgfVxuICAgIGxldCBjcmVhdGVkOiBTb3VyY2VTdGF0ZSA9IHtcbiAgICAgICAgbGFzdFNoYTogXCJcIixcbiAgICAgICAgYnJhbmNoOiBcIlwiLFxuICAgICAgICBhY2NlcHRlZDogZmFsc2UsXG4gICAgICAgIGFjY2VwdGVkU2lnbmVyOiBcIlwiLFxuICAgICAgICBhY2NlcHRlZEtleXM6IFtdLFxuICAgICAgICBhY2NlcHRlZE1hbmlmZXN0SGFzaDogXCJcIixcbiAgICAgICAgYWNjZXB0ZWRTaWduYXR1cmVIYXNoOiBcIlwiLFxuICAgICAgICBwZW5kaW5nU2lnbmVyOiBcIlwiLFxuICAgICAgICBwZW5kaW5nU2luY2U6IDAsXG4gICAgICAgIHJlcG9ydGVkUHJvYmxlbTogXCJcIixcbiAgICB9O1xuICAgIHN0YXRlLnNvdXJjZXNbcmVwb1VSTF0gPSBjcmVhdGVkO1xuICAgIHJldHVybiBjcmVhdGVkO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZFN0YXRlKCkge1xuICAgIGxldCBjb250ZW50cztcbiAgICB0cnkge1xuICAgICAgICBjb250ZW50cyA9IGF3YWl0IGZzLnJlYWRGaWxlKFNUQVRFX1BBVEgsIFwidXRmOFwiKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgbGV0IGxvYWRlZCA9IEpTT04ucGFyc2UoY29udGVudHMpO1xuICAgICAgICAvLyBSZXZvY2F0aW9ucyBhcmUgaGVsZCBpbiBtZW1vcnkgb25seSwgc28gd2hhdGV2ZXIgYW4gb2xkZXIgdmVyc2lvbiBsZWZ0IG9uIGRpc2sgaXMgbm90XG4gICAgICAgIC8vIHJlYWQgYmFjayBpbi4gU3RhcnRpbmcgdGhlIGRhZW1vbiBpcyB3aGF0IGZvcmdldHMgdGhlbS5cbiAgICAgICAgZGVsZXRlIGxvYWRlZC5yZXZvY2F0aW9ucztcbiAgICAgICAgLy8gV3JpdHRlbiBieSB0aGUgdmVyc2lvbnMgdGhhdCBtYWRlIGFuIHVucmV2b2tlIHdhaXQgYW4gaG91ciBiZWZvcmUgaXQgY291bnRlZC4gRHJvcHBlZFxuICAgICAgICAvLyByYXRoZXIgdGhhbiBjYXJyaWVkLCBzbyB0aGUgZmlsZSBzdG9wcyBtZW50aW9uaW5nIHNvbWV0aGluZyBub3RoaW5nIHJlYWRzLlxuICAgICAgICBkZWxldGUgbG9hZGVkLnVucmV2b2tlRmlyc3RTZWVuO1xuICAgICAgICBzdGF0ZSA9IE9iamVjdC5hc3NpZ24oc3RhdGUsIGxvYWRlZCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAvLyBDb3JydXB0IHN0YXRlIG9ubHkgY29zdHMgdXMgb25lIGR1cGxpY2F0ZSBub3RpZmljYXRpb24sIHNvIGl0IGlzIG5vdCB3b3J0aCBmYWlsaW5nIG92ZXIuXG4gICAgICAgIGNvbnNvbGUubG9nKGBJZ25vcmluZyB1bnJlYWRhYmxlIHN0YXRlIGZpbGUgJHtTVEFURV9QQVRIfS4gJHtlfWApO1xuICAgIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNhdmVTdGF0ZSgpIHtcbiAgICBsZXQgeyByZXZvY2F0aW9ucywgLi4ucGVyc2lzdGVkIH0gPSBzdGF0ZTtcbiAgICBhd2FpdCBmcy5ta2RpcihwYXRoLmRpcm5hbWUoU1RBVEVfUEFUSCksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgIGF3YWl0IGZzLndyaXRlRmlsZShTVEFURV9QQVRILCBKU09OLnN0cmluZ2lmeShwZXJzaXN0ZWQsIHVuZGVmaW5lZCwgNCksIHsgbW9kZTogMG82MDAgfSk7XG59XG4iXX0=
|
|
76
|
-
/* _JS_SOURCE_HASH = "
|
|
76
|
+
/* _JS_SOURCE_HASH = "5f3244d41e60fb49775e61b64e1d42130fbb22c884a4fab3ad36c04c1b141c0b"; */
|
|
@@ -1,14 +1,38 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
/// <reference types="node" />
|
|
3
3
|
export declare const UNSIGNED = "";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
export type Revocation = {
|
|
5
|
+
identity: string;
|
|
6
|
+
ip: string;
|
|
7
|
+
revokedAt: string;
|
|
8
|
+
revokedBy: string;
|
|
9
|
+
};
|
|
10
|
+
/** The revocation freezing an identity - a key fingerprint or a machine id - or nothing if it is
|
|
11
|
+
not frozen. The one meaning of "frozen", used both when stripping repo content and when
|
|
12
|
+
explaining why, and it hands back the revocation rather than a bare yes so that whoever has to
|
|
13
|
+
explain it can say which address it was, and when, instead of "an unapproved address". */
|
|
14
|
+
export declare function identityFrozenBy(identity: string): {
|
|
15
|
+
revocationId: string;
|
|
16
|
+
identity: string;
|
|
17
|
+
ip: string;
|
|
18
|
+
revokedAt: string;
|
|
19
|
+
revokedBy: string;
|
|
20
|
+
} | undefined;
|
|
21
|
+
/** Every revocation this process has absorbed, and whether an unrevoke has since forgiven it. For
|
|
22
|
+
anything showing the whole picture rather than asking about one identity. */
|
|
23
|
+
export declare function listRevocations(): {
|
|
24
|
+
revocationId: string;
|
|
25
|
+
forgiven: boolean;
|
|
26
|
+
identity: string;
|
|
27
|
+
ip: string;
|
|
28
|
+
revokedAt: string;
|
|
29
|
+
revokedBy: string;
|
|
30
|
+
}[];
|
|
7
31
|
export declare function isPairRevoked(identity: string, ip: string): boolean;
|
|
8
32
|
export declare function isPairUnrevoked(identity: string, ip: string): boolean;
|
|
9
33
|
/** For whoever just wrote a revocation, so it holds here immediately rather than on the next
|
|
10
34
|
absorb. Sticky like the rest. */
|
|
11
|
-
export declare function noteRevocation(revocationId: string,
|
|
35
|
+
export declare function noteRevocation(revocationId: string, revocation: Revocation): void;
|
|
12
36
|
/** A repo whose signature does not check out, with the message ready for whoever asked. Not every
|
|
13
37
|
caller treats it the same - a source keeps its last keys, a machine list is just refused - so
|
|
14
38
|
the kind is carried rather than acted on here. */
|
|
@@ -40,15 +40,23 @@ async function committedContents(repoPath: string, filePath: string) {
|
|
|
40
40
|
// never leaves, even if its file disappears from the revoke repo - the key that writes revocations
|
|
41
41
|
// is on every server, so whoever stole one could otherwise erase the record that shut them out.
|
|
42
42
|
// Restarting the process is the way back from a revocation that should not have happened.
|
|
43
|
-
|
|
43
|
+
export type Revocation = {
|
|
44
|
+
identity: string;
|
|
45
|
+
ip: string;
|
|
46
|
+
revokedAt: string;
|
|
47
|
+
revokedBy: string;
|
|
48
|
+
};
|
|
49
|
+
let absorbedRevocations = new Map<string, Revocation>();
|
|
44
50
|
// The pairs the signed unrevokes allow, and the legacy revocation ids they name. Rebuilt on every
|
|
45
51
|
// read, since unrevokes are signed content and removing one must take effect.
|
|
46
52
|
let unrevokedPairs = new Set<string>();
|
|
47
53
|
let unrevokedIds = new Set<string>();
|
|
48
54
|
|
|
49
|
-
/**
|
|
50
|
-
The one meaning of "frozen", used both when stripping repo content and when
|
|
51
|
-
|
|
55
|
+
/** The revocation freezing an identity - a key fingerprint or a machine id - or nothing if it is
|
|
56
|
+
not frozen. The one meaning of "frozen", used both when stripping repo content and when
|
|
57
|
+
explaining why, and it hands back the revocation rather than a bare yes so that whoever has to
|
|
58
|
+
explain it can say which address it was, and when, instead of "an unapproved address". */
|
|
59
|
+
export function identityFrozenBy(identity: string) {
|
|
52
60
|
for (let [revocationId, revocation] of absorbedRevocations) {
|
|
53
61
|
if (revocation.identity !== identity) {
|
|
54
62
|
continue;
|
|
@@ -56,9 +64,19 @@ export function isIdentityFrozen(identity: string) {
|
|
|
56
64
|
if (unrevokedIds.has(revocationId) || unrevokedPairs.has(`${identity} ${revocation.ip}`)) {
|
|
57
65
|
continue;
|
|
58
66
|
}
|
|
59
|
-
return
|
|
67
|
+
return { ...revocation, revocationId };
|
|
60
68
|
}
|
|
61
|
-
return
|
|
69
|
+
return undefined;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/** Every revocation this process has absorbed, and whether an unrevoke has since forgiven it. For
|
|
73
|
+
anything showing the whole picture rather than asking about one identity. */
|
|
74
|
+
export function listRevocations() {
|
|
75
|
+
return [...absorbedRevocations].map(([revocationId, revocation]) => ({
|
|
76
|
+
...revocation,
|
|
77
|
+
revocationId,
|
|
78
|
+
forgiven: unrevokedIds.has(revocationId) || unrevokedPairs.has(`${revocation.identity} ${revocation.ip}`),
|
|
79
|
+
}));
|
|
62
80
|
}
|
|
63
81
|
|
|
64
82
|
export function isPairRevoked(identity: string, ip: string) {
|
|
@@ -76,8 +94,8 @@ export function isPairUnrevoked(identity: string, ip: string) {
|
|
|
76
94
|
|
|
77
95
|
/** For whoever just wrote a revocation, so it holds here immediately rather than on the next
|
|
78
96
|
absorb. Sticky like the rest. */
|
|
79
|
-
export function noteRevocation(revocationId: string,
|
|
80
|
-
absorbedRevocations.set(revocationId,
|
|
97
|
+
export function noteRevocation(revocationId: string, revocation: Revocation) {
|
|
98
|
+
absorbedRevocations.set(revocationId, revocation);
|
|
81
99
|
}
|
|
82
100
|
|
|
83
101
|
/** A repo whose signature does not check out, with the message ready for whoever asked. Not every
|
|
@@ -232,7 +250,12 @@ export async function readSignedRepo(config: { repoPath: string; sourceURL: stri
|
|
|
232
250
|
}
|
|
233
251
|
let revocationId = parsed.revocationId || name.replace(/\.json$/, "");
|
|
234
252
|
if (!absorbedRevocations.has(revocationId)) {
|
|
235
|
-
absorbedRevocations.set(revocationId, {
|
|
253
|
+
absorbedRevocations.set(revocationId, {
|
|
254
|
+
identity,
|
|
255
|
+
ip: parsed.ip || parsed.attempt?.ip || "",
|
|
256
|
+
revokedAt: parsed.revokedAt || "",
|
|
257
|
+
revokedBy: parsed.revokedBy || "",
|
|
258
|
+
});
|
|
236
259
|
}
|
|
237
260
|
} catch (e) {
|
|
238
261
|
console.log(`Ignoring unreadable revocation ${path.join(revocationsDirectory, name)}. ${e}`);
|
|
@@ -271,8 +294,9 @@ export async function readSignedRepo(config: { repoPath: string; sourceURL: stri
|
|
|
271
294
|
let lines = contents.toString("utf8").split("\n");
|
|
272
295
|
let kept = lines.filter(line => {
|
|
273
296
|
let fingerprint = keyFingerprint(line);
|
|
274
|
-
|
|
275
|
-
|
|
297
|
+
let frozen = fingerprint && identityFrozenBy(fingerprint);
|
|
298
|
+
if (frozen) {
|
|
299
|
+
console.log(`Dropping revoked key ${fingerprint} from ${path.join(repoPath, filePath)}, used from ${frozen.ip}`);
|
|
276
300
|
return false;
|
|
277
301
|
}
|
|
278
302
|
return true;
|
|
@@ -283,8 +307,9 @@ export async function readSignedRepo(config: { repoPath: string; sourceURL: stri
|
|
|
283
307
|
}
|
|
284
308
|
if (filePath.startsWith("machines/") && filePath.endsWith(".json")) {
|
|
285
309
|
let machineId = filePath.slice("machines/".length, -".json".length);
|
|
286
|
-
|
|
287
|
-
|
|
310
|
+
let frozen = identityFrozenBy(machineId);
|
|
311
|
+
if (frozen) {
|
|
312
|
+
console.log(`Dropping frozen machine ${machineId} from ${path.join(repoPath, filePath)}, used from ${frozen.ip}`);
|
|
288
313
|
files.delete(filePath);
|
|
289
314
|
}
|
|
290
315
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true , configurable: true});
|
|
3
|
-
//exports.main = void 0;
|
|
4
3
|
const runPromise_1 = require("socket-function/src/runPromise");
|
|
5
4
|
const certs_1 = require("../../misc/https/certs");
|
|
6
5
|
const ownIPs_1 = require("../../misc/ownIPs");
|
|
@@ -97,8 +96,11 @@ async function main() {
|
|
|
97
96
|
await (0, runPromise_1.runPromise)(`git add -A`, { cwd: repoPath });
|
|
98
97
|
await (0, runPromise_1.runPromise)(`git commit -m "${COMMIT_MESSAGE}"`, { cwd: repoPath });
|
|
99
98
|
await (0, runPromise_1.runPromise)(`git push`, { cwd: repoPath });
|
|
100
|
-
console.log(`\nSigned, committed and pushed. Machines pick it up
|
|
99
|
+
console.log(`\nSigned, committed and pushed. Machines will pick it up the next time they poll, within 60 seconds.`);
|
|
101
100
|
}
|
|
102
|
-
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkTWFjaGluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFkZE1hY2hpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0RBQTREO0FBQzVELGtEQUF5RTtBQUN6RSw4Q0FBOEM7QUFDOUMseURBQTZEO0FBQzdELHdEQUFvRDtBQUNwRCx5Q0FBa0Y7QUFFbEYsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDO0FBQzFCLE1BQU0sY0FBYyxHQUFHLG9CQUFvQixDQUFDO0FBQzVDLE1BQU0sVUFBVSxHQUFHLGlCQUFpQixDQUFDO0FBQ3JDLE1BQU0sS0FBSyxHQUFHOzhCQUNnQixXQUFXO3lDQUNBLFdBQVc7d0RBQ0ksV0FBVzs7Ozs7Ozs7Ozs7YUFXdEQsV0FBVzttQkFDTCxDQUFDO0FBRXBCLFNBQVMsU0FBUyxDQUFDLElBQWM7SUFDN0IsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMzQyxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssV0FBVyxDQUFDLENBQUM7SUFDeEUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBQ0QsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1YsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQWMsRUFBRSxTQUFTLEVBQUUsQ0FBQztJQUNyRixDQUFDO0lBQ0QsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNm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RUFBRSxDQUFDLENBQUM7SUFDN0IsTUFBTSxJQUFBLHVCQUFVLEVBQUMsWUFBWSxFQUFFLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDbEQsTUFBTSxJQUFBLHVCQUFVLEVBQUMsa0JBQWtCLGNBQWMsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDekUsTUFBTSxJQUFBLHVCQUFVLEVBQUMsVUFBVSxFQUFFLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDaEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtRUFBbUUsQ0FBQyxDQUFDO0FBQ3JGLENBQUM7QUFuQ0Qsb0JBbUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcnVuUHJvbWlzZSB9IGZyb20gXCJzb2NrZXQtZnVuY3Rpb24vc3JjL3J1blByb21pc2VcIjtcbmltcG9ydCB7IGdldE93bk1hY2hpbmVJZCwgbG9hZElkZW50aXR5Q0EgfSBmcm9tIFwiLi4vLi4vbWlzYy9odHRwcy9jZXJ0c1wiO1xuaW1wb3J0IHsgZ2V0T3duSVBzIH0gZnJvbSBcIi4uLy4uL21pc2Mvb3duSVBzXCI7XG5pbXBvcnQgeyByZXNvbHZlS2V5c1JlcG8gfSBmcm9tIFwiLi4vYXV0aG9yaXplZEtleXMva2V5c1JlcG9cIjtcbmltcG9ydCB7IHNpZ25SZXBvIH0gZnJvbSBcIi4uL3NpZ25lZEZpbGVzL3NpZ25GaWxlc1wiO1xuaW1wb3J0IHsgZ2V0TWFjaGluZXMsIGdldE9yQ3JlYXRlUmVtb3RlTWFjaGluZUlkLCBzZXRNYWNoaW5lcyB9IGZyb20gXCIuL21hY2hpbmVzXCI7XG5cbmNvbnN0IEdJVF9LRVlXT1JEID0gXCJnaXRcIjtcbmNvbnN0IENPTU1JVF9NRVNTQUdFID0gXCJ0cnVzdGluZyBhIG1hY2hpbmVcIjtcbmNvbnN0IE1BQ0hJTkVfSUQgPSAvXmJbYS16Mi03XXsyMH0kLztcbmNvbnN0IFVTQUdFID0gYFVzYWdlOlxuICB5YXJuIGFkZG1hY2hpbmUgPGRvbWFpbj4gWyR7R0lUX0tFWVdPUkR9XVxuICB5YXJuIGFkZG1hY2hpbmUgPGRvbWFpbj4gPHNzaC1ob3N0PiBbJHtHSVRfS0VZV09SRH1dXG4gIHlhcm4gYWRkbWFjaGluZSA8ZG9tYWluPiA8bWFjaGluZS1pZD4gPGlwPiBbaXAuLi5dIFske0dJVF9LRVlXT1JEfV1cblxuVGhlIGRvbWFpbiBpcyByZXF1aXJlZDogYSBtYWNoaW5lIGhhcyBhIGRpZmZlcmVudCBpZGVudGl0eSwgYW5kIHNvIGEgZGlmZmVyZW50IG1hY2hpbmUgaWQsIHVuZGVyXG5ldmVyeSBkb21haW4gaXQgcnVucyB1bmRlciwgc28gdGhlcmUgaXMgbm8gc3VjaCB0aGluZyBhcyBcInRoaXMgbWFjaGluZVwiIHdpdGhvdXQgb25lLlxuXG5XaXRoIG5vdGhpbmcgZWxzZSBpdCBhZGRzIHRoaXMgbWFjaGluZSwgd2l0aCBpdHMgb3duIGFkZHJlc3Nlcy4gV2l0aCBhbiBzc2ggaG9zdCBpdCBhc2tzIHRoYXRcbm1hY2hpbmUgZm9yIGl0cyBpZGVudGl0eSB1bmRlciB0aGF0IGRvbWFpbiwgZ2l2ZXMgaXQgb25lIGlmIGl0IGhhcyBub25lLCBhbmQgYWRkcyBpdCB1bmRlciB0aGF0XG5hZGRyZXNzLiBXaXRoIGEgbWFjaGluZSBpZCBpdCBhZGRzIGV4YWN0bHkgdGhhdCBtYWNoaW5lIGF0IGV4YWN0bHkgdGhvc2UgYWRkcmVzc2VzLCB3aXRob3V0XG50YWxraW5nIHRvIGFueXRoaW5nLlxuXG5JdCBlZGl0cyB0aGUga2V5cyByZXBvIHRoaXMgbWFjaGluZSByZWFkcywgd2hlcmV2ZXIgdGhhdCBpcywgbm90IHdoYXRldmVyIGRpcmVjdG9yeSB0aGlzIHdhcyBydW5cbmZyb20uIFdpdGggJHtHSVRfS0VZV09SRH0gaXQgc2lnbnMsIGNvbW1pdHMgYW5kIHB1c2hlczsgd2l0aG91dCBpdCBub3RoaW5nIGVsc2Ugd2lsbCBiZWxpZXZlIGFueSBvZlxudGhpcyB1bnRpbCB5b3UgZG8uYDtcblxuZnVuY3Rpb24gcGFyc2VBcmdzKGFyZ3Y6IHN0cmluZ1tdKSB7XG4gICAgbGV0IHB1c2hUb0dpdCA9IGFyZ3YuaW5jbHVkZXMoR0lUX0tFWVdPUkQpO1xuICAgIGxldCBbZG9tYWluLCBzZWNvbmQsIC4uLnJlc3RdID0gYXJndi5maWx0ZXIoYXJnID0+IGFyZyAhPT0gR0lUX0tFWVdPUkQpO1xuICAgIGlmICghZG9tYWluKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgYSBkb21haW5cXG4ke1VTQUdFfWApO1xuICAgIH1cbiAgICBpZiAoIXNlY29uZCkge1xuICAgICAgICByZXR1cm4geyBkb21haW4sIGhvc3Q6IFwiXCIsIG1hY2hpbmVJZDogXCJcIiwgYWRkcmVzc2VzOiBbXSBhcyBzdHJpbmdbXSwgcHVzaFRvR2l0IH07XG4gICAgfVxuICAgIGlmIChNQUNISU5FX0lELnRlc3Qoc2Vjb25kKSkge1xuICAgICAgICBpZiAoIXJlc3QubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIGF0IGxlYXN0IG9uZSBhZGRyZXNzIGZvciAke3NlY29uZH0sIHdhcyBub25lXFxuJHtVU0FHRX1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBkb21haW4sIGhvc3Q6IFwiXCIsIG1hY2hpbmVJZDogc2Vjb25kLCBhZGRyZXNzZXM6IHJlc3QsIHB1c2hUb0dpdCB9O1xuICAgIH1cbiAgICBpZiAocmVzdC5sZW5ndGgpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYEV4cGVjdGVkIG5vdGhpbmcgYWZ0ZXIgdGhlIHNzaCBob3N0ICR7c2Vjb25kfSwgd2FzICR7cmVzdC5qb2luKFwiIFwiKX0uXFxuYFxuICAgICAgICAgICAgKyBgQWRkcmVzc2VzIGFyZSBvbmx5IGdpdmVuIGFsb25nc2lkZSBhIG1hY2hpbmUgaWQuXFxuJHtVU0FHRX1gXG4gICAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB7IGRvbWFpbiwgaG9zdDogc2Vjb25kLCBtYWNoaW5lSWQ6IFwiXCIsIGFkZHJlc3NlczogW10gYXMgc3RyaW5nW10sIHB1c2hUb0dpdCB9O1xufVxuXG4vKiogV2hpY2ggbWFjaGluZSB0byB0cnVzdCwgYW5kIGZyb20gd2hpY2ggYWRkcmVzc2VzLiBBIG5hbWVkIG1hY2hpbmUgYW5kIGl0cyBhZGRyZXNzZXMgYXMgZ2l2ZW4sIGFcbiAgICBtYWNoaW5lIHJlYWNoZWQgb3ZlciBzc2ggYXQgdGhlIGFkZHJlc3MgaXQgd2FzIG5hbWVkIGJ5LCBvciB0aGlzIG1hY2hpbmUgYXQgaXRzIG93biBhZGRyZXNzZXMuICovXG5hc3luYyBmdW5jdGlvbiByZXNvbHZlTWFjaGluZShjb25maWc6IHsgZG9tYWluOiBzdHJpbmc7IGhvc3Q6IHN0cmluZzsgbWFjaGluZUlkOiBzdHJpbmc7IGFkZHJlc3Nlczogc3RyaW5nW10gfSkge1xuICAgIGxldCB7IGRvbWFpbiwgaG9zdCwgbWFjaGluZUlkLCBhZGRyZXNzZXMgfSA9IGNvbmZpZztcbiAgICBpZiAobWFjaGluZUlkKSB7XG4gICAgICAgIHJldHVybiB7IG1hY2hpbmVJZCwgYWRkcmVzc2VzIH07XG4gICAgfVxuICAgIGlmIChob3N0KSB7XG4gICAgICAgIHJldHVybiB7IG1hY2hpbmVJZDogYXdhaXQgZ2V0T3JDcmVhdGVSZW1vdGVNYWNoaW5lSWQoaG9zdCwgZG9tYWluKSwgYWRkcmVzc2VzOiBbaG9zdF0gfTtcbiAgICB9XG4gICAgYXdhaXQgbG9hZElkZW50aXR5Q0EoZG9tYWluKTtcbiAgICBsZXQgb3duQWRkcmVzc2VzID0gYXdhaXQgZ2V0T3duSVBzKCk7XG4gICAgaWYgKCFvd25BZGRyZXNzZXMubGVuZ3RoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgdGhpcyBtYWNoaW5lIHRvIGhhdmUgYW4gYWRkcmVzcyBhbnl0aGluZyBlbHNlIGNhbiBzZWUsIGl0IGhhcyBub25lYCk7XG4gICAgfVxuICAgIHJldHVybiB7IG1hY2hpbmVJZDogZ2V0T3duTWFjaGluZUlkKGRvbWFpbiksIGFkZHJlc3Nlczogb3duQWRkcmVzc2VzIH07XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBtYWluKCkge1xuICAgIGxldCB7IGRvbWFpbiwgaG9zdCwgbWFjaGluZUlkLCBhZGRyZXNzZXMsIHB1c2hUb0dpdCB9ID0gcGFyc2VBcmdzKHByb2Nlc3MuYXJndi5zbGljZSgyKSk7XG4gICAgbGV0IHsgcmVwb1BhdGggfSA9IGF3YWl0IHJlc29sdmVLZXlzUmVwbygpO1xuICAgIGxldCB0YXJnZXQgPSBhd2FpdCByZXNvbHZlTWFjaGluZSh7IGRvbWFpbiwgaG9zdCwgbWFjaGluZUlkLCBhZGRyZXNzZXMgfSk7XG5cbiAgICBsZXQgbWFjaGluZXMgPSBhd2FpdCBnZXRNYWNoaW5lcyhyZXBvUGF0aCk7XG4gICAgbGV0IGV4aXN0aW5nID0gbWFjaGluZXMuZmluZChtYWNoaW5lID0+IG1hY2hpbmUubWFjaGluZUlkID09PSB0YXJnZXQubWFjaGluZUlkKTtcbiAgICBsZXQgaXBzID0gWy4uLihleGlzdGluZz8uaXBzIHx8IFtdKV07XG4gICAgbGV0IGFkZGVkID0gdGFyZ2V0LmFkZHJlc3Nlcy5maWx0ZXIoYWRkcmVzcyA9PiAhaXBzLmluY2x1ZGVzKGFkZHJlc3MpKTtcbiAgICBpZiAoZXhpc3RpbmcpIHtcbiAgICAgICAgZXhpc3RpbmcuaXBzID0gWy4uLmlwcywgLi4uYWRkZWRdO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIG1hY2hpbmVzLnB1c2goeyBtYWNoaW5lSWQ6IHRhcmdldC5tYWNoaW5lSWQsIGlwczogWy4uLmFkZGVkXSwgYWRkZWRBdDogXCJcIiB9KTtcbiAgICB9XG4gICAgYXdhaXQgc2V0TWFjaGluZXMoeyByZXBvUGF0aCwgbWFjaGluZXMgfSk7XG5cbiAgICBjb25zb2xlLmxvZyhgXFxuVHJ1c3RpbmcgbWFjaGluZSAke3RhcmdldC5tYWNoaW5lSWR9YCk7XG4gICAgY29uc29sZS5sb2coYEFsbG93aW5nIElQICR7Wy4uLmlwcywgLi4uYWRkZWRdLmpvaW4oXCIsIFwiKX1gKTtcbiAgICBpZiAoYWRkZWQubGVuZ3RoKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGAgIGFkZGVkIHRvIG1hY2hpbmVzLyR7dGFyZ2V0Lm1hY2hpbmVJZH0uanNvbjogJHthZGRlZC5qb2luKFwiLCBcIil9YCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS5sb2coYCAgYWxyZWFkeSBhbGxvd2VkIGZyb20gJHt0YXJnZXQuYWRkcmVzc2VzLmpvaW4oXCIsIFwiKX1gKTtcbiAgICB9XG4gICAgY29uc29sZS5sb2coYCAgaW4gJHtyZXBvUGF0aH1gKTtcblxuICAgIGlmICghcHVzaFRvR2l0KSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBcXG5Ob3RoaW5nIGJlbGlldmVzIHRoaXMgdW50aWwgaXQgaXMgc2lnbmVkLiBJbiB0aGF0IHJlcG8sIHJ1bjpgKTtcbiAgICAgICAgY29uc29sZS5sb2coYFxcYFxcYFxcYFxcbnlhcm4gc2lnbmZpbGVzICR7R0lUX0tFWVdPUkR9XFxuXFxgXFxgXFxgYCk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgYXdhaXQgc2lnblJlcG8oeyByZXBvUGF0aCB9KTtcbiAgICBhd2FpdCBydW5Qcm9taXNlKGBnaXQgYWRkIC1BYCwgeyBjd2Q6IHJlcG9QYXRoIH0pO1xuICAgIGF3YWl0IHJ1blByb21pc2UoYGdpdCBjb21taXQgLW0gXCIke0NPTU1JVF9NRVNTQUdFfVwiYCwgeyBjd2Q6IHJlcG9QYXRoIH0pO1xuICAgIGF3YWl0IHJ1blByb21pc2UoYGdpdCBwdXNoYCwgeyBjd2Q6IHJlcG9QYXRoIH0pO1xuICAgIGNvbnNvbGUubG9nKGBcXG5TaWduZWQsIGNvbW1pdHRlZCBhbmQgcHVzaGVkLiBNYWNoaW5lcyBwaWNrIGl0IHVwIGFzIHRoZXkgc3luYy5gKTtcbn1cbiJdfQ==
|
|
104
|
-
|
|
101
|
+
main().catch(e => {
|
|
102
|
+
console.error(`${e}`);
|
|
103
|
+
process.exitCode = 1;
|
|
104
|
+
}).finally(() => process.exit());
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkTWFjaGluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFkZE1hY2hpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwrREFBNEQ7QUFDNUQsa0RBQXlFO0FBQ3pFLDhDQUE4QztBQUM5Qyx5REFBNkQ7QUFDN0Qsd0RBQW9EO0FBQ3BELHlDQUFrRjtBQUVsRixNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUM7QUFDMUIsTUFBTSxjQUFjLEdBQUcsb0JBQW9CLENBQUM7QUFDNUMsTUFBTSxVQUFVLEdBQUcsaUJBQWlCLENBQUM7QUFDckMsTUFBTSxLQUFLLEdBQUc7OEJBQ2dCLFdBQVc7eUNBQ0EsV0FBVzt3REFDSSxXQUFXOzs7Ozs7Ozs7OzthQVd0RCxXQUFXO21CQUNMLENBQUM7QUFFcEIsU0FBUyxTQUFTLENBQUMsSUFBYztJQUM3QixJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzNDLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxXQUFXLENBQUMsQ0FBQztJQUN4RSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDVixNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFDRCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDVixPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBYyxFQUFFLFNBQVMsRUFBRSxDQUFDO0lBQ3JGLENBQUM7SUFDRCxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2Ys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QUUsQ0FBQyxDQUFDO0lBQzdCLE1BQU0sSUFBQSx1QkFBVSxFQUFDLFlBQVksRUFBRSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ2xELE1BQU0sSUFBQSx1QkFBVSxFQUFDLGtCQUFrQixjQUFjLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3pFLE1BQU0sSUFBQSx1QkFBVSxFQUFDLFVBQVUsRUFBRSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELE9BQU8sQ0FBQyxHQUFHLENBQUMsc0dBQXNHLENBQUMsQ0FBQztBQUN4SCxDQUFDO0FBRUQsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFO0lBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdEIsT0FBTyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7QUFDekIsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcnVuUHJvbWlzZSB9IGZyb20gXCJzb2NrZXQtZnVuY3Rpb24vc3JjL3J1blByb21pc2VcIjtcbmltcG9ydCB7IGdldE93bk1hY2hpbmVJZCwgbG9hZElkZW50aXR5Q0EgfSBmcm9tIFwiLi4vLi4vbWlzYy9odHRwcy9jZXJ0c1wiO1xuaW1wb3J0IHsgZ2V0T3duSVBzIH0gZnJvbSBcIi4uLy4uL21pc2Mvb3duSVBzXCI7XG5pbXBvcnQgeyByZXNvbHZlS2V5c1JlcG8gfSBmcm9tIFwiLi4vYXV0aG9yaXplZEtleXMva2V5c1JlcG9cIjtcbmltcG9ydCB7IHNpZ25SZXBvIH0gZnJvbSBcIi4uL3NpZ25lZEZpbGVzL3NpZ25GaWxlc1wiO1xuaW1wb3J0IHsgZ2V0TWFjaGluZXMsIGdldE9yQ3JlYXRlUmVtb3RlTWFjaGluZUlkLCBzZXRNYWNoaW5lcyB9IGZyb20gXCIuL21hY2hpbmVzXCI7XG5cbmNvbnN0IEdJVF9LRVlXT1JEID0gXCJnaXRcIjtcbmNvbnN0IENPTU1JVF9NRVNTQUdFID0gXCJ0cnVzdGluZyBhIG1hY2hpbmVcIjtcbmNvbnN0IE1BQ0hJTkVfSUQgPSAvXmJbYS16Mi03XXsyMH0kLztcbmNvbnN0IFVTQUdFID0gYFVzYWdlOlxuICB5YXJuIGFkZG1hY2hpbmUgPGRvbWFpbj4gWyR7R0lUX0tFWVdPUkR9XVxuICB5YXJuIGFkZG1hY2hpbmUgPGRvbWFpbj4gPHNzaC1ob3N0PiBbJHtHSVRfS0VZV09SRH1dXG4gIHlhcm4gYWRkbWFjaGluZSA8ZG9tYWluPiA8bWFjaGluZS1pZD4gPGlwPiBbaXAuLi5dIFske0dJVF9LRVlXT1JEfV1cblxuVGhlIGRvbWFpbiBpcyByZXF1aXJlZDogYSBtYWNoaW5lIGhhcyBhIGRpZmZlcmVudCBpZGVudGl0eSwgYW5kIHNvIGEgZGlmZmVyZW50IG1hY2hpbmUgaWQsIHVuZGVyXG5ldmVyeSBkb21haW4gaXQgcnVucyB1bmRlciwgc28gdGhlcmUgaXMgbm8gc3VjaCB0aGluZyBhcyBcInRoaXMgbWFjaGluZVwiIHdpdGhvdXQgb25lLlxuXG5XaXRoIG5vdGhpbmcgZWxzZSBpdCBhZGRzIHRoaXMgbWFjaGluZSwgd2l0aCBpdHMgb3duIGFkZHJlc3Nlcy4gV2l0aCBhbiBzc2ggaG9zdCBpdCBhc2tzIHRoYXRcbm1hY2hpbmUgZm9yIGl0cyBpZGVudGl0eSB1bmRlciB0aGF0IGRvbWFpbiwgZ2l2ZXMgaXQgb25lIGlmIGl0IGhhcyBub25lLCBhbmQgYWRkcyBpdCB1bmRlciB0aGF0XG5hZGRyZXNzLiBXaXRoIGEgbWFjaGluZSBpZCBpdCBhZGRzIGV4YWN0bHkgdGhhdCBtYWNoaW5lIGF0IGV4YWN0bHkgdGhvc2UgYWRkcmVzc2VzLCB3aXRob3V0XG50YWxraW5nIHRvIGFueXRoaW5nLlxuXG5JdCBlZGl0cyB0aGUga2V5cyByZXBvIHRoaXMgbWFjaGluZSByZWFkcywgd2hlcmV2ZXIgdGhhdCBpcywgbm90IHdoYXRldmVyIGRpcmVjdG9yeSB0aGlzIHdhcyBydW5cbmZyb20uIFdpdGggJHtHSVRfS0VZV09SRH0gaXQgc2lnbnMsIGNvbW1pdHMgYW5kIHB1c2hlczsgd2l0aG91dCBpdCBub3RoaW5nIGVsc2Ugd2lsbCBiZWxpZXZlIGFueSBvZlxudGhpcyB1bnRpbCB5b3UgZG8uYDtcblxuZnVuY3Rpb24gcGFyc2VBcmdzKGFyZ3Y6IHN0cmluZ1tdKSB7XG4gICAgbGV0IHB1c2hUb0dpdCA9IGFyZ3YuaW5jbHVkZXMoR0lUX0tFWVdPUkQpO1xuICAgIGxldCBbZG9tYWluLCBzZWNvbmQsIC4uLnJlc3RdID0gYXJndi5maWx0ZXIoYXJnID0+IGFyZyAhPT0gR0lUX0tFWVdPUkQpO1xuICAgIGlmICghZG9tYWluKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgYSBkb21haW5cXG4ke1VTQUdFfWApO1xuICAgIH1cbiAgICBpZiAoIXNlY29uZCkge1xuICAgICAgICByZXR1cm4geyBkb21haW4sIGhvc3Q6IFwiXCIsIG1hY2hpbmVJZDogXCJcIiwgYWRkcmVzc2VzOiBbXSBhcyBzdHJpbmdbXSwgcHVzaFRvR2l0IH07XG4gICAgfVxuICAgIGlmIChNQUNISU5FX0lELnRlc3Qoc2Vjb25kKSkge1xuICAgICAgICBpZiAoIXJlc3QubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIGF0IGxlYXN0IG9uZSBhZGRyZXNzIGZvciAke3NlY29uZH0sIHdhcyBub25lXFxuJHtVU0FHRX1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBkb21haW4sIGhvc3Q6IFwiXCIsIG1hY2hpbmVJZDogc2Vjb25kLCBhZGRyZXNzZXM6IHJlc3QsIHB1c2hUb0dpdCB9O1xuICAgIH1cbiAgICBpZiAocmVzdC5sZW5ndGgpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYEV4cGVjdGVkIG5vdGhpbmcgYWZ0ZXIgdGhlIHNzaCBob3N0ICR7c2Vjb25kfSwgd2FzICR7cmVzdC5qb2luKFwiIFwiKX0uXFxuYFxuICAgICAgICAgICAgKyBgQWRkcmVzc2VzIGFyZSBvbmx5IGdpdmVuIGFsb25nc2lkZSBhIG1hY2hpbmUgaWQuXFxuJHtVU0FHRX1gXG4gICAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB7IGRvbWFpbiwgaG9zdDogc2Vjb25kLCBtYWNoaW5lSWQ6IFwiXCIsIGFkZHJlc3NlczogW10gYXMgc3RyaW5nW10sIHB1c2hUb0dpdCB9O1xufVxuXG4vKiogV2hpY2ggbWFjaGluZSB0byB0cnVzdCwgYW5kIGZyb20gd2hpY2ggYWRkcmVzc2VzLiBBIG5hbWVkIG1hY2hpbmUgYW5kIGl0cyBhZGRyZXNzZXMgYXMgZ2l2ZW4sIGFcbiAgICBtYWNoaW5lIHJlYWNoZWQgb3ZlciBzc2ggYXQgdGhlIGFkZHJlc3MgaXQgd2FzIG5hbWVkIGJ5LCBvciB0aGlzIG1hY2hpbmUgYXQgaXRzIG93biBhZGRyZXNzZXMuICovXG5hc3luYyBmdW5jdGlvbiByZXNvbHZlTWFjaGluZShjb25maWc6IHsgZG9tYWluOiBzdHJpbmc7IGhvc3Q6IHN0cmluZzsgbWFjaGluZUlkOiBzdHJpbmc7IGFkZHJlc3Nlczogc3RyaW5nW10gfSkge1xuICAgIGxldCB7IGRvbWFpbiwgaG9zdCwgbWFjaGluZUlkLCBhZGRyZXNzZXMgfSA9IGNvbmZpZztcbiAgICBpZiAobWFjaGluZUlkKSB7XG4gICAgICAgIHJldHVybiB7IG1hY2hpbmVJZCwgYWRkcmVzc2VzIH07XG4gICAgfVxuICAgIGlmIChob3N0KSB7XG4gICAgICAgIHJldHVybiB7IG1hY2hpbmVJZDogYXdhaXQgZ2V0T3JDcmVhdGVSZW1vdGVNYWNoaW5lSWQoaG9zdCwgZG9tYWluKSwgYWRkcmVzc2VzOiBbaG9zdF0gfTtcbiAgICB9XG4gICAgYXdhaXQgbG9hZElkZW50aXR5Q0EoZG9tYWluKTtcbiAgICBsZXQgb3duQWRkcmVzc2VzID0gYXdhaXQgZ2V0T3duSVBzKCk7XG4gICAgaWYgKCFvd25BZGRyZXNzZXMubGVuZ3RoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgdGhpcyBtYWNoaW5lIHRvIGhhdmUgYW4gYWRkcmVzcyBhbnl0aGluZyBlbHNlIGNhbiBzZWUsIGl0IGhhcyBub25lYCk7XG4gICAgfVxuICAgIHJldHVybiB7IG1hY2hpbmVJZDogZ2V0T3duTWFjaGluZUlkKGRvbWFpbiksIGFkZHJlc3Nlczogb3duQWRkcmVzc2VzIH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIG1haW4oKSB7XG4gICAgbGV0IHsgZG9tYWluLCBob3N0LCBtYWNoaW5lSWQsIGFkZHJlc3NlcywgcHVzaFRvR2l0IH0gPSBwYXJzZUFyZ3MocHJvY2Vzcy5hcmd2LnNsaWNlKDIpKTtcbiAgICBsZXQgeyByZXBvUGF0aCB9ID0gYXdhaXQgcmVzb2x2ZUtleXNSZXBvKCk7XG4gICAgbGV0IHRhcmdldCA9IGF3YWl0IHJlc29sdmVNYWNoaW5lKHsgZG9tYWluLCBob3N0LCBtYWNoaW5lSWQsIGFkZHJlc3NlcyB9KTtcblxuICAgIGxldCBtYWNoaW5lcyA9IGF3YWl0IGdldE1hY2hpbmVzKHJlcG9QYXRoKTtcbiAgICBsZXQgZXhpc3RpbmcgPSBtYWNoaW5lcy5maW5kKG1hY2hpbmUgPT4gbWFjaGluZS5tYWNoaW5lSWQgPT09IHRhcmdldC5tYWNoaW5lSWQpO1xuICAgIGxldCBpcHMgPSBbLi4uKGV4aXN0aW5nPy5pcHMgfHwgW10pXTtcbiAgICBsZXQgYWRkZWQgPSB0YXJnZXQuYWRkcmVzc2VzLmZpbHRlcihhZGRyZXNzID0+ICFpcHMuaW5jbHVkZXMoYWRkcmVzcykpO1xuICAgIGlmIChleGlzdGluZykge1xuICAgICAgICBleGlzdGluZy5pcHMgPSBbLi4uaXBzLCAuLi5hZGRlZF07XG4gICAgfSBlbHNlIHtcbiAgICAgICAgbWFjaGluZXMucHVzaCh7IG1hY2hpbmVJZDogdGFyZ2V0Lm1hY2hpbmVJZCwgaXBzOiBbLi4uYWRkZWRdLCBhZGRlZEF0OiBcIlwiIH0pO1xuICAgIH1cbiAgICBhd2FpdCBzZXRNYWNoaW5lcyh7IHJlcG9QYXRoLCBtYWNoaW5lcyB9KTtcblxuICAgIGNvbnNvbGUubG9nKGBcXG5UcnVzdGluZyBtYWNoaW5lICR7dGFyZ2V0Lm1hY2hpbmVJZH1gKTtcbiAgICBjb25zb2xlLmxvZyhgQWxsb3dpbmcgSVAgJHtbLi4uaXBzLCAuLi5hZGRlZF0uam9pbihcIiwgXCIpfWApO1xuICAgIGlmIChhZGRlZC5sZW5ndGgpIHtcbiAgICAgICAgY29uc29sZS5sb2coYCAgYWRkZWQgdG8gbWFjaGluZXMvJHt0YXJnZXQubWFjaGluZUlkfS5qc29uOiAke2FkZGVkLmpvaW4oXCIsIFwiKX1gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmxvZyhgICBhbHJlYWR5IGFsbG93ZWQgZnJvbSAke3RhcmdldC5hZGRyZXNzZXMuam9pbihcIiwgXCIpfWApO1xuICAgIH1cbiAgICBjb25zb2xlLmxvZyhgICBpbiAke3JlcG9QYXRofWApO1xuXG4gICAgaWYgKCFwdXNoVG9HaXQpIHtcbiAgICAgICAgY29uc29sZS5sb2coYFxcbk5vdGhpbmcgYmVsaWV2ZXMgdGhpcyB1bnRpbCBpdCBpcyBzaWduZWQuIEluIHRoYXQgcmVwbywgcnVuOmApO1xuICAgICAgICBjb25zb2xlLmxvZyhgXFxgXFxgXFxgXFxueWFybiBzaWduZmlsZXMgJHtHSVRfS0VZV09SRH1cXG5cXGBcXGBcXGBgKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBhd2FpdCBzaWduUmVwbyh7IHJlcG9QYXRoIH0pO1xuICAgIGF3YWl0IHJ1blByb21pc2UoYGdpdCBhZGQgLUFgLCB7IGN3ZDogcmVwb1BhdGggfSk7XG4gICAgYXdhaXQgcnVuUHJvbWlzZShgZ2l0IGNvbW1pdCAtbSBcIiR7Q09NTUlUX01FU1NBR0V9XCJgLCB7IGN3ZDogcmVwb1BhdGggfSk7XG4gICAgYXdhaXQgcnVuUHJvbWlzZShgZ2l0IHB1c2hgLCB7IGN3ZDogcmVwb1BhdGggfSk7XG4gICAgY29uc29sZS5sb2coYFxcblNpZ25lZCwgY29tbWl0dGVkIGFuZCBwdXNoZWQuIE1hY2hpbmVzIHdpbGwgcGljayBpdCB1cCB0aGUgbmV4dCB0aW1lIHRoZXkgcG9sbCwgd2l0aGluIDYwIHNlY29uZHMuYCk7XG59XG5cbm1haW4oKS5jYXRjaChlID0+IHtcbiAgICBjb25zb2xlLmVycm9yKGAke2V9YCk7XG4gICAgcHJvY2Vzcy5leGl0Q29kZSA9IDE7XG59KS5maW5hbGx5KCgpID0+IHByb2Nlc3MuZXhpdCgpKTtcbiJdfQ=//=
|
|
106
|
+
/* _JS_SOURCE_HASH = "0d30db51790f12419127ccd7f7fbeb58702d00f91d3c3c53817329912bba0b7b"; */
|