@tricoteuses/assemblee 0.28.2 → 0.29.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/bugs/acteur-00010/plugin.test.js +45 -5
- package/lib/bugs/acteur-00010.js +29 -9
- package/lib/bugs/agenda-00002/plugin.test.js +46 -6
- package/lib/bugs/agenda-00002.js +29 -13
- package/lib/bugs/agenda-00008/plugin.test.js +44 -4
- package/lib/bugs/agenda-00008.js +29 -9
- package/lib/bugs/agenda-00011/plugin.test.js +50 -12
- package/lib/bugs/agenda-00011.js +39 -19
- package/lib/bugs.js +51 -31
- package/lib/cleaners/documents.js +13 -1
- package/lib/cleaners/documents.mjs +13 -1
- package/lib/datasets.js +243 -8
- package/lib/datasets.mjs +238 -8
- package/lib/file_systems.js +25 -5
- package/lib/loaders.js +3 -3
- package/lib/loaders.mjs +3 -3
- package/lib/parsers/documents.js +27 -5
- package/lib/parsers/recherche_amendements.js +27 -7
- package/lib/raw_types/acteurs_et_organes.d.ts +2 -1
- package/lib/raw_types/acteurs_et_organes.js +4 -3
- package/lib/raw_types/acteurs_et_organes.mjs +4 -3
- package/lib/raw_types/dossiers_legislatifs.d.ts +4 -0
- package/lib/raw_types/dossiers_legislatifs.js +10 -1
- package/lib/raw_types/dossiers_legislatifs.mjs +10 -1
- package/lib/scripts/bugs_helper.js +39 -19
- package/lib/scripts/document_dossiers_legislatifs.js +5 -3
- package/lib/scripts/get_today_reunions.js +2 -2
- package/lib/scripts/get_today_reunions.mjs +2 -2
- package/lib/scripts/parse_textes_lois.js +2 -2
- package/lib/scripts/parse_textes_lois.mjs +2 -2
- package/lib/scripts/raw_types_from_amendements.js +28 -4
- package/lib/scripts/retrieve_deputes_photos.js +29 -5
- package/lib/scripts/retrieve_deputes_photos.mjs +2 -2
- package/lib/scripts/retrieve_documents.js +36 -16
- package/lib/scripts/retrieve_documents.mjs +2 -2
- package/lib/scripts/retrieve_open_data.js +30 -6
- package/lib/scripts/retrieve_pending_amendments.js +27 -5
- package/lib/scripts/retrieve_pending_amendments.mjs +2 -2
- package/lib/scripts/retrieve_senateurs_photos.js +28 -4
- package/lib/scripts/retrieve_textes_lois.js +23 -5
- package/lib/scripts/retrieve_textes_lois.mjs +2 -2
- package/lib/scripts/validate_json.js +27 -7
- package/lib/types/dossiers_legislatifs.d.ts +1 -0
- package/lib/types/dossiers_legislatifs.js +5 -1
- package/lib/types/dossiers_legislatifs.mjs +5 -1
- package/lib/types/legislatures.d.ts +1 -0
- package/lib/types/legislatures.js +2 -1
- package/lib/types/legislatures.mjs +2 -1
- package/package.json +1 -1
|
@@ -25,7 +25,7 @@ const optionsDefinitions = [{
|
|
|
25
25
|
type: Boolean
|
|
26
26
|
}, {
|
|
27
27
|
alias: "l",
|
|
28
|
-
defaultValue: "
|
|
28
|
+
defaultValue: "16",
|
|
29
29
|
name: "legislature",
|
|
30
30
|
type: String
|
|
31
31
|
}, {
|
|
@@ -227,4 +227,4 @@ retrievePhotosDeputes().then(error => process.exit(error ? 1 : 0)).catch(error =
|
|
|
227
227
|
console.log(error);
|
|
228
228
|
process.exit(2);
|
|
229
229
|
});
|
|
230
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJleGVjU3luYyIsImNvbW1hbmRMaW5lQXJncyIsImZzIiwiZmV0Y2giLCJwYXRoIiwic3RyZWFtIiwidXRpbCIsIkVuYWJsZWREYXRhc2V0cyIsImxvYWRBc3NlbWJsZWVEYXRhIiwiQ29kZVR5cGVPcmdhbmUiLCJUeXBlTWFuZGF0Iiwib3B0aW9uc0RlZmluaXRpb25zIiwiYWxpYXMiLCJoZWxwIiwibmFtZSIsInR5cGUiLCJTdHJpbmciLCJCb29sZWFuIiwiZGVmYXVsdFZhbHVlIiwibXVsdGlwbGUiLCJkZWZhdWx0T3B0aW9uIiwib3B0aW9ucyIsInBpcGVsaW5lIiwicHJvbWlzaWZ5IiwiY29tbWl0QW5kUHVzaCIsInJlcG9zaXRvcnlEaXIiLCJjb21taXQiLCJyZW1vdGVzIiwiZXJyb3IiLCJjd2QiLCJlbnYiLCJwcm9jZXNzIiwiZW5jb2RpbmciLCJzdGRpbyIsImNoaWxkUHJvY2VzcyIsInN0ZGVyciIsInRlc3QiLCJzdGRvdXQiLCJjb25zb2xlIiwib3V0cHV0IiwicmVtb3RlIiwicmV0cmlldmVQaG90b3NEZXB1dGVzIiwiZGF0YURpciIsImFjdGV1ckJ5VWlkIiwiQWN0ZXVyc0V0T3JnYW5lcyIsImxlZ2lzbGF0dXJlIiwiZGVwdXRlc0xlZ2lzbGF0dXJlIiwiT2JqZWN0IiwidmFsdWVzIiwiZmlsdGVyIiwiYWN0ZXVyIiwibWFuZGF0cyIsIm1hbmRhdERlcHV0ZUxlZ2lzbGF0dXJlIiwibWFuZGF0IiwieHNpVHlwZSIsIk1hbmRhdFBhcmxlbWVudGFpcmVUeXBlIiwidHlwZU9yZ2FuZSIsIkFzc2VtYmxlZSIsInVuZGVmaW5lZCIsInNvcnQiLCJhIiwiYiIsInVpZCIsImxlbmd0aCIsImxvY2FsZUNvbXBhcmUiLCJnaXRHcm91cFVybCIsImNsb25lIiwidHJpbSIsInJlcGxhY2UiLCJwaG90b3NEaXJOYW1lIiwicGhvdG9zRGlyIiwiam9pbiIsImVuc3VyZURpclN5bmMiLCJtaXNzaW5nUGhvdG9GaWxlUGF0aCIsImRlcHV0ZSIsImlkZW50IiwiZXRhdENpdmlsIiwibnVtZXJvRGVwdXRlIiwic3Vic3RyaW5nIiwicGhvdG9GaWxlbmFtZSIsInBob3RvRmlsZVBhdGgiLCJwaG90b1RlbXBGaWxlbmFtZSIsInBob3RvVGVtcEZpbGVQYXRoIiwidXJsUGhvdG8iLCJzaWxlbnQiLCJsb2ciLCJwcmVub20iLCJub20iLCJyZXRyaWVzIiwicmVzcG9uc2UiLCJvayIsImJvZHkiLCJjcmVhdGVXcml0ZVN0cmVhbSIsInJlbmFtZVN5bmMiLCJ3YXJuIiwic3RhdHVzIiwic3RhdHVzVGV4dCIsInRleHQiLCJleGlzdHNTeW5jIiwiY29weUZpbGVTeW5jIiwicGhvdG9CeUlkRGVwdXRlIiwicm93c0ZpbGVuYW1lcyIsImRlcHV0ZUluZGV4Iiwicm93SW5kZXgiLCJyb3ciLCJzbGljZSIsInBob3Rvc0ZpbGVuYW1lcyIsImNvbHVtbkluZGV4IiwiZW50cmllcyIsInB1c2giLCJjaGVtaW4iLCJjaGVtaW5Nb3NhaXF1ZSIsImhhdXRldXIiLCJsYXJnZXVyIiwieE1vc2FpcXVlIiwieU1vc2FpcXVlIiwicm93RmlsZW5hbWUiLCJ1bmxpbmtTeW5jIiwianNvbkZpbGVQYXRoIiwid3JpdGVGaWxlU3luYyIsIkpTT04iLCJzdHJpbmdpZnkiLCJ0aGVuIiwiZXhpdCIsImNhdGNoIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvcmV0cmlldmVfZGVwdXRlc19waG90b3MudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hpbGRQcm9jZXNzLCBleGVjU3luYyB9IGZyb20gXCJjaGlsZF9wcm9jZXNzXCJcbmltcG9ydCBjb21tYW5kTGluZUFyZ3MgZnJvbSBcImNvbW1hbmQtbGluZS1hcmdzXCJcbmltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIlxuaW1wb3J0IGZldGNoIGZyb20gXCJub2RlLWZldGNoXCJcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcbmltcG9ydCBzdHJlYW0gZnJvbSBcInN0cmVhbVwiXG5pbXBvcnQgdXRpbCBmcm9tIFwidXRpbFwiXG5cbmltcG9ydCB7IEVuYWJsZWREYXRhc2V0cyB9IGZyb20gXCIuLi9kYXRhc2V0c1wiXG5pbXBvcnQgeyBsb2FkQXNzZW1ibGVlRGF0YSB9IGZyb20gXCIuLi9sb2FkZXJzXCJcbmltcG9ydCB7XG4gIENvZGVUeXBlT3JnYW5lLFxuICBNYW5kYXQsXG4gIFBob3RvLFxuICBUeXBlTWFuZGF0LFxufSBmcm9tIFwiLi4vdHlwZXMvYWN0ZXVyc19ldF9vcmdhbmVzXCJcblxuY29uc3Qgb3B0aW9uc0RlZmluaXRpb25zID0gW1xuICB7XG4gICAgYWxpYXM6IFwiQ1wiLFxuICAgIGhlbHA6IFwiY2xvbmUgcmVwb3NpdG9yaWVzIGZyb20gZ2l2ZW4gZ3JvdXAgKG9yIG9yZ2FuaXphdGlvbikgZ2l0IFVSTFwiLFxuICAgIG5hbWU6IFwiY2xvbmVcIixcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJjXCIsXG4gICAgaGVscDogXCJjb21taXQgcGhvdG9zXCIsXG4gICAgbmFtZTogXCJjb21taXRcIixcbiAgICB0eXBlOiBCb29sZWFuLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwiZlwiLFxuICAgIGhlbHA6IFwiZmV0Y2ggZMOpcHV0w6lzJyBwaWN0dXJlcyBpbnN0ZWFkIG9mIHJldHJpZXZpbmcgdGhlbSBmcm9tIGZpbGVzXCIsXG4gICAgbmFtZTogXCJmZXRjaFwiLFxuICAgIHR5cGU6IEJvb2xlYW4sXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJsXCIsXG4gICAgZGVmYXVsdFZhbHVlOiBcIjE1XCIsXG4gICAgbmFtZTogXCJsZWdpc2xhdHVyZVwiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcInJcIixcbiAgICBoZWxwOiBcInB1c2ggY29tbWl0IHRvIGdpdmVuIHJlbW90ZVwiLFxuICAgIG11bHRpcGxlOiB0cnVlLFxuICAgIG5hbWU6IFwicmVtb3RlXCIsXG4gICAgdHlwZTogU3RyaW5nLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwic1wiLFxuICAgIGhlbHA6IFwiZG9uJ3QgbG9nIGFueXRoaW5nXCIsXG4gICAgbmFtZTogXCJzaWxlbnRcIixcbiAgICB0eXBlOiBCb29sZWFuLFxuICB9LFxuICB7XG4gICAgZGVmYXVsdE9wdGlvbjogdHJ1ZSxcbiAgICBoZWxwOiBcImRpcmVjdG9yeSBjb250YWluaW5nIEFzc2VtYmzDqWUgb3BlbiBkYXRhIGZpbGVzXCIsXG4gICAgbmFtZTogXCJkYXRhRGlyXCIsXG4gICAgdHlwZTogU3RyaW5nLFxuICB9LFxuXVxuY29uc3Qgb3B0aW9ucyA9IGNvbW1hbmRMaW5lQXJncyhvcHRpb25zRGVmaW5pdGlvbnMpXG5jb25zdCBwaXBlbGluZSA9IHV0aWwucHJvbWlzaWZ5KHN0cmVhbS5waXBlbGluZSlcblxuZnVuY3Rpb24gY29tbWl0QW5kUHVzaChcbiAgcmVwb3NpdG9yeURpcjogc3RyaW5nLFxuICBjb21taXQ6IGJvb2xlYW4sXG4gIHJlbW90ZXM/OiBzdHJpbmdbXSxcbik6IGJvb2xlYW4ge1xuICBsZXQgZXJyb3IgPSBmYWxzZVxuICBpZiAoY29tbWl0KSB7XG4gICAgZXhlY1N5bmMoXCJnaXQgYWRkIC5cIiwge1xuICAgICAgY3dkOiByZXBvc2l0b3J5RGlyLFxuICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwiaWdub3JlXCIsIFwicGlwZVwiXSxcbiAgICB9KVxuICAgIHRyeSB7XG4gICAgICBleGVjU3luYygnZ2l0IGNvbW1pdCAtbSBcIk5vdXZlbGxlIG1vaXNzb25cIicsIHtcbiAgICAgICAgY3dkOiByZXBvc2l0b3J5RGlyLFxuICAgICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgICAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgICAgfSlcbiAgICB9IGNhdGNoIChjaGlsZFByb2Nlc3MpIHtcbiAgICAgIGlmIChcbiAgICAgICAgKGNoaWxkUHJvY2VzcyBhcyBDaGlsZFByb2Nlc3MpLnN0ZGVyciA9PT0gbnVsbCB8fFxuICAgICAgICAhL25vdGhpbmcgdG8gY29tbWl0Ly50ZXN0KChjaGlsZFByb2Nlc3MgYXMgYW55KS5zdGRvdXQpXG4gICAgICApIHtcbiAgICAgICAgY29uc29sZS5lcnJvcigoY2hpbGRQcm9jZXNzIGFzIGFueSkub3V0cHV0KVxuICAgICAgICB0aHJvdyBjaGlsZFByb2Nlc3NcbiAgICAgIH1cbiAgICB9XG4gICAgZm9yIChjb25zdCByZW1vdGUgb2YgcmVtb3RlcyB8fCBbXSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgZXhlY1N5bmMoYGdpdCBwdXNoICR7cmVtb3RlfSBtYXN0ZXJgLCB7XG4gICAgICAgICAgY3dkOiByZXBvc2l0b3J5RGlyLFxuICAgICAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICAgICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwiaWdub3JlXCIsIFwicGlwZVwiXSxcbiAgICAgICAgfSlcbiAgICAgIH0gY2F0Y2ggKGNoaWxkUHJvY2Vzcykge1xuICAgICAgICAvLyBEb24ndCBzdG9wIHdoZW4gcHVzaCBmYWlscy5cbiAgICAgICAgY29uc29sZS5lcnJvcigoY2hpbGRQcm9jZXNzIGFzIGFueSkub3V0cHV0KVxuICAgICAgICBlcnJvciA9IHRydWVcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGVycm9yXG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJldHJpZXZlUGhvdG9zRGVwdXRlcygpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgY29uc3QgZGF0YURpciA9IG9wdGlvbnMuZGF0YURpclxuICBjb25zdCB7IGFjdGV1ckJ5VWlkIH0gPSBsb2FkQXNzZW1ibGVlRGF0YShcbiAgICBkYXRhRGlyLFxuICAgIEVuYWJsZWREYXRhc2V0cy5BY3RldXJzRXRPcmdhbmVzLFxuICAgIG9wdGlvbnMubGVnaXNsYXR1cmUsXG4gIClcbiAgY29uc3QgZGVwdXRlc0xlZ2lzbGF0dXJlID0gT2JqZWN0LnZhbHVlcyhhY3RldXJCeVVpZClcbiAgICAuZmlsdGVyKChhY3RldXIpID0+IHtcbiAgICAgIGNvbnN0IHsgbWFuZGF0cyB9ID0gYWN0ZXVyXG4gICAgICBpZiAoIW1hbmRhdHMpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG4gICAgICBjb25zdCBtYW5kYXREZXB1dGVMZWdpc2xhdHVyZSA9IG1hbmRhdHMuZmlsdGVyKFxuICAgICAgICAobWFuZGF0OiBNYW5kYXQpID0+XG4gICAgICAgICAgbWFuZGF0LnhzaVR5cGUgPT09IFR5cGVNYW5kYXQuTWFuZGF0UGFybGVtZW50YWlyZVR5cGUgJiZcbiAgICAgICAgICBtYW5kYXQubGVnaXNsYXR1cmUgPT09IG9wdGlvbnMubGVnaXNsYXR1cmUgJiZcbiAgICAgICAgICBtYW5kYXQudHlwZU9yZ2FuZSA9PT0gQ29kZVR5cGVPcmdhbmUuQXNzZW1ibGVlLFxuICAgICAgKVswXVxuICAgICAgcmV0dXJuIG1hbmRhdERlcHV0ZUxlZ2lzbGF0dXJlICE9PSB1bmRlZmluZWRcbiAgICB9KVxuICAgIC5zb3J0KChhLCBiKSA9PlxuICAgICAgYS51aWQubGVuZ3RoID09PSBiLnVpZC5sZW5ndGhcbiAgICAgICAgPyBhLnVpZC5sb2NhbGVDb21wYXJlKGIudWlkKVxuICAgICAgICA6IGEudWlkLmxlbmd0aCAtIGIudWlkLmxlbmd0aCxcbiAgICApXG5cbiAgY29uc3QgZ2l0R3JvdXBVcmwgPSBvcHRpb25zLmNsb25lXG4gICAgPyBvcHRpb25zLmNsb25lLnRyaW0oKS5yZXBsYWNlKC9cXC8rJC8sIFwiXCIpXG4gICAgOiB1bmRlZmluZWRcbiAgY29uc3QgcGhvdG9zRGlyTmFtZSA9IGBwaG90b3NfZGVwdXRlc18ke29wdGlvbnMubGVnaXNsYXR1cmV9YFxuICBpZiAoZ2l0R3JvdXBVcmwgIT09IHVuZGVmaW5lZCkge1xuICAgIGV4ZWNTeW5jKGBnaXQgY2xvbmUgJHtnaXRHcm91cFVybH0vJHtwaG90b3NEaXJOYW1lfS5naXRgLCB7XG4gICAgICBjd2Q6IGRhdGFEaXIsXG4gICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICAgIHN0ZGlvOiBbXCJpZ25vcmVcIiwgXCJpZ25vcmVcIiwgXCJwaXBlXCJdLFxuICAgIH0pXG4gIH1cbiAgY29uc3QgcGhvdG9zRGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIHBob3Rvc0Rpck5hbWUpXG5cbiAgLy8gRG93bmxvYWQgcGhvdG9zLlxuICBmcy5lbnN1cmVEaXJTeW5jKHBob3Rvc0RpcilcbiAgaWYgKG9wdGlvbnMuZmV0Y2gpIHtcbiAgICBjb25zdCBtaXNzaW5nUGhvdG9GaWxlUGF0aCA9IFwiaW1hZ2VzL3RyYW5zcGFyZW50XzE1MHgxOTIuanBnXCJcbiAgICBmb3IgKGNvbnN0IGRlcHV0ZSBvZiBkZXB1dGVzTGVnaXNsYXR1cmUpIHtcbiAgICAgIGNvbnN0IGlkZW50ID0gZGVwdXRlLmV0YXRDaXZpbC5pZGVudFxuICAgICAgY29uc3QgbnVtZXJvRGVwdXRlID0gZGVwdXRlLnVpZC5zdWJzdHJpbmcoMilcbiAgICAgIGNvbnN0IHBob3RvRmlsZW5hbWUgPSBgJHtudW1lcm9EZXB1dGV9LmpwZ2BcbiAgICAgIGNvbnN0IHBob3RvRmlsZVBhdGggPSBwYXRoLmpvaW4ocGhvdG9zRGlyLCBwaG90b0ZpbGVuYW1lKVxuICAgICAgY29uc3QgcGhvdG9UZW1wRmlsZW5hbWUgPSBgJHtudW1lcm9EZXB1dGV9X3RlbXAuanBnYFxuICAgICAgY29uc3QgcGhvdG9UZW1wRmlsZVBhdGggPSBwYXRoLmpvaW4ocGhvdG9zRGlyLCBwaG90b1RlbXBGaWxlbmFtZSlcbiAgICAgIGNvbnN0IHVybFBob3RvID0gYGh0dHA6Ly93d3cyLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL3RyaWJ1bi8ke29wdGlvbnMubGVnaXNsYXR1cmV9L3Bob3Rvcy8ke3Bob3RvRmlsZW5hbWV9YFxuICAgICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICBgTG9hZGluZyBwaG90byAke3VybFBob3RvfSBmb3IgJHtpZGVudC5wcmVub219ICR7aWRlbnQubm9tfeKApmAsXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIGZvciAobGV0IHJldHJpZXMgPSAwOyByZXRyaWVzIDwgMzsgcmV0cmllcysrKSB7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsUGhvdG8pXG4gICAgICAgIGlmIChyZXNwb25zZS5vaykge1xuICAgICAgICAgIGF3YWl0IHBpcGVsaW5lKHJlc3BvbnNlLmJvZHksIGZzLmNyZWF0ZVdyaXRlU3RyZWFtKHBob3RvVGVtcEZpbGVQYXRoKSlcbiAgICAgICAgICBmcy5yZW5hbWVTeW5jKHBob3RvVGVtcEZpbGVQYXRoLCBwaG90b0ZpbGVQYXRoKVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJldHJpZXMgPj0gMikge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgIGBGZXRjaCBmYWlsZWQ6ICR7dXJsUGhvdG99ICgke2lkZW50LnByZW5vbX0gJHtpZGVudC5ub219KWAsXG4gICAgICAgICAgKVxuICAgICAgICAgIGNvbnNvbGUud2FybihyZXNwb25zZS5zdGF0dXMsIHJlc3BvbnNlLnN0YXR1c1RleHQpXG4gICAgICAgICAgY29uc29sZS53YXJuKGF3YWl0IHJlc3BvbnNlLnRleHQoKSlcbiAgICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyhwaG90b0ZpbGVQYXRoKSkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKFwiICA9PiBSZXVzaW5nIGV4aXN0aW5nIGltYWdlXCIpXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcIiAgPT4gVXNpbmcgYmxhbmsgaW1hZ2VcIilcbiAgICAgICAgICAgIGZzLmNvcHlGaWxlU3luYyhtaXNzaW5nUGhvdG9GaWxlUGF0aCwgcGhvdG9GaWxlUGF0aClcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2l6ZSBwaG90b3MgdG8gMTUweDE5MiwgYmVjYXVzZSBzb21lIGhhdmVuJ3QgZXhhY3RseSB0aGlzIHNpemUuXG4gIGZvciAoY29uc3QgZGVwdXRlIG9mIGRlcHV0ZXNMZWdpc2xhdHVyZSkge1xuICAgIGNvbnN0IGlkZW50ID0gZGVwdXRlLmV0YXRDaXZpbC5pZGVudFxuICAgIGNvbnN0IG51bWVyb0RlcHV0ZSA9IGRlcHV0ZS51aWQuc3Vic3RyaW5nKDIpXG4gICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgY29uc29sZS5sb2coXG4gICAgICAgIGBSZXNpemluZyBwaG90byAke251bWVyb0RlcHV0ZX0gZm9yICR7aWRlbnQucHJlbm9tfSAke2lkZW50Lm5vbX3igKZgLFxuICAgICAgKVxuICAgIH1cbiAgICBleGVjU3luYyhcbiAgICAgIGBnbSBjb252ZXJ0IC1yZXNpemUgMTUweDE5MiEgJHtudW1lcm9EZXB1dGV9LmpwZyAke251bWVyb0RlcHV0ZX1fMTUweDE5Mi5qcGdgLFxuICAgICAge1xuICAgICAgICBjd2Q6IHBob3Rvc0RpcixcbiAgICAgIH0sXG4gICAgKVxuICB9XG5cbiAgLy8gQ3JlYXRlIGEgbW9zYWljIG9mIHBob3Rvcy5cbiAgY29uc3QgcGhvdG9CeUlkRGVwdXRlOiB7IFt1aWQ6IHN0cmluZ106IFBob3RvIH0gPSB7fVxuICBjb25zdCByb3dzRmlsZW5hbWVzOiBzdHJpbmdbXSA9IFtdXG4gIGZvciAoXG4gICAgbGV0IGRlcHV0ZUluZGV4ID0gMCwgcm93SW5kZXggPSAwO1xuICAgIGRlcHV0ZUluZGV4IDwgZGVwdXRlc0xlZ2lzbGF0dXJlLmxlbmd0aDtcbiAgICBkZXB1dGVJbmRleCArPSAyNSwgcm93SW5kZXgrK1xuICApIHtcbiAgICBjb25zdCByb3cgPSBkZXB1dGVzTGVnaXNsYXR1cmUuc2xpY2UoZGVwdXRlSW5kZXgsIGRlcHV0ZUluZGV4ICsgMjUpXG4gICAgY29uc3QgcGhvdG9zRmlsZW5hbWVzOiBzdHJpbmdbXSA9IFtdXG4gICAgZm9yIChjb25zdCBbY29sdW1uSW5kZXgsIGRlcHV0ZV0gb2Ygcm93LmVudHJpZXMoKSkge1xuICAgICAgY29uc3QgbnVtZXJvRGVwdXRlID0gZGVwdXRlLnVpZC5zdWJzdHJpbmcoMilcbiAgICAgIGNvbnN0IHBob3RvRmlsZW5hbWUgPSBgJHtudW1lcm9EZXB1dGV9XzE1MHgxOTIuanBnYFxuICAgICAgcGhvdG9zRmlsZW5hbWVzLnB1c2gocGhvdG9GaWxlbmFtZSlcbiAgICAgIHBob3RvQnlJZERlcHV0ZVtkZXB1dGUudWlkXSA9IHtcbiAgICAgICAgY2hlbWluOiBgcGhvdG9zX2RlcHV0ZXNfJHtvcHRpb25zLmxlZ2lzbGF0dXJlfS8ke3Bob3RvRmlsZW5hbWV9YCxcbiAgICAgICAgY2hlbWluTW9zYWlxdWU6IGBwaG90b3NfZGVwdXRlc18ke29wdGlvbnMubGVnaXNsYXR1cmV9L2RlcHV0ZXMuanBnYCxcbiAgICAgICAgaGF1dGV1cjogMTkyLFxuICAgICAgICBsYXJnZXVyOiAxNTAsXG4gICAgICAgIHhNb3NhaXF1ZTogY29sdW1uSW5kZXggKiAxNTAsXG4gICAgICAgIHlNb3NhaXF1ZTogcm93SW5kZXggKiAxOTIsXG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHJvd0ZpbGVuYW1lID0gYHJvdy0ke3Jvd0luZGV4fS5qcGdgXG4gICAgZXhlY1N5bmMoYGdtIGNvbnZlcnQgJHtwaG90b3NGaWxlbmFtZXMuam9pbihcIiBcIil9ICthcHBlbmQgJHtyb3dGaWxlbmFtZX1gLCB7XG4gICAgICBjd2Q6IHBob3Rvc0RpcixcbiAgICB9KVxuICAgIHJvd3NGaWxlbmFtZXMucHVzaChyb3dGaWxlbmFtZSlcbiAgfVxuICBleGVjU3luYyhgZ20gY29udmVydCAke3Jvd3NGaWxlbmFtZXMuam9pbihcIiBcIil9IC1hcHBlbmQgZGVwdXRlcy5qcGdgLCB7XG4gICAgY3dkOiBwaG90b3NEaXIsXG4gIH0pXG4gIGZvciAoY29uc3Qgcm93RmlsZW5hbWUgb2Ygcm93c0ZpbGVuYW1lcykge1xuICAgIGZzLnVubGlua1N5bmMocGF0aC5qb2luKHBob3Rvc0Rpciwgcm93RmlsZW5hbWUpKVxuICB9XG5cbiAgY29uc3QganNvbkZpbGVQYXRoID0gcGF0aC5qb2luKHBob3Rvc0RpciwgXCJkZXB1dGVzLmpzb25cIilcbiAgZnMud3JpdGVGaWxlU3luYyhqc29uRmlsZVBhdGgsIEpTT04uc3RyaW5naWZ5KHBob3RvQnlJZERlcHV0ZSwgbnVsbCwgMikpXG5cbiAgcmV0dXJuIGNvbW1pdEFuZFB1c2gocGhvdG9zRGlyLCBvcHRpb25zLmNvbW1pdCwgb3B0aW9ucy5yZW1vdGUpXG59XG5cbnJldHJpZXZlUGhvdG9zRGVwdXRlcygpXG4gIC50aGVuKChlcnJvcikgPT4gcHJvY2Vzcy5leGl0KGVycm9yID8gMSA6IDApKVxuICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgY29uc29sZS5sb2coZXJyb3IpXG4gICAgcHJvY2Vzcy5leGl0KDIpXG4gIH0pXG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQXVCQSxRQUF2QixRQUF1QyxlQUF2QztBQUNBLE9BQU9DLGVBQVAsTUFBNEIsbUJBQTVCO0FBQ0EsT0FBT0MsRUFBUCxNQUFlLFVBQWY7QUFDQSxPQUFPQyxLQUFQLE1BQWtCLFlBQWxCO0FBQ0EsT0FBT0MsSUFBUCxNQUFpQixNQUFqQjtBQUNBLE9BQU9DLE1BQVAsTUFBbUIsUUFBbkI7QUFDQSxPQUFPQyxJQUFQLE1BQWlCLE1BQWpCO1NBRVNDLGU7U0FDQUMsaUI7U0FFUEMsYyxFQUdBQyxVO0FBR0YsTUFBTUMsa0JBQWtCLEdBQUcsQ0FDekI7RUFDRUMsS0FBSyxFQUFFLEdBRFQ7RUFFRUMsSUFBSSxFQUFFLCtEQUZSO0VBR0VDLElBQUksRUFBRSxPQUhSO0VBSUVDLElBQUksRUFBRUM7QUFKUixDQUR5QixFQU96QjtFQUNFSixLQUFLLEVBQUUsR0FEVDtFQUVFQyxJQUFJLEVBQUUsZUFGUjtFQUdFQyxJ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
|
|
230
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJleGVjU3luYyIsImNvbW1hbmRMaW5lQXJncyIsImZzIiwiZmV0Y2giLCJwYXRoIiwic3RyZWFtIiwidXRpbCIsIkVuYWJsZWREYXRhc2V0cyIsImxvYWRBc3NlbWJsZWVEYXRhIiwiQ29kZVR5cGVPcmdhbmUiLCJUeXBlTWFuZGF0Iiwib3B0aW9uc0RlZmluaXRpb25zIiwiYWxpYXMiLCJoZWxwIiwibmFtZSIsInR5cGUiLCJTdHJpbmciLCJCb29sZWFuIiwiZGVmYXVsdFZhbHVlIiwibXVsdGlwbGUiLCJkZWZhdWx0T3B0aW9uIiwib3B0aW9ucyIsInBpcGVsaW5lIiwicHJvbWlzaWZ5IiwiY29tbWl0QW5kUHVzaCIsInJlcG9zaXRvcnlEaXIiLCJjb21taXQiLCJyZW1vdGVzIiwiZXJyb3IiLCJjd2QiLCJlbnYiLCJwcm9jZXNzIiwiZW5jb2RpbmciLCJzdGRpbyIsImNoaWxkUHJvY2VzcyIsInN0ZGVyciIsInRlc3QiLCJzdGRvdXQiLCJjb25zb2xlIiwib3V0cHV0IiwicmVtb3RlIiwicmV0cmlldmVQaG90b3NEZXB1dGVzIiwiZGF0YURpciIsImFjdGV1ckJ5VWlkIiwiQWN0ZXVyc0V0T3JnYW5lcyIsImxlZ2lzbGF0dXJlIiwiZGVwdXRlc0xlZ2lzbGF0dXJlIiwiT2JqZWN0IiwidmFsdWVzIiwiZmlsdGVyIiwiYWN0ZXVyIiwibWFuZGF0cyIsIm1hbmRhdERlcHV0ZUxlZ2lzbGF0dXJlIiwibWFuZGF0IiwieHNpVHlwZSIsIk1hbmRhdFBhcmxlbWVudGFpcmVUeXBlIiwidHlwZU9yZ2FuZSIsIkFzc2VtYmxlZSIsInVuZGVmaW5lZCIsInNvcnQiLCJhIiwiYiIsInVpZCIsImxlbmd0aCIsImxvY2FsZUNvbXBhcmUiLCJnaXRHcm91cFVybCIsImNsb25lIiwidHJpbSIsInJlcGxhY2UiLCJwaG90b3NEaXJOYW1lIiwicGhvdG9zRGlyIiwiam9pbiIsImVuc3VyZURpclN5bmMiLCJtaXNzaW5nUGhvdG9GaWxlUGF0aCIsImRlcHV0ZSIsImlkZW50IiwiZXRhdENpdmlsIiwibnVtZXJvRGVwdXRlIiwic3Vic3RyaW5nIiwicGhvdG9GaWxlbmFtZSIsInBob3RvRmlsZVBhdGgiLCJwaG90b1RlbXBGaWxlbmFtZSIsInBob3RvVGVtcEZpbGVQYXRoIiwidXJsUGhvdG8iLCJzaWxlbnQiLCJsb2ciLCJwcmVub20iLCJub20iLCJyZXRyaWVzIiwicmVzcG9uc2UiLCJvayIsImJvZHkiLCJjcmVhdGVXcml0ZVN0cmVhbSIsInJlbmFtZVN5bmMiLCJ3YXJuIiwic3RhdHVzIiwic3RhdHVzVGV4dCIsInRleHQiLCJleGlzdHNTeW5jIiwiY29weUZpbGVTeW5jIiwicGhvdG9CeUlkRGVwdXRlIiwicm93c0ZpbGVuYW1lcyIsImRlcHV0ZUluZGV4Iiwicm93SW5kZXgiLCJyb3ciLCJzbGljZSIsInBob3Rvc0ZpbGVuYW1lcyIsImNvbHVtbkluZGV4IiwiZW50cmllcyIsInB1c2giLCJjaGVtaW4iLCJjaGVtaW5Nb3NhaXF1ZSIsImhhdXRldXIiLCJsYXJnZXVyIiwieE1vc2FpcXVlIiwieU1vc2FpcXVlIiwicm93RmlsZW5hbWUiLCJ1bmxpbmtTeW5jIiwianNvbkZpbGVQYXRoIiwid3JpdGVGaWxlU3luYyIsIkpTT04iLCJzdHJpbmdpZnkiLCJ0aGVuIiwiZXhpdCIsImNhdGNoIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvcmV0cmlldmVfZGVwdXRlc19waG90b3MudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hpbGRQcm9jZXNzLCBleGVjU3luYyB9IGZyb20gXCJjaGlsZF9wcm9jZXNzXCJcbmltcG9ydCBjb21tYW5kTGluZUFyZ3MgZnJvbSBcImNvbW1hbmQtbGluZS1hcmdzXCJcbmltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIlxuaW1wb3J0IGZldGNoIGZyb20gXCJub2RlLWZldGNoXCJcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcbmltcG9ydCBzdHJlYW0gZnJvbSBcInN0cmVhbVwiXG5pbXBvcnQgdXRpbCBmcm9tIFwidXRpbFwiXG5cbmltcG9ydCB7IEVuYWJsZWREYXRhc2V0cyB9IGZyb20gXCIuLi9kYXRhc2V0c1wiXG5pbXBvcnQgeyBsb2FkQXNzZW1ibGVlRGF0YSB9IGZyb20gXCIuLi9sb2FkZXJzXCJcbmltcG9ydCB7XG4gIENvZGVUeXBlT3JnYW5lLFxuICBNYW5kYXQsXG4gIFBob3RvLFxuICBUeXBlTWFuZGF0LFxufSBmcm9tIFwiLi4vdHlwZXMvYWN0ZXVyc19ldF9vcmdhbmVzXCJcblxuY29uc3Qgb3B0aW9uc0RlZmluaXRpb25zID0gW1xuICB7XG4gICAgYWxpYXM6IFwiQ1wiLFxuICAgIGhlbHA6IFwiY2xvbmUgcmVwb3NpdG9yaWVzIGZyb20gZ2l2ZW4gZ3JvdXAgKG9yIG9yZ2FuaXphdGlvbikgZ2l0IFVSTFwiLFxuICAgIG5hbWU6IFwiY2xvbmVcIixcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJjXCIsXG4gICAgaGVscDogXCJjb21taXQgcGhvdG9zXCIsXG4gICAgbmFtZTogXCJjb21taXRcIixcbiAgICB0eXBlOiBCb29sZWFuLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwiZlwiLFxuICAgIGhlbHA6IFwiZmV0Y2ggZMOpcHV0w6lzJyBwaWN0dXJlcyBpbnN0ZWFkIG9mIHJldHJpZXZpbmcgdGhlbSBmcm9tIGZpbGVzXCIsXG4gICAgbmFtZTogXCJmZXRjaFwiLFxuICAgIHR5cGU6IEJvb2xlYW4sXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJsXCIsXG4gICAgZGVmYXVsdFZhbHVlOiBcIjE2XCIsXG4gICAgbmFtZTogXCJsZWdpc2xhdHVyZVwiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcInJcIixcbiAgICBoZWxwOiBcInB1c2ggY29tbWl0IHRvIGdpdmVuIHJlbW90ZVwiLFxuICAgIG11bHRpcGxlOiB0cnVlLFxuICAgIG5hbWU6IFwicmVtb3RlXCIsXG4gICAgdHlwZTogU3RyaW5nLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwic1wiLFxuICAgIGhlbHA6IFwiZG9uJ3QgbG9nIGFueXRoaW5nXCIsXG4gICAgbmFtZTogXCJzaWxlbnRcIixcbiAgICB0eXBlOiBCb29sZWFuLFxuICB9LFxuICB7XG4gICAgZGVmYXVsdE9wdGlvbjogdHJ1ZSxcbiAgICBoZWxwOiBcImRpcmVjdG9yeSBjb250YWluaW5nIEFzc2VtYmzDqWUgb3BlbiBkYXRhIGZpbGVzXCIsXG4gICAgbmFtZTogXCJkYXRhRGlyXCIsXG4gICAgdHlwZTogU3RyaW5nLFxuICB9LFxuXVxuY29uc3Qgb3B0aW9ucyA9IGNvbW1hbmRMaW5lQXJncyhvcHRpb25zRGVmaW5pdGlvbnMpXG5jb25zdCBwaXBlbGluZSA9IHV0aWwucHJvbWlzaWZ5KHN0cmVhbS5waXBlbGluZSlcblxuZnVuY3Rpb24gY29tbWl0QW5kUHVzaChcbiAgcmVwb3NpdG9yeURpcjogc3RyaW5nLFxuICBjb21taXQ6IGJvb2xlYW4sXG4gIHJlbW90ZXM/OiBzdHJpbmdbXSxcbik6IGJvb2xlYW4ge1xuICBsZXQgZXJyb3IgPSBmYWxzZVxuICBpZiAoY29tbWl0KSB7XG4gICAgZXhlY1N5bmMoXCJnaXQgYWRkIC5cIiwge1xuICAgICAgY3dkOiByZXBvc2l0b3J5RGlyLFxuICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwiaWdub3JlXCIsIFwicGlwZVwiXSxcbiAgICB9KVxuICAgIHRyeSB7XG4gICAgICBleGVjU3luYygnZ2l0IGNvbW1pdCAtbSBcIk5vdXZlbGxlIG1vaXNzb25cIicsIHtcbiAgICAgICAgY3dkOiByZXBvc2l0b3J5RGlyLFxuICAgICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgICAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgICAgfSlcbiAgICB9IGNhdGNoIChjaGlsZFByb2Nlc3MpIHtcbiAgICAgIGlmIChcbiAgICAgICAgKGNoaWxkUHJvY2VzcyBhcyBDaGlsZFByb2Nlc3MpLnN0ZGVyciA9PT0gbnVsbCB8fFxuICAgICAgICAhL25vdGhpbmcgdG8gY29tbWl0Ly50ZXN0KChjaGlsZFByb2Nlc3MgYXMgYW55KS5zdGRvdXQpXG4gICAgICApIHtcbiAgICAgICAgY29uc29sZS5lcnJvcigoY2hpbGRQcm9jZXNzIGFzIGFueSkub3V0cHV0KVxuICAgICAgICB0aHJvdyBjaGlsZFByb2Nlc3NcbiAgICAgIH1cbiAgICB9XG4gICAgZm9yIChjb25zdCByZW1vdGUgb2YgcmVtb3RlcyB8fCBbXSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgZXhlY1N5bmMoYGdpdCBwdXNoICR7cmVtb3RlfSBtYXN0ZXJgLCB7XG4gICAgICAgICAgY3dkOiByZXBvc2l0b3J5RGlyLFxuICAgICAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICAgICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwiaWdub3JlXCIsIFwicGlwZVwiXSxcbiAgICAgICAgfSlcbiAgICAgIH0gY2F0Y2ggKGNoaWxkUHJvY2Vzcykge1xuICAgICAgICAvLyBEb24ndCBzdG9wIHdoZW4gcHVzaCBmYWlscy5cbiAgICAgICAgY29uc29sZS5lcnJvcigoY2hpbGRQcm9jZXNzIGFzIGFueSkub3V0cHV0KVxuICAgICAgICBlcnJvciA9IHRydWVcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGVycm9yXG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJldHJpZXZlUGhvdG9zRGVwdXRlcygpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgY29uc3QgZGF0YURpciA9IG9wdGlvbnMuZGF0YURpclxuICBjb25zdCB7IGFjdGV1ckJ5VWlkIH0gPSBsb2FkQXNzZW1ibGVlRGF0YShcbiAgICBkYXRhRGlyLFxuICAgIEVuYWJsZWREYXRhc2V0cy5BY3RldXJzRXRPcmdhbmVzLFxuICAgIG9wdGlvbnMubGVnaXNsYXR1cmUsXG4gIClcbiAgY29uc3QgZGVwdXRlc0xlZ2lzbGF0dXJlID0gT2JqZWN0LnZhbHVlcyhhY3RldXJCeVVpZClcbiAgICAuZmlsdGVyKChhY3RldXIpID0+IHtcbiAgICAgIGNvbnN0IHsgbWFuZGF0cyB9ID0gYWN0ZXVyXG4gICAgICBpZiAoIW1hbmRhdHMpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG4gICAgICBjb25zdCBtYW5kYXREZXB1dGVMZWdpc2xhdHVyZSA9IG1hbmRhdHMuZmlsdGVyKFxuICAgICAgICAobWFuZGF0OiBNYW5kYXQpID0+XG4gICAgICAgICAgbWFuZGF0LnhzaVR5cGUgPT09IFR5cGVNYW5kYXQuTWFuZGF0UGFybGVtZW50YWlyZVR5cGUgJiZcbiAgICAgICAgICBtYW5kYXQubGVnaXNsYXR1cmUgPT09IG9wdGlvbnMubGVnaXNsYXR1cmUgJiZcbiAgICAgICAgICBtYW5kYXQudHlwZU9yZ2FuZSA9PT0gQ29kZVR5cGVPcmdhbmUuQXNzZW1ibGVlLFxuICAgICAgKVswXVxuICAgICAgcmV0dXJuIG1hbmRhdERlcHV0ZUxlZ2lzbGF0dXJlICE9PSB1bmRlZmluZWRcbiAgICB9KVxuICAgIC5zb3J0KChhLCBiKSA9PlxuICAgICAgYS51aWQubGVuZ3RoID09PSBiLnVpZC5sZW5ndGhcbiAgICAgICAgPyBhLnVpZC5sb2NhbGVDb21wYXJlKGIudWlkKVxuICAgICAgICA6IGEudWlkLmxlbmd0aCAtIGIudWlkLmxlbmd0aCxcbiAgICApXG5cbiAgY29uc3QgZ2l0R3JvdXBVcmwgPSBvcHRpb25zLmNsb25lXG4gICAgPyBvcHRpb25zLmNsb25lLnRyaW0oKS5yZXBsYWNlKC9cXC8rJC8sIFwiXCIpXG4gICAgOiB1bmRlZmluZWRcbiAgY29uc3QgcGhvdG9zRGlyTmFtZSA9IGBwaG90b3NfZGVwdXRlc18ke29wdGlvbnMubGVnaXNsYXR1cmV9YFxuICBpZiAoZ2l0R3JvdXBVcmwgIT09IHVuZGVmaW5lZCkge1xuICAgIGV4ZWNTeW5jKGBnaXQgY2xvbmUgJHtnaXRHcm91cFVybH0vJHtwaG90b3NEaXJOYW1lfS5naXRgLCB7XG4gICAgICBjd2Q6IGRhdGFEaXIsXG4gICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICAgIHN0ZGlvOiBbXCJpZ25vcmVcIiwgXCJpZ25vcmVcIiwgXCJwaXBlXCJdLFxuICAgIH0pXG4gIH1cbiAgY29uc3QgcGhvdG9zRGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIHBob3Rvc0Rpck5hbWUpXG5cbiAgLy8gRG93bmxvYWQgcGhvdG9zLlxuICBmcy5lbnN1cmVEaXJTeW5jKHBob3Rvc0RpcilcbiAgaWYgKG9wdGlvbnMuZmV0Y2gpIHtcbiAgICBjb25zdCBtaXNzaW5nUGhvdG9GaWxlUGF0aCA9IFwiaW1hZ2VzL3RyYW5zcGFyZW50XzE1MHgxOTIuanBnXCJcbiAgICBmb3IgKGNvbnN0IGRlcHV0ZSBvZiBkZXB1dGVzTGVnaXNsYXR1cmUpIHtcbiAgICAgIGNvbnN0IGlkZW50ID0gZGVwdXRlLmV0YXRDaXZpbC5pZGVudFxuICAgICAgY29uc3QgbnVtZXJvRGVwdXRlID0gZGVwdXRlLnVpZC5zdWJzdHJpbmcoMilcbiAgICAgIGNvbnN0IHBob3RvRmlsZW5hbWUgPSBgJHtudW1lcm9EZXB1dGV9LmpwZ2BcbiAgICAgIGNvbnN0IHBob3RvRmlsZVBhdGggPSBwYXRoLmpvaW4ocGhvdG9zRGlyLCBwaG90b0ZpbGVuYW1lKVxuICAgICAgY29uc3QgcGhvdG9UZW1wRmlsZW5hbWUgPSBgJHtudW1lcm9EZXB1dGV9X3RlbXAuanBnYFxuICAgICAgY29uc3QgcGhvdG9UZW1wRmlsZVBhdGggPSBwYXRoLmpvaW4ocGhvdG9zRGlyLCBwaG90b1RlbXBGaWxlbmFtZSlcbiAgICAgIGNvbnN0IHVybFBob3RvID0gYGh0dHA6Ly93d3cyLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL3RyaWJ1bi8ke29wdGlvbnMubGVnaXNsYXR1cmV9L3Bob3Rvcy8ke3Bob3RvRmlsZW5hbWV9YFxuICAgICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICBgTG9hZGluZyBwaG90byAke3VybFBob3RvfSBmb3IgJHtpZGVudC5wcmVub219ICR7aWRlbnQubm9tfeKApmAsXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIGZvciAobGV0IHJldHJpZXMgPSAwOyByZXRyaWVzIDwgMzsgcmV0cmllcysrKSB7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsUGhvdG8pXG4gICAgICAgIGlmIChyZXNwb25zZS5vaykge1xuICAgICAgICAgIGF3YWl0IHBpcGVsaW5lKHJlc3BvbnNlLmJvZHksIGZzLmNyZWF0ZVdyaXRlU3RyZWFtKHBob3RvVGVtcEZpbGVQYXRoKSlcbiAgICAgICAgICBmcy5yZW5hbWVTeW5jKHBob3RvVGVtcEZpbGVQYXRoLCBwaG90b0ZpbGVQYXRoKVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJldHJpZXMgPj0gMikge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgIGBGZXRjaCBmYWlsZWQ6ICR7dXJsUGhvdG99ICgke2lkZW50LnByZW5vbX0gJHtpZGVudC5ub219KWAsXG4gICAgICAgICAgKVxuICAgICAgICAgIGNvbnNvbGUud2FybihyZXNwb25zZS5zdGF0dXMsIHJlc3BvbnNlLnN0YXR1c1RleHQpXG4gICAgICAgICAgY29uc29sZS53YXJuKGF3YWl0IHJlc3BvbnNlLnRleHQoKSlcbiAgICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyhwaG90b0ZpbGVQYXRoKSkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKFwiICA9PiBSZXVzaW5nIGV4aXN0aW5nIGltYWdlXCIpXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcIiAgPT4gVXNpbmcgYmxhbmsgaW1hZ2VcIilcbiAgICAgICAgICAgIGZzLmNvcHlGaWxlU3luYyhtaXNzaW5nUGhvdG9GaWxlUGF0aCwgcGhvdG9GaWxlUGF0aClcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2l6ZSBwaG90b3MgdG8gMTUweDE5MiwgYmVjYXVzZSBzb21lIGhhdmVuJ3QgZXhhY3RseSB0aGlzIHNpemUuXG4gIGZvciAoY29uc3QgZGVwdXRlIG9mIGRlcHV0ZXNMZWdpc2xhdHVyZSkge1xuICAgIGNvbnN0IGlkZW50ID0gZGVwdXRlLmV0YXRDaXZpbC5pZGVudFxuICAgIGNvbnN0IG51bWVyb0RlcHV0ZSA9IGRlcHV0ZS51aWQuc3Vic3RyaW5nKDIpXG4gICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgY29uc29sZS5sb2coXG4gICAgICAgIGBSZXNpemluZyBwaG90byAke251bWVyb0RlcHV0ZX0gZm9yICR7aWRlbnQucHJlbm9tfSAke2lkZW50Lm5vbX3igKZgLFxuICAgICAgKVxuICAgIH1cbiAgICBleGVjU3luYyhcbiAgICAgIGBnbSBjb252ZXJ0IC1yZXNpemUgMTUweDE5MiEgJHtudW1lcm9EZXB1dGV9LmpwZyAke251bWVyb0RlcHV0ZX1fMTUweDE5Mi5qcGdgLFxuICAgICAge1xuICAgICAgICBjd2Q6IHBob3Rvc0RpcixcbiAgICAgIH0sXG4gICAgKVxuICB9XG5cbiAgLy8gQ3JlYXRlIGEgbW9zYWljIG9mIHBob3Rvcy5cbiAgY29uc3QgcGhvdG9CeUlkRGVwdXRlOiB7IFt1aWQ6IHN0cmluZ106IFBob3RvIH0gPSB7fVxuICBjb25zdCByb3dzRmlsZW5hbWVzOiBzdHJpbmdbXSA9IFtdXG4gIGZvciAoXG4gICAgbGV0IGRlcHV0ZUluZGV4ID0gMCwgcm93SW5kZXggPSAwO1xuICAgIGRlcHV0ZUluZGV4IDwgZGVwdXRlc0xlZ2lzbGF0dXJlLmxlbmd0aDtcbiAgICBkZXB1dGVJbmRleCArPSAyNSwgcm93SW5kZXgrK1xuICApIHtcbiAgICBjb25zdCByb3cgPSBkZXB1dGVzTGVnaXNsYXR1cmUuc2xpY2UoZGVwdXRlSW5kZXgsIGRlcHV0ZUluZGV4ICsgMjUpXG4gICAgY29uc3QgcGhvdG9zRmlsZW5hbWVzOiBzdHJpbmdbXSA9IFtdXG4gICAgZm9yIChjb25zdCBbY29sdW1uSW5kZXgsIGRlcHV0ZV0gb2Ygcm93LmVudHJpZXMoKSkge1xuICAgICAgY29uc3QgbnVtZXJvRGVwdXRlID0gZGVwdXRlLnVpZC5zdWJzdHJpbmcoMilcbiAgICAgIGNvbnN0IHBob3RvRmlsZW5hbWUgPSBgJHtudW1lcm9EZXB1dGV9XzE1MHgxOTIuanBnYFxuICAgICAgcGhvdG9zRmlsZW5hbWVzLnB1c2gocGhvdG9GaWxlbmFtZSlcbiAgICAgIHBob3RvQnlJZERlcHV0ZVtkZXB1dGUudWlkXSA9IHtcbiAgICAgICAgY2hlbWluOiBgcGhvdG9zX2RlcHV0ZXNfJHtvcHRpb25zLmxlZ2lzbGF0dXJlfS8ke3Bob3RvRmlsZW5hbWV9YCxcbiAgICAgICAgY2hlbWluTW9zYWlxdWU6IGBwaG90b3NfZGVwdXRlc18ke29wdGlvbnMubGVnaXNsYXR1cmV9L2RlcHV0ZXMuanBnYCxcbiAgICAgICAgaGF1dGV1cjogMTkyLFxuICAgICAgICBsYXJnZXVyOiAxNTAsXG4gICAgICAgIHhNb3NhaXF1ZTogY29sdW1uSW5kZXggKiAxNTAsXG4gICAgICAgIHlNb3NhaXF1ZTogcm93SW5kZXggKiAxOTIsXG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHJvd0ZpbGVuYW1lID0gYHJvdy0ke3Jvd0luZGV4fS5qcGdgXG4gICAgZXhlY1N5bmMoYGdtIGNvbnZlcnQgJHtwaG90b3NGaWxlbmFtZXMuam9pbihcIiBcIil9ICthcHBlbmQgJHtyb3dGaWxlbmFtZX1gLCB7XG4gICAgICBjd2Q6IHBob3Rvc0RpcixcbiAgICB9KVxuICAgIHJvd3NGaWxlbmFtZXMucHVzaChyb3dGaWxlbmFtZSlcbiAgfVxuICBleGVjU3luYyhgZ20gY29udmVydCAke3Jvd3NGaWxlbmFtZXMuam9pbihcIiBcIil9IC1hcHBlbmQgZGVwdXRlcy5qcGdgLCB7XG4gICAgY3dkOiBwaG90b3NEaXIsXG4gIH0pXG4gIGZvciAoY29uc3Qgcm93RmlsZW5hbWUgb2Ygcm93c0ZpbGVuYW1lcykge1xuICAgIGZzLnVubGlua1N5bmMocGF0aC5qb2luKHBob3Rvc0Rpciwgcm93RmlsZW5hbWUpKVxuICB9XG5cbiAgY29uc3QganNvbkZpbGVQYXRoID0gcGF0aC5qb2luKHBob3Rvc0RpciwgXCJkZXB1dGVzLmpzb25cIilcbiAgZnMud3JpdGVGaWxlU3luYyhqc29uRmlsZVBhdGgsIEpTT04uc3RyaW5naWZ5KHBob3RvQnlJZERlcHV0ZSwgbnVsbCwgMikpXG5cbiAgcmV0dXJuIGNvbW1pdEFuZFB1c2gocGhvdG9zRGlyLCBvcHRpb25zLmNvbW1pdCwgb3B0aW9ucy5yZW1vdGUpXG59XG5cbnJldHJpZXZlUGhvdG9zRGVwdXRlcygpXG4gIC50aGVuKChlcnJvcikgPT4gcHJvY2Vzcy5leGl0KGVycm9yID8gMSA6IDApKVxuICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgY29uc29sZS5sb2coZXJyb3IpXG4gICAgcHJvY2Vzcy5leGl0KDIpXG4gIH0pXG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQXVCQSxRQUF2QixRQUF1QyxlQUF2QztBQUNBLE9BQU9DLGVBQVAsTUFBNEIsbUJBQTVCO0FBQ0EsT0FBT0MsRUFBUCxNQUFlLFVBQWY7QUFDQSxPQUFPQyxLQUFQLE1BQWtCLFlBQWxCO0FBQ0EsT0FBT0MsSUFBUCxNQUFpQixNQUFqQjtBQUNBLE9BQU9DLE1BQVAsTUFBbUIsUUFBbkI7QUFDQSxPQUFPQyxJQUFQLE1BQWlCLE1BQWpCO1NBRVNDLGU7U0FDQUMsaUI7U0FFUEMsYyxFQUdBQyxVO0FBR0YsTUFBTUMsa0JBQWtCLEdBQUcsQ0FDekI7RUFDRUMsS0FBSyxFQUFFLEdBRFQ7RUFFRUMsSUFBSSxFQUFFLCtEQUZSO0VBR0VDLElBQUksRUFBRSxPQUhSO0VBSUVDLElBQUksRUFBRUM7QUFKUixDQUR5QixFQU96QjtFQUNFSixLQUFLLEVBQUUsR0FEVDtFQUVFQyxJQUFJLEVBQUUsZUFGUjtFQUdFQyxJ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
|
|
@@ -22,12 +22,30 @@ require("core-js/modules/es.array.is-array.js");
|
|
|
22
22
|
|
|
23
23
|
require("core-js/modules/es.promise.js");
|
|
24
24
|
|
|
25
|
+
require("core-js/modules/es.symbol.async-iterator.js");
|
|
26
|
+
|
|
27
|
+
require("core-js/modules/es.symbol.to-string-tag.js");
|
|
28
|
+
|
|
29
|
+
require("core-js/modules/es.json.to-string-tag.js");
|
|
30
|
+
|
|
31
|
+
require("core-js/modules/es.math.to-string-tag.js");
|
|
32
|
+
|
|
33
|
+
require("core-js/modules/es.object.create.js");
|
|
34
|
+
|
|
35
|
+
require("core-js/modules/es.object.get-prototype-of.js");
|
|
36
|
+
|
|
37
|
+
require("core-js/modules/es.array.for-each.js");
|
|
38
|
+
|
|
39
|
+
require("core-js/modules/web.dom-collections.for-each.js");
|
|
40
|
+
|
|
41
|
+
require("core-js/modules/es.object.set-prototype-of.js");
|
|
42
|
+
|
|
43
|
+
require("core-js/modules/es.array.reverse.js");
|
|
44
|
+
|
|
25
45
|
require("core-js/modules/es.weak-map.js");
|
|
26
46
|
|
|
27
47
|
require("core-js/modules/es.object.get-own-property-descriptor.js");
|
|
28
48
|
|
|
29
|
-
require("regenerator-runtime/runtime.js");
|
|
30
|
-
|
|
31
49
|
require("core-js/modules/es.array.concat.js");
|
|
32
50
|
|
|
33
51
|
require("core-js/modules/es.array.map.js");
|
|
@@ -82,6 +100,8 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
|
|
|
82
100
|
|
|
83
101
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
84
102
|
|
|
103
|
+
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return generator._invoke = function (innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; }(innerFn, self, context), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; this._invoke = function (method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); }; } function maybeInvokeDelegate(delegate, context) { var method = delegate.iterator[context.method]; if (undefined === method) { if (context.delegate = null, "throw" === context.method) { if (delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method)) return ContinueSentinel; context.method = "throw", context.arg = new TypeError("The iterator does not provide a 'throw' method"); } return ContinueSentinel; } var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) { if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; } return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, "constructor", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (object) { var keys = []; for (var key in object) { keys.push(key); } return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) { "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); } }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
|
|
104
|
+
|
|
85
105
|
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
86
106
|
|
|
87
107
|
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
@@ -130,7 +150,7 @@ function parseArgs(argv) {
|
|
|
130
150
|
type: Boolean
|
|
131
151
|
}, {
|
|
132
152
|
alias: "l",
|
|
133
|
-
defaultValue: "
|
|
153
|
+
defaultValue: "16",
|
|
134
154
|
name: "legislature",
|
|
135
155
|
type: String
|
|
136
156
|
}, {
|
|
@@ -224,8 +244,8 @@ var Retrieve = /*#__PURE__*/function () {
|
|
|
224
244
|
}, {
|
|
225
245
|
key: "commitAndPush",
|
|
226
246
|
value: function () {
|
|
227
|
-
var _commitAndPush = _asyncToGenerator( /*#__PURE__*/
|
|
228
|
-
return
|
|
247
|
+
var _commitAndPush = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(repositoryDir) {
|
|
248
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
229
249
|
while (1) {
|
|
230
250
|
switch (_context.prev = _context.next) {
|
|
231
251
|
case 0:
|
|
@@ -281,9 +301,9 @@ var Retrieve = /*#__PURE__*/function () {
|
|
|
281
301
|
}, {
|
|
282
302
|
key: "needsDownload",
|
|
283
303
|
value: function () {
|
|
284
|
-
var _needsDownload = _asyncToGenerator( /*#__PURE__*/
|
|
304
|
+
var _needsDownload = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(filePath, uid) {
|
|
285
305
|
var isNotEmpty, retryFailed, urlPath, url;
|
|
286
|
-
return
|
|
306
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
287
307
|
while (1) {
|
|
288
308
|
switch (_context2.prev = _context2.next) {
|
|
289
309
|
case 0:
|
|
@@ -332,10 +352,10 @@ var Retrieve = /*#__PURE__*/function () {
|
|
|
332
352
|
}, {
|
|
333
353
|
key: "get",
|
|
334
354
|
value: function () {
|
|
335
|
-
var _get = _asyncToGenerator( /*#__PURE__*/
|
|
355
|
+
var _get = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(url, filePath, format, uid) {
|
|
336
356
|
var response, page, status, _Retrieve$sanityCheck, _Retrieve$sanityCheck2;
|
|
337
357
|
|
|
338
|
-
return
|
|
358
|
+
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
339
359
|
while (1) {
|
|
340
360
|
switch (_context3.prev = _context3.next) {
|
|
341
361
|
case 0:
|
|
@@ -393,10 +413,10 @@ var Retrieve = /*#__PURE__*/function () {
|
|
|
393
413
|
}, {
|
|
394
414
|
key: "download",
|
|
395
415
|
value: function () {
|
|
396
|
-
var _download = _asyncToGenerator( /*#__PURE__*/
|
|
416
|
+
var _download = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(textesDir, divisionOrDocument, format) {
|
|
397
417
|
var uid, filePath, success, info, url, _iterator2, _step2, status, urlPath;
|
|
398
418
|
|
|
399
|
-
return
|
|
419
|
+
return _regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
400
420
|
while (1) {
|
|
401
421
|
switch (_context4.prev = _context4.next) {
|
|
402
422
|
case 0:
|
|
@@ -515,10 +535,10 @@ var Retrieve = /*#__PURE__*/function () {
|
|
|
515
535
|
}, {
|
|
516
536
|
key: "retrieveDocuments",
|
|
517
537
|
value: function () {
|
|
518
|
-
var _retrieveDocuments = _asyncToGenerator( /*#__PURE__*/
|
|
538
|
+
var _retrieveDocuments = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {
|
|
519
539
|
var gitDir, textesDir, _iterator3, _step3, filename, document, _iterator4, _step4, divisionOrDocument, status, _i2, _arr2, format;
|
|
520
540
|
|
|
521
|
-
return
|
|
541
|
+
return _regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
522
542
|
while (1) {
|
|
523
543
|
switch (_context5.prev = _context5.next) {
|
|
524
544
|
case 0:
|
|
@@ -710,9 +730,9 @@ function main(_x11) {
|
|
|
710
730
|
|
|
711
731
|
|
|
712
732
|
function _main() {
|
|
713
|
-
_main = _asyncToGenerator( /*#__PURE__*/
|
|
733
|
+
_main = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(argv) {
|
|
714
734
|
var options, retrieve;
|
|
715
|
-
return
|
|
735
|
+
return _regeneratorRuntime().wrap(function _callee6$(_context6) {
|
|
716
736
|
while (1) {
|
|
717
737
|
switch (_context6.prev = _context6.next) {
|
|
718
738
|
case 0:
|
|
@@ -745,4 +765,4 @@ if (process.argv[1].endsWith("retrieve_documents.ts")) main(process.argv).then(f
|
|
|
745
765
|
console.error(error);
|
|
746
766
|
process.exit(1);
|
|
747
767
|
});
|
|
748
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmZXRjaCIsInJlcXVpcmUiLCJwYXJzZUFyZ3MiLCJhcmd2Iiwib3B0aW9uc0RlZmluaXRpb25zIiwiYWxpYXMiLCJoZWxwIiwibmFtZSIsInR5cGUiLCJCb29sZWFuIiwiZGVmYXVsdFZhbHVlIiwiU3RyaW5nIiwiZGVmYXVsdE9wdGlvbiIsIm11bHRpcGxlIiwic2VjdGlvbnMiLCJoZWFkZXIiLCJjb250ZW50Iiwib3B0aW9uTGlzdCIsIm9wdGlvbnMiLCJjb21tYW5kTGluZUFyZ3MiLCJ1c2FnZSIsImNvbW1hbmRMaW5lVXNhZ2UiLCJjb25zb2xlIiwid2FybiIsIlJldHJpZXZlIiwiZGl2aXNpb24iLCJkaXZpc2lvbnMiLCJ1bmRlZmluZWQiLCJkIiwiY29uY2F0IiwiZ2V0RGl2aXNpb25zIiwiZG9jdW1lbnQiLCJtYXAiLCJyZXBvc2l0b3J5RGlyIiwiY29tbWl0IiwiZ2l0IiwicmVtb3RlIiwicnVuIiwiZGl2aXNpb25PckRvY3VtZW50IiwiZm9ybWF0IiwiZXh0IiwidXJscyIsInVpZCIsInB1c2giLCJ1cmxGcm9tRG9jdW1lbnQiLCJEb2N1bWVudFVybEZvcm1hdCIsIlJhd0h0bWwiLCJIdG1sIiwiUGRmIiwiZmlsZVBhdGgiLCJmcyIsImV4aXN0c1N5bmMiLCJpc05vdEVtcHR5Iiwic3RhdFN5bmMiLCJzaXplIiwicmV0cnlGYWlsZWQiLCJ2ZXJib3NlIiwidXJsUGF0aCIsInVybCIsInJlYWRGaWxlU3luYyIsInRvU3RyaW5nIiwibG9nIiwicmVzcG9uc2UiLCJidWZmZXIiLCJwYWdlIiwib2siLCJzdGF0dXMiLCJlcnJvciIsIkpTT04iLCJzdHJpbmdpZnkiLCJjb2RlIiwibWVzc2FnZSIsInN0YXR1c1RleHQiLCJ3cml0ZUZpbGVTeW5jIiwic2FuaXR5Q2hlY2tGb3JtYXQiLCJ0ZXh0ZXNEaXIiLCJuZWVkc0Rvd25sb2FkIiwic3VjY2VzcyIsImluZm8iLCJnZXRVcmxzIiwiZ2V0IiwidW5saW5rU3luYyIsInNpbGVudCIsInVybEZyb21VaWQiLCJzbGljZSIsImdpdERpciIsInRleHRlcyIsInBhdGgiLCJqb2luIiwibGVnaXNsYXR1cmUiLCJlbnN1cmVEaXJTeW5jIiwiZ2V0RmlsZXMiLCJkYXRhIiwiZmlsZW5hbWUiLCJsb2FkIiwidGVzdCIsImdldERpdmlzaW9uc09yRG9jdW1lbnQiLCJkb3dubG9hZCIsImNvbW1pdEFuZFB1c2giLCJsZW5ndGgiLCJNYXRoIiwibWluIiwiaGVhZCIsInN0YXJ0c1dpdGgiLCJCdWZmZXIiLCJmcm9tIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwiaW5jbHVkZXMiLCJtYWluIiwicmV0cmlldmUiLCJyZXRyaWV2ZURvY3VtZW50cyIsInByb2Nlc3MiLCJlbmRzV2l0aCIsInRoZW4iLCJleGl0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvcmV0cmlldmVfZG9jdW1lbnRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjb21tYW5kTGluZUFyZ3MgZnJvbSBcImNvbW1hbmQtbGluZS1hcmdzXCJcbmltcG9ydCBjb21tYW5kTGluZVVzYWdlIGZyb20gXCJjb21tYW5kLWxpbmUtdXNhZ2VcIlxuaW1wb3J0ICogYXMgZ2l0IGZyb20gXCIuLi8uLi9zcmMvZ2l0XCJcbmltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIlxubGV0IGZldGNoID0gcmVxdWlyZShcIm5vZGUtZmV0Y2hcIilcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcblxuaW1wb3J0IHsgbG9hZCwgZ2V0RmlsZXMgfSBmcm9tIFwiLi4vZmlsZV9zeXN0ZW1zXCJcbmltcG9ydCB7IERvY3VtZW50VXJsRm9ybWF0LCB1cmxGcm9tRG9jdW1lbnQgfSBmcm9tIFwiLi4vdXJsc1wiXG5cbmZ1bmN0aW9uIHBhcnNlQXJncyhhcmd2OiBzdHJpbmdbXSk6IGFueSB7XG4gIGNvbnN0IG9wdGlvbnNEZWZpbml0aW9ucyA9IFtcbiAgICB7XG4gICAgICBhbGlhczogXCJjXCIsXG4gICAgICBoZWxwOiBcImNvbW1pdCBkb2N1bWVudHNcIixcbiAgICAgIG5hbWU6IFwiY29tbWl0XCIsXG4gICAgICB0eXBlOiBCb29sZWFuLFxuICAgIH0sXG4gICAge1xuICAgICAgaGVscDogXCJkcnkgcnVuXCIsXG4gICAgICBuYW1lOiBcImRyeS1ydW5cIixcbiAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgfSxcbiAgICB7XG4gICAgICBoZWxwOiBcInJldHJ5IGZhaWxlZCBkb2N1bWVudHNcIixcbiAgICAgIG5hbWU6IFwicmV0cnktZmFpbGVkXCIsXG4gICAgICB0eXBlOiBCb29sZWFuLFxuICAgIH0sXG4gICAge1xuICAgICAgaGVscDogXCJyZXRyeSBhbGwgZG9jdW1lbnRzXCIsXG4gICAgICBuYW1lOiBcInJldHJ5XCIsXG4gICAgICB0eXBlOiBCb29sZWFuLFxuICAgIH0sXG4gICAge1xuICAgICAgYWxpYXM6IFwibFwiLFxuICAgICAgZGVmYXVsdFZhbHVlOiBcIjE1XCIsXG4gICAgICBuYW1lOiBcImxlZ2lzbGF0dXJlXCIsXG4gICAgICB0eXBlOiBTdHJpbmcsXG4gICAgfSxcbiAgICB7XG4gICAgICBhbGlhczogXCJyXCIsXG4gICAgICBoZWxwOiBcInB1c2ggY29tbWl0IHRvIGdpdmVuIHJlbW90ZVwiLFxuICAgICAgbmFtZTogXCJyZW1vdGVcIixcbiAgICAgIHR5cGU6IFN0cmluZyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGFsaWFzOiBcInNcIixcbiAgICAgIGhlbHA6IFwiZG9uJ3QgbG9nIGFueXRoaW5nXCIsXG4gICAgICBuYW1lOiBcInNpbGVudFwiLFxuICAgICAgdHlwZTogQm9vbGVhbixcbiAgICB9LFxuICAgIHtcbiAgICAgIGhlbHA6IFwidGV4dGVzIGRpclwiLFxuICAgICAgbmFtZTogXCJ0ZXh0ZXNcIixcbiAgICAgIHR5cGU6IFN0cmluZyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGFsaWFzOiBcInZcIixcbiAgICAgIGhlbHA6IFwidmVyYm9zZSBsb2dzXCIsXG4gICAgICBuYW1lOiBcInZlcmJvc2VcIixcbiAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgfSxcbiAgICB7XG4gICAgICBkZWZhdWx0T3B0aW9uOiB0cnVlLFxuICAgICAgaGVscDogXCJmaWxlcyBvciBnbG9icyB0byBkb2N1bWVudHNcIixcbiAgICAgIG11bHRpcGxlOiB0cnVlLFxuICAgICAgbmFtZTogXCJkYXRhXCIsXG4gICAgICB0eXBlOiBTdHJpbmcsXG4gICAgfSxcbiAgXVxuICBjb25zdCBzZWN0aW9ucyA9IFtcbiAgICB7XG4gICAgICBoZWFkZXI6IFwiUmV0cmlldmUgZG9jdW1lbnRzXCIsXG4gICAgICBjb250ZW50OiBcIlJldHJpZXZlIGRvY3VtZW50c1wiLFxuICAgIH0sXG4gICAge1xuICAgICAgaGVhZGVyOiBcIk9wdGlvbnNcIixcbiAgICAgIG9wdGlvbkxpc3Q6IG9wdGlvbnNEZWZpbml0aW9ucyxcbiAgICB9LFxuICBdXG4gIGNvbnN0IG9wdGlvbnMgPSBjb21tYW5kTGluZUFyZ3Mob3B0aW9uc0RlZmluaXRpb25zLCB7XG4gICAgYXJndjogYXJndixcbiAgfSlcblxuICBpZiAoXCJoZWxwXCIgaW4gb3B0aW9ucykge1xuICAgIGNvbnN0IHVzYWdlID0gY29tbWFuZExpbmVVc2FnZShzZWN0aW9ucylcbiAgICBjb25zb2xlLndhcm4odXNhZ2UpXG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICByZXR1cm4gb3B0aW9uc1xufVxuXG5jbGFzcyBSZXRyaWV2ZSB7XG4gIG9wdGlvbnM6IGFueVxuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IGFueSkge1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnNcbiAgfVxuXG4gIGdldERpdmlzaW9ucyhkaXZpc2lvbjogYW55KSB7XG4gICAgbGV0IGRpdmlzaW9ucyA9IFtkaXZpc2lvbl1cbiAgICBpZiAoZGl2aXNpb24uZGl2aXNpb25zICE9IHVuZGVmaW5lZCkge1xuICAgICAgZm9yIChjb25zdCBkIG9mIGRpdmlzaW9uLmRpdmlzaW9ucylcbiAgICAgICAgZGl2aXNpb25zID0gZGl2aXNpb25zLmNvbmNhdCh0aGlzLmdldERpdmlzaW9ucyhkKSlcbiAgICB9XG4gICAgcmV0dXJuIGRpdmlzaW9uc1xuICB9XG5cbiAgZ2V0RGl2aXNpb25zT3JEb2N1bWVudChkb2N1bWVudDogYW55KSB7XG4gICAgaWYgKGRvY3VtZW50LmRpdmlzaW9ucyAhPSB1bmRlZmluZWQpXG4gICAgICByZXR1cm4gW10uY29uY2F0KFxuICAgICAgICAuLi5kb2N1bWVudC5kaXZpc2lvbnMubWFwKChkOiBhbnkpID0+IHRoaXMuZ2V0RGl2aXNpb25zKGQpKSxcbiAgICAgIClcbiAgICBlbHNlIHJldHVybiBbZG9jdW1lbnRdXG4gIH1cblxuICBhc3luYyBjb21taXRBbmRQdXNoKHJlcG9zaXRvcnlEaXI6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLm9wdGlvbnMuY29tbWl0ID09IHVuZGVmaW5lZCkgcmV0dXJuXG4gICAgZ2l0LmNvbW1pdChyZXBvc2l0b3J5RGlyLCBcIk5vdXZlbGxlIG1vaXNzb25cIilcblxuICAgIGlmICh0aGlzLm9wdGlvbnMucmVtb3RlID09IHVuZGVmaW5lZCkgcmV0dXJuXG4gICAgZ2l0LnJ1bihyZXBvc2l0b3J5RGlyLCBgcHVzaCAke3RoaXMub3B0aW9ucy5yZW1vdGV9IEhFQUQ6bWFzdGVyYClcbiAgfVxuXG4gIGdldFVybHMoZGl2aXNpb25PckRvY3VtZW50OiBhbnksIGZvcm1hdDogc3RyaW5nKSB7XG4gICAgY29uc3QgZXh0ID0gZm9ybWF0ID09IFwiaHRtbFwiID8gXCJyYXdcIiA6IFwicGRmXCJcbiAgICBsZXQgdXJsczogYW55ID0gW1xuICAgICAgYGh0dHA6Ly93d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9keW4vZG9jcy8ke2RpdmlzaW9uT3JEb2N1bWVudC51aWR9LiR7ZXh0fWAsXG4gICAgXVxuICAgIGlmIChmb3JtYXQgPT0gXCJodG1sXCIpIHtcbiAgICAgIHVybHMucHVzaCh1cmxGcm9tRG9jdW1lbnQoZGl2aXNpb25PckRvY3VtZW50LCBEb2N1bWVudFVybEZvcm1hdC5SYXdIdG1sKSlcbiAgICAgIHVybHMucHVzaCh1cmxGcm9tRG9jdW1lbnQoZGl2aXNpb25PckRvY3VtZW50LCBEb2N1bWVudFVybEZvcm1hdC5IdG1sKSlcbiAgICB9IGVsc2UgaWYgKGZvcm1hdCA9PSBcInBkZlwiKSB7XG4gICAgICB1cmxzLnB1c2godXJsRnJvbURvY3VtZW50KGRpdmlzaW9uT3JEb2N1bWVudCwgRG9jdW1lbnRVcmxGb3JtYXQuUGRmKSlcbiAgICB9XG4gICAgcmV0dXJuIHVybHNcbiAgfVxuXG4gIHN0YXRpYyBzYW5pdHlDaGVja0Zvcm1hdChwYWdlOiBCdWZmZXIsIGZvcm1hdDogc3RyaW5nKTogW0J1ZmZlciwgc3RyaW5nXSB7XG4gICAgaWYgKGZvcm1hdCA9PSBcInBkZlwiKSB7XG4gICAgICBjb25zdCBsZW5ndGggPSBNYXRoLm1pbihwYWdlLmxlbmd0aCwgNClcbiAgICAgIGNvbnN0IGhlYWQgPSBwYWdlLnNsaWNlKDAsIGxlbmd0aCkudG9TdHJpbmcoKVxuICAgICAgaWYgKCFoZWFkLnN0YXJ0c1dpdGgoXCIlUERGXCIpKVxuICAgICAgICByZXR1cm4gW0J1ZmZlci5mcm9tKFwiXCIpLCBgYmFkIHBkZiAke2VuY29kZVVSSUNvbXBvbmVudChoZWFkKX0uLi5gXVxuICAgIH0gZWxzZSBpZiAoZm9ybWF0ID09IFwiaHRtbFwiKSB7XG4gICAgICBjb25zdCBsZW5ndGggPSBNYXRoLm1pbihwYWdlLmxlbmd0aCwgNTApXG4gICAgICBjb25zdCBoZWFkID0gcGFnZS5zbGljZSgwLCBsZW5ndGgpLnRvU3RyaW5nKClcbiAgICAgIGlmICghaGVhZC5pbmNsdWRlcyhcIkRPQ1RZUEVcIikgJiYgIWhlYWQuaW5jbHVkZXMoXCI8P3htbFwiKSkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIEJ1ZmZlci5mcm9tKFwiXCIpLFxuICAgICAgICAgIGBiYWQgaHRtbCAke2VuY29kZVVSSUNvbXBvbmVudChoZWFkLnNsaWNlKDAsIDQpKX0uLi5gLFxuICAgICAgICBdXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBbcGFnZSwgXCJPS1wiXVxuICB9XG5cbiAgYXN5bmMgbmVlZHNEb3dubG9hZChmaWxlUGF0aDogc3RyaW5nLCB1aWQ6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmIChmcy5leGlzdHNTeW5jKGZpbGVQYXRoKSkge1xuICAgICAgY29uc3QgaXNOb3RFbXB0eSA9IGZzLnN0YXRTeW5jKGZpbGVQYXRoKS5zaXplID4gMFxuICAgICAgY29uc3QgcmV0cnlGYWlsZWQgPSBcInJldHJ5LWZhaWxlZFwiIGluIHRoaXMub3B0aW9uc1xuICAgICAgaWYgKCFyZXRyeUZhaWxlZCB8fCBpc05vdEVtcHR5KSB7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMudmVyYm9zZSkge1xuICAgICAgICAgIGlmIChpc05vdEVtcHR5KSB7XG4gICAgICAgICAgICBjb25zdCB1cmxQYXRoID0gYCR7ZmlsZVBhdGh9LnVybGBcbiAgICAgICAgICAgIGxldCB1cmxcbiAgICAgICAgICAgIGlmIChmcy5leGlzdHNTeW5jKHVybFBhdGgpKVxuICAgICAgICAgICAgICB1cmwgPSBmcy5yZWFkRmlsZVN5bmModXJsUGF0aCkudG9TdHJpbmcoKVxuICAgICAgICAgICAgZWxzZSB1cmwgPSBcIjx1bmtub3duIHVybD5cIlxuICAgICAgICAgICAgY29uc29sZS5sb2coYCR7dWlkfTogQ2FjaGVkIE9LICR7ZmlsZVBhdGh9IGZyb20gJHt1cmx9YClcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYCR7dWlkfTogQ2FjaGVkIEZBSUwgJHtmaWxlUGF0aH1gKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGFzeW5jIGdldChcbiAgICB1cmw6IHN0cmluZyxcbiAgICBmaWxlUGF0aDogc3RyaW5nLFxuICAgIGZvcm1hdDogc3RyaW5nLFxuICAgIHVpZDogc3RyaW5nLFxuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGlmICh0aGlzLm9wdGlvbnMudmVyYm9zZSkgY29uc29sZS5sb2coYCR7dWlkfTogZmV0Y2goJHt1cmx9KWApXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwpXG4gICAgbGV0IHBhZ2U6IGFueSA9IGF3YWl0IHJlc3BvbnNlLmJ1ZmZlcigpXG4gICAgbGV0IHN0YXR1c1xuICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgIHN0YXR1cyA9IHJlc3BvbnNlLnN0YXR1c1xuICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyAhPT0gNDA0KSB7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMudmVyYm9zZSkge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBgRXJyb3Igd2hpbGUgZ2V0dGluZyBwYWdlIFwiJHt1cmx9XCIgKHVpZDogJHt1aWR9KTpcXG5cXG5FcnJvcjpcXG4ke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICAgICAgICB7IGNvZGU6IHJlc3BvbnNlLnN0YXR1cywgbWVzc2FnZTogcmVzcG9uc2Uuc3RhdHVzVGV4dCB9LFxuICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgKX1gLFxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZnMud3JpdGVGaWxlU3luYyhmaWxlUGF0aCwgXCJcIilcbiAgICB9IGVsc2Uge1xuICAgICAgO1twYWdlLCBzdGF0dXNdID0gUmV0cmlldmUuc2FuaXR5Q2hlY2tGb3JtYXQocGFnZSwgZm9ybWF0KVxuICAgICAgZnMud3JpdGVGaWxlU3luYyhmaWxlUGF0aCwgcGFnZSlcbiAgICB9XG4gICAgcmV0dXJuIHN0YXR1c1xuICB9XG5cbiAgc3RhdGljIHVybEZyb21VaWQodWlkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHVybCA9XG4gICAgICBcImh0dHBzOi8vZ2l0LmVuLXJvb3Qub3JnL3RyaWNvdGV1c2VzL2RhdGEudHJpY290ZXVzZXMuZnIvRG9zc2llcnNfTGVnaXNsYXRpZnNfWFYvLS90cmVlL21hc3Rlci9kb2N1bWVudHNcIlxuICAgIHJldHVybiBgWyR7dWlkfV0oJHt1cmx9L3VpZC8ke3VpZH0uanNvbilgXG4gIH1cblxuICBhc3luYyBkb3dubG9hZChcbiAgICB0ZXh0ZXNEaXI6IHN0cmluZyxcbiAgICBkaXZpc2lvbk9yRG9jdW1lbnQ6IGFueSxcbiAgICBmb3JtYXQ6IHN0cmluZyxcbiAgKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICBjb25zdCB1aWQgPSBkaXZpc2lvbk9yRG9jdW1lbnQudWlkXG4gICAgY29uc3QgZmlsZVBhdGggPSBgJHt0ZXh0ZXNEaXJ9L3VpZC8ke3VpZH0uJHtmb3JtYXR9YFxuICAgIGlmICghKGF3YWl0IHRoaXMubmVlZHNEb3dubG9hZChmaWxlUGF0aCwgdWlkKSkpIHJldHVybiAwXG4gICAgaWYgKHRoaXMub3B0aW9ucy52ZXJib3NlKSBjb25zb2xlLmxvZyhgJHt1aWR9OiBDaGVja2luZyAke2ZpbGVQYXRofWApXG4gICAgbGV0IHN1Y2Nlc3MgPSBmYWxzZVxuICAgIGxldCBpbmZvID0gXCJcIlxuICAgIGxldCB1cmxcblxuICAgIGZvciAodXJsIG9mIHRoaXMuZ2V0VXJscyhkaXZpc2lvbk9yRG9jdW1lbnQsIGZvcm1hdCkpIHtcbiAgICAgIGlmIChcImRyeS1ydW5cIiBpbiB0aGlzLm9wdGlvbnMpIHtcbiAgICAgICAgaW5mbyArPSBgICAqICR7dXJsfVxcbmBcbiAgICAgICAgY29udGludWVcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGluZm8gKz0gYCAgKiAke3VybH0gYFxuICAgICAgfVxuXG4gICAgICBjb25zdCBzdGF0dXMgPSBhd2FpdCB0aGlzLmdldCh1cmwsIGZpbGVQYXRoLCBmb3JtYXQsIHVpZClcblxuICAgICAgaW5mbyArPSBgJHtzdGF0dXN9XFxuYFxuICAgICAgaWYgKHN0YXR1cyA9PSBcIk9LXCIpIHtcbiAgICAgICAgc3VjY2VzcyA9IHRydWVcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgdXJsUGF0aCA9IGAke2ZpbGVQYXRofS51cmxgXG4gICAgaWYgKHN1Y2Nlc3MpIHtcbiAgICAgIGZzLndyaXRlRmlsZVN5bmModXJsUGF0aCwgdXJsKVxuICAgIH0gZWxzZSBpZiAoZnMuZXhpc3RzU3luYyh1cmxQYXRoKSkge1xuICAgICAgZnMudW5saW5rU3luYyh1cmxQYXRoKVxuICAgIH1cbiAgICBpZiAoaW5mbyAhPSBcIlwiICYmICF0aGlzLm9wdGlvbnMuc2lsZW50KSB7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgYCogJHtSZXRyaWV2ZS51cmxGcm9tVWlkKHVpZCl9OiBSZXRyaWV2aW5nICR7ZmlsZVBhdGh9XFxuJHtpbmZvLnNsaWNlKFxuICAgICAgICAgIDAsXG4gICAgICAgICAgLTEsXG4gICAgICAgICl9YCxcbiAgICAgIClcbiAgICAgIHJldHVybiAxXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAwXG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcmV0cmlldmVEb2N1bWVudHMoKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICBjb25zdCBnaXREaXIgPSBgJHt0aGlzLm9wdGlvbnMudGV4dGVzfS8uZ2l0YFxuICAgIGlmICghZnMuZXhpc3RzU3luYyhnaXREaXIpKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGAke2dpdERpcn0gaXMgZXhwZWN0ZWQgdG8gZXhpc3QgYnV0IGRvZXMgbm90YClcbiAgICAgIHJldHVybiAxXG4gICAgfVxuXG4gICAgY29uc3QgdGV4dGVzRGlyID0gcGF0aC5qb2luKHRoaXMub3B0aW9ucy50ZXh0ZXMsIHRoaXMub3B0aW9ucy5sZWdpc2xhdHVyZSlcbiAgICBmcy5lbnN1cmVEaXJTeW5jKGAke3RleHRlc0Rpcn0vdWlkYClcblxuICAgIGZvciAoY29uc3QgZmlsZW5hbWUgb2YgZ2V0RmlsZXModGhpcy5vcHRpb25zLmRhdGEpKSB7XG4gICAgICBjb25zdCBkb2N1bWVudCA9IGxvYWQoZmlsZW5hbWUpXG4gICAgICBpZiAoL14uLi4uU04vLnRlc3QoZG9jdW1lbnQudWlkKSB8fCAvXkRFQ0wvLnRlc3QoZG9jdW1lbnQudWlkKSkgY29udGludWVcbiAgICAgIGZvciAoY29uc3QgZGl2aXNpb25PckRvY3VtZW50IG9mIHRoaXMuZ2V0RGl2aXNpb25zT3JEb2N1bWVudChkb2N1bWVudCkpIHtcbiAgICAgICAgaWYgKC8tQ09NUEEkLy50ZXN0KGRpdmlzaW9uT3JEb2N1bWVudC51aWQpKSBjb250aW51ZVxuICAgICAgICBsZXQgc3RhdHVzID0gMFxuICAgICAgICBmb3IgKGNvbnN0IGZvcm1hdCBvZiBbXCJodG1sXCIsIFwicGRmXCJdKSB7XG4gICAgICAgICAgc3RhdHVzIHw9IGF3YWl0IHRoaXMuZG93bmxvYWQodGV4dGVzRGlyLCBkaXZpc2lvbk9yRG9jdW1lbnQsIGZvcm1hdClcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RhdHVzICYmICF0aGlzLm9wdGlvbnMuc2lsZW50KSBjb25zb2xlLmxvZyhcIi0tLVwiKVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghKFwiZHJ5LXJ1blwiIGluIHRoaXMub3B0aW9ucykpIHtcbiAgICAgIGF3YWl0IHRoaXMuY29tbWl0QW5kUHVzaCh0ZXh0ZXNEaXIpXG4gICAgfVxuXG4gICAgcmV0dXJuIDBcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBtYWluKGFyZ3Y6IGFueSk6IFByb21pc2U8bnVtYmVyPiB7XG4gIGNvbnN0IG9wdGlvbnMgPSBwYXJzZUFyZ3MoYXJndilcbiAgaWYgKG9wdGlvbnMgPT09IG51bGwpIHJldHVybiAxXG4gIGNvbnN0IHJldHJpZXZlID0gbmV3IFJldHJpZXZlKG9wdGlvbnMpXG4gIHJldHVybiByZXRyaWV2ZS5yZXRyaWV2ZURvY3VtZW50cygpXG59XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuaWYgKHByb2Nlc3MuYXJndlsxXS5lbmRzV2l0aChcInJldHJpZXZlX2RvY3VtZW50cy50c1wiKSlcbiAgbWFpbihwcm9jZXNzLmFyZ3YpXG4gICAgLnRoZW4oKHN0YXR1cykgPT4ge1xuICAgICAgcHJvY2Vzcy5leGl0KHN0YXR1cylcbiAgICB9KVxuICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpXG4gICAgICBwcm9jZXNzLmV4aXQoMSlcbiAgICB9KVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUVBOztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFKQSxJQUFJQSxLQUFLLEdBQUdDLE9BQU8sQ0FBQyxZQUFELENBQW5COztBQU1BLFNBQVNDLFNBQVQsQ0FBbUJDLElBQW5CLEVBQXdDO0VBQ3RDLElBQU1DLGtCQUFrQixHQUFHLENBQ3pCO0lBQ0VDLEtBQUssRUFBRSxHQURUO0lBRUVDLElBQUksRUFBRSxrQkFGUjtJQUdFQyxJQUFJLEVBQUUsUUFIUjtJQUlFQyxJQUFJLEVBQUVDO0VBSlIsQ0FEeUIsRUFPekI7SUFDRUgsSUFBSSxFQUFFLFNBRFI7SUFFRUMsSUFBSSxFQUFFLFNBRlI7SUFHRUMsSUFBSSxFQUFFQztFQUhSLENBUHlCLEVBWXpCO0lBQ0VILElBQUksRUFBRSx3QkFEUjtJQUVFQyxJQUFJLEVBQUUsY0FGUjtJQUdFQyxJQUFJLEVBQUVDO0VBSFIsQ0FaeUIsRUFpQnpCO0lBQ0VILElBQUksRUFBRSxxQkFEUjtJQUVFQyxJQUFJLEVBQUUsT0FGUjtJQUdFQyxJQUFJLEVBQUVDO0VBSFIsQ0FqQnlCLEVBc0J6QjtJQUNFSixLQUFLLEVBQUUsR0FEVDtJQUVFSyxZQUFZLEVBQUUsSUFGaEI7SUFHRUgsSUFBSSxFQUFFLGFBSFI7SUFJRUMsSUFBSSxFQUFFRztFQUpSLENBdEJ5QixFQTRCekI7SUFDRU4s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
|
|
768
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmZXRjaCIsInJlcXVpcmUiLCJwYXJzZUFyZ3MiLCJhcmd2Iiwib3B0aW9uc0RlZmluaXRpb25zIiwiYWxpYXMiLCJoZWxwIiwibmFtZSIsInR5cGUiLCJCb29sZWFuIiwiZGVmYXVsdFZhbHVlIiwiU3RyaW5nIiwiZGVmYXVsdE9wdGlvbiIsIm11bHRpcGxlIiwic2VjdGlvbnMiLCJoZWFkZXIiLCJjb250ZW50Iiwib3B0aW9uTGlzdCIsIm9wdGlvbnMiLCJjb21tYW5kTGluZUFyZ3MiLCJ1c2FnZSIsImNvbW1hbmRMaW5lVXNhZ2UiLCJjb25zb2xlIiwid2FybiIsIlJldHJpZXZlIiwiZGl2aXNpb24iLCJkaXZpc2lvbnMiLCJ1bmRlZmluZWQiLCJkIiwiY29uY2F0IiwiZ2V0RGl2aXNpb25zIiwiZG9jdW1lbnQiLCJtYXAiLCJyZXBvc2l0b3J5RGlyIiwiY29tbWl0IiwiZ2l0IiwicmVtb3RlIiwicnVuIiwiZGl2aXNpb25PckRvY3VtZW50IiwiZm9ybWF0IiwiZXh0IiwidXJscyIsInVpZCIsInB1c2giLCJ1cmxGcm9tRG9jdW1lbnQiLCJEb2N1bWVudFVybEZvcm1hdCIsIlJhd0h0bWwiLCJIdG1sIiwiUGRmIiwiZmlsZVBhdGgiLCJmcyIsImV4aXN0c1N5bmMiLCJpc05vdEVtcHR5Iiwic3RhdFN5bmMiLCJzaXplIiwicmV0cnlGYWlsZWQiLCJ2ZXJib3NlIiwidXJsUGF0aCIsInVybCIsInJlYWRGaWxlU3luYyIsInRvU3RyaW5nIiwibG9nIiwicmVzcG9uc2UiLCJidWZmZXIiLCJwYWdlIiwib2siLCJzdGF0dXMiLCJlcnJvciIsIkpTT04iLCJzdHJpbmdpZnkiLCJjb2RlIiwibWVzc2FnZSIsInN0YXR1c1RleHQiLCJ3cml0ZUZpbGVTeW5jIiwic2FuaXR5Q2hlY2tGb3JtYXQiLCJ0ZXh0ZXNEaXIiLCJuZWVkc0Rvd25sb2FkIiwic3VjY2VzcyIsImluZm8iLCJnZXRVcmxzIiwiZ2V0IiwidW5saW5rU3luYyIsInNpbGVudCIsInVybEZyb21VaWQiLCJzbGljZSIsImdpdERpciIsInRleHRlcyIsInBhdGgiLCJqb2luIiwibGVnaXNsYXR1cmUiLCJlbnN1cmVEaXJTeW5jIiwiZ2V0RmlsZXMiLCJkYXRhIiwiZmlsZW5hbWUiLCJsb2FkIiwidGVzdCIsImdldERpdmlzaW9uc09yRG9jdW1lbnQiLCJkb3dubG9hZCIsImNvbW1pdEFuZFB1c2giLCJsZW5ndGgiLCJNYXRoIiwibWluIiwiaGVhZCIsInN0YXJ0c1dpdGgiLCJCdWZmZXIiLCJmcm9tIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwiaW5jbHVkZXMiLCJtYWluIiwicmV0cmlldmUiLCJyZXRyaWV2ZURvY3VtZW50cyIsInByb2Nlc3MiLCJlbmRzV2l0aCIsInRoZW4iLCJleGl0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvcmV0cmlldmVfZG9jdW1lbnRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjb21tYW5kTGluZUFyZ3MgZnJvbSBcImNvbW1hbmQtbGluZS1hcmdzXCJcbmltcG9ydCBjb21tYW5kTGluZVVzYWdlIGZyb20gXCJjb21tYW5kLWxpbmUtdXNhZ2VcIlxuaW1wb3J0ICogYXMgZ2l0IGZyb20gXCIuLi8uLi9zcmMvZ2l0XCJcbmltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIlxubGV0IGZldGNoID0gcmVxdWlyZShcIm5vZGUtZmV0Y2hcIilcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcblxuaW1wb3J0IHsgbG9hZCwgZ2V0RmlsZXMgfSBmcm9tIFwiLi4vZmlsZV9zeXN0ZW1zXCJcbmltcG9ydCB7IERvY3VtZW50VXJsRm9ybWF0LCB1cmxGcm9tRG9jdW1lbnQgfSBmcm9tIFwiLi4vdXJsc1wiXG5cbmZ1bmN0aW9uIHBhcnNlQXJncyhhcmd2OiBzdHJpbmdbXSk6IGFueSB7XG4gIGNvbnN0IG9wdGlvbnNEZWZpbml0aW9ucyA9IFtcbiAgICB7XG4gICAgICBhbGlhczogXCJjXCIsXG4gICAgICBoZWxwOiBcImNvbW1pdCBkb2N1bWVudHNcIixcbiAgICAgIG5hbWU6IFwiY29tbWl0XCIsXG4gICAgICB0eXBlOiBCb29sZWFuLFxuICAgIH0sXG4gICAge1xuICAgICAgaGVscDogXCJkcnkgcnVuXCIsXG4gICAgICBuYW1lOiBcImRyeS1ydW5cIixcbiAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgfSxcbiAgICB7XG4gICAgICBoZWxwOiBcInJldHJ5IGZhaWxlZCBkb2N1bWVudHNcIixcbiAgICAgIG5hbWU6IFwicmV0cnktZmFpbGVkXCIsXG4gICAgICB0eXBlOiBCb29sZWFuLFxuICAgIH0sXG4gICAge1xuICAgICAgaGVscDogXCJyZXRyeSBhbGwgZG9jdW1lbnRzXCIsXG4gICAgICBuYW1lOiBcInJldHJ5XCIsXG4gICAgICB0eXBlOiBCb29sZWFuLFxuICAgIH0sXG4gICAge1xuICAgICAgYWxpYXM6IFwibFwiLFxuICAgICAgZGVmYXVsdFZhbHVlOiBcIjE2XCIsXG4gICAgICBuYW1lOiBcImxlZ2lzbGF0dXJlXCIsXG4gICAgICB0eXBlOiBTdHJpbmcsXG4gICAgfSxcbiAgICB7XG4gICAgICBhbGlhczogXCJyXCIsXG4gICAgICBoZWxwOiBcInB1c2ggY29tbWl0IHRvIGdpdmVuIHJlbW90ZVwiLFxuICAgICAgbmFtZTogXCJyZW1vdGVcIixcbiAgICAgIHR5cGU6IFN0cmluZyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGFsaWFzOiBcInNcIixcbiAgICAgIGhlbHA6IFwiZG9uJ3QgbG9nIGFueXRoaW5nXCIsXG4gICAgICBuYW1lOiBcInNpbGVudFwiLFxuICAgICAgdHlwZTogQm9vbGVhbixcbiAgICB9LFxuICAgIHtcbiAgICAgIGhlbHA6IFwidGV4dGVzIGRpclwiLFxuICAgICAgbmFtZTogXCJ0ZXh0ZXNcIixcbiAgICAgIHR5cGU6IFN0cmluZyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGFsaWFzOiBcInZcIixcbiAgICAgIGhlbHA6IFwidmVyYm9zZSBsb2dzXCIsXG4gICAgICBuYW1lOiBcInZlcmJvc2VcIixcbiAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgfSxcbiAgICB7XG4gICAgICBkZWZhdWx0T3B0aW9uOiB0cnVlLFxuICAgICAgaGVscDogXCJmaWxlcyBvciBnbG9icyB0byBkb2N1bWVudHNcIixcbiAgICAgIG11bHRpcGxlOiB0cnVlLFxuICAgICAgbmFtZTogXCJkYXRhXCIsXG4gICAgICB0eXBlOiBTdHJpbmcsXG4gICAgfSxcbiAgXVxuICBjb25zdCBzZWN0aW9ucyA9IFtcbiAgICB7XG4gICAgICBoZWFkZXI6IFwiUmV0cmlldmUgZG9jdW1lbnRzXCIsXG4gICAgICBjb250ZW50OiBcIlJldHJpZXZlIGRvY3VtZW50c1wiLFxuICAgIH0sXG4gICAge1xuICAgICAgaGVhZGVyOiBcIk9wdGlvbnNcIixcbiAgICAgIG9wdGlvbkxpc3Q6IG9wdGlvbnNEZWZpbml0aW9ucyxcbiAgICB9LFxuICBdXG4gIGNvbnN0IG9wdGlvbnMgPSBjb21tYW5kTGluZUFyZ3Mob3B0aW9uc0RlZmluaXRpb25zLCB7XG4gICAgYXJndjogYXJndixcbiAgfSlcblxuICBpZiAoXCJoZWxwXCIgaW4gb3B0aW9ucykge1xuICAgIGNvbnN0IHVzYWdlID0gY29tbWFuZExpbmVVc2FnZShzZWN0aW9ucylcbiAgICBjb25zb2xlLndhcm4odXNhZ2UpXG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICByZXR1cm4gb3B0aW9uc1xufVxuXG5jbGFzcyBSZXRyaWV2ZSB7XG4gIG9wdGlvbnM6IGFueVxuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IGFueSkge1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnNcbiAgfVxuXG4gIGdldERpdmlzaW9ucyhkaXZpc2lvbjogYW55KSB7XG4gICAgbGV0IGRpdmlzaW9ucyA9IFtkaXZpc2lvbl1cbiAgICBpZiAoZGl2aXNpb24uZGl2aXNpb25zICE9IHVuZGVmaW5lZCkge1xuICAgICAgZm9yIChjb25zdCBkIG9mIGRpdmlzaW9uLmRpdmlzaW9ucylcbiAgICAgICAgZGl2aXNpb25zID0gZGl2aXNpb25zLmNvbmNhdCh0aGlzLmdldERpdmlzaW9ucyhkKSlcbiAgICB9XG4gICAgcmV0dXJuIGRpdmlzaW9uc1xuICB9XG5cbiAgZ2V0RGl2aXNpb25zT3JEb2N1bWVudChkb2N1bWVudDogYW55KSB7XG4gICAgaWYgKGRvY3VtZW50LmRpdmlzaW9ucyAhPSB1bmRlZmluZWQpXG4gICAgICByZXR1cm4gW10uY29uY2F0KFxuICAgICAgICAuLi5kb2N1bWVudC5kaXZpc2lvbnMubWFwKChkOiBhbnkpID0+IHRoaXMuZ2V0RGl2aXNpb25zKGQpKSxcbiAgICAgIClcbiAgICBlbHNlIHJldHVybiBbZG9jdW1lbnRdXG4gIH1cblxuICBhc3luYyBjb21taXRBbmRQdXNoKHJlcG9zaXRvcnlEaXI6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLm9wdGlvbnMuY29tbWl0ID09IHVuZGVmaW5lZCkgcmV0dXJuXG4gICAgZ2l0LmNvbW1pdChyZXBvc2l0b3J5RGlyLCBcIk5vdXZlbGxlIG1vaXNzb25cIilcblxuICAgIGlmICh0aGlzLm9wdGlvbnMucmVtb3RlID09IHVuZGVmaW5lZCkgcmV0dXJuXG4gICAgZ2l0LnJ1bihyZXBvc2l0b3J5RGlyLCBgcHVzaCAke3RoaXMub3B0aW9ucy5yZW1vdGV9IEhFQUQ6bWFzdGVyYClcbiAgfVxuXG4gIGdldFVybHMoZGl2aXNpb25PckRvY3VtZW50OiBhbnksIGZvcm1hdDogc3RyaW5nKSB7XG4gICAgY29uc3QgZXh0ID0gZm9ybWF0ID09IFwiaHRtbFwiID8gXCJyYXdcIiA6IFwicGRmXCJcbiAgICBsZXQgdXJsczogYW55ID0gW1xuICAgICAgYGh0dHA6Ly93d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9keW4vZG9jcy8ke2RpdmlzaW9uT3JEb2N1bWVudC51aWR9LiR7ZXh0fWAsXG4gICAgXVxuICAgIGlmIChmb3JtYXQgPT0gXCJodG1sXCIpIHtcbiAgICAgIHVybHMucHVzaCh1cmxGcm9tRG9jdW1lbnQoZGl2aXNpb25PckRvY3VtZW50LCBEb2N1bWVudFVybEZvcm1hdC5SYXdIdG1sKSlcbiAgICAgIHVybHMucHVzaCh1cmxGcm9tRG9jdW1lbnQoZGl2aXNpb25PckRvY3VtZW50LCBEb2N1bWVudFVybEZvcm1hdC5IdG1sKSlcbiAgICB9IGVsc2UgaWYgKGZvcm1hdCA9PSBcInBkZlwiKSB7XG4gICAgICB1cmxzLnB1c2godXJsRnJvbURvY3VtZW50KGRpdmlzaW9uT3JEb2N1bWVudCwgRG9jdW1lbnRVcmxGb3JtYXQuUGRmKSlcbiAgICB9XG4gICAgcmV0dXJuIHVybHNcbiAgfVxuXG4gIHN0YXRpYyBzYW5pdHlDaGVja0Zvcm1hdChwYWdlOiBCdWZmZXIsIGZvcm1hdDogc3RyaW5nKTogW0J1ZmZlciwgc3RyaW5nXSB7XG4gICAgaWYgKGZvcm1hdCA9PSBcInBkZlwiKSB7XG4gICAgICBjb25zdCBsZW5ndGggPSBNYXRoLm1pbihwYWdlLmxlbmd0aCwgNClcbiAgICAgIGNvbnN0IGhlYWQgPSBwYWdlLnNsaWNlKDAsIGxlbmd0aCkudG9TdHJpbmcoKVxuICAgICAgaWYgKCFoZWFkLnN0YXJ0c1dpdGgoXCIlUERGXCIpKVxuICAgICAgICByZXR1cm4gW0J1ZmZlci5mcm9tKFwiXCIpLCBgYmFkIHBkZiAke2VuY29kZVVSSUNvbXBvbmVudChoZWFkKX0uLi5gXVxuICAgIH0gZWxzZSBpZiAoZm9ybWF0ID09IFwiaHRtbFwiKSB7XG4gICAgICBjb25zdCBsZW5ndGggPSBNYXRoLm1pbihwYWdlLmxlbmd0aCwgNTApXG4gICAgICBjb25zdCBoZWFkID0gcGFnZS5zbGljZSgwLCBsZW5ndGgpLnRvU3RyaW5nKClcbiAgICAgIGlmICghaGVhZC5pbmNsdWRlcyhcIkRPQ1RZUEVcIikgJiYgIWhlYWQuaW5jbHVkZXMoXCI8P3htbFwiKSkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIEJ1ZmZlci5mcm9tKFwiXCIpLFxuICAgICAgICAgIGBiYWQgaHRtbCAke2VuY29kZVVSSUNvbXBvbmVudChoZWFkLnNsaWNlKDAsIDQpKX0uLi5gLFxuICAgICAgICBdXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBbcGFnZSwgXCJPS1wiXVxuICB9XG5cbiAgYXN5bmMgbmVlZHNEb3dubG9hZChmaWxlUGF0aDogc3RyaW5nLCB1aWQ6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmIChmcy5leGlzdHNTeW5jKGZpbGVQYXRoKSkge1xuICAgICAgY29uc3QgaXNOb3RFbXB0eSA9IGZzLnN0YXRTeW5jKGZpbGVQYXRoKS5zaXplID4gMFxuICAgICAgY29uc3QgcmV0cnlGYWlsZWQgPSBcInJldHJ5LWZhaWxlZFwiIGluIHRoaXMub3B0aW9uc1xuICAgICAgaWYgKCFyZXRyeUZhaWxlZCB8fCBpc05vdEVtcHR5KSB7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMudmVyYm9zZSkge1xuICAgICAgICAgIGlmIChpc05vdEVtcHR5KSB7XG4gICAgICAgICAgICBjb25zdCB1cmxQYXRoID0gYCR7ZmlsZVBhdGh9LnVybGBcbiAgICAgICAgICAgIGxldCB1cmxcbiAgICAgICAgICAgIGlmIChmcy5leGlzdHNTeW5jKHVybFBhdGgpKVxuICAgICAgICAgICAgICB1cmwgPSBmcy5yZWFkRmlsZVN5bmModXJsUGF0aCkudG9TdHJpbmcoKVxuICAgICAgICAgICAgZWxzZSB1cmwgPSBcIjx1bmtub3duIHVybD5cIlxuICAgICAgICAgICAgY29uc29sZS5sb2coYCR7dWlkfTogQ2FjaGVkIE9LICR7ZmlsZVBhdGh9IGZyb20gJHt1cmx9YClcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYCR7dWlkfTogQ2FjaGVkIEZBSUwgJHtmaWxlUGF0aH1gKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGFzeW5jIGdldChcbiAgICB1cmw6IHN0cmluZyxcbiAgICBmaWxlUGF0aDogc3RyaW5nLFxuICAgIGZvcm1hdDogc3RyaW5nLFxuICAgIHVpZDogc3RyaW5nLFxuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGlmICh0aGlzLm9wdGlvbnMudmVyYm9zZSkgY29uc29sZS5sb2coYCR7dWlkfTogZmV0Y2goJHt1cmx9KWApXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwpXG4gICAgbGV0IHBhZ2U6IGFueSA9IGF3YWl0IHJlc3BvbnNlLmJ1ZmZlcigpXG4gICAgbGV0IHN0YXR1c1xuICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgIHN0YXR1cyA9IHJlc3BvbnNlLnN0YXR1c1xuICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyAhPT0gNDA0KSB7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMudmVyYm9zZSkge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBgRXJyb3Igd2hpbGUgZ2V0dGluZyBwYWdlIFwiJHt1cmx9XCIgKHVpZDogJHt1aWR9KTpcXG5cXG5FcnJvcjpcXG4ke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICAgICAgICB7IGNvZGU6IHJlc3BvbnNlLnN0YXR1cywgbWVzc2FnZTogcmVzcG9uc2Uuc3RhdHVzVGV4dCB9LFxuICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgKX1gLFxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZnMud3JpdGVGaWxlU3luYyhmaWxlUGF0aCwgXCJcIilcbiAgICB9IGVsc2Uge1xuICAgICAgO1twYWdlLCBzdGF0dXNdID0gUmV0cmlldmUuc2FuaXR5Q2hlY2tGb3JtYXQocGFnZSwgZm9ybWF0KVxuICAgICAgZnMud3JpdGVGaWxlU3luYyhmaWxlUGF0aCwgcGFnZSlcbiAgICB9XG4gICAgcmV0dXJuIHN0YXR1c1xuICB9XG5cbiAgc3RhdGljIHVybEZyb21VaWQodWlkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHVybCA9XG4gICAgICBcImh0dHBzOi8vZ2l0LmVuLXJvb3Qub3JnL3RyaWNvdGV1c2VzL2RhdGEudHJpY290ZXVzZXMuZnIvRG9zc2llcnNfTGVnaXNsYXRpZnNfWFYvLS90cmVlL21hc3Rlci9kb2N1bWVudHNcIlxuICAgIHJldHVybiBgWyR7dWlkfV0oJHt1cmx9L3VpZC8ke3VpZH0uanNvbilgXG4gIH1cblxuICBhc3luYyBkb3dubG9hZChcbiAgICB0ZXh0ZXNEaXI6IHN0cmluZyxcbiAgICBkaXZpc2lvbk9yRG9jdW1lbnQ6IGFueSxcbiAgICBmb3JtYXQ6IHN0cmluZyxcbiAgKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICBjb25zdCB1aWQgPSBkaXZpc2lvbk9yRG9jdW1lbnQudWlkXG4gICAgY29uc3QgZmlsZVBhdGggPSBgJHt0ZXh0ZXNEaXJ9L3VpZC8ke3VpZH0uJHtmb3JtYXR9YFxuICAgIGlmICghKGF3YWl0IHRoaXMubmVlZHNEb3dubG9hZChmaWxlUGF0aCwgdWlkKSkpIHJldHVybiAwXG4gICAgaWYgKHRoaXMub3B0aW9ucy52ZXJib3NlKSBjb25zb2xlLmxvZyhgJHt1aWR9OiBDaGVja2luZyAke2ZpbGVQYXRofWApXG4gICAgbGV0IHN1Y2Nlc3MgPSBmYWxzZVxuICAgIGxldCBpbmZvID0gXCJcIlxuICAgIGxldCB1cmxcblxuICAgIGZvciAodXJsIG9mIHRoaXMuZ2V0VXJscyhkaXZpc2lvbk9yRG9jdW1lbnQsIGZvcm1hdCkpIHtcbiAgICAgIGlmIChcImRyeS1ydW5cIiBpbiB0aGlzLm9wdGlvbnMpIHtcbiAgICAgICAgaW5mbyArPSBgICAqICR7dXJsfVxcbmBcbiAgICAgICAgY29udGludWVcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGluZm8gKz0gYCAgKiAke3VybH0gYFxuICAgICAgfVxuXG4gICAgICBjb25zdCBzdGF0dXMgPSBhd2FpdCB0aGlzLmdldCh1cmwsIGZpbGVQYXRoLCBmb3JtYXQsIHVpZClcblxuICAgICAgaW5mbyArPSBgJHtzdGF0dXN9XFxuYFxuICAgICAgaWYgKHN0YXR1cyA9PSBcIk9LXCIpIHtcbiAgICAgICAgc3VjY2VzcyA9IHRydWVcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgdXJsUGF0aCA9IGAke2ZpbGVQYXRofS51cmxgXG4gICAgaWYgKHN1Y2Nlc3MpIHtcbiAgICAgIGZzLndyaXRlRmlsZVN5bmModXJsUGF0aCwgdXJsKVxuICAgIH0gZWxzZSBpZiAoZnMuZXhpc3RzU3luYyh1cmxQYXRoKSkge1xuICAgICAgZnMudW5saW5rU3luYyh1cmxQYXRoKVxuICAgIH1cbiAgICBpZiAoaW5mbyAhPSBcIlwiICYmICF0aGlzLm9wdGlvbnMuc2lsZW50KSB7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgYCogJHtSZXRyaWV2ZS51cmxGcm9tVWlkKHVpZCl9OiBSZXRyaWV2aW5nICR7ZmlsZVBhdGh9XFxuJHtpbmZvLnNsaWNlKFxuICAgICAgICAgIDAsXG4gICAgICAgICAgLTEsXG4gICAgICAgICl9YCxcbiAgICAgIClcbiAgICAgIHJldHVybiAxXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAwXG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcmV0cmlldmVEb2N1bWVudHMoKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICBjb25zdCBnaXREaXIgPSBgJHt0aGlzLm9wdGlvbnMudGV4dGVzfS8uZ2l0YFxuICAgIGlmICghZnMuZXhpc3RzU3luYyhnaXREaXIpKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGAke2dpdERpcn0gaXMgZXhwZWN0ZWQgdG8gZXhpc3QgYnV0IGRvZXMgbm90YClcbiAgICAgIHJldHVybiAxXG4gICAgfVxuXG4gICAgY29uc3QgdGV4dGVzRGlyID0gcGF0aC5qb2luKHRoaXMub3B0aW9ucy50ZXh0ZXMsIHRoaXMub3B0aW9ucy5sZWdpc2xhdHVyZSlcbiAgICBmcy5lbnN1cmVEaXJTeW5jKGAke3RleHRlc0Rpcn0vdWlkYClcblxuICAgIGZvciAoY29uc3QgZmlsZW5hbWUgb2YgZ2V0RmlsZXModGhpcy5vcHRpb25zLmRhdGEpKSB7XG4gICAgICBjb25zdCBkb2N1bWVudCA9IGxvYWQoZmlsZW5hbWUpXG4gICAgICBpZiAoL14uLi4uU04vLnRlc3QoZG9jdW1lbnQudWlkKSB8fCAvXkRFQ0wvLnRlc3QoZG9jdW1lbnQudWlkKSkgY29udGludWVcbiAgICAgIGZvciAoY29uc3QgZGl2aXNpb25PckRvY3VtZW50IG9mIHRoaXMuZ2V0RGl2aXNpb25zT3JEb2N1bWVudChkb2N1bWVudCkpIHtcbiAgICAgICAgaWYgKC8tQ09NUEEkLy50ZXN0KGRpdmlzaW9uT3JEb2N1bWVudC51aWQpKSBjb250aW51ZVxuICAgICAgICBsZXQgc3RhdHVzID0gMFxuICAgICAgICBmb3IgKGNvbnN0IGZvcm1hdCBvZiBbXCJodG1sXCIsIFwicGRmXCJdKSB7XG4gICAgICAgICAgc3RhdHVzIHw9IGF3YWl0IHRoaXMuZG93bmxvYWQodGV4dGVzRGlyLCBkaXZpc2lvbk9yRG9jdW1lbnQsIGZvcm1hdClcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RhdHVzICYmICF0aGlzLm9wdGlvbnMuc2lsZW50KSBjb25zb2xlLmxvZyhcIi0tLVwiKVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghKFwiZHJ5LXJ1blwiIGluIHRoaXMub3B0aW9ucykpIHtcbiAgICAgIGF3YWl0IHRoaXMuY29tbWl0QW5kUHVzaCh0ZXh0ZXNEaXIpXG4gICAgfVxuXG4gICAgcmV0dXJuIDBcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBtYWluKGFyZ3Y6IGFueSk6IFByb21pc2U8bnVtYmVyPiB7XG4gIGNvbnN0IG9wdGlvbnMgPSBwYXJzZUFyZ3MoYXJndilcbiAgaWYgKG9wdGlvbnMgPT09IG51bGwpIHJldHVybiAxXG4gIGNvbnN0IHJldHJpZXZlID0gbmV3IFJldHJpZXZlKG9wdGlvbnMpXG4gIHJldHVybiByZXRyaWV2ZS5yZXRyaWV2ZURvY3VtZW50cygpXG59XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuaWYgKHByb2Nlc3MuYXJndlsxXS5lbmRzV2l0aChcInJldHJpZXZlX2RvY3VtZW50cy50c1wiKSlcbiAgbWFpbihwcm9jZXNzLmFyZ3YpXG4gICAgLnRoZW4oKHN0YXR1cykgPT4ge1xuICAgICAgcHJvY2Vzcy5leGl0KHN0YXR1cylcbiAgICB9KVxuICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpXG4gICAgICBwcm9jZXNzLmV4aXQoMSlcbiAgICB9KVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUVBOztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7OytDQVBBLG9KOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsSUFBSUEsS0FBSyxHQUFHQyxPQUFPLENBQUMsWUFBRCxDQUFuQjs7QUFNQSxTQUFTQyxTQUFULENBQW1CQyxJQUFuQixFQUF3QztFQUN0QyxJQUFNQyxrQkFBa0IsR0FBRyxDQUN6QjtJQUNFQyxLQUFLLEVBQUUsR0FEVDtJQUVFQyxJQUFJLEVBQUUsa0JBRlI7SUFHRUMsSUFBSSxFQUFFLFFBSFI7SUFJRUMsSUFBSSxFQUFFQztFQUpSLENBRHlCLEVBT3pCO0lBQ0VILElBQUksRUFBRSxTQURSO0lBRUVDLElBQUksRUFBRSxTQUZSO0lBR0VDLElBQUksRUFBRUM7RUFIUixDQVB5QixFQVl6QjtJQUNFSCxJQUFJLEVBQUUsd0JBRFI7SUFFRUMsSUFBSSxFQUFFLGNBRlI7SUFHRUMsSUFBSSxFQUFFQztFQUhSLENBWnlCLEVBaUJ6QjtJQUNFSCxJQUFJLEVBQUUscUJBRFI7SUFFRUMsSUFBSSxFQUFFLE9BRlI7SUFHRUMsSUFBSSxFQUFFQztFQUhSLENBakJ5QixFQXNCekI7SUFDRUosS0FBSyxFQUFFLEdBRFQ7SUFFRUssWUFBWSxFQUFFLElBRmhCO0lBR0VILElBQUksRUFBRSxhQUhSO0lBSUVDLElBQUksRUFB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
|
|
@@ -31,7 +31,7 @@ function parseArgs(argv) {
|
|
|
31
31
|
type: Boolean
|
|
32
32
|
}, {
|
|
33
33
|
alias: "l",
|
|
34
|
-
defaultValue: "
|
|
34
|
+
defaultValue: "16",
|
|
35
35
|
name: "legislature",
|
|
36
36
|
type: String
|
|
37
37
|
}, {
|
|
@@ -289,4 +289,4 @@ if (process.argv[1].endsWith("retrieve_documents.ts")) main(process.argv).then(s
|
|
|
289
289
|
console.error(error);
|
|
290
290
|
process.exit(1);
|
|
291
291
|
});
|
|
292
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21tYW5kTGluZUFyZ3MiLCJjb21tYW5kTGluZVVzYWdlIiwiZ2l0IiwiZnMiLCJmZXRjaCIsInJlcXVpcmUiLCJwYXRoIiwibG9hZCIsImdldEZpbGVzIiwiRG9jdW1lbnRVcmxGb3JtYXQiLCJ1cmxGcm9tRG9jdW1lbnQiLCJwYXJzZUFyZ3MiLCJhcmd2Iiwib3B0aW9uc0RlZmluaXRpb25zIiwiYWxpYXMiLCJoZWxwIiwibmFtZSIsInR5cGUiLCJCb29sZWFuIiwiZGVmYXVsdFZhbHVlIiwiU3RyaW5nIiwiZGVmYXVsdE9wdGlvbiIsIm11bHRpcGxlIiwic2VjdGlvbnMiLCJoZWFkZXIiLCJjb250ZW50Iiwib3B0aW9uTGlzdCIsIm9wdGlvbnMiLCJ1c2FnZSIsImNvbnNvbGUiLCJ3YXJuIiwiUmV0cmlldmUiLCJjb25zdHJ1Y3RvciIsImdldERpdmlzaW9ucyIsImRpdmlzaW9uIiwiZGl2aXNpb25zIiwidW5kZWZpbmVkIiwiZCIsImNvbmNhdCIsImdldERpdmlzaW9uc09yRG9jdW1lbnQiLCJkb2N1bWVudCIsIm1hcCIsImNvbW1pdEFuZFB1c2giLCJyZXBvc2l0b3J5RGlyIiwiY29tbWl0IiwicmVtb3RlIiwicnVuIiwiZ2V0VXJscyIsImRpdmlzaW9uT3JEb2N1bWVudCIsImZvcm1hdCIsImV4dCIsInVybHMiLCJ1aWQiLCJwdXNoIiwiUmF3SHRtbCIsIkh0bWwiLCJQZGYiLCJzYW5pdHlDaGVja0Zvcm1hdCIsInBhZ2UiLCJsZW5ndGgiLCJNYXRoIiwibWluIiwiaGVhZCIsInNsaWNlIiwidG9TdHJpbmciLCJzdGFydHNXaXRoIiwiQnVmZmVyIiwiZnJvbSIsImVuY29kZVVSSUNvbXBvbmVudCIsImluY2x1ZGVzIiwibmVlZHNEb3dubG9hZCIsImZpbGVQYXRoIiwiZXhpc3RzU3luYyIsImlzTm90RW1wdHkiLCJzdGF0U3luYyIsInNpemUiLCJyZXRyeUZhaWxlZCIsInZlcmJvc2UiLCJ1cmxQYXRoIiwidXJsIiwicmVhZEZpbGVTeW5jIiwibG9nIiwiZ2V0IiwicmVzcG9uc2UiLCJidWZmZXIiLCJzdGF0dXMiLCJvayIsImVycm9yIiwiSlNPTiIsInN0cmluZ2lmeSIsImNvZGUiLCJtZXNzYWdlIiwic3RhdHVzVGV4dCIsIndyaXRlRmlsZVN5bmMiLCJ1cmxGcm9tVWlkIiwiZG93bmxvYWQiLCJ0ZXh0ZXNEaXIiLCJzdWNjZXNzIiwiaW5mbyIsInVubGlua1N5bmMiLCJzaWxlbnQiLCJyZXRyaWV2ZURvY3VtZW50cyIsImdpdERpciIsInRleHRlcyIsImpvaW4iLCJsZWdpc2xhdHVyZSIsImVuc3VyZURpclN5bmMiLCJmaWxlbmFtZSIsImRhdGEiLCJ0ZXN0IiwibWFpbiIsInJldHJpZXZlIiwicHJvY2VzcyIsImVuZHNXaXRoIiwidGhlbiIsImV4aXQiLCJjYXRjaCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL3JldHJpZXZlX2RvY3VtZW50cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY29tbWFuZExpbmVBcmdzIGZyb20gXCJjb21tYW5kLWxpbmUtYXJnc1wiXG5pbXBvcnQgY29tbWFuZExpbmVVc2FnZSBmcm9tIFwiY29tbWFuZC1saW5lLXVzYWdlXCJcbmltcG9ydCAqIGFzIGdpdCBmcm9tIFwiLi4vLi4vc3JjL2dpdFwiXG5pbXBvcnQgZnMgZnJvbSBcImZzLWV4dHJhXCJcbmxldCBmZXRjaCA9IHJlcXVpcmUoXCJub2RlLWZldGNoXCIpXG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiXG5cbmltcG9ydCB7IGxvYWQsIGdldEZpbGVzIH0gZnJvbSBcIi4uL2ZpbGVfc3lzdGVtc1wiXG5pbXBvcnQgeyBEb2N1bWVudFVybEZvcm1hdCwgdXJsRnJvbURvY3VtZW50IH0gZnJvbSBcIi4uL3VybHNcIlxuXG5mdW5jdGlvbiBwYXJzZUFyZ3MoYXJndjogc3RyaW5nW10pOiBhbnkge1xuICBjb25zdCBvcHRpb25zRGVmaW5pdGlvbnMgPSBbXG4gICAge1xuICAgICAgYWxpYXM6IFwiY1wiLFxuICAgICAgaGVscDogXCJjb21taXQgZG9jdW1lbnRzXCIsXG4gICAgICBuYW1lOiBcImNvbW1pdFwiLFxuICAgICAgdHlwZTogQm9vbGVhbixcbiAgICB9LFxuICAgIHtcbiAgICAgIGhlbHA6IFwiZHJ5IHJ1blwiLFxuICAgICAgbmFtZTogXCJkcnktcnVuXCIsXG4gICAgICB0eXBlOiBCb29sZWFuLFxuICAgIH0sXG4gICAge1xuICAgICAgaGVscDogXCJyZXRyeSBmYWlsZWQgZG9jdW1lbnRzXCIsXG4gICAgICBuYW1lOiBcInJldHJ5LWZhaWxlZFwiLFxuICAgICAgdHlwZTogQm9vbGVhbixcbiAgICB9LFxuICAgIHtcbiAgICAgIGhlbHA6IFwicmV0cnkgYWxsIGRvY3VtZW50c1wiLFxuICAgICAgbmFtZTogXCJyZXRyeVwiLFxuICAgICAgdHlwZTogQm9vbGVhbixcbiAgICB9LFxuICAgIHtcbiAgICAgIGFsaWFzOiBcImxcIixcbiAgICAgIGRlZmF1bHRWYWx1ZTogXCIxNVwiLFxuICAgICAgbmFtZTogXCJsZWdpc2xhdHVyZVwiLFxuICAgICAgdHlwZTogU3RyaW5nLFxuICAgIH0sXG4gICAge1xuICAgICAgYWxpYXM6IFwiclwiLFxuICAgICAgaGVscDogXCJwdXNoIGNvbW1pdCB0byBnaXZlbiByZW1vdGVcIixcbiAgICAgIG5hbWU6IFwicmVtb3RlXCIsXG4gICAgICB0eXBlOiBTdHJpbmcsXG4gICAgfSxcbiAgICB7XG4gICAgICBhbGlhczogXCJzXCIsXG4gICAgICBoZWxwOiBcImRvbid0IGxvZyBhbnl0aGluZ1wiLFxuICAgICAgbmFtZTogXCJzaWxlbnRcIixcbiAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgfSxcbiAgICB7XG4gICAgICBoZWxwOiBcInRleHRlcyBkaXJcIixcbiAgICAgIG5hbWU6IFwidGV4dGVzXCIsXG4gICAgICB0eXBlOiBTdHJpbmcsXG4gICAgfSxcbiAgICB7XG4gICAgICBhbGlhczogXCJ2XCIsXG4gICAgICBoZWxwOiBcInZlcmJvc2UgbG9nc1wiLFxuICAgICAgbmFtZTogXCJ2ZXJib3NlXCIsXG4gICAgICB0eXBlOiBCb29sZWFuLFxuICAgIH0sXG4gICAge1xuICAgICAgZGVmYXVsdE9wdGlvbjogdHJ1ZSxcbiAgICAgIGhlbHA6IFwiZmlsZXMgb3IgZ2xvYnMgdG8gZG9jdW1lbnRzXCIsXG4gICAgICBtdWx0aXBsZTogdHJ1ZSxcbiAgICAgIG5hbWU6IFwiZGF0YVwiLFxuICAgICAgdHlwZTogU3RyaW5nLFxuICAgIH0sXG4gIF1cbiAgY29uc3Qgc2VjdGlvbnMgPSBbXG4gICAge1xuICAgICAgaGVhZGVyOiBcIlJldHJpZXZlIGRvY3VtZW50c1wiLFxuICAgICAgY29udGVudDogXCJSZXRyaWV2ZSBkb2N1bWVudHNcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIGhlYWRlcjogXCJPcHRpb25zXCIsXG4gICAgICBvcHRpb25MaXN0OiBvcHRpb25zRGVmaW5pdGlvbnMsXG4gICAgfSxcbiAgXVxuICBjb25zdCBvcHRpb25zID0gY29tbWFuZExpbmVBcmdzKG9wdGlvbnNEZWZpbml0aW9ucywge1xuICAgIGFyZ3Y6IGFyZ3YsXG4gIH0pXG5cbiAgaWYgKFwiaGVscFwiIGluIG9wdGlvbnMpIHtcbiAgICBjb25zdCB1c2FnZSA9IGNvbW1hbmRMaW5lVXNhZ2Uoc2VjdGlvbnMpXG4gICAgY29uc29sZS53YXJuKHVzYWdlKVxuICAgIHJldHVybiBudWxsXG4gIH1cbiAgcmV0dXJuIG9wdGlvbnNcbn1cblxuY2xhc3MgUmV0cmlldmUge1xuICBvcHRpb25zOiBhbnlcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBhbnkpIHtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zXG4gIH1cblxuICBnZXREaXZpc2lvbnMoZGl2aXNpb246IGFueSkge1xuICAgIGxldCBkaXZpc2lvbnMgPSBbZGl2aXNpb25dXG4gICAgaWYgKGRpdmlzaW9uLmRpdmlzaW9ucyAhPSB1bmRlZmluZWQpIHtcbiAgICAgIGZvciAoY29uc3QgZCBvZiBkaXZpc2lvbi5kaXZpc2lvbnMpXG4gICAgICAgIGRpdmlzaW9ucyA9IGRpdmlzaW9ucy5jb25jYXQodGhpcy5nZXREaXZpc2lvbnMoZCkpXG4gICAgfVxuICAgIHJldHVybiBkaXZpc2lvbnNcbiAgfVxuXG4gIGdldERpdmlzaW9uc09yRG9jdW1lbnQoZG9jdW1lbnQ6IGFueSkge1xuICAgIGlmIChkb2N1bWVudC5kaXZpc2lvbnMgIT0gdW5kZWZpbmVkKVxuICAgICAgcmV0dXJuIFtdLmNvbmNhdChcbiAgICAgICAgLi4uZG9jdW1lbnQuZGl2aXNpb25zLm1hcCgoZDogYW55KSA9PiB0aGlzLmdldERpdmlzaW9ucyhkKSksXG4gICAgICApXG4gICAgZWxzZSByZXR1cm4gW2RvY3VtZW50XVxuICB9XG5cbiAgYXN5bmMgY29tbWl0QW5kUHVzaChyZXBvc2l0b3J5RGlyOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5vcHRpb25zLmNvbW1pdCA9PSB1bmRlZmluZWQpIHJldHVyblxuICAgIGdpdC5jb21taXQocmVwb3NpdG9yeURpciwgXCJOb3V2ZWxsZSBtb2lzc29uXCIpXG5cbiAgICBpZiAodGhpcy5vcHRpb25zLnJlbW90ZSA9PSB1bmRlZmluZWQpIHJldHVyblxuICAgIGdpdC5ydW4ocmVwb3NpdG9yeURpciwgYHB1c2ggJHt0aGlzLm9wdGlvbnMucmVtb3RlfSBIRUFEOm1hc3RlcmApXG4gIH1cblxuICBnZXRVcmxzKGRpdmlzaW9uT3JEb2N1bWVudDogYW55LCBmb3JtYXQ6IHN0cmluZykge1xuICAgIGNvbnN0IGV4dCA9IGZvcm1hdCA9PSBcImh0bWxcIiA/IFwicmF3XCIgOiBcInBkZlwiXG4gICAgbGV0IHVybHM6IGFueSA9IFtcbiAgICAgIGBodHRwOi8vd3d3LmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvZHluL2RvY3MvJHtkaXZpc2lvbk9yRG9jdW1lbnQudWlkfS4ke2V4dH1gLFxuICAgIF1cbiAgICBpZiAoZm9ybWF0ID09IFwiaHRtbFwiKSB7XG4gICAgICB1cmxzLnB1c2godXJsRnJvbURvY3VtZW50KGRpdmlzaW9uT3JEb2N1bWVudCwgRG9jdW1lbnRVcmxGb3JtYXQuUmF3SHRtbCkpXG4gICAgICB1cmxzLnB1c2godXJsRnJvbURvY3VtZW50KGRpdmlzaW9uT3JEb2N1bWVudCwgRG9jdW1lbnRVcmxGb3JtYXQuSHRtbCkpXG4gICAgfSBlbHNlIGlmIChmb3JtYXQgPT0gXCJwZGZcIikge1xuICAgICAgdXJscy5wdXNoKHVybEZyb21Eb2N1bWVudChkaXZpc2lvbk9yRG9jdW1lbnQsIERvY3VtZW50VXJsRm9ybWF0LlBkZikpXG4gICAgfVxuICAgIHJldHVybiB1cmxzXG4gIH1cblxuICBzdGF0aWMgc2FuaXR5Q2hlY2tGb3JtYXQocGFnZTogQnVmZmVyLCBmb3JtYXQ6IHN0cmluZyk6IFtCdWZmZXIsIHN0cmluZ10ge1xuICAgIGlmIChmb3JtYXQgPT0gXCJwZGZcIikge1xuICAgICAgY29uc3QgbGVuZ3RoID0gTWF0aC5taW4ocGFnZS5sZW5ndGgsIDQpXG4gICAgICBjb25zdCBoZWFkID0gcGFnZS5zbGljZSgwLCBsZW5ndGgpLnRvU3RyaW5nKClcbiAgICAgIGlmICghaGVhZC5zdGFydHNXaXRoKFwiJVBERlwiKSlcbiAgICAgICAgcmV0dXJuIFtCdWZmZXIuZnJvbShcIlwiKSwgYGJhZCBwZGYgJHtlbmNvZGVVUklDb21wb25lbnQoaGVhZCl9Li4uYF1cbiAgICB9IGVsc2UgaWYgKGZvcm1hdCA9PSBcImh0bWxcIikge1xuICAgICAgY29uc3QgbGVuZ3RoID0gTWF0aC5taW4ocGFnZS5sZW5ndGgsIDUwKVxuICAgICAgY29uc3QgaGVhZCA9IHBhZ2Uuc2xpY2UoMCwgbGVuZ3RoKS50b1N0cmluZygpXG4gICAgICBpZiAoIWhlYWQuaW5jbHVkZXMoXCJET0NUWVBFXCIpICYmICFoZWFkLmluY2x1ZGVzKFwiPD94bWxcIikpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICBCdWZmZXIuZnJvbShcIlwiKSxcbiAgICAgICAgICBgYmFkIGh0bWwgJHtlbmNvZGVVUklDb21wb25lbnQoaGVhZC5zbGljZSgwLCA0KSl9Li4uYCxcbiAgICAgICAgXVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gW3BhZ2UsIFwiT0tcIl1cbiAgfVxuXG4gIGFzeW5jIG5lZWRzRG93bmxvYWQoZmlsZVBhdGg6IHN0cmluZywgdWlkOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBpZiAoZnMuZXhpc3RzU3luYyhmaWxlUGF0aCkpIHtcbiAgICAgIGNvbnN0IGlzTm90RW1wdHkgPSBmcy5zdGF0U3luYyhmaWxlUGF0aCkuc2l6ZSA+IDBcbiAgICAgIGNvbnN0IHJldHJ5RmFpbGVkID0gXCJyZXRyeS1mYWlsZWRcIiBpbiB0aGlzLm9wdGlvbnNcbiAgICAgIGlmICghcmV0cnlGYWlsZWQgfHwgaXNOb3RFbXB0eSkge1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnZlcmJvc2UpIHtcbiAgICAgICAgICBpZiAoaXNOb3RFbXB0eSkge1xuICAgICAgICAgICAgY29uc3QgdXJsUGF0aCA9IGAke2ZpbGVQYXRofS51cmxgXG4gICAgICAgICAgICBsZXQgdXJsXG4gICAgICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyh1cmxQYXRoKSlcbiAgICAgICAgICAgICAgdXJsID0gZnMucmVhZEZpbGVTeW5jKHVybFBhdGgpLnRvU3RyaW5nKClcbiAgICAgICAgICAgIGVsc2UgdXJsID0gXCI8dW5rbm93biB1cmw+XCJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGAke3VpZH06IENhY2hlZCBPSyAke2ZpbGVQYXRofSBmcm9tICR7dXJsfWApXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGAke3VpZH06IENhY2hlZCBGQUlMICR7ZmlsZVBhdGh9YClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBhc3luYyBnZXQoXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgZmlsZVBhdGg6IHN0cmluZyxcbiAgICBmb3JtYXQ6IHN0cmluZyxcbiAgICB1aWQ6IHN0cmluZyxcbiAgKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBpZiAodGhpcy5vcHRpb25zLnZlcmJvc2UpIGNvbnNvbGUubG9nKGAke3VpZH06IGZldGNoKCR7dXJsfSlgKVxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsKVxuICAgIGxldCBwYWdlOiBhbnkgPSBhd2FpdCByZXNwb25zZS5idWZmZXIoKVxuICAgIGxldCBzdGF0dXNcbiAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICBzdGF0dXMgPSByZXNwb25zZS5zdGF0dXNcbiAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgIT09IDQwNCkge1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnZlcmJvc2UpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgYEVycm9yIHdoaWxlIGdldHRpbmcgcGFnZSBcIiR7dXJsfVwiICh1aWQ6ICR7dWlkfSk6XFxuXFxuRXJyb3I6XFxuJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgICAgeyBjb2RlOiByZXNwb25zZS5zdGF0dXMsIG1lc3NhZ2U6IHJlc3BvbnNlLnN0YXR1c1RleHQgfSxcbiAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICl9YCxcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGZzLndyaXRlRmlsZVN5bmMoZmlsZVBhdGgsIFwiXCIpXG4gICAgfSBlbHNlIHtcbiAgICAgIDtbcGFnZSwgc3RhdHVzXSA9IFJldHJpZXZlLnNhbml0eUNoZWNrRm9ybWF0KHBhZ2UsIGZvcm1hdClcbiAgICAgIGZzLndyaXRlRmlsZVN5bmMoZmlsZVBhdGgsIHBhZ2UpXG4gICAgfVxuICAgIHJldHVybiBzdGF0dXNcbiAgfVxuXG4gIHN0YXRpYyB1cmxGcm9tVWlkKHVpZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCB1cmwgPVxuICAgICAgXCJodHRwczovL2dpdC5lbi1yb290Lm9yZy90cmljb3RldXNlcy9kYXRhLnRyaWNvdGV1c2VzLmZyL0Rvc3NpZXJzX0xlZ2lzbGF0aWZzX1hWLy0vdHJlZS9tYXN0ZXIvZG9jdW1lbnRzXCJcbiAgICByZXR1cm4gYFske3VpZH1dKCR7dXJsfS91aWQvJHt1aWR9Lmpzb24pYFxuICB9XG5cbiAgYXN5bmMgZG93bmxvYWQoXG4gICAgdGV4dGVzRGlyOiBzdHJpbmcsXG4gICAgZGl2aXNpb25PckRvY3VtZW50OiBhbnksXG4gICAgZm9ybWF0OiBzdHJpbmcsXG4gICk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgY29uc3QgdWlkID0gZGl2aXNpb25PckRvY3VtZW50LnVpZFxuICAgIGNvbnN0IGZpbGVQYXRoID0gYCR7dGV4dGVzRGlyfS91aWQvJHt1aWR9LiR7Zm9ybWF0fWBcbiAgICBpZiAoIShhd2FpdCB0aGlzLm5lZWRzRG93bmxvYWQoZmlsZVBhdGgsIHVpZCkpKSByZXR1cm4gMFxuICAgIGlmICh0aGlzLm9wdGlvbnMudmVyYm9zZSkgY29uc29sZS5sb2coYCR7dWlkfTogQ2hlY2tpbmcgJHtmaWxlUGF0aH1gKVxuICAgIGxldCBzdWNjZXNzID0gZmFsc2VcbiAgICBsZXQgaW5mbyA9IFwiXCJcbiAgICBsZXQgdXJsXG5cbiAgICBmb3IgKHVybCBvZiB0aGlzLmdldFVybHMoZGl2aXNpb25PckRvY3VtZW50LCBmb3JtYXQpKSB7XG4gICAgICBpZiAoXCJkcnktcnVuXCIgaW4gdGhpcy5vcHRpb25zKSB7XG4gICAgICAgIGluZm8gKz0gYCAgKiAke3VybH1cXG5gXG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpbmZvICs9IGAgICogJHt1cmx9IGBcbiAgICAgIH1cblxuICAgICAgY29uc3Qgc3RhdHVzID0gYXdhaXQgdGhpcy5nZXQodXJsLCBmaWxlUGF0aCwgZm9ybWF0LCB1aWQpXG5cbiAgICAgIGluZm8gKz0gYCR7c3RhdHVzfVxcbmBcbiAgICAgIGlmIChzdGF0dXMgPT0gXCJPS1wiKSB7XG4gICAgICAgIHN1Y2Nlc3MgPSB0cnVlXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHVybFBhdGggPSBgJHtmaWxlUGF0aH0udXJsYFxuICAgIGlmIChzdWNjZXNzKSB7XG4gICAgICBmcy53cml0ZUZpbGVTeW5jKHVybFBhdGgsIHVybClcbiAgICB9IGVsc2UgaWYgKGZzLmV4aXN0c1N5bmModXJsUGF0aCkpIHtcbiAgICAgIGZzLnVubGlua1N5bmModXJsUGF0aClcbiAgICB9XG4gICAgaWYgKGluZm8gIT0gXCJcIiAmJiAhdGhpcy5vcHRpb25zLnNpbGVudCkge1xuICAgICAgY29uc29sZS5sb2coXG4gICAgICAgIGAqICR7UmV0cmlldmUudXJsRnJvbVVpZCh1aWQpfTogUmV0cmlldmluZyAke2ZpbGVQYXRofVxcbiR7aW5mby5zbGljZShcbiAgICAgICAgICAwLFxuICAgICAgICAgIC0xLFxuICAgICAgICApfWAsXG4gICAgICApXG4gICAgICByZXR1cm4gMVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gMFxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHJldHJpZXZlRG9jdW1lbnRzKCk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgY29uc3QgZ2l0RGlyID0gYCR7dGhpcy5vcHRpb25zLnRleHRlc30vLmdpdGBcbiAgICBpZiAoIWZzLmV4aXN0c1N5bmMoZ2l0RGlyKSkge1xuICAgICAgY29uc29sZS5lcnJvcihgJHtnaXREaXJ9IGlzIGV4cGVjdGVkIHRvIGV4aXN0IGJ1dCBkb2VzIG5vdGApXG4gICAgICByZXR1cm4gMVxuICAgIH1cblxuICAgIGNvbnN0IHRleHRlc0RpciA9IHBhdGguam9pbih0aGlzLm9wdGlvbnMudGV4dGVzLCB0aGlzLm9wdGlvbnMubGVnaXNsYXR1cmUpXG4gICAgZnMuZW5zdXJlRGlyU3luYyhgJHt0ZXh0ZXNEaXJ9L3VpZGApXG5cbiAgICBmb3IgKGNvbnN0IGZpbGVuYW1lIG9mIGdldEZpbGVzKHRoaXMub3B0aW9ucy5kYXRhKSkge1xuICAgICAgY29uc3QgZG9jdW1lbnQgPSBsb2FkKGZpbGVuYW1lKVxuICAgICAgaWYgKC9eLi4uLlNOLy50ZXN0KGRvY3VtZW50LnVpZCkgfHwgL15ERUNMLy50ZXN0KGRvY3VtZW50LnVpZCkpIGNvbnRpbnVlXG4gICAgICBmb3IgKGNvbnN0IGRpdmlzaW9uT3JEb2N1bWVudCBvZiB0aGlzLmdldERpdmlzaW9uc09yRG9jdW1lbnQoZG9jdW1lbnQpKSB7XG4gICAgICAgIGlmICgvLUNPTVBBJC8udGVzdChkaXZpc2lvbk9yRG9jdW1lbnQudWlkKSkgY29udGludWVcbiAgICAgICAgbGV0IHN0YXR1cyA9IDBcbiAgICAgICAgZm9yIChjb25zdCBmb3JtYXQgb2YgW1wiaHRtbFwiLCBcInBkZlwiXSkge1xuICAgICAgICAgIHN0YXR1cyB8PSBhd2FpdCB0aGlzLmRvd25sb2FkKHRleHRlc0RpciwgZGl2aXNpb25PckRvY3VtZW50LCBmb3JtYXQpXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0YXR1cyAmJiAhdGhpcy5vcHRpb25zLnNpbGVudCkgY29uc29sZS5sb2coXCItLS1cIilcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIShcImRyeS1ydW5cIiBpbiB0aGlzLm9wdGlvbnMpKSB7XG4gICAgICBhd2FpdCB0aGlzLmNvbW1pdEFuZFB1c2godGV4dGVzRGlyKVxuICAgIH1cblxuICAgIHJldHVybiAwXG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gbWFpbihhcmd2OiBhbnkpOiBQcm9taXNlPG51bWJlcj4ge1xuICBjb25zdCBvcHRpb25zID0gcGFyc2VBcmdzKGFyZ3YpXG4gIGlmIChvcHRpb25zID09PSBudWxsKSByZXR1cm4gMVxuICBjb25zdCByZXRyaWV2ZSA9IG5ldyBSZXRyaWV2ZShvcHRpb25zKVxuICByZXR1cm4gcmV0cmlldmUucmV0cmlldmVEb2N1bWVudHMoKVxufVxuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbmlmIChwcm9jZXNzLmFyZ3ZbMV0uZW5kc1dpdGgoXCJyZXRyaWV2ZV9kb2N1bWVudHMudHNcIikpXG4gIG1haW4ocHJvY2Vzcy5hcmd2KVxuICAgIC50aGVuKChzdGF0dXMpID0+IHtcbiAgICAgIHByb2Nlc3MuZXhpdChzdGF0dXMpXG4gICAgfSlcbiAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICBjb25zb2xlLmVycm9yKGVycm9yKVxuICAgICAgcHJvY2Vzcy5leGl0KDEpXG4gICAgfSlcbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPQSxlQUFQLE1BQTRCLG1CQUE1QjtBQUNBLE9BQU9DLGdCQUFQLE1BQTZCLG9CQUE3QjtPQUNPLEtBQUtDLEc7QUFDWixPQUFPQyxFQUFQLE1BQWUsVUFBZjs7QUFDQSxJQUFJQyxLQUFLLEdBQUdDLE9BQU8sQ0FBQyxZQUFELENBQW5COztBQUNBLE9BQU9DLElBQVAsTUFBaUIsTUFBakI7U0FFU0MsSSxFQUFNQyxRO1NBQ05DLGlCLEVBQW1CQyxlOztBQUU1QixTQUFTQyxTQUFULENBQW1CQyxJQUFuQixFQUF3QztFQUN0QyxNQUFNQyxrQkFBa0IsR0FBRyxDQUN6QjtJQUNFQyxLQUFLLEVBQUUsR0FEVDtJQUVFQyxJQUFJLEVBQUUsa0JBRlI7SUFHRUMsSUFBSSxFQUFFLFFBSFI7SUFJRUMsSUFBSSxFQUFFQztFQUpSLENBRHlCLEVBT3pCO0lBQ0VILElBQUksRUFBRSxTQURSO0lBRUVDLElBQUksRUFBRSxTQUZSO0lBR0VDLElBQUksRUFBRUM7RUFIUixDQVB5QixFQVl6QjtJQUNFSCxJQUFJLEVBQUUsd0JBRFI7SUFFRUMsSUFBSSxFQUFFLGNBRlI7SUFHRUMsSUFBSSxFQUFFQztFQUhSLENBWnlCLEVBaUJ6QjtJQUNFSCxJQUFJLEVBQUUscUJBRFI7SUFFRUMsSUFBSSxFQUFFLE9BRlI7SUFHRUMsSUFBSSxFQUFFQztFQUhSLENBakJ5QixFQXNCekI7SUFDRUosS0FBSyxFQUFFLEdBRFQ7SUFFRUssWUFBWSxFQUFFLElBRmhCO0lBR0VILElBQUksRUFBRSxhQUhSO0lBSUVDLElBQUksRUFBRUc7RUFKUixDQXRCeUIsRUE0QnpCO0lBQ0VOLEtBQUssRUFBRSxHQURUO0lBRUVDLElBQUksRUFBRSw2QkFGUjtJQUdFQyxJQUFJLEVBQUUsUUFIUjtJQUlFQyxJQUFJLEVBQUVHO0VBSlIsQ0E1QnlCLEVBa0N6QjtJQUNFTixLQUFLLEVBQUUsR0FEVDtJQUVFQyxJQUFJLEVBQUUsb0JBRlI7SUFHRUMsSUFBSSxFQUFFLFFBSFI7SUFJRUMsSUFBSSxFQUFFQztFQUpSLENBbEN5QixFQXdDekI7SUFDRUgsSUFBSSxFQUFFLFlBRFI7SUFFRUMsSUFBSSxFQUFFLFFBRlI7SUFHRUMsSUFBSSxFQUFFRztFQUhSLENBeEN5QixFQTZDekI7SUFDRU4sS0FBSyxFQUFFLEdBRFQ7SUFFRUMsSUFBSSxFQUFFLGNBRlI7SUFHRUMsSUFBSSxFQUFFLFNBSFI7SUFJRUMsSUFBSSxFQUFFQztFQUpSLENBN0N5QixFQW1EekI7SUFDRUcsYUFBYSxFQUFFLElBRGpCO0lBRUVOLElBQUksRUFBRSw2QkFGUjtJQUdFTyxRQUFRLEVBQUUsSUFIWjtJQUlFTixJQUFJLEVBQUUsTUFKUjtJQUtFQyxJQUFJLEVBQUVHO0VBTFIsQ0FuRHlCLENBQTNCO0VBMkRBLE1BQU1HLFFBQVEsR0FBRyxDQUNmO0lBQ0VDLE1BQU0sRUFBRSxvQkFEVjtJQUVFQyxPQUFPLEVBQUU7RUFGWCxDQURlLEVBS2Y7SUFDRUQsTUFBTSxFQUFFLFNBRFY7SUFFRUUsVUFBVSxFQUFFYjtFQUZkLENBTGUsQ0FBakI7RUFVQSxNQUFNYyxPQUFPLEdBQUczQixlQUFlLENBQUNhLGtCQUFELEVBQXFCO0lBQ2xERCxJQUFJLEVBQUVBO0VBRDRDLENBQXJCLENBQS9COztFQUlBLElBQUksVUFBVWUsT0FBZCxFQUF1QjtJQUNyQixNQUFNQyxLQUFLLEdBQUczQixnQkFBZ0IsQ0FBQ3NCLFFBQUQsQ0FBOUI7SUFDQU0sT0FBTyxDQUFDQyxJQUFSLENBQWFGLEtBQWI7SUFDQSxPQUFPLElBQVA7RUFDRDs7RUFDRCxPQUFPRCxPQUFQO0FBQ0Q7O0FBRUQsTUFBTUksUUFBTixDQUFlO0VBR2JDLFdBQVcsQ0FBQ0wsT0FBRCxFQUFlO0lBQUE7O0lBQ3hCLEtBQUtBLE9BQUwsR0FBZUEsT0FBZjtFQUNEOztFQUVETSxZQUFZLENBQUNDLFFBQUQsRUFBZ0I7SUFDMUIsSUFBSUMsU0FBUyxHQUFHLENBQUNELFFBQUQsQ0FBaEI7O0lBQ0EsSUFBSUEsUUFBUSxDQUFDQyxTQUFULElBQXNCQyxTQUExQixFQUFxQztNQUNuQyxLQUFLLE1BQU1DLENBQVgsSUFBZ0JILFFBQVEsQ0FBQ0MsU0FBekIsRUFDRUEsU0FBUyxHQUFHQSxTQUFTLENBQUNHLE1BQVYsQ0FBaUIsS0FBS0wsWUFBTCxDQUFrQkksQ0FBbEIsQ0FBakIsQ0FBWjtJQUNIOztJQUNELE9BQU9GLFNBQVA7RUFDRDs7RUFFREksc0JBQXNCLENBQUNDLFFBQUQsRUFBZ0I7SUFDcEMsSUFBSUEsUUFBUSxDQUFDTCxTQUFULElBQXNCQyxTQUExQixFQUNFLE9BQU8sR0FBR0UsTUFBSCxDQUNMLEdBQUdFLFFBQVEsQ0FBQ0wsU0FBVCxDQUFtQk0sR0FBbkIsQ0FBd0JKLENBQUQsSUFBWSxLQUFLSixZQUFMLENBQWtCSSxDQUFsQixDQUFuQyxDQURFLENBQVAsQ0FERixLQUlLLE9BQU8sQ0FBQ0csUUFBRCxDQUFQO0VBQ047O0VBRWtCLE1BQWJFLGFBQWEsQ0FBQ0MsYUFBRCxFQUF1QztJQUN4RCxJQUFJLEtBQUtoQixPQUFMLENBQWFpQixNQUFiLElBQXVCUixTQUEzQixFQUFzQztJQUN0Q2xDLEdBQUcsQ0FBQzBDLE1BQUosQ0FBV0QsYUFBWCxFQUEwQixrQkFBMUI7SUFFQSxJQUFJLEtBQUtoQixPQUFMLENBQWFrQixNQUFiLElBQXVCVCxTQUEzQixFQUFzQztJQUN0Q2xDLEdBQUcsQ0FBQzRDLEdBQUosQ0FBUUgsYUFBUixFQUF3QixRQUFPLEtBQUtoQixPQUFMLENBQWFrQixNQUFPLGNBQW5EO0VBQ0Q7O0VBRURFLE9BQU8sQ0FBQ0Msa0JBQUQsRUFBMEJDLE1BQTFCLEVBQTBDO0lBQy9DLE1BQU1DLEdBQUcsR0FBR0QsTUFBTSxJQUFJLE1BQVYsR0FBbUIsS0FBbkIsR0FBMkIsS0FBdkM7SUFDQSxJQUFJRSxJQUFTLEdBQUcsQ0FDYiw4Q0FBNkNILGtCQUFrQixDQUFDSSxHQUFJLElBQUdGLEdBQUksRUFEOUQsQ0FBaEI7O0lBR0EsSUFBSUQsTUFBTSxJQUFJLE1BQWQsRUFBc0I7TUFDcEJFLElBQUksQ0FBQ0UsSUFBTCxDQUFVM0MsZUFBZSxDQUFDc0Msa0JBQUQsRUFBcUJ2QyxpQkFBaUIsQ0FBQzZDLE9BQXZDLENBQXpCO01BQ0FILElBQUksQ0FBQ0UsSUFBTCxDQUFVM0MsZUFBZSxDQUFDc0Msa0JBQUQsRUFBcUJ2QyxpQkFBaUIsQ0FBQzhDLElBQXZDLENBQXpCO0lBQ0QsQ0FIRCxNQUdPLElBQUlOLE1BQU0sSUFBSSxLQUFkLEVBQXFCO01BQzFCRSxJQUFJLENBQUNFLElBQUwsQ0FBVTNDLGVBQWUsQ0FBQ3NDLGtCQUFELEVBQXFCdkMsaUJBQWlCLENBQUMrQyxHQUF2QyxDQUF6QjtJQUNEOztJQUNELE9BQU9MLElBQVA7RUFDRDs7RUFFdUIsT0FBakJNLGlCQUFpQixDQUFDQyxJQUFELEVBQWVULE1BQWYsRUFBaUQ7SUFDdkUsSUFBSUEsTUFBTSxJQUFJLEtBQWQsRUFBcUI7TUFDbkIsTUFBTVUsTUFBTSxHQUFHQyxJQUFJLENBQUNDLEdBQUwsQ0FBU0gsSUFBSSxDQUFDQyxNQUFkLEVBQXNCLENBQXRCLENBQWY7TUFDQSxNQUFNRyxJQUFJLEdBQUdKLElBQUksQ0FBQ0ssS0FBTCxDQUFXLENBQVgsRUFBY0osTUFBZCxFQUFzQkssUUFBdEIsRUFBYjtNQUNBLElBQUksQ0FBQ0YsSUFBSSxDQUFDRyxVQUFMLENBQWdCLE1BQWhCLENBQUwsRUFDRSxPQUFPLENBQUNDLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZLEVBQVosQ0FBRCxFQUFtQixXQUFVQyxrQkFBa0IsQ0FBQ04sSUFBRCxDQUFPLEtBQXRELENBQVA7SUFDSCxDQUxELE1BS08sSUFBSWIsTUFBTSxJQUFJLE1BQWQsRUFBc0I7TUFDM0IsTUFBTVUsTUFBTSxHQUFHQyxJQUFJLENBQUNDLEdBQUwsQ0FBU0gsSUFBSSxDQUFDQyxNQUFkLEVBQXNCLEVBQXRCLENBQWY7TUFDQSxNQUFNRyxJQUFJLEdBQUdKLElBQUksQ0FBQ0ssS0FBTCxDQUFXLENBQVgsRUFBY0osTUFBZCxFQUFzQkssUUFBdEIsRUFBYjs7TUFDQSxJQUFJLENBQUNGLElBQUksQ0FBQ08sUUFBTCxDQUFjLFNBQWQsQ0FBRCxJQUE2QixDQUFDUCxJQUFJLENBQUNPLFFBQUwsQ0FBYyxPQUFkLENBQWxDLEVBQTBEO1FBQ3hELE9BQU8sQ0FDTEgsTUFBTSxDQUFDQyxJQUFQLENBQVksRUFBWixDQURLLEVBRUosWUFBV0Msa0JBQWtCLENBQUNOLElBQUksQ0FBQ0MsS0FBTCxDQUFXLENBQVgsRUFBYyxDQUFkLENBQUQsQ0FBbUIsS0FGNUMsQ0FBUDtNQUlEO0lBQ0Y7O0lBQ0QsT0FBTyxDQUFDTCxJQUFELEVBQU8sSUFBUCxDQUFQO0VBQ0Q7O0VBRWtCLE1BQWJZLGFBQWEsQ0FBQ0MsUUFBRCxFQUFtQm5CLEdBQW5CLEVBQWtEO0lBQ25FLElBQUlqRCxFQUFFLENBQUNxRSxVQUFILENBQWNELFFBQWQsQ0FBSixFQUE2QjtNQUMzQixNQUFNRSxVQUFVLEdBQUd0RSxFQUFFLENBQUN1RSxRQUFILENBQVlILFFBQVosRUFBc0JJLElBQXRCLEdBQTZCLENBQWhEO01BQ0EsTUFBTUMsV0FBVyxJQUFHLGtCQUFrQixLQUFLakQsT0FBMUIsQ0FBakI7O01BQ0EsSUFBSSxDQUFDaUQsV0FBRCxJQUFnQkgsVUFBcEIsRUFBZ0M7UUFDOUIsSUFBSSxLQUFLOUMsT0FBTCxDQUFha0QsT0FBakIsRUFBMEI7VUFDeEIsSUFBSUosVUFBSixFQUFnQjtZQUNkLE1BQU1LLE9BQU8sR0FBSSxHQUFFUCxRQUFTLE1BQTVCO1lBQ0EsSUFBSVEsR0FBSjtZQUNBLElBQUk1RSxFQUFFLENBQUNxRSxVQUFILENBQWNNLE9BQWQsQ0FBSixFQUNFQyxHQUFHLEdBQUc1RSxFQUFFLENBQUM2RSxZQUFILENBQWdCRixPQUFoQixFQUF5QmQsUUFBekIsRUFBTixDQURGLEtBRUtlLEdBQUcsR0FBRyxlQUFOO1lBQ0xsRCxPQUFPLENBQUNvRCxHQUFSLENBQWEsR0FBRTdCLEdBQUksZUFBY21CLFFBQVMsU0FBUVEsR0FBSSxFQUF0RDtVQUNELENBUEQsTUFPTztZQUNMbEQsT0FBTyxDQUFDb0QsR0FBUixDQUFhLEdBQUU3QixHQUFJLGlCQUFnQm1CLFFBQVMsRUFBNUM7VUFDRDtRQUNGOztRQUNELE9BQU8sS0FBUDtNQUNEO0lBQ0Y7O0lBQ0QsT0FBTyxJQUFQO0VBQ0Q7O0VBRVEsTUFBSFcsR0FBRyxDQUNQSCxHQURPLEVBRVBSLFFBRk8sRUFHUHRCLE1BSE8sRUFJUEcsR0FKTyxFQUtVO0lBQ2pCLElBQUksS0FBS3pCLE9BQUwsQ0FBYWtELE9BQWpCLEVBQTBCaEQsT0FBTyxDQUFDb0QsR0FBUixDQUFhLEdBQUU3QixHQUFJLFdBQVUyQixHQUFJLEdBQWpDO0lBQzFCLE1BQU1JLFFBQVEsR0FBRyxNQUFNL0UsS0FBSyxDQUFDMkUsR0FBRCxDQUE1QjtJQUNBLElBQUlyQixJQUFTLEdBQUcsTUFBTXlCLFFBQVEsQ0FBQ0MsTUFBVCxFQUF0QjtJQUNBLElBQUlDLE1BQUo7O0lBQ0EsSUFBSSxDQUFDRixRQUFRLENBQUNHLEVBQWQsRUFBa0I7TUFDaEJELE1BQU0sR0FBR0YsUUFBUSxDQUFDRSxNQUFsQjs7TUFDQSxJQUFJRixRQUFRLENBQUNFLE1BQVQsS0FBb0IsR0FBeEIsRUFBNkI7UUFDM0IsSUFBSSxLQUFLMUQsT0FBTCxDQUFha0QsT0FBakIsRUFBMEI7VUFDeEJoRCxPQUFPLENBQUMwRCxLQUFSLENBQ0csNkJBQTRCUixHQUFJLFdBQVUzQixHQUFJLGlCQUFnQm9DLElBQUksQ0FBQ0MsU0FBTCxDQUM3RDtZQUFFQyxJQUFJLEVBQUVQLFFBQVEsQ0FBQ0UsTUFBakI7WUFBeUJNLE9BQU8sRUFBRVIsUUFBUSxDQUFDUztVQUEzQyxDQUQ2RCxFQUU3RCxJQUY2RCxFQUc3RCxDQUg2RCxDQUk3RCxFQUxKO1FBT0Q7TUFDRjs7TUFDRHpGLEVBQUUsQ0FBQzBGLGFBQUgsQ0FBaUJ0QixRQUFqQixFQUEyQixFQUEzQjtJQUNELENBZEQsTUFjTztNQUNMO01BQUMsQ0FBQ2IsSUFBRCxFQUFPMkIsTUFBUCxJQUFpQnRELFFBQVEsQ0FBQzBCLGlCQUFULENBQTJCQyxJQUEzQixFQUFpQ1QsTUFBakMsQ0FBakI7TUFDRDlDLEVBQUUsQ0FBQzBGLGFBQUgsQ0FBaUJ0QixRQUFqQixFQUEyQmIsSUFBM0I7SUFDRDs7SUFDRCxPQUFPMkIsTUFBUDtFQUNEOztFQUVnQixPQUFWUyxVQUFVLENBQUMxQyxHQUFELEVBQXNCO0lBQ3JDLE1BQU0yQixHQUFHLEdBQ1AseUdBREY7SUFFQSxPQUFRLElBQUczQixHQUFJLEtBQUkyQixHQUFJLFFBQU8zQixHQUFJLFFBQWxDO0VBQ0Q7O0VBRWEsTUFBUjJDLFFBQVEsQ0FDWkMsU0FEWSxFQUVaaEQsa0JBRlksRUFHWkMsTUFIWSxFQUlLO0lBQ2pCLE1BQU1HLEdBQUcsR0FBR0osa0JBQWtCLENBQUNJLEdBQS9CO0lBQ0EsTUFBTW1CLFFBQVEsR0FBSSxHQUFFeUIsU0FBVSxRQUFPNUMsR0FBSSxJQUFHSCxNQUFPLEVBQW5EO0lBQ0EsSUFBSSxFQUFFLE1BQU0sS0FBS3FCLGFBQUwsQ0FBbUJDLFFBQW5CLEVBQTZCbkIsR0FBN0IsQ0FBUixDQUFKLEVBQWdELE9BQU8sQ0FBUDtJQUNoRCxJQUFJLEtBQUt6QixPQUFMLENBQWFrRCxPQUFqQixFQUEwQmhELE9BQU8sQ0FBQ29ELEdBQVIsQ0FBYSxHQUFFN0IsR0FBSSxjQUFhbUIsUUFBUyxFQUF6QztJQUMxQixJQUFJMEIsT0FBTyxHQUFHLEtBQWQ7SUFDQSxJQUFJQyxJQUFJLEdBQUcsRUFBWDtJQUNBLElBQUluQixHQUFKOztJQUVBLEtBQUtBLEdBQUwsSUFBWSxLQUFLaEMsT0FBTCxDQUFhQyxrQkFBYixFQUFpQ0MsTUFBakMsQ0FBWixFQUFzRDtNQUNwRCxJQUFJLGFBQWEsS0FBS3RCLE9BQXRCLEVBQStCO1FBQzdCdUUsSUFBSSxJQUFLLE9BQU1uQixHQUFJLElBQW5CO1FBQ0E7TUFDRCxDQUhELE1BR087UUFDTG1CLElBQUksSUFBSyxPQUFNbkIsR0FBSSxHQUFuQjtNQUNEOztNQUVELE1BQU1NLE1BQU0sR0FBRyxNQUFNLEtBQUtILEdBQUwsQ0FBU0gsR0FBVCxFQUFjUixRQUFkLEVBQXdCdEIsTUFBeEIsRUFBZ0NHLEdBQWhDLENBQXJCO01BRUE4QyxJQUFJLElBQUssR0FBRWIsTUFBTyxJQUFsQjs7TUFDQSxJQUFJQSxNQUFNLElBQUksSUFBZCxFQUFvQjtRQUNsQlksT0FBTyxHQUFHLElBQVY7UUFDQTtNQUNEO0lBQ0Y7O0lBQ0QsTUFBTW5CLE9BQU8sR0FBSSxHQUFFUCxRQUFTLE1BQTVCOztJQUNBLElBQUkwQixPQUFKLEVBQWE7TUFDWDlGLEVBQUUsQ0FBQzBGLGFBQUgsQ0FBaUJmLE9BQWpCLEVBQTBCQyxHQUExQjtJQUNELENBRkQsTUFFTyxJQUFJNUUsRUFBRSxDQUFDcUUsVUFBSCxDQUFjTSxPQUFkLENBQUosRUFBNEI7TUFDakMzRSxFQUFFLENBQUNnRyxVQUFILENBQWNyQixPQUFkO0lBQ0Q7O0lBQ0QsSUFBSW9CLElBQUksSUFBSSxFQUFSLElBQWMsQ0FBQyxLQUFLdkUsT0FBTCxDQUFheUUsTUFBaEMsRUFBd0M7TUFDdEN2RSxPQUFPLENBQUNvRCxHQUFSLENBQ0csS0FBSWxELFFBQVEsQ0FBQytELFVBQVQsQ0FBb0IxQyxHQUFwQixDQUF5QixnQkFBZW1CLFFBQVMsS0FBSTJCLElBQUksQ0FBQ25DLEtBQUwsQ0FDeEQsQ0FEd0QsRUFFeEQsQ0FBQyxDQUZ1RCxDQUd4RCxFQUpKO01BTUEsT0FBTyxDQUFQO0lBQ0QsQ0FSRCxNQVFPO01BQ0wsT0FBTyxDQUFQO0lBQ0Q7RUFDRjs7RUFFc0IsTUFBakJzQyxpQkFBaUIsR0FBb0I7SUFDekMsTUFBTUMsTUFBTSxHQUFJLEdBQUUsS0FBSzNFLE9BQUwsQ0FBYTRFLE1BQU8sT0FBdEM7O0lBQ0EsSUFBSSxDQUFDcEcsRUFBRSxDQUFDcUUsVUFBSCxDQUFjOEIsTUFBZCxDQUFMLEVBQTRCO01BQzFCekUsT0FBTyxDQUFDMEQsS0FBUixDQUFlLEdBQUVlLE1BQU8sb0NBQXhCO01BQ0EsT0FBTyxDQUFQO0lBQ0Q7O0lBRUQsTUFBTU4sU0FBUyxHQUFHMUYsSUFBSSxDQUFDa0csSUFBTCxDQUFVLEtBQUs3RSxPQUFMLENBQWE0RSxNQUF2QixFQUErQixLQUFLNUUsT0FBTCxDQUFhOEUsV0FBNUMsQ0FBbEI7SUFDQXRHLEVBQUUsQ0FBQ3VHLGFBQUgsQ0FBa0IsR0FBRVYsU0FBVSxNQUE5Qjs7SUFFQSxLQUFLLE1BQU1XLFFBQVgsSUFBdUJuRyxRQUFRLENBQUMsS0FBS21CLE9BQUwsQ0FBYWlGLElBQWQsQ0FBL0IsRUFBb0Q7TUFDbEQsTUFBTXBFLFFBQVEsR0FBR2pDLElBQUksQ0FBQ29HLFFBQUQsQ0FBckI7TUFDQSxJQUFJLFVBQVVFLElBQVYsQ0FBZXJFLFFBQVEsQ0FBQ1ksR0FBeEIsS0FBZ0MsUUFBUXlELElBQVIsQ0FBYXJFLFFBQVEsQ0FBQ1ksR0FBdEIsQ0FBcEMsRUFBZ0U7O01BQ2hFLEtBQUssTUFBTUosa0JBQVgsSUFBaUMsS0FBS1Qsc0JBQUwsQ0FBNEJDLFFBQTVCLENBQWpDLEVBQXdFO1FBQ3RFLElBQUksVUFBVXFFLElBQVYsQ0FBZTdELGtCQUFrQixDQUFDSSxHQUFsQyxDQUFKLEVBQTRDO1FBQzVDLElBQUlpQyxNQUFNLEdBQUcsQ0FBYjs7UUFDQSxLQUFLLE1BQU1wQyxNQUFYLElBQXFCLENBQUMsTUFBRCxFQUFTLEtBQVQsQ0FBckIsRUFBc0M7VUFDcENvQyxNQUFNLElBQUksTUFBTSxLQUFLVSxRQUFMLENBQWNDLFNBQWQsRUFBeUJoRCxrQkFBekIsRUFBNkNDLE1BQTdDLENBQWhCO1FBQ0Q7O1FBQ0QsSUFBSW9DLE1BQU0sSUFBSSxDQUFDLEtBQUsxRCxPQUFMLENBQWF5RSxNQUE1QixFQUFvQ3ZFLE9BQU8sQ0FBQ29ELEdBQVIsQ0FBWSxLQUFaO01BQ3JDO0lBQ0Y7O0lBRUQsSUFBSSxFQUFFLGFBQWEsS0FBS3RELE9BQXBCLENBQUosRUFBa0M7TUFDaEMsTUFBTSxLQUFLZSxhQUFMLENBQW1Cc0QsU0FBbkIsQ0FBTjtJQUNEOztJQUVELE9BQU8sQ0FBUDtFQUNEOztBQXpNWTs7QUE0TWYsZUFBZWMsSUFBZixDQUFvQmxHLElBQXBCLEVBQWdEO0VBQzlDLE1BQU1lLE9BQU8sR0FBR2hCLFNBQVMsQ0FBQ0MsSUFBRCxDQUF6QjtFQUNBLElBQUllLE9BQU8sS0FBSyxJQUFoQixFQUFzQixPQUFPLENBQVA7RUFDdEIsTUFBTW9GLFFBQVEsR0FBRyxJQUFJaEYsUUFBSixDQUFhSixPQUFiLENBQWpCO0VBQ0EsT0FBT29GLFFBQVEsQ0FBQ1YsaUJBQVQsRUFBUDtBQUNEO0FBRUQ7OztBQUNBLElBQUlXLE9BQU8sQ0FBQ3BHLElBQVIsQ0FBYSxDQUFiLEVBQWdCcUcsUUFBaEIsQ0FBeUIsdUJBQXpCLENBQUosRUFDRUgsSUFBSSxDQUFDRSxPQUFPLENBQUNwRyxJQUFULENBQUosQ0FDR3NHLElBREgsQ0FDUzdCLE1BQUQsSUFBWTtFQUNoQjJCLE9BQU8sQ0FBQ0csSUFBUixDQUFhOUIsTUFBYjtBQUNELENBSEgsRUFJRytCLEtBSkgsQ0FJVTdCLEtBQUQsSUFBVztFQUNoQjFELE9BQU8sQ0FBQzBELEtBQVIsQ0FBY0EsS0FBZDtFQUNBeUIsT0FBTyxDQUFDRyxJQUFSLENBQWEsQ0FBYjtBQUNELENBUEgifQ==
|
|
292
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21tYW5kTGluZUFyZ3MiLCJjb21tYW5kTGluZVVzYWdlIiwiZ2l0IiwiZnMiLCJmZXRjaCIsInJlcXVpcmUiLCJwYXRoIiwibG9hZCIsImdldEZpbGVzIiwiRG9jdW1lbnRVcmxGb3JtYXQiLCJ1cmxGcm9tRG9jdW1lbnQiLCJwYXJzZUFyZ3MiLCJhcmd2Iiwib3B0aW9uc0RlZmluaXRpb25zIiwiYWxpYXMiLCJoZWxwIiwibmFtZSIsInR5cGUiLCJCb29sZWFuIiwiZGVmYXVsdFZhbHVlIiwiU3RyaW5nIiwiZGVmYXVsdE9wdGlvbiIsIm11bHRpcGxlIiwic2VjdGlvbnMiLCJoZWFkZXIiLCJjb250ZW50Iiwib3B0aW9uTGlzdCIsIm9wdGlvbnMiLCJ1c2FnZSIsImNvbnNvbGUiLCJ3YXJuIiwiUmV0cmlldmUiLCJjb25zdHJ1Y3RvciIsImdldERpdmlzaW9ucyIsImRpdmlzaW9uIiwiZGl2aXNpb25zIiwidW5kZWZpbmVkIiwiZCIsImNvbmNhdCIsImdldERpdmlzaW9uc09yRG9jdW1lbnQiLCJkb2N1bWVudCIsIm1hcCIsImNvbW1pdEFuZFB1c2giLCJyZXBvc2l0b3J5RGlyIiwiY29tbWl0IiwicmVtb3RlIiwicnVuIiwiZ2V0VXJscyIsImRpdmlzaW9uT3JEb2N1bWVudCIsImZvcm1hdCIsImV4dCIsInVybHMiLCJ1aWQiLCJwdXNoIiwiUmF3SHRtbCIsIkh0bWwiLCJQZGYiLCJzYW5pdHlDaGVja0Zvcm1hdCIsInBhZ2UiLCJsZW5ndGgiLCJNYXRoIiwibWluIiwiaGVhZCIsInNsaWNlIiwidG9TdHJpbmciLCJzdGFydHNXaXRoIiwiQnVmZmVyIiwiZnJvbSIsImVuY29kZVVSSUNvbXBvbmVudCIsImluY2x1ZGVzIiwibmVlZHNEb3dubG9hZCIsImZpbGVQYXRoIiwiZXhpc3RzU3luYyIsImlzTm90RW1wdHkiLCJzdGF0U3luYyIsInNpemUiLCJyZXRyeUZhaWxlZCIsInZlcmJvc2UiLCJ1cmxQYXRoIiwidXJsIiwicmVhZEZpbGVTeW5jIiwibG9nIiwiZ2V0IiwicmVzcG9uc2UiLCJidWZmZXIiLCJzdGF0dXMiLCJvayIsImVycm9yIiwiSlNPTiIsInN0cmluZ2lmeSIsImNvZGUiLCJtZXNzYWdlIiwic3RhdHVzVGV4dCIsIndyaXRlRmlsZVN5bmMiLCJ1cmxGcm9tVWlkIiwiZG93bmxvYWQiLCJ0ZXh0ZXNEaXIiLCJzdWNjZXNzIiwiaW5mbyIsInVubGlua1N5bmMiLCJzaWxlbnQiLCJyZXRyaWV2ZURvY3VtZW50cyIsImdpdERpciIsInRleHRlcyIsImpvaW4iLCJsZWdpc2xhdHVyZSIsImVuc3VyZURpclN5bmMiLCJmaWxlbmFtZSIsImRhdGEiLCJ0ZXN0IiwibWFpbiIsInJldHJpZXZlIiwicHJvY2VzcyIsImVuZHNXaXRoIiwidGhlbiIsImV4aXQiLCJjYXRjaCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL3JldHJpZXZlX2RvY3VtZW50cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY29tbWFuZExpbmVBcmdzIGZyb20gXCJjb21tYW5kLWxpbmUtYXJnc1wiXG5pbXBvcnQgY29tbWFuZExpbmVVc2FnZSBmcm9tIFwiY29tbWFuZC1saW5lLXVzYWdlXCJcbmltcG9ydCAqIGFzIGdpdCBmcm9tIFwiLi4vLi4vc3JjL2dpdFwiXG5pbXBvcnQgZnMgZnJvbSBcImZzLWV4dHJhXCJcbmxldCBmZXRjaCA9IHJlcXVpcmUoXCJub2RlLWZldGNoXCIpXG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiXG5cbmltcG9ydCB7IGxvYWQsIGdldEZpbGVzIH0gZnJvbSBcIi4uL2ZpbGVfc3lzdGVtc1wiXG5pbXBvcnQgeyBEb2N1bWVudFVybEZvcm1hdCwgdXJsRnJvbURvY3VtZW50IH0gZnJvbSBcIi4uL3VybHNcIlxuXG5mdW5jdGlvbiBwYXJzZUFyZ3MoYXJndjogc3RyaW5nW10pOiBhbnkge1xuICBjb25zdCBvcHRpb25zRGVmaW5pdGlvbnMgPSBbXG4gICAge1xuICAgICAgYWxpYXM6IFwiY1wiLFxuICAgICAgaGVscDogXCJjb21taXQgZG9jdW1lbnRzXCIsXG4gICAgICBuYW1lOiBcImNvbW1pdFwiLFxuICAgICAgdHlwZTogQm9vbGVhbixcbiAgICB9LFxuICAgIHtcbiAgICAgIGhlbHA6IFwiZHJ5IHJ1blwiLFxuICAgICAgbmFtZTogXCJkcnktcnVuXCIsXG4gICAgICB0eXBlOiBCb29sZWFuLFxuICAgIH0sXG4gICAge1xuICAgICAgaGVscDogXCJyZXRyeSBmYWlsZWQgZG9jdW1lbnRzXCIsXG4gICAgICBuYW1lOiBcInJldHJ5LWZhaWxlZFwiLFxuICAgICAgdHlwZTogQm9vbGVhbixcbiAgICB9LFxuICAgIHtcbiAgICAgIGhlbHA6IFwicmV0cnkgYWxsIGRvY3VtZW50c1wiLFxuICAgICAgbmFtZTogXCJyZXRyeVwiLFxuICAgICAgdHlwZTogQm9vbGVhbixcbiAgICB9LFxuICAgIHtcbiAgICAgIGFsaWFzOiBcImxcIixcbiAgICAgIGRlZmF1bHRWYWx1ZTogXCIxNlwiLFxuICAgICAgbmFtZTogXCJsZWdpc2xhdHVyZVwiLFxuICAgICAgdHlwZTogU3RyaW5nLFxuICAgIH0sXG4gICAge1xuICAgICAgYWxpYXM6IFwiclwiLFxuICAgICAgaGVscDogXCJwdXNoIGNvbW1pdCB0byBnaXZlbiByZW1vdGVcIixcbiAgICAgIG5hbWU6IFwicmVtb3RlXCIsXG4gICAgICB0eXBlOiBTdHJpbmcsXG4gICAgfSxcbiAgICB7XG4gICAgICBhbGlhczogXCJzXCIsXG4gICAgICBoZWxwOiBcImRvbid0IGxvZyBhbnl0aGluZ1wiLFxuICAgICAgbmFtZTogXCJzaWxlbnRcIixcbiAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgfSxcbiAgICB7XG4gICAgICBoZWxwOiBcInRleHRlcyBkaXJcIixcbiAgICAgIG5hbWU6IFwidGV4dGVzXCIsXG4gICAgICB0eXBlOiBTdHJpbmcsXG4gICAgfSxcbiAgICB7XG4gICAgICBhbGlhczogXCJ2XCIsXG4gICAgICBoZWxwOiBcInZlcmJvc2UgbG9nc1wiLFxuICAgICAgbmFtZTogXCJ2ZXJib3NlXCIsXG4gICAgICB0eXBlOiBCb29sZWFuLFxuICAgIH0sXG4gICAge1xuICAgICAgZGVmYXVsdE9wdGlvbjogdHJ1ZSxcbiAgICAgIGhlbHA6IFwiZmlsZXMgb3IgZ2xvYnMgdG8gZG9jdW1lbnRzXCIsXG4gICAgICBtdWx0aXBsZTogdHJ1ZSxcbiAgICAgIG5hbWU6IFwiZGF0YVwiLFxuICAgICAgdHlwZTogU3RyaW5nLFxuICAgIH0sXG4gIF1cbiAgY29uc3Qgc2VjdGlvbnMgPSBbXG4gICAge1xuICAgICAgaGVhZGVyOiBcIlJldHJpZXZlIGRvY3VtZW50c1wiLFxuICAgICAgY29udGVudDogXCJSZXRyaWV2ZSBkb2N1bWVudHNcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIGhlYWRlcjogXCJPcHRpb25zXCIsXG4gICAgICBvcHRpb25MaXN0OiBvcHRpb25zRGVmaW5pdGlvbnMsXG4gICAgfSxcbiAgXVxuICBjb25zdCBvcHRpb25zID0gY29tbWFuZExpbmVBcmdzKG9wdGlvbnNEZWZpbml0aW9ucywge1xuICAgIGFyZ3Y6IGFyZ3YsXG4gIH0pXG5cbiAgaWYgKFwiaGVscFwiIGluIG9wdGlvbnMpIHtcbiAgICBjb25zdCB1c2FnZSA9IGNvbW1hbmRMaW5lVXNhZ2Uoc2VjdGlvbnMpXG4gICAgY29uc29sZS53YXJuKHVzYWdlKVxuICAgIHJldHVybiBudWxsXG4gIH1cbiAgcmV0dXJuIG9wdGlvbnNcbn1cblxuY2xhc3MgUmV0cmlldmUge1xuICBvcHRpb25zOiBhbnlcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBhbnkpIHtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zXG4gIH1cblxuICBnZXREaXZpc2lvbnMoZGl2aXNpb246IGFueSkge1xuICAgIGxldCBkaXZpc2lvbnMgPSBbZGl2aXNpb25dXG4gICAgaWYgKGRpdmlzaW9uLmRpdmlzaW9ucyAhPSB1bmRlZmluZWQpIHtcbiAgICAgIGZvciAoY29uc3QgZCBvZiBkaXZpc2lvbi5kaXZpc2lvbnMpXG4gICAgICAgIGRpdmlzaW9ucyA9IGRpdmlzaW9ucy5jb25jYXQodGhpcy5nZXREaXZpc2lvbnMoZCkpXG4gICAgfVxuICAgIHJldHVybiBkaXZpc2lvbnNcbiAgfVxuXG4gIGdldERpdmlzaW9uc09yRG9jdW1lbnQoZG9jdW1lbnQ6IGFueSkge1xuICAgIGlmIChkb2N1bWVudC5kaXZpc2lvbnMgIT0gdW5kZWZpbmVkKVxuICAgICAgcmV0dXJuIFtdLmNvbmNhdChcbiAgICAgICAgLi4uZG9jdW1lbnQuZGl2aXNpb25zLm1hcCgoZDogYW55KSA9PiB0aGlzLmdldERpdmlzaW9ucyhkKSksXG4gICAgICApXG4gICAgZWxzZSByZXR1cm4gW2RvY3VtZW50XVxuICB9XG5cbiAgYXN5bmMgY29tbWl0QW5kUHVzaChyZXBvc2l0b3J5RGlyOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5vcHRpb25zLmNvbW1pdCA9PSB1bmRlZmluZWQpIHJldHVyblxuICAgIGdpdC5jb21taXQocmVwb3NpdG9yeURpciwgXCJOb3V2ZWxsZSBtb2lzc29uXCIpXG5cbiAgICBpZiAodGhpcy5vcHRpb25zLnJlbW90ZSA9PSB1bmRlZmluZWQpIHJldHVyblxuICAgIGdpdC5ydW4ocmVwb3NpdG9yeURpciwgYHB1c2ggJHt0aGlzLm9wdGlvbnMucmVtb3RlfSBIRUFEOm1hc3RlcmApXG4gIH1cblxuICBnZXRVcmxzKGRpdmlzaW9uT3JEb2N1bWVudDogYW55LCBmb3JtYXQ6IHN0cmluZykge1xuICAgIGNvbnN0IGV4dCA9IGZvcm1hdCA9PSBcImh0bWxcIiA/IFwicmF3XCIgOiBcInBkZlwiXG4gICAgbGV0IHVybHM6IGFueSA9IFtcbiAgICAgIGBodHRwOi8vd3d3LmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvZHluL2RvY3MvJHtkaXZpc2lvbk9yRG9jdW1lbnQudWlkfS4ke2V4dH1gLFxuICAgIF1cbiAgICBpZiAoZm9ybWF0ID09IFwiaHRtbFwiKSB7XG4gICAgICB1cmxzLnB1c2godXJsRnJvbURvY3VtZW50KGRpdmlzaW9uT3JEb2N1bWVudCwgRG9jdW1lbnRVcmxGb3JtYXQuUmF3SHRtbCkpXG4gICAgICB1cmxzLnB1c2godXJsRnJvbURvY3VtZW50KGRpdmlzaW9uT3JEb2N1bWVudCwgRG9jdW1lbnRVcmxGb3JtYXQuSHRtbCkpXG4gICAgfSBlbHNlIGlmIChmb3JtYXQgPT0gXCJwZGZcIikge1xuICAgICAgdXJscy5wdXNoKHVybEZyb21Eb2N1bWVudChkaXZpc2lvbk9yRG9jdW1lbnQsIERvY3VtZW50VXJsRm9ybWF0LlBkZikpXG4gICAgfVxuICAgIHJldHVybiB1cmxzXG4gIH1cblxuICBzdGF0aWMgc2FuaXR5Q2hlY2tGb3JtYXQocGFnZTogQnVmZmVyLCBmb3JtYXQ6IHN0cmluZyk6IFtCdWZmZXIsIHN0cmluZ10ge1xuICAgIGlmIChmb3JtYXQgPT0gXCJwZGZcIikge1xuICAgICAgY29uc3QgbGVuZ3RoID0gTWF0aC5taW4ocGFnZS5sZW5ndGgsIDQpXG4gICAgICBjb25zdCBoZWFkID0gcGFnZS5zbGljZSgwLCBsZW5ndGgpLnRvU3RyaW5nKClcbiAgICAgIGlmICghaGVhZC5zdGFydHNXaXRoKFwiJVBERlwiKSlcbiAgICAgICAgcmV0dXJuIFtCdWZmZXIuZnJvbShcIlwiKSwgYGJhZCBwZGYgJHtlbmNvZGVVUklDb21wb25lbnQoaGVhZCl9Li4uYF1cbiAgICB9IGVsc2UgaWYgKGZvcm1hdCA9PSBcImh0bWxcIikge1xuICAgICAgY29uc3QgbGVuZ3RoID0gTWF0aC5taW4ocGFnZS5sZW5ndGgsIDUwKVxuICAgICAgY29uc3QgaGVhZCA9IHBhZ2Uuc2xpY2UoMCwgbGVuZ3RoKS50b1N0cmluZygpXG4gICAgICBpZiAoIWhlYWQuaW5jbHVkZXMoXCJET0NUWVBFXCIpICYmICFoZWFkLmluY2x1ZGVzKFwiPD94bWxcIikpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICBCdWZmZXIuZnJvbShcIlwiKSxcbiAgICAgICAgICBgYmFkIGh0bWwgJHtlbmNvZGVVUklDb21wb25lbnQoaGVhZC5zbGljZSgwLCA0KSl9Li4uYCxcbiAgICAgICAgXVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gW3BhZ2UsIFwiT0tcIl1cbiAgfVxuXG4gIGFzeW5jIG5lZWRzRG93bmxvYWQoZmlsZVBhdGg6IHN0cmluZywgdWlkOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBpZiAoZnMuZXhpc3RzU3luYyhmaWxlUGF0aCkpIHtcbiAgICAgIGNvbnN0IGlzTm90RW1wdHkgPSBmcy5zdGF0U3luYyhmaWxlUGF0aCkuc2l6ZSA+IDBcbiAgICAgIGNvbnN0IHJldHJ5RmFpbGVkID0gXCJyZXRyeS1mYWlsZWRcIiBpbiB0aGlzLm9wdGlvbnNcbiAgICAgIGlmICghcmV0cnlGYWlsZWQgfHwgaXNOb3RFbXB0eSkge1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnZlcmJvc2UpIHtcbiAgICAgICAgICBpZiAoaXNOb3RFbXB0eSkge1xuICAgICAgICAgICAgY29uc3QgdXJsUGF0aCA9IGAke2ZpbGVQYXRofS51cmxgXG4gICAgICAgICAgICBsZXQgdXJsXG4gICAgICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyh1cmxQYXRoKSlcbiAgICAgICAgICAgICAgdXJsID0gZnMucmVhZEZpbGVTeW5jKHVybFBhdGgpLnRvU3RyaW5nKClcbiAgICAgICAgICAgIGVsc2UgdXJsID0gXCI8dW5rbm93biB1cmw+XCJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGAke3VpZH06IENhY2hlZCBPSyAke2ZpbGVQYXRofSBmcm9tICR7dXJsfWApXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGAke3VpZH06IENhY2hlZCBGQUlMICR7ZmlsZVBhdGh9YClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBhc3luYyBnZXQoXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgZmlsZVBhdGg6IHN0cmluZyxcbiAgICBmb3JtYXQ6IHN0cmluZyxcbiAgICB1aWQ6IHN0cmluZyxcbiAgKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBpZiAodGhpcy5vcHRpb25zLnZlcmJvc2UpIGNvbnNvbGUubG9nKGAke3VpZH06IGZldGNoKCR7dXJsfSlgKVxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsKVxuICAgIGxldCBwYWdlOiBhbnkgPSBhd2FpdCByZXNwb25zZS5idWZmZXIoKVxuICAgIGxldCBzdGF0dXNcbiAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICBzdGF0dXMgPSByZXNwb25zZS5zdGF0dXNcbiAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgIT09IDQwNCkge1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnZlcmJvc2UpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgYEVycm9yIHdoaWxlIGdldHRpbmcgcGFnZSBcIiR7dXJsfVwiICh1aWQ6ICR7dWlkfSk6XFxuXFxuRXJyb3I6XFxuJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgICAgeyBjb2RlOiByZXNwb25zZS5zdGF0dXMsIG1lc3NhZ2U6IHJlc3BvbnNlLnN0YXR1c1RleHQgfSxcbiAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICl9YCxcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGZzLndyaXRlRmlsZVN5bmMoZmlsZVBhdGgsIFwiXCIpXG4gICAgfSBlbHNlIHtcbiAgICAgIDtbcGFnZSwgc3RhdHVzXSA9IFJldHJpZXZlLnNhbml0eUNoZWNrRm9ybWF0KHBhZ2UsIGZvcm1hdClcbiAgICAgIGZzLndyaXRlRmlsZVN5bmMoZmlsZVBhdGgsIHBhZ2UpXG4gICAgfVxuICAgIHJldHVybiBzdGF0dXNcbiAgfVxuXG4gIHN0YXRpYyB1cmxGcm9tVWlkKHVpZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCB1cmwgPVxuICAgICAgXCJodHRwczovL2dpdC5lbi1yb290Lm9yZy90cmljb3RldXNlcy9kYXRhLnRyaWNvdGV1c2VzLmZyL0Rvc3NpZXJzX0xlZ2lzbGF0aWZzX1hWLy0vdHJlZS9tYXN0ZXIvZG9jdW1lbnRzXCJcbiAgICByZXR1cm4gYFske3VpZH1dKCR7dXJsfS91aWQvJHt1aWR9Lmpzb24pYFxuICB9XG5cbiAgYXN5bmMgZG93bmxvYWQoXG4gICAgdGV4dGVzRGlyOiBzdHJpbmcsXG4gICAgZGl2aXNpb25PckRvY3VtZW50OiBhbnksXG4gICAgZm9ybWF0OiBzdHJpbmcsXG4gICk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgY29uc3QgdWlkID0gZGl2aXNpb25PckRvY3VtZW50LnVpZFxuICAgIGNvbnN0IGZpbGVQYXRoID0gYCR7dGV4dGVzRGlyfS91aWQvJHt1aWR9LiR7Zm9ybWF0fWBcbiAgICBpZiAoIShhd2FpdCB0aGlzLm5lZWRzRG93bmxvYWQoZmlsZVBhdGgsIHVpZCkpKSByZXR1cm4gMFxuICAgIGlmICh0aGlzLm9wdGlvbnMudmVyYm9zZSkgY29uc29sZS5sb2coYCR7dWlkfTogQ2hlY2tpbmcgJHtmaWxlUGF0aH1gKVxuICAgIGxldCBzdWNjZXNzID0gZmFsc2VcbiAgICBsZXQgaW5mbyA9IFwiXCJcbiAgICBsZXQgdXJsXG5cbiAgICBmb3IgKHVybCBvZiB0aGlzLmdldFVybHMoZGl2aXNpb25PckRvY3VtZW50LCBmb3JtYXQpKSB7XG4gICAgICBpZiAoXCJkcnktcnVuXCIgaW4gdGhpcy5vcHRpb25zKSB7XG4gICAgICAgIGluZm8gKz0gYCAgKiAke3VybH1cXG5gXG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpbmZvICs9IGAgICogJHt1cmx9IGBcbiAgICAgIH1cblxuICAgICAgY29uc3Qgc3RhdHVzID0gYXdhaXQgdGhpcy5nZXQodXJsLCBmaWxlUGF0aCwgZm9ybWF0LCB1aWQpXG5cbiAgICAgIGluZm8gKz0gYCR7c3RhdHVzfVxcbmBcbiAgICAgIGlmIChzdGF0dXMgPT0gXCJPS1wiKSB7XG4gICAgICAgIHN1Y2Nlc3MgPSB0cnVlXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHVybFBhdGggPSBgJHtmaWxlUGF0aH0udXJsYFxuICAgIGlmIChzdWNjZXNzKSB7XG4gICAgICBmcy53cml0ZUZpbGVTeW5jKHVybFBhdGgsIHVybClcbiAgICB9IGVsc2UgaWYgKGZzLmV4aXN0c1N5bmModXJsUGF0aCkpIHtcbiAgICAgIGZzLnVubGlua1N5bmModXJsUGF0aClcbiAgICB9XG4gICAgaWYgKGluZm8gIT0gXCJcIiAmJiAhdGhpcy5vcHRpb25zLnNpbGVudCkge1xuICAgICAgY29uc29sZS5sb2coXG4gICAgICAgIGAqICR7UmV0cmlldmUudXJsRnJvbVVpZCh1aWQpfTogUmV0cmlldmluZyAke2ZpbGVQYXRofVxcbiR7aW5mby5zbGljZShcbiAgICAgICAgICAwLFxuICAgICAgICAgIC0xLFxuICAgICAgICApfWAsXG4gICAgICApXG4gICAgICByZXR1cm4gMVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gMFxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHJldHJpZXZlRG9jdW1lbnRzKCk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgY29uc3QgZ2l0RGlyID0gYCR7dGhpcy5vcHRpb25zLnRleHRlc30vLmdpdGBcbiAgICBpZiAoIWZzLmV4aXN0c1N5bmMoZ2l0RGlyKSkge1xuICAgICAgY29uc29sZS5lcnJvcihgJHtnaXREaXJ9IGlzIGV4cGVjdGVkIHRvIGV4aXN0IGJ1dCBkb2VzIG5vdGApXG4gICAgICByZXR1cm4gMVxuICAgIH1cblxuICAgIGNvbnN0IHRleHRlc0RpciA9IHBhdGguam9pbih0aGlzLm9wdGlvbnMudGV4dGVzLCB0aGlzLm9wdGlvbnMubGVnaXNsYXR1cmUpXG4gICAgZnMuZW5zdXJlRGlyU3luYyhgJHt0ZXh0ZXNEaXJ9L3VpZGApXG5cbiAgICBmb3IgKGNvbnN0IGZpbGVuYW1lIG9mIGdldEZpbGVzKHRoaXMub3B0aW9ucy5kYXRhKSkge1xuICAgICAgY29uc3QgZG9jdW1lbnQgPSBsb2FkKGZpbGVuYW1lKVxuICAgICAgaWYgKC9eLi4uLlNOLy50ZXN0KGRvY3VtZW50LnVpZCkgfHwgL15ERUNMLy50ZXN0KGRvY3VtZW50LnVpZCkpIGNvbnRpbnVlXG4gICAgICBmb3IgKGNvbnN0IGRpdmlzaW9uT3JEb2N1bWVudCBvZiB0aGlzLmdldERpdmlzaW9uc09yRG9jdW1lbnQoZG9jdW1lbnQpKSB7XG4gICAgICAgIGlmICgvLUNPTVBBJC8udGVzdChkaXZpc2lvbk9yRG9jdW1lbnQudWlkKSkgY29udGludWVcbiAgICAgICAgbGV0IHN0YXR1cyA9IDBcbiAgICAgICAgZm9yIChjb25zdCBmb3JtYXQgb2YgW1wiaHRtbFwiLCBcInBkZlwiXSkge1xuICAgICAgICAgIHN0YXR1cyB8PSBhd2FpdCB0aGlzLmRvd25sb2FkKHRleHRlc0RpciwgZGl2aXNpb25PckRvY3VtZW50LCBmb3JtYXQpXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0YXR1cyAmJiAhdGhpcy5vcHRpb25zLnNpbGVudCkgY29uc29sZS5sb2coXCItLS1cIilcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIShcImRyeS1ydW5cIiBpbiB0aGlzLm9wdGlvbnMpKSB7XG4gICAgICBhd2FpdCB0aGlzLmNvbW1pdEFuZFB1c2godGV4dGVzRGlyKVxuICAgIH1cblxuICAgIHJldHVybiAwXG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gbWFpbihhcmd2OiBhbnkpOiBQcm9taXNlPG51bWJlcj4ge1xuICBjb25zdCBvcHRpb25zID0gcGFyc2VBcmdzKGFyZ3YpXG4gIGlmIChvcHRpb25zID09PSBudWxsKSByZXR1cm4gMVxuICBjb25zdCByZXRyaWV2ZSA9IG5ldyBSZXRyaWV2ZShvcHRpb25zKVxuICByZXR1cm4gcmV0cmlldmUucmV0cmlldmVEb2N1bWVudHMoKVxufVxuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbmlmIChwcm9jZXNzLmFyZ3ZbMV0uZW5kc1dpdGgoXCJyZXRyaWV2ZV9kb2N1bWVudHMudHNcIikpXG4gIG1haW4ocHJvY2Vzcy5hcmd2KVxuICAgIC50aGVuKChzdGF0dXMpID0+IHtcbiAgICAgIHByb2Nlc3MuZXhpdChzdGF0dXMpXG4gICAgfSlcbiAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICBjb25zb2xlLmVycm9yKGVycm9yKVxuICAgICAgcHJvY2Vzcy5leGl0KDEpXG4gICAgfSlcbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPQSxlQUFQLE1BQTRCLG1CQUE1QjtBQUNBLE9BQU9DLGdCQUFQLE1BQTZCLG9CQUE3QjtPQUNPLEtBQUtDLEc7QUFDWixPQUFPQyxFQUFQLE1BQWUsVUFBZjs7QUFDQSxJQUFJQyxLQUFLLEdBQUdDLE9BQU8sQ0FBQyxZQUFELENBQW5COztBQUNBLE9BQU9DLElBQVAsTUFBaUIsTUFBakI7U0FFU0MsSSxFQUFNQyxRO1NBQ05DLGlCLEVBQW1CQyxlOztBQUU1QixTQUFTQyxTQUFULENBQW1CQyxJQUFuQixFQUF3QztFQUN0QyxNQUFNQyxrQkFBa0IsR0FBRyxDQUN6QjtJQUNFQyxLQUFLLEVBQUUsR0FEVDtJQUVFQyxJQUFJLEVBQUUsa0JBRlI7SUFHRUMsSUFBSSxFQUFFLFFBSFI7SUFJRUMsSUFBSSxFQUFFQztFQUpSLENBRHlCLEVBT3pCO0lBQ0VILElBQUksRUFBRSxTQURSO0lBRUVDLElBQUksRUFBRSxTQUZSO0lBR0VDLElBQUksRUFBRUM7RUFIUixDQVB5QixFQVl6QjtJQUNFSCxJQUFJLEVBQUUsd0JBRFI7SUFFRUMsSUFBSSxFQUFFLGNBRlI7SUFHRUMsSUFBSSxFQUFFQztFQUhSLENBWnlCLEVBaUJ6QjtJQUNFSCxJQUFJLEVBQUUscUJBRFI7SUFFRUMsSUFBSSxFQUFFLE9BRlI7SUFHRUMsSUFBSSxFQUFFQztFQUhSLENBakJ5QixFQXNCekI7SUFDRUosS0FBSyxFQUFFLEdBRFQ7SUFFRUssWUFBWSxFQUFFLElBRmhCO0lBR0VILElBQUksRUFB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
|