@tricoteuses/assemblee 1.10.5 → 2.0.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 (400) hide show
  1. package/README.md +8 -1
  2. package/lib/amendements-CN7bRFdP.js +259 -0
  3. package/lib/amendements-CN7bRFdP.js.map +1 -0
  4. package/lib/amendements-Cg1lyCBp.js +735 -0
  5. package/lib/amendements-Cg1lyCBp.js.map +1 -0
  6. package/lib/api.d.ts +1 -0
  7. package/lib/api.d.ts.map +1 -0
  8. package/lib/cleaners/actes_legislatifs.d.ts +1 -0
  9. package/lib/cleaners/actes_legislatifs.d.ts.map +1 -0
  10. package/lib/cleaners/acteurs.d.ts +1 -0
  11. package/lib/cleaners/acteurs.d.ts.map +1 -0
  12. package/lib/cleaners/amendements.d.ts +1 -0
  13. package/lib/cleaners/amendements.d.ts.map +1 -0
  14. package/lib/cleaners/debats.d.ts +1 -0
  15. package/lib/cleaners/debats.d.ts.map +1 -0
  16. package/lib/cleaners/documents.d.ts +1 -0
  17. package/lib/cleaners/documents.d.ts.map +1 -0
  18. package/lib/cleaners/dossiers_legislatifs.d.ts +1 -0
  19. package/lib/cleaners/dossiers_legislatifs.d.ts.map +1 -0
  20. package/lib/cleaners/index.d.ts +10 -9
  21. package/lib/cleaners/index.d.ts.map +1 -0
  22. package/lib/cleaners/organes.d.ts +1 -0
  23. package/lib/cleaners/organes.d.ts.map +1 -0
  24. package/lib/cleaners/questions.d.ts +1 -0
  25. package/lib/cleaners/questions.d.ts.map +1 -0
  26. package/lib/cleaners/reunions.d.ts +1 -0
  27. package/lib/cleaners/reunions.d.ts.map +1 -0
  28. package/lib/cleaners/scrutins.d.ts +1 -0
  29. package/lib/cleaners/scrutins.d.ts.map +1 -0
  30. package/lib/cleaners/xml.d.ts +1 -0
  31. package/lib/cleaners/xml.d.ts.map +1 -0
  32. package/lib/cleaners.js +1138 -0
  33. package/lib/cleaners.js.map +1 -0
  34. package/lib/datasets.d.ts +4 -3
  35. package/lib/datasets.d.ts.map +1 -0
  36. package/lib/dates.d.ts +1 -0
  37. package/lib/dates.d.ts.map +1 -0
  38. package/lib/debats-BwZYgzXe.js +3978 -0
  39. package/lib/debats-BwZYgzXe.js.map +1 -0
  40. package/lib/dossiers_legislatifs.d.ts +3 -2
  41. package/lib/dossiers_legislatifs.d.ts.map +1 -0
  42. package/lib/file_systems.d.ts +1 -0
  43. package/lib/file_systems.d.ts.map +1 -0
  44. package/lib/git.d.ts +1 -0
  45. package/lib/git.d.ts.map +1 -0
  46. package/lib/index.d.ts +18 -22
  47. package/lib/index.d.ts.map +1 -0
  48. package/lib/index.js +1916 -285
  49. package/lib/index.js.map +1 -0
  50. package/lib/inserters.d.ts +6 -5
  51. package/lib/inserters.d.ts.map +1 -0
  52. package/lib/loaders.d.ts +13 -12
  53. package/lib/loaders.d.ts.map +1 -0
  54. package/lib/loaders.js +812 -1516
  55. package/lib/loaders.js.map +1 -0
  56. package/lib/logger.d.ts +1 -0
  57. package/lib/logger.d.ts.map +1 -0
  58. package/lib/organes.d.ts +2 -1
  59. package/lib/organes.d.ts.map +1 -0
  60. package/lib/parse-CzW8NHW5.js +2850 -0
  61. package/lib/parse-CzW8NHW5.js.map +1 -0
  62. package/lib/parsers/index.d.ts +3 -3
  63. package/lib/parsers/index.d.ts.map +1 -0
  64. package/lib/parsers/plf.d.ts +2 -0
  65. package/lib/parsers/plf.d.ts.map +1 -0
  66. package/lib/parsers/recherche_amendements.d.ts +3 -2
  67. package/lib/parsers/recherche_amendements.d.ts.map +1 -0
  68. package/lib/parsers/textes_lois.d.ts +2 -23
  69. package/lib/parsers/textes_lois.d.ts.map +1 -0
  70. package/lib/parsers.js +393 -0
  71. package/lib/parsers.js.map +1 -0
  72. package/lib/raw_types/acteurs_et_organes.d.ts +1 -0
  73. package/lib/raw_types/acteurs_et_organes.d.ts.map +1 -0
  74. package/lib/raw_types/agendas.d.ts +1 -0
  75. package/lib/raw_types/agendas.d.ts.map +1 -0
  76. package/lib/raw_types/amendements.d.ts +1 -0
  77. package/lib/raw_types/amendements.d.ts.map +1 -0
  78. package/lib/raw_types/debats.d.ts +3 -2
  79. package/lib/raw_types/debats.d.ts.map +1 -0
  80. package/lib/raw_types/dossiers_legislatifs.d.ts +2 -1
  81. package/lib/raw_types/dossiers_legislatifs.d.ts.map +1 -0
  82. package/lib/raw_types/questions.d.ts +1 -0
  83. package/lib/raw_types/questions.d.ts.map +1 -0
  84. package/lib/raw_types/scrutins.d.ts +1 -0
  85. package/lib/raw_types/scrutins.d.ts.map +1 -0
  86. package/lib/schemas/acteurs_et_organes.d.json +982 -0
  87. package/lib/schemas/acteurs_et_organes.json +1166 -0
  88. package/lib/schemas/agendas.d.json +1561 -0
  89. package/lib/schemas/agendas.json +1745 -0
  90. package/lib/schemas/amendements.d.json +1901 -0
  91. package/lib/schemas/amendements.json +2085 -0
  92. package/lib/schemas/debats.d.json +623 -0
  93. package/lib/schemas/debats.json +842 -0
  94. package/lib/schemas/dossiers_legislatifs.d.json +3690 -0
  95. package/lib/schemas/dossiers_legislatifs.json +3874 -0
  96. package/lib/schemas/legislatures.d.json +17 -0
  97. package/lib/schemas/legislatures.json +17 -0
  98. package/lib/schemas/questions.d.json +520 -0
  99. package/lib/schemas/questions.json +704 -0
  100. package/lib/schemas/scrutins.d.json +517 -0
  101. package/lib/schemas/scrutins.json +701 -0
  102. package/lib/scripts/add_links_to_documents.d.ts +2 -0
  103. package/lib/scripts/add_links_to_documents.d.ts.map +1 -0
  104. package/lib/scripts/clean_reorganized_data.d.ts +1 -0
  105. package/lib/scripts/clean_reorganized_data.d.ts.map +1 -0
  106. package/lib/scripts/copy-schemas.d.ts +2 -0
  107. package/lib/scripts/copy-schemas.d.ts.map +1 -0
  108. package/lib/scripts/diff_amendements.d.ts +1 -0
  109. package/lib/scripts/diff_amendements.d.ts.map +1 -0
  110. package/lib/scripts/document_dossiers_legislatifs.d.ts +1 -0
  111. package/lib/scripts/document_dossiers_legislatifs.d.ts.map +1 -0
  112. package/lib/scripts/generate-json-schemas.d.ts +2 -0
  113. package/lib/scripts/generate-json-schemas.d.ts.map +1 -0
  114. package/lib/scripts/get_today_reunions.d.ts +1 -0
  115. package/lib/scripts/get_today_reunions.d.ts.map +1 -0
  116. package/lib/scripts/merge_scrutins.d.ts +1 -0
  117. package/lib/scripts/merge_scrutins.d.ts.map +1 -0
  118. package/lib/scripts/process_open_dataset.d.ts +1 -0
  119. package/lib/scripts/process_open_dataset.d.ts.map +1 -0
  120. package/lib/scripts/raw_types_from_amendements.d.ts +1 -0
  121. package/lib/scripts/raw_types_from_amendements.d.ts.map +1 -0
  122. package/lib/scripts/reorganize_data.d.ts +1 -0
  123. package/lib/scripts/reorganize_data.d.ts.map +1 -0
  124. package/lib/scripts/retrieve_deputes_photos.d.ts +2 -1
  125. package/lib/scripts/retrieve_deputes_photos.d.ts.map +1 -0
  126. package/lib/scripts/retrieve_documents.d.ts +1 -0
  127. package/lib/scripts/retrieve_documents.d.ts.map +1 -0
  128. package/lib/scripts/retrieve_open_data.d.ts +1 -0
  129. package/lib/scripts/retrieve_open_data.d.ts.map +1 -0
  130. package/lib/scripts/retrieve_pending_amendments.d.ts +1 -0
  131. package/lib/scripts/retrieve_pending_amendments.d.ts.map +1 -0
  132. package/lib/scripts/retrieve_senateurs_photos.d.ts +1 -0
  133. package/lib/scripts/retrieve_senateurs_photos.d.ts.map +1 -0
  134. package/lib/scripts/shared/cli_helpers.d.ts +1 -0
  135. package/lib/scripts/shared/cli_helpers.d.ts.map +1 -0
  136. package/lib/scripts/test_iter_load.d.ts +1 -0
  137. package/lib/scripts/test_iter_load.d.ts.map +1 -0
  138. package/lib/scripts/test_load.d.ts +1 -0
  139. package/lib/scripts/test_load.d.ts.map +1 -0
  140. package/lib/scripts/test_load_big_files.d.ts +1 -0
  141. package/lib/scripts/test_load_big_files.d.ts.map +1 -0
  142. package/lib/scripts/validate_json.d.ts +1 -0
  143. package/lib/scripts/validate_json.d.ts.map +1 -0
  144. package/lib/shared_types/codes_actes.d.ts +1 -0
  145. package/lib/shared_types/codes_actes.d.ts.map +1 -0
  146. package/lib/strings.d.ts +1 -0
  147. package/lib/strings.d.ts.map +1 -0
  148. package/lib/types/acteurs_et_organes.d.ts +341 -0
  149. package/lib/types/acteurs_et_organes.d.ts.map +1 -0
  150. package/lib/types/agendas.d.ts +237 -10
  151. package/lib/types/agendas.d.ts.map +1 -0
  152. package/lib/types/amendements.d.ts +277 -1
  153. package/lib/types/amendements.d.ts.map +1 -0
  154. package/lib/types/debats.d.ts +53 -2
  155. package/lib/types/debats.d.ts.map +1 -0
  156. package/lib/types/dossiers_legislatifs.d.ts +404 -9
  157. package/lib/types/dossiers_legislatifs.d.ts.map +1 -0
  158. package/lib/types/legislatures.d.ts +1 -0
  159. package/lib/types/legislatures.d.ts.map +1 -0
  160. package/lib/types/questions.d.ts +100 -2
  161. package/lib/types/questions.d.ts.map +1 -0
  162. package/lib/types/scrutins.d.ts +102 -0
  163. package/lib/types/scrutins.d.ts.map +1 -0
  164. package/lib/urls.d.ts +3 -2
  165. package/lib/urls.d.ts.map +1 -0
  166. package/package.json +31 -95
  167. package/lib/api.js +0 -52
  168. package/lib/api.mjs +0 -45
  169. package/lib/bugs/acteur-00010/plugin.test.d.ts +0 -1
  170. package/lib/bugs/acteur-00010/plugin.test.js +0 -90
  171. package/lib/bugs/acteur-00010/plugin.test.mjs +0 -33
  172. package/lib/bugs/acteur-00010.d.ts +0 -7
  173. package/lib/bugs/acteur-00010.js +0 -116
  174. package/lib/bugs/acteur-00010.mjs +0 -26
  175. package/lib/bugs/agenda-00002/plugin.test.d.ts +0 -1
  176. package/lib/bugs/agenda-00002/plugin.test.js +0 -124
  177. package/lib/bugs/agenda-00002/plugin.test.mjs +0 -50
  178. package/lib/bugs/agenda-00002.d.ts +0 -15
  179. package/lib/bugs/agenda-00002.js +0 -406
  180. package/lib/bugs/agenda-00002.mjs +0 -172
  181. package/lib/bugs/agenda-00008/plugin.test.d.ts +0 -1
  182. package/lib/bugs/agenda-00008/plugin.test.js +0 -92
  183. package/lib/bugs/agenda-00008/plugin.test.mjs +0 -31
  184. package/lib/bugs/agenda-00008.d.ts +0 -7
  185. package/lib/bugs/agenda-00008.js +0 -123
  186. package/lib/bugs/agenda-00008.mjs +0 -26
  187. package/lib/bugs/agenda-00011/plugin.test.d.ts +0 -1
  188. package/lib/bugs/agenda-00011/plugin.test.js +0 -263
  189. package/lib/bugs/agenda-00011/plugin.test.mjs +0 -152
  190. package/lib/bugs/agenda-00011.d.ts +0 -16
  191. package/lib/bugs/agenda-00011.js +0 -333
  192. package/lib/bugs/agenda-00011.mjs +0 -125
  193. package/lib/bugs.d.ts +0 -21
  194. package/lib/bugs.js +0 -452
  195. package/lib/bugs.mjs +0 -70
  196. package/lib/cleaners/actes_legislatifs.js +0 -315
  197. package/lib/cleaners/actes_legislatifs.mjs +0 -253
  198. package/lib/cleaners/acteurs.js +0 -265
  199. package/lib/cleaners/acteurs.mjs +0 -180
  200. package/lib/cleaners/amendements.js +0 -294
  201. package/lib/cleaners/amendements.mjs +0 -227
  202. package/lib/cleaners/debats.js +0 -12
  203. package/lib/cleaners/debats.mjs +0 -5
  204. package/lib/cleaners/documents.js +0 -205
  205. package/lib/cleaners/documents.mjs +0 -133
  206. package/lib/cleaners/dossiers_legislatifs.js +0 -131
  207. package/lib/cleaners/dossiers_legislatifs.mjs +0 -70
  208. package/lib/cleaners/index.js +0 -70
  209. package/lib/cleaners/index.mjs +0 -10
  210. package/lib/cleaners/organes.js +0 -65
  211. package/lib/cleaners/organes.mjs +0 -48
  212. package/lib/cleaners/questions.js +0 -12
  213. package/lib/cleaners/questions.mjs +0 -5
  214. package/lib/cleaners/reunions.js +0 -312
  215. package/lib/cleaners/reunions.mjs +0 -255
  216. package/lib/cleaners/scrutins.js +0 -340
  217. package/lib/cleaners/scrutins.mjs +0 -221
  218. package/lib/cleaners/xml.js +0 -74
  219. package/lib/cleaners/xml.mjs +0 -59
  220. package/lib/datasets.js +0 -837
  221. package/lib/datasets.mjs +0 -755
  222. package/lib/dates.js +0 -124
  223. package/lib/dates.mjs +0 -100
  224. package/lib/dossiers_legislatifs.js +0 -346
  225. package/lib/dossiers_legislatifs.mjs +0 -208
  226. package/lib/file_systems.js +0 -162
  227. package/lib/file_systems.mjs +0 -62
  228. package/lib/git.js +0 -223
  229. package/lib/git.mjs +0 -151
  230. package/lib/index.mjs +0 -17
  231. package/lib/inserters.js +0 -521
  232. package/lib/inserters.mjs +0 -337
  233. package/lib/loaders.mjs +0 -886
  234. package/lib/logger.js +0 -35
  235. package/lib/logger.mjs +0 -26
  236. package/lib/organes.js +0 -22
  237. package/lib/organes.mjs +0 -15
  238. package/lib/parsers/documents.d.ts +0 -62
  239. package/lib/parsers/documents.js +0 -453
  240. package/lib/parsers/documents.mjs +0 -370
  241. package/lib/parsers/index.js +0 -40
  242. package/lib/parsers/index.mjs +0 -4
  243. package/lib/parsers/recherche_amendements.js +0 -403
  244. package/lib/parsers/recherche_amendements.mjs +0 -167
  245. package/lib/parsers/textes_lois.js +0 -307
  246. package/lib/parsers/textes_lois.mjs +0 -264
  247. package/lib/raw_types/acteurs_et_organes.js +0 -1215
  248. package/lib/raw_types/acteurs_et_organes.mjs +0 -1148
  249. package/lib/raw_types/agendas.js +0 -777
  250. package/lib/raw_types/agendas.mjs +0 -724
  251. package/lib/raw_types/amendements.js +0 -1052
  252. package/lib/raw_types/amendements.mjs +0 -993
  253. package/lib/raw_types/debats.js +0 -630
  254. package/lib/raw_types/debats.mjs +0 -573
  255. package/lib/raw_types/dossiers_legislatifs.js +0 -1529
  256. package/lib/raw_types/dossiers_legislatifs.mjs +0 -1471
  257. package/lib/raw_types/questions.js +0 -469
  258. package/lib/raw_types/questions.mjs +0 -416
  259. package/lib/raw_types/scrutins.js +0 -651
  260. package/lib/raw_types/scrutins.mjs +0 -598
  261. package/lib/schemas/acteur/Acteur.json +0 -56
  262. package/lib/schemas/acteur/AdresseElectronique.json +0 -52
  263. package/lib/schemas/acteur/AdressePostale.json +0 -75
  264. package/lib/schemas/acteur/Civ.json +0 -14
  265. package/lib/schemas/acteur/Collaborateur.json +0 -29
  266. package/lib/schemas/acteur/EtatCivil.json +0 -51
  267. package/lib/schemas/acteur/Ident.json +0 -40
  268. package/lib/schemas/acteur/Lieu.json +0 -66
  269. package/lib/schemas/acteur/Mandat.json +0 -192
  270. package/lib/schemas/acteur/Profession.json +0 -46
  271. package/lib/schemas/agenda/Agenda.json +0 -318
  272. package/lib/schemas/agenda/CycleDeVie.json +0 -45
  273. package/lib/schemas/agenda/PointOdj.json +0 -82
  274. package/lib/schemas/amendement/Amendement.json +0 -246
  275. package/lib/schemas/amendement/Diff.json +0 -25
  276. package/lib/schemas/amendement/DispositifAmdtCredit.json +0 -85
  277. package/lib/schemas/amendement/Identifiant.json +0 -62
  278. package/lib/schemas/amendement/PointeurFragmentTexte.json +0 -127
  279. package/lib/schemas/amendement/Representation.json +0 -67
  280. package/lib/schemas/amendement/Total.json +0 -26
  281. package/lib/schemas/converted_from_type/acteurs_et_organes.json +0 -666
  282. package/lib/schemas/converted_from_type/agendas.json +0 -1100
  283. package/lib/schemas/converted_from_type/amendements.json +0 -3191
  284. package/lib/schemas/converted_from_type/debats.json +0 -682
  285. package/lib/schemas/converted_from_type/deputes.json +0 -26
  286. package/lib/schemas/converted_from_type/dossiers_legislatifs.json +0 -2918
  287. package/lib/schemas/converted_from_type/legislatures.json +0 -16
  288. package/lib/schemas/converted_from_type/questions.json +0 -328
  289. package/lib/schemas/converted_from_type/scrutins.json +0 -393
  290. package/lib/schemas/debat/Contenu.json +0 -75
  291. package/lib/schemas/debat/Debat.json +0 -40
  292. package/lib/schemas/debat/Metadonnees.json +0 -75
  293. package/lib/schemas/debat/Orateur.json +0 -60
  294. package/lib/schemas/debat/Point.json +0 -169
  295. package/lib/schemas/debat/Sommaire.json +0 -71
  296. package/lib/schemas/debat/SommaireElement.json +0 -108
  297. package/lib/schemas/debat/Texte.json +0 -34
  298. package/lib/schemas/document/CodeLibelle.json +0 -25
  299. package/lib/schemas/document/Document.json +0 -385
  300. package/lib/schemas/document/Indexation.json +0 -38
  301. package/lib/schemas/dossier/ActeLegislatif.json +0 -211
  302. package/lib/schemas/dossier/ActeLegislatifBase.json +0 -62
  303. package/lib/schemas/dossier/Agenda.json +0 -23
  304. package/lib/schemas/dossier/ConseilConstitutionnel.json +0 -35
  305. package/lib/schemas/dossier/Decision.json +0 -25
  306. package/lib/schemas/dossier/Dossier.json +0 -124
  307. package/lib/schemas/dossier/EtudeImpact.json +0 -29
  308. package/lib/schemas/dossier/EtudePlf.json +0 -105
  309. package/lib/schemas/dossier/Europe.json +0 -42
  310. package/lib/schemas/dossier/FamCodeLibelle.json +0 -25
  311. package/lib/schemas/dossier/InfoJO.json +0 -23
  312. package/lib/schemas/dossier/Initiateur.json +0 -36
  313. package/lib/schemas/dossier/Motion.json +0 -27
  314. package/lib/schemas/dossier/Promulgation.json +0 -62
  315. package/lib/schemas/dossier/Rapporteur.json +0 -36
  316. package/lib/schemas/dossier/Texte.json +0 -47
  317. package/lib/schemas/organe/CodeTypeOrgane.json +0 -43
  318. package/lib/schemas/organe/Organe.json +0 -136
  319. package/lib/schemas/organe/ViMoDe.json +0 -28
  320. package/lib/schemas/question/Auteur.json +0 -58
  321. package/lib/schemas/question/Cloture.json +0 -28
  322. package/lib/schemas/question/InfoJO.json +0 -40
  323. package/lib/schemas/question/MinAttribElement.json +0 -30
  324. package/lib/schemas/question/Question.json +0 -172
  325. package/lib/schemas/question/Renouvellement.json +0 -17
  326. package/lib/schemas/question/Signalement.json +0 -21
  327. package/lib/schemas/question/Texte.json +0 -24
  328. package/lib/schemas/scrutin/DecompteVoix.json +0 -35
  329. package/lib/schemas/scrutin/Dysfonctionnement.json +0 -50
  330. package/lib/schemas/scrutin/MiseAuPoint.json +0 -53
  331. package/lib/schemas/scrutin/OrganeVotant.json +0 -88
  332. package/lib/schemas/scrutin/Scrutin.json +0 -187
  333. package/lib/schemas/scrutin/Votant.json +0 -37
  334. package/lib/scripts/bugs_helper.d.ts +0 -13
  335. package/lib/scripts/bugs_helper.js +0 -595
  336. package/lib/scripts/bugs_helper.mjs +0 -251
  337. package/lib/scripts/clean_reorganized_data.js +0 -613
  338. package/lib/scripts/clean_reorganized_data.mjs +0 -276
  339. package/lib/scripts/diff_amendements.js +0 -249
  340. package/lib/scripts/diff_amendements.mjs +0 -202
  341. package/lib/scripts/document_dossiers_legislatifs.js +0 -655
  342. package/lib/scripts/document_dossiers_legislatifs.mjs +0 -414
  343. package/lib/scripts/get_today_reunions.js +0 -37
  344. package/lib/scripts/get_today_reunions.mjs +0 -31
  345. package/lib/scripts/merge_scrutins.js +0 -97
  346. package/lib/scripts/merge_scrutins.mjs +0 -47
  347. package/lib/scripts/parse_textes_lois.d.ts +0 -1
  348. package/lib/scripts/parse_textes_lois.js +0 -171
  349. package/lib/scripts/parse_textes_lois.mjs +0 -140
  350. package/lib/scripts/process_open_dataset.js +0 -301
  351. package/lib/scripts/process_open_dataset.mjs +0 -134
  352. package/lib/scripts/raw_types_from_amendements.js +0 -135
  353. package/lib/scripts/raw_types_from_amendements.mjs +0 -134
  354. package/lib/scripts/reorganize_data.js +0 -805
  355. package/lib/scripts/reorganize_data.mjs +0 -517
  356. package/lib/scripts/retrieve_deputes_photos.js +0 -310
  357. package/lib/scripts/retrieve_deputes_photos.mjs +0 -158
  358. package/lib/scripts/retrieve_documents.js +0 -547
  359. package/lib/scripts/retrieve_documents.mjs +0 -242
  360. package/lib/scripts/retrieve_open_data.js +0 -107
  361. package/lib/scripts/retrieve_open_data.mjs +0 -26
  362. package/lib/scripts/retrieve_pending_amendments.js +0 -206
  363. package/lib/scripts/retrieve_pending_amendments.mjs +0 -57
  364. package/lib/scripts/retrieve_senateurs_photos.js +0 -234
  365. package/lib/scripts/retrieve_senateurs_photos.mjs +0 -116
  366. package/lib/scripts/retrieve_textes_lois.d.ts +0 -1
  367. package/lib/scripts/retrieve_textes_lois.js +0 -240
  368. package/lib/scripts/retrieve_textes_lois.mjs +0 -85
  369. package/lib/scripts/shared/cli_helpers.js +0 -89
  370. package/lib/scripts/shared/cli_helpers.mjs +0 -81
  371. package/lib/scripts/test_iter_load.js +0 -155
  372. package/lib/scripts/test_iter_load.mjs +0 -72
  373. package/lib/scripts/test_load.js +0 -26
  374. package/lib/scripts/test_load.mjs +0 -16
  375. package/lib/scripts/test_load_big_files.js +0 -26
  376. package/lib/scripts/test_load_big_files.mjs +0 -16
  377. package/lib/scripts/validate_json.js +0 -353
  378. package/lib/scripts/validate_json.mjs +0 -184
  379. package/lib/shared_types/codes_actes.js +0 -231
  380. package/lib/shared_types/codes_actes.mjs +0 -224
  381. package/lib/strings.js +0 -16
  382. package/lib/strings.mjs +0 -7
  383. package/lib/types/acteurs_et_organes.js +0 -965
  384. package/lib/types/acteurs_et_organes.mjs +0 -906
  385. package/lib/types/agendas.js +0 -628
  386. package/lib/types/agendas.mjs +0 -575
  387. package/lib/types/amendements.js +0 -899
  388. package/lib/types/amendements.mjs +0 -842
  389. package/lib/types/debats.js +0 -619
  390. package/lib/types/debats.mjs +0 -562
  391. package/lib/types/dossiers_legislatifs.js +0 -1188
  392. package/lib/types/dossiers_legislatifs.mjs +0 -1130
  393. package/lib/types/legislatures.js +0 -17
  394. package/lib/types/legislatures.mjs +0 -10
  395. package/lib/types/questions.js +0 -454
  396. package/lib/types/questions.mjs +0 -401
  397. package/lib/types/scrutins.js +0 -556
  398. package/lib/types/scrutins.mjs +0 -503
  399. package/lib/urls.js +0 -325
  400. package/lib/urls.mjs +0 -258
@@ -1,17 +0,0 @@
1
- "use strict";
2
-
3
- require("core-js/modules/es.object.define-property.js");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.Legislature = void 0;
8
- var Legislature = exports.Legislature = /*#__PURE__*/function (Legislature) {
9
- Legislature[Legislature["Quatorze"] = 14] = "Quatorze";
10
- Legislature[Legislature["Quinze"] = 15] = "Quinze";
11
- Legislature[Legislature["Seize"] = 16] = "Seize";
12
- Legislature[Legislature["DixSept"] = 17] = "DixSept";
13
- Legislature[Legislature["DixHuit"] = 18] = "DixHuit";
14
- Legislature[Legislature["All"] = 0] = "All";
15
- return Legislature;
16
- }({});
17
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMZWdpc2xhdHVyZSIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvbGVnaXNsYXR1cmVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIExlZ2lzbGF0dXJlIHtcbiAgUXVhdG9yemUgPSAxNCxcbiAgUXVpbnplID0gMTUsXG4gIFNlaXplID0gMTYsXG4gIERpeFNlcHQgPSAxNyxcbiAgRGl4SHVpdCA9IDE4LFxuICBBbGwgPSAwLFxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0lBQVlBLFdBQVcsR0FBQUMsT0FBQSxDQUFBRCxXQUFBLDBCQUFYQSxXQUFXO0VBQVhBLFdBQVcsQ0FBWEEsV0FBVztFQUFYQSxXQUFXLENBQVhBLFdBQVc7RUFBWEEsV0FBVyxDQUFYQSxXQUFXO0VBQVhBLFdBQVcsQ0FBWEEsV0FBVztFQUFYQSxXQUFXLENBQVhBLFdBQVc7RUFBWEEsV0FBVyxDQUFYQSxXQUFXO0VBQUEsT0FBWEEsV0FBVztBQUFBIiwiaWdub3JlTGlzdCI6W119
@@ -1,10 +0,0 @@
1
- export let Legislature = /*#__PURE__*/function (Legislature) {
2
- Legislature[Legislature["Quatorze"] = 14] = "Quatorze";
3
- Legislature[Legislature["Quinze"] = 15] = "Quinze";
4
- Legislature[Legislature["Seize"] = 16] = "Seize";
5
- Legislature[Legislature["DixSept"] = 17] = "DixSept";
6
- Legislature[Legislature["DixHuit"] = 18] = "DixHuit";
7
- Legislature[Legislature["All"] = 0] = "All";
8
- return Legislature;
9
- }({});
10
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMZWdpc2xhdHVyZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9sZWdpc2xhdHVyZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gTGVnaXNsYXR1cmUge1xuICBRdWF0b3J6ZSA9IDE0LFxuICBRdWluemUgPSAxNSxcbiAgU2VpemUgPSAxNixcbiAgRGl4U2VwdCA9IDE3LFxuICBEaXhIdWl0ID0gMTgsXG4gIEFsbCA9IDAsXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLFdBQVlBLFdBQVcsMEJBQVhBLFdBQVc7RUFBWEEsV0FBVyxDQUFYQSxXQUFXO0VBQVhBLFdBQVcsQ0FBWEEsV0FBVztFQUFYQSxXQUFXLENBQVhBLFdBQVc7RUFBWEEsV0FBVyxDQUFYQSxXQUFXO0VBQVhBLFdBQVcsQ0FBWEEsV0FBVztFQUFYQSxXQUFXLENBQVhBLFdBQVc7RUFBQSxPQUFYQSxXQUFXO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -1,454 +0,0 @@
1
- "use strict";
2
-
3
- require("core-js/modules/es.symbol.js");
4
- require("core-js/modules/es.symbol.description.js");
5
- require("core-js/modules/es.symbol.iterator.js");
6
- require("core-js/modules/es.array.iterator.js");
7
- require("core-js/modules/es.object.define-property.js");
8
- require("core-js/modules/es.string.iterator.js");
9
- require("core-js/modules/web.dom-collections.iterator.js");
10
- Object.defineProperty(exports, "__esModule", {
11
- value: true
12
- });
13
- exports.TypeJo = exports.Type = exports.QuestionXsiType = exports.Convert = void 0;
14
- require("core-js/modules/es.symbol.to-primitive.js");
15
- require("core-js/modules/es.array.concat.js");
16
- require("core-js/modules/es.array.for-each.js");
17
- require("core-js/modules/es.array.index-of.js");
18
- require("core-js/modules/es.array.is-array.js");
19
- require("core-js/modules/es.array.map.js");
20
- require("core-js/modules/es.date.to-json.js");
21
- require("core-js/modules/es.date.to-primitive.js");
22
- require("core-js/modules/es.date.to-string.js");
23
- require("core-js/modules/es.number.constructor.js");
24
- require("core-js/modules/es.object.get-own-property-names.js");
25
- require("core-js/modules/es.object.keys.js");
26
- require("core-js/modules/es.object.to-string.js");
27
- require("core-js/modules/web.dom-collections.for-each.js");
28
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
29
- function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
30
- function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
31
- function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
32
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : 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
- // To parse this data:
35
- //
36
- // import { Convert, Questions } from "./file";
37
- //
38
- // const questions = Convert.toQuestions(json);
39
- //
40
- // These functions will throw an error if the JSON doesn't
41
- // match the expected interface, even if the JSON is valid.
42
- var QuestionXsiType = exports.QuestionXsiType = /*#__PURE__*/function (QuestionXsiType) {
43
- QuestionXsiType["QuestionEcrite"] = "QuestionEcrite_Type";
44
- QuestionXsiType["QuestionGouvernement"] = "QuestionGouvernement_Type";
45
- QuestionXsiType["QuestionOrale"] = "QuestionOrale_Type";
46
- return QuestionXsiType;
47
- }({});
48
- var TypeJo = exports.TypeJo = /*#__PURE__*/function (TypeJo) {
49
- TypeJo["JoQuestion"] = "JO_QUESTION";
50
- TypeJo["JoLoiDecret"] = "JO_LOI_DECRET";
51
- TypeJo["JoDebate"] = "JO_DEBAT";
52
- return TypeJo;
53
- }({});
54
- var Type = exports.Type = /*#__PURE__*/function (Type) {
55
- Type["Qe"] = "QE";
56
- Type["Qg"] = "QG";
57
- Type["Qosd"] = "QOSD";
58
- return Type;
59
- }({}); // Converts JSON strings to/from your types
60
- // and asserts the results of JSON.parse at runtime
61
- var Convert = exports.Convert = /*#__PURE__*/function () {
62
- function Convert() {
63
- _classCallCheck(this, Convert);
64
- }
65
- return _createClass(Convert, null, [{
66
- key: "toQuestions",
67
- value: function toQuestions(json) {
68
- return cast(JSON.parse(json), r("Questions"));
69
- }
70
- }, {
71
- key: "questionsToJson",
72
- value: function questionsToJson(value) {
73
- return JSON.stringify(uncast(value, r("Questions")), null, 2);
74
- }
75
- }, {
76
- key: "toQuestion",
77
- value: function toQuestion(json) {
78
- return cast(JSON.parse(json), r("Question"));
79
- }
80
- }, {
81
- key: "questionToJson",
82
- value: function questionToJson(value) {
83
- return JSON.stringify(uncast(value, r("Question")), null, 2);
84
- }
85
- }]);
86
- }();
87
- function invalidValue(typ, val) {
88
- var key = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "";
89
- if (key) {
90
- throw Error("Invalid value for key \"".concat(key, "\". Expected type ").concat(JSON.stringify(typ), " but got ").concat(JSON.stringify(val)));
91
- }
92
- throw Error("Invalid value ".concat(JSON.stringify(val), " for type ").concat(JSON.stringify(typ)));
93
- }
94
- function jsonToJSProps(typ) {
95
- if (typ.jsonToJS === undefined) {
96
- var map = {};
97
- typ.props.forEach(function (p) {
98
- return map[p.json] = {
99
- key: p.js,
100
- typ: p.typ
101
- };
102
- });
103
- typ.jsonToJS = map;
104
- }
105
- return typ.jsonToJS;
106
- }
107
- function jsToJSONProps(typ) {
108
- if (typ.jsToJSON === undefined) {
109
- var map = {};
110
- typ.props.forEach(function (p) {
111
- return map[p.js] = {
112
- key: p.json,
113
- typ: p.typ
114
- };
115
- });
116
- typ.jsToJSON = map;
117
- }
118
- return typ.jsToJSON;
119
- }
120
- function transform(val, typ, getProps) {
121
- var key = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : "";
122
- function transformPrimitive(typ, val) {
123
- if (_typeof(typ) === _typeof(val)) return val;
124
- return invalidValue(typ, val, key);
125
- }
126
- function transformUnion(typs, val) {
127
- // val must validate against one typ in typs
128
- var l = typs.length;
129
- for (var i = 0; i < l; i++) {
130
- var _typ = typs[i];
131
- try {
132
- return transform(val, _typ, getProps);
133
- } catch (_) {}
134
- }
135
- return invalidValue(typs, val);
136
- }
137
- function transformEnum(cases, val) {
138
- if (cases.indexOf(val) !== -1) return val;
139
- return invalidValue(cases, val);
140
- }
141
- function transformArray(typ, val) {
142
- // val must be an array with no invalid elements
143
- if (!Array.isArray(val)) return invalidValue("array", val);
144
- return val.map(function (el) {
145
- return transform(el, typ, getProps);
146
- });
147
- }
148
- function transformDate(val) {
149
- if (val === null) {
150
- return null;
151
- }
152
- var d = new Date(val);
153
- if (isNaN(d.valueOf())) {
154
- return invalidValue("Date", val);
155
- }
156
- return d;
157
- }
158
- function transformObject(props, additional, val) {
159
- if (val === null || _typeof(val) !== "object" || Array.isArray(val)) {
160
- return invalidValue("object", val);
161
- }
162
- var result = {};
163
- Object.getOwnPropertyNames(props).forEach(function (key) {
164
- var prop = props[key];
165
- var v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
166
- result[prop.key] = transform(v, prop.typ, getProps, prop.key);
167
- });
168
- Object.getOwnPropertyNames(val).forEach(function (key) {
169
- if (!Object.prototype.hasOwnProperty.call(props, key)) {
170
- result[key] = transform(val[key], additional, getProps, key);
171
- }
172
- });
173
- return result;
174
- }
175
- if (typ === "any") return val;
176
- if (typ === null) {
177
- if (val === null) return val;
178
- return invalidValue(typ, val);
179
- }
180
- if (typ === false) return invalidValue(typ, val);
181
- while (_typeof(typ) === "object" && typ.ref !== undefined) {
182
- typ = typeMap[typ.ref];
183
- }
184
- if (Array.isArray(typ)) return transformEnum(typ, val);
185
- if (_typeof(typ) === "object") {
186
- return typ.hasOwnProperty("unionMembers") ? transformUnion(typ.unionMembers, val) : typ.hasOwnProperty("arrayItems") ? transformArray(typ.arrayItems, val) : typ.hasOwnProperty("props") ? transformObject(getProps(typ), typ.additional, val) : invalidValue(typ, val);
187
- }
188
- // Numbers can be parsed by Date but shouldn't be.
189
- if (typ === Date && typeof val !== "number") return transformDate(val);
190
- return transformPrimitive(typ, val);
191
- }
192
- function cast(val, typ) {
193
- return transform(val, typ, jsonToJSProps);
194
- }
195
- function uncast(val, typ) {
196
- return transform(val, typ, jsToJSONProps);
197
- }
198
- function a(typ) {
199
- return {
200
- arrayItems: typ
201
- };
202
- }
203
- function u() {
204
- for (var _len = arguments.length, typs = new Array(_len), _key = 0; _key < _len; _key++) {
205
- typs[_key] = arguments[_key];
206
- }
207
- return {
208
- unionMembers: typs
209
- };
210
- }
211
- function o(props, additional) {
212
- return {
213
- props: props,
214
- additional: additional
215
- };
216
- }
217
-
218
- // function m(additional: any) {
219
- // return { props: [], additional };
220
- // }
221
-
222
- function r(name) {
223
- return {
224
- ref: name
225
- };
226
- }
227
- var typeMap = {
228
- Questions: o([{
229
- json: "questions",
230
- js: "questions",
231
- typ: a(r("Question"))
232
- }], false),
233
- Question: o([{
234
- json: "schemaVersion",
235
- js: "schemaVersion",
236
- typ: u(undefined, "")
237
- }, {
238
- json: "@xsi:type",
239
- js: "@xsi:type",
240
- typ: r("QuestionXsiType")
241
- }, {
242
- json: "uid",
243
- js: "uid",
244
- typ: ""
245
- }, {
246
- json: "identifiant",
247
- js: "identifiant",
248
- typ: r("Identifiant")
249
- }, {
250
- json: "type",
251
- js: "type",
252
- typ: r("Type")
253
- }, {
254
- json: "indexationAN",
255
- js: "indexationAN",
256
- typ: r("IndexationAn")
257
- }, {
258
- json: "auteur",
259
- js: "auteur",
260
- typ: r("Auteur")
261
- }, {
262
- json: "minInt",
263
- js: "minInt",
264
- typ: r("Groupe")
265
- }, {
266
- json: "minAttribs",
267
- js: "minAttribs",
268
- typ: r("MinAttribs")
269
- }, {
270
- json: "textesQuestion",
271
- js: "textesQuestion",
272
- typ: u(r("TextesQuestion"), null, undefined)
273
- }, {
274
- json: "textesReponse",
275
- js: "textesReponse",
276
- typ: u(r("TextesReponse"), null, undefined)
277
- }, {
278
- json: "cloture",
279
- js: "cloture",
280
- typ: u(r("Cloture"), null, undefined)
281
- }, {
282
- json: "signalement",
283
- js: "signalement",
284
- typ: u(r("Signalement"), null, undefined)
285
- }, {
286
- json: "renouvellements",
287
- js: "renouvellements",
288
- typ: u(r("Renouvellements"), null, undefined)
289
- }], false),
290
- Auteur: o([{
291
- json: "identite",
292
- js: "identite",
293
- typ: r("Identite")
294
- }, {
295
- json: "groupe",
296
- js: "groupe",
297
- typ: r("Groupe")
298
- }], false),
299
- Groupe: o([{
300
- json: "organeRef",
301
- js: "organeRef",
302
- typ: ""
303
- }, {
304
- json: "abrege",
305
- js: "abrege",
306
- typ: ""
307
- }, {
308
- json: "developpe",
309
- js: "developpe",
310
- typ: ""
311
- }], false),
312
- Identite: o([{
313
- json: "acteurRef",
314
- js: "acteurRef",
315
- typ: ""
316
- }, {
317
- json: "mandatRef",
318
- js: "mandatRef",
319
- typ: ""
320
- }], false),
321
- Cloture: o([{
322
- json: "codeCloture",
323
- js: "codeCloture",
324
- typ: ""
325
- }, {
326
- json: "libelleCloture",
327
- js: "libelleCloture",
328
- typ: ""
329
- }, {
330
- json: "dateCloture",
331
- js: "dateCloture",
332
- typ: ""
333
- }, {
334
- json: "infoJO",
335
- js: "infoJO",
336
- typ: u(r("InfoJo"), null)
337
- }], false),
338
- Identifiant: o([{
339
- json: "numero",
340
- js: "numero",
341
- typ: ""
342
- }, {
343
- json: "regime",
344
- js: "regime",
345
- typ: ""
346
- }, {
347
- json: "legislature",
348
- js: "legislature",
349
- typ: ""
350
- }], false),
351
- IndexationAn: o([{
352
- json: "rubrique",
353
- js: "rubrique",
354
- typ: u("", null)
355
- }, {
356
- json: "teteAnalyse",
357
- js: "teteAnalyse",
358
- typ: null
359
- }, {
360
- json: "analyses",
361
- js: "analyses",
362
- typ: r("Analyse")
363
- }], false),
364
- Analyse: o([{
365
- json: "analyse",
366
- js: "analyse",
367
- typ: u("", null)
368
- }], false),
369
- MinAttribs: o([{
370
- json: "minAttrib",
371
- js: "minAttrib",
372
- typ: u(a(r("MinAttribElement")), r("MinAttribElement"))
373
- }], false),
374
- MinAttribElement: o([{
375
- json: "infoJO",
376
- js: "infoJO",
377
- typ: r("InfoJo")
378
- }, {
379
- json: "denomination",
380
- js: "denomination",
381
- typ: r("Groupe")
382
- }], false),
383
- InfoJo: o([{
384
- json: "typeJO",
385
- js: "typeJO",
386
- typ: u(r("TypeJo"), null)
387
- }, {
388
- json: "dateJO",
389
- js: "dateJO",
390
- typ: ""
391
- }, {
392
- json: "pageJO",
393
- js: "pageJO",
394
- typ: u("", null)
395
- }, {
396
- json: "numJO",
397
- js: "numJO",
398
- typ: u("", null)
399
- }, {
400
- json: "urlLegifrance",
401
- js: "urlLegifrance",
402
- typ: u("", null)
403
- }, {
404
- json: "referenceNOR",
405
- js: "referenceNOR",
406
- typ: u("", null)
407
- }], false),
408
- TextesQuestion: o([{
409
- json: "texteQuestion",
410
- js: "texteQuestion",
411
- typ: u(a(r("Texte")), r("Texte"))
412
- }], false),
413
- Texte: o([{
414
- json: "infoJO",
415
- js: "infoJO",
416
- typ: r("InfoJo")
417
- }, {
418
- json: "texte",
419
- js: "texte",
420
- typ: u("", null)
421
- }, {
422
- json: "erratum",
423
- js: "erratum",
424
- typ: u(undefined, "")
425
- }], false),
426
- TextesReponse: o([{
427
- json: "texteReponse",
428
- js: "texteReponse",
429
- typ: u(a(r("Texte")), r("Texte"))
430
- }], false),
431
- Signalement: o([{
432
- json: "infoJO",
433
- js: "infoJO",
434
- typ: r("InfoJo")
435
- }, {
436
- json: "dateDepotSignal",
437
- js: "dateDepotSignal",
438
- typ: ""
439
- }], false),
440
- Renouvellements: o([{
441
- json: "renouvellement",
442
- js: "renouvellement",
443
- typ: u(a(r("Renouvellement")), r("Renouvellement"))
444
- }], false),
445
- Renouvellement: o([{
446
- json: "infoJO",
447
- js: "infoJO",
448
- typ: r("InfoJo")
449
- }], false),
450
- QuestionXsiType: ["QuestionEcrite_Type", "QuestionGouvernement_Type", "QuestionOrale_Type"],
451
- TypeJo: ["JO_QUESTION", "JO_LOI_DECRET", "JO_DEBAT"],
452
- Type: ["QE", "QG", "QOSD"]
453
- };
454
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJRdWVzdGlvblhzaVR5cGUiLCJleHBvcnRzIiwiVHlwZUpvIiwiVHlwZSIsIkNvbnZlcnQiLCJfY2xhc3NDYWxsQ2hlY2siLCJfY3JlYXRlQ2xhc3MiLCJrZXkiLCJ2YWx1ZSIsInRvUXVlc3Rpb25zIiwianNvbiIsImNhc3QiLCJKU09OIiwicGFyc2UiLCJyIiwicXVlc3Rpb25zVG9Kc29uIiwic3RyaW5naWZ5IiwidW5jYXN0IiwidG9RdWVzdGlvbiIsInF1ZXN0aW9uVG9Kc29uIiwiaW52YWxpZFZhbHVlIiwidHlwIiwidmFsIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiRXJyb3IiLCJjb25jYXQiLCJqc29uVG9KU1Byb3BzIiwianNvblRvSlMiLCJtYXAiLCJwcm9wcyIsImZvckVhY2giLCJwIiwianMiLCJqc1RvSlNPTlByb3BzIiwianNUb0pTT04iLCJ0cmFuc2Zvcm0iLCJnZXRQcm9wcyIsInRyYW5zZm9ybVByaW1pdGl2ZSIsIl90eXBlb2YiLCJ0cmFuc2Zvcm1VbmlvbiIsInR5cHMiLCJsIiwiaSIsIl8iLCJ0cmFuc2Zvcm1FbnVtIiwiY2FzZXMiLCJpbmRleE9mIiwidHJhbnNmb3JtQXJyYXkiLCJBcnJheSIsImlzQXJyYXkiLCJlbCIsInRyYW5zZm9ybURhdGUiLCJkIiwiRGF0ZSIsImlzTmFOIiwidmFsdWVPZiIsInRyYW5zZm9ybU9iamVjdCIsImFkZGl0aW9uYWwiLCJyZXN1bHQiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwicHJvcCIsInYiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJyZWYiLCJ0eXBlTWFwIiwidW5pb25NZW1iZXJzIiwiYXJyYXlJdGVtcyIsImEiLCJ1IiwiX2xlbiIsIl9rZXkiLCJvIiwibmFtZSIsIlF1ZXN0aW9ucyIsIlF1ZXN0aW9uIiwiQXV0ZXVyIiwiR3JvdXBlIiwiSWRlbnRpdGUiLCJDbG90dXJlIiwiSWRlbnRpZmlhbnQiLCJJbmRleGF0aW9uQW4iLCJBbmFseXNlIiwiTWluQXR0cmlicyIsIk1pbkF0dHJpYkVsZW1lbnQiLCJJbmZvSm8iLCJUZXh0ZXNRdWVzdGlvbiIsIlRleHRlIiwiVGV4dGVzUmVwb25zZSIsIlNpZ25hbGVtZW50IiwiUmVub3V2ZWxsZW1lbnRzIiwiUmVub3V2ZWxsZW1lbnQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvcXVlc3Rpb25zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRvIHBhcnNlIHRoaXMgZGF0YTpcbi8vXG4vLyAgIGltcG9ydCB7IENvbnZlcnQsIFF1ZXN0aW9ucyB9IGZyb20gXCIuL2ZpbGVcIjtcbi8vXG4vLyAgIGNvbnN0IHF1ZXN0aW9ucyA9IENvbnZlcnQudG9RdWVzdGlvbnMoanNvbik7XG4vL1xuLy8gVGhlc2UgZnVuY3Rpb25zIHdpbGwgdGhyb3cgYW4gZXJyb3IgaWYgdGhlIEpTT04gZG9lc24ndFxuLy8gbWF0Y2ggdGhlIGV4cGVjdGVkIGludGVyZmFjZSwgZXZlbiBpZiB0aGUgSlNPTiBpcyB2YWxpZC5cblxuZXhwb3J0IGludGVyZmFjZSBRdWVzdGlvbnMge1xuICBxdWVzdGlvbnM6IFF1ZXN0aW9uW11cbn1cblxuZXhwb3J0IGludGVyZmFjZSBRdWVzdGlvbiB7XG4gIHNjaGVtYVZlcnNpb24/OiBzdHJpbmdcbiAgXCJAeHNpOnR5cGVcIjogUXVlc3Rpb25Yc2lUeXBlXG4gIHVpZDogc3RyaW5nXG4gIGlkZW50aWZpYW50OiBJZGVudGlmaWFudFxuICB0eXBlOiBUeXBlXG4gIGluZGV4YXRpb25BTjogSW5kZXhhdGlvbkFuXG4gIGF1dGV1cjogQXV0ZXVyXG4gIG1pbkludDogR3JvdXBlXG4gIG1pbkF0dHJpYnM6IE1pbkF0dHJpYnNcbiAgdGV4dGVzUXVlc3Rpb24/OiBUZXh0ZXNRdWVzdGlvbiB8IG51bGxcbiAgdGV4dGVzUmVwb25zZT86IFRleHRlc1JlcG9uc2UgfCBudWxsXG4gIGNsb3R1cmU/OiBDbG90dXJlIHwgbnVsbFxuICBzaWduYWxlbWVudD86IFNpZ25hbGVtZW50IHwgbnVsbFxuICByZW5vdXZlbGxlbWVudHM/OiBSZW5vdXZlbGxlbWVudHMgfCBudWxsXG59XG5cbmV4cG9ydCBlbnVtIFF1ZXN0aW9uWHNpVHlwZSB7XG4gIFF1ZXN0aW9uRWNyaXRlID0gXCJRdWVzdGlvbkVjcml0ZV9UeXBlXCIsXG4gIFF1ZXN0aW9uR291dmVybmVtZW50ID0gXCJRdWVzdGlvbkdvdXZlcm5lbWVudF9UeXBlXCIsXG4gIFF1ZXN0aW9uT3JhbGUgPSBcIlF1ZXN0aW9uT3JhbGVfVHlwZVwiLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEF1dGV1ciB7XG4gIGlkZW50aXRlOiBJZGVudGl0ZVxuICBncm91cGU6IEdyb3VwZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdyb3VwZSB7XG4gIG9yZ2FuZVJlZjogc3RyaW5nXG4gIGFicmVnZTogc3RyaW5nXG4gIGRldmVsb3BwZTogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWRlbnRpdGUge1xuICBhY3RldXJSZWY6IHN0cmluZ1xuICBtYW5kYXRSZWY6IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENsb3R1cmUge1xuICBjb2RlQ2xvdHVyZTogc3RyaW5nXG4gIGxpYmVsbGVDbG90dXJlOiBzdHJpbmdcbiAgZGF0ZUNsb3R1cmU6IHN0cmluZ1xuICBpbmZvSk86IEluZm9KbyB8IG51bGxcbn1cblxuZXhwb3J0IGVudW0gVHlwZUpvIHtcbiAgSm9RdWVzdGlvbiA9IFwiSk9fUVVFU1RJT05cIixcbiAgSm9Mb2lEZWNyZXQgPSBcIkpPX0xPSV9ERUNSRVRcIixcbiAgSm9EZWJhdGUgPSBcIkpPX0RFQkFUXCIsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWRlbnRpZmlhbnQge1xuICBudW1lcm86IHN0cmluZ1xuICByZWdpbWU6IHN0cmluZ1xuICBsZWdpc2xhdHVyZTogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW5kZXhhdGlvbkFuIHtcbiAgcnVicmlxdWU6IHN0cmluZyB8IG51bGxcbiAgdGV0ZUFuYWx5c2U6IG51bGxcbiAgYW5hbHlzZXM6IEFuYWx5c2Vcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBbmFseXNlIHtcbiAgYW5hbHlzZTogc3RyaW5nIHwgbnVsbFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1pbkF0dHJpYnMge1xuICBtaW5BdHRyaWI6IE1pbkF0dHJpYkVsZW1lbnRbXSB8IE1pbkF0dHJpYkVsZW1lbnRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNaW5BdHRyaWJFbGVtZW50IHtcbiAgaW5mb0pPOiBJbmZvSm9cbiAgZGVub21pbmF0aW9uOiBHcm91cGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUZXh0ZXNRdWVzdGlvbiB7XG4gIHRleHRlUXVlc3Rpb246IFRleHRlW10gfCBUZXh0ZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRleHRlIHtcbiAgaW5mb0pPOiBJbmZvSm9cbiAgdGV4dGU6IHN0cmluZyB8IG51bGxcbiAgZXJyYXR1bT86IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEluZm9KbyB7XG4gIHR5cGVKTzogVHlwZUpvIHwgbnVsbFxuICBkYXRlSk86IHN0cmluZ1xuICBwYWdlSk86IHN0cmluZyB8IG51bGxcbiAgbnVtSk86IHN0cmluZyB8IG51bGxcbiAgdXJsTGVnaWZyYW5jZTogc3RyaW5nIHwgbnVsbFxuICByZWZlcmVuY2VOT1I6IHN0cmluZyB8IG51bGxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUZXh0ZXNSZXBvbnNlIHtcbiAgdGV4dGVSZXBvbnNlOiBUZXh0ZVtdIHwgVGV4dGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaWduYWxlbWVudCB7XG4gIGRhdGVEZXBvdFNpZ25hbDogc3RyaW5nXG4gIGluZm9KTzogSW5mb0pvXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVub3V2ZWxsZW1lbnRzIHtcbiAgcmVub3V2ZWxsZW1lbnQ6IFJlbm91dmVsbGVtZW50W10gfCBSZW5vdXZlbGxlbWVudFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlbm91dmVsbGVtZW50IHtcbiAgaW5mb0pPOiBJbmZvSm9cbn1cblxuZXhwb3J0IGVudW0gVHlwZSB7XG4gIFFlID0gXCJRRVwiLFxuICBRZyA9IFwiUUdcIixcbiAgUW9zZCA9IFwiUU9TRFwiLFxufVxuXG4vLyBDb252ZXJ0cyBKU09OIHN0cmluZ3MgdG8vZnJvbSB5b3VyIHR5cGVzXG4vLyBhbmQgYXNzZXJ0cyB0aGUgcmVzdWx0cyBvZiBKU09OLnBhcnNlIGF0IHJ1bnRpbWVcbmV4cG9ydCBjbGFzcyBDb252ZXJ0IHtcbiAgcHVibGljIHN0YXRpYyB0b1F1ZXN0aW9ucyhqc29uOiBzdHJpbmcpOiBRdWVzdGlvbnMge1xuICAgIHJldHVybiBjYXN0KEpTT04ucGFyc2UoanNvbiksIHIoXCJRdWVzdGlvbnNcIikpXG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHF1ZXN0aW9uc1RvSnNvbih2YWx1ZTogUXVlc3Rpb25zKTogc3RyaW5nIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodW5jYXN0KHZhbHVlLCByKFwiUXVlc3Rpb25zXCIpKSwgbnVsbCwgMilcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgdG9RdWVzdGlvbihqc29uOiBzdHJpbmcpOiBRdWVzdGlvbiB7XG4gICAgcmV0dXJuIGNhc3QoSlNPTi5wYXJzZShqc29uKSwgcihcIlF1ZXN0aW9uXCIpKVxuICB9XG5cbiAgcHVibGljIHN0YXRpYyBxdWVzdGlvblRvSnNvbih2YWx1ZTogUXVlc3Rpb24pOiBzdHJpbmcge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh1bmNhc3QodmFsdWUsIHIoXCJRdWVzdGlvblwiKSksIG51bGwsIDIpXG4gIH1cbn1cblxuZnVuY3Rpb24gaW52YWxpZFZhbHVlKHR5cDogYW55LCB2YWw6IGFueSwga2V5OiBhbnkgPSBcIlwiKTogbmV2ZXIge1xuICBpZiAoa2V5KSB7XG4gICAgdGhyb3cgRXJyb3IoXG4gICAgICBgSW52YWxpZCB2YWx1ZSBmb3Iga2V5IFwiJHtrZXl9XCIuIEV4cGVjdGVkIHR5cGUgJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgdHlwLFxuICAgICAgKX0gYnV0IGdvdCAke0pTT04uc3RyaW5naWZ5KHZhbCl9YCxcbiAgICApXG4gIH1cbiAgdGhyb3cgRXJyb3IoXG4gICAgYEludmFsaWQgdmFsdWUgJHtKU09OLnN0cmluZ2lmeSh2YWwpfSBmb3IgdHlwZSAke0pTT04uc3RyaW5naWZ5KHR5cCl9YCxcbiAgKVxufVxuXG5mdW5jdGlvbiBqc29uVG9KU1Byb3BzKHR5cDogYW55KTogYW55IHtcbiAgaWYgKHR5cC5qc29uVG9KUyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgY29uc3QgbWFwOiBhbnkgPSB7fVxuICAgIHR5cC5wcm9wcy5mb3JFYWNoKChwOiBhbnkpID0+IChtYXBbcC5qc29uXSA9IHsga2V5OiBwLmpzLCB0eXA6IHAudHlwIH0pKVxuICAgIHR5cC5qc29uVG9KUyA9IG1hcFxuICB9XG4gIHJldHVybiB0eXAuanNvblRvSlNcbn1cblxuZnVuY3Rpb24ganNUb0pTT05Qcm9wcyh0eXA6IGFueSk6IGFueSB7XG4gIGlmICh0eXAuanNUb0pTT04gPT09IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IG1hcDogYW55ID0ge31cbiAgICB0eXAucHJvcHMuZm9yRWFjaCgocDogYW55KSA9PiAobWFwW3AuanNdID0geyBrZXk6IHAuanNvbiwgdHlwOiBwLnR5cCB9KSlcbiAgICB0eXAuanNUb0pTT04gPSBtYXBcbiAgfVxuICByZXR1cm4gdHlwLmpzVG9KU09OXG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybSh2YWw6IGFueSwgdHlwOiBhbnksIGdldFByb3BzOiBhbnksIGtleTogYW55ID0gXCJcIik6IGFueSB7XG4gIGZ1bmN0aW9uIHRyYW5zZm9ybVByaW1pdGl2ZSh0eXA6IHN0cmluZywgdmFsOiBhbnkpOiBhbnkge1xuICAgIGlmICh0eXBlb2YgdHlwID09PSB0eXBlb2YgdmFsKSByZXR1cm4gdmFsXG4gICAgcmV0dXJuIGludmFsaWRWYWx1ZSh0eXAsIHZhbCwga2V5KVxuICB9XG5cbiAgZnVuY3Rpb24gdHJhbnNmb3JtVW5pb24odHlwczogYW55W10sIHZhbDogYW55KTogYW55IHtcbiAgICAvLyB2YWwgbXVzdCB2YWxpZGF0ZSBhZ2FpbnN0IG9uZSB0eXAgaW4gdHlwc1xuICAgIGNvbnN0IGwgPSB0eXBzLmxlbmd0aFxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbDsgaSsrKSB7XG4gICAgICBjb25zdCB0eXAgPSB0eXBzW2ldXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gdHJhbnNmb3JtKHZhbCwgdHlwLCBnZXRQcm9wcylcbiAgICAgIH0gY2F0Y2ggKF8pIHt9XG4gICAgfVxuICAgIHJldHVybiBpbnZhbGlkVmFsdWUodHlwcywgdmFsKVxuICB9XG5cbiAgZnVuY3Rpb24gdHJhbnNmb3JtRW51bShjYXNlczogc3RyaW5nW10sIHZhbDogYW55KTogYW55IHtcbiAgICBpZiAoY2FzZXMuaW5kZXhPZih2YWwpICE9PSAtMSkgcmV0dXJuIHZhbFxuICAgIHJldHVybiBpbnZhbGlkVmFsdWUoY2FzZXMsIHZhbClcbiAgfVxuXG4gIGZ1bmN0aW9uIHRyYW5zZm9ybUFycmF5KHR5cDogYW55LCB2YWw6IGFueSk6IGFueSB7XG4gICAgLy8gdmFsIG11c3QgYmUgYW4gYXJyYXkgd2l0aCBubyBpbnZhbGlkIGVsZW1lbnRzXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbCkpIHJldHVybiBpbnZhbGlkVmFsdWUoXCJhcnJheVwiLCB2YWwpXG4gICAgcmV0dXJuIHZhbC5tYXAoKGVsKSA9PiB0cmFuc2Zvcm0oZWwsIHR5cCwgZ2V0UHJvcHMpKVxuICB9XG5cbiAgZnVuY3Rpb24gdHJhbnNmb3JtRGF0ZSh2YWw6IGFueSk6IGFueSB7XG4gICAgaWYgKHZhbCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gICAgY29uc3QgZCA9IG5ldyBEYXRlKHZhbClcbiAgICBpZiAoaXNOYU4oZC52YWx1ZU9mKCkpKSB7XG4gICAgICByZXR1cm4gaW52YWxpZFZhbHVlKFwiRGF0ZVwiLCB2YWwpXG4gICAgfVxuICAgIHJldHVybiBkXG4gIH1cblxuICBmdW5jdGlvbiB0cmFuc2Zvcm1PYmplY3QoXG4gICAgcHJvcHM6IHsgW2s6IHN0cmluZ106IGFueSB9LFxuICAgIGFkZGl0aW9uYWw6IGFueSxcbiAgICB2YWw6IGFueSxcbiAgKTogYW55IHtcbiAgICBpZiAodmFsID09PSBudWxsIHx8IHR5cGVvZiB2YWwgIT09IFwib2JqZWN0XCIgfHwgQXJyYXkuaXNBcnJheSh2YWwpKSB7XG4gICAgICByZXR1cm4gaW52YWxpZFZhbHVlKFwib2JqZWN0XCIsIHZhbClcbiAgICB9XG4gICAgY29uc3QgcmVzdWx0OiBhbnkgPSB7fVxuICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHByb3BzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGNvbnN0IHByb3AgPSBwcm9wc1trZXldXG4gICAgICBjb25zdCB2ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbCwga2V5KVxuICAgICAgICA/IHZhbFtrZXldXG4gICAgICAgIDogdW5kZWZpbmVkXG4gICAgICByZXN1bHRbcHJvcC5rZXldID0gdHJhbnNmb3JtKHYsIHByb3AudHlwLCBnZXRQcm9wcywgcHJvcC5rZXkpXG4gICAgfSlcbiAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh2YWwpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocHJvcHMsIGtleSkpIHtcbiAgICAgICAgcmVzdWx0W2tleV0gPSB0cmFuc2Zvcm0odmFsW2tleV0sIGFkZGl0aW9uYWwsIGdldFByb3BzLCBrZXkpXG4gICAgICB9XG4gICAgfSlcbiAgICByZXR1cm4gcmVzdWx0XG4gIH1cblxuICBpZiAodHlwID09PSBcImFueVwiKSByZXR1cm4gdmFsXG4gIGlmICh0eXAgPT09IG51bGwpIHtcbiAgICBpZiAodmFsID09PSBudWxsKSByZXR1cm4gdmFsXG4gICAgcmV0dXJuIGludmFsaWRWYWx1ZSh0eXAsIHZhbClcbiAgfVxuICBpZiAodHlwID09PSBmYWxzZSkgcmV0dXJuIGludmFsaWRWYWx1ZSh0eXAsIHZhbClcbiAgd2hpbGUgKHR5cGVvZiB0eXAgPT09IFwib2JqZWN0XCIgJiYgdHlwLnJlZiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdHlwID0gdHlwZU1hcFt0eXAucmVmXVxuICB9XG4gIGlmIChBcnJheS5pc0FycmF5KHR5cCkpIHJldHVybiB0cmFuc2Zvcm1FbnVtKHR5cCwgdmFsKVxuICBpZiAodHlwZW9mIHR5cCA9PT0gXCJvYmplY3RcIikge1xuICAgIHJldHVybiB0eXAuaGFzT3duUHJvcGVydHkoXCJ1bmlvbk1lbWJlcnNcIilcbiAgICAgID8gdHJhbnNmb3JtVW5pb24odHlwLnVuaW9uTWVtYmVycywgdmFsKVxuICAgICAgOiB0eXAuaGFzT3duUHJvcGVydHkoXCJhcnJheUl0ZW1zXCIpXG4gICAgICAgID8gdHJhbnNmb3JtQXJyYXkodHlwLmFycmF5SXRlbXMsIHZhbClcbiAgICAgICAgOiB0eXAuaGFzT3duUHJvcGVydHkoXCJwcm9wc1wiKVxuICAgICAgICAgID8gdHJhbnNmb3JtT2JqZWN0KGdldFByb3BzKHR5cCksIHR5cC5hZGRpdGlvbmFsLCB2YWwpXG4gICAgICAgICAgOiBpbnZhbGlkVmFsdWUodHlwLCB2YWwpXG4gIH1cbiAgLy8gTnVtYmVycyBjYW4gYmUgcGFyc2VkIGJ5IERhdGUgYnV0IHNob3VsZG4ndCBiZS5cbiAgaWYgKHR5cCA9PT0gRGF0ZSAmJiB0eXBlb2YgdmFsICE9PSBcIm51bWJlclwiKSByZXR1cm4gdHJhbnNmb3JtRGF0ZSh2YWwpXG4gIHJldHVybiB0cmFuc2Zvcm1QcmltaXRpdmUodHlwLCB2YWwpXG59XG5cbmZ1bmN0aW9uIGNhc3Q8VD4odmFsOiBhbnksIHR5cDogYW55KTogVCB7XG4gIHJldHVybiB0cmFuc2Zvcm0odmFsLCB0eXAsIGpzb25Ub0pTUHJvcHMpXG59XG5cbmZ1bmN0aW9uIHVuY2FzdDxUPih2YWw6IFQsIHR5cDogYW55KTogYW55IHtcbiAgcmV0dXJuIHRyYW5zZm9ybSh2YWwsIHR5cCwganNUb0pTT05Qcm9wcylcbn1cblxuZnVuY3Rpb24gYSh0eXA6IGFueSkge1xuICByZXR1cm4geyBhcnJheUl0ZW1zOiB0eXAgfVxufVxuXG5mdW5jdGlvbiB1KC4uLnR5cHM6IGFueVtdKSB7XG4gIHJldHVybiB7IHVuaW9uTWVtYmVyczogdHlwcyB9XG59XG5cbmZ1bmN0aW9uIG8ocHJvcHM6IGFueVtdLCBhZGRpdGlvbmFsOiBhbnkpIHtcbiAgcmV0dXJuIHsgcHJvcHMsIGFkZGl0aW9uYWwgfVxufVxuXG4vLyBmdW5jdGlvbiBtKGFkZGl0aW9uYWw6IGFueSkge1xuLy8gICAgIHJldHVybiB7IHByb3BzOiBbXSwgYWRkaXRpb25hbCB9O1xuLy8gfVxuXG5mdW5jdGlvbiByKG5hbWU6IHN0cmluZykge1xuICByZXR1cm4geyByZWY6IG5hbWUgfVxufVxuXG5jb25zdCB0eXBlTWFwOiBhbnkgPSB7XG4gIFF1ZXN0aW9uczogbyhcbiAgICBbeyBqc29uOiBcInF1ZXN0aW9uc1wiLCBqczogXCJxdWVzdGlvbnNcIiwgdHlwOiBhKHIoXCJRdWVzdGlvblwiKSkgfV0sXG4gICAgZmFsc2UsXG4gICksXG4gIFF1ZXN0aW9uOiBvKFxuICAgIFtcbiAgICAgIHsganNvbjogXCJzY2hlbWFWZXJzaW9uXCIsIGpzOiBcInNjaGVtYVZlcnNpb25cIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgIHsganNvbjogXCJAeHNpOnR5cGVcIiwganM6IFwiQHhzaTp0eXBlXCIsIHR5cDogcihcIlF1ZXN0aW9uWHNpVHlwZVwiKSB9LFxuICAgICAgeyBqc29uOiBcInVpZFwiLCBqczogXCJ1aWRcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwiaWRlbnRpZmlhbnRcIiwganM6IFwiaWRlbnRpZmlhbnRcIiwgdHlwOiByKFwiSWRlbnRpZmlhbnRcIikgfSxcbiAgICAgIHsganNvbjogXCJ0eXBlXCIsIGpzOiBcInR5cGVcIiwgdHlwOiByKFwiVHlwZVwiKSB9LFxuICAgICAgeyBqc29uOiBcImluZGV4YXRpb25BTlwiLCBqczogXCJpbmRleGF0aW9uQU5cIiwgdHlwOiByKFwiSW5kZXhhdGlvbkFuXCIpIH0sXG4gICAgICB7IGpzb246IFwiYXV0ZXVyXCIsIGpzOiBcImF1dGV1clwiLCB0eXA6IHIoXCJBdXRldXJcIikgfSxcbiAgICAgIHsganNvbjogXCJtaW5JbnRcIiwganM6IFwibWluSW50XCIsIHR5cDogcihcIkdyb3VwZVwiKSB9LFxuICAgICAgeyBqc29uOiBcIm1pbkF0dHJpYnNcIiwganM6IFwibWluQXR0cmlic1wiLCB0eXA6IHIoXCJNaW5BdHRyaWJzXCIpIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwidGV4dGVzUXVlc3Rpb25cIixcbiAgICAgICAganM6IFwidGV4dGVzUXVlc3Rpb25cIixcbiAgICAgICAgdHlwOiB1KHIoXCJUZXh0ZXNRdWVzdGlvblwiKSwgbnVsbCwgdW5kZWZpbmVkKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwidGV4dGVzUmVwb25zZVwiLFxuICAgICAgICBqczogXCJ0ZXh0ZXNSZXBvbnNlXCIsXG4gICAgICAgIHR5cDogdShyKFwiVGV4dGVzUmVwb25zZVwiKSwgbnVsbCwgdW5kZWZpbmVkKSxcbiAgICAgIH0sXG4gICAgICB7IGpzb246IFwiY2xvdHVyZVwiLCBqczogXCJjbG90dXJlXCIsIHR5cDogdShyKFwiQ2xvdHVyZVwiKSwgbnVsbCwgdW5kZWZpbmVkKSB9LFxuICAgICAge1xuICAgICAgICBqc29uOiBcInNpZ25hbGVtZW50XCIsXG4gICAgICAgIGpzOiBcInNpZ25hbGVtZW50XCIsXG4gICAgICAgIHR5cDogdShyKFwiU2lnbmFsZW1lbnRcIiksIG51bGwsIHVuZGVmaW5lZCksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBqc29uOiBcInJlbm91dmVsbGVtZW50c1wiLFxuICAgICAgICBqczogXCJyZW5vdXZlbGxlbWVudHNcIixcbiAgICAgICAgdHlwOiB1KHIoXCJSZW5vdXZlbGxlbWVudHNcIiksIG51bGwsIHVuZGVmaW5lZCksXG4gICAgICB9LFxuICAgIF0sXG4gICAgZmFsc2UsXG4gICksXG4gIEF1dGV1cjogbyhcbiAgICBbXG4gICAgICB7IGpzb246IFwiaWRlbnRpdGVcIiwganM6IFwiaWRlbnRpdGVcIiwgdHlwOiByKFwiSWRlbnRpdGVcIikgfSxcbiAgICAgIHsganNvbjogXCJncm91cGVcIiwganM6IFwiZ3JvdXBlXCIsIHR5cDogcihcIkdyb3VwZVwiKSB9LFxuICAgIF0sXG4gICAgZmFsc2UsXG4gICksXG4gIEdyb3VwZTogbyhcbiAgICBbXG4gICAgICB7IGpzb246IFwib3JnYW5lUmVmXCIsIGpzOiBcIm9yZ2FuZVJlZlwiLCB0eXA6IFwiXCIgfSxcbiAgICAgIHsganNvbjogXCJhYnJlZ2VcIiwganM6IFwiYWJyZWdlXCIsIHR5cDogXCJcIiB9LFxuICAgICAgeyBqc29uOiBcImRldmVsb3BwZVwiLCBqczogXCJkZXZlbG9wcGVcIiwgdHlwOiBcIlwiIH0sXG4gICAgXSxcbiAgICBmYWxzZSxcbiAgKSxcbiAgSWRlbnRpdGU6IG8oXG4gICAgW1xuICAgICAgeyBqc29uOiBcImFjdGV1clJlZlwiLCBqczogXCJhY3RldXJSZWZcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwibWFuZGF0UmVmXCIsIGpzOiBcIm1hbmRhdFJlZlwiLCB0eXA6IFwiXCIgfSxcbiAgICBdLFxuICAgIGZhbHNlLFxuICApLFxuICBDbG90dXJlOiBvKFxuICAgIFtcbiAgICAgIHsganNvbjogXCJjb2RlQ2xvdHVyZVwiLCBqczogXCJjb2RlQ2xvdHVyZVwiLCB0eXA6IFwiXCIgfSxcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJsaWJlbGxlQ2xvdHVyZVwiLFxuICAgICAgICBqczogXCJsaWJlbGxlQ2xvdHVyZVwiLFxuICAgICAgICB0eXA6IFwiXCIsXG4gICAgICB9LFxuICAgICAgeyBqc29uOiBcImRhdGVDbG90dXJlXCIsIGpzOiBcImRhdGVDbG90dXJlXCIsIHR5cDogXCJcIiB9LFxuICAgICAgeyBqc29uOiBcImluZm9KT1wiLCBqczogXCJpbmZvSk9cIiwgdHlwOiB1KHIoXCJJbmZvSm9cIiksIG51bGwpIH0sXG4gICAgXSxcbiAgICBmYWxzZSxcbiAgKSxcbiAgSWRlbnRpZmlhbnQ6IG8oXG4gICAgW1xuICAgICAgeyBqc29uOiBcIm51bWVyb1wiLCBqczogXCJudW1lcm9cIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwicmVnaW1lXCIsIGpzOiBcInJlZ2ltZVwiLCB0eXA6IFwiXCIgfSxcbiAgICAgIHsganNvbjogXCJsZWdpc2xhdHVyZVwiLCBqczogXCJsZWdpc2xhdHVyZVwiLCB0eXA6IFwiXCIgfSxcbiAgICBdLFxuICAgIGZhbHNlLFxuICApLFxuICBJbmRleGF0aW9uQW46IG8oXG4gICAgW1xuICAgICAgeyBqc29uOiBcInJ1YnJpcXVlXCIsIGpzOiBcInJ1YnJpcXVlXCIsIHR5cDogdShcIlwiLCBudWxsKSB9LFxuICAgICAgeyBqc29uOiBcInRldGVBbmFseXNlXCIsIGpzOiBcInRldGVBbmFseXNlXCIsIHR5cDogbnVsbCB9LFxuICAgICAgeyBqc29uOiBcImFuYWx5c2VzXCIsIGpzOiBcImFuYWx5c2VzXCIsIHR5cDogcihcIkFuYWx5c2VcIikgfSxcbiAgICBdLFxuICAgIGZhbHNlLFxuICApLFxuICBBbmFseXNlOiBvKFt7IGpzb246IFwiYW5hbHlzZVwiLCBqczogXCJhbmFseXNlXCIsIHR5cDogdShcIlwiLCBudWxsKSB9XSwgZmFsc2UpLFxuICBNaW5BdHRyaWJzOiBvKFxuICAgIFtcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJtaW5BdHRyaWJcIixcbiAgICAgICAganM6IFwibWluQXR0cmliXCIsXG4gICAgICAgIHR5cDogdShhKHIoXCJNaW5BdHRyaWJFbGVtZW50XCIpKSwgcihcIk1pbkF0dHJpYkVsZW1lbnRcIikpLFxuICAgICAgfSxcbiAgICBdLFxuICAgIGZhbHNlLFxuICApLFxuICBNaW5BdHRyaWJFbGVtZW50OiBvKFxuICAgIFtcbiAgICAgIHsganNvbjogXCJpbmZvSk9cIiwganM6IFwiaW5mb0pPXCIsIHR5cDogcihcIkluZm9Kb1wiKSB9LFxuICAgICAgeyBqc29uOiBcImRlbm9taW5hdGlvblwiLCBqczogXCJkZW5vbWluYXRpb25cIiwgdHlwOiByKFwiR3JvdXBlXCIpIH0sXG4gICAgXSxcbiAgICBmYWxzZSxcbiAgKSxcbiAgSW5mb0pvOiBvKFxuICAgIFtcbiAgICAgIHsganNvbjogXCJ0eXBlSk9cIiwganM6IFwidHlwZUpPXCIsIHR5cDogdShyKFwiVHlwZUpvXCIpLCBudWxsKSB9LFxuICAgICAgeyBqc29uOiBcImRhdGVKT1wiLCBqczogXCJkYXRlSk9cIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwicGFnZUpPXCIsIGpzOiBcInBhZ2VKT1wiLCB0eXA6IHUoXCJcIiwgbnVsbCkgfSxcbiAgICAgIHsganNvbjogXCJudW1KT1wiLCBqczogXCJudW1KT1wiLCB0eXA6IHUoXCJcIiwgbnVsbCkgfSxcbiAgICAgIHsganNvbjogXCJ1cmxMZWdpZnJhbmNlXCIsIGpzOiBcInVybExlZ2lmcmFuY2VcIiwgdHlwOiB1KFwiXCIsIG51bGwpIH0sXG4gICAgICB7IGpzb246IFwicmVmZXJlbmNlTk9SXCIsIGpzOiBcInJlZmVyZW5jZU5PUlwiLCB0eXA6IHUoXCJcIiwgbnVsbCkgfSxcbiAgICBdLFxuICAgIGZhbHNlLFxuICApLFxuICBUZXh0ZXNRdWVzdGlvbjogbyhcbiAgICBbXG4gICAgICB7XG4gICAgICAgIGpzb246IFwidGV4dGVRdWVzdGlvblwiLFxuICAgICAgICBqczogXCJ0ZXh0ZVF1ZXN0aW9uXCIsXG4gICAgICAgIHR5cDogdShhKHIoXCJUZXh0ZVwiKSksIHIoXCJUZXh0ZVwiKSksXG4gICAgICB9LFxuICAgIF0sXG4gICAgZmFsc2UsXG4gICksXG4gIFRleHRlOiBvKFxuICAgIFtcbiAgICAgIHsganNvbjogXCJpbmZvSk9cIiwganM6IFwiaW5mb0pPXCIsIHR5cDogcihcIkluZm9Kb1wiKSB9LFxuICAgICAgeyBqc29uOiBcInRleHRlXCIsIGpzOiBcInRleHRlXCIsIHR5cDogdShcIlwiLCBudWxsKSB9LFxuICAgICAgeyBqc29uOiBcImVycmF0dW1cIiwganM6IFwiZXJyYXR1bVwiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgIF0sXG4gICAgZmFsc2UsXG4gICksXG4gIFRleHRlc1JlcG9uc2U6IG8oXG4gICAgW1xuICAgICAge1xuICAgICAgICBqc29uOiBcInRleHRlUmVwb25zZVwiLFxuICAgICAgICBqczogXCJ0ZXh0ZVJlcG9uc2VcIixcbiAgICAgICAgdHlwOiB1KGEocihcIlRleHRlXCIpKSwgcihcIlRleHRlXCIpKSxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBmYWxzZSxcbiAgKSxcbiAgU2lnbmFsZW1lbnQ6IG8oXG4gICAgW1xuICAgICAgeyBqc29uOiBcImluZm9KT1wiLCBqczogXCJpbmZvSk9cIiwgdHlwOiByKFwiSW5mb0pvXCIpIH0sXG4gICAgICB7IGpzb246IFwiZGF0ZURlcG90U2lnbmFsXCIsIGpzOiBcImRhdGVEZXBvdFNpZ25hbFwiLCB0eXA6IFwiXCIgfSxcbiAgICBdLFxuICAgIGZhbHNlLFxuICApLFxuICBSZW5vdXZlbGxlbWVudHM6IG8oXG4gICAgW1xuICAgICAge1xuICAgICAgICBqc29uOiBcInJlbm91dmVsbGVtZW50XCIsXG4gICAgICAgIGpzOiBcInJlbm91dmVsbGVtZW50XCIsXG4gICAgICAgIHR5cDogdShhKHIoXCJSZW5vdXZlbGxlbWVudFwiKSksIHIoXCJSZW5vdXZlbGxlbWVudFwiKSksXG4gICAgICB9LFxuICAgIF0sXG4gICAgZmFsc2UsXG4gICksXG4gIFJlbm91dmVsbGVtZW50OiBvKFxuICAgIFt7IGpzb246IFwiaW5mb0pPXCIsIGpzOiBcImluZm9KT1wiLCB0eXA6IHIoXCJJbmZvSm9cIikgfV0sXG4gICAgZmFsc2UsXG4gICksXG4gIFF1ZXN0aW9uWHNpVHlwZTogW1xuICAgIFwiUXVlc3Rpb25FY3JpdGVfVHlwZVwiLFxuICAgIFwiUXVlc3Rpb25Hb3V2ZXJuZW1lbnRfVHlwZVwiLFxuICAgIFwiUXVlc3Rpb25PcmFsZV9UeXBlXCIsXG4gIF0sXG4gIFR5cGVKbzogW1wiSk9fUVVFU1RJT05cIiwgXCJKT19MT0lfREVDUkVUXCIsIFwiSk9fREVCQVRcIl0sXG4gIFR5cGU6IFtcIlFFXCIsIFwiUUdcIiwgXCJRT1NEXCJdLFxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUEsSUF1QllBLGVBQWUsR0FBQUMsT0FBQSxDQUFBRCxlQUFBLDBCQUFmQSxlQUFlO0VBQWZBLGVBQWU7RUFBZkEsZUFBZTtFQUFmQSxlQUFlO0VBQUEsT0FBZkEsZUFBZTtBQUFBO0FBQUEsSUE2QmZFLE1BQU0sR0FBQUQsT0FBQSxDQUFBQyxNQUFBLDBCQUFOQSxNQUFNO0VBQU5BLE1BQU07RUFBTkEsTUFBTTtFQUFOQSxNQUFNO0VBQUEsT0FBTkEsTUFBTTtBQUFBO0FBQUEsSUFtRU5DLElBQUksR0FBQUYsT0FBQSxDQUFBRSxJQUFBLDBCQUFKQSxJQUFJO0VBQUpBLElBQUk7RUFBSkEsSUFBSTtFQUFKQSxJQUFJO0VBQUEsT0FBSkEsSUFBSTtBQUFBLE9BTWhCO0FBQ0E7QUFBQSxJQUNhQyxPQUFPLEdBQUFILE9BQUEsQ0FBQUcsT0FBQTtFQUFBLFNBQUFBLFFBQUE7SUFBQUMsZUFBQSxPQUFBRCxPQUFBO0VBQUE7RUFBQSxPQUFBRSxZQUFBLENBQUFGLE9BQUE7SUFBQUcsR0FBQTtJQUFBQyxLQUFBLEVBQ2xCLFNBQWNDLFdBQVdBLENBQUNDLElBQVksRUFBYTtNQUNqRCxPQUFPQyxJQUFJLENBQUNDLElBQUksQ0FBQ0MsS0FBSyxDQUFDSCxJQUFJLENBQUMsRUFBRUksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9DO0VBQUM7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