@tricoteuses/assemblee 1.5.0 → 1.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/lib/bugs/acteur-00010.js +3 -3
  2. package/lib/bugs/agenda-00002.js +3 -3
  3. package/lib/bugs/agenda-00002.mjs +2 -2
  4. package/lib/bugs/agenda-00008.js +3 -3
  5. package/lib/bugs/agenda-00011.js +3 -3
  6. package/lib/bugs/agenda-00011.mjs +2 -2
  7. package/lib/bugs.js +3 -3
  8. package/lib/bugs.mjs +2 -2
  9. package/lib/datasets.js +1 -2
  10. package/lib/datasets.mjs +1 -2
  11. package/lib/dates.js +16 -20
  12. package/lib/dates.mjs +5 -7
  13. package/lib/dossiers_legislatifs.mjs +1 -2
  14. package/lib/file_systems.js +3 -3
  15. package/lib/file_systems.mjs +3 -3
  16. package/lib/inserters.js +1 -3
  17. package/lib/inserters.mjs +1 -3
  18. package/lib/parsers/documents.js +1 -2
  19. package/lib/parsers/documents.mjs +1 -2
  20. package/lib/parsers/recherche_amendements.js +9 -10
  21. package/lib/parsers/recherche_amendements.mjs +4 -6
  22. package/lib/raw_types/acteurs_et_organes.js +2 -2
  23. package/lib/raw_types/agendas.js +2 -2
  24. package/lib/raw_types/amendements.js +2 -2
  25. package/lib/raw_types/debats.js +2 -2
  26. package/lib/raw_types/dossiers_legislatifs.d.ts +1 -0
  27. package/lib/raw_types/dossiers_legislatifs.js +5 -4
  28. package/lib/raw_types/dossiers_legislatifs.mjs +3 -2
  29. package/lib/raw_types/questions.js +2 -2
  30. package/lib/raw_types/scrutins.js +2 -2
  31. package/lib/scripts/bugs_helper.js +3 -3
  32. package/lib/scripts/bugs_helper.mjs +2 -2
  33. package/lib/scripts/clean_reorganized_data.js +1 -1
  34. package/lib/scripts/clean_reorganized_data.mjs +1 -1
  35. package/lib/scripts/document_dossiers_legislatifs.js +3 -3
  36. package/lib/scripts/document_dossiers_legislatifs.mjs +2 -2
  37. package/lib/scripts/parse_textes_lois.js +2 -1
  38. package/lib/scripts/reorganize_data.js +1 -1
  39. package/lib/scripts/reorganize_data.mjs +1 -1
  40. package/lib/scripts/retrieve_senateurs_photos.js +1 -2
  41. package/lib/scripts/retrieve_senateurs_photos.mjs +1 -2
  42. package/lib/scripts/retrieve_textes_lois.js +3 -3
  43. package/lib/scripts/retrieve_textes_lois.mjs +1 -1
  44. package/lib/scripts/validate_json.js +3 -3
  45. package/lib/scripts/validate_json.mjs +2 -2
  46. package/lib/types/acteurs_et_organes.d.ts +32 -32
  47. package/lib/types/acteurs_et_organes.js +3 -3
  48. package/lib/types/acteurs_et_organes.mjs +1 -1
  49. package/lib/types/agendas.d.ts +5 -5
  50. package/lib/types/agendas.js +3 -3
  51. package/lib/types/agendas.mjs +1 -1
  52. package/lib/types/amendements.d.ts +1 -1
  53. package/lib/types/amendements.js +3 -3
  54. package/lib/types/amendements.mjs +1 -1
  55. package/lib/types/debats.js +3 -3
  56. package/lib/types/debats.mjs +1 -1
  57. package/lib/types/dossiers_legislatifs.js +3 -3
  58. package/lib/types/dossiers_legislatifs.mjs +1 -1
  59. package/lib/types/questions.js +3 -3
  60. package/lib/types/questions.mjs +1 -1
  61. package/lib/types/scrutins.js +3 -3
  62. package/lib/types/scrutins.mjs +1 -1
  63. package/package.json +3 -3
@@ -1,9 +1,7 @@
1
1
  import assert from "assert";
2
- // Note: "/index.js" added to imports, because of issue
3
- // https://github.com/date-fns/date-fns/issues/2964
4
- import formatISO from "date-fns/formatISO/index.js";
5
- import frLocale from "date-fns/locale/fr/index.js";
6
- import parseDate from "date-fns/parse/index.js";
2
+ import { formatISO } from "date-fns/formatISO";
3
+ import { fr as frLocale } from "date-fns/locale/fr";
4
+ import { parse as parseDate } from "date-fns/parse";
7
5
  import deepEqual from "deep-equal";
8
6
  import fs from "fs-extra";
9
7
  import frontMatter from "front-matter";
@@ -166,4 +164,4 @@ export async function* iterRechercheRawAmendements(amendementsSearchCacheDir, ur
166
164
  url = new URL(urlPath, "https://www.assemblee-nationale.fr/").toString();
167
165
  }
168
166
  }
169
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhc3NlcnQiLCJmb3JtYXRJU08iLCJmckxvY2FsZSIsInBhcnNlRGF0ZSIsImRlZXBFcXVhbCIsImZzIiwiZnJvbnRNYXR0ZXIiLCJqc1lhbWwiLCJwYXJzZSIsInBhcnNlSHRtbCIsInBhdGgiLCJjbGVhbkFtZW5kZW1lbnQiLCJDb252ZXJ0IiwiQW1lbmRlbWVudHNDb252ZXJ0IiwiaXRlclJlY2hlcmNoZUFtZW5kZW1lbnRzIiwiYW1lbmRlbWVudHNTZWFyY2hDYWNoZURpciIsInVybCIsImluY3JlbWVudGFsIiwibWluRGF0ZURlcG90IiwibWluRGF0ZUV4YW1lbiIsIm9wdGlvbnMiLCJhbWVuZGVtZW50VXJsUGF0aCIsImFtZW5kZW1lbnQiLCJpdGVyUmVjaGVyY2hlUmF3QW1lbmRlbWVudHMiLCJ0b0FtZW5kZW1lbnQiLCJKU09OIiwic3RyaW5naWZ5IiwiZW5zdXJlRGlyIiwic3RyaWN0RXF1YWwiLCJleGVjIiwibm90U3RyaWN0RXF1YWwiLCJpbmNsdWRlcyIsImFtZW5kZW1lbnROdW1iZXIiLCJpdGVyU2VhcmNoUGFnZXMiLCJ2ZXJib3NlIiwiY29uc29sZSIsImxvZyIsInJlc3BvbnNlIiwiZmV0Y2giLCJvayIsInN0YXR1cyIsInN0YXR1c1RleHQiLCJwYWdlIiwidGV4dCIsImh0bWwiLCJxdWVyeVNlbGVjdG9yIiwiYW1lbmRlbWVudHNDb3VudERpdiIsImFtZW5kZW1lbnRzQ291bnQiLCJwYXJzZUludCIsImFtZW5kZW1lbnRzRGl2IiwiYW1lbmRlbWVudHNUYWJsZSIsInRmb290VHIiLCJ0Zm9vdFRyQ2VsbHMiLCJxdWVyeVNlbGVjdG9yQWxsIiwibWFwIiwiY2VsbCIsImFtZW5kZW1lbnRzVHIiLCJsZW5ndGgiLCJhbWVuZGVtZW50VHIiLCJhbWVuZGVtZW50VGRMaXN0Iiwib3V0ZXJIVE1MIiwiZGF0ZURlcG90VGQiLCJkYXRlRGVwb3QiLCJEYXRlIiwibG9jYWxlIiwicmVwcmVzZW50YXRpb24iLCJkYXRlRXhhbWVuVGQiLCJkYXRlRXhhbWVuIiwiZ2V0QXR0cmlidXRlIiwidW5kZWZpbmVkIiwiYW1lbmRlbWVudFVybFBhdGhTcGxpdHRlZCIsInNwbGl0IiwiYW1lbmRlbWVudFNlYXJjaENhY2hlRmlsZVBhdGgiLCJqb2luIiwic2xpY2UiLCJkaXJuYW1lIiwiZXhpc3RpbmdBbWVuZGVtZW50U2VhcmNoQ2FjaGUiLCJwYXRoRXhpc3RzIiwicmVhZEZpbGUiLCJhbWVuZGVtZW50VHJPdXRlckh0bWwiLCJhbWVuZGVtZW50U2VhcmNoQ2FjaGUiLCJkdW1wIiwicG9zaXRpb24iLCJzZWFyY2giLCJyZXBsYWNlIiwic29ydEtleXMiLCJib2R5IiwiYW1lbmRlbWVudEh0bWxVcmwiLCJVUkwiLCJ0b1N0cmluZyIsImFtZW5kZW1lbnRIdG1sUmVzcG9uc2UiLCJhbWVuZGVtZW50SHRtbFBhZ2UiLCJhbWVuZGVtZW50SHRtbCIsImZvcm1hdHNMaSIsImpzb25MaSIsImZpbmQiLCJmb3JtYXRMaSIsImZvcm1hdFNwYW4iLCJqc29uQSIsImFtZW5kZW1lbnRKc29uVXJsUGF0aCIsImFtZW5kZW1lbnRKc29uVXJsIiwiYW1lbmRlbWVudEpzb25SZXNwb25zZSIsImpzb24iLCJ3cml0ZUZpbGUiLCJwYWdpbmF0aW9uQSIsInVybFBhdGgiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvcGFyc2Vycy9yZWNoZXJjaGVfYW1lbmRlbWVudHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tIFwiYXNzZXJ0XCJcbi8vIE5vdGU6IFwiL2luZGV4LmpzXCIgYWRkZWQgdG8gaW1wb3J0cywgYmVjYXVzZSBvZiBpc3N1ZVxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2lzc3Vlcy8yOTY0XG5pbXBvcnQgZm9ybWF0SVNPIGZyb20gXCJkYXRlLWZucy9mb3JtYXRJU08vaW5kZXguanNcIlxuaW1wb3J0IGZyTG9jYWxlIGZyb20gXCJkYXRlLWZucy9sb2NhbGUvZnIvaW5kZXguanNcIlxuaW1wb3J0IHBhcnNlRGF0ZSBmcm9tIFwiZGF0ZS1mbnMvcGFyc2UvaW5kZXguanNcIlxuaW1wb3J0IGRlZXBFcXVhbCBmcm9tIFwiZGVlcC1lcXVhbFwiXG5pbXBvcnQgZnMgZnJvbSBcImZzLWV4dHJhXCJcbmltcG9ydCBmcm9udE1hdHRlciBmcm9tIFwiZnJvbnQtbWF0dGVyXCJcbmltcG9ydCBqc1lhbWwgZnJvbSBcImpzLXlhbWxcIlxuaW1wb3J0IHsgcGFyc2UgYXMgcGFyc2VIdG1sIH0gZnJvbSBcIm5vZGUtaHRtbC1wYXJzZXJcIlxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuXG5pbXBvcnQgeyBjbGVhbkFtZW5kZW1lbnQgfSBmcm9tIFwiLi4vY2xlYW5lcnNcIlxuaW1wb3J0IHsgQW1lbmRlbWVudCBhcyBSYXdBbWVuZGVtZW50IH0gZnJvbSBcIi4uL3Jhd190eXBlcy9hbWVuZGVtZW50c1wiXG5pbXBvcnQgeyBBbWVuZGVtZW50LCBDb252ZXJ0IGFzIEFtZW5kZW1lbnRzQ29udmVydCB9IGZyb20gXCIuLi90eXBlcy9hbWVuZGVtZW50c1wiXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiogaXRlclJlY2hlcmNoZUFtZW5kZW1lbnRzKFxuICBhbWVuZGVtZW50c1NlYXJjaENhY2hlRGlyOiBzdHJpbmcsXG4gIHVybDogc3RyaW5nLFxuICBpbmNyZW1lbnRhbDogYm9vbGVhbixcbiAgbWluRGF0ZURlcG90Pzogc3RyaW5nIHwgbnVsbCxcbiAgbWluRGF0ZUV4YW1lbj86IHN0cmluZyB8IG51bGwsXG4gIG9wdGlvbnM6IHsgc2lsZW50PzogYm9vbGVhbjsgdmVyYm9zZT86IGJvb2xlYW4gfSA9IHt9LFxuKTogQXN5bmNHZW5lcmF0b3I8W3N0cmluZywgQW1lbmRlbWVudF0sIHZvaWQsIHVua25vd24+IHtcbiAgZm9yIGF3YWl0IChjb25zdCBbXG4gICAgYW1lbmRlbWVudFVybFBhdGgsXG4gICAgYW1lbmRlbWVudCxcbiAgXSBvZiBpdGVyUmVjaGVyY2hlUmF3QW1lbmRlbWVudHMoXG4gICAgYW1lbmRlbWVudHNTZWFyY2hDYWNoZURpcixcbiAgICB1cmwsXG4gICAgaW5jcmVtZW50YWwsXG4gICAgbWluRGF0ZURlcG90LFxuICAgIG1pbkRhdGVFeGFtZW4sXG4gICAgb3B0aW9ucyxcbiAgKSkge1xuICAgIGNsZWFuQW1lbmRlbWVudChhbWVuZGVtZW50KVxuICAgIC8vIERvdWJsZSBjb252ZXJzaW9uLCB0byBjb252ZXJ0IHN0cmluZ3MgdG8gZGF0ZXMuXG4gICAgeWllbGQgW1xuICAgICAgYW1lbmRlbWVudFVybFBhdGgsXG4gICAgICBBbWVuZGVtZW50c0NvbnZlcnQudG9BbWVuZGVtZW50KEpTT04uc3RyaW5naWZ5KGFtZW5kZW1lbnQpKSxcbiAgICBdXG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uKiBpdGVyUmVjaGVyY2hlUmF3QW1lbmRlbWVudHMoXG4gIGFtZW5kZW1lbnRzU2VhcmNoQ2FjaGVEaXI6IHN0cmluZyxcbiAgdXJsOiBzdHJpbmcsXG4gIGluY3JlbWVudGFsOiBib29sZWFuLFxuICBtaW5EYXRlRGVwb3Q/OiBzdHJpbmcgfCBudWxsLFxuICBtaW5EYXRlRXhhbWVuPzogc3RyaW5nIHwgbnVsbCxcbiAgb3B0aW9uczogeyBzaWxlbnQ/OiBib29sZWFuOyB2ZXJib3NlPzogYm9vbGVhbiB9ID0ge30sXG4pOiBBc3luY0dlbmVyYXRvcjxbc3RyaW5nLCBSYXdBbWVuZGVtZW50XSwgdm9pZCwgdW5rbm93bj4ge1xuICBhd2FpdCBmcy5lbnN1cmVEaXIoYW1lbmRlbWVudHNTZWFyY2hDYWNoZURpcilcblxuICBhc3NlcnQuc3RyaWN0RXF1YWwoXG4gICAgL1s/Jl1kYXRlX2RlcG90PS8uZXhlYyh1cmwpLFxuICAgIG51bGwsXG4gICAgYFVSTCAke3VybH0gYWxyZWFkeSBjb250YWlucyBhIGRlcG9zaXQgZGF0ZWAsXG4gIClcbiAgYXNzZXJ0LnN0cmljdEVxdWFsKFxuICAgIC9bPyZdb3JkZXI9Ly5leGVjKHVybCksXG4gICAgbnVsbCxcbiAgICBgVVJMICR7dXJsfSBhbHJlYWR5IGNvbnRhaW5zIGEgc29ydCBvcmRlcmAsXG4gIClcbiAgYXNzZXJ0LnN0cmljdEVxdWFsKFxuICAgIC9bPyZdcGFnZT0vLmV4ZWModXJsKSxcbiAgICBudWxsLFxuICAgIGBVUkwgJHt1cmx9IGFscmVhZHkgY29udGFpbnMgYSBwYWdlIG51bWJlcmAsXG4gIClcbiAgaWYgKGluY3JlbWVudGFsKSB7XG4gICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKFxuICAgICAgL1s/Jl1ldGF0PS8uZXhlYyh1cmwpLFxuICAgICAgbnVsbCxcbiAgICAgIGBJbiBpbmNyZW1lbnRhbCBtb2RlLCBVUkwgJHt1cmx9IG11c3QgY29udGFpbiBhbiBcImV0YXRcIiBxdWVyeSBwYXJhbWV0ZXJgLFxuICAgIClcbiAgfVxuICB1cmwgKz0gKHVybC5pbmNsdWRlcyhcIj9cIikgPyBcIiZcIiA6IFwiP1wiKSArIFwib3JkZXI9ZGF0ZV9kZXBvdCxkZXNjJnBhZ2U9MVwiXG5cbiAgaWYgKG1pbkRhdGVEZXBvdCAhPSBudWxsKSB7XG4gICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKFxuICAgICAgL1xcZHs0fS1cXGR7Mn0tXFxkezJ9Ly5leGVjKG1pbkRhdGVEZXBvdCksXG4gICAgICBudWxsLFxuICAgICAgYEludmFsaWQgZm9ybWF0IGZvciBtaW5pbXVtIGRhdGU6ICR7bWluRGF0ZURlcG90fWAsXG4gICAgKVxuICB9XG5cbiAgbGV0IGFtZW5kZW1lbnROdW1iZXIgPSAwXG4gIGl0ZXJTZWFyY2hQYWdlczogd2hpbGUgKHRydWUpIHtcbiAgICBpZiAob3B0aW9ucy52ZXJib3NlKSB7XG4gICAgICBjb25zb2xlLmxvZyhgRmV0Y2hpbmcgYW1lbmRlbWVudHMgc2VhcmNoIHBhZ2UgYXQgJHt1cmx94oCmYClcbiAgICB9XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwpXG4gICAgYXNzZXJ0KFxuICAgICAgcmVzcG9uc2Uub2ssXG4gICAgICBgUmV0cmlldmFsIG9mIHNlYXJjaCBwYWdlIGF0ICR7dXJsfSBmYWlsZWQgd2l0aCBlcnJvcjogJHtyZXNwb25zZS5zdGF0dXN9ICR7cmVzcG9uc2Uuc3RhdHVzVGV4dH1gLFxuICAgIClcbiAgICBjb25zdCBwYWdlID0gYXdhaXQgcmVzcG9uc2UudGV4dCgpXG4gICAgY29uc3QgaHRtbCA9IHBhcnNlSHRtbChwYWdlKVxuICAgIGlmIChodG1sLnF1ZXJ5U2VsZWN0b3IoXCJkaXYubm8tcmVzdWx0XCIpICE9PSBudWxsKSB7XG4gICAgICBicmVha1xuICAgIH1cbiAgICBjb25zdCBhbWVuZGVtZW50c0NvdW50RGl2ID0gaHRtbC5xdWVyeVNlbGVjdG9yKFwiZGl2Lm1pcnJvci1jYXJkLXN1YnRpdGxlXCIpXG4gICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKGFtZW5kZW1lbnRzQ291bnREaXYsIG51bGwpXG4gICAgY29uc3QgYW1lbmRlbWVudHNDb3VudCA9IHBhcnNlSW50KC9cXGQrLy5leGVjKGFtZW5kZW1lbnRzQ291bnREaXYhLnRleHQpIVswXSlcbiAgICBjb25zdCBhbWVuZGVtZW50c0RpdiA9IGh0bWwucXVlcnlTZWxlY3RvcihcbiAgICAgIFwiZGl2LmFtZW5kZW1lbnQtbGlzdC0tcmVzdWx0cy10YWJsZVwiLFxuICAgIClcbiAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwoYW1lbmRlbWVudHNEaXYsIG51bGwpXG4gICAgY29uc3QgYW1lbmRlbWVudHNUYWJsZSA9IGFtZW5kZW1lbnRzRGl2IS5xdWVyeVNlbGVjdG9yKFwidGFibGVcIilcbiAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwoYW1lbmRlbWVudHNUYWJsZSwgbnVsbClcbiAgICBjb25zdCB0Zm9vdFRyID0gYW1lbmRlbWVudHNUYWJsZSEucXVlcnlTZWxlY3RvcihcInRmb290ID4gdHJcIilcbiAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwodGZvb3RUciwgbnVsbClcbiAgICBjb25zdCB0Zm9vdFRyQ2VsbHMgPSB0Zm9vdFRyIVxuICAgICAgLnF1ZXJ5U2VsZWN0b3JBbGwoXCJ0ZCwgdGhcIilcbiAgICAgIC5tYXAoKGNlbGwpID0+IGNlbGwudGV4dClcbiAgICBhc3NlcnQoXG4gICAgICBkZWVwRXF1YWwodGZvb3RUckNlbGxzLCBbXG4gICAgICAgIFwiXCIsXG4gICAgICAgIFwibsKwXCIsXG4gICAgICAgIFwiRG9zc2llciBsw6lnaXNsYXRpZlwiLFxuICAgICAgICBcIkVtcGxhY2VtZW50XCIsXG4gICAgICAgIFwiQXV0ZXVyXCIsXG4gICAgICAgIFwiw4l0YXRcIixcbiAgICAgICAgXCJTb3J0XCIsXG4gICAgICAgIFwiRGF0ZSBkJ2V4YW1lblwiLFxuICAgICAgICBcIkV4YW1pbsOpIHBhclwiLFxuICAgICAgICBcIlRleHRlIHZpc8OpXCIsXG4gICAgICAgIFwiRGF0ZSBkZSBkw6lww7R0XCIsXG4gICAgICBdKSxcbiAgICAgIGBVbmV4cGVjdGVkIGNvbHVtbnMgaW4gJHtKU09OLnN0cmluZ2lmeSh0Zm9vdFRyQ2VsbHMsIG51bGwsIDIpfWAsXG4gICAgKVxuICAgIGNvbnN0IGFtZW5kZW1lbnRzVHIgPSBhbWVuZGVtZW50c1RhYmxlIS5xdWVyeVNlbGVjdG9yQWxsKFwidGJvZHkgPiB0clwiKVxuICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChhbWVuZGVtZW50c1RyLmxlbmd0aCwgMClcbiAgICBmb3IgKGNvbnN0IGFtZW5kZW1lbnRUciBvZiBhbWVuZGVtZW50c1RyKSB7XG4gICAgICBhbWVuZGVtZW50TnVtYmVyKytcblxuICAgICAgaWYgKG1pbkRhdGVEZXBvdCAhPSBudWxsIHx8IG1pbkRhdGVFeGFtZW4gIT0gbnVsbCkge1xuICAgICAgICBjb25zdCBhbWVuZGVtZW50VGRMaXN0ID0gYW1lbmRlbWVudFRyLnF1ZXJ5U2VsZWN0b3JBbGwoXCJ0ZFwiKVxuICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoXG4gICAgICAgICAgYW1lbmRlbWVudFRkTGlzdC5sZW5ndGgsXG4gICAgICAgICAgMTEsXG4gICAgICAgICAgYFVuZXhwZWN0ZWQgbnVtYmVyIG9mIGNvbHVtbnMgaW4gYW1lbmRtZW50IHJvdzogJHthbWVuZGVtZW50VHIub3V0ZXJIVE1MfWAsXG4gICAgICAgIClcbiAgICAgICAgaWYgKG1pbkRhdGVEZXBvdCAhPSBudWxsKSB7XG4gICAgICAgICAgY29uc3QgZGF0ZURlcG90VGQgPSBhbWVuZGVtZW50VGRMaXN0WzEwXVxuICAgICAgICAgIGNvbnN0IGRhdGVEZXBvdCA9IGZvcm1hdElTTyhcbiAgICAgICAgICAgIHBhcnNlRGF0ZShkYXRlRGVwb3RUZC50ZXh0LCBcImQgTU1NTSB5XCIsIG5ldyBEYXRlKCksIHtcbiAgICAgICAgICAgICAgbG9jYWxlOiBmckxvY2FsZSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgeyByZXByZXNlbnRhdGlvbjogXCJkYXRlXCIgfSxcbiAgICAgICAgICApXG4gICAgICAgICAgaWYgKGRhdGVEZXBvdCA8IG1pbkRhdGVEZXBvdCkge1xuICAgICAgICAgICAgLy8gU2luY2UgdGhlIGFtZW5kbWVudHMgYXJlIHNvcnRlZCBieSBkZXBvc2l0IGRhdGUsIG9uY2UgYW4gYW1lbmRtZW50XG4gICAgICAgICAgICAvLyB3aXRoIGFuIG9sZCBkZXBvc2l0IGRhdGUgaXMgZW5jb3VudGVyZWQsIHRoZSBmdWxsIHNlYXJjaCBjYW4gYmUgc3RvcHBlZC5cbiAgICAgICAgICAgIGJyZWFrIGl0ZXJTZWFyY2hQYWdlc1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAobWluRGF0ZUV4YW1lbiAhPSBudWxsKSB7XG4gICAgICAgICAgY29uc3QgZGF0ZUV4YW1lblRkID0gYW1lbmRlbWVudFRkTGlzdFs3XVxuICAgICAgICAgIGlmIChkYXRlRXhhbWVuVGQudGV4dCkge1xuICAgICAgICAgICAgY29uc3QgZGF0ZUV4YW1lbiA9IGZvcm1hdElTTyhcbiAgICAgICAgICAgICAgcGFyc2VEYXRlKGRhdGVFeGFtZW5UZC50ZXh0LCBcImQgTU1NTSB5XCIsIG5ldyBEYXRlKCksIHtcbiAgICAgICAgICAgICAgICBsb2NhbGU6IGZyTG9jYWxlLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgeyByZXByZXNlbnRhdGlvbjogXCJkYXRlXCIgfSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIGlmIChkYXRlRXhhbWVuIDwgbWluRGF0ZUV4YW1lbikge1xuICAgICAgICAgICAgICAvLyBUaGlzIGFtZW5kbWVudCBoYXMgYmVlbiBkaXNjdXNzZWQgc2luY2UgYSBmZXcgZGF5cy5cbiAgICAgICAgICAgICAgLy8gPT4gSWdub3JlIGl0LCBiZWNhdXNlIGl0IHNob3VsZCBiZSBpbiBBc3NlbWJsw6llIG9wZW4gZGF0YS5cbiAgICAgICAgICAgICAgY29udGludWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgYW1lbmRlbWVudFVybFBhdGggPSBhbWVuZGVtZW50VHIuZ2V0QXR0cmlidXRlKFwiZGF0YS1ocmVmXCIpXG4gICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwoYW1lbmRlbWVudFVybFBhdGgsIHVuZGVmaW5lZClcbiAgICAgIGNvbnN0IGFtZW5kZW1lbnRVcmxQYXRoU3BsaXR0ZWQgPSBhbWVuZGVtZW50VXJsUGF0aCEuc3BsaXQoXCIvXCIpXG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoXG4gICAgICAgIGFtZW5kZW1lbnRVcmxQYXRoU3BsaXR0ZWRbMF0sXG4gICAgICAgIFwiXCIsXG4gICAgICAgIGBVbmV4cGVjdGVkIFVSTCBwYXRoIGZvciBhbWVuZGVtZW50OiAke2FtZW5kZW1lbnRVcmxQYXRofWAsXG4gICAgICApXG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoXG4gICAgICAgIGFtZW5kZW1lbnRVcmxQYXRoU3BsaXR0ZWRbMV0sXG4gICAgICAgIFwiZHluXCIsXG4gICAgICAgIGBVbmV4cGVjdGVkIFVSTCBwYXRoIGZvciBhbWVuZGVtZW50OiAke2FtZW5kZW1lbnRVcmxQYXRofWAsXG4gICAgICApXG4gICAgICBjb25zdCBhbWVuZGVtZW50U2VhcmNoQ2FjaGVGaWxlUGF0aCA9XG4gICAgICAgIHBhdGguam9pbihcbiAgICAgICAgICBhbWVuZGVtZW50c1NlYXJjaENhY2hlRGlyLFxuICAgICAgICAgIC4uLmFtZW5kZW1lbnRVcmxQYXRoU3BsaXR0ZWQuc2xpY2UoMiksXG4gICAgICAgICkgKyBcIi5odG1sXCJcbiAgICAgIGF3YWl0IGZzLmVuc3VyZURpcihwYXRoLmRpcm5hbWUoYW1lbmRlbWVudFNlYXJjaENhY2hlRmlsZVBhdGgpKVxuICAgICAgY29uc3QgZXhpc3RpbmdBbWVuZGVtZW50U2VhcmNoQ2FjaGUgPSAoYXdhaXQgZnMucGF0aEV4aXN0cyhcbiAgICAgICAgYW1lbmRlbWVudFNlYXJjaENhY2hlRmlsZVBhdGgsXG4gICAgICApKVxuICAgICAgICA/IGF3YWl0IGZzLnJlYWRGaWxlKGFtZW5kZW1lbnRTZWFyY2hDYWNoZUZpbGVQYXRoLCBcInV0ZjhcIilcbiAgICAgICAgOiBudWxsXG4gICAgICBjb25zdCBhbWVuZGVtZW50VHJPdXRlckh0bWwgPSBhbWVuZGVtZW50VHIub3V0ZXJIVE1MXG4gICAgICBjb25zdCBhbWVuZGVtZW50U2VhcmNoQ2FjaGUgPSBgLS0tXFxuJHtqc1lhbWwuZHVtcChcbiAgICAgICAge1xuICAgICAgICAgIHBvc2l0aW9uOiBhbWVuZGVtZW50c0NvdW50IC0gYW1lbmRlbWVudE51bWJlcixcbiAgICAgICAgICBzZWFyY2g6IHVybC5yZXBsYWNlKC8mcGFnZT1bXFxkXSsvLCBcIlwiKSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHNvcnRLZXlzOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgKX0tLS1cXG5cXG4ke2FtZW5kZW1lbnRUck91dGVySHRtbH1gXG4gICAgICBpZiAoYW1lbmRlbWVudFNlYXJjaENhY2hlID09PSBleGlzdGluZ0FtZW5kZW1lbnRTZWFyY2hDYWNoZSkge1xuICAgICAgICBpZiAoaW5jcmVtZW50YWwpIHtcbiAgICAgICAgICAvLyBUaGUgc2FtZSA8dHI+IGlzIGFscmVhZHkgaW4gY2FjaGUgYW5kIGluIHRoZSBzYW1lIHBvc2l0aW9uLlxuICAgICAgICAgIC8vIEFzc3VtZSB0aGF0IGZvbGxvd2luZyBhbWVuZG1lbnRzIGFyZSBub3QgY2hhbmdlZCBhbmQgc3RvcCBsb29raW5nXG4gICAgICAgICAgLy8gZm9yIGFtZW5kbWVudHMgdG8gdXBzZXJ0LlxuICAgICAgICAgIGJyZWFrIGl0ZXJTZWFyY2hQYWdlc1xuICAgICAgICB9XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIGV4aXN0aW5nQW1lbmRlbWVudFNlYXJjaENhY2hlICE9PSBudWxsICYmXG4gICAgICAgIGZyb250TWF0dGVyKGV4aXN0aW5nQW1lbmRlbWVudFNlYXJjaENhY2hlKS5ib2R5ID09PVxuICAgICAgICAgIGFtZW5kZW1lbnRUck91dGVySHRtbFxuICAgICAgKSB7XG4gICAgICAgIC8vIFRoZSBzYW1lIDx0cj4gaXMgYWxyZWFkeSBpbiBjYWNoZSwgYnV0IGluIGEgZGlmZmVyZW50IHBvc2l0aW9uLlxuICAgICAgICAvLyBBc3N1bWUgdGhlIGFtZW5kbWVudCBpcyB1bmNoYW5nZWQuXG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAob3B0aW9ucy52ZXJib3NlKSB7XG4gICAgICAgIGlmIChleGlzdGluZ0FtZW5kZW1lbnRTZWFyY2hDYWNoZSA9PT0gbnVsbCkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgYEFkZGluZyBhbWVuZGVtZW50IHNlYXJjaCBjYWNoZTogJHthbWVuZGVtZW50U2VhcmNoQ2FjaGVGaWxlUGF0aH3igKZgLFxuICAgICAgICAgIClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICAgIGBVcGRhdGluZyBhbWVuZGVtZW50IHNlYXJjaCBjYWNoZTogJHthbWVuZGVtZW50U2VhcmNoQ2FjaGVGaWxlUGF0aH3igKZgLFxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY29uc3QgYW1lbmRlbWVudEh0bWxVcmwgPSBuZXcgVVJMKFxuICAgICAgICBhbWVuZGVtZW50VXJsUGF0aCEsXG4gICAgICAgIFwiaHR0cHM6Ly93d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9cIixcbiAgICAgICkudG9TdHJpbmcoKVxuICAgICAgY29uc3QgYW1lbmRlbWVudEh0bWxSZXNwb25zZSA9IGF3YWl0IGZldGNoKGFtZW5kZW1lbnRIdG1sVXJsKVxuICAgICAgaWYgKGFtZW5kZW1lbnRIdG1sUmVzcG9uc2Uuc3RhdHVzID09PSA0MDQpIHtcbiAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgYEFtZW5kZW1lbnQgSFRNTCBwYWdlIG5vdCBmb3VuZCBhdCAke2FtZW5kZW1lbnRIdG1sVXJsfS4gU2tpcHBpbmcuYCxcbiAgICAgICAgKVxuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgYXNzZXJ0KFxuICAgICAgICBhbWVuZGVtZW50SHRtbFJlc3BvbnNlLm9rLFxuICAgICAgICBgUmV0cmlldmFsIG9mIGFtZW5kZW1lbnQgSFRNTCBwYWdlIGF0ICR7YW1lbmRlbWVudEh0bWxVcmx9IGZhaWxlZCB3aXRoIGVycm9yOiAke2FtZW5kZW1lbnRIdG1sUmVzcG9uc2Uuc3RhdHVzfSAke2FtZW5kZW1lbnRIdG1sUmVzcG9uc2Uuc3RhdHVzVGV4dH1gLFxuICAgICAgKVxuICAgICAgY29uc3QgYW1lbmRlbWVudEh0bWxQYWdlID0gYXdhaXQgYW1lbmRlbWVudEh0bWxSZXNwb25zZS50ZXh0KClcbiAgICAgIGNvbnN0IGFtZW5kZW1lbnRIdG1sID0gcGFyc2VIdG1sKGFtZW5kZW1lbnRIdG1sUGFnZSlcbiAgICAgIGNvbnN0IGZvcm1hdHNMaSA9IGFtZW5kZW1lbnRIdG1sLnF1ZXJ5U2VsZWN0b3JBbGwoXG4gICAgICAgIFwibGkubWlycm9yLWNhcmQtaGVhZGVyLS1vcHRpb25zLS1jb250ZW50LS1pdGVtXCIsXG4gICAgICApXG4gICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwoZm9ybWF0c0xpLmxlbmd0aCwgMClcbiAgICAgIGNvbnN0IGpzb25MaSA9IGZvcm1hdHNMaS5maW5kKChmb3JtYXRMaSkgPT4ge1xuICAgICAgICBjb25zdCBmb3JtYXRTcGFuID0gZm9ybWF0TGkucXVlcnlTZWxlY3RvcihcImEgPiBzcGFuXCIpXG4gICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChcbiAgICAgICAgICBmb3JtYXRTcGFuLFxuICAgICAgICAgIG51bGwsXG4gICAgICAgICAgYE5vIDxzcGFuPiBpbiA8YT4gZm91bmQgaW4gJHtmb3JtYXRMaS50b1N0cmluZygpfWAsXG4gICAgICAgIClcbiAgICAgICAgcmV0dXJuIGZvcm1hdFNwYW4hLnRleHQgPT09IFwiVmVyc2lvbiBKU09OXCJcbiAgICAgIH0pXG4gICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwoXG4gICAgICAgIGpzb25MaSxcbiAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICBgTm8gSlNPTiB2ZXJzaW9uIGZvdW5kIGZvciBhbWVuZGVtZW50IGF0ICR7YW1lbmRlbWVudEh0bWxVcmx9YCxcbiAgICAgIClcbiAgICAgIGNvbnN0IGpzb25BID0ganNvbkxpIS5xdWVyeVNlbGVjdG9yKFwiYVwiKVxuICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKFxuICAgICAgICBqc29uQSxcbiAgICAgICAgbnVsbCxcbiAgICAgICAgYE5vIDxhPiBmb3VuZCBpbiAke2pzb25MaSEudG9TdHJpbmcoKX1gLFxuICAgICAgKVxuICAgICAgY29uc3QgYW1lbmRlbWVudEpzb25VcmxQYXRoID0ganNvbkEhLmdldEF0dHJpYnV0ZShcImhyZWZcIilcbiAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChcbiAgICAgICAgYW1lbmRlbWVudEpzb25VcmxQYXRoLFxuICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgIGBObyBVUkwgZm91bmQgZm9yIEpTT04gdmVyc2lvbiBvZiBhbWVuZGVtZW50OiAke2pzb25MaSEudG9TdHJpbmcoKX1gLFxuICAgICAgKVxuICAgICAgY29uc3QgYW1lbmRlbWVudEpzb25VcmwgPSBuZXcgVVJMKFxuICAgICAgICBhbWVuZGVtZW50SnNvblVybFBhdGghLFxuICAgICAgICBcImh0dHBzOi8vd3d3LmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvXCIsXG4gICAgICApLnRvU3RyaW5nKClcbiAgICAgIGNvbnN0IGFtZW5kZW1lbnRKc29uUmVzcG9uc2UgPSBhd2FpdCBmZXRjaChhbWVuZGVtZW50SnNvblVybClcbiAgICAgIGFzc2VydChcbiAgICAgICAgYW1lbmRlbWVudEpzb25SZXNwb25zZS5vayxcbiAgICAgICAgYFJldHJpZXZhbCBvZiBhbWVuZGVtZW50IEpTT04gcGFnZSBhdCAke2FtZW5kZW1lbnRKc29uVXJsfSBmYWlsZWQgd2l0aCBlcnJvcjogJHthbWVuZGVtZW50SnNvblJlc3BvbnNlLnN0YXR1c30gJHthbWVuZGVtZW50SnNvblJlc3BvbnNlLnN0YXR1c1RleHR9YCxcbiAgICAgIClcbiAgICAgIGNvbnN0IGFtZW5kZW1lbnQgPSBhd2FpdCBhbWVuZGVtZW50SnNvblJlc3BvbnNlLmpzb24oKVxuICAgICAgeWllbGQgW2FtZW5kZW1lbnRVcmxQYXRoISwgYW1lbmRlbWVudF1cblxuICAgICAgLy8gU2VhcmNoQ2FjaGUgbXVzdCBiZSB3cml0dGVuIGF0IHRoZSBlbmQgdG8gZW5zdXJlIHRoYXQgZXZlcnl0aGluZyBpcyBpbiBhIGNvbnNpc3RlbnQgc3RhdGUsXG4gICAgICAvLyBldmVuIGlmIHNjcmlwdCBmYWlscyBhYnJ1cHRseS5cbiAgICAgIGF3YWl0IGZzLndyaXRlRmlsZShcbiAgICAgICAgYW1lbmRlbWVudFNlYXJjaENhY2hlRmlsZVBhdGgsXG4gICAgICAgIGFtZW5kZW1lbnRTZWFyY2hDYWNoZSxcbiAgICAgICAgXCJ1dGY4XCIsXG4gICAgICApXG4gICAgfVxuXG4gICAgY29uc3QgcGFnaW5hdGlvbkEgPSBodG1sLnF1ZXJ5U2VsZWN0b3IoXG4gICAgICBcImRpdi5hbi1wYWdpbmF0aW9uLS1pdGVtID4gaS5hbi1pY29ucy1jaGV2cm9uLXJpZ2h0IH4gYVwiLFxuICAgIClcbiAgICBpZiAocGFnaW5hdGlvbkEgPT09IG51bGwpIHtcbiAgICAgIGJyZWFrXG4gICAgfVxuICAgIGNvbnN0IHVybFBhdGggPSBwYWdpbmF0aW9uQS5nZXRBdHRyaWJ1dGUoXCJocmVmXCIpXG4gICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKHVybFBhdGgsIHVuZGVmaW5lZClcbiAgICB1cmwgPSBuZXcgVVJMKHVybFBhdGghLCBcImh0dHBzOi8vd3d3LmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvXCIpLnRvU3RyaW5nKClcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxNQUFNLE1BQU0sUUFBUTtBQUMzQjtBQUNBO0FBQ0EsT0FBT0MsU0FBUyxNQUFNLDZCQUE2QjtBQUNuRCxPQUFPQyxRQUFRLE1BQU0sNkJBQTZCO0FBQ2xELE9BQU9DLFNBQVMsTUFBTSx5QkFBeUI7QUFDL0MsT0FBT0MsU0FBUyxNQUFNLFlBQVk7QUFDbEMsT0FBT0MsRUFBRSxNQUFNLFVBQVU7QUFDekIsT0FBT0MsV0FBVyxNQUFNLGNBQWM7QUFDdEMsT0FBT0MsTUFBTSxNQUFNLFNBQVM7QUFDNUIsU0FBU0MsS0FBSyxJQUFJQyxTQUFTLFFBQVEsa0JBQWtCO0FBQ3JELE9BQU9DLElBQUksTUFBTSxNQUFNO0FBQUEsU0FFZEMsZUFBZTtBQUFBLFNBRUhDLE9BQU8sSUFBSUMsa0JBQWtCO0FBRWxELE9BQU8sZ0JBQWdCQyx3QkFBd0JBLENBQzdDQyx5QkFBaUMsRUFDakNDLEdBQVcsRUFDWEMsV0FBb0IsRUFDcEJDLFlBQTRCLEVBQzVCQyxhQUE2QixFQUM3QkMsT0FBZ0QsR0FBRyxDQUFDLENBQUMsRUFDQTtFQUNyRCxXQUFXLE1BQU0sQ0FDZkMsaUJBQWlCLEVBQ2pCQyxVQUFVLENBQ1gsSUFBSUMsMkJBQTJCLENBQzlCUix5QkFBeUIsRUFDekJDLEdBQUcsRUFDSEMsV0FBVyxFQUNYQyxZ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
167
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhc3NlcnQiLCJmb3JtYXRJU08iLCJmciIsImZyTG9jYWxlIiwicGFyc2UiLCJwYXJzZURhdGUiLCJkZWVwRXF1YWwiLCJmcyIsImZyb250TWF0dGVyIiwianNZYW1sIiwicGFyc2VIdG1sIiwicGF0aCIsImNsZWFuQW1lbmRlbWVudCIsIkNvbnZlcnQiLCJBbWVuZGVtZW50c0NvbnZlcnQiLCJpdGVyUmVjaGVyY2hlQW1lbmRlbWVudHMiLCJhbWVuZGVtZW50c1NlYXJjaENhY2hlRGlyIiwidXJsIiwiaW5jcmVtZW50YWwiLCJtaW5EYXRlRGVwb3QiLCJtaW5EYXRlRXhhbWVuIiwib3B0aW9ucyIsImFtZW5kZW1lbnRVcmxQYXRoIiwiYW1lbmRlbWVudCIsIml0ZXJSZWNoZXJjaGVSYXdBbWVuZGVtZW50cyIsInRvQW1lbmRlbWVudCIsIkpTT04iLCJzdHJpbmdpZnkiLCJlbnN1cmVEaXIiLCJzdHJpY3RFcXVhbCIsImV4ZWMiLCJub3RTdHJpY3RFcXVhbCIsImluY2x1ZGVzIiwiYW1lbmRlbWVudE51bWJlciIsIml0ZXJTZWFyY2hQYWdlcyIsInZlcmJvc2UiLCJjb25zb2xlIiwibG9nIiwicmVzcG9uc2UiLCJmZXRjaCIsIm9rIiwic3RhdHVzIiwic3RhdHVzVGV4dCIsInBhZ2UiLCJ0ZXh0IiwiaHRtbCIsInF1ZXJ5U2VsZWN0b3IiLCJhbWVuZGVtZW50c0NvdW50RGl2IiwiYW1lbmRlbWVudHNDb3VudCIsInBhcnNlSW50IiwiYW1lbmRlbWVudHNEaXYiLCJhbWVuZGVtZW50c1RhYmxlIiwidGZvb3RUciIsInRmb290VHJDZWxscyIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJtYXAiLCJjZWxsIiwiYW1lbmRlbWVudHNUciIsImxlbmd0aCIsImFtZW5kZW1lbnRUciIsImFtZW5kZW1lbnRUZExpc3QiLCJvdXRlckhUTUwiLCJkYXRlRGVwb3RUZCIsImRhdGVEZXBvdCIsIkRhdGUiLCJsb2NhbGUiLCJyZXByZXNlbnRhdGlvbiIsImRhdGVFeGFtZW5UZCIsImRhdGVFeGFtZW4iLCJnZXRBdHRyaWJ1dGUiLCJ1bmRlZmluZWQiLCJhbWVuZGVtZW50VXJsUGF0aFNwbGl0dGVkIiwic3BsaXQiLCJhbWVuZGVtZW50U2VhcmNoQ2FjaGVGaWxlUGF0aCIsImpvaW4iLCJzbGljZSIsImRpcm5hbWUiLCJleGlzdGluZ0FtZW5kZW1lbnRTZWFyY2hDYWNoZSIsInBhdGhFeGlzdHMiLCJyZWFkRmlsZSIsImFtZW5kZW1lbnRUck91dGVySHRtbCIsImFtZW5kZW1lbnRTZWFyY2hDYWNoZSIsImR1bXAiLCJwb3NpdGlvbiIsInNlYXJjaCIsInJlcGxhY2UiLCJzb3J0S2V5cyIsImJvZHkiLCJhbWVuZGVtZW50SHRtbFVybCIsIlVSTCIsInRvU3RyaW5nIiwiYW1lbmRlbWVudEh0bWxSZXNwb25zZSIsImFtZW5kZW1lbnRIdG1sUGFnZSIsImFtZW5kZW1lbnRIdG1sIiwiZm9ybWF0c0xpIiwianNvbkxpIiwiZmluZCIsImZvcm1hdExpIiwiZm9ybWF0U3BhbiIsImpzb25BIiwiYW1lbmRlbWVudEpzb25VcmxQYXRoIiwiYW1lbmRlbWVudEpzb25VcmwiLCJhbWVuZGVtZW50SnNvblJlc3BvbnNlIiwianNvbiIsIndyaXRlRmlsZSIsInBhZ2luYXRpb25BIiwidXJsUGF0aCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXJzZXJzL3JlY2hlcmNoZV9hbWVuZGVtZW50cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gXCJhc3NlcnRcIlxuaW1wb3J0IHsgZm9ybWF0SVNPIH0gZnJvbSBcImRhdGUtZm5zL2Zvcm1hdElTT1wiXG5pbXBvcnQgeyBmciBhcyBmckxvY2FsZSB9IGZyb20gXCJkYXRlLWZucy9sb2NhbGUvZnJcIlxuaW1wb3J0IHsgcGFyc2UgYXMgcGFyc2VEYXRlIH0gZnJvbSBcImRhdGUtZm5zL3BhcnNlXCJcbmltcG9ydCBkZWVwRXF1YWwgZnJvbSBcImRlZXAtZXF1YWxcIlxuaW1wb3J0IGZzIGZyb20gXCJmcy1leHRyYVwiXG5pbXBvcnQgZnJvbnRNYXR0ZXIgZnJvbSBcImZyb250LW1hdHRlclwiXG5pbXBvcnQganNZYW1sIGZyb20gXCJqcy15YW1sXCJcbmltcG9ydCB7IHBhcnNlIGFzIHBhcnNlSHRtbCB9IGZyb20gXCJub2RlLWh0bWwtcGFyc2VyXCJcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcblxuaW1wb3J0IHsgY2xlYW5BbWVuZGVtZW50IH0gZnJvbSBcIi4uL2NsZWFuZXJzXCJcbmltcG9ydCB7IEFtZW5kZW1lbnQgYXMgUmF3QW1lbmRlbWVudCB9IGZyb20gXCIuLi9yYXdfdHlwZXMvYW1lbmRlbWVudHNcIlxuaW1wb3J0IHsgQW1lbmRlbWVudCwgQ29udmVydCBhcyBBbWVuZGVtZW50c0NvbnZlcnQgfSBmcm9tIFwiLi4vdHlwZXMvYW1lbmRlbWVudHNcIlxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24qIGl0ZXJSZWNoZXJjaGVBbWVuZGVtZW50cyhcbiAgYW1lbmRlbWVudHNTZWFyY2hDYWNoZURpcjogc3RyaW5nLFxuICB1cmw6IHN0cmluZyxcbiAgaW5jcmVtZW50YWw6IGJvb2xlYW4sXG4gIG1pbkRhdGVEZXBvdD86IHN0cmluZyB8IG51bGwsXG4gIG1pbkRhdGVFeGFtZW4/OiBzdHJpbmcgfCBudWxsLFxuICBvcHRpb25zOiB7IHNpbGVudD86IGJvb2xlYW47IHZlcmJvc2U/OiBib29sZWFuIH0gPSB7fSxcbik6IEFzeW5jR2VuZXJhdG9yPFtzdHJpbmcsIEFtZW5kZW1lbnRdLCB2b2lkLCB1bmtub3duPiB7XG4gIGZvciBhd2FpdCAoY29uc3QgW1xuICAgIGFtZW5kZW1lbnRVcmxQYXRoLFxuICAgIGFtZW5kZW1lbnQsXG4gIF0gb2YgaXRlclJlY2hlcmNoZVJhd0FtZW5kZW1lbnRzKFxuICAgIGFtZW5kZW1lbnRzU2VhcmNoQ2FjaGVEaXIsXG4gICAgdXJsLFxuICAgIGluY3JlbWVudGFsLFxuICAgIG1pbkRhdGVEZXBvdCxcbiAgICBtaW5EYXRlRXhhbWVuLFxuICAgIG9wdGlvbnMsXG4gICkpIHtcbiAgICBjbGVhbkFtZW5kZW1lbnQoYW1lbmRlbWVudClcbiAgICAvLyBEb3VibGUgY29udmVyc2lvbiwgdG8gY29udmVydCBzdHJpbmdzIHRvIGRhdGVzLlxuICAgIHlpZWxkIFtcbiAgICAgIGFtZW5kZW1lbnRVcmxQYXRoLFxuICAgICAgQW1lbmRlbWVudHNDb252ZXJ0LnRvQW1lbmRlbWVudChKU09OLnN0cmluZ2lmeShhbWVuZGVtZW50KSksXG4gICAgXVxuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiogaXRlclJlY2hlcmNoZVJhd0FtZW5kZW1lbnRzKFxuICBhbWVuZGVtZW50c1NlYXJjaENhY2hlRGlyOiBzdHJpbmcsXG4gIHVybDogc3RyaW5nLFxuICBpbmNyZW1lbnRhbDogYm9vbGVhbixcbiAgbWluRGF0ZURlcG90Pzogc3RyaW5nIHwgbnVsbCxcbiAgbWluRGF0ZUV4YW1lbj86IHN0cmluZyB8IG51bGwsXG4gIG9wdGlvbnM6IHsgc2lsZW50PzogYm9vbGVhbjsgdmVyYm9zZT86IGJvb2xlYW4gfSA9IHt9LFxuKTogQXN5bmNHZW5lcmF0b3I8W3N0cmluZywgUmF3QW1lbmRlbWVudF0sIHZvaWQsIHVua25vd24+IHtcbiAgYXdhaXQgZnMuZW5zdXJlRGlyKGFtZW5kZW1lbnRzU2VhcmNoQ2FjaGVEaXIpXG5cbiAgYXNzZXJ0LnN0cmljdEVxdWFsKFxuICAgIC9bPyZdZGF0ZV9kZXBvdD0vLmV4ZWModXJsKSxcbiAgICBudWxsLFxuICAgIGBVUkwgJHt1cmx9IGFscmVhZHkgY29udGFpbnMgYSBkZXBvc2l0IGRhdGVgLFxuICApXG4gIGFzc2VydC5zdHJpY3RFcXVhbChcbiAgICAvWz8mXW9yZGVyPS8uZXhlYyh1cmwpLFxuICAgIG51bGwsXG4gICAgYFVSTCAke3VybH0gYWxyZWFkeSBjb250YWlucyBhIHNvcnQgb3JkZXJgLFxuICApXG4gIGFzc2VydC5zdHJpY3RFcXVhbChcbiAgICAvWz8mXXBhZ2U9Ly5leGVjKHVybCksXG4gICAgbnVsbCxcbiAgICBgVVJMICR7dXJsfSBhbHJlYWR5IGNvbnRhaW5zIGEgcGFnZSBudW1iZXJgLFxuICApXG4gIGlmIChpbmNyZW1lbnRhbCkge1xuICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChcbiAgICAgIC9bPyZdZXRhdD0vLmV4ZWModXJsKSxcbiAgICAgIG51bGwsXG4gICAgICBgSW4gaW5jcmVtZW50YWwgbW9kZSwgVVJMICR7dXJsfSBtdXN0IGNvbnRhaW4gYW4gXCJldGF0XCIgcXVlcnkgcGFyYW1ldGVyYCxcbiAgICApXG4gIH1cbiAgdXJsICs9ICh1cmwuaW5jbHVkZXMoXCI/XCIpID8gXCImXCIgOiBcIj9cIikgKyBcIm9yZGVyPWRhdGVfZGVwb3QsZGVzYyZwYWdlPTFcIlxuXG4gIGlmIChtaW5EYXRlRGVwb3QgIT0gbnVsbCkge1xuICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChcbiAgICAgIC9cXGR7NH0tXFxkezJ9LVxcZHsyfS8uZXhlYyhtaW5EYXRlRGVwb3QpLFxuICAgICAgbnVsbCxcbiAgICAgIGBJbnZhbGlkIGZvcm1hdCBmb3IgbWluaW11bSBkYXRlOiAke21pbkRhdGVEZXBvdH1gLFxuICAgIClcbiAgfVxuXG4gIGxldCBhbWVuZGVtZW50TnVtYmVyID0gMFxuICBpdGVyU2VhcmNoUGFnZXM6IHdoaWxlICh0cnVlKSB7XG4gICAgaWYgKG9wdGlvbnMudmVyYm9zZSkge1xuICAgICAgY29uc29sZS5sb2coYEZldGNoaW5nIGFtZW5kZW1lbnRzIHNlYXJjaCBwYWdlIGF0ICR7dXJsfeKApmApXG4gICAgfVxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsKVxuICAgIGFzc2VydChcbiAgICAgIHJlc3BvbnNlLm9rLFxuICAgICAgYFJldHJpZXZhbCBvZiBzZWFyY2ggcGFnZSBhdCAke3VybH0gZmFpbGVkIHdpdGggZXJyb3I6ICR7cmVzcG9uc2Uuc3RhdHVzfSAke3Jlc3BvbnNlLnN0YXR1c1RleHR9YCxcbiAgICApXG4gICAgY29uc3QgcGFnZSA9IGF3YWl0IHJlc3BvbnNlLnRleHQoKVxuICAgIGNvbnN0IGh0bWwgPSBwYXJzZUh0bWwocGFnZSlcbiAgICBpZiAoaHRtbC5xdWVyeVNlbGVjdG9yKFwiZGl2Lm5vLXJlc3VsdFwiKSAhPT0gbnVsbCkge1xuICAgICAgYnJlYWtcbiAgICB9XG4gICAgY29uc3QgYW1lbmRlbWVudHNDb3VudERpdiA9IGh0bWwucXVlcnlTZWxlY3RvcihcImRpdi5taXJyb3ItY2FyZC1zdWJ0aXRsZVwiKVxuICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChhbWVuZGVtZW50c0NvdW50RGl2LCBudWxsKVxuICAgIGNvbnN0IGFtZW5kZW1lbnRzQ291bnQgPSBwYXJzZUludCgvXFxkKy8uZXhlYyhhbWVuZGVtZW50c0NvdW50RGl2IS50ZXh0KSFbMF0pXG4gICAgY29uc3QgYW1lbmRlbWVudHNEaXYgPSBodG1sLnF1ZXJ5U2VsZWN0b3IoXG4gICAgICBcImRpdi5hbWVuZGVtZW50LWxpc3QtLXJlc3VsdHMtdGFibGVcIixcbiAgICApXG4gICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKGFtZW5kZW1lbnRzRGl2LCBudWxsKVxuICAgIGNvbnN0IGFtZW5kZW1lbnRzVGFibGUgPSBhbWVuZGVtZW50c0RpdiEucXVlcnlTZWxlY3RvcihcInRhYmxlXCIpXG4gICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKGFtZW5kZW1lbnRzVGFibGUsIG51bGwpXG4gICAgY29uc3QgdGZvb3RUciA9IGFtZW5kZW1lbnRzVGFibGUhLnF1ZXJ5U2VsZWN0b3IoXCJ0Zm9vdCA+IHRyXCIpXG4gICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKHRmb290VHIsIG51bGwpXG4gICAgY29uc3QgdGZvb3RUckNlbGxzID0gdGZvb3RUciFcbiAgICAgIC5xdWVyeVNlbGVjdG9yQWxsKFwidGQsIHRoXCIpXG4gICAgICAubWFwKChjZWxsKSA9PiBjZWxsLnRleHQpXG4gICAgYXNzZXJ0KFxuICAgICAgZGVlcEVxdWFsKHRmb290VHJDZWxscywgW1xuICAgICAgICBcIlwiLFxuICAgICAgICBcIm7CsFwiLFxuICAgICAgICBcIkRvc3NpZXIgbMOpZ2lzbGF0aWZcIixcbiAgICAgICAgXCJFbXBsYWNlbWVudFwiLFxuICAgICAgICBcIkF1dGV1clwiLFxuICAgICAgICBcIsOJdGF0XCIsXG4gICAgICAgIFwiU29ydFwiLFxuICAgICAgICBcIkRhdGUgZCdleGFtZW5cIixcbiAgICAgICAgXCJFeGFtaW7DqSBwYXJcIixcbiAgICAgICAgXCJUZXh0ZSB2aXPDqVwiLFxuICAgICAgICBcIkRhdGUgZGUgZMOpcMO0dFwiLFxuICAgICAgXSksXG4gICAgICBgVW5leHBlY3RlZCBjb2x1bW5zIGluICR7SlNPTi5zdHJpbmdpZnkodGZvb3RUckNlbGxzLCBudWxsLCAyKX1gLFxuICAgIClcbiAgICBjb25zdCBhbWVuZGVtZW50c1RyID0gYW1lbmRlbWVudHNUYWJsZSEucXVlcnlTZWxlY3RvckFsbChcInRib2R5ID4gdHJcIilcbiAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwoYW1lbmRlbWVudHNUci5sZW5ndGgsIDApXG4gICAgZm9yIChjb25zdCBhbWVuZGVtZW50VHIgb2YgYW1lbmRlbWVudHNUcikge1xuICAgICAgYW1lbmRlbWVudE51bWJlcisrXG5cbiAgICAgIGlmIChtaW5EYXRlRGVwb3QgIT0gbnVsbCB8fCBtaW5EYXRlRXhhbWVuICE9IG51bGwpIHtcbiAgICAgICAgY29uc3QgYW1lbmRlbWVudFRkTGlzdCA9IGFtZW5kZW1lbnRUci5xdWVyeVNlbGVjdG9yQWxsKFwidGRcIilcbiAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKFxuICAgICAgICAgIGFtZW5kZW1lbnRUZExpc3QubGVuZ3RoLFxuICAgICAgICAgIDExLFxuICAgICAgICAgIGBVbmV4cGVjdGVkIG51bWJlciBvZiBjb2x1bW5zIGluIGFtZW5kbWVudCByb3c6ICR7YW1lbmRlbWVudFRyLm91dGVySFRNTH1gLFxuICAgICAgICApXG4gICAgICAgIGlmIChtaW5EYXRlRGVwb3QgIT0gbnVsbCkge1xuICAgICAgICAgIGNvbnN0IGRhdGVEZXBvdFRkID0gYW1lbmRlbWVudFRkTGlzdFsxMF1cbiAgICAgICAgICBjb25zdCBkYXRlRGVwb3QgPSBmb3JtYXRJU08oXG4gICAgICAgICAgICBwYXJzZURhdGUoZGF0ZURlcG90VGQudGV4dCwgXCJkIE1NTU0geVwiLCBuZXcgRGF0ZSgpLCB7XG4gICAgICAgICAgICAgIGxvY2FsZTogZnJMb2NhbGUsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHsgcmVwcmVzZW50YXRpb246IFwiZGF0ZVwiIH0sXG4gICAgICAgICAgKVxuICAgICAgICAgIGlmIChkYXRlRGVwb3QgPCBtaW5EYXRlRGVwb3QpIHtcbiAgICAgICAgICAgIC8vIFNpbmNlIHRoZSBhbWVuZG1lbnRzIGFyZSBzb3J0ZWQgYnkgZGVwb3NpdCBkYXRlLCBvbmNlIGFuIGFtZW5kbWVudFxuICAgICAgICAgICAgLy8gd2l0aCBhbiBvbGQgZGVwb3NpdCBkYXRlIGlzIGVuY291bnRlcmVkLCB0aGUgZnVsbCBzZWFyY2ggY2FuIGJlIHN0b3BwZWQuXG4gICAgICAgICAgICBicmVhayBpdGVyU2VhcmNoUGFnZXNcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1pbkRhdGVFeGFtZW4gIT0gbnVsbCkge1xuICAgICAgICAgIGNvbnN0IGRhdGVFeGFtZW5UZCA9IGFtZW5kZW1lbnRUZExpc3RbN11cbiAgICAgICAgICBpZiAoZGF0ZUV4YW1lblRkLnRleHQpIHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGVFeGFtZW4gPSBmb3JtYXRJU08oXG4gICAgICAgICAgICAgIHBhcnNlRGF0ZShkYXRlRXhhbWVuVGQudGV4dCwgXCJkIE1NTU0geVwiLCBuZXcgRGF0ZSgpLCB7XG4gICAgICAgICAgICAgICAgbG9jYWxlOiBmckxvY2FsZSxcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIHsgcmVwcmVzZW50YXRpb246IFwiZGF0ZVwiIH0sXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBpZiAoZGF0ZUV4YW1lbiA8IG1pbkRhdGVFeGFtZW4pIHtcbiAgICAgICAgICAgICAgLy8gVGhpcyBhbWVuZG1lbnQgaGFzIGJlZW4gZGlzY3Vzc2VkIHNpbmNlIGEgZmV3IGRheXMuXG4gICAgICAgICAgICAgIC8vID0+IElnbm9yZSBpdCwgYmVjYXVzZSBpdCBzaG91bGQgYmUgaW4gQXNzZW1ibMOpZSBvcGVuIGRhdGEuXG4gICAgICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGFtZW5kZW1lbnRVcmxQYXRoID0gYW1lbmRlbWVudFRyLmdldEF0dHJpYnV0ZShcImRhdGEtaHJlZlwiKVxuICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKGFtZW5kZW1lbnRVcmxQYXRoLCB1bmRlZmluZWQpXG4gICAgICBjb25zdCBhbWVuZGVtZW50VXJsUGF0aFNwbGl0dGVkID0gYW1lbmRlbWVudFVybFBhdGghLnNwbGl0KFwiL1wiKVxuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKFxuICAgICAgICBhbWVuZGVtZW50VXJsUGF0aFNwbGl0dGVkWzBdLFxuICAgICAgICBcIlwiLFxuICAgICAgICBgVW5leHBlY3RlZCBVUkwgcGF0aCBmb3IgYW1lbmRlbWVudDogJHthbWVuZGVtZW50VXJsUGF0aH1gLFxuICAgICAgKVxuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKFxuICAgICAgICBhbWVuZGVtZW50VXJsUGF0aFNwbGl0dGVkWzFdLFxuICAgICAgICBcImR5blwiLFxuICAgICAgICBgVW5leHBlY3RlZCBVUkwgcGF0aCBmb3IgYW1lbmRlbWVudDogJHthbWVuZGVtZW50VXJsUGF0aH1gLFxuICAgICAgKVxuICAgICAgY29uc3QgYW1lbmRlbWVudFNlYXJjaENhY2hlRmlsZVBhdGggPVxuICAgICAgICBwYXRoLmpvaW4oXG4gICAgICAgICAgYW1lbmRlbWVudHNTZWFyY2hDYWNoZURpcixcbiAgICAgICAgICAuLi5hbWVuZGVtZW50VXJsUGF0aFNwbGl0dGVkLnNsaWNlKDIpLFxuICAgICAgICApICsgXCIuaHRtbFwiXG4gICAgICBhd2FpdCBmcy5lbnN1cmVEaXIocGF0aC5kaXJuYW1lKGFtZW5kZW1lbnRTZWFyY2hDYWNoZUZpbGVQYXRoKSlcbiAgICAgIGNvbnN0IGV4aXN0aW5nQW1lbmRlbWVudFNlYXJjaENhY2hlID0gKGF3YWl0IGZzLnBhdGhFeGlzdHMoXG4gICAgICAgIGFtZW5kZW1lbnRTZWFyY2hDYWNoZUZpbGVQYXRoLFxuICAgICAgKSlcbiAgICAgICAgPyBhd2FpdCBmcy5yZWFkRmlsZShhbWVuZGVtZW50U2VhcmNoQ2FjaGVGaWxlUGF0aCwgXCJ1dGY4XCIpXG4gICAgICAgIDogbnVsbFxuICAgICAgY29uc3QgYW1lbmRlbWVudFRyT3V0ZXJIdG1sID0gYW1lbmRlbWVudFRyLm91dGVySFRNTFxuICAgICAgY29uc3QgYW1lbmRlbWVudFNlYXJjaENhY2hlID0gYC0tLVxcbiR7anNZYW1sLmR1bXAoXG4gICAgICAgIHtcbiAgICAgICAgICBwb3NpdGlvbjogYW1lbmRlbWVudHNDb3VudCAtIGFtZW5kZW1lbnROdW1iZXIsXG4gICAgICAgICAgc2VhcmNoOiB1cmwucmVwbGFjZSgvJnBhZ2U9W1xcZF0rLywgXCJcIiksXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBzb3J0S2V5czogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICl9LS0tXFxuXFxuJHthbWVuZGVtZW50VHJPdXRlckh0bWx9YFxuICAgICAgaWYgKGFtZW5kZW1lbnRTZWFyY2hDYWNoZSA9PT0gZXhpc3RpbmdBbWVuZGVtZW50U2VhcmNoQ2FjaGUpIHtcbiAgICAgICAgaWYgKGluY3JlbWVudGFsKSB7XG4gICAgICAgICAgLy8gVGhlIHNhbWUgPHRyPiBpcyBhbHJlYWR5IGluIGNhY2hlIGFuZCBpbiB0aGUgc2FtZSBwb3NpdGlvbi5cbiAgICAgICAgICAvLyBBc3N1bWUgdGhhdCBmb2xsb3dpbmcgYW1lbmRtZW50cyBhcmUgbm90IGNoYW5nZWQgYW5kIHN0b3AgbG9va2luZ1xuICAgICAgICAgIC8vIGZvciBhbWVuZG1lbnRzIHRvIHVwc2VydC5cbiAgICAgICAgICBicmVhayBpdGVyU2VhcmNoUGFnZXNcbiAgICAgICAgfVxuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBleGlzdGluZ0FtZW5kZW1lbnRTZWFyY2hDYWNoZSAhPT0gbnVsbCAmJlxuICAgICAgICBmcm9udE1hdHRlcihleGlzdGluZ0FtZW5kZW1lbnRTZWFyY2hDYWNoZSkuYm9keSA9PT1cbiAgICAgICAgICBhbWVuZGVtZW50VHJPdXRlckh0bWxcbiAgICAgICkge1xuICAgICAgICAvLyBUaGUgc2FtZSA8dHI+IGlzIGFscmVhZHkgaW4gY2FjaGUsIGJ1dCBpbiBhIGRpZmZlcmVudCBwb3NpdGlvbi5cbiAgICAgICAgLy8gQXNzdW1lIHRoZSBhbWVuZG1lbnQgaXMgdW5jaGFuZ2VkLlxuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgaWYgKG9wdGlvbnMudmVyYm9zZSkge1xuICAgICAgICBpZiAoZXhpc3RpbmdBbWVuZGVtZW50U2VhcmNoQ2FjaGUgPT09IG51bGwpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICAgIGBBZGRpbmcgYW1lbmRlbWVudCBzZWFyY2ggY2FjaGU6ICR7YW1lbmRlbWVudFNlYXJjaENhY2hlRmlsZVBhdGh94oCmYCxcbiAgICAgICAgICApXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgICBgVXBkYXRpbmcgYW1lbmRlbWVudCBzZWFyY2ggY2FjaGU6ICR7YW1lbmRlbWVudFNlYXJjaENhY2hlRmlsZVBhdGh94oCmYCxcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbnN0IGFtZW5kZW1lbnRIdG1sVXJsID0gbmV3IFVSTChcbiAgICAgICAgYW1lbmRlbWVudFVybFBhdGghLFxuICAgICAgICBcImh0dHBzOi8vd3d3LmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvXCIsXG4gICAgICApLnRvU3RyaW5nKClcbiAgICAgIGNvbnN0IGFtZW5kZW1lbnRIdG1sUmVzcG9uc2UgPSBhd2FpdCBmZXRjaChhbWVuZGVtZW50SHRtbFVybClcbiAgICAgIGlmIChhbWVuZGVtZW50SHRtbFJlc3BvbnNlLnN0YXR1cyA9PT0gNDA0KSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgIGBBbWVuZGVtZW50IEhUTUwgcGFnZSBub3QgZm91bmQgYXQgJHthbWVuZGVtZW50SHRtbFVybH0uIFNraXBwaW5nLmAsXG4gICAgICAgIClcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGFzc2VydChcbiAgICAgICAgYW1lbmRlbWVudEh0bWxSZXNwb25zZS5vayxcbiAgICAgICAgYFJldHJpZXZhbCBvZiBhbWVuZGVtZW50IEhUTUwgcGFnZSBhdCAke2FtZW5kZW1lbnRIdG1sVXJsfSBmYWlsZWQgd2l0aCBlcnJvcjogJHthbWVuZGVtZW50SHRtbFJlc3BvbnNlLnN0YXR1c30gJHthbWVuZGVtZW50SHRtbFJlc3BvbnNlLnN0YXR1c1RleHR9YCxcbiAgICAgIClcbiAgICAgIGNvbnN0IGFtZW5kZW1lbnRIdG1sUGFnZSA9IGF3YWl0IGFtZW5kZW1lbnRIdG1sUmVzcG9uc2UudGV4dCgpXG4gICAgICBjb25zdCBhbWVuZGVtZW50SHRtbCA9IHBhcnNlSHRtbChhbWVuZGVtZW50SHRtbFBhZ2UpXG4gICAgICBjb25zdCBmb3JtYXRzTGkgPSBhbWVuZGVtZW50SHRtbC5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgICBcImxpLm1pcnJvci1jYXJkLWhlYWRlci0tb3B0aW9ucy0tY29udGVudC0taXRlbVwiLFxuICAgICAgKVxuICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKGZvcm1hdHNMaS5sZW5ndGgsIDApXG4gICAgICBjb25zdCBqc29uTGkgPSBmb3JtYXRzTGkuZmluZCgoZm9ybWF0TGkpID0+IHtcbiAgICAgICAgY29uc3QgZm9ybWF0U3BhbiA9IGZvcm1hdExpLnF1ZXJ5U2VsZWN0b3IoXCJhID4gc3BhblwiKVxuICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwoXG4gICAgICAgICAgZm9ybWF0U3BhbixcbiAgICAgICAgICBudWxsLFxuICAgICAgICAgIGBObyA8c3Bhbj4gaW4gPGE+IGZvdW5kIGluICR7Zm9ybWF0TGkudG9TdHJpbmcoKX1gLFxuICAgICAgICApXG4gICAgICAgIHJldHVybiBmb3JtYXRTcGFuIS50ZXh0ID09PSBcIlZlcnNpb24gSlNPTlwiXG4gICAgICB9KVxuICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKFxuICAgICAgICBqc29uTGksXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgYE5vIEpTT04gdmVyc2lvbiBmb3VuZCBmb3IgYW1lbmRlbWVudCBhdCAke2FtZW5kZW1lbnRIdG1sVXJsfWAsXG4gICAgICApXG4gICAgICBjb25zdCBqc29uQSA9IGpzb25MaSEucXVlcnlTZWxlY3RvcihcImFcIilcbiAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChcbiAgICAgICAganNvbkEsXG4gICAgICAgIG51bGwsXG4gICAgICAgIGBObyA8YT4gZm91bmQgaW4gJHtqc29uTGkhLnRvU3RyaW5nKCl9YCxcbiAgICAgIClcbiAgICAgIGNvbnN0IGFtZW5kZW1lbnRKc29uVXJsUGF0aCA9IGpzb25BIS5nZXRBdHRyaWJ1dGUoXCJocmVmXCIpXG4gICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwoXG4gICAgICAgIGFtZW5kZW1lbnRKc29uVXJsUGF0aCxcbiAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICBgTm8gVVJMIGZvdW5kIGZvciBKU09OIHZlcnNpb24gb2YgYW1lbmRlbWVudDogJHtqc29uTGkhLnRvU3RyaW5nKCl9YCxcbiAgICAgIClcbiAgICAgIGNvbnN0IGFtZW5kZW1lbnRKc29uVXJsID0gbmV3IFVSTChcbiAgICAgICAgYW1lbmRlbWVudEpzb25VcmxQYXRoISxcbiAgICAgICAgXCJodHRwczovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL1wiLFxuICAgICAgKS50b1N0cmluZygpXG4gICAgICBjb25zdCBhbWVuZGVtZW50SnNvblJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYW1lbmRlbWVudEpzb25VcmwpXG4gICAgICBhc3NlcnQoXG4gICAgICAgIGFtZW5kZW1lbnRKc29uUmVzcG9uc2Uub2ssXG4gICAgICAgIGBSZXRyaWV2YWwgb2YgYW1lbmRlbWVudCBKU09OIHBhZ2UgYXQgJHthbWVuZGVtZW50SnNvblVybH0gZmFpbGVkIHdpdGggZXJyb3I6ICR7YW1lbmRlbWVudEpzb25SZXNwb25zZS5zdGF0dXN9ICR7YW1lbmRlbWVudEpzb25SZXNwb25zZS5zdGF0dXNUZXh0fWAsXG4gICAgICApXG4gICAgICBjb25zdCBhbWVuZGVtZW50ID0gYXdhaXQgYW1lbmRlbWVudEpzb25SZXNwb25zZS5qc29uKClcbiAgICAgIHlpZWxkIFthbWVuZGVtZW50VXJsUGF0aCEsIGFtZW5kZW1lbnRdXG5cbiAgICAgIC8vIFNlYXJjaENhY2hlIG11c3QgYmUgd3JpdHRlbiBhdCB0aGUgZW5kIHRvIGVuc3VyZSB0aGF0IGV2ZXJ5dGhpbmcgaXMgaW4gYSBjb25zaXN0ZW50IHN0YXRlLFxuICAgICAgLy8gZXZlbiBpZiBzY3JpcHQgZmFpbHMgYWJydXB0bHkuXG4gICAgICBhd2FpdCBmcy53cml0ZUZpbGUoXG4gICAgICAgIGFtZW5kZW1lbnRTZWFyY2hDYWNoZUZpbGVQYXRoLFxuICAgICAgICBhbWVuZGVtZW50U2VhcmNoQ2FjaGUsXG4gICAgICAgIFwidXRmOFwiLFxuICAgICAgKVxuICAgIH1cblxuICAgIGNvbnN0IHBhZ2luYXRpb25BID0gaHRtbC5xdWVyeVNlbGVjdG9yKFxuICAgICAgXCJkaXYuYW4tcGFnaW5hdGlvbi0taXRlbSA+IGkuYW4taWNvbnMtY2hldnJvbi1yaWdodCB+IGFcIixcbiAgICApXG4gICAgaWYgKHBhZ2luYXRpb25BID09PSBudWxsKSB7XG4gICAgICBicmVha1xuICAgIH1cbiAgICBjb25zdCB1cmxQYXRoID0gcGFnaW5hdGlvbkEuZ2V0QXR0cmlidXRlKFwiaHJlZlwiKVxuICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbCh1cmxQYXRoLCB1bmRlZmluZWQpXG4gICAgdXJsID0gbmV3IFVSTCh1cmxQYXRoISwgXCJodHRwczovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL1wiKS50b1N0cmluZygpXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsTUFBTSxNQUFNLFFBQVE7QUFDM0IsU0FBU0MsU0FBUyxRQUFRLG9CQUFvQjtBQUM5QyxTQUFTQyxFQUFFLElBQUlDLFFBQVEsUUFBUSxvQkFBb0I7QUFDbkQsU0FBU0MsS0FBSyxJQUFJQyxTQUFTLFFBQVEsZ0JBQWdCO0FBQ25ELE9BQU9DLFNBQVMsTUFBTSxZQUFZO0FBQ2xDLE9BQU9DLEVBQUUsTUFBTSxVQUFVO0FBQ3pCLE9BQU9DLFdBQVcsTUFBTSxjQUFjO0FBQ3RDLE9BQU9DLE1BQU0sTUFBTSxTQUFTO0FBQzVCLFNBQVNMLEtBQUssSUFBSU0sU0FBUyxRQUFRLGtCQUFrQjtBQUNyRCxPQUFPQyxJQUFJLE1BQU0sTUFBTTtBQUFBLFNBRWRDLGVBQWU7QUFBQSxTQUVIQyxPQUFPLElBQUlDLGtCQUFrQjtBQUVsRCxPQUFPLGdCQUFnQkMsd0JBQXdCQSxDQUM3Q0MseUJBQWlDLEVBQ2pDQyxHQUFXLEVBQ1hDLFdBQW9CLEVBQ3BCQyxZQUE0QixFQUM1QkMsYUFBNkIsRUFDN0JDLE9BQWdELEdBQUcsQ0FBQyxDQUFDLEVBQ0E7RUFDckQsV0FBVyxNQUFNLENBQ2ZDLGlCQUFpQixFQUNqQkMsVUFBVSxDQUNYLElBQUlDLDJCQUEyQixDQUM5QlIseUJBQXlCLEVBQ3pCQyxHQUFHLEVBQ0hDLFdBQVcsRUFDWEMsWUFBWSxFQUNaQyxhQUFhLEVBQ2JDLE9BQ0YsQ0FBQyxFQUFFO0lBQ0RULGVBQWUsQ0FBQ1csVUFBVSxDQUFDO0lBQzNCO0lBQ0EsTUFBTSxDQUNKRCxpQkFBaUIsRUFD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
@@ -28,8 +28,8 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
28
28
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
29
29
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
30
30
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
31
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
32
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
31
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
32
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
33
33
  // To parse this data:
34
34
  //
35
35
  // import { Convert, Acteur, Deport, Organe, MandatWrapper, ActeursEtOrganes } from "./file";
@@ -28,8 +28,8 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
28
28
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
29
29
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
30
30
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
31
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
32
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
31
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
32
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
33
33
  // To parse this data:
34
34
  //
35
35
  // import { Convert, Reunion, Agendas } from "./file";
@@ -28,8 +28,8 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
28
28
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
29
29
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
30
30
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
31
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
32
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
31
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
32
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
33
33
  // To parse this data:
34
34
  //
35
35
  // import { Amendements, AmendementWrapper, Convert, TexteLegislatif } from "./file";
@@ -29,8 +29,8 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
29
29
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
30
30
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
31
31
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
32
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
33
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
32
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
33
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
34
34
  // To parse this data:
35
35
  //
36
36
  // import { Convert, ComptesRendus, CompteRenduWrapper } from "./file";
@@ -82,6 +82,7 @@ export declare enum Code {
82
82
  Apploi = "APPLOI",
83
83
  Aue = "AUE",
84
84
  Autratconv = "AUTRATCONV",
85
+ Censure493 = "CENSURE493",
85
86
  Comenq = "COMENQ",
86
87
  Compa = "COMPA",
87
88
  Comspcpte = "COMSPCPTE",