@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,906 +0,0 @@
1
- // To parse this data:
2
- //
3
- // import { Convert, Acteur, Organe, ActeursEtOrganes } from "./file";
4
- //
5
- // const acteur = Convert.toActeur(json);
6
- // const organe = Convert.toOrgane(json);
7
- // const acteursEtOrganes = Convert.toActeursEtOrganes(json);
8
- //
9
- // These functions will throw an error if the JSON doesn't
10
- // match the expected interface, even if the JSON is valid.
11
-
12
- export let Civ = /*#__PURE__*/function (Civ) {
13
- Civ["M"] = "M.";
14
- Civ["Mme"] = "Mme";
15
- return Civ;
16
- }({});
17
- export let TypeMandat = /*#__PURE__*/function (TypeMandat) {
18
- TypeMandat["MandatAvecSuppleantType"] = "MandatAvecSuppleant_Type";
19
- TypeMandat["MandatMissionType"] = "MandatMission_Type";
20
- TypeMandat["MandatParlementaireType"] = "MandatParlementaire_type";
21
- TypeMandat["MandatSimpleType"] = "MandatSimple_Type";
22
- return TypeMandat;
23
- }({});
24
- export let RegionType = /*#__PURE__*/function (RegionType) {
25
- RegionType["Collectivit\xE9sDOutreMerEtNouvelleCal\xE9donie"] = "Collectivit\xE9s d'outre-mer et Nouvelle-Cal\xE9donie";
26
- RegionType["Dom"] = "Dom";
27
- RegionType["Fran\xE7ais\xC9tablisHorsDeFrance"] = "Fran\xE7ais \xE9tablis hors de France";
28
- RegionType["M\xE9tropolitain"] = "M\xE9tropolitain";
29
- return RegionType;
30
- }({});
31
- export let CodeTypeOrgane = /*#__PURE__*/function (CodeTypeOrgane) {
32
- CodeTypeOrgane["Api"] = "API";
33
- // Assemblée parlementaire internationale
34
- CodeTypeOrgane["Assemblee"] = "ASSEMBLEE";
35
- // Assemblée nationale
36
- CodeTypeOrgane["Bureau"] = "BUREAU";
37
- // Bureau de l'Assemblée nationale
38
- CodeTypeOrgane["Circonscription"] = "CIRCONSCRIPTION";
39
- CodeTypeOrgane["Cjr"] = "CJR";
40
- // Cour de justice de la République
41
- CodeTypeOrgane["Cmp"] = "CMP";
42
- // Commission mixte paritaire,
43
- CodeTypeOrgane["Cnpe"] = "CNPE";
44
- // Commission d'enquête; what does this acronym mean?
45
- CodeTypeOrgane["Cnps"] = "CNPS";
46
- // Commission spéciale; what does this acronym mean?
47
- CodeTypeOrgane["Comnl"] = "COMNL";
48
- // Commission spéciale autre; what does this acronym mean?
49
- CodeTypeOrgane["Comper"] = "COMPER";
50
- // Commission permanente
51
- CodeTypeOrgane["Comsenat"] = "COMSENAT";
52
- // Commission sénatoriale
53
- CodeTypeOrgane["Comspsenat"] = "COMSPSENAT";
54
- // Commission spéciale sénatoriale
55
- CodeTypeOrgane["Confpt"] = "CONFPT";
56
- // Conférence des présidents
57
- CodeTypeOrgane["Constitu"] = "CONSTITU";
58
- // Conseil constitutionnel
59
- CodeTypeOrgane["Deleg"] = "DELEG";
60
- // Délégation
61
- CodeTypeOrgane["Delegbureau"] = "DELEGBUREAU";
62
- // Délégation du Bureau
63
- CodeTypeOrgane["Delegsenat"] = "DELEGSENAT";
64
- // Délégation sénatoriale
65
- CodeTypeOrgane["Ga"] = "GA";
66
- // Groupe d'amitié
67
- CodeTypeOrgane["Ge"] = "GE";
68
- // Groupe d'études
69
- CodeTypeOrgane["Gevi"] = "GEVI";
70
- // Groupe d'études à vocation internationale
71
- CodeTypeOrgane["Gouvernement"] = "GOUVERNEMENT";
72
- // Gouvernement
73
- CodeTypeOrgane["Gp"] = "GP";
74
- // Groupe politique
75
- CodeTypeOrgane["Groupesenat"] = "GROUPESENAT";
76
- // Groupe sénatorial
77
- CodeTypeOrgane["Hcj"] = "HCJ";
78
- // Haute Cour de Justice
79
- CodeTypeOrgane["Ministere"] = "MINISTERE";
80
- // Ministère
81
- CodeTypeOrgane["Miseval"] = "MISEVAL";
82
- // Mission d'évaluation
83
- CodeTypeOrgane["Misinfo"] = "MISINFO";
84
- // Mission d'information
85
- CodeTypeOrgane["Misinfocom"] = "MISINFOCOM";
86
- // Mission d'information commune
87
- CodeTypeOrgane["Misinfopre"] = "MISINFOPRE";
88
- // Missions d’information de la conférence des Présidents
89
- CodeTypeOrgane["Offpar"] = "OFFPAR";
90
- // Office parlementaire ou délégation mixte
91
- CodeTypeOrgane["Orgaint"] = "ORGAINT";
92
- // Organisme international
93
- CodeTypeOrgane["Orgextparl"] = "ORGEXTPARL";
94
- // Organisme extra-parlementaire
95
- CodeTypeOrgane["Parpol"] = "PARPOL";
96
- // Parti politique
97
- CodeTypeOrgane["Presrep"] = "PRESREP";
98
- // Présidence de la République
99
- CodeTypeOrgane["Senat"] = "SENAT"; // Sénat
100
- return CodeTypeOrgane;
101
- }({});
102
- export let FamSocPro = /*#__PURE__*/function (FamSocPro) {
103
- FamSocPro["AgriculteursExploitants"] = "Agriculteurs exploitants";
104
- FamSocPro["ArtisansCommer\xE7antsChefsDEntreprises"] = "Artisans, commer\xE7ants, chefs d'entreprises";
105
- FamSocPro["ArtisansCommer\xE7antsEtChefsDEntrepriseAncien"] = "Artisans, commer\xE7ants et chefs d'entreprise";
106
- FamSocPro["AutresPersonnesSansActivit\xE9Professionnelle"] = "Autres personnes sans activit\xE9 professionnelle";
107
- FamSocPro["CadresEtProfessionsIntellectuellesSup\xE9rieures"] = "Cadres et professions intellectuelles sup\xE9rieures";
108
- FamSocPro["Employ\xE9s"] = "Employ\xE9s";
109
- FamSocPro["Ouvriers"] = "Ouvriers";
110
- FamSocPro["ProfessionsInterm\xE9diaires"] = "Professions interm\xE9diaires";
111
- FamSocPro["ProfessionsInterm\xE9diairesAncien"] = "Professions Interm\xE9diaires";
112
- FamSocPro["Retrait\xE9s"] = "Retrait\xE9s";
113
- FamSocPro["SansProfessionD\xE9clar\xE9e"] = "Sans profession d\xE9clar\xE9e";
114
- return FamSocPro;
115
- }({});
116
- export let TypeOrgane = /*#__PURE__*/function (TypeOrgane) {
117
- TypeOrgane["GroupePolitiqueType"] = "GroupePolitique_type";
118
- TypeOrgane["OrganeCirconscriptionType"] = "OrganeCirconscription_type";
119
- TypeOrgane["OrganeExterneType"] = "OrganeExterne_Type";
120
- TypeOrgane["OrganeExtraParlementaireType"] = "OrganeExtraParlementaire_type";
121
- TypeOrgane["OrganeParlementaireInternational"] = "OrganeParlementaireInternational";
122
- TypeOrgane["OrganeParlementaireType"] = "OrganeParlementaire_Type";
123
- return TypeOrgane;
124
- }({});
125
- export let CodeNatureDep = /*#__PURE__*/function (CodeNatureDep) {
126
- CodeNatureDep["H"] = "H";
127
- CodeNatureDep["M"] = "M";
128
- CodeNatureDep["O"] = "O";
129
- CodeNatureDep["T"] = "T";
130
- return CodeNatureDep;
131
- }({});
132
- export let PositionPolitique = /*#__PURE__*/function (PositionPolitique) {
133
- PositionPolitique["Majoritaire"] = "Majoritaire";
134
- PositionPolitique["Minoritaire"] = "Minoritaire";
135
- PositionPolitique["Opposition"] = "Opposition";
136
- return PositionPolitique;
137
- }({});
138
- export let Regime = /*#__PURE__*/function (Regime) {
139
- Regime["Assembl\xE9eConsultativeProvisoire"] = "Assembl\xE9e consultative provisoire";
140
- Regime["Assembl\xE9esNationalesConstituantes"] = "Assembl\xE9es nationales constituantes";
141
- Regime["The3\xC8meR\xE9publique"] = "3\xE8me R\xE9publique";
142
- Regime["The4\xC8meR\xE9publique"] = "4\xE8me R\xE9publique";
143
- Regime["The5\xC8meR\xE9publique"] = "5\xE8me R\xE9publique";
144
- return Regime;
145
- }({});
146
- // Converts JSON strings to/from your types
147
- // and asserts the results of JSON.parse at runtime
148
- export class Convert {
149
- static toActeursEtOrganes(json) {
150
- return cast(JSON.parse(json), r("ActeursEtOrganes"));
151
- }
152
- static acteursEtOrganesToJson(value) {
153
- return JSON.stringify(uncast(value, r("ActeursEtOrganes")), null, 2);
154
- }
155
- static toActeur(json) {
156
- return cast(JSON.parse(json), r("Acteur"));
157
- }
158
- static acteurToJson(value) {
159
- return JSON.stringify(uncast(value, r("Acteur")), null, 2);
160
- }
161
- static toOrgane(json) {
162
- return cast(JSON.parse(json), r("Organe"));
163
- }
164
- static organeToJson(value) {
165
- return JSON.stringify(uncast(value, r("Organe")), null, 2);
166
- }
167
- }
168
- function invalidValue(typ, val, key = "") {
169
- if (key) {
170
- throw Error(`Invalid value for key "${key}". Expected type ${JSON.stringify(typ)} but got ${JSON.stringify(val)}`);
171
- }
172
- throw Error(`Invalid value ${JSON.stringify(val)} for type ${JSON.stringify(typ)}`);
173
- }
174
- function jsonToJSProps(typ) {
175
- if (typ.jsonToJS === undefined) {
176
- const map = {};
177
- typ.props.forEach(p => map[p.json] = {
178
- key: p.js,
179
- typ: p.typ
180
- });
181
- typ.jsonToJS = map;
182
- }
183
- return typ.jsonToJS;
184
- }
185
- function jsToJSONProps(typ) {
186
- if (typ.jsToJSON === undefined) {
187
- const map = {};
188
- typ.props.forEach(p => map[p.js] = {
189
- key: p.json,
190
- typ: p.typ
191
- });
192
- typ.jsToJSON = map;
193
- }
194
- return typ.jsToJSON;
195
- }
196
- function transform(val, typ, getProps, key = "") {
197
- function transformPrimitive(typ, val) {
198
- if (typeof typ === typeof val) return val;
199
- return invalidValue(typ, val, key);
200
- }
201
- function transformUnion(typs, val) {
202
- // val must validate against one typ in typs
203
- const l = typs.length;
204
- for (let i = 0; i < l; i++) {
205
- const typ = typs[i];
206
- try {
207
- return transform(val, typ, getProps);
208
- } catch (_) {}
209
- }
210
- return invalidValue(typs, val);
211
- }
212
- function transformEnum(cases, val) {
213
- if (cases.indexOf(val) !== -1) return val;
214
- return invalidValue(cases, val);
215
- }
216
- function transformArray(typ, val) {
217
- // val must be an array with no invalid elements
218
- if (!Array.isArray(val)) return invalidValue("array", val);
219
- return val.map(el => transform(el, typ, getProps));
220
- }
221
- function transformDate(val) {
222
- if (val === null) {
223
- return null;
224
- }
225
- const d = new Date(val);
226
- if (isNaN(d.valueOf())) {
227
- return invalidValue("Date", val);
228
- }
229
- return d;
230
- }
231
- function transformObject(props, additional, val) {
232
- if (val === null || typeof val !== "object" || Array.isArray(val)) {
233
- return invalidValue("object", val);
234
- }
235
- const result = {};
236
- Object.getOwnPropertyNames(props).forEach(key => {
237
- const prop = props[key];
238
- const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
239
- result[prop.key] = transform(v, prop.typ, getProps, prop.key);
240
- });
241
- Object.getOwnPropertyNames(val).forEach(key => {
242
- if (!Object.prototype.hasOwnProperty.call(props, key)) {
243
- result[key] = transform(val[key], additional, getProps, key);
244
- }
245
- });
246
- return result;
247
- }
248
- if (typ === "any") return val;
249
- if (typ === null) {
250
- if (val === null) return val;
251
- return invalidValue(typ, val);
252
- }
253
- // if (typ === false) return invalidValue(typ, val)
254
- while (typeof typ === "object" && typ.ref !== undefined) {
255
- typ = typeMap[typ.ref];
256
- }
257
- if (Array.isArray(typ)) return transformEnum(typ, val);
258
- if (typeof typ === "object") {
259
- 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);
260
- }
261
- // Numbers can be parsed by Date but shouldn't be.
262
- if (typ === Date && typeof val !== "number") return transformDate(val);
263
- return transformPrimitive(typ, val);
264
- }
265
- function cast(val, typ) {
266
- return transform(val, typ, jsonToJSProps);
267
- }
268
- function uncast(val, typ) {
269
- return transform(val, typ, jsToJSONProps);
270
- }
271
- function a(typ) {
272
- return {
273
- arrayItems: typ
274
- };
275
- }
276
- function u(...typs) {
277
- return {
278
- unionMembers: typs
279
- };
280
- }
281
- function o(props, additional) {
282
- return {
283
- props,
284
- additional
285
- };
286
- }
287
-
288
- // function m(additional: any) {
289
- // return { props: [], additional }
290
- // }
291
-
292
- function r(name) {
293
- return {
294
- ref: name
295
- };
296
- }
297
- const typeMap = {
298
- ActeursEtOrganes: o([{
299
- json: "organes",
300
- js: "organes",
301
- typ: a(r("Organe"))
302
- }, {
303
- json: "acteurs",
304
- js: "acteurs",
305
- typ: a(r("Acteur"))
306
- }], false),
307
- Acteur: o([{
308
- json: "schemaVersion",
309
- js: "schemaVersion",
310
- typ: u(undefined, "")
311
- }, {
312
- json: "uid",
313
- js: "uid",
314
- typ: ""
315
- }, {
316
- json: "etatCivil",
317
- js: "etatCivil",
318
- typ: r("EtatCivil")
319
- }, {
320
- json: "profession",
321
- js: "profession",
322
- typ: u(undefined, r("Profession"))
323
- }, {
324
- json: "uriHatvp",
325
- js: "uriHatvp",
326
- typ: u(undefined, "")
327
- }, {
328
- json: "adresses",
329
- js: "adresses",
330
- typ: u(undefined, a(u(r("AdresseElectronique"), r("AdressePostale"))))
331
- }, {
332
- json: "mandats",
333
- js: "mandats",
334
- typ: u(undefined, a(r("Mandat")))
335
- }, {
336
- json: "photo",
337
- js: "photo",
338
- typ: u(undefined, r("Photo"))
339
- }, {
340
- json: "deports",
341
- js: "deports",
342
- typ: u(undefined, a(r("Deport")))
343
- }], false),
344
- AdresseElectronique: o([{
345
- json: "xsiType",
346
- js: "xsiType",
347
- typ: ""
348
- }, {
349
- json: "uid",
350
- js: "uid",
351
- typ: ""
352
- }, {
353
- json: "type",
354
- js: "type",
355
- typ: ""
356
- }, {
357
- json: "typeLibelle",
358
- js: "typeLibelle",
359
- typ: ""
360
- }, {
361
- json: "poids",
362
- js: "poids",
363
- typ: u(undefined, "")
364
- }, {
365
- json: "adresseDeRattachement",
366
- js: "adresseDeRattachement",
367
- typ: u(undefined, "")
368
- }, {
369
- json: "valElec",
370
- js: "valElec",
371
- typ: u(undefined, "")
372
- }], false),
373
- AdressePostale: o([{
374
- json: "xsiType",
375
- js: "xsiType",
376
- typ: ""
377
- }, {
378
- json: "uid",
379
- js: "uid",
380
- typ: ""
381
- }, {
382
- json: "type",
383
- js: "type",
384
- typ: ""
385
- }, {
386
- json: "typeLibelle",
387
- js: "typeLibelle",
388
- typ: ""
389
- }, {
390
- json: "poids",
391
- js: "poids",
392
- typ: u(undefined, "")
393
- }, {
394
- json: "intitule",
395
- js: "intitule",
396
- typ: u(undefined, "")
397
- }, {
398
- json: "numeroRue",
399
- js: "numeroRue",
400
- typ: u(undefined, "")
401
- }, {
402
- json: "nomRue",
403
- js: "nomRue",
404
- typ: u(undefined, "")
405
- }, {
406
- json: "complementAdresse",
407
- js: "complementAdresse",
408
- typ: u(undefined, "")
409
- }, {
410
- json: "codePostal",
411
- js: "codePostal",
412
- typ: u(undefined, "")
413
- }, {
414
- json: "ville",
415
- js: "ville",
416
- typ: u(undefined, "")
417
- }], false),
418
- EtatCivil: o([{
419
- json: "ident",
420
- js: "ident",
421
- typ: r("Ident")
422
- }, {
423
- json: "infoNaissance",
424
- js: "infoNaissance",
425
- typ: r("InfoNaissance")
426
- }, {
427
- json: "dateDeces",
428
- js: "dateDeces",
429
- typ: u(undefined, Date)
430
- }], false),
431
- Ident: o([{
432
- json: "civ",
433
- js: "civ",
434
- typ: r("Civ")
435
- }, {
436
- json: "prenom",
437
- js: "prenom",
438
- typ: ""
439
- }, {
440
- json: "nom",
441
- js: "nom",
442
- typ: ""
443
- }, {
444
- json: "alpha",
445
- js: "alpha",
446
- typ: ""
447
- }, {
448
- json: "trigramme",
449
- js: "trigramme",
450
- typ: u(undefined, "")
451
- }], false),
452
- InfoNaissance: o([{
453
- json: "dateNais",
454
- js: "dateNais",
455
- typ: u(undefined, Date)
456
- }, {
457
- json: "villeNais",
458
- js: "villeNais",
459
- typ: u(undefined, "")
460
- }, {
461
- json: "depNais",
462
- js: "depNais",
463
- typ: u(undefined, "")
464
- }, {
465
- json: "paysNais",
466
- js: "paysNais",
467
- typ: u(undefined, "")
468
- }], false),
469
- Mandat: o([{
470
- json: "xsiType",
471
- js: "xsiType",
472
- typ: u(undefined, r("TypeMandat"))
473
- }, {
474
- json: "uid",
475
- js: "uid",
476
- typ: ""
477
- }, {
478
- json: "acteurRef",
479
- js: "acteurRef",
480
- typ: ""
481
- }, {
482
- json: "legislature",
483
- js: "legislature",
484
- typ: u(undefined, "")
485
- }, {
486
- json: "typeOrgane",
487
- js: "typeOrgane",
488
- typ: r("CodeTypeOrgane")
489
- }, {
490
- json: "dateDebut",
491
- js: "dateDebut",
492
- typ: Date
493
- }, {
494
- json: "datePublication",
495
- js: "datePublication",
496
- typ: u(undefined, Date)
497
- }, {
498
- json: "dateFin",
499
- js: "dateFin",
500
- typ: u(undefined, Date)
501
- }, {
502
- json: "preseance",
503
- js: "preseance",
504
- typ: u(undefined, "")
505
- }, {
506
- json: "nominPrincipale",
507
- js: "nominPrincipale",
508
- typ: ""
509
- }, {
510
- json: "infosQualite",
511
- js: "infosQualite",
512
- typ: r("InfosQualite")
513
- }, {
514
- json: "organesRefs",
515
- js: "organesRefs",
516
- typ: a("")
517
- }, {
518
- json: "suppleant",
519
- js: "suppleant",
520
- typ: u(undefined, r("Suppleant"))
521
- }, {
522
- json: "election",
523
- js: "election",
524
- typ: u(undefined, r("Election"))
525
- }, {
526
- json: "mandature",
527
- js: "mandature",
528
- typ: u(undefined, r("Mandature"))
529
- }, {
530
- json: "collaborateurs",
531
- js: "collaborateurs",
532
- typ: u(undefined, a(r("Collaborateur")))
533
- }, {
534
- json: "libelle",
535
- js: "libelle",
536
- typ: u(undefined, "")
537
- }, {
538
- json: "missionSuivanteRef",
539
- js: "missionSuivanteRef",
540
- typ: u(undefined, "")
541
- }, {
542
- json: "missionPrecedenteRef",
543
- js: "missionPrecedenteRef",
544
- typ: u(undefined, "")
545
- }], false),
546
- Collaborateur: o([{
547
- json: "qualite",
548
- js: "qualite",
549
- typ: u(undefined, r("Civ"))
550
- }, {
551
- json: "prenom",
552
- js: "prenom",
553
- typ: ""
554
- }, {
555
- json: "nom",
556
- js: "nom",
557
- typ: ""
558
- }], false),
559
- Election: o([{
560
- json: "lieu",
561
- js: "lieu",
562
- typ: r("Lieu")
563
- }, {
564
- json: "causeMandat",
565
- js: "causeMandat",
566
- typ: u(undefined, "")
567
- }, {
568
- json: "refCirconscription",
569
- js: "refCirconscription",
570
- typ: u(undefined, "")
571
- }], false),
572
- Lieu: o([{
573
- json: "region",
574
- js: "region",
575
- typ: u(undefined, "")
576
- }, {
577
- json: "regionType",
578
- js: "regionType",
579
- typ: u(undefined, r("RegionType"))
580
- }, {
581
- json: "departement",
582
- js: "departement",
583
- typ: u(undefined, "")
584
- }, {
585
- json: "numDepartement",
586
- js: "numDepartement",
587
- typ: u(undefined, "")
588
- }, {
589
- json: "numCirco",
590
- js: "numCirco",
591
- typ: u(undefined, "")
592
- }], false),
593
- InfosQualite: o([{
594
- json: "codeQualite",
595
- js: "codeQualite",
596
- typ: u(undefined, "")
597
- }, {
598
- json: "libQualite",
599
- js: "libQualite",
600
- typ: ""
601
- }, {
602
- json: "libQualiteSex",
603
- js: "libQualiteSex",
604
- typ: u(undefined, "")
605
- }], false),
606
- Mandature: o([{
607
- json: "datePriseFonction",
608
- js: "datePriseFonction",
609
- typ: u(undefined, Date)
610
- }, {
611
- json: "causeFin",
612
- js: "causeFin",
613
- typ: u(undefined, "")
614
- }, {
615
- json: "premiereElection",
616
- js: "premiereElection",
617
- typ: u(undefined, "")
618
- }, {
619
- json: "placeHemicycle",
620
- js: "placeHemicycle",
621
- typ: u(undefined, "")
622
- }, {
623
- json: "mandatRemplaceRef",
624
- js: "mandatRemplaceRef",
625
- typ: u(undefined, "")
626
- }, {
627
- json: "matriculeVote",
628
- js: "matriculeVote",
629
- typ: u(undefined, "")
630
- }], false),
631
- Suppleant: o([{
632
- json: "dateDebut",
633
- js: "dateDebut",
634
- typ: Date
635
- }, {
636
- json: "dateFin",
637
- js: "dateFin",
638
- typ: u(undefined, Date)
639
- }, {
640
- json: "suppleantRef",
641
- js: "suppleantRef",
642
- typ: ""
643
- }], false),
644
- Profession: o([{
645
- json: "libelleCourant",
646
- js: "libelleCourant",
647
- typ: u(undefined, "")
648
- }, {
649
- json: "socProcInsee",
650
- js: "socProcInsee",
651
- typ: r("SocProcInsee")
652
- }], false),
653
- SocProcInsee: o([{
654
- json: "catSocPro",
655
- js: "catSocPro",
656
- typ: u(undefined, "")
657
- }, {
658
- json: "famSocPro",
659
- js: "famSocPro",
660
- typ: u(undefined, r("FamSocPro"))
661
- }], false),
662
- Deport: o([{
663
- json: "uid",
664
- js: "uid",
665
- typ: ""
666
- }, {
667
- json: "chronotag",
668
- js: "chronotag",
669
- typ: ""
670
- }, {
671
- json: "legislature",
672
- js: "legislature",
673
- typ: ""
674
- }, {
675
- json: "refActeur",
676
- js: "refActeur",
677
- typ: ""
678
- }, {
679
- json: "dateCreation",
680
- js: "dateCreation",
681
- typ: Date
682
- }, {
683
- json: "datePublication",
684
- js: "datePublication",
685
- typ: Date
686
- }, {
687
- json: "portee",
688
- js: "portee",
689
- typ: r("CodeEtLibelle")
690
- }, {
691
- json: "lecture",
692
- js: "lecture",
693
- typ: r("CodeEtLibelle")
694
- }, {
695
- json: "instance",
696
- js: "instance",
697
- typ: r("CodeEtLibelle")
698
- }, {
699
- json: "cible",
700
- js: "cible",
701
- typ: r("Cible")
702
- }, {
703
- json: "explication",
704
- js: "explication",
705
- typ: u(undefined, "")
706
- }], false),
707
- Cible: o([{
708
- json: "type",
709
- js: "type",
710
- typ: r("CodeEtLibelle")
711
- }, {
712
- json: "referenceTextuelle",
713
- js: "referenceTextuelle",
714
- typ: ""
715
- }], false),
716
- CodeEtLibelle: o([{
717
- json: "code",
718
- js: "code",
719
- typ: ""
720
- }, {
721
- json: "libelle",
722
- js: "libelle",
723
- typ: ""
724
- }], false),
725
- Organe: o([{
726
- json: "schemaVersion",
727
- js: "schemaVersion",
728
- typ: u(undefined, "")
729
- }, {
730
- json: "xsiType",
731
- js: "xsiType",
732
- typ: u(undefined, r("TypeOrgane"))
733
- }, {
734
- json: "uid",
735
- js: "uid",
736
- typ: ""
737
- }, {
738
- json: "codeType",
739
- js: "codeType",
740
- typ: r("CodeTypeOrgane")
741
- }, {
742
- json: "libelle",
743
- js: "libelle",
744
- typ: ""
745
- }, {
746
- json: "libelleEdition",
747
- js: "libelleEdition",
748
- typ: u(undefined, "")
749
- }, {
750
- json: "libelleAbrege",
751
- js: "libelleAbrege",
752
- typ: ""
753
- }, {
754
- json: "libelleAbrev",
755
- js: "libelleAbrev",
756
- typ: ""
757
- }, {
758
- json: "viMoDe",
759
- js: "viMoDe",
760
- typ: r("ViMoDe")
761
- }, {
762
- json: "organeParentRef",
763
- js: "organeParentRef",
764
- typ: u(undefined, "")
765
- }, {
766
- json: "organePrecedentRef",
767
- js: "organePrecedentRef",
768
- typ: u(undefined, "")
769
- }, {
770
- json: "regime",
771
- js: "regime",
772
- typ: u(undefined, r("Regime"))
773
- }, {
774
- json: "legislature",
775
- js: "legislature",
776
- typ: u(undefined, "")
777
- }, {
778
- json: "secretariat",
779
- js: "secretariat",
780
- typ: u(undefined, r("Secretariat"))
781
- }, {
782
- json: "numero",
783
- js: "numero",
784
- typ: u(undefined, "")
785
- }, {
786
- json: "lieu",
787
- js: "lieu",
788
- typ: u(undefined, r("OrganeLieu"))
789
- }, {
790
- json: "regimeJuridique",
791
- js: "regimeJuridique",
792
- typ: u(undefined, "")
793
- }, {
794
- json: "siteInternet",
795
- js: "siteInternet",
796
- typ: u(undefined, "")
797
- }, {
798
- json: "nombreReunionsAnnuelles",
799
- js: "nombreReunionsAnnuelles",
800
- typ: u(undefined, "")
801
- }, {
802
- json: "positionPolitique",
803
- js: "positionPolitique",
804
- typ: u(undefined, r("PositionPolitique"))
805
- }, {
806
- json: "preseance",
807
- js: "preseance",
808
- typ: u(undefined, "")
809
- }, {
810
- json: "couleurAssociee",
811
- js: "couleurAssociee",
812
- typ: u(undefined, "")
813
- }, {
814
- json: "listePays",
815
- js: "listePays",
816
- typ: u(undefined, a(""))
817
- }], false),
818
- OrganeLieu: o([{
819
- json: "region",
820
- js: "region",
821
- typ: r("Region")
822
- }, {
823
- json: "departement",
824
- js: "departement",
825
- typ: r("Departement")
826
- }], false),
827
- Departement: o([{
828
- json: "codeNatureDep",
829
- js: "codeNatureDep",
830
- typ: u(undefined, r("CodeNatureDep"))
831
- }, {
832
- json: "code",
833
- js: "code",
834
- typ: u(undefined, "")
835
- }, {
836
- json: "libelle",
837
- js: "libelle",
838
- typ: u(undefined, "")
839
- }], false),
840
- Region: o([{
841
- json: "type",
842
- js: "type",
843
- typ: u(undefined, r("RegionType"))
844
- }, {
845
- json: "libelle",
846
- js: "libelle",
847
- typ: u(undefined, "")
848
- }], false),
849
- Secretariat: o([{
850
- json: "secretaire01",
851
- js: "secretaire01",
852
- typ: u(undefined, "")
853
- }, {
854
- json: "secretaire02",
855
- js: "secretaire02",
856
- typ: u(undefined, "")
857
- }], false),
858
- ViMoDe: o([{
859
- json: "dateDebut",
860
- js: "dateDebut",
861
- typ: u(undefined, Date)
862
- }, {
863
- json: "dateAgrement",
864
- js: "dateAgrement",
865
- typ: u(undefined, Date)
866
- }, {
867
- json: "dateFin",
868
- js: "dateFin",
869
- typ: u(undefined, Date)
870
- }], false),
871
- Photo: o([{
872
- json: "chemin",
873
- js: "chemin",
874
- typ: ""
875
- }, {
876
- json: "cheminMosaique",
877
- js: "cheminMosaique",
878
- typ: ""
879
- }, {
880
- json: "hauteur",
881
- js: "hauteur",
882
- typ: 0
883
- }, {
884
- json: "largeur",
885
- js: "largeur",
886
- typ: 0
887
- }, {
888
- json: "xMosaique",
889
- js: "xMosaique",
890
- typ: 0
891
- }, {
892
- json: "yMosaique",
893
- js: "yMosaique",
894
- typ: 0
895
- }], false),
896
- Civ: ["M.", "Mme"],
897
- TypeMandat: ["MandatAvecSuppleant_Type", "MandatMission_Type", "MandatParlementaire_type", "MandatSimple_Type"],
898
- RegionType: ["Collectivités d'outre-mer et Nouvelle-Calédonie", "Dom", "Français établis hors de France", "Métropolitain"],
899
- CodeTypeOrgane: ["API", "ASSEMBLEE", "BUREAU", "CIRCONSCRIPTION", "CJR", "CMP", "CNPE", "CNPS", "COMNL", "COMPER", "COMSENAT", "COMSPSENAT", "CONFPT", "CONSTITU", "DELEG", "DELEGBUREAU", "DELEGSENAT", "GA", "GE", "GEVI", "GOUVERNEMENT", "GP", "GROUPESENAT", "HCJ", "MINISTERE", "MISEVAL", "MISINFO", "MISINFOCOM", "MISINFOPRE", "OFFPAR", "ORGAINT", "ORGEXTPARL", "PARPOL", "PRESREP", "SENAT"],
900
- FamSocPro: ["Agriculteurs exploitants", "Artisans, commerçants et chefs d'entreprise", "Artisans, commerçants, chefs d'entreprises", "Autres personnes sans activité professionnelle", "Cadres et professions intellectuelles supérieures", "Employés", "Ouvriers", "Professions Intermédiaires", "Professions intermédiaires", "Retraités", "Sans profession déclarée"],
901
- TypeOrgane: ["GroupePolitique_type", "OrganeCirconscription_type", "OrganeExterne_Type", "OrganeExtraParlementaire_type", "OrganeParlementaireInternational", "OrganeParlementaire_Type"],
902
- CodeNatureDep: ["H", "M", "O", "T"],
903
- PositionPolitique: ["Majoritaire", "Minoritaire", "Opposition"],
904
- Regime: ["Assemblée consultative provisoire", "Assemblées nationales constituantes", "3ème République", "4ème République", "5ème République"]
905
- };
906
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDaXYiLCJUeXBlTWFuZGF0IiwiUmVnaW9uVHlwZSIsIkNvZGVUeXBlT3JnYW5lIiwiRmFtU29jUHJvIiwiVHlwZU9yZ2FuZSIsIkNvZGVOYXR1cmVEZXAiLCJQb3NpdGlvblBvbGl0aXF1ZSIsIlJlZ2ltZSIsIkNvbnZlcnQiLCJ0b0FjdGV1cnNFdE9yZ2FuZXMiLCJqc29uIiwiY2FzdCIsIkpTT04iLCJwYXJzZSIsInIiLCJhY3RldXJzRXRPcmdhbmVzVG9Kc29uIiwidmFsdWUiLCJzdHJpbmdpZnkiLCJ1bmNhc3QiLCJ0b0FjdGV1ciIsImFjdGV1clRvSnNvbiIsInRvT3JnYW5lIiwib3JnYW5lVG9Kc29uIiwiaW52YWxpZFZhbHVlIiwidHlwIiwidmFsIiwia2V5IiwiRXJyb3IiLCJqc29uVG9KU1Byb3BzIiwianNvblRvSlMiLCJ1bmRlZmluZWQiLCJtYXAiLCJwcm9wcyIsImZvckVhY2giLCJwIiwianMiLCJqc1RvSlNPTlByb3BzIiwianNUb0pTT04iLCJ0cmFuc2Zvcm0iLCJnZXRQcm9wcyIsInRyYW5zZm9ybVByaW1pdGl2ZSIsInRyYW5zZm9ybVVuaW9uIiwidHlwcyIsImwiLCJsZW5ndGgiLCJpIiwiXyIsInRyYW5zZm9ybUVudW0iLCJjYXNlcyIsImluZGV4T2YiLCJ0cmFuc2Zvcm1BcnJheSIsIkFycmF5IiwiaXNBcnJheSIsImVsIiwidHJhbnNmb3JtRGF0ZSIsImQiLCJEYXRlIiwiaXNOYU4iLCJ2YWx1ZU9mIiwidHJhbnNmb3JtT2JqZWN0IiwiYWRkaXRpb25hbCIsInJlc3VsdCIsIk9iamVjdCIsImdldE93blByb3BlcnR5TmFtZXMiLCJwcm9wIiwidiIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsInJlZiIsInR5cGVNYXAiLCJ1bmlvbk1lbWJlcnMiLCJhcnJheUl0ZW1zIiwiYSIsInUiLCJvIiwibmFtZSIsIkFjdGV1cnNFdE9yZ2FuZXMiLCJBY3RldXIiLCJBZHJlc3NlRWxlY3Ryb25pcXVlIiwiQWRyZXNzZVBvc3RhbGUiLCJFdGF0Q2l2aWwiLCJJZGVudCIsIkluZm9OYWlzc2FuY2UiLCJNYW5kYXQiLCJDb2xsYWJvcmF0ZXVyIiwiRWxlY3Rpb24iLCJMaWV1IiwiSW5mb3NRdWFsaXRlIiwiTWFuZGF0dXJlIiwiU3VwcGxlYW50IiwiUHJvZmVzc2lvbiIsIlNvY1Byb2NJbnNlZSIsIkRlcG9ydCIsIkNpYmxlIiwiQ29kZUV0TGliZWxsZSIsIk9yZ2FuZSIsIk9yZ2FuZUxpZXUiLCJEZXBhcnRlbWVudCIsIlJlZ2lvbiIsIlNlY3JldGFyaWF0IiwiVmlNb0RlIiwiUGhvdG8iXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvYWN0ZXVyc19ldF9vcmdhbmVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRvIHBhcnNlIHRoaXMgZGF0YTpcbi8vXG4vLyAgIGltcG9ydCB7IENvbnZlcnQsIEFjdGV1ciwgT3JnYW5lLCBBY3RldXJzRXRPcmdhbmVzIH0gZnJvbSBcIi4vZmlsZVwiO1xuLy9cbi8vICAgY29uc3QgYWN0ZXVyID0gQ29udmVydC50b0FjdGV1cihqc29uKTtcbi8vICAgY29uc3Qgb3JnYW5lID0gQ29udmVydC50b09yZ2FuZShqc29uKTtcbi8vICAgY29uc3QgYWN0ZXVyc0V0T3JnYW5lcyA9IENvbnZlcnQudG9BY3RldXJzRXRPcmdhbmVzKGpzb24pO1xuLy9cbi8vIFRoZXNlIGZ1bmN0aW9ucyB3aWxsIHRocm93IGFuIGVycm9yIGlmIHRoZSBKU09OIGRvZXNuJ3Rcbi8vIG1hdGNoIHRoZSBleHBlY3RlZCBpbnRlcmZhY2UsIGV2ZW4gaWYgdGhlIEpTT04gaXMgdmFsaWQuXG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0ZXVyc0V0T3JnYW5lcyB7XG4gIG9yZ2FuZXM6IE9yZ2FuZVtdXG4gIGFjdGV1cnM6IEFjdGV1cltdXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0ZXVyIHtcbiAgc2NoZW1hVmVyc2lvbj86IHN0cmluZ1xuICB1aWQ6IHN0cmluZ1xuICBldGF0Q2l2aWw6IEV0YXRDaXZpbFxuICBwcm9mZXNzaW9uPzogUHJvZmVzc2lvblxuICB1cmlIYXR2cD86IHN0cmluZ1xuICBhZHJlc3Nlcz86IEFkcmVzc2VbXVxuICBtYW5kYXRzPzogTWFuZGF0W11cbiAgcGhvdG8/OiBQaG90b1xuICBkZXBvcnRzPzogRGVwb3J0W11cbn1cblxuZXhwb3J0IGludGVyZmFjZSBFdGF0Q2l2aWwge1xuICBpZGVudDogSWRlbnRcbiAgaW5mb05haXNzYW5jZTogSW5mb05haXNzYW5jZVxuICBkYXRlRGVjZXM/OiBEYXRlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWRlbnQge1xuICBjaXY6IENpdlxuICBwcmVub206IHN0cmluZ1xuICBub206IHN0cmluZ1xuICBhbHBoYTogc3RyaW5nXG4gIHRyaWdyYW1tZT86IHN0cmluZ1xufVxuXG5leHBvcnQgZW51bSBDaXYge1xuICBNID0gXCJNLlwiLFxuICBNbWUgPSBcIk1tZVwiLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEluZm9OYWlzc2FuY2Uge1xuICBkYXRlTmFpcz86IERhdGVcbiAgdmlsbGVOYWlzPzogc3RyaW5nXG4gIGRlcE5haXM/OiBzdHJpbmdcbiAgcGF5c05haXM/OiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgQWRyZXNzZSA9IEFkcmVzc2VFbGVjdHJvbmlxdWUgfCBBZHJlc3NlUG9zdGFsZVxuXG5leHBvcnQgaW50ZXJmYWNlIEFkcmVzc2VFbGVjdHJvbmlxdWUge1xuICB4c2lUeXBlOlxuICAgIHwgXCJBZHJlc3NlTWFpbF9UeXBlXCJcbiAgICB8IFwiQWRyZXNzZVNpdGVXZWJfVHlwZVwiXG4gICAgfCBcIkFkcmVzc2VUZWxlcGhvbmlxdWVfVHlwZVwiXG4gIHVpZDogc3RyaW5nXG4gIHR5cGU6IHN0cmluZ1xuICB0eXBlTGliZWxsZTogc3RyaW5nXG4gIHBvaWRzPzogc3RyaW5nXG4gIGFkcmVzc2VEZVJhdHRhY2hlbWVudD86IHN0cmluZ1xuICB2YWxFbGVjPzogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWRyZXNzZVBvc3RhbGUge1xuICB4c2lUeXBlOiBcIkFkcmVzc2VQb3N0YWxlX1R5cGVcIlxuICB1aWQ6IHN0cmluZ1xuICB0eXBlOiBzdHJpbmdcbiAgdHlwZUxpYmVsbGU6IHN0cmluZ1xuICBwb2lkcz86IHN0cmluZ1xuICBpbnRpdHVsZT86IHN0cmluZ1xuICBudW1lcm9SdWU/OiBzdHJpbmdcbiAgbm9tUnVlPzogc3RyaW5nXG4gIGNvbXBsZW1lbnRBZHJlc3NlPzogc3RyaW5nXG4gIGNvZGVQb3N0YWw/OiBzdHJpbmdcbiAgdmlsbGU/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYW5kYXQge1xuICB4c2lUeXBlPzogVHlwZU1hbmRhdFxuICB1aWQ6IHN0cmluZ1xuICBhY3RldXJSZWY6IHN0cmluZ1xuICBsZWdpc2xhdHVyZT86IHN0cmluZ1xuICB0eXBlT3JnYW5lOiBDb2RlVHlwZU9yZ2FuZVxuICBkYXRlRGVidXQ6IERhdGVcbiAgZGF0ZVB1YmxpY2F0aW9uPzogRGF0ZVxuICBkYXRlRmluPzogRGF0ZVxuICBwcmVzZWFuY2U/OiBzdHJpbmdcbiAgbm9taW5QcmluY2lwYWxlOiBzdHJpbmdcbiAgaW5mb3NRdWFsaXRlOiBJbmZvc1F1YWxpdGVcbiAgb3JnYW5lc1JlZnM6IHN0cmluZ1tdXG4gIG9yZ2FuZXM/OiBPcmdhbmVbXSAvLyBBZGRlZCBieSBUcmljb3RldXNlc1xuICBzdXBwbGVhbnQ/OiBTdXBwbGVhbnRcbiAgZWxlY3Rpb24/OiBFbGVjdGlvblxuICBtYW5kYXR1cmU/OiBNYW5kYXR1cmVcbiAgY29sbGFib3JhdGV1cnM/OiBDb2xsYWJvcmF0ZXVyW11cbiAgbGliZWxsZT86IHN0cmluZ1xuICBtaXNzaW9uU3VpdmFudGVSZWY/OiBzdHJpbmdcbiAgbWlzc2lvblByZWNlZGVudGVSZWY/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGVudW0gVHlwZU1hbmRhdCB7XG4gIE1hbmRhdEF2ZWNTdXBwbGVhbnRUeXBlID0gXCJNYW5kYXRBdmVjU3VwcGxlYW50X1R5cGVcIixcbiAgTWFuZGF0TWlzc2lvblR5cGUgPSBcIk1hbmRhdE1pc3Npb25fVHlwZVwiLFxuICBNYW5kYXRQYXJsZW1lbnRhaXJlVHlwZSA9IFwiTWFuZGF0UGFybGVtZW50YWlyZV90eXBlXCIsXG4gIE1hbmRhdFNpbXBsZVR5cGUgPSBcIk1hbmRhdFNpbXBsZV9UeXBlXCIsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29sbGFib3JhdGV1ciB7XG4gIHF1YWxpdGU/OiBDaXZcbiAgcHJlbm9tOiBzdHJpbmdcbiAgbm9tOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbGVjdGlvbiB7XG4gIGxpZXU6IExpZXVcbiAgY2F1c2VNYW5kYXQ/OiBzdHJpbmdcbiAgcmVmQ2lyY29uc2NyaXB0aW9uPzogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlldSB7XG4gIHJlZ2lvbj86IHN0cmluZ1xuICByZWdpb25UeXBlPzogUmVnaW9uVHlwZVxuICBkZXBhcnRlbWVudD86IHN0cmluZ1xuICBudW1EZXBhcnRlbWVudD86IHN0cmluZ1xuICBudW1DaXJjbz86IHN0cmluZ1xufVxuXG5leHBvcnQgZW51bSBSZWdpb25UeXBlIHtcbiAgQ29sbGVjdGl2aXTDqXNET3V0cmVNZXJFdE5vdXZlbGxlQ2Fsw6lkb25pZSA9IFwiQ29sbGVjdGl2aXTDqXMgZCdvdXRyZS1tZXIgZXQgTm91dmVsbGUtQ2Fsw6lkb25pZVwiLFxuICBEb20gPSBcIkRvbVwiLFxuICBGcmFuw6dhaXPDiXRhYmxpc0hvcnNEZUZyYW5jZSA9IFwiRnJhbsOnYWlzIMOpdGFibGlzIGhvcnMgZGUgRnJhbmNlXCIsXG4gIE3DqXRyb3BvbGl0YWluID0gXCJNw6l0cm9wb2xpdGFpblwiLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEluZm9zUXVhbGl0ZSB7XG4gIGNvZGVRdWFsaXRlPzogc3RyaW5nXG4gIGxpYlF1YWxpdGU6IHN0cmluZ1xuICBsaWJRdWFsaXRlU2V4Pzogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFuZGF0dXJlIHtcbiAgZGF0ZVByaXNlRm9uY3Rpb24/OiBEYXRlXG4gIGNhdXNlRmluPzogc3RyaW5nXG4gIHByZW1pZXJlRWxlY3Rpb24/OiBzdHJpbmdcbiAgcGxhY2VIZW1pY3ljbGU/OiBzdHJpbmdcbiAgbWFuZGF0UmVtcGxhY2VSZWY/OiBzdHJpbmdcbiAgbWF0cmljdWxlVm90ZT86IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN1cHBsZWFudCB7XG4gIGRhdGVEZWJ1dDogRGF0ZVxuICBkYXRlRmluPzogRGF0ZVxuICBzdXBwbGVhbnRSZWY6IHN0cmluZ1xufVxuXG5leHBvcnQgZW51bSBDb2RlVHlwZU9yZ2FuZSB7XG4gIEFwaSA9IFwiQVBJXCIsIC8vIEFzc2VtYmzDqWUgcGFybGVtZW50YWlyZSBpbnRlcm5hdGlvbmFsZVxuICBBc3NlbWJsZWUgPSBcIkFTU0VNQkxFRVwiLCAvLyBBc3NlbWJsw6llIG5hdGlvbmFsZVxuICBCdXJlYXUgPSBcIkJVUkVBVVwiLCAvLyBCdXJlYXUgZGUgbCdBc3NlbWJsw6llIG5hdGlvbmFsZVxuICBDaXJjb25zY3JpcHRpb24gPSBcIkNJUkNPTlNDUklQVElPTlwiLFxuICBDanIgPSBcIkNKUlwiLCAvLyBDb3VyIGRlIGp1c3RpY2UgZGUgbGEgUsOpcHVibGlxdWVcbiAgQ21wID0gXCJDTVBcIiwgLy8gQ29tbWlzc2lvbiBtaXh0ZSBwYXJpdGFpcmUsXG4gIENucGUgPSBcIkNOUEVcIiwgLy8gQ29tbWlzc2lvbiBkJ2VucXXDqnRlOyB3aGF0IGRvZXMgdGhpcyBhY3JvbnltIG1lYW4/XG4gIENucHMgPSBcIkNOUFNcIiwgLy8gQ29tbWlzc2lvbiBzcMOpY2lhbGU7IHdoYXQgZG9lcyB0aGlzIGFjcm9ueW0gbWVhbj9cbiAgQ29tbmwgPSBcIkNPTU5MXCIsIC8vIENvbW1pc3Npb24gc3DDqWNpYWxlIGF1dHJlOyB3aGF0IGRvZXMgdGhpcyBhY3JvbnltIG1lYW4/XG4gIENvbXBlciA9IFwiQ09NUEVSXCIsIC8vIENvbW1pc3Npb24gcGVybWFuZW50ZVxuICBDb21zZW5hdCA9IFwiQ09NU0VOQVRcIiwgLy8gQ29tbWlzc2lvbiBzw6luYXRvcmlhbGVcbiAgQ29tc3BzZW5hdCA9IFwiQ09NU1BTRU5BVFwiLCAvLyBDb21taXNzaW9uIHNww6ljaWFsZSBzw6luYXRvcmlhbGVcbiAgQ29uZnB0ID0gXCJDT05GUFRcIiwgLy8gQ29uZsOpcmVuY2UgZGVzIHByw6lzaWRlbnRzXG4gIENvbnN0aXR1ID0gXCJDT05TVElUVVwiLCAvLyBDb25zZWlsIGNvbnN0aXR1dGlvbm5lbFxuICBEZWxlZyA9IFwiREVMRUdcIiwgLy8gRMOpbMOpZ2F0aW9uXG4gIERlbGVnYnVyZWF1ID0gXCJERUxFR0JVUkVBVVwiLCAvLyBEw6lsw6lnYXRpb24gZHUgQnVyZWF1XG4gIERlbGVnc2VuYXQgPSBcIkRFTEVHU0VOQVRcIiwgLy8gRMOpbMOpZ2F0aW9uIHPDqW5hdG9yaWFsZVxuICBHYSA9IFwiR0FcIiwgLy8gR3JvdXBlIGQnYW1pdGnDqVxuICBHZSA9IFwiR0VcIiwgLy8gR3JvdXBlIGQnw6l0dWRlc1xuICBHZXZpID0gXCJHRVZJXCIsIC8vIEdyb3VwZSBkJ8OpdHVkZXMgw6Agdm9jYXRpb24gaW50ZXJuYXRpb25hbGVcbiAgR291dmVybmVtZW50ID0gXCJHT1VWRVJORU1FTlRcIiwgLy8gR291dmVybmVtZW50XG4gIEdwID0gXCJHUFwiLCAvLyBHcm91cGUgcG9saXRpcXVlXG4gIEdyb3VwZXNlbmF0ID0gXCJHUk9VUEVTRU5BVFwiLCAvLyBHcm91cGUgc8OpbmF0b3JpYWxcbiAgSGNqID0gXCJIQ0pcIiwgLy8gSGF1dGUgQ291ciBkZSBKdXN0aWNlXG4gIE1pbmlzdGVyZSA9IFwiTUlOSVNURVJFXCIsIC8vIE1pbmlzdMOocmVcbiAgTWlzZXZhbCA9IFwiTUlTRVZBTFwiLCAvLyBNaXNzaW9uIGQnw6l2YWx1YXRpb25cbiAgTWlzaW5mbyA9IFwiTUlTSU5GT1wiLCAvLyBNaXNzaW9uIGQnaW5mb3JtYXRpb25cbiAgTWlzaW5mb2NvbSA9IFwiTUlTSU5GT0NPTVwiLCAvLyBNaXNzaW9uIGQnaW5mb3JtYXRpb24gY29tbXVuZVxuICBNaXNpbmZvcHJlID0gXCJNSVNJTkZPUFJFXCIsIC8vIE1pc3Npb25zIGTigJlpbmZvcm1hdGlvbiBkZSBsYSBjb25mw6lyZW5jZSBkZXMgUHLDqXNpZGVudHNcbiAgT2ZmcGFyID0gXCJPRkZQQVJcIiwgLy8gT2ZmaWNlIHBhcmxlbWVudGFpcmUgb3UgZMOpbMOpZ2F0aW9uIG1peHRlXG4gIE9yZ2FpbnQgPSBcIk9SR0FJTlRcIiwgLy8gT3JnYW5pc21lIGludGVybmF0aW9uYWxcbiAgT3JnZXh0cGFybCA9IFwiT1JHRVhUUEFSTFwiLCAvLyBPcmdhbmlzbWUgZXh0cmEtcGFybGVtZW50YWlyZVxuICBQYXJwb2wgPSBcIlBBUlBPTFwiLCAvLyBQYXJ0aSBwb2xpdGlxdWVcbiAgUHJlc3JlcCA9IFwiUFJFU1JFUFwiLCAvLyBQcsOpc2lkZW5jZSBkZSBsYSBSw6lwdWJsaXF1ZVxuICBTZW5hdCA9IFwiU0VOQVRcIiwgLy8gU8OpbmF0XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZmVzc2lvbiB7XG4gIGxpYmVsbGVDb3VyYW50Pzogc3RyaW5nXG4gIHNvY1Byb2NJbnNlZTogU29jUHJvY0luc2VlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU29jUHJvY0luc2VlIHtcbiAgY2F0U29jUHJvPzogc3RyaW5nXG4gIGZhbVNvY1Bybz86IEZhbVNvY1Byb1xufVxuXG5leHBvcnQgZW51bSBGYW1Tb2NQcm8ge1xuICBBZ3JpY3VsdGV1cnNFeHBsb2l0YW50cyA9IFwiQWdyaWN1bHRldXJzIGV4cGxvaXRhbnRzXCIsXG4gIEFydGlzYW5zQ29tbWVyw6dhbnRzQ2hlZnNERW50cmVwcmlzZXMgPSBcIkFydGlzYW5zLCBjb21tZXLDp2FudHMsIGNoZWZzIGQnZW50cmVwcmlzZXNcIixcbiAgQXJ0aXNhbnNDb21tZXLDp2FudHNFdENoZWZzREVudHJlcHJpc2VBbmNpZW4gPSBcIkFydGlzYW5zLCBjb21tZXLDp2FudHMgZXQgY2hlZnMgZCdlbnRyZXByaXNlXCIsXG4gIEF1dHJlc1BlcnNvbm5lc1NhbnNBY3Rpdml0w6lQcm9mZXNzaW9ubmVsbGUgPSBcIkF1dHJlcyBwZXJzb25uZXMgc2FucyBhY3Rpdml0w6kgcHJvZmVzc2lvbm5lbGxlXCIsXG4gIENhZHJlc0V0UHJvZmVzc2lvbnNJbnRlbGxlY3R1ZWxsZXNTdXDDqXJpZXVyZXMgPSBcIkNhZHJlcyBldCBwcm9mZXNzaW9ucyBpbnRlbGxlY3R1ZWxsZXMgc3Vww6lyaWV1cmVzXCIsXG4gIEVtcGxvecOpcyA9IFwiRW1wbG95w6lzXCIsXG4gIE91dnJpZXJzID0gXCJPdXZyaWVyc1wiLFxuICBQcm9mZXNzaW9uc0ludGVybcOpZGlhaXJlcyA9IFwiUHJvZmVzc2lvbnMgaW50ZXJtw6lkaWFpcmVzXCIsXG4gIFByb2Zlc3Npb25zSW50ZXJtw6lkaWFpcmVzQW5jaWVuID0gXCJQcm9mZXNzaW9ucyBJbnRlcm3DqWRpYWlyZXNcIixcbiAgUmV0cmFpdMOpcyA9IFwiUmV0cmFpdMOpc1wiLFxuICBTYW5zUHJvZmVzc2lvbkTDqWNsYXLDqWUgPSBcIlNhbnMgcHJvZmVzc2lvbiBkw6ljbGFyw6llXCIsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVwb3J0IHtcbiAgdWlkOiBzdHJpbmdcbiAgY2hyb25vdGFnOiBzdHJpbmdcbiAgbGVnaXNsYXR1cmU6IHN0cmluZ1xuICByZWZBY3RldXI6IHN0cmluZ1xuICBkYXRlQ3JlYXRpb246IERhdGVcbiAgZGF0ZVB1YmxpY2F0aW9uOiBEYXRlXG4gIHBvcnRlZTogQ29kZUV0TGliZWxsZVxuICBsZWN0dXJlOiBDb2RlRXRMaWJlbGxlXG4gIGluc3RhbmNlOiBDb2RlRXRMaWJlbGxlXG4gIGNpYmxlOiBDaWJsZVxuICBleHBsaWNhdGlvbj86IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENpYmxlIHtcbiAgdHlwZTogQ29kZUV0TGliZWxsZVxuICByZWZlcmVuY2VUZXh0dWVsbGU6IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvZGVFdExpYmVsbGUge1xuICBjb2RlOiBzdHJpbmdcbiAgbGliZWxsZTogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3JnYW5lIHtcbiAgc2NoZW1hVmVyc2lvbj86IHN0cmluZ1xuICB4c2lUeXBlPzogVHlwZU9yZ2FuZVxuICB1aWQ6IHN0cmluZ1xuICBjb2RlVHlwZTogQ29kZVR5cGVPcmdhbmVcbiAgbGliZWxsZTogc3RyaW5nXG4gIGxpYmVsbGVFZGl0aW9uPzogc3RyaW5nXG4gIGxpYmVsbGVBYnJlZ2U6IHN0cmluZ1xuICBsaWJlbGxlQWJyZXY6IHN0cmluZ1xuICB2aU1vRGU6IFZpTW9EZVxuICBvcmdhbmVQYXJlbnRSZWY/OiBzdHJpbmcgLy8gUmVuYW1lZCBieSBUcmljb3RldXNlc1xuICBvcmdhbmVQYXJlbnQ/OiBPcmdhbmUgLy8gQWRkZWQgYnkgVHJpY290ZXVzZXNcbiAgb3JnYW5lUHJlY2VkZW50UmVmPzogc3RyaW5nXG4gIG9yZ2FuZVByZWNlZGVudD86IE9yZ2FuZSAvLyBBZGRlZCBieSBUcmljb3RldXNlc1xuICByZWdpbWU/OiBSZWdpbWVcbiAgbGVnaXNsYXR1cmU/OiBzdHJpbmdcbiAgc2VjcmV0YXJpYXQ/OiBTZWNyZXRhcmlhdFxuICBudW1lcm8/OiBzdHJpbmdcbiAgbGlldT86IE9yZ2FuZUxpZXVcbiAgcmVnaW1lSnVyaWRpcXVlPzogc3RyaW5nXG4gIHNpdGVJbnRlcm5ldD86IHN0cmluZ1xuICBub21icmVSZXVuaW9uc0FubnVlbGxlcz86IHN0cmluZ1xuICBwb3NpdGlvblBvbGl0aXF1ZT86IFBvc2l0aW9uUG9saXRpcXVlXG4gIHByZXNlYW5jZT86IHN0cmluZ1xuICBjb3VsZXVyQXNzb2NpZWU/OiBzdHJpbmdcbiAgbGlzdGVQYXlzPzogc3RyaW5nW11cbn1cblxuZXhwb3J0IGVudW0gVHlwZU9yZ2FuZSB7XG4gIEdyb3VwZVBvbGl0aXF1ZVR5cGUgPSBcIkdyb3VwZVBvbGl0aXF1ZV90eXBlXCIsXG4gIE9yZ2FuZUNpcmNvbnNjcmlwdGlvblR5cGUgPSBcIk9yZ2FuZUNpcmNvbnNjcmlwdGlvbl90eXBlXCIsXG4gIE9yZ2FuZUV4dGVybmVUeXBlID0gXCJPcmdhbmVFeHRlcm5lX1R5cGVcIixcbiAgT3JnYW5lRXh0cmFQYXJsZW1lbnRhaXJlVHlwZSA9IFwiT3JnYW5lRXh0cmFQYXJsZW1lbnRhaXJlX3R5cGVcIixcbiAgT3JnYW5lUGFybGVtZW50YWlyZUludGVybmF0aW9uYWwgPSBcIk9yZ2FuZVBhcmxlbWVudGFpcmVJbnRlcm5hdGlvbmFsXCIsXG4gIE9yZ2FuZVBhcmxlbWVudGFpcmVUeXBlID0gXCJPcmdhbmVQYXJsZW1lbnRhaXJlX1R5cGVcIixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPcmdhbmVMaWV1IHtcbiAgcmVnaW9uOiBSZWdpb25cbiAgZGVwYXJ0ZW1lbnQ6IERlcGFydGVtZW50XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVwYXJ0ZW1lbnQge1xuICBjb2RlTmF0dXJlRGVwPzogQ29kZU5hdHVyZURlcFxuICBjb2RlPzogc3RyaW5nXG4gIGxpYmVsbGU/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGVudW0gQ29kZU5hdHVyZURlcCB7XG4gIEggPSBcIkhcIixcbiAgTSA9IFwiTVwiLFxuICBPID0gXCJPXCIsXG4gIFQgPSBcIlRcIixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWdpb24ge1xuICB0eXBlPzogUmVnaW9uVHlwZVxuICBsaWJlbGxlPzogc3RyaW5nXG59XG5cbmV4cG9ydCBlbnVtIFBvc2l0aW9uUG9saXRpcXVlIHtcbiAgTWFqb3JpdGFpcmUgPSBcIk1ham9yaXRhaXJlXCIsXG4gIE1pbm9yaXRhaXJlID0gXCJNaW5vcml0YWlyZVwiLFxuICBPcHBvc2l0aW9uID0gXCJPcHBvc2l0aW9uXCIsXG59XG5cbmV4cG9ydCBlbnVtIFJlZ2ltZSB7XG4gIEFzc2VtYmzDqWVDb25zdWx0YXRpdmVQcm92aXNvaXJlID0gXCJBc3NlbWJsw6llIGNvbnN1bHRhdGl2ZSBwcm92aXNvaXJlXCIsXG4gIEFzc2VtYmzDqWVzTmF0aW9uYWxlc0NvbnN0aXR1YW50ZXMgPSBcIkFzc2VtYmzDqWVzIG5hdGlvbmFsZXMgY29uc3RpdHVhbnRlc1wiLFxuICBUaGUzw4htZVLDqXB1YmxpcXVlID0gXCIzw6htZSBSw6lwdWJsaXF1ZVwiLFxuICBUaGU0w4htZVLDqXB1YmxpcXVlID0gXCI0w6htZSBSw6lwdWJsaXF1ZVwiLFxuICBUaGU1w4htZVLDqXB1YmxpcXVlID0gXCI1w6htZSBSw6lwdWJsaXF1ZVwiLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlY3JldGFyaWF0IHtcbiAgc2VjcmV0YWlyZTAxPzogc3RyaW5nXG4gIHNlY3JldGFpcmUwMj86IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFZpTW9EZSB7XG4gIGRhdGVEZWJ1dD86IERhdGVcbiAgZGF0ZUFncmVtZW50PzogRGF0ZVxuICBkYXRlRmluPzogRGF0ZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBob3RvIHtcbiAgY2hlbWluOiBzdHJpbmdcbiAgY2hlbWluTW9zYWlxdWU6IHN0cmluZ1xuICBoYXV0ZXVyOiBudW1iZXJcbiAgbGFyZ2V1cjogbnVtYmVyXG4gIHhNb3NhaXF1ZTogbnVtYmVyXG4gIHlNb3NhaXF1ZTogbnVtYmVyXG59XG5cbi8vIENvbnZlcnRzIEpTT04gc3RyaW5ncyB0by9mcm9tIHlvdXIgdHlwZXNcbi8vIGFuZCBhc3NlcnRzIHRoZSByZXN1bHRzIG9mIEpTT04ucGFyc2UgYXQgcnVudGltZVxuZXhwb3J0IGNsYXNzIENvbnZlcnQge1xuICBwdWJsaWMgc3RhdGljIHRvQWN0ZXVyc0V0T3JnYW5lcyhqc29uOiBzdHJpbmcpOiBBY3RldXJzRXRPcmdhbmVzIHtcbiAgICByZXR1cm4gY2FzdChKU09OLnBhcnNlKGpzb24pLCByKFwiQWN0ZXVyc0V0T3JnYW5lc1wiKSlcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgYWN0ZXVyc0V0T3JnYW5lc1RvSnNvbih2YWx1ZTogQWN0ZXVyc0V0T3JnYW5lcyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHVuY2FzdCh2YWx1ZSwgcihcIkFjdGV1cnNFdE9yZ2FuZXNcIikpLCBudWxsLCAyKVxuICB9XG5cbiAgcHVibGljIHN0YXRpYyB0b0FjdGV1cihqc29uOiBzdHJpbmcpOiBBY3RldXIge1xuICAgIHJldHVybiBjYXN0KEpTT04ucGFyc2UoanNvbiksIHIoXCJBY3RldXJcIikpXG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGFjdGV1clRvSnNvbih2YWx1ZTogQWN0ZXVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodW5jYXN0KHZhbHVlLCByKFwiQWN0ZXVyXCIpKSwgbnVsbCwgMilcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgdG9PcmdhbmUoanNvbjogc3RyaW5nKTogT3JnYW5lIHtcbiAgICByZXR1cm4gY2FzdChKU09OLnBhcnNlKGpzb24pLCByKFwiT3JnYW5lXCIpKVxuICB9XG5cbiAgcHVibGljIHN0YXRpYyBvcmdhbmVUb0pzb24odmFsdWU6IE9yZ2FuZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHVuY2FzdCh2YWx1ZSwgcihcIk9yZ2FuZVwiKSksIG51bGwsIDIpXG4gIH1cbn1cblxuZnVuY3Rpb24gaW52YWxpZFZhbHVlKHR5cDogYW55LCB2YWw6IGFueSwga2V5OiBhbnkgPSBcIlwiKTogbmV2ZXIge1xuICBpZiAoa2V5KSB7XG4gICAgdGhyb3cgRXJyb3IoXG4gICAgICBgSW52YWxpZCB2YWx1ZSBmb3Iga2V5IFwiJHtrZXl9XCIuIEV4cGVjdGVkIHR5cGUgJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgdHlwLFxuICAgICAgKX0gYnV0IGdvdCAke0pTT04uc3RyaW5naWZ5KHZhbCl9YCxcbiAgICApXG4gIH1cbiAgdGhyb3cgRXJyb3IoXG4gICAgYEludmFsaWQgdmFsdWUgJHtKU09OLnN0cmluZ2lmeSh2YWwpfSBmb3IgdHlwZSAke0pTT04uc3RyaW5naWZ5KHR5cCl9YCxcbiAgKVxufVxuXG5mdW5jdGlvbiBqc29uVG9KU1Byb3BzKHR5cDogYW55KTogYW55IHtcbiAgaWYgKHR5cC5qc29uVG9KUyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgY29uc3QgbWFwOiBhbnkgPSB7fVxuICAgIHR5cC5wcm9wcy5mb3JFYWNoKChwOiBhbnkpID0+IChtYXBbcC5qc29uXSA9IHsga2V5OiBwLmpzLCB0eXA6IHAudHlwIH0pKVxuICAgIHR5cC5qc29uVG9KUyA9IG1hcFxuICB9XG4gIHJldHVybiB0eXAuanNvblRvSlNcbn1cblxuZnVuY3Rpb24ganNUb0pTT05Qcm9wcyh0eXA6IGFueSk6IGFueSB7XG4gIGlmICh0eXAuanNUb0pTT04gPT09IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IG1hcDogYW55ID0ge31cbiAgICB0eXAucHJvcHMuZm9yRWFjaCgocDogYW55KSA9PiAobWFwW3AuanNdID0geyBrZXk6IHAuanNvbiwgdHlwOiBwLnR5cCB9KSlcbiAgICB0eXAuanNUb0pTT04gPSBtYXBcbiAgfVxuICByZXR1cm4gdHlwLmpzVG9KU09OXG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybSh2YWw6IGFueSwgdHlwOiBhbnksIGdldFByb3BzOiBhbnksIGtleTogYW55ID0gXCJcIik6IGFueSB7XG4gIGZ1bmN0aW9uIHRyYW5zZm9ybVByaW1pdGl2ZSh0eXA6IHN0cmluZywgdmFsOiBhbnkpOiBhbnkge1xuICAgIGlmICh0eXBlb2YgdHlwID09PSB0eXBlb2YgdmFsKSByZXR1cm4gdmFsXG4gICAgcmV0dXJuIGludmFsaWRWYWx1ZSh0eXAsIHZhbCwga2V5KVxuICB9XG5cbiAgZnVuY3Rpb24gdHJhbnNmb3JtVW5pb24odHlwczogYW55W10sIHZhbDogYW55KTogYW55IHtcbiAgICAvLyB2YWwgbXVzdCB2YWxpZGF0ZSBhZ2FpbnN0IG9uZSB0eXAgaW4gdHlwc1xuICAgIGNvbnN0IGwgPSB0eXBzLmxlbmd0aFxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbDsgaSsrKSB7XG4gICAgICBjb25zdCB0eXAgPSB0eXBzW2ldXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gdHJhbnNmb3JtKHZhbCwgdHlwLCBnZXRQcm9wcylcbiAgICAgIH0gY2F0Y2ggKF8pIHt9XG4gICAgfVxuICAgIHJldHVybiBpbnZhbGlkVmFsdWUodHlwcywgdmFsKVxuICB9XG5cbiAgZnVuY3Rpb24gdHJhbnNmb3JtRW51bShjYXNlczogc3RyaW5nW10sIHZhbDogYW55KTogYW55IHtcbiAgICBpZiAoY2FzZXMuaW5kZXhPZih2YWwpICE9PSAtMSkgcmV0dXJuIHZhbFxuICAgIHJldHVybiBpbnZhbGlkVmFsdWUoY2FzZXMsIHZhbClcbiAgfVxuXG4gIGZ1bmN0aW9uIHRyYW5zZm9ybUFycmF5KHR5cDogYW55LCB2YWw6IGFueSk6IGFueSB7XG4gICAgLy8gdmFsIG11c3QgYmUgYW4gYXJyYXkgd2l0aCBubyBpbnZhbGlkIGVsZW1lbnRzXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbCkpIHJldHVybiBpbnZhbGlkVmFsdWUoXCJhcnJheVwiLCB2YWwpXG4gICAgcmV0dXJuIHZhbC5tYXAoKGVsKSA9PiB0cmFuc2Zvcm0oZWwsIHR5cCwgZ2V0UHJvcHMpKVxuICB9XG5cbiAgZnVuY3Rpb24gdHJhbnNmb3JtRGF0ZSh2YWw6IGFueSk6IGFueSB7XG4gICAgaWYgKHZhbCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gICAgY29uc3QgZCA9IG5ldyBEYXRlKHZhbClcbiAgICBpZiAoaXNOYU4oZC52YWx1ZU9mKCkpKSB7XG4gICAgICByZXR1cm4gaW52YWxpZFZhbHVlKFwiRGF0ZVwiLCB2YWwpXG4gICAgfVxuICAgIHJldHVybiBkXG4gIH1cblxuICBmdW5jdGlvbiB0cmFuc2Zvcm1PYmplY3QoXG4gICAgcHJvcHM6IHsgW2s6IHN0cmluZ106IGFueSB9LFxuICAgIGFkZGl0aW9uYWw6IGFueSxcbiAgICB2YWw6IGFueSxcbiAgKTogYW55IHtcbiAgICBpZiAodmFsID09PSBudWxsIHx8IHR5cGVvZiB2YWwgIT09IFwib2JqZWN0XCIgfHwgQXJyYXkuaXNBcnJheSh2YWwpKSB7XG4gICAgICByZXR1cm4gaW52YWxpZFZhbHVlKFwib2JqZWN0XCIsIHZhbClcbiAgICB9XG4gICAgY29uc3QgcmVzdWx0OiBhbnkgPSB7fVxuICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHByb3BzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGNvbnN0IHByb3AgPSBwcm9wc1trZXldXG4gICAgICBjb25zdCB2ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbCwga2V5KVxuICAgICAgICA/IHZhbFtrZXldXG4gICAgICAgIDogdW5kZWZpbmVkXG4gICAgICByZXN1bHRbcHJvcC5rZXldID0gdHJhbnNmb3JtKHYsIHByb3AudHlwLCBnZXRQcm9wcywgcHJvcC5rZXkpXG4gICAgfSlcbiAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh2YWwpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocHJvcHMsIGtleSkpIHtcbiAgICAgICAgcmVzdWx0W2tleV0gPSB0cmFuc2Zvcm0odmFsW2tleV0sIGFkZGl0aW9uYWwsIGdldFByb3BzLCBrZXkpXG4gICAgICB9XG4gICAgfSlcbiAgICByZXR1cm4gcmVzdWx0XG4gIH1cblxuICBpZiAodHlwID09PSBcImFueVwiKSByZXR1cm4gdmFsXG4gIGlmICh0eXAgPT09IG51bGwpIHtcbiAgICBpZiAodmFsID09PSBudWxsKSByZXR1cm4gdmFsXG4gICAgcmV0dXJuIGludmFsaWRWYWx1ZSh0eXAsIHZhbClcbiAgfVxuICAvLyBpZiAodHlwID09PSBmYWxzZSkgcmV0dXJuIGludmFsaWRWYWx1ZSh0eXAsIHZhbClcbiAgd2hpbGUgKHR5cGVvZiB0eXAgPT09IFwib2JqZWN0XCIgJiYgdHlwLnJlZiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdHlwID0gdHlwZU1hcFt0eXAucmVmXVxuICB9XG4gIGlmIChBcnJheS5pc0FycmF5KHR5cCkpIHJldHVybiB0cmFuc2Zvcm1FbnVtKHR5cCwgdmFsKVxuICBpZiAodHlwZW9mIHR5cCA9PT0gXCJvYmplY3RcIikge1xuICAgIHJldHVybiB0eXAuaGFzT3duUHJvcGVydHkoXCJ1bmlvbk1lbWJlcnNcIilcbiAgICAgID8gdHJhbnNmb3JtVW5pb24odHlwLnVuaW9uTWVtYmVycywgdmFsKVxuICAgICAgOiB0eXAuaGFzT3duUHJvcGVydHkoXCJhcnJheUl0ZW1zXCIpXG4gICAgICAgID8gdHJhbnNmb3JtQXJyYXkodHlwLmFycmF5SXRlbXMsIHZhbClcbiAgICAgICAgOiB0eXAuaGFzT3duUHJvcGVydHkoXCJwcm9wc1wiKVxuICAgICAgICAgID8gdHJhbnNmb3JtT2JqZWN0KGdldFByb3BzKHR5cCksIHR5cC5hZGRpdGlvbmFsLCB2YWwpXG4gICAgICAgICAgOiBpbnZhbGlkVmFsdWUodHlwLCB2YWwpXG4gIH1cbiAgLy8gTnVtYmVycyBjYW4gYmUgcGFyc2VkIGJ5IERhdGUgYnV0IHNob3VsZG4ndCBiZS5cbiAgaWYgKHR5cCA9PT0gRGF0ZSAmJiB0eXBlb2YgdmFsICE9PSBcIm51bWJlclwiKSByZXR1cm4gdHJhbnNmb3JtRGF0ZSh2YWwpXG4gIHJldHVybiB0cmFuc2Zvcm1QcmltaXRpdmUodHlwLCB2YWwpXG59XG5cbmZ1bmN0aW9uIGNhc3Q8VD4odmFsOiBhbnksIHR5cDogYW55KTogVCB7XG4gIHJldHVybiB0cmFuc2Zvcm0odmFsLCB0eXAsIGpzb25Ub0pTUHJvcHMpXG59XG5cbmZ1bmN0aW9uIHVuY2FzdDxUPih2YWw6IFQsIHR5cDogYW55KTogYW55IHtcbiAgcmV0dXJuIHRyYW5zZm9ybSh2YWwsIHR5cCwganNUb0pTT05Qcm9wcylcbn1cblxuZnVuY3Rpb24gYSh0eXA6IGFueSkge1xuICByZXR1cm4geyBhcnJheUl0ZW1zOiB0eXAgfVxufVxuXG5mdW5jdGlvbiB1KC4uLnR5cHM6IGFueVtdKSB7XG4gIHJldHVybiB7IHVuaW9uTWVtYmVyczogdHlwcyB9XG59XG5cbmZ1bmN0aW9uIG8ocHJvcHM6IGFueVtdLCBhZGRpdGlvbmFsOiBhbnkpIHtcbiAgcmV0dXJuIHsgcHJvcHMsIGFkZGl0aW9uYWwgfVxufVxuXG4vLyBmdW5jdGlvbiBtKGFkZGl0aW9uYWw6IGFueSkge1xuLy8gICByZXR1cm4geyBwcm9wczogW10sIGFkZGl0aW9uYWwgfVxuLy8gfVxuXG5mdW5jdGlvbiByKG5hbWU6IHN0cmluZykge1xuICByZXR1cm4geyByZWY6IG5hbWUgfVxufVxuXG5jb25zdCB0eXBlTWFwOiBhbnkgPSB7XG4gIEFjdGV1cnNFdE9yZ2FuZXM6IG8oXG4gICAgW1xuICAgICAgeyBqc29uOiBcIm9yZ2FuZXNcIiwganM6IFwib3JnYW5lc1wiLCB0eXA6IGEocihcIk9yZ2FuZVwiKSkgfSxcbiAgICAgIHsganNvbjogXCJhY3RldXJzXCIsIGpzOiBcImFjdGV1cnNcIiwgdHlwOiBhKHIoXCJBY3RldXJcIikpIH0sXG4gICAgXSxcbiAgICBmYWxzZSxcbiAgKSxcbiAgQWN0ZXVyOiBvKFxuICAgIFtcbiAgICAgIHsganNvbjogXCJzY2hlbWFWZXJzaW9uXCIsIGpzOiBcInNjaGVtYVZlcnNpb25cIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgIHsganNvbjogXCJ1aWRcIiwganM6IFwidWlkXCIsIHR5cDogXCJcIiB9LFxuICAgICAgeyBqc29uOiBcImV0YXRDaXZpbFwiLCBqczogXCJldGF0Q2l2aWxcIiwgdHlwOiByKFwiRXRhdENpdmlsXCIpIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwicHJvZmVzc2lvblwiLFxuICAgICAgICBqczogXCJwcm9mZXNzaW9uXCIsXG4gICAgICAgIHR5cDogdSh1bmRlZmluZWQsIHIoXCJQcm9mZXNzaW9uXCIpKSxcbiAgICAgIH0sXG4gICAgICB7IGpzb246IFwidXJpSGF0dnBcIiwganM6IFwidXJpSGF0dnBcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJhZHJlc3Nlc1wiLFxuICAgICAgICBqczogXCJhZHJlc3Nlc1wiLFxuICAgICAgICB0eXA6IHUodW5kZWZpbmVkLCBhKHUocihcIkFkcmVzc2VFbGVjdHJvbmlxdWVcIiksIHIoXCJBZHJlc3NlUG9zdGFsZVwiKSkpKSxcbiAgICAgIH0sXG4gICAgICB7IGpzb246IFwibWFuZGF0c1wiLCBqczogXCJtYW5kYXRzXCIsIHR5cDogdSh1bmRlZmluZWQsIGEocihcIk1hbmRhdFwiKSkpIH0sXG4gICAgICB7IGpzb246IFwicGhvdG9cIiwganM6IFwicGhvdG9cIiwgdHlwOiB1KHVuZGVmaW5lZCwgcihcIlBob3RvXCIpKSB9LFxuICAgICAgeyBqc29uOiBcImRlcG9ydHNcIiwganM6IFwiZGVwb3J0c1wiLCB0eXA6IHUodW5kZWZpbmVkLCBhKHIoXCJEZXBvcnRcIikpKSB9LFxuICAgIF0sXG4gICAgZmFsc2UsXG4gICksXG4gIEFkcmVzc2VFbGVjdHJvbmlxdWU6IG8oXG4gICAgW1xuICAgICAgeyBqc29uOiBcInhzaVR5cGVcIiwganM6IFwieHNpVHlwZVwiLCB0eXA6IFwiXCIgfSxcbiAgICAgIHsganNvbjogXCJ1aWRcIiwganM6IFwidWlkXCIsIHR5cDogXCJcIiB9LFxuICAgICAgeyBqc29uOiBcInR5cGVcIiwganM6IFwidHlwZVwiLCB0eXA6IFwiXCIgfSxcbiAgICAgIHsganNvbjogXCJ0eXBlTGliZWxsZVwiLCBqczogXCJ0eXBlTGliZWxsZVwiLCB0eXA6IFwiXCIgfSxcbiAgICAgIHsganNvbjogXCJwb2lkc1wiLCBqczogXCJwb2lkc1wiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgICAge1xuICAgICAgICBqc29uOiBcImFkcmVzc2VEZVJhdHRhY2hlbWVudFwiLFxuICAgICAgICBqczogXCJhZHJlc3NlRGVSYXR0YWNoZW1lbnRcIixcbiAgICAgICAgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIiksXG4gICAgICB9LFxuICAgICAgeyBqc29uOiBcInZhbEVsZWNcIiwganM6IFwidmFsRWxlY1wiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgIF0sXG4gICAgZmFsc2UsXG4gICksXG4gIEFkcmVzc2VQb3N0YWxlOiBvKFxuICAgIFtcbiAgICAgIHsganNvbjogXCJ4c2lUeXBlXCIsIGpzOiBcInhzaVR5cGVcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwidWlkXCIsIGpzOiBcInVpZFwiLCB0eXA6IFwiXCIgfSxcbiAgICAgIHsganNvbjogXCJ0eXBlXCIsIGpzOiBcInR5cGVcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwidHlwZUxpYmVsbGVcIiwganM6IFwidHlwZUxpYmVsbGVcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwicG9pZHNcIiwganM6IFwicG9pZHNcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgIHsganNvbjogXCJpbnRpdHVsZVwiLCBqczogXCJpbnRpdHVsZVwiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgICAgeyBqc29uOiBcIm51bWVyb1J1ZVwiLCBqczogXCJudW1lcm9SdWVcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgIHsganNvbjogXCJub21SdWVcIiwganM6IFwibm9tUnVlXCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwiY29tcGxlbWVudEFkcmVzc2VcIixcbiAgICAgICAganM6IFwiY29tcGxlbWVudEFkcmVzc2VcIixcbiAgICAgICAgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIiksXG4gICAgICB9LFxuICAgICAgeyBqc29uOiBcImNvZGVQb3N0YWxcIiwganM6IFwiY29kZVBvc3RhbFwiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgICAgeyBqc29uOiBcInZpbGxlXCIsIGpzOiBcInZpbGxlXCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgXSxcbiAgICBmYWxzZSxcbiAgKSxcbiAgRXRhdENpdmlsOiBvKFxuICAgIFtcbiAgICAgIHsganNvbjogXCJpZGVudFwiLCBqczogXCJpZGVudFwiLCB0eXA6IHIoXCJJZGVudFwiKSB9LFxuICAgICAgeyBqc29uOiBcImluZm9OYWlzc2FuY2VcIiwganM6IFwiaW5mb05haXNzYW5jZVwiLCB0eXA6IHIoXCJJbmZvTmFpc3NhbmNlXCIpIH0sXG4gICAgICB7IGpzb246IFwiZGF0ZURlY2VzXCIsIGpzOiBcImRhdGVEZWNlc1wiLCB0eXA6IHUodW5kZWZpbmVkLCBEYXRlKSB9LFxuICAgIF0sXG4gICAgZmFsc2UsXG4gICksXG4gIElkZW50OiBvKFxuICAgIFtcbiAgICAgIHsganNvbjogXCJjaXZcIiwganM6IFwiY2l2XCIsIHR5cDogcihcIkNpdlwiKSB9LFxuICAgICAgeyBqc29uOiBcInByZW5vbVwiLCBqczogXCJwcmVub21cIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwibm9tXCIsIGpzOiBcIm5vbVwiLCB0eXA6IFwiXCIgfSxcbiAgICAgIHsganNvbjogXCJhbHBoYVwiLCBqczogXCJhbHBoYVwiLCB0eXA6IFwiXCIgfSxcbiAgICAgIHsganNvbjogXCJ0cmlncmFtbWVcIiwganM6IFwidHJpZ3JhbW1lXCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgXSxcbiAgICBmYWxzZSxcbiAgKSxcbiAgSW5mb05haXNzYW5jZTogbyhcbiAgICBbXG4gICAgICB7IGpzb246IFwiZGF0ZU5haXNcIiwganM6IFwiZGF0ZU5haXNcIiwgdHlwOiB1KHVuZGVmaW5lZCwgRGF0ZSkgfSxcbiAgICAgIHsganNvbjogXCJ2aWxsZU5haXNcIiwganM6IFwidmlsbGVOYWlzXCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICB7IGpzb246IFwiZGVwTmFpc1wiLCBqczogXCJkZXBOYWlzXCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICB7IGpzb246IFwicGF5c05haXNcIiwganM6IFwicGF5c05haXNcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICBdLFxuICAgIGZhbHNlLFxuICApLFxuICBNYW5kYXQ6IG8oXG4gICAgW1xuICAgICAgeyBqc29uOiBcInhzaVR5cGVcIiwganM6IFwieHNpVHlwZVwiLCB0eXA6IHUodW5kZWZpbmVkLCByKFwiVHlwZU1hbmRhdFwiKSkgfSxcbiAgICAgIHsganNvbjogXCJ1aWRcIiwganM6IFwidWlkXCIsIHR5cDogXCJcIiB9LFxuICAgICAgeyBqc29uOiBcImFjdGV1clJlZlwiLCBqczogXCJhY3RldXJSZWZcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwibGVnaXNsYXR1cmVcIiwganM6IFwibGVnaXNsYXR1cmVcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgIHsganNvbjogXCJ0eXBlT3JnYW5lXCIsIGpzOiBcInR5cGVPcmdhbmVcIiwgdHlwOiByKFwiQ29kZVR5cGVPcmdhbmVcIikgfSxcbiAgICAgIHsganNvbjogXCJkYXRlRGVidXRcIiwganM6IFwiZGF0ZURlYnV0XCIsIHR5cDogRGF0ZSB9LFxuICAgICAge1xuICAgICAgICBqc29uOiBcImRhdGVQdWJsaWNhdGlvblwiLFxuICAgICAgICBqczogXCJkYXRlUHVibGljYXRpb25cIixcbiAgICAgICAgdHlwOiB1KHVuZGVmaW5lZCwgRGF0ZSksXG4gICAgICB9LFxuICAgICAgeyBqc29uOiBcImRhdGVGaW5cIiwganM6IFwiZGF0ZUZpblwiLCB0eXA6IHUodW5kZWZpbmVkLCBEYXRlKSB9LFxuICAgICAgeyBqc29uOiBcInByZXNlYW5jZVwiLCBqczogXCJwcmVzZWFuY2VcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgIHsganNvbjogXCJub21pblByaW5jaXBhbGVcIiwganM6IFwibm9taW5QcmluY2lwYWxlXCIsIHR5cDogXCJcIiB9LFxuICAgICAgeyBqc29uOiBcImluZm9zUXVhbGl0ZVwiLCBqczogXCJpbmZvc1F1YWxpdGVcIiwgdHlwOiByKFwiSW5mb3NRdWFsaXRlXCIpIH0sXG4gICAgICB7IGpzb246IFwib3JnYW5lc1JlZnNcIiwganM6IFwib3JnYW5lc1JlZnNcIiwgdHlwOiBhKFwiXCIpIH0sXG4gICAgICB7IGpzb246IFwic3VwcGxlYW50XCIsIGpzOiBcInN1cHBsZWFudFwiLCB0eXA6IHUodW5kZWZpbmVkLCByKFwiU3VwcGxlYW50XCIpKSB9LFxuICAgICAgeyBqc29uOiBcImVsZWN0aW9uXCIsIGpzOiBcImVsZWN0aW9uXCIsIHR5cDogdSh1bmRlZmluZWQsIHIoXCJFbGVjdGlvblwiKSkgfSxcbiAgICAgIHsganNvbjogXCJtYW5kYXR1cmVcIiwganM6IFwibWFuZGF0dXJlXCIsIHR5cDogdSh1bmRlZmluZWQsIHIoXCJNYW5kYXR1cmVcIikpIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwiY29sbGFib3JhdGV1cnNcIixcbiAgICAgICAganM6IFwiY29sbGFib3JhdGV1cnNcIixcbiAgICAgICAgdHlwOiB1KHVuZGVmaW5lZCwgYShyKFwiQ29sbGFib3JhdGV1clwiKSkpLFxuICAgICAgfSxcbiAgICAgIHsganNvbjogXCJsaWJlbGxlXCIsIGpzOiBcImxpYmVsbGVcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJtaXNzaW9uU3VpdmFudGVSZWZcIixcbiAgICAgICAganM6IFwibWlzc2lvblN1aXZhbnRlUmVmXCIsXG4gICAgICAgIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJtaXNzaW9uUHJlY2VkZW50ZVJlZlwiLFxuICAgICAgICBqczogXCJtaXNzaW9uUHJlY2VkZW50ZVJlZlwiLFxuICAgICAgICB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBmYWxzZSxcbiAgKSxcbiAgQ29sbGFib3JhdGV1cjogbyhcbiAgICBbXG4gICAgICB7IGpzb246IFwicXVhbGl0ZVwiLCBqczogXCJxdWFsaXRlXCIsIHR5cDogdSh1bmRlZmluZWQsIHIoXCJDaXZcIikpIH0sXG4gICAgICB7IGpzb246IFwicHJlbm9tXCIsIGpzOiBcInByZW5vbVwiLCB0eXA6IFwiXCIgfSxcbiAgICAgIHsganNvbjogXCJub21cIiwganM6IFwibm9tXCIsIHR5cDogXCJcIiB9LFxuICAgIF0sXG4gICAgZmFsc2UsXG4gICksXG4gIEVsZWN0aW9uOiBvKFxuICAgIFtcbiAgICAgIHsganNvbjogXCJsaWV1XCIsIGpzOiBcImxpZXVcIiwgdHlwOiByKFwiTGlldVwiKSB9LFxuICAgICAgeyBqc29uOiBcImNhdXNlTWFuZGF0XCIsIGpzOiBcImNhdXNlTWFuZGF0XCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwicmVmQ2lyY29uc2NyaXB0aW9uXCIsXG4gICAgICAgIGpzOiBcInJlZkNpcmNvbnNjcmlwdGlvblwiLFxuICAgICAgICB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBmYWxzZSxcbiAgKSxcbiAgTGlldTogbyhcbiAgICBbXG4gICAgICB7IGpzb246IFwicmVnaW9uXCIsIGpzOiBcInJlZ2lvblwiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgICAge1xuICAgICAgICBqc29uOiBcInJlZ2lvblR5cGVcIixcbiAgICAgICAganM6IFwicmVnaW9uVHlwZVwiLFxuICAgICAgICB0eXA6IHUodW5kZWZpbmVkLCByKFwiUmVnaW9uVHlwZVwiKSksXG4gICAgICB9LFxuICAgICAgeyBqc29uOiBcImRlcGFydGVtZW50XCIsIGpzOiBcImRlcGFydGVtZW50XCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICB7IGpzb246IFwibnVtRGVwYXJ0ZW1lbnRcIiwganM6IFwibnVtRGVwYXJ0ZW1lbnRcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgIHsganNvbjogXCJudW1DaXJjb1wiLCBqczogXCJudW1DaXJjb1wiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgIF0sXG4gICAgZmFsc2UsXG4gICksXG4gIEluZm9zUXVhbGl0ZTogbyhcbiAgICBbXG4gICAgICB7IGpzb246IFwiY29kZVF1YWxpdGVcIiwganM6IFwiY29kZVF1YWxpdGVcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgIHsganNvbjogXCJsaWJRdWFsaXRlXCIsIGpzOiBcImxpYlF1YWxpdGVcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwibGliUXVhbGl0ZVNleFwiLCBqczogXCJsaWJRdWFsaXRlU2V4XCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgXSxcbiAgICBmYWxzZSxcbiAgKSxcbiAgTWFuZGF0dXJlOiBvKFxuICAgIFtcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJkYXRlUHJpc2VGb25jdGlvblwiLFxuICAgICAgICBqczogXCJkYXRlUHJpc2VGb25jdGlvblwiLFxuICAgICAgICB0eXA6IHUodW5kZWZpbmVkLCBEYXRlKSxcbiAgICAgIH0sXG4gICAgICB7IGpzb246IFwiY2F1c2VGaW5cIiwganM6IFwiY2F1c2VGaW5cIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJwcmVtaWVyZUVsZWN0aW9uXCIsXG4gICAgICAgIGpzOiBcInByZW1pZXJlRWxlY3Rpb25cIixcbiAgICAgICAgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIiksXG4gICAgICB9LFxuICAgICAgeyBqc29uOiBcInBsYWNlSGVtaWN5Y2xlXCIsIGpzOiBcInBsYWNlSGVtaWN5Y2xlXCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwibWFuZGF0UmVtcGxhY2VSZWZcIixcbiAgICAgICAganM6IFwibWFuZGF0UmVtcGxhY2VSZWZcIixcbiAgICAgICAgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIiksXG4gICAgICB9LFxuICAgICAgeyBqc29uOiBcIm1hdHJpY3VsZVZvdGVcIiwganM6IFwibWF0cmljdWxlVm90ZVwiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgIF0sXG4gICAgZmFsc2UsXG4gICksXG4gIFN1cHBsZWFudDogbyhcbiAgICBbXG4gICAgICB7IGpzb246IFwiZGF0ZURlYnV0XCIsIGpzOiBcImRhdGVEZWJ1dFwiLCB0eXA6IERhdGUgfSxcbiAgICAgIHsganNvbjogXCJkYXRlRmluXCIsIGpzOiBcImRhdGVGaW5cIiwgdHlwOiB1KHVuZGVmaW5lZCwgRGF0ZSkgfSxcbiAgICAgIHsganNvbjogXCJzdXBwbGVhbnRSZWZcIiwganM6IFwic3VwcGxlYW50UmVmXCIsIHR5cDogXCJcIiB9LFxuICAgIF0sXG4gICAgZmFsc2UsXG4gICksXG4gIFByb2Zlc3Npb246IG8oXG4gICAgW1xuICAgICAgeyBqc29uOiBcImxpYmVsbGVDb3VyYW50XCIsIGpzOiBcImxpYmVsbGVDb3VyYW50XCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICB7IGpzb246IFwic29jUHJvY0luc2VlXCIsIGpzOiBcInNvY1Byb2NJbnNlZVwiLCB0eXA6IHIoXCJTb2NQcm9jSW5zZWVcIikgfSxcbiAgICBdLFxuICAgIGZhbHNlLFxuICApLFxuICBTb2NQcm9jSW5zZWU6IG8oXG4gICAgW1xuICAgICAgeyBqc29uOiBcImNhdFNvY1Byb1wiLCBqczogXCJjYXRTb2NQcm9cIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgIHsganNvbjogXCJmYW1Tb2NQcm9cIiwganM6IFwiZmFtU29jUHJvXCIsIHR5cDogdSh1bmRlZmluZWQsIHIoXCJGYW1Tb2NQcm9cIikpIH0sXG4gICAgXSxcbiAgICBmYWxzZSxcbiAgKSxcbiAgRGVwb3J0OiBvKFxuICAgIFtcbiAgICAgIHsganNvbjogXCJ1aWRcIiwganM6IFwidWlkXCIsIHR5cDogXCJcIiB9LFxuICAgICAgeyBqc29uOiBcImNocm9ub3RhZ1wiLCBqczogXCJjaHJvbm90YWdcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwibGVnaXNsYXR1cmVcIiwganM6IFwibGVnaXNsYXR1cmVcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwicmVmQWN0ZXVyXCIsIGpzOiBcInJlZkFjdGV1clwiLCB0eXA6IFwiXCIgfSxcbiAgICAgIHsganNvbjogXCJkYXRlQ3JlYXRpb25cIiwganM6IFwiZGF0ZUNyZWF0aW9uXCIsIHR5cDogRGF0ZSB9LFxuICAgICAgeyBqc29uOiBcImRhdGVQdWJsaWNhdGlvblwiLCBqczogXCJkYXRlUHVibGljYXRpb25cIiwgdHlwOiBEYXRlIH0sXG4gICAgICB7IGpzb246IFwicG9ydGVlXCIsIGpzOiBcInBvcnRlZVwiLCB0eXA6IHIoXCJDb2RlRXRMaWJlbGxlXCIpIH0sXG4gICAgICB7IGpzb246IFwibGVjdHVyZVwiLCBqczogXCJsZWN0dXJlXCIsIHR5cDogcihcIkNvZGVFdExpYmVsbGVcIikgfSxcbiAgICAgIHsganNvbjogXCJpbnN0YW5jZVwiLCBqczogXCJpbnN0YW5jZVwiLCB0eXA6IHIoXCJDb2RlRXRMaWJlbGxlXCIpIH0sXG4gICAgICB7IGpzb246IFwiY2libGVcIiwganM6IFwiY2libGVcIiwgdHlwOiByKFwiQ2libGVcIikgfSxcbiAgICAgIHsganNvbjogXCJleHBsaWNhdGlvblwiLCBqczogXCJleHBsaWNhdGlvblwiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgIF0sXG4gICAgZmFsc2UsXG4gICksXG4gIENpYmxlOiBvKFxuICAgIFtcbiAgICAgIHsganNvbjogXCJ0eXBlXCIsIGpzOiBcInR5cGVcIiwgdHlwOiByKFwiQ29kZUV0TGliZWxsZVwiKSB9LFxuICAgICAgeyBqc29uOiBcInJlZmVyZW5jZVRleHR1ZWxsZVwiLCBqczogXCJyZWZlcmVuY2VUZXh0dWVsbGVcIiwgdHlwOiBcIlwiIH0sXG4gICAgXSxcbiAgICBmYWxzZSxcbiAgKSxcbiAgQ29kZUV0TGliZWxsZTogbyhcbiAgICBbXG4gICAgICB7IGpzb246IFwiY29kZVwiLCBqczogXCJjb2RlXCIsIHR5cDogXCJcIiB9LFxuICAgICAgeyBqc29uOiBcImxpYmVsbGVcIiwganM6IFwibGliZWxsZVwiLCB0eXA6IFwiXCIgfSxcbiAgICBdLFxuICAgIGZhbHNlLFxuICApLFxuICBPcmdhbmU6IG8oXG4gICAgW1xuICAgICAgeyBqc29uOiBcInNjaGVtYVZlcnNpb25cIiwganM6IFwic2NoZW1hVmVyc2lvblwiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgICAgeyBqc29uOiBcInhzaVR5cGVcIiwganM6IFwieHNpVHlwZVwiLCB0eXA6IHUodW5kZWZpbmVkLCByKFwiVHlwZU9yZ2FuZVwiKSkgfSxcbiAgICAgIHsganNvbjogXCJ1aWRcIiwganM6IFwidWlkXCIsIHR5cDogXCJcIiB9LFxuICAgICAgeyBqc29uOiBcImNvZGVUeXBlXCIsIGpzOiBcImNvZGVUeXBlXCIsIHR5cDogcihcIkNvZGVUeXBlT3JnYW5lXCIpIH0sXG4gICAgICB7IGpzb246IFwibGliZWxsZVwiLCBqczogXCJsaWJlbGxlXCIsIHR5cDogXCJcIiB9LFxuICAgICAgeyBqc29uOiBcImxpYmVsbGVFZGl0aW9uXCIsIGpzOiBcImxpYmVsbGVFZGl0aW9uXCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICB7IGpzb246IFwibGliZWxsZUFicmVnZVwiLCBqczogXCJsaWJlbGxlQWJyZWdlXCIsIHR5cDogXCJcIiB9LFxuICAgICAgeyBqc29uOiBcImxpYmVsbGVBYnJldlwiLCBqczogXCJsaWJlbGxlQWJyZXZcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwidmlNb0RlXCIsIGpzOiBcInZpTW9EZVwiLCB0eXA6IHIoXCJWaU1vRGVcIikgfSxcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJvcmdhbmVQYXJlbnRSZWZcIixcbiAgICAgICAganM6IFwib3JnYW5lUGFyZW50UmVmXCIsXG4gICAgICAgIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJvcmdhbmVQcmVjZWRlbnRSZWZcIixcbiAgICAgICAganM6IFwib3JnYW5lUHJlY2VkZW50UmVmXCIsXG4gICAgICAgIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpLFxuICAgICAgfSxcbiAgICAgIHsganNvbjogXCJyZWdpbWVcIiwganM6IFwicmVnaW1lXCIsIHR5cDogdSh1bmRlZmluZWQsIHIoXCJSZWdpbWVcIikpIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwibGVnaXNsYXR1cmVcIixcbiAgICAgICAganM6IFwibGVnaXNsYXR1cmVcIixcbiAgICAgICAgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIiksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBqc29uOiBcInNlY3JldGFyaWF0XCIsXG4gICAgICAgIGpzOiBcInNlY3JldGFyaWF0XCIsXG4gICAgICAgIHR5cDogdSh1bmRlZmluZWQsIHIoXCJTZWNyZXRhcmlhdFwiKSksXG4gICAgICB9LFxuICAgICAgeyBqc29uOiBcIm51bWVyb1wiLCBqczogXCJudW1lcm9cIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgIHsganNvbjogXCJsaWV1XCIsIGpzOiBcImxpZXVcIiwgdHlwOiB1KHVuZGVmaW5lZCwgcihcIk9yZ2FuZUxpZXVcIikpIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwicmVnaW1lSnVyaWRpcXVlXCIsXG4gICAgICAgIGpzOiBcInJlZ2ltZUp1cmlkaXF1ZVwiLFxuICAgICAgICB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwic2l0ZUludGVybmV0XCIsXG4gICAgICAgIGpzOiBcInNpdGVJbnRlcm5ldFwiLFxuICAgICAgICB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwibm9tYnJlUmV1bmlvbnNBbm51ZWxsZXNcIixcbiAgICAgICAganM6IFwibm9tYnJlUmV1bmlvbnNBbm51ZWxsZXNcIixcbiAgICAgICAgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIiksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBqc29uOiBcInBvc2l0aW9uUG9saXRpcXVlXCIsXG4gICAgICAgIGpzOiBcInBvc2l0aW9uUG9saXRpcXVlXCIsXG4gICAgICAgIHR5cDogdSh1bmRlZmluZWQsIHIoXCJQb3NpdGlvblBvbGl0aXF1ZVwiKSksXG4gICAgICB9LFxuICAgICAgeyBqc29uOiBcInByZXNlYW5jZVwiLCBqczogXCJwcmVzZWFuY2VcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgIHsganNvbjogXCJjb3VsZXVyQXNzb2NpZWVcIiwganM6IFwiY291bGV1ckFzc29jaWVlXCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwibGlzdGVQYXlzXCIsXG4gICAgICAgIGpzOiBcImxpc3RlUGF5c1wiLFxuICAgICAgICB0eXA6IHUodW5kZWZpbmVkLCBhKFwiXCIpKSxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBmYWxzZSxcbiAgKSxcbiAgT3JnYW5lTGlldTogbyhcbiAgICBbXG4gICAgICB7IGpzb246IFwicmVnaW9uXCIsIGpzOiBcInJlZ2lvblwiLCB0eXA6IHIoXCJSZWdpb25cIikgfSxcbiAgICAgIHsganNvbjogXCJkZXBhcnRlbWVudFwiLCBqczogXCJkZXBhcnRlbWVudFwiLCB0eXA6IHIoXCJEZXBhcnRlbWVudFwiKSB9LFxuICAgIF0sXG4gICAgZmFsc2UsXG4gICksXG4gIERlcGFydGVtZW50OiBvKFxuICAgIFtcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJjb2RlTmF0dXJlRGVwXCIsXG4gICAgICAgIGpzOiBcImNvZGVOYXR1cmVEZXBcIixcbiAgICAgICAgdHlwOiB1KHVuZGVmaW5lZCwgcihcIkNvZGVOYXR1cmVEZXBcIikpLFxuICAgICAgfSxcbiAgICAgIHsganNvbjogXCJjb2RlXCIsIGpzOiBcImNvZGVcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgIHsganNvbjogXCJsaWJlbGxlXCIsIGpzOiBcImxpYmVsbGVcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICBdLFxuICAgIGZhbHNlLFxuICApLFxuICBSZWdpb246IG8oXG4gICAgW1xuICAgICAgeyBqc29uOiBcInR5cGVcIiwganM6IFwidHlwZVwiLCB0eXA6IHUodW5kZWZpbmVkLCByKFwiUmVnaW9uVHlwZVwiKSkgfSxcbiAgICAgIHsganNvbjogXCJsaWJlbGxlXCIsIGpzOiBcImxpYmVsbGVcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICBdLFxuICAgIGZhbHNlLFxuICApLFxuICBTZWNyZXRhcmlhdDogbyhcbiAgICBbXG4gICAgICB7IGpzb246IFwic2VjcmV0YWlyZTAxXCIsIGpzOiBcInNlY3JldGFpcmUwMVwiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgICAgeyBqc29uOiBcInNlY3JldGFpcmUwMlwiLCBqczogXCJzZWNyZXRhaXJlMDJcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICBdLFxuICAgIGZhbHNlLFxuICApLFxuICBWaU1vRGU6IG8oXG4gICAgW1xuICAgICAgeyBqc29uOiBcImRhdGVEZWJ1dFwiLCBqczogXCJkYXRlRGVidXRcIiwgdHlwOiB1KHVuZGVmaW5lZCwgRGF0ZSkgfSxcbiAgICAgIHsganNvbjogXCJkYXRlQWdyZW1lbnRcIiwganM6IFwiZGF0ZUFncmVtZW50XCIsIHR5cDogdSh1bmRlZmluZWQsIERhdGUpIH0sXG4gICAgICB7IGpzb246IFwiZGF0ZUZpblwiLCBqczogXCJkYXRlRmluXCIsIHR5cDogdSh1bmRlZmluZWQsIERhdGUpIH0sXG4gICAgXSxcbiAgICBmYWxzZSxcbiAgKSxcbiAgUGhvdG86IG8oXG4gICAgW1xuICAgICAgeyBqc29uOiBcImNoZW1pblwiLCBqczogXCJjaGVtaW5cIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwiY2hlbWluTW9zYWlxdWVcIiwganM6IFwiY2hlbWluTW9zYWlxdWVcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwiaGF1dGV1clwiLCBqczogXCJoYXV0ZXVyXCIsIHR5cDogMCB9LFxuICAgICAgeyBqc29uOiBcImxhcmdldXJcIiwganM6IFwibGFyZ2V1clwiLCB0eXA6IDAgfSxcbiAgICAgIHsganNvbjogXCJ4TW9zYWlxdWVcIiwganM6IFwieE1vc2FpcXVlXCIsIHR5cDogMCB9LFxuICAgICAgeyBqc29uOiBcInlNb3NhaXF1ZVwiLCBqczogXCJ5TW9zYWlxdWVcIiwgdHlwOiAwIH0sXG4gICAgXSxcbiAgICBmYWxzZSxcbiAgKSxcbiAgQ2l2OiBbXCJNLlwiLCBcIk1tZVwiXSxcbiAgVHlwZU1hbmRhdDogW1xuICAgIFwiTWFuZGF0QXZlY1N1cHBsZWFudF9UeXBlXCIsXG4gICAgXCJNYW5kYXRNaXNzaW9uX1R5cGVcIixcbiAgICBcIk1hbmRhdFBhcmxlbWVudGFpcmVfdHlwZVwiLFxuICAgIFwiTWFuZGF0U2ltcGxlX1R5cGVcIixcbiAgXSxcbiAgUmVnaW9uVHlwZTogW1xuICAgIFwiQ29sbGVjdGl2aXTDqXMgZCdvdXRyZS1tZXIgZXQgTm91dmVsbGUtQ2Fsw6lkb25pZVwiLFxuICAgIFwiRG9tXCIsXG4gICAgXCJGcmFuw6dhaXMgw6l0YWJsaXMgaG9ycyBkZSBGcmFuY2VcIixcbiAgICBcIk3DqXRyb3BvbGl0YWluXCIsXG4gIF0sXG4gIENvZGVUeXBlT3JnYW5lOiBbXG4gICAgXCJBUElcIixcbiAgICBcIkFTU0VNQkxFRVwiLFxuICAgIFwiQlVSRUFVXCIsXG4gICAgXCJDSVJDT05TQ1JJUFRJT05cIixcbiAgICBcIkNKUlwiLFxuICAgIFwiQ01QXCIsXG4gICAgXCJDTlBFXCIsXG4gICAgXCJDTlBTXCIsXG4gICAgXCJDT01OTFwiLFxuICAgIFwiQ09NUEVSXCIsXG4gICAgXCJDT01TRU5BVFwiLFxuICAgIFwiQ09NU1BTRU5BVFwiLFxuICAgIFwiQ09ORlBUXCIsXG4gICAgXCJDT05TVElUVVwiLFxuICAgIFwiREVMRUdcIixcbiAgICBcIkRFTEVHQlVSRUFVXCIsXG4gICAgXCJERUxFR1NFTkFUXCIsXG4gICAgXCJHQVwiLFxuICAgIFwiR0VcIixcbiAgICBcIkdFVklcIixcbiAgICBcIkdPVVZFUk5FTUVOVFwiLFxuICAgIFwiR1BcIixcbiAgICBcIkdST1VQRVNFTkFUXCIsXG4gICAgXCJIQ0pcIixcbiAgICBcIk1JTklTVEVSRVwiLFxuICAgIFwiTUlTRVZBTFwiLFxuICAgIFwiTUlTSU5GT1wiLFxuICAgIFwiTUlTSU5GT0NPTVwiLFxuICAgIFwiTUlTSU5GT1BSRVwiLFxuICAgIFwiT0ZGUEFSXCIsXG4gICAgXCJPUkdBSU5UXCIsXG4gICAgXCJPUkdFWFRQQVJMXCIsXG4gICAgXCJQQVJQT0xcIixcbiAgICBcIlBSRVNSRVBcIixcbiAgICBcIlNFTkFUXCIsXG4gIF0sXG4gIEZhbVNvY1BybzogW1xuICAgIFwiQWdyaWN1bHRldXJzIGV4cGxvaXRhbnRzXCIsXG4gICAgXCJBcnRpc2FucywgY29tbWVyw6dhbnRzIGV0IGNoZWZzIGQnZW50cmVwcmlzZVwiLFxuICAgIFwiQXJ0aXNhbnMsIGNvbW1lcsOnYW50cywgY2hlZnMgZCdlbnRyZXByaXNlc1wiLFxuICAgIFwiQXV0cmVzIHBlcnNvbm5lcyBzYW5zIGFjdGl2aXTDqSBwcm9mZXNzaW9ubmVsbGVcIixcbiAgICBcIkNhZHJlcyBldCBwcm9mZXNzaW9ucyBpbnRlbGxlY3R1ZWxsZXMgc3Vww6lyaWV1cmVzXCIsXG4gICAgXCJFbXBsb3nDqXNcIixcbiAgICBcIk91dnJpZXJzXCIsXG4gICAgXCJQcm9mZXNzaW9ucyBJbnRlcm3DqWRpYWlyZXNcIixcbiAgICBcIlByb2Zlc3Npb25zIGludGVybcOpZGlhaXJlc1wiLFxuICAgIFwiUmV0cmFpdMOpc1wiLFxuICAgIFwiU2FucyBwcm9mZXNzaW9uIGTDqWNsYXLDqWVcIixcbiAgXSxcbiAgVHlwZU9yZ2FuZTogW1xuICAgIFwiR3JvdXBlUG9saXRpcXVlX3R5cGVcIixcbiAgICBcIk9yZ2FuZUNpcmNvbnNjcmlwdGlvbl90eXBlXCIsXG4gICAgXCJPcmdhbmVFeHRlcm5lX1R5cGVcIixcbiAgICBcIk9yZ2FuZUV4dHJhUGFybGVtZW50YWlyZV90eXBlXCIsXG4gICAgXCJPcmdhbmVQYXJsZW1lbnRhaXJlSW50ZXJuYXRpb25hbFwiLFxuICAgIFwiT3JnYW5lUGFybGVtZW50YWlyZV9UeXBlXCIsXG4gIF0sXG4gIENvZGVOYXR1cmVEZXA6IFtcIkhcIiwgXCJNXCIsIFwiT1wiLCBcIlRcIl0sXG4gIFBvc2l0aW9uUG9saXRpcXVlOiBbXCJNYWpvcml0YWlyZVwiLCBcIk1pbm9yaXRhaXJlXCIsIFwiT3Bwb3NpdGlvblwiXSxcbiAgUmVnaW1lOiBbXG4gICAgXCJBc3NlbWJsw6llIGNvbnN1bHRhdGl2ZSBwcm92aXNvaXJlXCIsXG4gICAgXCJBc3NlbWJsw6llcyBuYXRpb25hbGVzIGNvbnN0aXR1YW50ZXNcIixcbiAgICBcIjPDqG1lIFLDqXB1YmxpcXVlXCIsXG4gICAgXCI0w6htZSBSw6lwdWJsaXF1ZVwiLFxuICAgIFwiNcOobWUgUsOpcHVibGlxdWVcIixcbiAgXSxcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBaUNBLFdBQVlBLEdBQUcsMEJBQUhBLEdBQUc7RUFBSEEsR0FBRztFQUFIQSxHQUFHO0VBQUEsT0FBSEEsR0FBRztBQUFBO0FBZ0VmLFdBQVlDLFVBQVUsMEJBQVZBLFVBQVU7RUFBVkEsVUFBVTtFQUFWQSxVQUFVO0VBQVZBLFVBQVU7RUFBVkEsVUFBVTtFQUFBLE9BQVZBLFVBQVU7QUFBQTtBQTJCdEIsV0FBWUMsVUFBVSwwQkFBVkEsVUFBVTtFQUFWQSxVQUFVO0VBQVZBLFVBQVU7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