@tricoteuses/assemblee 1.1.8 → 1.1.10

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 (136) hide show
  1. package/LICENSE.md +5 -1
  2. package/README.md +69 -178
  3. package/lib/api.js +9 -9
  4. package/lib/api.mjs +7 -7
  5. package/lib/bugs/acteur-00010/plugin.test.js +1 -1
  6. package/lib/bugs/agenda-00002/plugin.test.js +1 -1
  7. package/lib/bugs/agenda-00002/plugin.test.mjs +1 -1
  8. package/lib/bugs/agenda-00002.js +3 -3
  9. package/lib/bugs/agenda-00002.mjs +2 -2
  10. package/lib/bugs/agenda-00008/plugin.test.js +1 -1
  11. package/lib/bugs/agenda-00011/plugin.test.js +1 -1
  12. package/lib/bugs/agenda-00011/plugin.test.mjs +1 -1
  13. package/lib/bugs/agenda-00011.js +1 -1
  14. package/lib/bugs/agenda-00011.mjs +1 -1
  15. package/lib/bugs.js +1 -1
  16. package/lib/bugs.mjs +1 -1
  17. package/lib/cleaners/acteurs.js +1 -1
  18. package/lib/cleaners/acteurs.mjs +1 -1
  19. package/lib/cleaners/amendements.js +1 -1
  20. package/lib/cleaners/amendements.mjs +1 -1
  21. package/lib/cleaners/debats.d.ts +1 -0
  22. package/lib/cleaners/debats.js +12 -0
  23. package/lib/cleaners/debats.mjs +5 -0
  24. package/lib/cleaners/index.d.ts +2 -0
  25. package/lib/cleaners/index.js +15 -1
  26. package/lib/cleaners/index.mjs +3 -1
  27. package/lib/cleaners/questions.d.ts +1 -0
  28. package/lib/cleaners/questions.js +12 -0
  29. package/lib/cleaners/questions.mjs +5 -0
  30. package/lib/cleaners/reunions.js +1 -1
  31. package/lib/cleaners/reunions.mjs +1 -1
  32. package/lib/cleaners/xml.js +12 -6
  33. package/lib/cleaners/xml.mjs +12 -6
  34. package/lib/datasets.d.ts +5 -1
  35. package/lib/datasets.js +70 -12
  36. package/lib/datasets.mjs +68 -10
  37. package/lib/dates.js +1 -1
  38. package/lib/dates.mjs +1 -1
  39. package/lib/dossiers_legislatifs.js +9 -9
  40. package/lib/dossiers_legislatifs.mjs +7 -7
  41. package/lib/file_systems.js +4 -4
  42. package/lib/file_systems.mjs +2 -2
  43. package/lib/git.js +1 -1
  44. package/lib/git.mjs +1 -1
  45. package/lib/loaders.d.ts +21 -0
  46. package/lib/loaders.js +608 -202
  47. package/lib/loaders.mjs +200 -3
  48. package/lib/organes.js +1 -1
  49. package/lib/organes.mjs +1 -1
  50. package/lib/parsers/documents.js +1 -1
  51. package/lib/parsers/documents.mjs +1 -1
  52. package/lib/parsers/recherche_amendements.js +3 -2
  53. package/lib/parsers/recherche_amendements.mjs +1 -1
  54. package/lib/raw_types/acteurs_et_organes.js +49 -49
  55. package/lib/raw_types/acteurs_et_organes.mjs +37 -37
  56. package/lib/raw_types/agendas.js +50 -50
  57. package/lib/raw_types/agendas.mjs +39 -39
  58. package/lib/raw_types/amendements.d.ts +2 -0
  59. package/lib/raw_types/amendements.js +53 -51
  60. package/lib/raw_types/amendements.mjs +41 -39
  61. package/lib/raw_types/debats.d.ts +190 -0
  62. package/lib/raw_types/debats.js +816 -0
  63. package/lib/raw_types/debats.mjs +758 -0
  64. package/lib/raw_types/dossiers_legislatifs.js +71 -62
  65. package/lib/raw_types/dossiers_legislatifs.mjs +46 -46
  66. package/lib/raw_types/questions.d.ts +129 -0
  67. package/lib/raw_types/questions.js +497 -0
  68. package/lib/raw_types/questions.mjs +439 -0
  69. package/lib/raw_types/scrutins.js +34 -34
  70. package/lib/raw_types/scrutins.mjs +28 -28
  71. package/lib/scripts/bugs_helper.js +1 -1
  72. package/lib/scripts/bugs_helper.mjs +1 -1
  73. package/lib/scripts/clean_reorganized_data.js +174 -24
  74. package/lib/scripts/clean_reorganized_data.mjs +127 -13
  75. package/lib/scripts/diff_amendements.js +1 -1
  76. package/lib/scripts/diff_amendements.mjs +1 -1
  77. package/lib/scripts/document_dossiers_legislatifs.js +1 -1
  78. package/lib/scripts/document_dossiers_legislatifs.mjs +1 -1
  79. package/lib/scripts/get_today_reunions.js +1 -1
  80. package/lib/scripts/get_today_reunions.mjs +1 -1
  81. package/lib/scripts/merge_scrutins.js +1 -1
  82. package/lib/scripts/merge_scrutins.mjs +1 -1
  83. package/lib/scripts/parse_textes_lois.js +4 -3
  84. package/lib/scripts/parse_textes_lois.mjs +1 -1
  85. package/lib/scripts/raw_types_from_amendements.js +1 -1
  86. package/lib/scripts/raw_types_from_amendements.mjs +1 -1
  87. package/lib/scripts/reorganize_data.js +189 -7
  88. package/lib/scripts/reorganize_data.mjs +136 -8
  89. package/lib/scripts/retrieve_deputes_photos.js +7 -1
  90. package/lib/scripts/retrieve_deputes_photos.mjs +7 -1
  91. package/lib/scripts/retrieve_documents.js +1 -1
  92. package/lib/scripts/retrieve_documents.mjs +1 -1
  93. package/lib/scripts/retrieve_open_data.js +105 -37
  94. package/lib/scripts/retrieve_open_data.mjs +34 -2
  95. package/lib/scripts/retrieve_pending_amendments.js +7 -1
  96. package/lib/scripts/retrieve_pending_amendments.mjs +7 -1
  97. package/lib/scripts/retrieve_senateurs_photos.js +10 -2
  98. package/lib/scripts/retrieve_senateurs_photos.mjs +7 -1
  99. package/lib/scripts/retrieve_textes_lois.js +1 -1
  100. package/lib/scripts/retrieve_textes_lois.mjs +1 -1
  101. package/lib/scripts/test_load.js +1 -1
  102. package/lib/scripts/test_load.mjs +1 -1
  103. package/lib/scripts/test_load_big_files.js +1 -1
  104. package/lib/scripts/test_load_big_files.mjs +1 -1
  105. package/lib/scripts/validate_json.js +1 -1
  106. package/lib/scripts/validate_json.mjs +1 -1
  107. package/lib/shared_types/codes_actes.d.ts +4 -0
  108. package/lib/shared_types/codes_actes.js +19 -17
  109. package/lib/shared_types/codes_actes.mjs +15 -13
  110. package/lib/strings.js +1 -1
  111. package/lib/strings.mjs +1 -1
  112. package/lib/types/acteurs_et_organes.js +37 -37
  113. package/lib/types/acteurs_et_organes.mjs +28 -28
  114. package/lib/types/agendas.js +50 -50
  115. package/lib/types/agendas.mjs +40 -40
  116. package/lib/types/amendements.d.ts +1 -0
  117. package/lib/types/amendements.js +52 -51
  118. package/lib/types/amendements.mjs +42 -41
  119. package/lib/types/debats.d.ts +184 -0
  120. package/lib/types/debats.js +805 -0
  121. package/lib/types/debats.mjs +747 -0
  122. package/lib/types/dossiers_legislatifs.js +68 -59
  123. package/lib/types/dossiers_legislatifs.mjs +46 -46
  124. package/lib/types/legislatures.js +5 -5
  125. package/lib/types/legislatures.mjs +4 -4
  126. package/lib/types/questions.d.ts +122 -0
  127. package/lib/types/questions.js +482 -0
  128. package/lib/types/questions.mjs +424 -0
  129. package/lib/types/scrutins.js +34 -34
  130. package/lib/types/scrutins.mjs +28 -28
  131. package/lib/urls.js +5 -5
  132. package/lib/urls.mjs +4 -4
  133. package/package.json +15 -7
  134. package/lib/scripts/clean_data.d.ts +0 -1
  135. package/lib/scripts/clean_data.js +0 -309
  136. package/lib/scripts/clean_data.mjs +0 -171
package/lib/urls.js CHANGED
@@ -10,13 +10,13 @@ exports.urlFromScrutin = urlFromScrutin;
10
10
  require("core-js/modules/es.regexp.exec.js");
11
11
  require("core-js/modules/es.array.concat.js");
12
12
  require("core-js/modules/es.string.replace.js");
13
- var DocumentUrlFormat; // The version of the document that can be parsed to extract divisions & articles
14
- exports.DocumentUrlFormat = DocumentUrlFormat;
15
- (function (DocumentUrlFormat) {
13
+ var DocumentUrlFormat = /*#__PURE__*/function (DocumentUrlFormat) {
16
14
  DocumentUrlFormat["Html"] = "html";
17
15
  DocumentUrlFormat["Pdf"] = "pdf";
18
16
  DocumentUrlFormat["RawHtml"] = "raw-html";
19
- })(DocumentUrlFormat || (exports.DocumentUrlFormat = DocumentUrlFormat = {}));
17
+ return DocumentUrlFormat;
18
+ }({}); // The version of the document that can be parsed to extract divisions & articles
19
+ exports.DocumentUrlFormat = DocumentUrlFormat;
20
20
  var documentUrlFragmentsByType = {
21
21
  ACIN: {
22
22
  directory: "projets",
@@ -193,4 +193,4 @@ function urlFromScrutin(scrutin) {
193
193
  var numero = match[3];
194
194
  return "http://www2.assemblee-nationale.fr/scrutins/detail/(legislature)/".concat(legislature, "/(num)/").concat(numero);
195
195
  }
196
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEb2N1bWVudFVybEZvcm1hdCIsImV4cG9ydHMiLCJkb2N1bWVudFVybEZyYWdtZW50c0J5VHlwZSIsIkFDSU4iLCJkaXJlY3RvcnkiLCJwcmVmaXgiLCJzdWZmaXgiLCJBVkNFUFJKTE9JIiwiQVZDRUxFVFRSRSIsIkFWQ0VQSU9OTE9JIiwiQVZJUyIsIkVUREkiLCJMRVRUIiwiUElPTiIsIlBOUkUiLCJQTlJFQVBQQVJUMzQxIiwiUE5SRUNPTUVOUSIsIlBOUkVNT0RSRUdMVEFOIiwiUE5SRVRWWElOU1RJVEVVUk9QIiwiUFJKTCIsIlJBUFAiLCJSSU5GIiwiUklPTiIsIlRBRE8iLCJUQ09NIiwiVENPTUNPTUVOUSIsIlRDT01NT0RSRUdMVEFOIiwiVENPTVRWWElOU1RJVEVVUk9QIiwiZXh0ZW5zaW9uRnJvbURvY3VtZW50VXJsRm9ybWF0IiwiZm9ybWF0IiwiSHRtbCIsIlBkZiIsIlJhd0h0bWwiLCJ1cmxGcm9tRG9jdW1lbnQiLCJkb2N1bWVudCIsImV4dGVuc2lvbiIsIm1hdGNoIiwiZXhlYyIsInVpZCIsImNvbnNvbGUiLCJsb2ciLCJjb25jYXQiLCJjaGFtYnJlIiwibGVnaXNsYXR1cmUiLCJudW1iZXIiLCJkb2N1bWVudFR5cGUiLCJCVEMiLCJCVEEiLCJUQVAiLCJjbGFzc2lmaWNhdGlvbiIsInVuZGVmaW5lZCIsInNvdXNUeXBlIiwiY29kZSIsInJlcGxhY2UiLCJmYW1pbGxlIiwiY2xhc3NlIiwiZnJhZ21lbnRzIiwidXJsRnJvbVNjcnV0aW4iLCJzY3J1dGluIiwibnVtZXJvIl0sInNvdXJjZXMiOlsiLi4vc3JjL3VybHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2NydXRpbiB9IGZyb20gXCIuL3R5cGVzL3NjcnV0aW5zXCJcblxuZXhwb3J0IGVudW0gRG9jdW1lbnRVcmxGb3JtYXQge1xuICBIdG1sID0gXCJodG1sXCIsXG4gIFBkZiA9IFwicGRmXCIsXG4gIFJhd0h0bWwgPSBcInJhdy1odG1sXCIsIC8vIFRoZSB2ZXJzaW9uIG9mIHRoZSBkb2N1bWVudCB0aGF0IGNhbiBiZSBwYXJzZWQgdG8gZXh0cmFjdCBkaXZpc2lvbnMgJiBhcnRpY2xlc1xufVxuXG5jb25zdCBkb2N1bWVudFVybEZyYWdtZW50c0J5VHlwZToge1xuICBbdHlwZTogc3RyaW5nXToge1xuICAgIGRpcmVjdG9yeTogc3RyaW5nXG4gICAgcHJlZml4OiBzdHJpbmdcbiAgICBzdWZmaXg6IHN0cmluZ1xuICB9XG59ID0ge1xuICBBQ0lOOiB7XG4gICAgZGlyZWN0b3J5OiBcInByb2pldHNcIixcbiAgICBwcmVmaXg6IFwicGxcIixcbiAgICBzdWZmaXg6IFwiLWFpXCIsXG4gIH0sXG4gIEFWQ0VQUkpMT0k6IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvamV0c1wiLFxuICAgIHByZWZpeDogXCJwbFwiLFxuICAgIHN1ZmZpeDogXCItYWNlXCIsXG4gIH0sXG4gIEFWQ0VMRVRUUkU6IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvamV0c1wiLFxuICAgIHByZWZpeDogXCJwbFwiLFxuICAgIHN1ZmZpeDogXCItYWNlXCIsXG4gIH0sXG4gIEFWQ0VQSU9OTE9JOiB7XG4gICAgZGlyZWN0b3J5OiBcInByb3Bvc2l0aW9uc1wiLFxuICAgIHByZWZpeDogXCJwaW9uXCIsXG4gICAgc3VmZml4OiBcIi1hY2VcIixcbiAgfSxcbiAgQVZJUzoge1xuICAgIGRpcmVjdG9yeTogXCJyYXBwb3J0c1wiLFxuICAgIHByZWZpeDogXCJyXCIsXG4gICAgc3VmZml4OiBcIlwiLFxuICB9LFxuICBFVERJOiB7XG4gICAgZGlyZWN0b3J5OiBcInByb2pldHNcIixcbiAgICBwcmVmaXg6IFwicGxcIixcbiAgICBzdWZmaXg6IFwiLWVpXCIsXG4gIH0sXG4gIExFVFQ6IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvamV0c1wiLFxuICAgIHByZWZpeDogXCJwbFwiLFxuICAgIHN1ZmZpeDogXCItbFwiLFxuICB9LFxuICBQSU9OOiB7XG4gICAgZGlyZWN0b3J5OiBcInByb3Bvc2l0aW9uc1wiLFxuICAgIHByZWZpeDogXCJwaW9uXCIsXG4gICAgc3VmZml4OiBcIlwiLFxuICB9LFxuICBQTlJFOiB7XG4gICAgZGlyZWN0b3J5OiBcInByb3Bvc2l0aW9uc1wiLFxuICAgIHByZWZpeDogXCJwaW9uXCIsXG4gICAgc3VmZml4OiBcIlwiLFxuICB9LFxuICBQTlJFQVBQQVJUMzQxOiB7XG4gICAgZGlyZWN0b3J5OiBcInByb3Bvc2l0aW9uc1wiLFxuICAgIHByZWZpeDogXCJwaW9uXCIsXG4gICAgc3VmZml4OiBcIlwiLFxuICB9LFxuICBQTlJFQ09NRU5ROiB7XG4gICAgZGlyZWN0b3J5OiBcInByb3Bvc2l0aW9uc1wiLFxuICAgIHByZWZpeDogXCJwaW9uXCIsXG4gICAgc3VmZml4OiBcIlwiLFxuICB9LFxuICBQTlJFTU9EUkVHTFRBTjoge1xuICAgIGRpcmVjdG9yeTogXCJwcm9wb3NpdGlvbnNcIixcbiAgICBwcmVmaXg6IFwicGlvblwiLFxuICAgIHN1ZmZpeDogXCJcIixcbiAgfSxcbiAgUE5SRVRWWElOU1RJVEVVUk9QOiB7XG4gICAgZGlyZWN0b3J5OiBcImV1cm9wZS9yZXNvbHV0aW9uc1wiLFxuICAgIHByZWZpeDogXCJwcGVcIixcbiAgICBzdWZmaXg6IFwiXCIsXG4gIH0sXG4gIFBSSkw6IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvamV0c1wiLFxuICAgIHByZWZpeDogXCJwbFwiLFxuICAgIHN1ZmZpeDogXCJcIixcbiAgfSxcbiAgUkFQUDoge1xuICAgIGRpcmVjdG9yeTogXCJyYXBwb3J0c1wiLFxuICAgIHByZWZpeDogXCJyXCIsXG4gICAgc3VmZml4OiBcIlwiLFxuICB9LFxuICBSSU5GOiB7XG4gICAgZGlyZWN0b3J5OiBcInJhcC1pbmZvXCIsXG4gICAgcHJlZml4OiBcImlcIixcbiAgICBzdWZmaXg6IFwiXCIsXG4gIH0sXG4gIFJJT046IHtcbiAgICBkaXJlY3Rvcnk6IFwiXCIsXG4gICAgcHJlZml4OiBcIlwiLFxuICAgIHN1ZmZpeDogXCJcIixcbiAgfSxcbiAgVEFETzoge1xuICAgIGRpcmVjdG9yeTogXCJ0YVwiLFxuICAgIHByZWZpeDogXCJ0YVwiLFxuICAgIHN1ZmZpeDogXCJcIixcbiAgfSxcbiAgVENPTToge1xuICAgIGRpcmVjdG9yeTogXCJ0YS1jb21taXNzaW9uXCIsXG4gICAgcHJlZml4OiBcInJcIixcbiAgICBzdWZmaXg6IFwiLWEwXCIsXG4gIH0sXG4gIFRDT01DT01FTlE6IHtcbiAgICBkaXJlY3Rvcnk6IFwidGEtY29tbWlzc2lvblwiLFxuICAgIHByZWZpeDogXCJyXCIsXG4gICAgc3VmZml4OiBcIi1hMFwiLFxuICB9LFxuICBUQ09NTU9EUkVHTFRBTjoge1xuICAgIGRpcmVjdG9yeTogXCJ0YS1jb21taXNzaW9uXCIsXG4gICAgcHJlZml4OiBcInJcIixcbiAgICBzdWZmaXg6IFwiLWEwXCIsXG4gIH0sXG4gIFRDT01UVlhJTlNUSVRFVVJPUDoge1xuICAgIGRpcmVjdG9yeTogXCJ0YS1jb21taXNzaW9uXCIsXG4gICAgcHJlZml4OiBcInJcIixcbiAgICBzdWZmaXg6IFwiLWEwXCIsXG4gIH0sXG59XG5cbmZ1bmN0aW9uIGV4dGVuc2lvbkZyb21Eb2N1bWVudFVybEZvcm1hdChmb3JtYXQ6IERvY3VtZW50VXJsRm9ybWF0KTogc3RyaW5nIHtcbiAgc3dpdGNoIChmb3JtYXQpIHtcbiAgICBjYXNlIERvY3VtZW50VXJsRm9ybWF0Lkh0bWw6XG4gICAgICByZXR1cm4gXCIuYXNwXCJcbiAgICBjYXNlIERvY3VtZW50VXJsRm9ybWF0LlBkZjpcbiAgICAgIHJldHVybiBcIi5wZGZcIlxuICAgIGNhc2UgRG9jdW1lbnRVcmxGb3JtYXQuUmF3SHRtbDpcbiAgICAgIHJldHVybiBcIi5hc3BcIlxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1cmxGcm9tRG9jdW1lbnQoXG4gIGRvY3VtZW50OiBhbnksXG4gIGZvcm1hdDogRG9jdW1lbnRVcmxGb3JtYXQsXG4pOiBzdHJpbmcgfCBudWxsIHtcbiAgLy8gQ29kZSB0YWtlbiBmcm9tIGZ1bmN0aW9uIGBhbl90ZXh0X3VybGAgaW4gcHJvamVjdCBhbnB5OlxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vcmVnYXJkc2NpdG95ZW5zL2FucHkvYmxvYi9tYXN0ZXIvYW5weS9kb3NzaWVyX2Zyb21fb3BlbmRhdGEucHlcbiAgLy8gU2VlIGh0dHA6Ly93d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9vcGVuZGF0YS9JbXBsZW1lbnRhdGlvbl9SZWZlcmVudGllbC9JZGVudGlmaWFudHNfUmVmZXJlbnRpZWxzLmh0bWxcbiAgLy8gZm9yIGEgZGVzY3JpcHRpb24gb2YgdGhlIGZvcm1hdCBvZiBhbiBVSUQuXG5cbiAgY29uc3QgZXh0ZW5zaW9uID0gZXh0ZW5zaW9uRnJvbURvY3VtZW50VXJsRm9ybWF0KGZvcm1hdClcbiAgY29uc3QgbWF0Y2ggPSAvXiguezR9KShbQU5TXSopKFJbMC05XSkoW0xTXSopKFswLTldKikoW0JUQUNQXSopKC4qKSQvLmV4ZWMoXG4gICAgZG9jdW1lbnQudWlkLFxuICApXG4gIGlmIChtYXRjaCA9PT0gbnVsbCkge1xuICAgIGNvbnNvbGUubG9nKFxuICAgICAgYFVuYWJsZSB0byBnZW5lcmF0ZSBVUkwgZnJvbSBkb2N1bWVudCB3aXRoIHVuZXhwZWN0ZWQgVUlEOiBcIiR7ZG9jdW1lbnQudWlkfVwiYCxcbiAgICApXG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICBjb25zdCBjaGFtYnJlID0gbWF0Y2hbMl1cbiAgaWYgKGNoYW1icmUgPT09IFwiU05cIikge1xuICAgIGNvbnNvbGUubG9nKFxuICAgICAgYFVuYWJsZSB0byBnZW5lcmF0ZSBVUkwgZm9yIGRvY3VtZW50IGluIFPDqW5hdC4gVUlEOiBcIiR7ZG9jdW1lbnQudWlkfVwiYCxcbiAgICApXG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICBjb25zdCBsZWdpc2xhdHVyZSA9IG1hdGNoWzVdXG4gIGxldCBudW1iZXIgPSBtYXRjaFs3XVxuICBpZiAoZm9ybWF0ID09PSBEb2N1bWVudFVybEZvcm1hdC5SYXdIdG1sKSB7XG4gICAgcmV0dXJuIGBodHRwOi8vd3d3LmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvJHtsZWdpc2xhdHVyZX0vdGV4dGVzLyR7bnVtYmVyfSR7ZXh0ZW5zaW9ufWBcbiAgfVxuICBsZXQgZG9jdW1lbnRUeXBlID1cbiAgICAoXG4gICAgICB7XG4gICAgICAgIEJUQzogXCJUQ09NXCIsXG4gICAgICAgIEJUQTogXCJUQURPXCIsXG4gICAgICAgIFRBUDogXCJUQURPXCIsXG4gICAgICB9IGFzIHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH1cbiAgICApW21hdGNoWzZdXSB8fCBtYXRjaFsxXVxuICBpZiAoXG4gICAgZG9jdW1lbnQuY2xhc3NpZmljYXRpb24gIT09IHVuZGVmaW5lZCAmJlxuICAgIGRvY3VtZW50LmNsYXNzaWZpY2F0aW9uLnNvdXNUeXBlICE9PSB1bmRlZmluZWQgJiZcbiAgICBkb2N1bWVudC5jbGFzc2lmaWNhdGlvbi5zb3VzVHlwZS5jb2RlID09PSBcIkNPTVBBXCJcbiAgKSB7XG4gICAgLy8gQW5uZXhlIGF1IHJhcHBvcnQgOiBUZXh0ZSBjb21wYXJhdGlmIENPTVBBXG4gICAgbnVtYmVyID0gbnVtYmVyLnJlcGxhY2UoLy1DT01QQS8sIFwiLWFDT01QQVwiKVxuICB9XG4gIGlmIChkb2N1bWVudFR5cGUgPT0gXCJBVkNFXCIpIHtcbiAgICBkb2N1bWVudFR5cGUgPSBgQVZDRSR7ZG9jdW1lbnQuY2xhc3NpZmljYXRpb24uZmFtaWxsZS5jbGFzc2UuY29kZX1gXG4gIH1cbiAgY29uc3QgZnJhZ21lbnRzID0gZG9jdW1lbnRVcmxGcmFnbWVudHNCeVR5cGVbZG9jdW1lbnRUeXBlXVxuICBpZiAoZnJhZ21lbnRzID09PSB1bmRlZmluZWQpIHtcbiAgICAvLyBGb3IgZXhhbXBsZTogQUxDTkFOUjVMMTVCMDAwMiAoYWxsb2N1dGlvbiBkdSBwcsOpc2lkZW50KVxuICAgIGNvbnNvbGUubG9nKFxuICAgICAgYFVuYWJsZSB0byBnZW5lcmF0ZSBVUkwgZnJvbSBkb2N1bWVudCBvZiBVSUQgXCIke2RvY3VtZW50LnVpZH1cIiBhbmQgdHlwZSBcIiR7ZG9jdW1lbnRUeXBlfVwiYCxcbiAgICApXG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICBjb25zdCBkaXJlY3RvcnkgPVxuICAgIGZvcm1hdCA9PT0gRG9jdW1lbnRVcmxGb3JtYXQuUGRmXG4gICAgICA/IGBwZGYvJHtmcmFnbWVudHMuZGlyZWN0b3J5fWBcbiAgICAgIDogZnJhZ21lbnRzLmRpcmVjdG9yeVxuICByZXR1cm4gYGh0dHA6Ly93d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci8ke2xlZ2lzbGF0dXJlfS8ke2RpcmVjdG9yeX0vJHtmcmFnbWVudHMucHJlZml4fSR7bnVtYmVyfSR7ZnJhZ21lbnRzLnN1ZmZpeH0ke2V4dGVuc2lvbn1gXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1cmxGcm9tU2NydXRpbihzY3J1dGluOiBTY3J1dGluKSB7XG4gIC8vIFNhbXBsZSBVSURzOiBWVEFOUjVMMTVWMzg5XG4gIGNvbnN0IG1hdGNoID0gL15WVEFOUihbMC05XSspTChbMC05XSspVihbMC05XSspJC8uZXhlYyhzY3J1dGluLnVpZClcbiAgaWYgKG1hdGNoID09PSBudWxsKSB7XG4gICAgY29uc29sZS5sb2coXG4gICAgICBgVW5hYmxlIHRvIGdlbmVyYXRlIFVSTCBmcm9tIHNjcnV0aW4gd2l0aCB1bmV4cGVjdGVkIFVJRDogXCIke3NjcnV0aW4udWlkfVwiYCxcbiAgICApXG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICBjb25zdCBsZWdpc2xhdHVyZSA9IG1hdGNoWzJdXG4gIGNvbnN0IG51bWVybyA9IG1hdGNoWzNdXG4gIHJldHVybiBgaHR0cDovL3d3dzIuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zY3J1dGlucy9kZXRhaWwvKGxlZ2lzbGF0dXJlKS8ke2xlZ2lzbGF0dXJlfS8obnVtKS8ke251bWVyb31gXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUVZQSxpQkFBaUIsRUFHTDtBQUFBQyxPQUFBLENBQUFELGlCQUFBLEdBQUFBLGlC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
196
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEb2N1bWVudFVybEZvcm1hdCIsImV4cG9ydHMiLCJkb2N1bWVudFVybEZyYWdtZW50c0J5VHlwZSIsIkFDSU4iLCJkaXJlY3RvcnkiLCJwcmVmaXgiLCJzdWZmaXgiLCJBVkNFUFJKTE9JIiwiQVZDRUxFVFRSRSIsIkFWQ0VQSU9OTE9JIiwiQVZJUyIsIkVUREkiLCJMRVRUIiwiUElPTiIsIlBOUkUiLCJQTlJFQVBQQVJUMzQxIiwiUE5SRUNPTUVOUSIsIlBOUkVNT0RSRUdMVEFOIiwiUE5SRVRWWElOU1RJVEVVUk9QIiwiUFJKTCIsIlJBUFAiLCJSSU5GIiwiUklPTiIsIlRBRE8iLCJUQ09NIiwiVENPTUNPTUVOUSIsIlRDT01NT0RSRUdMVEFOIiwiVENPTVRWWElOU1RJVEVVUk9QIiwiZXh0ZW5zaW9uRnJvbURvY3VtZW50VXJsRm9ybWF0IiwiZm9ybWF0IiwiSHRtbCIsIlBkZiIsIlJhd0h0bWwiLCJ1cmxGcm9tRG9jdW1lbnQiLCJkb2N1bWVudCIsImV4dGVuc2lvbiIsIm1hdGNoIiwiZXhlYyIsInVpZCIsImNvbnNvbGUiLCJsb2ciLCJjb25jYXQiLCJjaGFtYnJlIiwibGVnaXNsYXR1cmUiLCJudW1iZXIiLCJkb2N1bWVudFR5cGUiLCJCVEMiLCJCVEEiLCJUQVAiLCJjbGFzc2lmaWNhdGlvbiIsInVuZGVmaW5lZCIsInNvdXNUeXBlIiwiY29kZSIsInJlcGxhY2UiLCJmYW1pbGxlIiwiY2xhc3NlIiwiZnJhZ21lbnRzIiwidXJsRnJvbVNjcnV0aW4iLCJzY3J1dGluIiwibnVtZXJvIl0sInNvdXJjZXMiOlsiLi4vc3JjL3VybHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2NydXRpbiB9IGZyb20gXCIuL3R5cGVzL3NjcnV0aW5zXCJcblxuZXhwb3J0IGVudW0gRG9jdW1lbnRVcmxGb3JtYXQge1xuICBIdG1sID0gXCJodG1sXCIsXG4gIFBkZiA9IFwicGRmXCIsXG4gIFJhd0h0bWwgPSBcInJhdy1odG1sXCIsIC8vIFRoZSB2ZXJzaW9uIG9mIHRoZSBkb2N1bWVudCB0aGF0IGNhbiBiZSBwYXJzZWQgdG8gZXh0cmFjdCBkaXZpc2lvbnMgJiBhcnRpY2xlc1xufVxuXG5jb25zdCBkb2N1bWVudFVybEZyYWdtZW50c0J5VHlwZToge1xuICBbdHlwZTogc3RyaW5nXToge1xuICAgIGRpcmVjdG9yeTogc3RyaW5nXG4gICAgcHJlZml4OiBzdHJpbmdcbiAgICBzdWZmaXg6IHN0cmluZ1xuICB9XG59ID0ge1xuICBBQ0lOOiB7XG4gICAgZGlyZWN0b3J5OiBcInByb2pldHNcIixcbiAgICBwcmVmaXg6IFwicGxcIixcbiAgICBzdWZmaXg6IFwiLWFpXCIsXG4gIH0sXG4gIEFWQ0VQUkpMT0k6IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvamV0c1wiLFxuICAgIHByZWZpeDogXCJwbFwiLFxuICAgIHN1ZmZpeDogXCItYWNlXCIsXG4gIH0sXG4gIEFWQ0VMRVRUUkU6IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvamV0c1wiLFxuICAgIHByZWZpeDogXCJwbFwiLFxuICAgIHN1ZmZpeDogXCItYWNlXCIsXG4gIH0sXG4gIEFWQ0VQSU9OTE9JOiB7XG4gICAgZGlyZWN0b3J5OiBcInByb3Bvc2l0aW9uc1wiLFxuICAgIHByZWZpeDogXCJwaW9uXCIsXG4gICAgc3VmZml4OiBcIi1hY2VcIixcbiAgfSxcbiAgQVZJUzoge1xuICAgIGRpcmVjdG9yeTogXCJyYXBwb3J0c1wiLFxuICAgIHByZWZpeDogXCJyXCIsXG4gICAgc3VmZml4OiBcIlwiLFxuICB9LFxuICBFVERJOiB7XG4gICAgZGlyZWN0b3J5OiBcInByb2pldHNcIixcbiAgICBwcmVmaXg6IFwicGxcIixcbiAgICBzdWZmaXg6IFwiLWVpXCIsXG4gIH0sXG4gIExFVFQ6IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvamV0c1wiLFxuICAgIHByZWZpeDogXCJwbFwiLFxuICAgIHN1ZmZpeDogXCItbFwiLFxuICB9LFxuICBQSU9OOiB7XG4gICAgZGlyZWN0b3J5OiBcInByb3Bvc2l0aW9uc1wiLFxuICAgIHByZWZpeDogXCJwaW9uXCIsXG4gICAgc3VmZml4OiBcIlwiLFxuICB9LFxuICBQTlJFOiB7XG4gICAgZGlyZWN0b3J5OiBcInByb3Bvc2l0aW9uc1wiLFxuICAgIHByZWZpeDogXCJwaW9uXCIsXG4gICAgc3VmZml4OiBcIlwiLFxuICB9LFxuICBQTlJFQVBQQVJUMzQxOiB7XG4gICAgZGlyZWN0b3J5OiBcInByb3Bvc2l0aW9uc1wiLFxuICAgIHByZWZpeDogXCJwaW9uXCIsXG4gICAgc3VmZml4OiBcIlwiLFxuICB9LFxuICBQTlJFQ09NRU5ROiB7XG4gICAgZGlyZWN0b3J5OiBcInByb3Bvc2l0aW9uc1wiLFxuICAgIHByZWZpeDogXCJwaW9uXCIsXG4gICAgc3VmZml4OiBcIlwiLFxuICB9LFxuICBQTlJFTU9EUkVHTFRBTjoge1xuICAgIGRpcmVjdG9yeTogXCJwcm9wb3NpdGlvbnNcIixcbiAgICBwcmVmaXg6IFwicGlvblwiLFxuICAgIHN1ZmZpeDogXCJcIixcbiAgfSxcbiAgUE5SRVRWWElOU1RJVEVVUk9QOiB7XG4gICAgZGlyZWN0b3J5OiBcImV1cm9wZS9yZXNvbHV0aW9uc1wiLFxuICAgIHByZWZpeDogXCJwcGVcIixcbiAgICBzdWZmaXg6IFwiXCIsXG4gIH0sXG4gIFBSSkw6IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvamV0c1wiLFxuICAgIHByZWZpeDogXCJwbFwiLFxuICAgIHN1ZmZpeDogXCJcIixcbiAgfSxcbiAgUkFQUDoge1xuICAgIGRpcmVjdG9yeTogXCJyYXBwb3J0c1wiLFxuICAgIHByZWZpeDogXCJyXCIsXG4gICAgc3VmZml4OiBcIlwiLFxuICB9LFxuICBSSU5GOiB7XG4gICAgZGlyZWN0b3J5OiBcInJhcC1pbmZvXCIsXG4gICAgcHJlZml4OiBcImlcIixcbiAgICBzdWZmaXg6IFwiXCIsXG4gIH0sXG4gIFJJT046IHtcbiAgICBkaXJlY3Rvcnk6IFwiXCIsXG4gICAgcHJlZml4OiBcIlwiLFxuICAgIHN1ZmZpeDogXCJcIixcbiAgfSxcbiAgVEFETzoge1xuICAgIGRpcmVjdG9yeTogXCJ0YVwiLFxuICAgIHByZWZpeDogXCJ0YVwiLFxuICAgIHN1ZmZpeDogXCJcIixcbiAgfSxcbiAgVENPTToge1xuICAgIGRpcmVjdG9yeTogXCJ0YS1jb21taXNzaW9uXCIsXG4gICAgcHJlZml4OiBcInJcIixcbiAgICBzdWZmaXg6IFwiLWEwXCIsXG4gIH0sXG4gIFRDT01DT01FTlE6IHtcbiAgICBkaXJlY3Rvcnk6IFwidGEtY29tbWlzc2lvblwiLFxuICAgIHByZWZpeDogXCJyXCIsXG4gICAgc3VmZml4OiBcIi1hMFwiLFxuICB9LFxuICBUQ09NTU9EUkVHTFRBTjoge1xuICAgIGRpcmVjdG9yeTogXCJ0YS1jb21taXNzaW9uXCIsXG4gICAgcHJlZml4OiBcInJcIixcbiAgICBzdWZmaXg6IFwiLWEwXCIsXG4gIH0sXG4gIFRDT01UVlhJTlNUSVRFVVJPUDoge1xuICAgIGRpcmVjdG9yeTogXCJ0YS1jb21taXNzaW9uXCIsXG4gICAgcHJlZml4OiBcInJcIixcbiAgICBzdWZmaXg6IFwiLWEwXCIsXG4gIH0sXG59XG5cbmZ1bmN0aW9uIGV4dGVuc2lvbkZyb21Eb2N1bWVudFVybEZvcm1hdChmb3JtYXQ6IERvY3VtZW50VXJsRm9ybWF0KTogc3RyaW5nIHtcbiAgc3dpdGNoIChmb3JtYXQpIHtcbiAgICBjYXNlIERvY3VtZW50VXJsRm9ybWF0Lkh0bWw6XG4gICAgICByZXR1cm4gXCIuYXNwXCJcbiAgICBjYXNlIERvY3VtZW50VXJsRm9ybWF0LlBkZjpcbiAgICAgIHJldHVybiBcIi5wZGZcIlxuICAgIGNhc2UgRG9jdW1lbnRVcmxGb3JtYXQuUmF3SHRtbDpcbiAgICAgIHJldHVybiBcIi5hc3BcIlxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1cmxGcm9tRG9jdW1lbnQoXG4gIGRvY3VtZW50OiBhbnksXG4gIGZvcm1hdDogRG9jdW1lbnRVcmxGb3JtYXQsXG4pOiBzdHJpbmcgfCBudWxsIHtcbiAgLy8gQ29kZSB0YWtlbiBmcm9tIGZ1bmN0aW9uIGBhbl90ZXh0X3VybGAgaW4gcHJvamVjdCBhbnB5OlxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vcmVnYXJkc2NpdG95ZW5zL2FucHkvYmxvYi9tYXN0ZXIvYW5weS9kb3NzaWVyX2Zyb21fb3BlbmRhdGEucHlcbiAgLy8gU2VlIGh0dHA6Ly93d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9vcGVuZGF0YS9JbXBsZW1lbnRhdGlvbl9SZWZlcmVudGllbC9JZGVudGlmaWFudHNfUmVmZXJlbnRpZWxzLmh0bWxcbiAgLy8gZm9yIGEgZGVzY3JpcHRpb24gb2YgdGhlIGZvcm1hdCBvZiBhbiBVSUQuXG5cbiAgY29uc3QgZXh0ZW5zaW9uID0gZXh0ZW5zaW9uRnJvbURvY3VtZW50VXJsRm9ybWF0KGZvcm1hdClcbiAgY29uc3QgbWF0Y2ggPSAvXiguezR9KShbQU5TXSopKFJbMC05XSkoW0xTXSopKFswLTldKikoW0JUQUNQXSopKC4qKSQvLmV4ZWMoXG4gICAgZG9jdW1lbnQudWlkLFxuICApXG4gIGlmIChtYXRjaCA9PT0gbnVsbCkge1xuICAgIGNvbnNvbGUubG9nKFxuICAgICAgYFVuYWJsZSB0byBnZW5lcmF0ZSBVUkwgZnJvbSBkb2N1bWVudCB3aXRoIHVuZXhwZWN0ZWQgVUlEOiBcIiR7ZG9jdW1lbnQudWlkfVwiYCxcbiAgICApXG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICBjb25zdCBjaGFtYnJlID0gbWF0Y2hbMl1cbiAgaWYgKGNoYW1icmUgPT09IFwiU05cIikge1xuICAgIGNvbnNvbGUubG9nKFxuICAgICAgYFVuYWJsZSB0byBnZW5lcmF0ZSBVUkwgZm9yIGRvY3VtZW50IGluIFPDqW5hdC4gVUlEOiBcIiR7ZG9jdW1lbnQudWlkfVwiYCxcbiAgICApXG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICBjb25zdCBsZWdpc2xhdHVyZSA9IG1hdGNoWzVdXG4gIGxldCBudW1iZXIgPSBtYXRjaFs3XVxuICBpZiAoZm9ybWF0ID09PSBEb2N1bWVudFVybEZvcm1hdC5SYXdIdG1sKSB7XG4gICAgcmV0dXJuIGBodHRwOi8vd3d3LmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvJHtsZWdpc2xhdHVyZX0vdGV4dGVzLyR7bnVtYmVyfSR7ZXh0ZW5zaW9ufWBcbiAgfVxuICBsZXQgZG9jdW1lbnRUeXBlID1cbiAgICAoXG4gICAgICB7XG4gICAgICAgIEJUQzogXCJUQ09NXCIsXG4gICAgICAgIEJUQTogXCJUQURPXCIsXG4gICAgICAgIFRBUDogXCJUQURPXCIsXG4gICAgICB9IGFzIHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH1cbiAgICApW21hdGNoWzZdXSB8fCBtYXRjaFsxXVxuICBpZiAoXG4gICAgZG9jdW1lbnQuY2xhc3NpZmljYXRpb24gIT09IHVuZGVmaW5lZCAmJlxuICAgIGRvY3VtZW50LmNsYXNzaWZpY2F0aW9uLnNvdXNUeXBlICE9PSB1bmRlZmluZWQgJiZcbiAgICBkb2N1bWVudC5jbGFzc2lmaWNhdGlvbi5zb3VzVHlwZS5jb2RlID09PSBcIkNPTVBBXCJcbiAgKSB7XG4gICAgLy8gQW5uZXhlIGF1IHJhcHBvcnQgOiBUZXh0ZSBjb21wYXJhdGlmIENPTVBBXG4gICAgbnVtYmVyID0gbnVtYmVyLnJlcGxhY2UoLy1DT01QQS8sIFwiLWFDT01QQVwiKVxuICB9XG4gIGlmIChkb2N1bWVudFR5cGUgPT0gXCJBVkNFXCIpIHtcbiAgICBkb2N1bWVudFR5cGUgPSBgQVZDRSR7ZG9jdW1lbnQuY2xhc3NpZmljYXRpb24uZmFtaWxsZS5jbGFzc2UuY29kZX1gXG4gIH1cbiAgY29uc3QgZnJhZ21lbnRzID0gZG9jdW1lbnRVcmxGcmFnbWVudHNCeVR5cGVbZG9jdW1lbnRUeXBlXVxuICBpZiAoZnJhZ21lbnRzID09PSB1bmRlZmluZWQpIHtcbiAgICAvLyBGb3IgZXhhbXBsZTogQUxDTkFOUjVMMTVCMDAwMiAoYWxsb2N1dGlvbiBkdSBwcsOpc2lkZW50KVxuICAgIGNvbnNvbGUubG9nKFxuICAgICAgYFVuYWJsZSB0byBnZW5lcmF0ZSBVUkwgZnJvbSBkb2N1bWVudCBvZiBVSUQgXCIke2RvY3VtZW50LnVpZH1cIiBhbmQgdHlwZSBcIiR7ZG9jdW1lbnRUeXBlfVwiYCxcbiAgICApXG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICBjb25zdCBkaXJlY3RvcnkgPVxuICAgIGZvcm1hdCA9PT0gRG9jdW1lbnRVcmxGb3JtYXQuUGRmXG4gICAgICA/IGBwZGYvJHtmcmFnbWVudHMuZGlyZWN0b3J5fWBcbiAgICAgIDogZnJhZ21lbnRzLmRpcmVjdG9yeVxuICByZXR1cm4gYGh0dHA6Ly93d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci8ke2xlZ2lzbGF0dXJlfS8ke2RpcmVjdG9yeX0vJHtmcmFnbWVudHMucHJlZml4fSR7bnVtYmVyfSR7ZnJhZ21lbnRzLnN1ZmZpeH0ke2V4dGVuc2lvbn1gXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1cmxGcm9tU2NydXRpbihzY3J1dGluOiBTY3J1dGluKSB7XG4gIC8vIFNhbXBsZSBVSURzOiBWVEFOUjVMMTVWMzg5XG4gIGNvbnN0IG1hdGNoID0gL15WVEFOUihbMC05XSspTChbMC05XSspVihbMC05XSspJC8uZXhlYyhzY3J1dGluLnVpZClcbiAgaWYgKG1hdGNoID09PSBudWxsKSB7XG4gICAgY29uc29sZS5sb2coXG4gICAgICBgVW5hYmxlIHRvIGdlbmVyYXRlIFVSTCBmcm9tIHNjcnV0aW4gd2l0aCB1bmV4cGVjdGVkIFVJRDogXCIke3NjcnV0aW4udWlkfVwiYCxcbiAgICApXG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICBjb25zdCBsZWdpc2xhdHVyZSA9IG1hdGNoWzJdXG4gIGNvbnN0IG51bWVybyA9IG1hdGNoWzNdXG4gIHJldHVybiBgaHR0cDovL3d3dzIuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zY3J1dGlucy9kZXRhaWwvKGxlZ2lzbGF0dXJlKS8ke2xlZ2lzbGF0dXJlfS8obnVtKS8ke251bWVyb31gXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUVZQSxpQkFBaUIsMEJBQWpCQSxpQkFBaUI7RUFBakJBLGlCQUFpQjtFQUFqQkEs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
package/lib/urls.mjs CHANGED
@@ -1,9 +1,9 @@
1
- export let DocumentUrlFormat; // The version of the document that can be parsed to extract divisions & articles
2
- (function (DocumentUrlFormat) {
1
+ export let DocumentUrlFormat = /*#__PURE__*/function (DocumentUrlFormat) {
3
2
  DocumentUrlFormat["Html"] = "html";
4
3
  DocumentUrlFormat["Pdf"] = "pdf";
5
4
  DocumentUrlFormat["RawHtml"] = "raw-html";
6
- })(DocumentUrlFormat || (DocumentUrlFormat = {}));
5
+ return DocumentUrlFormat;
6
+ }({}); // The version of the document that can be parsed to extract divisions & articles
7
7
  const documentUrlFragmentsByType = {
8
8
  ACIN: {
9
9
  directory: "projets",
@@ -180,4 +180,4 @@ export function urlFromScrutin(scrutin) {
180
180
  const numero = match[3];
181
181
  return `http://www2.assemblee-nationale.fr/scrutins/detail/(legislature)/${legislature}/(num)/${numero}`;
182
182
  }
183
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEb2N1bWVudFVybEZvcm1hdCIsImRvY3VtZW50VXJsRnJhZ21lbnRzQnlUeXBlIiwiQUNJTiIsImRpcmVjdG9yeSIsInByZWZpeCIsInN1ZmZpeCIsIkFWQ0VQUkpMT0kiLCJBVkNFTEVUVFJFIiwiQVZDRVBJT05MT0kiLCJBVklTIiwiRVRESSIsIkxFVFQiLCJQSU9OIiwiUE5SRSIsIlBOUkVBUFBBUlQzNDEiLCJQTlJFQ09NRU5RIiwiUE5SRU1PRFJFR0xUQU4iLCJQTlJFVFZYSU5TVElURVVST1AiLCJQUkpMIiwiUkFQUCIsIlJJTkYiLCJSSU9OIiwiVEFETyIsIlRDT00iLCJUQ09NQ09NRU5RIiwiVENPTU1PRFJFR0xUQU4iLCJUQ09NVFZYSU5TVElURVVST1AiLCJleHRlbnNpb25Gcm9tRG9jdW1lbnRVcmxGb3JtYXQiLCJmb3JtYXQiLCJIdG1sIiwiUGRmIiwiUmF3SHRtbCIsInVybEZyb21Eb2N1bWVudCIsImRvY3VtZW50IiwiZXh0ZW5zaW9uIiwibWF0Y2giLCJleGVjIiwidWlkIiwiY29uc29sZSIsImxvZyIsImNoYW1icmUiLCJsZWdpc2xhdHVyZSIsIm51bWJlciIsImRvY3VtZW50VHlwZSIsIkJUQyIsIkJUQSIsIlRBUCIsImNsYXNzaWZpY2F0aW9uIiwidW5kZWZpbmVkIiwic291c1R5cGUiLCJjb2RlIiwicmVwbGFjZSIsImZhbWlsbGUiLCJjbGFzc2UiLCJmcmFnbWVudHMiLCJ1cmxGcm9tU2NydXRpbiIsInNjcnV0aW4iLCJudW1lcm8iXSwic291cmNlcyI6WyIuLi9zcmMvdXJscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTY3J1dGluIH0gZnJvbSBcIi4vdHlwZXMvc2NydXRpbnNcIlxuXG5leHBvcnQgZW51bSBEb2N1bWVudFVybEZvcm1hdCB7XG4gIEh0bWwgPSBcImh0bWxcIixcbiAgUGRmID0gXCJwZGZcIixcbiAgUmF3SHRtbCA9IFwicmF3LWh0bWxcIiwgLy8gVGhlIHZlcnNpb24gb2YgdGhlIGRvY3VtZW50IHRoYXQgY2FuIGJlIHBhcnNlZCB0byBleHRyYWN0IGRpdmlzaW9ucyAmIGFydGljbGVzXG59XG5cbmNvbnN0IGRvY3VtZW50VXJsRnJhZ21lbnRzQnlUeXBlOiB7XG4gIFt0eXBlOiBzdHJpbmddOiB7XG4gICAgZGlyZWN0b3J5OiBzdHJpbmdcbiAgICBwcmVmaXg6IHN0cmluZ1xuICAgIHN1ZmZpeDogc3RyaW5nXG4gIH1cbn0gPSB7XG4gIEFDSU46IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvamV0c1wiLFxuICAgIHByZWZpeDogXCJwbFwiLFxuICAgIHN1ZmZpeDogXCItYWlcIixcbiAgfSxcbiAgQVZDRVBSSkxPSToge1xuICAgIGRpcmVjdG9yeTogXCJwcm9qZXRzXCIsXG4gICAgcHJlZml4OiBcInBsXCIsXG4gICAgc3VmZml4OiBcIi1hY2VcIixcbiAgfSxcbiAgQVZDRUxFVFRSRToge1xuICAgIGRpcmVjdG9yeTogXCJwcm9qZXRzXCIsXG4gICAgcHJlZml4OiBcInBsXCIsXG4gICAgc3VmZml4OiBcIi1hY2VcIixcbiAgfSxcbiAgQVZDRVBJT05MT0k6IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvcG9zaXRpb25zXCIsXG4gICAgcHJlZml4OiBcInBpb25cIixcbiAgICBzdWZmaXg6IFwiLWFjZVwiLFxuICB9LFxuICBBVklTOiB7XG4gICAgZGlyZWN0b3J5OiBcInJhcHBvcnRzXCIsXG4gICAgcHJlZml4OiBcInJcIixcbiAgICBzdWZmaXg6IFwiXCIsXG4gIH0sXG4gIEVUREk6IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvamV0c1wiLFxuICAgIHByZWZpeDogXCJwbFwiLFxuICAgIHN1ZmZpeDogXCItZWlcIixcbiAgfSxcbiAgTEVUVDoge1xuICAgIGRpcmVjdG9yeTogXCJwcm9qZXRzXCIsXG4gICAgcHJlZml4OiBcInBsXCIsXG4gICAgc3VmZml4OiBcIi1sXCIsXG4gIH0sXG4gIFBJT046IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvcG9zaXRpb25zXCIsXG4gICAgcHJlZml4OiBcInBpb25cIixcbiAgICBzdWZmaXg6IFwiXCIsXG4gIH0sXG4gIFBOUkU6IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvcG9zaXRpb25zXCIsXG4gICAgcHJlZml4OiBcInBpb25cIixcbiAgICBzdWZmaXg6IFwiXCIsXG4gIH0sXG4gIFBOUkVBUFBBUlQzNDE6IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvcG9zaXRpb25zXCIsXG4gICAgcHJlZml4OiBcInBpb25cIixcbiAgICBzdWZmaXg6IFwiXCIsXG4gIH0sXG4gIFBOUkVDT01FTlE6IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvcG9zaXRpb25zXCIsXG4gICAgcHJlZml4OiBcInBpb25cIixcbiAgICBzdWZmaXg6IFwiXCIsXG4gIH0sXG4gIFBOUkVNT0RSRUdMVEFOOiB7XG4gICAgZGlyZWN0b3J5OiBcInByb3Bvc2l0aW9uc1wiLFxuICAgIHByZWZpeDogXCJwaW9uXCIsXG4gICAgc3VmZml4OiBcIlwiLFxuICB9LFxuICBQTlJFVFZYSU5TVElURVVST1A6IHtcbiAgICBkaXJlY3Rvcnk6IFwiZXVyb3BlL3Jlc29sdXRpb25zXCIsXG4gICAgcHJlZml4OiBcInBwZVwiLFxuICAgIHN1ZmZpeDogXCJcIixcbiAgfSxcbiAgUFJKTDoge1xuICAgIGRpcmVjdG9yeTogXCJwcm9qZXRzXCIsXG4gICAgcHJlZml4OiBcInBsXCIsXG4gICAgc3VmZml4OiBcIlwiLFxuICB9LFxuICBSQVBQOiB7XG4gICAgZGlyZWN0b3J5OiBcInJhcHBvcnRzXCIsXG4gICAgcHJlZml4OiBcInJcIixcbiAgICBzdWZmaXg6IFwiXCIsXG4gIH0sXG4gIFJJTkY6IHtcbiAgICBkaXJlY3Rvcnk6IFwicmFwLWluZm9cIixcbiAgICBwcmVmaXg6IFwiaVwiLFxuICAgIHN1ZmZpeDogXCJcIixcbiAgfSxcbiAgUklPTjoge1xuICAgIGRpcmVjdG9yeTogXCJcIixcbiAgICBwcmVmaXg6IFwiXCIsXG4gICAgc3VmZml4OiBcIlwiLFxuICB9LFxuICBUQURPOiB7XG4gICAgZGlyZWN0b3J5OiBcInRhXCIsXG4gICAgcHJlZml4OiBcInRhXCIsXG4gICAgc3VmZml4OiBcIlwiLFxuICB9LFxuICBUQ09NOiB7XG4gICAgZGlyZWN0b3J5OiBcInRhLWNvbW1pc3Npb25cIixcbiAgICBwcmVmaXg6IFwiclwiLFxuICAgIHN1ZmZpeDogXCItYTBcIixcbiAgfSxcbiAgVENPTUNPTUVOUToge1xuICAgIGRpcmVjdG9yeTogXCJ0YS1jb21taXNzaW9uXCIsXG4gICAgcHJlZml4OiBcInJcIixcbiAgICBzdWZmaXg6IFwiLWEwXCIsXG4gIH0sXG4gIFRDT01NT0RSRUdMVEFOOiB7XG4gICAgZGlyZWN0b3J5OiBcInRhLWNvbW1pc3Npb25cIixcbiAgICBwcmVmaXg6IFwiclwiLFxuICAgIHN1ZmZpeDogXCItYTBcIixcbiAgfSxcbiAgVENPTVRWWElOU1RJVEVVUk9QOiB7XG4gICAgZGlyZWN0b3J5OiBcInRhLWNvbW1pc3Npb25cIixcbiAgICBwcmVmaXg6IFwiclwiLFxuICAgIHN1ZmZpeDogXCItYTBcIixcbiAgfSxcbn1cblxuZnVuY3Rpb24gZXh0ZW5zaW9uRnJvbURvY3VtZW50VXJsRm9ybWF0KGZvcm1hdDogRG9jdW1lbnRVcmxGb3JtYXQpOiBzdHJpbmcge1xuICBzd2l0Y2ggKGZvcm1hdCkge1xuICAgIGNhc2UgRG9jdW1lbnRVcmxGb3JtYXQuSHRtbDpcbiAgICAgIHJldHVybiBcIi5hc3BcIlxuICAgIGNhc2UgRG9jdW1lbnRVcmxGb3JtYXQuUGRmOlxuICAgICAgcmV0dXJuIFwiLnBkZlwiXG4gICAgY2FzZSBEb2N1bWVudFVybEZvcm1hdC5SYXdIdG1sOlxuICAgICAgcmV0dXJuIFwiLmFzcFwiXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVybEZyb21Eb2N1bWVudChcbiAgZG9jdW1lbnQ6IGFueSxcbiAgZm9ybWF0OiBEb2N1bWVudFVybEZvcm1hdCxcbik6IHN0cmluZyB8IG51bGwge1xuICAvLyBDb2RlIHRha2VuIGZyb20gZnVuY3Rpb24gYGFuX3RleHRfdXJsYCBpbiBwcm9qZWN0IGFucHk6XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9yZWdhcmRzY2l0b3llbnMvYW5weS9ibG9iL21hc3Rlci9hbnB5L2Rvc3NpZXJfZnJvbV9vcGVuZGF0YS5weVxuICAvLyBTZWUgaHR0cDovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL29wZW5kYXRhL0ltcGxlbWVudGF0aW9uX1JlZmVyZW50aWVsL0lkZW50aWZpYW50c19SZWZlcmVudGllbHMuaHRtbFxuICAvLyBmb3IgYSBkZXNjcmlwdGlvbiBvZiB0aGUgZm9ybWF0IG9mIGFuIFVJRC5cblxuICBjb25zdCBleHRlbnNpb24gPSBleHRlbnNpb25Gcm9tRG9jdW1lbnRVcmxGb3JtYXQoZm9ybWF0KVxuICBjb25zdCBtYXRjaCA9IC9eKC57NH0pKFtBTlNdKikoUlswLTldKShbTFNdKikoWzAtOV0qKShbQlRBQ1BdKikoLiopJC8uZXhlYyhcbiAgICBkb2N1bWVudC51aWQsXG4gIClcbiAgaWYgKG1hdGNoID09PSBudWxsKSB7XG4gICAgY29uc29sZS5sb2coXG4gICAgICBgVW5hYmxlIHRvIGdlbmVyYXRlIFVSTCBmcm9tIGRvY3VtZW50IHdpdGggdW5leHBlY3RlZCBVSUQ6IFwiJHtkb2N1bWVudC51aWR9XCJgLFxuICAgIClcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIGNvbnN0IGNoYW1icmUgPSBtYXRjaFsyXVxuICBpZiAoY2hhbWJyZSA9PT0gXCJTTlwiKSB7XG4gICAgY29uc29sZS5sb2coXG4gICAgICBgVW5hYmxlIHRvIGdlbmVyYXRlIFVSTCBmb3IgZG9jdW1lbnQgaW4gU8OpbmF0LiBVSUQ6IFwiJHtkb2N1bWVudC51aWR9XCJgLFxuICAgIClcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIGNvbnN0IGxlZ2lzbGF0dXJlID0gbWF0Y2hbNV1cbiAgbGV0IG51bWJlciA9IG1hdGNoWzddXG4gIGlmIChmb3JtYXQgPT09IERvY3VtZW50VXJsRm9ybWF0LlJhd0h0bWwpIHtcbiAgICByZXR1cm4gYGh0dHA6Ly93d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci8ke2xlZ2lzbGF0dXJlfS90ZXh0ZXMvJHtudW1iZXJ9JHtleHRlbnNpb259YFxuICB9XG4gIGxldCBkb2N1bWVudFR5cGUgPVxuICAgIChcbiAgICAgIHtcbiAgICAgICAgQlRDOiBcIlRDT01cIixcbiAgICAgICAgQlRBOiBcIlRBRE9cIixcbiAgICAgICAgVEFQOiBcIlRBRE9cIixcbiAgICAgIH0gYXMgeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfVxuICAgIClbbWF0Y2hbNl1dIHx8IG1hdGNoWzFdXG4gIGlmIChcbiAgICBkb2N1bWVudC5jbGFzc2lmaWNhdGlvbiAhPT0gdW5kZWZpbmVkICYmXG4gICAgZG9jdW1lbnQuY2xhc3NpZmljYXRpb24uc291c1R5cGUgIT09IHVuZGVmaW5lZCAmJlxuICAgIGRvY3VtZW50LmNsYXNzaWZpY2F0aW9uLnNvdXNUeXBlLmNvZGUgPT09IFwiQ09NUEFcIlxuICApIHtcbiAgICAvLyBBbm5leGUgYXUgcmFwcG9ydCA6IFRleHRlIGNvbXBhcmF0aWYgQ09NUEFcbiAgICBudW1iZXIgPSBudW1iZXIucmVwbGFjZSgvLUNPTVBBLywgXCItYUNPTVBBXCIpXG4gIH1cbiAgaWYgKGRvY3VtZW50VHlwZSA9PSBcIkFWQ0VcIikge1xuICAgIGRvY3VtZW50VHlwZSA9IGBBVkNFJHtkb2N1bWVudC5jbGFzc2lmaWNhdGlvbi5mYW1pbGxlLmNsYXNzZS5jb2RlfWBcbiAgfVxuICBjb25zdCBmcmFnbWVudHMgPSBkb2N1bWVudFVybEZyYWdtZW50c0J5VHlwZVtkb2N1bWVudFR5cGVdXG4gIGlmIChmcmFnbWVudHMgPT09IHVuZGVmaW5lZCkge1xuICAgIC8vIEZvciBleGFtcGxlOiBBTENOQU5SNUwxNUIwMDAyIChhbGxvY3V0aW9uIGR1IHByw6lzaWRlbnQpXG4gICAgY29uc29sZS5sb2coXG4gICAgICBgVW5hYmxlIHRvIGdlbmVyYXRlIFVSTCBmcm9tIGRvY3VtZW50IG9mIFVJRCBcIiR7ZG9jdW1lbnQudWlkfVwiIGFuZCB0eXBlIFwiJHtkb2N1bWVudFR5cGV9XCJgLFxuICAgIClcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIGNvbnN0IGRpcmVjdG9yeSA9XG4gICAgZm9ybWF0ID09PSBEb2N1bWVudFVybEZvcm1hdC5QZGZcbiAgICAgID8gYHBkZi8ke2ZyYWdtZW50cy5kaXJlY3Rvcnl9YFxuICAgICAgOiBmcmFnbWVudHMuZGlyZWN0b3J5XG4gIHJldHVybiBgaHR0cDovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyLyR7bGVnaXNsYXR1cmV9LyR7ZGlyZWN0b3J5fS8ke2ZyYWdtZW50cy5wcmVmaXh9JHtudW1iZXJ9JHtmcmFnbWVudHMuc3VmZml4fSR7ZXh0ZW5zaW9ufWBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVybEZyb21TY3J1dGluKHNjcnV0aW46IFNjcnV0aW4pIHtcbiAgLy8gU2FtcGxlIFVJRHM6IFZUQU5SNUwxNVYzODlcbiAgY29uc3QgbWF0Y2ggPSAvXlZUQU5SKFswLTldKylMKFswLTldKylWKFswLTldKykkLy5leGVjKHNjcnV0aW4udWlkKVxuICBpZiAobWF0Y2ggPT09IG51bGwpIHtcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIGBVbmFibGUgdG8gZ2VuZXJhdGUgVVJMIGZyb20gc2NydXRpbiB3aXRoIHVuZXhwZWN0ZWQgVUlEOiBcIiR7c2NydXRpbi51aWR9XCJgLFxuICAgIClcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIGNvbnN0IGxlZ2lzbGF0dXJlID0gbWF0Y2hbMl1cbiAgY29uc3QgbnVtZXJvID0gbWF0Y2hbM11cbiAgcmV0dXJuIGBodHRwOi8vd3d3Mi5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3NjcnV0aW5zL2RldGFpbC8obGVnaXNsYXR1cmUpLyR7bGVnaXNsYXR1cmV9LyhudW0pLyR7bnVtZXJvfWBcbn1cbiJdLCJtYXBwaW5ncyI6IkFBRUEsV0FBWUEsaUJBQWlCLEVBR0w7QUFDdkIsV0FKV0EsaUJBQWlCO0VBQWpCQSxpQkFBaUI7RUFBakJBLGlCQUFpQjtFQUFqQkEsaUJB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
183
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEb2N1bWVudFVybEZvcm1hdCIsImRvY3VtZW50VXJsRnJhZ21lbnRzQnlUeXBlIiwiQUNJTiIsImRpcmVjdG9yeSIsInByZWZpeCIsInN1ZmZpeCIsIkFWQ0VQUkpMT0kiLCJBVkNFTEVUVFJFIiwiQVZDRVBJT05MT0kiLCJBVklTIiwiRVRESSIsIkxFVFQiLCJQSU9OIiwiUE5SRSIsIlBOUkVBUFBBUlQzNDEiLCJQTlJFQ09NRU5RIiwiUE5SRU1PRFJFR0xUQU4iLCJQTlJFVFZYSU5TVElURVVST1AiLCJQUkpMIiwiUkFQUCIsIlJJTkYiLCJSSU9OIiwiVEFETyIsIlRDT00iLCJUQ09NQ09NRU5RIiwiVENPTU1PRFJFR0xUQU4iLCJUQ09NVFZYSU5TVElURVVST1AiLCJleHRlbnNpb25Gcm9tRG9jdW1lbnRVcmxGb3JtYXQiLCJmb3JtYXQiLCJIdG1sIiwiUGRmIiwiUmF3SHRtbCIsInVybEZyb21Eb2N1bWVudCIsImRvY3VtZW50IiwiZXh0ZW5zaW9uIiwibWF0Y2giLCJleGVjIiwidWlkIiwiY29uc29sZSIsImxvZyIsImNoYW1icmUiLCJsZWdpc2xhdHVyZSIsIm51bWJlciIsImRvY3VtZW50VHlwZSIsIkJUQyIsIkJUQSIsIlRBUCIsImNsYXNzaWZpY2F0aW9uIiwidW5kZWZpbmVkIiwic291c1R5cGUiLCJjb2RlIiwicmVwbGFjZSIsImZhbWlsbGUiLCJjbGFzc2UiLCJmcmFnbWVudHMiLCJ1cmxGcm9tU2NydXRpbiIsInNjcnV0aW4iLCJudW1lcm8iXSwic291cmNlcyI6WyIuLi9zcmMvdXJscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTY3J1dGluIH0gZnJvbSBcIi4vdHlwZXMvc2NydXRpbnNcIlxuXG5leHBvcnQgZW51bSBEb2N1bWVudFVybEZvcm1hdCB7XG4gIEh0bWwgPSBcImh0bWxcIixcbiAgUGRmID0gXCJwZGZcIixcbiAgUmF3SHRtbCA9IFwicmF3LWh0bWxcIiwgLy8gVGhlIHZlcnNpb24gb2YgdGhlIGRvY3VtZW50IHRoYXQgY2FuIGJlIHBhcnNlZCB0byBleHRyYWN0IGRpdmlzaW9ucyAmIGFydGljbGVzXG59XG5cbmNvbnN0IGRvY3VtZW50VXJsRnJhZ21lbnRzQnlUeXBlOiB7XG4gIFt0eXBlOiBzdHJpbmddOiB7XG4gICAgZGlyZWN0b3J5OiBzdHJpbmdcbiAgICBwcmVmaXg6IHN0cmluZ1xuICAgIHN1ZmZpeDogc3RyaW5nXG4gIH1cbn0gPSB7XG4gIEFDSU46IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvamV0c1wiLFxuICAgIHByZWZpeDogXCJwbFwiLFxuICAgIHN1ZmZpeDogXCItYWlcIixcbiAgfSxcbiAgQVZDRVBSSkxPSToge1xuICAgIGRpcmVjdG9yeTogXCJwcm9qZXRzXCIsXG4gICAgcHJlZml4OiBcInBsXCIsXG4gICAgc3VmZml4OiBcIi1hY2VcIixcbiAgfSxcbiAgQVZDRUxFVFRSRToge1xuICAgIGRpcmVjdG9yeTogXCJwcm9qZXRzXCIsXG4gICAgcHJlZml4OiBcInBsXCIsXG4gICAgc3VmZml4OiBcIi1hY2VcIixcbiAgfSxcbiAgQVZDRVBJT05MT0k6IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvcG9zaXRpb25zXCIsXG4gICAgcHJlZml4OiBcInBpb25cIixcbiAgICBzdWZmaXg6IFwiLWFjZVwiLFxuICB9LFxuICBBVklTOiB7XG4gICAgZGlyZWN0b3J5OiBcInJhcHBvcnRzXCIsXG4gICAgcHJlZml4OiBcInJcIixcbiAgICBzdWZmaXg6IFwiXCIsXG4gIH0sXG4gIEVUREk6IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvamV0c1wiLFxuICAgIHByZWZpeDogXCJwbFwiLFxuICAgIHN1ZmZpeDogXCItZWlcIixcbiAgfSxcbiAgTEVUVDoge1xuICAgIGRpcmVjdG9yeTogXCJwcm9qZXRzXCIsXG4gICAgcHJlZml4OiBcInBsXCIsXG4gICAgc3VmZml4OiBcIi1sXCIsXG4gIH0sXG4gIFBJT046IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvcG9zaXRpb25zXCIsXG4gICAgcHJlZml4OiBcInBpb25cIixcbiAgICBzdWZmaXg6IFwiXCIsXG4gIH0sXG4gIFBOUkU6IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvcG9zaXRpb25zXCIsXG4gICAgcHJlZml4OiBcInBpb25cIixcbiAgICBzdWZmaXg6IFwiXCIsXG4gIH0sXG4gIFBOUkVBUFBBUlQzNDE6IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvcG9zaXRpb25zXCIsXG4gICAgcHJlZml4OiBcInBpb25cIixcbiAgICBzdWZmaXg6IFwiXCIsXG4gIH0sXG4gIFBOUkVDT01FTlE6IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvcG9zaXRpb25zXCIsXG4gICAgcHJlZml4OiBcInBpb25cIixcbiAgICBzdWZmaXg6IFwiXCIsXG4gIH0sXG4gIFBOUkVNT0RSRUdMVEFOOiB7XG4gICAgZGlyZWN0b3J5OiBcInByb3Bvc2l0aW9uc1wiLFxuICAgIHByZWZpeDogXCJwaW9uXCIsXG4gICAgc3VmZml4OiBcIlwiLFxuICB9LFxuICBQTlJFVFZYSU5TVElURVVST1A6IHtcbiAgICBkaXJlY3Rvcnk6IFwiZXVyb3BlL3Jlc29sdXRpb25zXCIsXG4gICAgcHJlZml4OiBcInBwZVwiLFxuICAgIHN1ZmZpeDogXCJcIixcbiAgfSxcbiAgUFJKTDoge1xuICAgIGRpcmVjdG9yeTogXCJwcm9qZXRzXCIsXG4gICAgcHJlZml4OiBcInBsXCIsXG4gICAgc3VmZml4OiBcIlwiLFxuICB9LFxuICBSQVBQOiB7XG4gICAgZGlyZWN0b3J5OiBcInJhcHBvcnRzXCIsXG4gICAgcHJlZml4OiBcInJcIixcbiAgICBzdWZmaXg6IFwiXCIsXG4gIH0sXG4gIFJJTkY6IHtcbiAgICBkaXJlY3Rvcnk6IFwicmFwLWluZm9cIixcbiAgICBwcmVmaXg6IFwiaVwiLFxuICAgIHN1ZmZpeDogXCJcIixcbiAgfSxcbiAgUklPTjoge1xuICAgIGRpcmVjdG9yeTogXCJcIixcbiAgICBwcmVmaXg6IFwiXCIsXG4gICAgc3VmZml4OiBcIlwiLFxuICB9LFxuICBUQURPOiB7XG4gICAgZGlyZWN0b3J5OiBcInRhXCIsXG4gICAgcHJlZml4OiBcInRhXCIsXG4gICAgc3VmZml4OiBcIlwiLFxuICB9LFxuICBUQ09NOiB7XG4gICAgZGlyZWN0b3J5OiBcInRhLWNvbW1pc3Npb25cIixcbiAgICBwcmVmaXg6IFwiclwiLFxuICAgIHN1ZmZpeDogXCItYTBcIixcbiAgfSxcbiAgVENPTUNPTUVOUToge1xuICAgIGRpcmVjdG9yeTogXCJ0YS1jb21taXNzaW9uXCIsXG4gICAgcHJlZml4OiBcInJcIixcbiAgICBzdWZmaXg6IFwiLWEwXCIsXG4gIH0sXG4gIFRDT01NT0RSRUdMVEFOOiB7XG4gICAgZGlyZWN0b3J5OiBcInRhLWNvbW1pc3Npb25cIixcbiAgICBwcmVmaXg6IFwiclwiLFxuICAgIHN1ZmZpeDogXCItYTBcIixcbiAgfSxcbiAgVENPTVRWWElOU1RJVEVVUk9QOiB7XG4gICAgZGlyZWN0b3J5OiBcInRhLWNvbW1pc3Npb25cIixcbiAgICBwcmVmaXg6IFwiclwiLFxuICAgIHN1ZmZpeDogXCItYTBcIixcbiAgfSxcbn1cblxuZnVuY3Rpb24gZXh0ZW5zaW9uRnJvbURvY3VtZW50VXJsRm9ybWF0KGZvcm1hdDogRG9jdW1lbnRVcmxGb3JtYXQpOiBzdHJpbmcge1xuICBzd2l0Y2ggKGZvcm1hdCkge1xuICAgIGNhc2UgRG9jdW1lbnRVcmxGb3JtYXQuSHRtbDpcbiAgICAgIHJldHVybiBcIi5hc3BcIlxuICAgIGNhc2UgRG9jdW1lbnRVcmxGb3JtYXQuUGRmOlxuICAgICAgcmV0dXJuIFwiLnBkZlwiXG4gICAgY2FzZSBEb2N1bWVudFVybEZvcm1hdC5SYXdIdG1sOlxuICAgICAgcmV0dXJuIFwiLmFzcFwiXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVybEZyb21Eb2N1bWVudChcbiAgZG9jdW1lbnQ6IGFueSxcbiAgZm9ybWF0OiBEb2N1bWVudFVybEZvcm1hdCxcbik6IHN0cmluZyB8IG51bGwge1xuICAvLyBDb2RlIHRha2VuIGZyb20gZnVuY3Rpb24gYGFuX3RleHRfdXJsYCBpbiBwcm9qZWN0IGFucHk6XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9yZWdhcmRzY2l0b3llbnMvYW5weS9ibG9iL21hc3Rlci9hbnB5L2Rvc3NpZXJfZnJvbV9vcGVuZGF0YS5weVxuICAvLyBTZWUgaHR0cDovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL29wZW5kYXRhL0ltcGxlbWVudGF0aW9uX1JlZmVyZW50aWVsL0lkZW50aWZpYW50c19SZWZlcmVudGllbHMuaHRtbFxuICAvLyBmb3IgYSBkZXNjcmlwdGlvbiBvZiB0aGUgZm9ybWF0IG9mIGFuIFVJRC5cblxuICBjb25zdCBleHRlbnNpb24gPSBleHRlbnNpb25Gcm9tRG9jdW1lbnRVcmxGb3JtYXQoZm9ybWF0KVxuICBjb25zdCBtYXRjaCA9IC9eKC57NH0pKFtBTlNdKikoUlswLTldKShbTFNdKikoWzAtOV0qKShbQlRBQ1BdKikoLiopJC8uZXhlYyhcbiAgICBkb2N1bWVudC51aWQsXG4gIClcbiAgaWYgKG1hdGNoID09PSBudWxsKSB7XG4gICAgY29uc29sZS5sb2coXG4gICAgICBgVW5hYmxlIHRvIGdlbmVyYXRlIFVSTCBmcm9tIGRvY3VtZW50IHdpdGggdW5leHBlY3RlZCBVSUQ6IFwiJHtkb2N1bWVudC51aWR9XCJgLFxuICAgIClcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIGNvbnN0IGNoYW1icmUgPSBtYXRjaFsyXVxuICBpZiAoY2hhbWJyZSA9PT0gXCJTTlwiKSB7XG4gICAgY29uc29sZS5sb2coXG4gICAgICBgVW5hYmxlIHRvIGdlbmVyYXRlIFVSTCBmb3IgZG9jdW1lbnQgaW4gU8OpbmF0LiBVSUQ6IFwiJHtkb2N1bWVudC51aWR9XCJgLFxuICAgIClcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIGNvbnN0IGxlZ2lzbGF0dXJlID0gbWF0Y2hbNV1cbiAgbGV0IG51bWJlciA9IG1hdGNoWzddXG4gIGlmIChmb3JtYXQgPT09IERvY3VtZW50VXJsRm9ybWF0LlJhd0h0bWwpIHtcbiAgICByZXR1cm4gYGh0dHA6Ly93d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci8ke2xlZ2lzbGF0dXJlfS90ZXh0ZXMvJHtudW1iZXJ9JHtleHRlbnNpb259YFxuICB9XG4gIGxldCBkb2N1bWVudFR5cGUgPVxuICAgIChcbiAgICAgIHtcbiAgICAgICAgQlRDOiBcIlRDT01cIixcbiAgICAgICAgQlRBOiBcIlRBRE9cIixcbiAgICAgICAgVEFQOiBcIlRBRE9cIixcbiAgICAgIH0gYXMgeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfVxuICAgIClbbWF0Y2hbNl1dIHx8IG1hdGNoWzFdXG4gIGlmIChcbiAgICBkb2N1bWVudC5jbGFzc2lmaWNhdGlvbiAhPT0gdW5kZWZpbmVkICYmXG4gICAgZG9jdW1lbnQuY2xhc3NpZmljYXRpb24uc291c1R5cGUgIT09IHVuZGVmaW5lZCAmJlxuICAgIGRvY3VtZW50LmNsYXNzaWZpY2F0aW9uLnNvdXNUeXBlLmNvZGUgPT09IFwiQ09NUEFcIlxuICApIHtcbiAgICAvLyBBbm5leGUgYXUgcmFwcG9ydCA6IFRleHRlIGNvbXBhcmF0aWYgQ09NUEFcbiAgICBudW1iZXIgPSBudW1iZXIucmVwbGFjZSgvLUNPTVBBLywgXCItYUNPTVBBXCIpXG4gIH1cbiAgaWYgKGRvY3VtZW50VHlwZSA9PSBcIkFWQ0VcIikge1xuICAgIGRvY3VtZW50VHlwZSA9IGBBVkNFJHtkb2N1bWVudC5jbGFzc2lmaWNhdGlvbi5mYW1pbGxlLmNsYXNzZS5jb2RlfWBcbiAgfVxuICBjb25zdCBmcmFnbWVudHMgPSBkb2N1bWVudFVybEZyYWdtZW50c0J5VHlwZVtkb2N1bWVudFR5cGVdXG4gIGlmIChmcmFnbWVudHMgPT09IHVuZGVmaW5lZCkge1xuICAgIC8vIEZvciBleGFtcGxlOiBBTENOQU5SNUwxNUIwMDAyIChhbGxvY3V0aW9uIGR1IHByw6lzaWRlbnQpXG4gICAgY29uc29sZS5sb2coXG4gICAgICBgVW5hYmxlIHRvIGdlbmVyYXRlIFVSTCBmcm9tIGRvY3VtZW50IG9mIFVJRCBcIiR7ZG9jdW1lbnQudWlkfVwiIGFuZCB0eXBlIFwiJHtkb2N1bWVudFR5cGV9XCJgLFxuICAgIClcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIGNvbnN0IGRpcmVjdG9yeSA9XG4gICAgZm9ybWF0ID09PSBEb2N1bWVudFVybEZvcm1hdC5QZGZcbiAgICAgID8gYHBkZi8ke2ZyYWdtZW50cy5kaXJlY3Rvcnl9YFxuICAgICAgOiBmcmFnbWVudHMuZGlyZWN0b3J5XG4gIHJldHVybiBgaHR0cDovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyLyR7bGVnaXNsYXR1cmV9LyR7ZGlyZWN0b3J5fS8ke2ZyYWdtZW50cy5wcmVmaXh9JHtudW1iZXJ9JHtmcmFnbWVudHMuc3VmZml4fSR7ZXh0ZW5zaW9ufWBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVybEZyb21TY3J1dGluKHNjcnV0aW46IFNjcnV0aW4pIHtcbiAgLy8gU2FtcGxlIFVJRHM6IFZUQU5SNUwxNVYzODlcbiAgY29uc3QgbWF0Y2ggPSAvXlZUQU5SKFswLTldKylMKFswLTldKylWKFswLTldKykkLy5leGVjKHNjcnV0aW4udWlkKVxuICBpZiAobWF0Y2ggPT09IG51bGwpIHtcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIGBVbmFibGUgdG8gZ2VuZXJhdGUgVVJMIGZyb20gc2NydXRpbiB3aXRoIHVuZXhwZWN0ZWQgVUlEOiBcIiR7c2NydXRpbi51aWR9XCJgLFxuICAgIClcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIGNvbnN0IGxlZ2lzbGF0dXJlID0gbWF0Y2hbMl1cbiAgY29uc3QgbnVtZXJvID0gbWF0Y2hbM11cbiAgcmV0dXJuIGBodHRwOi8vd3d3Mi5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3NjcnV0aW5zL2RldGFpbC8obGVnaXNsYXR1cmUpLyR7bGVnaXNsYXR1cmV9LyhudW0pLyR7bnVtZXJvfWBcbn1cbiJdLCJtYXBwaW5ncyI6IkFBRUEsV0FBWUEsaUJBQWlCLDBCQUFqQkEsaUJBQWlCO0VBQWpCQSxpQkFBaUI7RUFBakJBLGlCQUFpQjtFQUFqQkEsaUJBQWlCO0VBQUEsT0FBakJBLGlCQUFpQjtBQUFBLE9BR0w7QUFHeEIsTUFBTUMsMEJBTUwsR0FBRztFQUNGQyxJQUFJLEVBQUU7SUFDSkMsU0FBUyxFQUFFLFNBQVM7SUFDcEJDLE1BQU0sRUFBRSxJQUFJO0lBQ1pDLE1BQU0sRUFBRTtFQUNWLENBQUM7RUFDREMsVUFBVSxFQUFFO0lBQ1ZILFNBQVMsRUFBRSxTQUFTO0lBQ3BCQyxNQUFNLEVBQUUsSUFBSTtJQUNaQyxNQUFNLEVBQUU7RUFDVixDQUFDO0VBQ0RFLFVBQVUsRUFBRTtJQUNWSixTQUFTLEVBQUUsU0FBUztJQUNwQkMsTUFBTSxFQUFFLElBQUk7SUFDWkMsTUFBTSxFQUFFO0VBQ1YsQ0FBQztFQUNERyxXQUFXLEVBQUU7SUFDWEwsU0FBUyxFQUFFLGNBQWM7SUFDekJDLE1BQU0sRUFBRSxNQUFNO0lBQ2RDLE1BQU0sRUFBRTtFQUNWLENBQUM7RUFDREksSUFBSSxFQUFFO0lBQ0pOLFNBQVMsRUFBRSxVQUFVO0lBQ3JCQyxNQUFNLEVBQUUsR0FBRztJQUNYQyxNQUFNLEVBQUU7RUFDVixDQUFDO0VBQ0RLLElBQUksRUFBRTtJQUNKUCxTQUFTLEVBQUUsU0FBUztJQUNwQkMsTUFBTSxFQUFFLElBQUk7SUFDWkMsTUFBTSxFQUFFO0VBQ1YsQ0FBQztFQUNETSxJQUFJLEVBQUU7SUFDSlIsU0FBUyxFQUFFLFNBQVM7SUFDcEJDLE1BQU0sRUFBRSxJQUFJO0lBQ1pDLE1BQU0sRUFBRTtFQUNWLENBQUM7RUFDRE8sSUFBSSxFQUFFO0lBQ0pULFNBQVMsRUFBRSxjQUFjO0lBQ3pCQyxNQUFNLEVBQUUsTUFBTTtJQUNkQyxNQUFNLEVBQUU7RUFDVixDQUFDO0VBQ0RRLElBQUksRUFBRTtJQUNKVixTQUFTLEVBQUUsY0FBYztJQUN6QkMsTUFBTSxFQUFFLE1BQU07SUFDZEMsTUFBTSxFQUFFO0VBQ1YsQ0FBQztFQUNEUyxhQUFhLEVBQUU7SUFDYlgsU0FBUyxFQUFFLGNBQWM7SUFDekJDLE1BQU0sRUFBRSxNQUFNO0lBQ2RDLE1BQU0sRUFBRTtFQUNWLENBQUM7RUFDRFUsVUFBVSxFQUFFO0lBQ1ZaLFNBQVMsRUFBRSxjQUFjO0lBQ3pCQyxNQUFNLEVBQUUsTUFBTTtJQUNkQyxNQUFNLEVBQUU7RUFDVixDQUFDO0VBQ0RXLGNBQWMsRUFBRTtJQUNkYixTQUFTLEVBQUUsY0FBYztJQUN6QkMsTUFBTSxFQUFFLE1BQU07SUFDZEMsTUFBTSxFQUFFO0VBQ1YsQ0FBQztFQUNEWSxrQkFBa0IsRUFBRTtJQUNsQmQsU0FBUyxFQUFFLG9CQUFvQjtJQUMvQkMsTUFBTSxFQUFFLEtBQUs7SUFDYkMsTUFBTSxFQUFFO0VBQ1YsQ0FBQztFQUNEYSxJQUFJLEVBQUU7SUFDSmYsU0FBUyxFQUFFLFNBQVM7SUFDcEJDLE1BQU0sRUFBRSxJQUFJO0lBQ1pDLE1BQU0sRUFBRTtFQUNWLENBQUM7RUFDRGMsSUFBSSxFQUFFO0lBQ0poQixTQUFTLEVBQUUsVUFBVTtJQUNyQkMsTUFBTSxFQUFFLEdBQUc7SUFDWEMsTUFBTSxFQUFFO0VBQ1YsQ0FBQztFQUNEZSxJQUFJLEVBQUU7SUFDSmpCLFNBQVMsRUFBRSxVQUFVO0lBQ3JCQyxNQUFNLEVBQUUsR0FBRztJQUNYQyxNQUFNLEVBQUU7RUFDVixDQUFDO0VBQ0RnQixJQUFJLEVBQUU7SUFDSmxCLFNBQVMsRUFBRSxFQUFFO0lBQ2JDLE1BQU0sRUFBRSxFQUFFO0lBQ1ZDLE1BQU0sRUFBRTtFQUNWLENBQUM7RUFDRGlCLElBQUksRUFBRTtJQUNKbkIsU0FBUyxFQUFFLElBQUk7SUFDZkMsTUFBTSxFQUFFLElBQUk7SUFDWkMsTUFBTSxFQUFFO0VBQ1YsQ0FBQztFQUNEa0IsSUFBSSxFQUFFO0lBQ0pwQixTQUFTLEVBQUUsZUFBZTtJQUMxQkMsTUFBTSxFQUFFLEdBQUc7SUFDWEMsTUFBTSxFQUFFO0VBQ1YsQ0FBQztFQUNEbUIsVUFBVSxFQUFFO0lBQ1ZyQixTQUFTLEVBQUUsZUFBZTtJQUMxQkMsTUFBTSxFQUFFLEdBQUc7SUFDWEMsTUFBTSxFQUFFO0VBQ1YsQ0FBQztFQUNEb0IsY0FBYyxFQUFFO0lBQ2R0QixTQUFTLEVBQUUsZUFBZTtJQUMxQkMsTUFBTSxFQUFFLEdBQUc7SUFDWEMsTUFBTSxFQUFFO0VBQ1YsQ0FBQztFQUNEcUIsa0JBQWtCLEVBQUU7SUFDbEJ2QixTQUFTLEVBQUUsZUFBZTtJQUMxQkMsTUFBTSxFQUFFLEdBQUc7SUFDWEMsTUFBTSxFQUFFO0VBQ1Y7QUFDRixDQUFDO0FBRUQsU0FBU3NCLDhCQUE4QkEsQ0FBQ0MsTUFBeUIsRUFBVTtFQUN6RSxRQUFRQSxNQUFNO0lBQ1osS0FBSzVCLGlCQUFpQixDQUFDNkIsSUFBSTtNQUN6QixPQUFPLE1BQU07SUFDZixLQUFLN0IsaUJBQWlCLENBQUM4QixHQUFHO01BQ3hCLE9BQU8sTUFBTTtJQUNmLEtBQUs5QixpQkFBaUIsQ0FBQytCLE9BQU87TUFDNUIsT0FBTyxNQUFNO0VBQ2pCO0FBQ0Y7QUFFQSxPQUFPLFNBQVNDLGVBQWVBLENBQzdCQyxRQUFhLEVBQ2JMLE1BQXlCLEVBQ1Y7RUFDZjtFQUNBO0VBQ0E7RUFDQTs7RUFFQSxNQUFNTSxTQUFTLEdBQUdQLDhCQUE4QixDQUFDQyxNQUFNLENBQUM7RUFDeEQsTUFBTU8sS0FBSyxHQUFHLHVEQUF1RCxDQUFDQyxJQUFJLENBQ3hFSCxRQUFRLENBQUNJLEdBQ1gsQ0FBQztFQUNELElBQUlGLEtBQUssS0FBSyxJQUFJLEVBQUU7SUFDbEJHLE9BQU8sQ0FBQ0MsR0FBRyxDQUNSLDhEQUE2RE4sUUFBUSxDQUFDSSxHQUFJLEdBQzdFLENBQUM7SUFDRCxPQUFPLElBQUk7RUFDYjtFQUNBLE1BQU1HLE9BQU8sR0FBR0wsS0FBSyxDQUFDLENBQUMsQ0FBQztFQUN4QixJQUFJSyxPQUFPLEtBQUssSUFBSSxFQUFFO0lBQ3BCRixPQUFPLENBQUNDLEdBQUcsQ0FDUix1REFBc0ROLFFBQVEsQ0FBQ0ksR0FBSSxHQUN0RSxDQUFDO0lBQ0QsT0FBTyxJQUFJO0VBQ2I7RUFDQSxNQUFNSSxXQUFXLEdBQUdOLEtBQUssQ0FBQyxDQUFDLENBQUM7RUFDNUIsSUFBSU8sTUFBTSxHQUFHUCxLQUFLLENBQUMsQ0FBQyxDQUFDO0VBQ3JCLElBQUlQLE1BQU0sS0FBSzVCLGlCQUFpQixDQUFDK0IsT0FBTyxFQUFFO0lBQ3hDLE9BQVEscUNBQW9DVSxXQUFZLFdBQVVDLE1BQU8sR0FBRVIsU0FBVSxFQUFDO0VBQ3hGO0VBQ0EsSUFBSVMsWUFBWSxHQUVaO0lBQ0VDLEdBQUcsRUFBRSxNQUFNO0lBQ1hDLEdBQUcsRUFBRSxNQUFNO0lBQ1hDLEdBQUcsRUFBRTtFQUNQLENBQUMsQ0FDRFgsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUlBLEtBQUssQ0FBQyxDQUFDLENBQUM7RUFDekIsSUFDRUYsUUFBUSxDQUFDYyxjQUFjLEtBQUtDLFNBQVMsSUFDckNmLFFBQVEsQ0FBQ2MsY0FBYyxDQUFDRSxRQUFRLEtBQUtELFNBQVMsSUFDOUNmLFFBQVEsQ0FBQ2MsY0FBYyxDQUFDRSxRQUFRLENBQUNDLElBQUksS0FBSyxPQUFPLEVBQ2pEO0lBQ0E7SUFDQVIsTUFBTSxHQUFHQSxNQUFNLENBQUNTLE9BQU8sQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDO0VBQzlDO0VBQ0EsSUFBSVIsWUFBWSxJQUFJLE1BQU0sRUFBRTtJQUMxQkEsWUFBWSxHQUFJLE9BQU1WLFFBQVEsQ0FBQ2MsY0FBYyxDQUFDSyxPQUFPLENBQUNDLE1BQU0sQ0FBQ0gsSUFBSyxFQUFDO0VBQ3JFO0VBQ0EsTUFBTUksU0FBUyxHQUFHckQsMEJBQTBCLENBQUMwQyxZQUFZLENBQUM7RUFDMUQsSUFBSVcsU0FBUyxLQUFLTixTQUFTLEVBQUU7SUFDM0I7SUFDQVYsT0FBTyxDQUFDQyxHQUFHLENBQ1IsZ0RBQStDTixRQUFRLENBQUNJLEdBQUksZUFBY00sWUFBYSxHQUMxRixDQUFDO0lBQ0QsT0FBTyxJQUFJO0VBQ2I7RUFDQSxNQUFNeEMsU0FBUyxHQUNieUIsTUFBTSxLQUFLNUIsaUJBQWlCLENBQUM4QixHQUFHLEdBQzNCLE9BQU13QixTQUFTLENBQUNuRCxTQUFVLEVBQUMsR0FDNUJtRCxTQUFTLENBQUNuRCxTQUFTO0VBQ3pCLE9BQVEscUNBQW9Dc0MsV0FBWSxJQUFHdEMsU0FBVSxJQUFHbUQsU0FBUyxDQUFDbEQsTUFBTyxHQUFFc0MsTUFBTyxHQUFFWSxTQUFTLENBQUNqRCxNQUFPLEdBQUU2QixTQUFVLEVBQUM7QUFDcEk7QUFFQSxPQUFPLFNBQVNxQixjQUFjQSxDQUFDQyxPQUFnQixFQUFFO0VBQy9DO0VBQ0EsTUFBTXJCLEtBQUssR0FBRyxtQ0FBbUMsQ0FBQ0MsSUFBSSxDQUFDb0IsT0FBTyxDQUFDbkIsR0FBRyxDQUFDO0VBQ25FLElBQUlGLEtBQUssS0FBSyxJQUFJLEVBQUU7SUFDbEJHLE9BQU8sQ0FBQ0MsR0FBRyxDQUNSLDZEQUE0RGlCLE9BQU8sQ0FBQ25CLEdBQUksR0FDM0UsQ0FBQztJQUNELE9BQU8sSUFBSTtFQUNiO0VBQ0EsTUFBTUksV0FBVyxHQUFHTixLQUFLLENBQUMsQ0FBQyxDQUFDO0VBQzVCLE1BQU1zQixNQUFNLEdBQUd0QixLQUFLLENBQUMsQ0FBQyxDQUFDO0VBQ3ZCLE9BQVEsb0VBQW1FTSxXQUFZLFVBQVNnQixNQUFPLEVBQUM7QUFDMUcifQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tricoteuses/assemblee",
3
- "version": "1.1.8",
3
+ "version": "1.1.10",
4
4
  "description": "Retrieve, clean up & handle French Assemblée nationale's open data",
5
5
  "keywords": [
6
6
  "Assemblée nationale",
@@ -10,6 +10,7 @@
10
10
  ],
11
11
  "author": "Emmanuel Raviart <emmanuel@raviart.com>",
12
12
  "contributors": [
13
+ "Henry Boisgibault <h.boisgibault@gmail.com>",
13
14
  "Loïc Dachary <loic@dachary.org>"
14
15
  ],
15
16
  "bugs": {
@@ -68,6 +69,12 @@
68
69
  "build:cjs": "babel src --out-dir lib --extensions \".ts\" --source-maps inline",
69
70
  "build:mjs": "babel src --out-dir lib --config-file ./babel.mjs-config.cjs --extensions \".ts\" --out-file-extension .mjs --source-maps inline",
70
71
  "build:types": "tsc --emitDeclarationOnly",
72
+ "data:retrieve_open_data": "npx babel-node --extensions '.ts' -- src/scripts/retrieve_open_data.ts --fetch",
73
+ "data:reorganize_data": "npx babel-node --extensions '.ts' -- src/scripts/reorganize_data.ts --no-validate-raw",
74
+ "data:clean_data": "npx babel-node --extensions '.ts' -- src/scripts/clean_reorganized_data.ts",
75
+ "data:retrieve_deputes_photos": "npx babel-node --extensions '.ts' -- src/scripts/retrieve_deputes_photos.ts --fetch",
76
+ "data:retrieve_senateurs_photos": "npx babel-node --extensions '.ts' -- src/scripts/retrieve_senateurs_photos.ts --fetch",
77
+ "data:retrieve_pending_amendements": "npx babel-node --extensions '.ts' -- src/scripts/retrieve_pending_amendments.ts --incremental",
71
78
  "clean": "rimraf lib",
72
79
  "coverage": "nyc -e .ts -x \"**/*.test.ts\" npm run test",
73
80
  "coverage-lcov": "nyc -r lcov -e .ts -x \"**/*.test.ts\" npm run test",
@@ -86,12 +93,13 @@
86
93
  "front-matter": "^4.0.2",
87
94
  "fs-extra": "^11.1.0",
88
95
  "full-icu": "^1.3.1",
89
- "glob": "^9.2.1",
96
+ "glob": "^10.2.1",
90
97
  "js-yaml": "^4.0.0",
91
- "jsdom": "^21.1.0",
98
+ "jsdom": "^22.0.0",
92
99
  "node-fetch": "^2.6.7",
93
100
  "node-html-parser": "^6.1.0",
94
- "node-stream-zip": "^1.11.6"
101
+ "node-stream-zip": "^1.11.6",
102
+ "xml2js": "^0.5.0"
95
103
  },
96
104
  "devDependencies": {
97
105
  "@babel/cli": "^7.11.6",
@@ -130,14 +138,14 @@
130
138
  "quicktype-core": "^23.0.7",
131
139
  "regenerator-runtime": "^0.13.7",
132
140
  "rewire": "^6.0.0",
133
- "rimraf": "^4.1.2",
141
+ "rimraf": "^5.0.0",
134
142
  "sinon": "^15.0.0",
135
143
  "temp": "^0.9.1",
136
144
  "tiny-version-compare": "^4.0.0",
137
145
  "ts-node": "^10.0.0",
138
146
  "tslib": "^2.0.2",
139
147
  "tsx": "^3.12.3",
140
- "typescript": "^4.2.2",
141
- "typescript-json-schema": "^0.55.0"
148
+ "typescript": "^5.0.2",
149
+ "typescript-json-schema": "^0.56.0"
142
150
  }
143
151
  }
@@ -1 +0,0 @@
1
- export {};
@@ -1,309 +0,0 @@
1
- "use strict";
2
-
3
- require("core-js/modules/es.array.slice.js");
4
- require("core-js/modules/es.function.name.js");
5
- require("core-js/modules/es.array.from.js");
6
- require("core-js/modules/es.string.iterator.js");
7
- require("core-js/modules/es.symbol.js");
8
- require("core-js/modules/es.symbol.description.js");
9
- require("core-js/modules/es.symbol.iterator.js");
10
- require("core-js/modules/es.array.iterator.js");
11
- require("core-js/modules/web.dom-collections.iterator.js");
12
- require("core-js/modules/es.array.is-array.js");
13
- require("core-js/modules/es.date.to-json.js");
14
- require("core-js/modules/es.date.to-string.js");
15
- require("core-js/modules/es.array.map.js");
16
- require("core-js/modules/es.array.reduce.js");
17
- require("core-js/modules/es.object.to-string.js");
18
- require("core-js/modules/es.array.join.js");
19
- require("core-js/modules/es.regexp.exec.js");
20
- require("core-js/modules/es.string.replace.js");
21
- var _assert = _interopRequireDefault(require("assert"));
22
- var _commandLineArgs = _interopRequireDefault(require("command-line-args"));
23
- var _fs = _interopRequireDefault(require("fs"));
24
- var _path = _interopRequireDefault(require("path"));
25
- var _acteurs = require("../cleaners/acteurs");
26
- var _amendements = require("../cleaners/amendements");
27
- var _documents = require("../cleaners/documents");
28
- var _dossiers_legislatifs = require("../cleaners/dossiers_legislatifs");
29
- var _organes = require("../cleaners/organes");
30
- var _reunions = require("../cleaners/reunions");
31
- var _scrutins = require("../cleaners/scrutins");
32
- var _datasets = require("../datasets");
33
- var _dates = require("../dates");
34
- var _acteurs_et_organes = require("../types/acteurs_et_organes");
35
- var _agendas = require("../types/agendas");
36
- var _amendements2 = require("../types/amendements");
37
- var _dossiers_legislatifs2 = require("../types/dossiers_legislatifs");
38
- var _scrutins2 = require("../types/scrutins");
39
- var _acteurs_et_organes2 = require("../raw_types/acteurs_et_organes");
40
- var _agendas2 = require("../raw_types/agendas");
41
- var _amendements3 = require("../raw_types/amendements");
42
- var _dossiers_legislatifs3 = require("../raw_types/dossiers_legislatifs");
43
- var _scrutins3 = require("../raw_types/scrutins");
44
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
45
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
46
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
47
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
48
- var optionsDefinitions = [{
49
- alias: "k",
50
- defaultValue: ["All"],
51
- help: "categories of datasets to reorganize",
52
- multiple: true,
53
- name: "categories",
54
- type: String
55
- }, {
56
- defaultOption: true,
57
- help: "directory containing Assemblée open data files",
58
- name: "dataDir",
59
- type: String
60
- }];
61
- var options = (0, _commandLineArgs["default"])(optionsDefinitions);
62
- function cleanData(dataDir) {
63
- Date.prototype.toJSON = _dates.patchedDateToJson;
64
- options.categories.map(function (datasetName) {
65
- return _assert["default"].notStrictEqual(_datasets.EnabledDatasets[datasetName], undefined, "Unknown name of dataset: ".concat(datasetName));
66
- });
67
- var enabledDatasets = options.categories.reduce(function (enabledDatasets, datasetName) {
68
- return enabledDatasets | _datasets.EnabledDatasets[datasetName];
69
- }, _datasets.EnabledDatasets.None);
70
- if (enabledDatasets & _datasets.EnabledDatasets.ActeursEtOrganes) {
71
- var _iterator = _createForOfIteratorHelper(_datasets.datasets.acteursEtOrganes),
72
- _step;
73
- try {
74
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
75
- var dataset = _step.value;
76
- var rawJsonFilePath = _path["default"].join(dataDir, dataset.filename);
77
- console.log("Loading file: ".concat(rawJsonFilePath));
78
- var rawJson = _fs["default"].readFileSync(rawJsonFilePath, {
79
- encoding: "utf8"
80
- });
81
- var acteursEtOrganes = _acteurs_et_organes2.Convert.toActeursEtOrganes(rawJson);
82
- // const acteurs = jp.query(acteursEtOrganes, "$.export.acteurs.acteur")[0]
83
- var organes = acteursEtOrganes["export"].organes.organe;
84
- acteursEtOrganes.organes = organes;
85
- var acteurs = acteursEtOrganes["export"].acteurs.acteur;
86
- acteursEtOrganes.acteurs = acteurs;
87
- delete acteursEtOrganes["export"];
88
- var _iterator2 = _createForOfIteratorHelper(acteurs),
89
- _step2;
90
- try {
91
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
92
- var acteur = _step2.value;
93
- (0, _acteurs.cleanActeur)(acteur);
94
- }
95
- } catch (err) {
96
- _iterator2.e(err);
97
- } finally {
98
- _iterator2.f();
99
- }
100
- var _iterator3 = _createForOfIteratorHelper(organes),
101
- _step3;
102
- try {
103
- for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
104
- var organe = _step3.value;
105
- (0, _organes.cleanOrgane)(organe);
106
- }
107
- } catch (err) {
108
- _iterator3.e(err);
109
- } finally {
110
- _iterator3.f();
111
- }
112
- var acteursEtOrganesJson = JSON.stringify(acteursEtOrganes, null, 2);
113
- // Validate generated JSON.
114
- var acteursEtOrganesClean = _acteurs_et_organes.Convert.toActeursEtOrganes(acteursEtOrganesJson);
115
- var acteursEtOrganesCleanJson = _acteurs_et_organes.Convert.acteursEtOrganesToJson(acteursEtOrganesClean);
116
- var jsonFilePath = _path["default"].join(dataDir, dataset.filename.replace(/\.json$/, "_nettoye.json"));
117
- _fs["default"].writeFileSync(jsonFilePath, acteursEtOrganesCleanJson, {
118
- encoding: "utf8"
119
- });
120
- }
121
- } catch (err) {
122
- _iterator.e(err);
123
- } finally {
124
- _iterator.f();
125
- }
126
- }
127
- if (enabledDatasets & _datasets.EnabledDatasets.Agendas) {
128
- var _iterator4 = _createForOfIteratorHelper(_datasets.datasets.agendas),
129
- _step4;
130
- try {
131
- for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
132
- var _dataset = _step4.value;
133
- var _rawJsonFilePath = _path["default"].join(dataDir, _dataset.filename);
134
- console.log("Loading file: ".concat(_rawJsonFilePath));
135
- var _rawJson = _fs["default"].readFileSync(_rawJsonFilePath, {
136
- encoding: "utf8"
137
- });
138
- var agendas = _agendas2.Convert.toAgendas(_rawJson);
139
- agendas.reunions = agendas.reunions.reunion;
140
- var _iterator5 = _createForOfIteratorHelper(agendas.reunions),
141
- _step5;
142
- try {
143
- for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
144
- var reunion = _step5.value;
145
- (0, _reunions.cleanReunion)(reunion);
146
- }
147
- } catch (err) {
148
- _iterator5.e(err);
149
- } finally {
150
- _iterator5.f();
151
- }
152
- var agendasJson = JSON.stringify(agendas, null, 2);
153
- // Validate generated JSON.
154
- var agendasClean = _agendas.Convert.toAgendas(agendasJson);
155
- var agendasCleanJson = _agendas.Convert.agendasToJson(agendasClean);
156
- var _jsonFilePath = _path["default"].join(dataDir, _dataset.filename.replace(/\.json$/, "_nettoye.json"));
157
- _fs["default"].writeFileSync(_jsonFilePath, agendasCleanJson, {
158
- encoding: "utf8"
159
- });
160
- }
161
- } catch (err) {
162
- _iterator4.e(err);
163
- } finally {
164
- _iterator4.f();
165
- }
166
- }
167
- if (enabledDatasets & _datasets.EnabledDatasets.Amendements) {
168
- var _iterator6 = _createForOfIteratorHelper(_datasets.datasets.amendements),
169
- _step6;
170
- try {
171
- for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
172
- var _dataset2 = _step6.value;
173
- var _rawJsonFilePath2 = _path["default"].join(dataDir, _dataset2.filename);
174
- console.log("Loading file: ".concat(_rawJsonFilePath2));
175
- var _rawJson2 = _fs["default"].readFileSync(_rawJsonFilePath2, {
176
- encoding: "utf8"
177
- });
178
- var amendements = _amendements3.Convert.toAmendements(_rawJson2);
179
- amendements.textesLegislatifs = amendements.textesEtAmendements.texteleg;
180
- delete amendements.textesEtAmendements;
181
- var _iterator7 = _createForOfIteratorHelper(amendements.textesLegislatifs),
182
- _step7;
183
- try {
184
- for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
185
- var texteLegislatif = _step7.value;
186
- (0, _amendements.cleanTexteLegislatif)(texteLegislatif);
187
- }
188
- } catch (err) {
189
- _iterator7.e(err);
190
- } finally {
191
- _iterator7.f();
192
- }
193
- var amendementsJson = JSON.stringify(amendements, null, 2);
194
- // Validate generated JSON.
195
- var amendementsClean = _amendements2.Convert.toAmendements(amendementsJson);
196
- var amendementsCleanJson = _amendements2.Convert.amendementsToJson(amendementsClean);
197
- var _jsonFilePath2 = _path["default"].join(dataDir, _dataset2.filename.replace(/\.json$/, "_nettoye.json"));
198
- _fs["default"].writeFileSync(_jsonFilePath2, amendementsCleanJson, {
199
- encoding: "utf8"
200
- });
201
- }
202
- } catch (err) {
203
- _iterator6.e(err);
204
- } finally {
205
- _iterator6.f();
206
- }
207
- }
208
- if (enabledDatasets & _datasets.EnabledDatasets.DossiersLegislatifs) {
209
- var _iterator8 = _createForOfIteratorHelper(_datasets.datasets.dossiersLegislatifs),
210
- _step8;
211
- try {
212
- for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
213
- var _dataset3 = _step8.value;
214
- var _rawJsonFilePath3 = _path["default"].join(dataDir, _dataset3.filename);
215
- console.log("Loading file: ".concat(_rawJsonFilePath3));
216
- var _rawJson3 = _fs["default"].readFileSync(_rawJsonFilePath3, {
217
- encoding: "utf8"
218
- });
219
- var dossiersLegislatifs = _dossiers_legislatifs3.Convert.toDossiersLegislatifs(_rawJson3);
220
- dossiersLegislatifs.textesLegislatifs = dossiersLegislatifs["export"].textesLegislatifs.document;
221
- dossiersLegislatifs.dossiersParlementaires = dossiersLegislatifs["export"].dossiersLegislatifs.dossier.map(function (dossier) {
222
- return dossier.dossierParlementaire;
223
- });
224
- delete dossiersLegislatifs["export"];
225
- var _iterator9 = _createForOfIteratorHelper(dossiersLegislatifs.textesLegislatifs),
226
- _step9;
227
- try {
228
- for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
229
- var document = _step9.value;
230
- (0, _documents.cleanDocumentOrDivision)(document);
231
- }
232
- } catch (err) {
233
- _iterator9.e(err);
234
- } finally {
235
- _iterator9.f();
236
- }
237
- var _iterator10 = _createForOfIteratorHelper(dossiersLegislatifs.dossiersParlementaires),
238
- _step10;
239
- try {
240
- for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {
241
- var dossierParlementaire = _step10.value;
242
- (0, _dossiers_legislatifs.cleanDossierParlementaire)(dossierParlementaire);
243
- }
244
- } catch (err) {
245
- _iterator10.e(err);
246
- } finally {
247
- _iterator10.f();
248
- }
249
- var dossiersLegislatifsJson = JSON.stringify(dossiersLegislatifs, null, 2);
250
- // Validate generated JSON.
251
- var dossiersLegislatifsClean = _dossiers_legislatifs2.Convert.toDossiersLegislatifs(dossiersLegislatifsJson);
252
- var dossiersLegislatifsCleanJson = _dossiers_legislatifs2.Convert.dossiersLegislatifsToJson(dossiersLegislatifsClean);
253
- var _jsonFilePath3 = _path["default"].join(dataDir, _dataset3.filename.replace(/\.json$/, "_nettoye.json"));
254
- _fs["default"].writeFileSync(_jsonFilePath3, dossiersLegislatifsCleanJson, {
255
- encoding: "utf8"
256
- });
257
- }
258
- } catch (err) {
259
- _iterator8.e(err);
260
- } finally {
261
- _iterator8.f();
262
- }
263
- }
264
- if (enabledDatasets & _datasets.EnabledDatasets.Scrutins) {
265
- var _iterator11 = _createForOfIteratorHelper(_datasets.datasets.scrutins),
266
- _step11;
267
- try {
268
- for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {
269
- var _dataset4 = _step11.value;
270
- var _rawJsonFilePath4 = _path["default"].join(dataDir, _dataset4.filename);
271
- console.log("Loading file: ".concat(_rawJsonFilePath4));
272
- var _rawJson4 = _fs["default"].readFileSync(_rawJsonFilePath4, {
273
- encoding: "utf8"
274
- });
275
- var scrutins = _scrutins3.Convert.toScrutins(_rawJson4);
276
- scrutins.scrutins = scrutins.scrutins.scrutin;
277
- var _iterator12 = _createForOfIteratorHelper(scrutins.scrutins),
278
- _step12;
279
- try {
280
- for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {
281
- var scrutin = _step12.value;
282
- (0, _scrutins.cleanScrutin)(scrutin);
283
- }
284
- } catch (err) {
285
- _iterator12.e(err);
286
- } finally {
287
- _iterator12.f();
288
- }
289
- var scrutinsJson = JSON.stringify(scrutins, null, 2);
290
- // Validate generated JSON.
291
- var scrutinsClean = _scrutins2.Convert.toScrutins(scrutinsJson);
292
- var scrutinsCleanJson = _scrutins2.Convert.scrutinsToJson(scrutinsClean);
293
- var _jsonFilePath4 = _path["default"].join(dataDir, _dataset4.filename.replace(/\.json$/, "_nettoye.json"));
294
- _fs["default"].writeFileSync(_jsonFilePath4, scrutinsCleanJson, {
295
- encoding: "utf8"
296
- });
297
- }
298
- } catch (err) {
299
- _iterator11.e(err);
300
- } finally {
301
- _iterator11.f();
302
- }
303
- }
304
-
305
- // Restore standard conversion of dates to JSON.
306
- Date.prototype.toJSON = _dates.existingDateToJson;
307
- }
308
- cleanData(options.dataDir);
309
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXNzZXJ0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfY29tbWFuZExpbmVBcmdzIiwiX2ZzIiwiX3BhdGgiLCJfYWN0ZXVycyIsIl9hbWVuZGVtZW50cyIsIl9kb2N1bWVudHMiLCJfZG9zc2llcnNfbGVnaXNsYXRpZnMiLCJfb3JnYW5lcyIsIl9yZXVuaW9ucyIsIl9zY3J1dGlucyIsIl9kYXRhc2V0cyIsIl9kYXRlcyIsIl9hY3RldXJzX2V0X29yZ2FuZXMiLCJfYWdlbmRhcyIsIl9hbWVuZGVtZW50czIiLCJfZG9zc2llcnNfbGVnaXNsYXRpZnMyIiwiX3NjcnV0aW5zMiIsIl9hY3RldXJzX2V0X29yZ2FuZXMyIiwiX2FnZW5kYXMyIiwiX2FtZW5kZW1lbnRzMyIsIl9kb3NzaWVyc19sZWdpc2xhdGlmczMiLCJfc2NydXRpbnMzIiwib2JqIiwiX19lc01vZHVsZSIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwibyIsImFsbG93QXJyYXlMaWtlIiwiaXQiLCJTeW1ib2wiLCJpdGVyYXRvciIsIkFycmF5IiwiaXNBcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsImxlbmd0aCIsImkiLCJGIiwicyIsIm4iLCJkb25lIiwidmFsdWUiLCJlIiwiX2UiLCJmIiwiVHlwZUVycm9yIiwibm9ybWFsQ29tcGxldGlvbiIsImRpZEVyciIsImVyciIsImNhbGwiLCJzdGVwIiwibmV4dCIsIl9lMiIsIm1pbkxlbiIsIl9hcnJheUxpa2VUb0FycmF5IiwiT2JqZWN0IiwicHJvdG90eXBlIiwidG9TdHJpbmciLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsImZyb20iLCJ0ZXN0IiwiYXJyIiwibGVuIiwiYXJyMiIsIm9wdGlvbnNEZWZpbml0aW9ucyIsImFsaWFzIiwiZGVmYXVsdFZhbHVlIiwiaGVscCIsIm11bHRpcGxlIiwidHlwZSIsIlN0cmluZyIsImRlZmF1bHRPcHRpb24iLCJvcHRpb25zIiwiY29tbWFuZExpbmVBcmdzIiwiY2xlYW5EYXRhIiwiZGF0YURpciIsIkRhdGUiLCJ0b0pTT04iLCJwYXRjaGVkRGF0ZVRvSnNvbiIsImNhdGVnb3JpZXMiLCJtYXAiLCJkYXRhc2V0TmFtZSIsImFzc2VydCIsIm5vdFN0cmljdEVxdWFsIiwiRW5hYmxlZERhdGFzZXRzIiwidW5kZWZpbmVkIiwiY29uY2F0IiwiZW5hYmxlZERhdGFzZXRzIiwicmVkdWNlIiwiTm9uZSIsIkFjdGV1cnNFdE9yZ2FuZXMiLCJfaXRlcmF0b3IiLCJkYXRhc2V0cyIsImFjdGV1cnNFdE9yZ2FuZXMiLCJfc3RlcCIsImRhdGFzZXQiLCJyYXdKc29uRmlsZVBhdGgiLCJwYXRoIiwiam9pbiIsImZpbGVuYW1lIiwiY29uc29sZSIsImxvZyIsInJhd0pzb24iLCJmcyIsInJlYWRGaWxlU3luYyIsImVuY29kaW5nIiwiQWN0ZXVyc0V0T3JnYW5lc1Jhd0NvbnZlcnQiLCJ0b0FjdGV1cnNFdE9yZ2FuZXMiLCJvcmdhbmVzIiwib3JnYW5lIiwiYWN0ZXVycyIsImFjdGV1ciIsIl9pdGVyYXRvcjIiLCJfc3RlcDIiLCJjbGVhbkFjdGV1ciIsIl9pdGVyYXRvcjMiLCJfc3RlcDMiLCJjbGVhbk9yZ2FuZSIsImFjdGV1cnNFdE9yZ2FuZXNKc29uIiwiSlNPTiIsInN0cmluZ2lmeSIsImFjdGV1cnNFdE9yZ2FuZXNDbGVhbiIsIkFjdGV1cnNFdE9yZ2FuZXNDb252ZXJ0IiwiYWN0ZXVyc0V0T3JnYW5lc0NsZWFuSnNvbiIsImFjdGV1cnNFdE9yZ2FuZXNUb0pzb24iLCJqc29uRmlsZVBhdGgiLCJyZXBsYWNlIiwid3JpdGVGaWxlU3luYyIsIkFnZW5kYXMiLCJfaXRlcmF0b3I0IiwiYWdlbmRhcyIsIl9zdGVwNCIsIkFnZW5kYXNSYXdDb252ZXJ0IiwidG9BZ2VuZGFzIiwicmV1bmlvbnMiLCJyZXVuaW9uIiwiX2l0ZXJhdG9yNSIsIl9zdGVwNSIsImNsZWFuUmV1bmlvbiIsImFnZW5kYXNKc29uIiwiYWdlbmRhc0NsZWFuIiwiQWdlbmRhc0NvbnZlcnQiLCJhZ2VuZGFzQ2xlYW5Kc29uIiwiYWdlbmRhc1RvSnNvbiIsIkFtZW5kZW1lbnRzIiwiX2l0ZXJhdG9yNiIsImFtZW5kZW1lbnRzIiwiX3N0ZXA2IiwiQW1lbmRlbWVudHNSYXdDb252ZXJ0IiwidG9BbWVuZGVtZW50cyIsInRleHRlc0xlZ2lzbGF0aWZzIiwidGV4dGVzRXRBbWVuZGVtZW50cyIsInRleHRlbGVnIiwiX2l0ZXJhdG9yNyIsIl9zdGVwNyIsInRleHRlTGVnaXNsYXRpZiIsImNsZWFuVGV4dGVMZWdpc2xhdGlmIiwiYW1lbmRlbWVudHNKc29uIiwiYW1lbmRlbWVudHNDbGVhbiIsIkFtZW5kZW1lbnRzQ29udmVydCIsImFtZW5kZW1lbnRzQ2xlYW5Kc29uIiwiYW1lbmRlbWVudHNUb0pzb24iLCJEb3NzaWVyc0xlZ2lzbGF0aWZzIiwiX2l0ZXJhdG9yOCIsImRvc3NpZXJzTGVnaXNsYXRpZnMiLCJfc3RlcDgiLCJEb3NzaWVyc0xlZ2lzbGF0aWZzUmF3Q29udmVydCIsInRvRG9zc2llcnNMZWdpc2xhdGlmcyIsImRvY3VtZW50IiwiZG9zc2llcnNQYXJsZW1lbnRhaXJlcyIsImRvc3NpZXIiLCJkb3NzaWVyUGFybGVtZW50YWlyZSIsIl9pdGVyYXRvcjkiLCJfc3RlcDkiLCJjbGVhbkRvY3VtZW50T3JEaXZpc2lvbiIsIl9pdGVyYXRvcjEwIiwiX3N0ZXAxMCIsImNsZWFuRG9zc2llclBhcmxlbWVudGFpcmUiLCJkb3NzaWVyc0xlZ2lzbGF0aWZzSnNvbiIsImRvc3NpZXJzTGVnaXNsYXRpZnNDbGVhbiIsIkRvc3NpZXJzTGVnaXNsYXRpZnNDb252ZXJ0IiwiZG9zc2llcnNMZWdpc2xhdGlmc0NsZWFuSnNvbiIsImRvc3NpZXJzTGVnaXNsYXRpZnNUb0pzb24iLCJTY3J1dGlucyIsIl9pdGVyYXRvcjExIiwic2NydXRpbnMiLCJfc3RlcDExIiwiU2NydXRpbnNSYXdDb252ZXJ0IiwidG9TY3J1dGlucyIsInNjcnV0aW4iLCJfaXRlcmF0b3IxMiIsIl9zdGVwMTIiLCJjbGVhblNjcnV0aW4iLCJzY3J1dGluc0pzb24iLCJzY3J1dGluc0NsZWFuIiwiU2NydXRpbnNDb252ZXJ0Iiwic2NydXRpbnNDbGVhbkpzb24iLCJzY3J1dGluc1RvSnNvbiIsImV4aXN0aW5nRGF0ZVRvSnNvbiJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL2NsZWFuX2RhdGEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tIFwiYXNzZXJ0XCJcbmltcG9ydCBjb21tYW5kTGluZUFyZ3MgZnJvbSBcImNvbW1hbmQtbGluZS1hcmdzXCJcbmltcG9ydCBmcyBmcm9tIFwiZnNcIlxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuXG5pbXBvcnQgeyBjbGVhbkFjdGV1ciB9IGZyb20gXCIuLi9jbGVhbmVycy9hY3RldXJzXCJcbmltcG9ydCB7IGNsZWFuVGV4dGVMZWdpc2xhdGlmIH0gZnJvbSBcIi4uL2NsZWFuZXJzL2FtZW5kZW1lbnRzXCJcbmltcG9ydCB7IGNsZWFuRG9jdW1lbnRPckRpdmlzaW9uIH0gZnJvbSBcIi4uL2NsZWFuZXJzL2RvY3VtZW50c1wiXG5pbXBvcnQgeyBjbGVhbkRvc3NpZXJQYXJsZW1lbnRhaXJlIH0gZnJvbSBcIi4uL2NsZWFuZXJzL2Rvc3NpZXJzX2xlZ2lzbGF0aWZzXCJcbmltcG9ydCB7IGNsZWFuT3JnYW5lIH0gZnJvbSBcIi4uL2NsZWFuZXJzL29yZ2FuZXNcIlxuaW1wb3J0IHsgY2xlYW5SZXVuaW9uIH0gZnJvbSBcIi4uL2NsZWFuZXJzL3JldW5pb25zXCJcbmltcG9ydCB7IGNsZWFuU2NydXRpbiB9IGZyb20gXCIuLi9jbGVhbmVycy9zY3J1dGluc1wiXG5pbXBvcnQgeyBkYXRhc2V0cywgRW5hYmxlZERhdGFzZXRzIH0gZnJvbSBcIi4uL2RhdGFzZXRzXCJcbmltcG9ydCB7IGV4aXN0aW5nRGF0ZVRvSnNvbiwgcGF0Y2hlZERhdGVUb0pzb24gfSBmcm9tIFwiLi4vZGF0ZXNcIlxuaW1wb3J0IHtcbiAgQWN0ZXVyc0V0T3JnYW5lcyxcbiAgQ29udmVydCBhcyBBY3RldXJzRXRPcmdhbmVzQ29udmVydCxcbn0gZnJvbSBcIi4uL3R5cGVzL2FjdGV1cnNfZXRfb3JnYW5lc1wiXG5pbXBvcnQgeyBBZ2VuZGFzLCBDb252ZXJ0IGFzIEFnZW5kYXNDb252ZXJ0IH0gZnJvbSBcIi4uL3R5cGVzL2FnZW5kYXNcIlxuaW1wb3J0IHtcbiAgQW1lbmRlbWVudHMsXG4gIENvbnZlcnQgYXMgQW1lbmRlbWVudHNDb252ZXJ0LFxufSBmcm9tIFwiLi4vdHlwZXMvYW1lbmRlbWVudHNcIlxuaW1wb3J0IHtcbiAgRG9zc2llcnNMZWdpc2xhdGlmcyxcbiAgQ29udmVydCBhcyBEb3NzaWVyc0xlZ2lzbGF0aWZzQ29udmVydCxcbn0gZnJvbSBcIi4uL3R5cGVzL2Rvc3NpZXJzX2xlZ2lzbGF0aWZzXCJcbmltcG9ydCB7IENvbnZlcnQgYXMgU2NydXRpbnNDb252ZXJ0LCBTY3J1dGlucyB9IGZyb20gXCIuLi90eXBlcy9zY3J1dGluc1wiXG5pbXBvcnQgeyBDb252ZXJ0IGFzIEFjdGV1cnNFdE9yZ2FuZXNSYXdDb252ZXJ0IH0gZnJvbSBcIi4uL3Jhd190eXBlcy9hY3RldXJzX2V0X29yZ2FuZXNcIlxuaW1wb3J0IHsgQ29udmVydCBhcyBBZ2VuZGFzUmF3Q29udmVydCB9IGZyb20gXCIuLi9yYXdfdHlwZXMvYWdlbmRhc1wiXG5pbXBvcnQgeyBDb252ZXJ0IGFzIEFtZW5kZW1lbnRzUmF3Q29udmVydCB9IGZyb20gXCIuLi9yYXdfdHlwZXMvYW1lbmRlbWVudHNcIlxuaW1wb3J0IHtcbiAgQ29udmVydCBhcyBEb3NzaWVyc0xlZ2lzbGF0aWZzUmF3Q29udmVydCxcbiAgRG9zc2llciBhcyBEb3NzaWVyUmF3LFxufSBmcm9tIFwiLi4vcmF3X3R5cGVzL2Rvc3NpZXJzX2xlZ2lzbGF0aWZzXCJcbmltcG9ydCB7IENvbnZlcnQgYXMgU2NydXRpbnNSYXdDb252ZXJ0IH0gZnJvbSBcIi4uL3Jhd190eXBlcy9zY3J1dGluc1wiXG5cbmNvbnN0IG9wdGlvbnNEZWZpbml0aW9ucyA9IFtcbiAge1xuICAgIGFsaWFzOiBcImtcIixcbiAgICBkZWZhdWx0VmFsdWU6IFtcIkFsbFwiXSxcbiAgICBoZWxwOiBcImNhdGVnb3JpZXMgb2YgZGF0YXNldHMgdG8gcmVvcmdhbml6ZVwiLFxuICAgIG11bHRpcGxlOiB0cnVlLFxuICAgIG5hbWU6IFwiY2F0ZWdvcmllc1wiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbiAge1xuICAgIGRlZmF1bHRPcHRpb246IHRydWUsXG4gICAgaGVscDogXCJkaXJlY3RvcnkgY29udGFpbmluZyBBc3NlbWJsw6llIG9wZW4gZGF0YSBmaWxlc1wiLFxuICAgIG5hbWU6IFwiZGF0YURpclwiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbl1cbmNvbnN0IG9wdGlvbnMgPSBjb21tYW5kTGluZUFyZ3Mob3B0aW9uc0RlZmluaXRpb25zKVxuXG5mdW5jdGlvbiBjbGVhbkRhdGEoZGF0YURpcjogc3RyaW5nKTogdm9pZCB7XG4gIERhdGUucHJvdG90eXBlLnRvSlNPTiA9IHBhdGNoZWREYXRlVG9Kc29uXG5cbiAgb3B0aW9ucy5jYXRlZ29yaWVzLm1hcCgoZGF0YXNldE5hbWU6IHN0cmluZykgPT5cbiAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwoXG4gICAgICAoRW5hYmxlZERhdGFzZXRzIGFzIGFueSBhcyB7IFtuYW1lOiBzdHJpbmddOiBFbmFibGVkRGF0YXNldHMgfSlbXG4gICAgICAgIGRhdGFzZXROYW1lXG4gICAgICBdLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgYFVua25vd24gbmFtZSBvZiBkYXRhc2V0OiAke2RhdGFzZXROYW1lfWAsXG4gICAgKSxcbiAgKVxuICBjb25zdCBlbmFibGVkRGF0YXNldHMgPSBvcHRpb25zLmNhdGVnb3JpZXMucmVkdWNlKFxuICAgIChlbmFibGVkRGF0YXNldHM6IEVuYWJsZWREYXRhc2V0cywgZGF0YXNldE5hbWU6IHN0cmluZyk6IEVuYWJsZWREYXRhc2V0cyA9PlxuICAgICAgZW5hYmxlZERhdGFzZXRzIHxcbiAgICAgIChFbmFibGVkRGF0YXNldHMgYXMgYW55IGFzIHsgW25hbWU6IHN0cmluZ106IEVuYWJsZWREYXRhc2V0cyB9KVtcbiAgICAgICAgZGF0YXNldE5hbWVcbiAgICAgIF0sXG4gICAgRW5hYmxlZERhdGFzZXRzLk5vbmUsXG4gIClcblxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkFjdGV1cnNFdE9yZ2FuZXMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMuYWN0ZXVyc0V0T3JnYW5lcykge1xuICAgICAgY29uc3QgcmF3SnNvbkZpbGVQYXRoOiBzdHJpbmcgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7cmF3SnNvbkZpbGVQYXRofWApXG4gICAgICBjb25zdCByYXdKc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMocmF3SnNvbkZpbGVQYXRoLCB7XG4gICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgIH0pXG5cbiAgICAgIGNvbnN0IGFjdGV1cnNFdE9yZ2FuZXM6IGFueSA9XG4gICAgICAgIEFjdGV1cnNFdE9yZ2FuZXNSYXdDb252ZXJ0LnRvQWN0ZXVyc0V0T3JnYW5lcyhyYXdKc29uKVxuICAgICAgLy8gY29uc3QgYWN0ZXVycyA9IGpwLnF1ZXJ5KGFjdGV1cnNFdE9yZ2FuZXMsIFwiJC5leHBvcnQuYWN0ZXVycy5hY3RldXJcIilbMF1cbiAgICAgIGNvbnN0IG9yZ2FuZXMgPSBhY3RldXJzRXRPcmdhbmVzLmV4cG9ydC5vcmdhbmVzLm9yZ2FuZVxuICAgICAgYWN0ZXVyc0V0T3JnYW5lcy5vcmdhbmVzID0gb3JnYW5lc1xuICAgICAgY29uc3QgYWN0ZXVycyA9IGFjdGV1cnNFdE9yZ2FuZXMuZXhwb3J0LmFjdGV1cnMuYWN0ZXVyXG4gICAgICBhY3RldXJzRXRPcmdhbmVzLmFjdGV1cnMgPSBhY3RldXJzXG4gICAgICBkZWxldGUgYWN0ZXVyc0V0T3JnYW5lcy5leHBvcnRcblxuICAgICAgZm9yIChjb25zdCBhY3RldXIgb2YgYWN0ZXVycykge1xuICAgICAgICBjbGVhbkFjdGV1cihhY3RldXIpXG4gICAgICB9XG5cbiAgICAgIGZvciAoY29uc3Qgb3JnYW5lIG9mIG9yZ2FuZXMpIHtcbiAgICAgICAgY2xlYW5PcmdhbmUob3JnYW5lKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBhY3RldXJzRXRPcmdhbmVzSnNvbjogc3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoXG4gICAgICAgIGFjdGV1cnNFdE9yZ2FuZXMsXG4gICAgICAgIG51bGwsXG4gICAgICAgIDIsXG4gICAgICApXG4gICAgICAvLyBWYWxpZGF0ZSBnZW5lcmF0ZWQgSlNPTi5cbiAgICAgIGNvbnN0IGFjdGV1cnNFdE9yZ2FuZXNDbGVhbjogQWN0ZXVyc0V0T3JnYW5lcyA9XG4gICAgICAgIEFjdGV1cnNFdE9yZ2FuZXNDb252ZXJ0LnRvQWN0ZXVyc0V0T3JnYW5lcyhhY3RldXJzRXRPcmdhbmVzSnNvbilcbiAgICAgIGNvbnN0IGFjdGV1cnNFdE9yZ2FuZXNDbGVhbkpzb246IHN0cmluZyA9XG4gICAgICAgIEFjdGV1cnNFdE9yZ2FuZXNDb252ZXJ0LmFjdGV1cnNFdE9yZ2FuZXNUb0pzb24oYWN0ZXVyc0V0T3JnYW5lc0NsZWFuKVxuICAgICAgY29uc3QganNvbkZpbGVQYXRoOiBzdHJpbmcgPSBwYXRoLmpvaW4oXG4gICAgICAgIGRhdGFEaXIsXG4gICAgICAgIGRhdGFzZXQuZmlsZW5hbWUucmVwbGFjZSgvXFwuanNvbiQvLCBcIl9uZXR0b3llLmpzb25cIiksXG4gICAgICApXG4gICAgICBmcy53cml0ZUZpbGVTeW5jKGpzb25GaWxlUGF0aCwgYWN0ZXVyc0V0T3JnYW5lc0NsZWFuSnNvbiwge1xuICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuQWdlbmRhcykge1xuICAgIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5hZ2VuZGFzKSB7XG4gICAgICBjb25zdCByYXdKc29uRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0LmZpbGVuYW1lKVxuICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtyYXdKc29uRmlsZVBhdGh9YClcbiAgICAgIGNvbnN0IHJhd0pzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhyYXdKc29uRmlsZVBhdGgsIHtcbiAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgfSlcblxuICAgICAgY29uc3QgYWdlbmRhczogYW55ID0gQWdlbmRhc1Jhd0NvbnZlcnQudG9BZ2VuZGFzKHJhd0pzb24pXG4gICAgICBhZ2VuZGFzLnJldW5pb25zID0gYWdlbmRhcy5yZXVuaW9ucy5yZXVuaW9uXG5cbiAgICAgIGZvciAoY29uc3QgcmV1bmlvbiBvZiBhZ2VuZGFzLnJldW5pb25zKSB7XG4gICAgICAgIGNsZWFuUmV1bmlvbihyZXVuaW9uKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBhZ2VuZGFzSnNvbjogc3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoYWdlbmRhcywgbnVsbCwgMilcbiAgICAgIC8vIFZhbGlkYXRlIGdlbmVyYXRlZCBKU09OLlxuICAgICAgY29uc3QgYWdlbmRhc0NsZWFuOiBBZ2VuZGFzID0gQWdlbmRhc0NvbnZlcnQudG9BZ2VuZGFzKGFnZW5kYXNKc29uKVxuICAgICAgY29uc3QgYWdlbmRhc0NsZWFuSnNvbjogc3RyaW5nID1cbiAgICAgICAgQWdlbmRhc0NvbnZlcnQuYWdlbmRhc1RvSnNvbihhZ2VuZGFzQ2xlYW4pXG4gICAgICBjb25zdCBqc29uRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWUuanNvblwiKSxcbiAgICAgIClcbiAgICAgIGZzLndyaXRlRmlsZVN5bmMoanNvbkZpbGVQYXRoLCBhZ2VuZGFzQ2xlYW5Kc29uLCB7IGVuY29kaW5nOiBcInV0ZjhcIiB9KVxuICAgIH1cbiAgfVxuXG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuQW1lbmRlbWVudHMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMuYW1lbmRlbWVudHMpIHtcbiAgICAgIGNvbnN0IHJhd0pzb25GaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke3Jhd0pzb25GaWxlUGF0aH1gKVxuICAgICAgY29uc3QgcmF3SnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKHJhd0pzb25GaWxlUGF0aCwge1xuICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICB9KVxuXG4gICAgICBjb25zdCBhbWVuZGVtZW50czogYW55ID0gQW1lbmRlbWVudHNSYXdDb252ZXJ0LnRvQW1lbmRlbWVudHMocmF3SnNvbilcbiAgICAgIGFtZW5kZW1lbnRzLnRleHRlc0xlZ2lzbGF0aWZzID0gYW1lbmRlbWVudHMudGV4dGVzRXRBbWVuZGVtZW50cy50ZXh0ZWxlZ1xuICAgICAgZGVsZXRlIGFtZW5kZW1lbnRzLnRleHRlc0V0QW1lbmRlbWVudHNcblxuICAgICAgZm9yIChjb25zdCB0ZXh0ZUxlZ2lzbGF0aWYgb2YgYW1lbmRlbWVudHMudGV4dGVzTGVnaXNsYXRpZnMpIHtcbiAgICAgICAgY2xlYW5UZXh0ZUxlZ2lzbGF0aWYodGV4dGVMZWdpc2xhdGlmKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBhbWVuZGVtZW50c0pzb246IHN0cmluZyA9IEpTT04uc3RyaW5naWZ5KGFtZW5kZW1lbnRzLCBudWxsLCAyKVxuICAgICAgLy8gVmFsaWRhdGUgZ2VuZXJhdGVkIEpTT04uXG4gICAgICBjb25zdCBhbWVuZGVtZW50c0NsZWFuOiBBbWVuZGVtZW50cyA9XG4gICAgICAgIEFtZW5kZW1lbnRzQ29udmVydC50b0FtZW5kZW1lbnRzKGFtZW5kZW1lbnRzSnNvbilcbiAgICAgIGNvbnN0IGFtZW5kZW1lbnRzQ2xlYW5Kc29uOiBzdHJpbmcgPVxuICAgICAgICBBbWVuZGVtZW50c0NvbnZlcnQuYW1lbmRlbWVudHNUb0pzb24oYW1lbmRlbWVudHNDbGVhbilcbiAgICAgIGNvbnN0IGpzb25GaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZS5qc29uXCIpLFxuICAgICAgKVxuICAgICAgZnMud3JpdGVGaWxlU3luYyhqc29uRmlsZVBhdGgsIGFtZW5kZW1lbnRzQ2xlYW5Kc29uLCB7IGVuY29kaW5nOiBcInV0ZjhcIiB9KVxuICAgIH1cbiAgfVxuXG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuRG9zc2llcnNMZWdpc2xhdGlmcykge1xuICAgIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5kb3NzaWVyc0xlZ2lzbGF0aWZzKSB7XG4gICAgICBjb25zdCByYXdKc29uRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0LmZpbGVuYW1lKVxuICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtyYXdKc29uRmlsZVBhdGh9YClcbiAgICAgIGNvbnN0IHJhd0pzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhyYXdKc29uRmlsZVBhdGgsIHtcbiAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgfSlcblxuICAgICAgY29uc3QgZG9zc2llcnNMZWdpc2xhdGlmczogYW55ID1cbiAgICAgICAgRG9zc2llcnNMZWdpc2xhdGlmc1Jhd0NvbnZlcnQudG9Eb3NzaWVyc0xlZ2lzbGF0aWZzKHJhd0pzb24pXG4gICAgICBkb3NzaWVyc0xlZ2lzbGF0aWZzLnRleHRlc0xlZ2lzbGF0aWZzID1cbiAgICAgICAgZG9zc2llcnNMZWdpc2xhdGlmcy5leHBvcnQudGV4dGVzTGVnaXNsYXRpZnMuZG9jdW1lbnRcbiAgICAgIGRvc3NpZXJzTGVnaXNsYXRpZnMuZG9zc2llcnNQYXJsZW1lbnRhaXJlcyA9IChcbiAgICAgICAgZG9zc2llcnNMZWdpc2xhdGlmcy5leHBvcnQuZG9zc2llcnNMZWdpc2xhdGlmcy5kb3NzaWVyIGFzIERvc3NpZXJSYXdbXVxuICAgICAgKS5tYXAoKGRvc3NpZXIpID0+IGRvc3NpZXIuZG9zc2llclBhcmxlbWVudGFpcmUpXG4gICAgICBkZWxldGUgZG9zc2llcnNMZWdpc2xhdGlmcy5leHBvcnRcblxuICAgICAgZm9yIChjb25zdCBkb2N1bWVudCBvZiBkb3NzaWVyc0xlZ2lzbGF0aWZzLnRleHRlc0xlZ2lzbGF0aWZzKSB7XG4gICAgICAgIGNsZWFuRG9jdW1lbnRPckRpdmlzaW9uKGRvY3VtZW50KVxuICAgICAgfVxuXG4gICAgICBmb3IgKGNvbnN0IGRvc3NpZXJQYXJsZW1lbnRhaXJlIG9mIGRvc3NpZXJzTGVnaXNsYXRpZnMuZG9zc2llcnNQYXJsZW1lbnRhaXJlcykge1xuICAgICAgICBjbGVhbkRvc3NpZXJQYXJsZW1lbnRhaXJlKGRvc3NpZXJQYXJsZW1lbnRhaXJlKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBkb3NzaWVyc0xlZ2lzbGF0aWZzSnNvbjogc3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoXG4gICAgICAgIGRvc3NpZXJzTGVnaXNsYXRpZnMsXG4gICAgICAgIG51bGwsXG4gICAgICAgIDIsXG4gICAgICApXG4gICAgICAvLyBWYWxpZGF0ZSBnZW5lcmF0ZWQgSlNPTi5cbiAgICAgIGNvbnN0IGRvc3NpZXJzTGVnaXNsYXRpZnNDbGVhbjogRG9zc2llcnNMZWdpc2xhdGlmcyA9XG4gICAgICAgIERvc3NpZXJzTGVnaXNsYXRpZnNDb252ZXJ0LnRvRG9zc2llcnNMZWdpc2xhdGlmcyhcbiAgICAgICAgICBkb3NzaWVyc0xlZ2lzbGF0aWZzSnNvbixcbiAgICAgICAgKVxuICAgICAgY29uc3QgZG9zc2llcnNMZWdpc2xhdGlmc0NsZWFuSnNvbjogc3RyaW5nID1cbiAgICAgICAgRG9zc2llcnNMZWdpc2xhdGlmc0NvbnZlcnQuZG9zc2llcnNMZWdpc2xhdGlmc1RvSnNvbihcbiAgICAgICAgICBkb3NzaWVyc0xlZ2lzbGF0aWZzQ2xlYW4sXG4gICAgICAgIClcbiAgICAgIGNvbnN0IGpzb25GaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZS5qc29uXCIpLFxuICAgICAgKVxuICAgICAgZnMud3JpdGVGaWxlU3luYyhqc29uRmlsZVBhdGgsIGRvc3NpZXJzTGVnaXNsYXRpZnNDbGVhbkpzb24sIHtcbiAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLlNjcnV0aW5zKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLnNjcnV0aW5zKSB7XG4gICAgICBjb25zdCByYXdKc29uRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0LmZpbGVuYW1lKVxuICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtyYXdKc29uRmlsZVBhdGh9YClcbiAgICAgIGNvbnN0IHJhd0pzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhyYXdKc29uRmlsZVBhdGgsIHtcbiAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgfSlcblxuICAgICAgY29uc3Qgc2NydXRpbnM6IGFueSA9IFNjcnV0aW5zUmF3Q29udmVydC50b1NjcnV0aW5zKHJhd0pzb24pXG4gICAgICBzY3J1dGlucy5zY3J1dGlucyA9IHNjcnV0aW5zLnNjcnV0aW5zLnNjcnV0aW5cblxuICAgICAgZm9yIChjb25zdCBzY3J1dGluIG9mIHNjcnV0aW5zLnNjcnV0aW5zKSB7XG4gICAgICAgIGNsZWFuU2NydXRpbihzY3J1dGluKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBzY3J1dGluc0pzb246IHN0cmluZyA9IEpTT04uc3RyaW5naWZ5KHNjcnV0aW5zLCBudWxsLCAyKVxuICAgICAgLy8gVmFsaWRhdGUgZ2VuZXJhdGVkIEpTT04uXG4gICAgICBjb25zdCBzY3J1dGluc0NsZWFuOiBTY3J1dGlucyA9IFNjcnV0aW5zQ29udmVydC50b1NjcnV0aW5zKHNjcnV0aW5zSnNvbilcbiAgICAgIGNvbnN0IHNjcnV0aW5zQ2xlYW5Kc29uOiBzdHJpbmcgPVxuICAgICAgICBTY3J1dGluc0NvbnZlcnQuc2NydXRpbnNUb0pzb24oc2NydXRpbnNDbGVhbilcbiAgICAgIGNvbnN0IGpzb25GaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZS5qc29uXCIpLFxuICAgICAgKVxuICAgICAgZnMud3JpdGVGaWxlU3luYyhqc29uRmlsZVBhdGgsIHNjcnV0aW5zQ2xlYW5Kc29uLCB7IGVuY29kaW5nOiBcInV0ZjhcIiB9KVxuICAgIH1cbiAgfVxuXG4gIC8vIFJlc3RvcmUgc3RhbmRhcmQgY29udmVyc2lvbiBvZiBkYXRlcyB0byBKU09OLlxuICBEYXRlLnByb3RvdHlwZS50b0pTT04gPSBleGlzdGluZ0RhdGVUb0pzb25cbn1cblxuY2xlYW5EYXRhKG9wdGlvbnMuZGF0YURpcilcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxnQkFBQSxH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