@tricoteuses/assemblee 1.7.0 → 1.7.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 (127) hide show
  1. package/README.md +9 -27
  2. package/lib/bugs/acteur-00010/plugin.test.js +4 -4
  3. package/lib/bugs/acteur-00010/plugin.test.mjs +1 -1
  4. package/lib/bugs/acteur-00010.js +15 -16
  5. package/lib/bugs/acteur-00010.mjs +1 -1
  6. package/lib/bugs/agenda-00002/plugin.test.js +4 -4
  7. package/lib/bugs/agenda-00002/plugin.test.mjs +1 -1
  8. package/lib/bugs/agenda-00002.js +27 -28
  9. package/lib/bugs/agenda-00002.mjs +3 -3
  10. package/lib/bugs/agenda-00008/plugin.test.js +4 -4
  11. package/lib/bugs/agenda-00008/plugin.test.mjs +1 -1
  12. package/lib/bugs/agenda-00008.js +15 -16
  13. package/lib/bugs/agenda-00008.mjs +1 -1
  14. package/lib/bugs/agenda-00011/plugin.test.js +5 -5
  15. package/lib/bugs/agenda-00011/plugin.test.mjs +1 -1
  16. package/lib/bugs/agenda-00011.js +21 -22
  17. package/lib/bugs/agenda-00011.mjs +3 -3
  18. package/lib/bugs.js +17 -19
  19. package/lib/bugs.mjs +3 -3
  20. package/lib/cleaners/actes_legislatifs.js +5 -5
  21. package/lib/cleaners/acteurs.js +5 -5
  22. package/lib/cleaners/acteurs.mjs +1 -1
  23. package/lib/cleaners/amendements.js +5 -5
  24. package/lib/cleaners/documents.js +5 -5
  25. package/lib/cleaners/dossiers_legislatifs.js +5 -5
  26. package/lib/cleaners/organes.js +2 -2
  27. package/lib/cleaners/reunions.js +5 -5
  28. package/lib/cleaners/scrutins.js +8 -8
  29. package/lib/cleaners/xml.js +8 -8
  30. package/lib/cleaners/xml.mjs +1 -1
  31. package/lib/datasets.d.ts +2 -2
  32. package/lib/datasets.js +53 -132
  33. package/lib/datasets.mjs +40 -118
  34. package/lib/dates.js +1 -2
  35. package/lib/dossiers_legislatifs.js +8 -8
  36. package/lib/file_systems.js +18 -16
  37. package/lib/file_systems.mjs +6 -5
  38. package/lib/git.d.ts +1 -0
  39. package/lib/git.js +21 -5
  40. package/lib/git.mjs +16 -1
  41. package/lib/inserters.js +3 -3
  42. package/lib/loaders.d.ts +14 -40
  43. package/lib/loaders.js +580 -1086
  44. package/lib/loaders.mjs +110 -353
  45. package/lib/parsers/documents.js +10 -10
  46. package/lib/parsers/documents.mjs +1 -1
  47. package/lib/parsers/recherche_amendements.js +17 -15
  48. package/lib/parsers/recherche_amendements.mjs +1 -1
  49. package/lib/raw_types/acteurs_et_organes.js +9 -9
  50. package/lib/raw_types/acteurs_et_organes.mjs +1 -1
  51. package/lib/raw_types/agendas.js +9 -9
  52. package/lib/raw_types/agendas.mjs +1 -1
  53. package/lib/raw_types/amendements.js +9 -9
  54. package/lib/raw_types/amendements.mjs +1 -1
  55. package/lib/raw_types/debats.d.ts +26 -78
  56. package/lib/raw_types/debats.js +49 -242
  57. package/lib/raw_types/debats.mjs +41 -234
  58. package/lib/raw_types/dossiers_legislatifs.js +9 -9
  59. package/lib/raw_types/dossiers_legislatifs.mjs +1 -1
  60. package/lib/raw_types/questions.js +9 -9
  61. package/lib/raw_types/questions.mjs +1 -1
  62. package/lib/raw_types/scrutins.js +9 -9
  63. package/lib/raw_types/scrutins.mjs +1 -1
  64. package/lib/scripts/bugs_helper.js +17 -18
  65. package/lib/scripts/bugs_helper.mjs +3 -3
  66. package/lib/scripts/clean_reorganized_data.js +183 -561
  67. package/lib/scripts/clean_reorganized_data.mjs +111 -410
  68. package/lib/scripts/diff_amendements.js +11 -24
  69. package/lib/scripts/diff_amendements.mjs +3 -17
  70. package/lib/scripts/document_dossiers_legislatifs.js +24 -27
  71. package/lib/scripts/document_dossiers_legislatifs.mjs +3 -3
  72. package/lib/scripts/get_today_reunions.js +5 -8
  73. package/lib/scripts/get_today_reunions.mjs +3 -7
  74. package/lib/scripts/merge_scrutins.js +11 -24
  75. package/lib/scripts/merge_scrutins.mjs +3 -17
  76. package/lib/scripts/parse_textes_lois.js +8 -38
  77. package/lib/scripts/parse_textes_lois.mjs +3 -33
  78. package/lib/scripts/raw_types_from_amendements.js +14 -27
  79. package/lib/scripts/raw_types_from_amendements.mjs +3 -17
  80. package/lib/scripts/reorganize_data.js +204 -456
  81. package/lib/scripts/reorganize_data.mjs +68 -260
  82. package/lib/scripts/retrieve_deputes_photos.d.ts +3 -1
  83. package/lib/scripts/retrieve_deputes_photos.js +146 -172
  84. package/lib/scripts/retrieve_deputes_photos.mjs +74 -98
  85. package/lib/scripts/retrieve_documents.js +207 -156
  86. package/lib/scripts/retrieve_documents.mjs +116 -128
  87. package/lib/scripts/retrieve_open_data.js +272 -249
  88. package/lib/scripts/retrieve_open_data.mjs +109 -123
  89. package/lib/scripts/retrieve_pending_amendments.js +16 -67
  90. package/lib/scripts/retrieve_pending_amendments.mjs +4 -55
  91. package/lib/scripts/retrieve_senateurs_photos.js +20 -77
  92. package/lib/scripts/retrieve_senateurs_photos.mjs +5 -61
  93. package/lib/scripts/retrieve_textes_lois.js +18 -46
  94. package/lib/scripts/retrieve_textes_lois.mjs +3 -33
  95. package/lib/scripts/shared/cli_helpers.d.ts +66 -0
  96. package/lib/scripts/shared/cli_helpers.js +90 -0
  97. package/lib/scripts/shared/cli_helpers.mjs +72 -0
  98. package/lib/scripts/test_iter_load.d.ts +1 -0
  99. package/lib/scripts/test_iter_load.js +154 -0
  100. package/lib/scripts/test_iter_load.mjs +71 -0
  101. package/lib/scripts/test_load.js +4 -15
  102. package/lib/scripts/test_load.mjs +3 -14
  103. package/lib/scripts/test_load_big_files.js +4 -15
  104. package/lib/scripts/test_load_big_files.mjs +3 -14
  105. package/lib/scripts/validate_json.js +15 -16
  106. package/lib/scripts/validate_json.mjs +3 -3
  107. package/lib/types/acteurs_et_organes.js +9 -9
  108. package/lib/types/acteurs_et_organes.mjs +1 -1
  109. package/lib/types/agendas.js +9 -9
  110. package/lib/types/agendas.mjs +1 -1
  111. package/lib/types/amendements.js +9 -9
  112. package/lib/types/amendements.mjs +1 -1
  113. package/lib/types/debats.d.ts +27 -79
  114. package/lib/types/debats.js +48 -241
  115. package/lib/types/debats.mjs +40 -233
  116. package/lib/types/dossiers_legislatifs.js +9 -9
  117. package/lib/types/dossiers_legislatifs.mjs +1 -1
  118. package/lib/types/legislatures.d.ts +4 -4
  119. package/lib/types/legislatures.js +5 -5
  120. package/lib/types/legislatures.mjs +5 -5
  121. package/lib/types/questions.js +9 -9
  122. package/lib/types/questions.mjs +1 -1
  123. package/lib/types/scrutins.js +9 -9
  124. package/lib/types/scrutins.mjs +1 -1
  125. package/lib/urls.js +2 -2
  126. package/lib/urls.mjs +1 -1
  127. package/package.json +9 -7
@@ -240,7 +240,7 @@ const typeMap = {
240
240
  }, {
241
241
  json: "ouvertureSeance",
242
242
  js: "ouvertureSeance",
243
- typ: r("OuvertureSeance")
243
+ typ: u(a(r("Point")), r("Point"))
244
244
  }, {
245
245
  json: "point",
246
246
  js: "point",
@@ -257,68 +257,7 @@ const typeMap = {
257
257
  "FinSeance": o([{
258
258
  json: "point",
259
259
  js: "point",
260
- typ: r("FinSeancePoint")
261
- }], false),
262
- "FinSeancePoint": o([{
263
- json: "nivpoint",
264
- js: "nivpoint",
265
- typ: ""
266
- }, {
267
- json: "valeur_ptsodj",
268
- js: "valeur_ptsodj",
269
- typ: ""
270
- }, {
271
- json: "ordinal_prise",
272
- js: "ordinal_prise",
273
- typ: ""
274
- }, {
275
- json: "id_preparation",
276
- js: "id_preparation",
277
- typ: ""
278
- }, {
279
- json: "ordre_absolu_seance",
280
- js: "ordre_absolu_seance",
281
- typ: ""
282
- }, {
283
- json: "code_grammaire",
284
- js: "code_grammaire",
285
- typ: ""
286
- }, {
287
- json: "code_style",
288
- js: "code_style",
289
- typ: ""
290
- }, {
291
- json: "code_parole",
292
- js: "code_parole",
293
- typ: ""
294
- }, {
295
- json: "sommaire",
296
- js: "sommaire",
297
- typ: ""
298
- }, {
299
- json: "id_syceron",
300
- js: "id_syceron",
301
- typ: ""
302
- }, {
303
- json: "valeur",
304
- js: "valeur",
305
- typ: ""
306
- }, {
307
- json: "orateurs",
308
- js: "orateurs",
309
- typ: ""
310
- }, {
311
- json: "texte",
312
- js: "texte",
313
- typ: ""
314
- }, {
315
- json: "paragraphe",
316
- js: "paragraphe",
317
- typ: a(r("Point"))
318
- }, {
319
- json: "type_debat",
320
- js: "type_debat",
321
- typ: u(undefined, "")
260
+ typ: r("Point")
322
261
  }], false),
323
262
  "Orateurs": o([{
324
263
  json: "orateur",
@@ -342,132 +281,22 @@ const typeMap = {
342
281
  json: "_",
343
282
  js: "_",
344
283
  typ: u(undefined, "")
345
- }, {
346
- json: "stime",
347
- js: "stime",
348
- typ: u(undefined, "")
349
- }, {
350
- json: "indice",
351
- js: "indice",
352
- typ: u(undefined, u(a(""), ""))
353
- }], false),
354
- "OuvertureSeance": o([{
355
- json: "nivpoint",
356
- js: "nivpoint",
357
- typ: u(undefined, "")
358
- }, {
359
- json: "valeur_ptsodj",
360
- js: "valeur_ptsodj",
361
- typ: ""
362
- }, {
363
- json: "ordinal_prise",
364
- js: "ordinal_prise",
365
- typ: ""
366
- }, {
367
- json: "id_preparation",
368
- js: "id_preparation",
369
- typ: ""
370
- }, {
371
- json: "ordre_absolu_seance",
372
- js: "ordre_absolu_seance",
373
- typ: ""
374
- }, {
375
- json: "id_acteur",
376
- js: "id_acteur",
377
- typ: u(undefined, "")
378
- }, {
379
- json: "id_mandat",
380
- js: "id_mandat",
381
- typ: u(undefined, "")
382
- }, {
383
- json: "id_nomination_oe",
384
- js: "id_nomination_oe",
385
- typ: u(undefined, "")
386
- }, {
387
- json: "id_nomination_op",
388
- js: "id_nomination_op",
389
- typ: u(undefined, "")
390
- }, {
391
- json: "code_grammaire",
392
- js: "code_grammaire",
393
- typ: ""
394
- }, {
395
- json: "code_style",
396
- js: "code_style",
397
- typ: ""
398
- }, {
399
- json: "code_parole",
400
- js: "code_parole",
401
- typ: ""
402
- }, {
403
- json: "sommaire",
404
- js: "sommaire",
405
- typ: ""
406
284
  }, {
407
285
  json: "id_syceron",
408
286
  js: "id_syceron",
409
- typ: ""
410
- }, {
411
- json: "valeur",
412
- js: "valeur",
413
- typ: ""
414
- }, {
415
- json: "orateurs",
416
- js: "orateurs",
417
- typ: u(r("Orateurs"), "")
418
- }, {
419
- json: "texte",
420
- js: "texte",
421
- typ: u(r("Texte"), "")
422
- }, {
423
- json: "paragraphe",
424
- js: "paragraphe",
425
- typ: u(undefined, a(r("Point")))
426
- }, {
427
- json: "interExtraction",
428
- js: "interExtraction",
429
- typ: u(undefined, r("InterExtraction"))
430
- }, {
431
- json: "point",
432
- js: "point",
433
- typ: u(undefined, r("Point"))
434
- }, {
435
- json: "ouvertureSeance",
436
- js: "ouvertureSeance",
437
- typ: u(undefined, r("OuvertureSeance"))
438
- }], false),
439
- "InterExtraction": o([{
440
- json: "nom_orateur",
441
- js: "nom_orateur",
442
- typ: ""
443
- }, {
444
- json: "qualite",
445
- js: "nom_orateur",
446
287
  typ: u(undefined, "")
447
288
  }, {
448
- json: "id_acteur",
449
- js: "id_acteur",
450
- typ: ""
451
- }, {
452
- json: "id_nomination_oe",
453
- js: "id_nomination_oe",
454
- typ: ""
455
- }, {
456
- json: "id_nomination_op",
457
- js: "id_nomination_op",
458
- typ: ""
459
- }, {
460
- json: "id_mandat",
461
- js: "id_mandat",
462
- typ: ""
289
+ json: "stime",
290
+ js: "stime",
291
+ typ: u(undefined, "")
463
292
  }, {
464
- json: "paragraphe",
465
- js: "paragraphe",
466
- typ: u(a(r("Point")), r("Point"))
293
+ json: "sup",
294
+ js: "sup",
295
+ typ: u(undefined, "")
467
296
  }, {
468
- json: "changementPresidence",
469
- js: "changementPresidence",
470
- typ: u(undefined, r("Point"))
297
+ json: "lienAdt",
298
+ js: "lienAdt",
299
+ typ: u(undefined, u(a(r("Texte")), r("Texte")))
471
300
  }], false),
472
301
  "Point": o([{
473
302
  json: "nivpoint",
@@ -476,23 +305,23 @@ const typeMap = {
476
305
  }, {
477
306
  json: "valeur_ptsodj",
478
307
  js: "valeur_ptsodj",
479
- typ: ""
308
+ typ: u(undefined, "")
480
309
  }, {
481
310
  json: "ordinal_prise",
482
311
  js: "ordinal_prise",
483
- typ: ""
312
+ typ: u(undefined, "")
484
313
  }, {
485
314
  json: "id_preparation",
486
315
  js: "id_preparation",
487
- typ: ""
316
+ typ: u(undefined, "")
488
317
  }, {
489
318
  json: "ordre_absolu_seance",
490
319
  js: "ordre_absolu_seance",
491
- typ: ""
320
+ typ: u(undefined, "")
492
321
  }, {
493
322
  json: "code_grammaire",
494
323
  js: "code_grammaire",
495
- typ: ""
324
+ typ: u(undefined, "")
496
325
  }, {
497
326
  json: "code_style",
498
327
  js: "code_style",
@@ -500,27 +329,27 @@ const typeMap = {
500
329
  }, {
501
330
  json: "code_parole",
502
331
  js: "code_parole",
503
- typ: ""
332
+ typ: u(undefined, "")
504
333
  }, {
505
334
  json: "sommaire",
506
335
  js: "sommaire",
507
- typ: ""
336
+ typ: u(undefined, "")
508
337
  }, {
509
338
  json: "id_syceron",
510
339
  js: "id_syceron",
511
- typ: ""
340
+ typ: u(undefined, "")
512
341
  }, {
513
342
  json: "valeur",
514
343
  js: "valeur",
515
- typ: ""
344
+ typ: u(undefined, "")
516
345
  }, {
517
346
  json: "orateurs",
518
347
  js: "orateurs",
519
- typ: u(r("Orateurs"), "", undefined)
348
+ typ: u(r("Orateurs"), u("", undefined))
520
349
  }, {
521
350
  json: "texte",
522
351
  js: "texte",
523
- typ: u(r("Texte"), "", undefined)
352
+ typ: u(r("Texte"), u("", undefined))
524
353
  }, {
525
354
  json: "paragraphe",
526
355
  js: "paragraphe",
@@ -528,7 +357,7 @@ const typeMap = {
528
357
  }, {
529
358
  json: "interExtraction",
530
359
  js: "interExtraction",
531
- typ: u(undefined, a(r("InterExtraction")), r("InterExtraction"))
360
+ typ: u(undefined, u(a(r("Point")), r("Point")))
532
361
  }, {
533
362
  json: "point",
534
363
  js: "point",
@@ -589,6 +418,18 @@ const typeMap = {
589
418
  json: "decision",
590
419
  js: "decision",
591
420
  typ: u(undefined, r("Decision"))
421
+ }, {
422
+ json: "ouvertureSeance",
423
+ js: "ouvertureSeance",
424
+ typ: u(undefined, r("Point"))
425
+ }, {
426
+ json: "nom_orateur",
427
+ js: "nom_orateur",
428
+ typ: u(undefined, "")
429
+ }, {
430
+ json: "qualite",
431
+ js: "qualite",
432
+ typ: u(undefined, "")
592
433
  }], false),
593
434
  "Quantiemes": o([{
594
435
  json: "journee",
@@ -663,7 +504,7 @@ const typeMap = {
663
504
  "Sommaire": o([{
664
505
  json: "presidentSeance",
665
506
  js: "presidentSeance",
666
- typ: r("Para")
507
+ typ: r("Texte")
667
508
  }, {
668
509
  json: "sommaire1",
669
510
  js: "sommaire1",
@@ -679,7 +520,7 @@ const typeMap = {
679
520
  }, {
680
521
  json: "para",
681
522
  js: "para",
682
- typ: u(undefined, r("Para"))
523
+ typ: u(undefined, u(a(r("Texte")), r("Texte")))
683
524
  }], false),
684
525
  "SommaireElement": o([{
685
526
  json: "valeur_pts_odj",
@@ -692,11 +533,7 @@ const typeMap = {
692
533
  }, {
693
534
  json: "para",
694
535
  js: "para",
695
- typ: u(undefined, u(a(u(r("Para"), "")), r("Para")))
696
- }, {
697
- json: "Para",
698
- js: "Para",
699
- typ: u(undefined, u(a(u(r("Para"), "")), r("Para")))
536
+ typ: u(undefined, u(a(u(r("Texte"), "")), r("Texte")))
700
537
  }, {
701
538
  json: "sommaire2",
702
539
  js: "sommaire2",
@@ -708,42 +545,12 @@ const typeMap = {
708
545
  }, {
709
546
  json: "presidentSeance",
710
547
  js: "presidentSeance",
711
- typ: u(undefined, u(a(r("Para")), r("Para")))
548
+ typ: u(undefined, u(a(r("Texte")), r("Texte")))
712
549
  }, {
713
550
  json: "type_debat",
714
551
  js: "type_debat",
715
552
  typ: u(undefined, "")
716
553
  }], false),
717
- "Para": o([{
718
- json: "_",
719
- js: "_",
720
- typ: u(undefined, "")
721
- }, {
722
- json: "id_syceron",
723
- js: "id_syceron",
724
- typ: u(undefined, "")
725
- }, {
726
- json: "sup",
727
- js: "sup",
728
- typ: u(undefined, "")
729
- }, {
730
- json: "lienAdt",
731
- js: "lienAdt",
732
- typ: u(undefined, u(a(r("Para")), r("Para")))
733
- }], false),
734
- "Test": o([{
735
- json: "_",
736
- js: "_",
737
- typ: u(undefined, "")
738
- }, {
739
- json: "id_syceron",
740
- js: "id_syceron",
741
- typ: u(undefined, "")
742
- }, {
743
- json: "sup",
744
- js: "sup",
745
- typ: u(undefined, "")
746
- }], false),
747
554
  "TitreStruct": o([{
748
555
  json: "id_syceron",
749
556
  js: "id_syceron",
@@ -751,7 +558,7 @@ const typeMap = {
751
558
  }, {
752
559
  json: "intitule",
753
560
  js: "intitule",
754
- typ: u(r("Texte"), "")
561
+ typ: u(undefined, "")
755
562
  }, {
756
563
  json: "sousIntitule",
757
564
  js: "sousIntitule",
@@ -763,4 +570,4 @@ const typeMap = {
763
570
  }], false),
764
571
  "Decision": ["ADOPTION amendement (main levée) adt", "ADOPTION d’un article (vote à main levée)", "ADOPTION d’un sous-amendement (main levée) ss-adt", "ADOPTION de plusieurs amendements (main levée) adts", "ADOPTION de plusieurs sous-amendements (main levée) ss-adts", "", "REJET d’un amendement (main levée) adt", "REJET d’un article (vote à main levée)", "REJET d’un sous-amendement (main levée) ss-adt", "REJET de plusieurs amendements (main levée) adts", "REJET de plusieurs sous-amendements (main levée) ss-adts", "REJET motion de rejet préalable (main levée)"]
765
572
  };
766
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEZWNpc2lvbiIsIkNvbnZlcnQiLCJ0b0NvbXB0ZXNSZW5kdXMiLCJqc29uIiwiY2FzdCIsIkpTT04iLCJwYXJzZSIsInIiLCJjb21wdGVzUmVuZHVzVG9Kc29uIiwidmFsdWUiLCJzdHJpbmdpZnkiLCJ1bmNhc3QiLCJ0b0NvbXB0ZVJlbmR1V3JhcHBlciIsImNvbXB0ZVJlbmR1V3JhcHBlclRvSnNvbiIsImludmFsaWRWYWx1ZSIsInR5cCIsInZhbCIsImtleSIsInBhcmVudCIsInByZXR0eVR5cCIsInByZXR0eVR5cGVOYW1lIiwicGFyZW50VGV4dCIsImtleVRleHQiLCJFcnJvciIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsInVuZGVmaW5lZCIsIm1hcCIsImEiLCJqb2luIiwibGl0ZXJhbCIsImpzb25Ub0pTUHJvcHMiLCJqc29uVG9KUyIsInByb3BzIiwiZm9yRWFjaCIsInAiLCJqcyIsImpzVG9KU09OUHJvcHMiLCJqc1RvSlNPTiIsInRyYW5zZm9ybSIsImdldFByb3BzIiwidHJhbnNmb3JtUHJpbWl0aXZlIiwidHJhbnNmb3JtVW5pb24iLCJ0eXBzIiwibCIsImkiLCJfIiwidHJhbnNmb3JtRW51bSIsImNhc2VzIiwiaW5kZXhPZiIsInRyYW5zZm9ybUFycmF5IiwiZWwiLCJ0cmFuc2Zvcm1EYXRlIiwiZCIsIkRhdGUiLCJpc05hTiIsInZhbHVlT2YiLCJ0cmFuc2Zvcm1PYmplY3QiLCJhZGRpdGlvbmFsIiwicmVmIiwicmVzdWx0IiwiT2JqZWN0IiwiZ2V0T3duUHJvcGVydHlOYW1lcyIsInByb3AiLCJ2IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwidHlwZU1hcCIsInVuaW9uTWVtYmVycyIsImFycmF5SXRlbXMiLCJ1IiwibyIsIm5hbWUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvcmF3X3R5cGVzL2RlYmF0cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUbyBwYXJzZSB0aGlzIGRhdGE6XG4vL1xuLy8gICBpbXBvcnQgeyBDb252ZXJ0LCBDb21wdGVzUmVuZHVzLCBDb21wdGVSZW5kdVdyYXBwZXIgfSBmcm9tIFwiLi9maWxlXCI7XG4vL1xuLy8gICBjb25zdCBjb21wdGVSZW5kdSA9IENvbnZlcnQudG9Db21wdGVSZW5kdShqc29uKTtcbi8vICAgY29uc3QgY29tcHRlUmVuZHVXcmFwcGVyID0gQ29udmVydC50b0NvbXB0ZVJlbmR1V3JhcHBlcihqc29uKTtcbi8vXG4vLyBUaGVzZSBmdW5jdGlvbnMgd2lsbCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgSlNPTiBkb2Vzbid0XG4vLyBtYXRjaCB0aGUgZXhwZWN0ZWQgaW50ZXJmYWNlLCBldmVuIGlmIHRoZSBKU09OIGlzIHZhbGlkLlxuXG5leHBvcnQgaW50ZXJmYWNlIENvbXB0ZXNSZW5kdXMge1xuICAgIGNvbXB0ZVJlbmR1OiBDb21wdGVSZW5kdUNsYXNzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbXB0ZVJlbmR1Q2xhc3Mge1x0XG4gICAgY29tcHRlUmVuZHU6IENvbXB0ZVJlbmR1W107XHRcbn1cdFxuXG5leHBvcnQgaW50ZXJmYWNlIENvbXB0ZVJlbmR1V3JhcHBlciB7XHRcbiAgICBjb21wdGVSZW5kdTogQ29tcHRlUmVuZHU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcHRlUmVuZHUge1xuICAgIHhtbG5zOiAgICAgICBzdHJpbmc7XG4gICAgdWlkOiAgICAgICAgIHN0cmluZztcbiAgICBzZWFuY2VSZWY6ICAgc3RyaW5nO1xuICAgIHNlc3Npb25SZWY6ICBzdHJpbmc7XG4gICAgbWV0YWRvbm5lZXM6IE1ldGFkb25uZWVzO1xuICAgIGNvbnRlbnU6ICAgICBDb250ZW51O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRlbnUge1xuICAgIHF1YW50aWVtZXM6ICAgICAgUXVhbnRpZW1lcztcbiAgICBvdXZlcnR1cmVTZWFuY2U6IE91dmVydHVyZVNlYW5jZTtcbiAgICBwb2ludDogICAgICAgICAgIFBvaW50W10gfCBQb2ludDtcbiAgICBmaW5TZWFuY2U/OiAgICAgIEZpblNlYW5jZTtcbiAgICBwYXJhZ3JhcGhlPzogICAgIFBvaW50W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmluU2VhbmNlIHtcbiAgICBwb2ludDogRmluU2VhbmNlUG9pbnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmluU2VhbmNlUG9pbnQge1xuICAgIG5pdnBvaW50OiAgICAgICAgICAgIHN0cmluZztcbiAgICB2YWxldXJfcHRzb2RqOiAgICAgICBzdHJpbmc7XG4gICAgb3JkaW5hbF9wcmlzZTogICAgICAgc3RyaW5nO1xuICAgIGlkX3ByZXBhcmF0aW9uOiAgICAgIHN0cmluZztcbiAgICBvcmRyZV9hYnNvbHVfc2VhbmNlOiBzdHJpbmc7XG4gICAgY29kZV9ncmFtbWFpcmU6ICAgICAgc3RyaW5nO1xuICAgIGNvZGVfc3R5bGU6ICAgICAgICAgIHN0cmluZztcbiAgICBjb2RlX3Bhcm9sZTogICAgICAgICBzdHJpbmc7XG4gICAgc29tbWFpcmU6ICAgICAgICAgICAgc3RyaW5nO1xuICAgIGlkX3N5Y2Vyb246ICAgICAgICAgIHN0cmluZztcbiAgICB2YWxldXI6ICAgICAgICAgICAgICBzdHJpbmc7XG4gICAgb3JhdGV1cnM6ICAgICAgICAgICAgc3RyaW5nO1xuICAgIHRleHRlOiAgICAgICAgICAgICAgIHN0cmluZztcbiAgICBwYXJhZ3JhcGhlOiAgICAgICAgICBQb2ludFtdO1xuICAgIHR5cGVfZGViYXQ/OiAgICAgICAgIHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPcmF0ZXVycyB7XG4gICAgb3JhdGV1cjogT3JhdGV1ckVsZW1lbnRbXSB8IE9yYXRldXJFbGVtZW50O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9yYXRldXJFbGVtZW50IHtcbiAgICBub206ICAgICBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgaWQ6ICAgICAgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIHF1YWxpdGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUZXh0ZSB7XG4gICAgXz86ICAgICAgc3RyaW5nO1xuICAgIHN0aW1lPzogIHN0cmluZztcbiAgICBpbmRpY2U/OiBzdHJpbmdbXSB8IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPdXZlcnR1cmVTZWFuY2Uge1xuICAgIG5pdnBvaW50PzogICAgICAgICAgIHN0cmluZztcbiAgICB2YWxldXJfcHRzb2RqOiAgICAgICBzdHJpbmc7XG4gICAgb3JkaW5hbF9wcmlzZTogICAgICAgc3RyaW5nO1xuICAgIGlkX3ByZXBhcmF0aW9uOiAgICAgIHN0cmluZztcbiAgICBvcmRyZV9hYnNvbHVfc2VhbmNlOiBzdHJpbmc7XG4gICAgaWRfYWN0ZXVyPzogICAgICAgICAgc3RyaW5nO1xuICAgIGlkX21hbmRhdD86ICAgICAgICAgIHN0cmluZztcbiAgICBpZF9ub21pbmF0aW9uX29lPzogICBzdHJpbmc7XG4gICAgaWRfbm9taW5hdGlvbl9vcD86ICAgc3RyaW5nO1xuICAgIGNvZGVfZ3JhbW1haXJlOiAgICAgIHN0cmluZztcbiAgICBjb2RlX3N0eWxlOiAgICAgICAgICBzdHJpbmc7XG4gICAgY29kZV9wYXJvbGU6ICAgICAgICAgc3RyaW5nO1xuICAgIHNvbW1haXJlOiAgICAgICAgICAgIHN0cmluZztcbiAgICBpZF9zeWNlcm9uOiAgICAgICAgICBzdHJpbmc7XG4gICAgdmFsZXVyOiAgICAgICAgICAgICAgc3RyaW5nO1xuICAgIG9yYXRldXJzOiAgICAgICAgICAgIE9yYXRldXJzIHwgc3RyaW5nO1xuICAgIHRleHRlOiAgICAgICAgICAgICAgIFRleHRlIHwgc3RyaW5nO1xuICAgIHBhcmFncmFwaGU/OiAgICAgICAgIFBvaW50W107XG4gICAgaW50ZXJFeHRyYWN0aW9uPzogICAgSW50ZXJFeHRyYWN0aW9uO1xuICAgIHBvaW50PzogICAgICAgICAgICAgIFBvaW50O1xuICAgIG91dmVydHVyZVNlYWNuZT86ICAgIE91dmVydHVyZVNlYW5jZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbnRlckV4dHJhY3Rpb24ge1xuICAgIG5vbV9vcmF0ZXVyOiAgICAgIHN0cmluZztcbiAgICBxdWFsaXRlOiAgICAgICAgICBzdHJpbmc7XG4gICAgaWRfYWN0ZXVyOiAgICAgICAgc3RyaW5nO1xuICAgIGlkX25vbWluYXRpb25fb2U6IHN0cmluZztcbiAgICBpZF9ub21pbmF0aW9uX29wOiBzdHJpbmc7XG4gICAgaWRfbWFuZGF0OiAgICAgICAgc3RyaW5nO1xuICAgIHBhcmFncmFwaGU6ICAgICAgIFBvaW50W10gfCBQb2ludDtcbiAgICBjaGFuZ2VtZW50UHJlc2lkZW5jZT86IFBvaW50O1xufVxuXG5leHBvcnQgZW51bSBEZWNpc2lvbiB7XG4gICAgQWRvcHRpb25BbWVuZGVtZW50TWFpbkxldsOpZUFkdCA9IFwiQURPUFRJT04gYW1lbmRlbWVudCAobWFpbiBsZXbDqWUpIGFkdFwiLFxuICAgIEFkb3B0aW9uRFVuQXJ0aWNsZVZvdGXDgE1haW5MZXbDqWUgPSBcIkFET1BUSU9OIGTigJl1biBhcnRpY2xlICh2b3RlIMOgIG1haW4gbGV2w6llKVwiLFxuICAgIEFkb3B0aW9uRFVuU291c0FtZW5kZW1lbnRNYWluTGV2w6llU3NBZHQgPSBcIkFET1BUSU9OIGTigJl1biBzb3VzLWFtZW5kZW1lbnQgKG1haW4gbGV2w6llKSBzcy1hZHRcIixcbiAgICBBZG9wdGlvbkRlUGx1c2lldXJzQW1lbmRlbWVudHNNYWluTGV2w6llQWR0cyA9IFwiQURPUFRJT04gZGUgcGx1c2lldXJzIGFtZW5kZW1lbnRzIChtYWluIGxldsOpZSkgYWR0c1wiLFxuICAgIEFkb3B0aW9uRGVQbHVzaWV1cnNTb3VzQW1lbmRlbWVudHNNYWluTGV2w6llU3NBZHRzID0gXCJBRE9QVElPTiBkZSBwbHVzaWV1cnMgc291cy1hbWVuZGVtZW50cyAobWFpbiBsZXbDqWUpIHNzLWFkdHNcIixcbiAgICBFbXB0eSA9IFwiXCIsXG4gICAgUmVqZXREVW5BbWVuZGVtZW50TWFpbkxldsOpZUFkdCA9IFwiUkVKRVQgZOKAmXVuIGFtZW5kZW1lbnQgKG1haW4gbGV2w6llKSBhZHRcIixcbiAgICBSZWpldERVbkFydGljbGVWb3Rlw4BNYWluTGV2w6llID0gXCJSRUpFVCBk4oCZdW4gYXJ0aWNsZSAodm90ZSDDoCBtYWluIGxldsOpZSlcIixcbiAgICBSZWpldERVblNvdXNBbWVuZGVtZW50TWFpbkxldsOpZVNzQWR0ID0gXCJSRUpFVCBk4oCZdW4gc291cy1hbWVuZGVtZW50IChtYWluIGxldsOpZSkgc3MtYWR0XCIsXG4gICAgUmVqZXREZVBsdXNpZXVyc0FtZW5kZW1lbnRzTWFpbkxldsOpZUFkdHMgPSBcIlJFSkVUIGRlIHBsdXNpZXVycyBhbWVuZGVtZW50cyAobWFpbiBsZXbDqWUpIGFkdHNcIixcbiAgICBSZWpldERlUGx1c2lldXJzU291c0FtZW5kZW1lbnRzTWFpbkxldsOpZVNzQWR0cyA9IFwiUkVKRVQgZGUgcGx1c2lldXJzIHNvdXMtYW1lbmRlbWVudHMgKG1haW4gbGV2w6llKSBzcy1hZHRzXCIsXG4gICAgUmVqZXRNb3Rpb25EZVJlamV0UHLDqWFsYWJsZU1haW5MZXbDqWUgPSBcIlJFSkVUIG1vdGlvbiBkZSByZWpldCBwcsOpYWxhYmxlIChtYWluIGxldsOpZSlcIixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQb2ludCB7XG4gICAgbml2cG9pbnQ6ICAgICAgICAgICAgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIHZhbGV1cl9wdHNvZGo6ICAgICAgIHN0cmluZztcbiAgICBvcmRpbmFsX3ByaXNlOiAgICAgICBzdHJpbmc7XG4gICAgaWRfcHJlcGFyYXRpb246ICAgICAgc3RyaW5nO1xuICAgIG9yZHJlX2Fic29sdV9zZWFuY2U6IHN0cmluZztcbiAgICBjb2RlX2dyYW1tYWlyZTogICAgICBzdHJpbmc7XG4gICAgY29kZV9zdHlsZT86ICAgICAgICAgc3RyaW5nO1xuICAgIGNvZGVfcGFyb2xlOiAgICAgICAgIHN0cmluZztcbiAgICBzb21tYWlyZTogICAgICAgICAgICBzdHJpbmc7XG4gICAgaWRfc3ljZXJvbjogICAgICAgICAgc3RyaW5nO1xuICAgIHZhbGV1cjogICAgICAgICAgICAgIHN0cmluZztcbiAgICBvcmF0ZXVycz86ICAgICAgICAgICBPcmF0ZXVycyB8IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICB0ZXh0ZT86ICAgICAgICAgICAgICBUZXh0ZSB8IHN0cmluZztcbiAgICBwYXJhZ3JhcGhlPzogICAgICAgICBQb2ludFtdIHwgUG9pbnQ7XG4gICAgaW50ZXJFeHRyYWN0aW9uOiAgICAgSW50ZXJFeHRyYWN0aW9uW10gfCBJbnRlckV4dHJhY3Rpb24gfCB1bmRlZmluZWQ7XG4gICAgcG9pbnQ/OiAgICAgICAgICAgICAgUG9pbnRbXSB8IFBvaW50O1xuICAgIHN0cnVjdHVyZT86ICAgICAgICAgIHN0cmluZztcbiAgICBpZF9hY3RldXI/OiAgICAgICAgICBzdHJpbmc7XG4gICAgaWRfbWFuZGF0PzogICAgICAgICAgc3RyaW5nO1xuICAgIGlkX25vbWluYXRpb25fb2U/OiAgIHN0cmluZztcbiAgICBpZF9ub21pbmF0aW9uX29wPzogICBzdHJpbmc7XG4gICAgb3JhdGV1cj86ICAgICAgICAgICAgc3RyaW5nO1xuICAgIGJpYmFyZD86ICAgICAgICAgICAgIHN0cmluZztcbiAgICBhcnQ/OiAgICAgICAgICAgICAgICBzdHJpbmc7XG4gICAgYWR0PzogICAgICAgICAgICAgICAgc3RyaW5nO1xuICAgIHNzYWR0PzogICAgICAgICAgICAgIHN0cmluZztcbiAgICByb2xlZGViYXQ/OiAgICAgICAgICBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgY2hhbmdlbWVudFByZXNpZGVuY2U/OiBQb2ludDtcbiAgICB0eXBlX2RlYmF0PzogICAgICAgICBzdHJpbmc7XG4gICAgZGVjaXNpb24/OiAgICAgICAgICAgRGVjaXNpb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUXVhbnRpZW1lcyB7XG4gICAgam91cm5lZTogc3RyaW5nO1xuICAgIHNlc3Npb246IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZXRhZG9ubmVlcyB7XG4gICAgZGF0ZVNlYW5jZTogICAgICBzdHJpbmc7XG4gICAgZGF0ZVNlYW5jZUpvdXI6ICBzdHJpbmc7XG4gICAgbnVtU2VhbmNlSm91cjogICBzdHJpbmc7XG4gICAgbnVtU2VhbmNlOiAgICAgICBzdHJpbmc7XG4gICAgdHlwZUFzc2VtYmxlZTogICBzdHJpbmc7XG4gICAgbGVnaXNsYXR1cmU6ICAgICBzdHJpbmc7XG4gICAgc2Vzc2lvbjogICAgICAgICBzdHJpbmc7XG4gICAgbm9tRmljaGllckpvOiAgICBzdHJpbmc7XG4gICAgdmFsaWRpdGU6ICAgICAgICBzdHJpbmc7XG4gICAgZXRhdDogICAgICAgICAgICBzdHJpbmc7XG4gICAgZGlmZnVzaW9uOiAgICAgICBzdHJpbmc7XG4gICAgdmVyc2lvbjogICAgICAgICBzdHJpbmc7XG4gICAgZW52aXJvbm5lbWVudDogICBzdHJpbmc7XG4gICAgaGV1cmVHZW5lcmF0aW9uOiBEYXRlO1xuICAgIHNvbW1haXJlOiAgICAgICAgU29tbWFpcmU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU29tbWFpcmUge1xuICAgIHByZXNpZGVudFNlYW5jZTogUGFyYTtcbiAgICBzb21tYWlyZTE6ICAgICAgIFNvbW1haXJlRWxlbWVudFtdIHwgU29tbWFpcmVFbGVtZW50O1xuICAgIHNvbW1haXJlMz86ICAgICAgU29tbWFpcmVFbGVtZW50W10gfCBTb21tYWlyZUVsZW1lbnQ7XG4gICAgc29tbWFpcmUyPzogICAgICBTb21tYWlyZUVsZW1lbnRbXSB8IFNvbW1haXJlRWxlbWVudDtcbiAgICBwYXJhPzogICAgICAgICAgIFBhcmE7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU29tbWFpcmVFbGVtZW50IHtcbiAgICB2YWxldXJfcHRzX29kajogICBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgdGl0cmVTdHJ1Y3Q6ICAgICAgVGl0cmVTdHJ1Y3Q7XG4gICAgcGFyYT86ICAgICAgICAgICAgQXJyYXk8UGFyYSB8IHN0cmluZz4gfCBQYXJhO1xuICAgIFBhcmE/OiAgICAgICAgICAgIEFycmF5PFBhcmEgfCBzdHJpbmc+IHwgUGFyYTtcbiAgICBzb21tYWlyZTI/OiAgICAgICBTb21tYWlyZUVsZW1lbnRbXSB8IFNvbW1haXJlRWxlbWVudDtcbiAgICBzb21tYWlyZTM/OiAgICAgICBTb21tYWlyZUVsZW1lbnRbXSB8IFNvbW1haXJlRWxlbWVudDtcbiAgICBwcmVzaWRlbnRTZWFuY2U/OiBQYXJhW10gfCBQYXJhO1xuICAgIHR5cGVfZGViYXQ/OiAgICAgIHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXJhIHtcbiAgICBfPzogICAgICAgICAgIHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBpZF9zeWNlcm9uPzogIHN0cmluZztcbiAgICBzdXA/OiAgICAgICAgIHN0cmluZztcbiAgICBsaWVuQWR0PzogICAgIFBhcmFbXSB8IFBhcmE7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGl0cmVTdHJ1Y3Qge1xuICAgIGlkX3N5Y2Vyb246ICAgIHN0cmluZztcbiAgICBpbnRpdHVsZT86ICAgICBUZXh0ZSB8IHN0cmluZztcbiAgICBzb3VzSW50aXR1bGU/OiBzdHJpbmc7XG4gICAgdHlwZV9kZWJhdD86ICAgc3RyaW5nO1xufVxuXG4vLyBDb252ZXJ0cyBKU09OIHN0cmluZ3MgdG8vZnJvbSB5b3VyIHR5cGVzXG4vLyBhbmQgYXNzZXJ0cyB0aGUgcmVzdWx0cyBvZiBKU09OLnBhcnNlIGF0IHJ1bnRpbWVcbmV4cG9ydCBjbGFzcyBDb252ZXJ0IHtcbiAgICBwdWJsaWMgc3RhdGljIHRvQ29tcHRlc1JlbmR1cyhqc29uOiBzdHJpbmcpOiBDb21wdGVzUmVuZHVzIHtcbiAgICAgICAgcmV0dXJuIGNhc3QoSlNPTi5wYXJzZShqc29uKSwgcihcIkNvbXB0ZXNSZW5kdXNcIikpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgY29tcHRlc1JlbmR1c1RvSnNvbih2YWx1ZTogQ29tcHRlc1JlbmR1cyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh1bmNhc3QodmFsdWUsIHIoXCJDb21wdGVzUmVuZHVzXCIpKSwgbnVsbCwgMik7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyB0b0NvbXB0ZVJlbmR1V3JhcHBlcihqc29uOiBzdHJpbmcpOiBDb21wdGVSZW5kdVdyYXBwZXIge1xuICAgICAgICByZXR1cm4gY2FzdChKU09OLnBhcnNlKGpzb24pLCByKFwiQ29tcHRlUmVuZHVXcmFwcGVyXCIpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGNvbXB0ZVJlbmR1V3JhcHBlclRvSnNvbih2YWx1ZTogQ29tcHRlUmVuZHVXcmFwcGVyKTogc3RyaW5nIHtcdFxuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodW5jYXN0KHZhbHVlLCByKFwiQ29tcHRlUmVuZHVXcmFwcGVyXCIpKSwgbnVsbCwgMik7XHRcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGludmFsaWRWYWx1ZSh0eXA6IGFueSwgdmFsOiBhbnksIGtleTogYW55LCBwYXJlbnQ6IGFueSA9ICcnKTogbmV2ZXIge1xuICAgIGNvbnN0IHByZXR0eVR5cCA9IHByZXR0eVR5cGVOYW1lKHR5cCk7XG4gICAgY29uc3QgcGFyZW50VGV4dCA9IHBhcmVudCA/IGAgb24gJHtwYXJlbnR9YCA6ICcnO1xuICAgIGNvbnN0IGtleVRleHQgPSBrZXkgPyBgIGZvciBrZXkgXCIke2tleX1cImAgOiAnJztcbiAgICB0aHJvdyBFcnJvcihgSW52YWxpZCB2YWx1ZSR7a2V5VGV4dH0ke3BhcmVudFRleHR9LiBFeHBlY3RlZCAke3ByZXR0eVR5cH0gYnV0IGdvdCAke0pTT04uc3RyaW5naWZ5KHZhbCl9YCk7XG59XG5cbmZ1bmN0aW9uIHByZXR0eVR5cGVOYW1lKHR5cDogYW55KTogc3RyaW5nIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0eXApKSB7XG4gICAgICAgIGlmICh0eXAubGVuZ3RoID09PSAyICYmIHR5cFswXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gYGFuIG9wdGlvbmFsICR7cHJldHR5VHlwZU5hbWUodHlwWzFdKX1gO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGBvbmUgb2YgWyR7dHlwLm1hcChhID0+IHsgcmV0dXJuIHByZXR0eVR5cGVOYW1lKGEpOyB9KS5qb2luKFwiLCBcIil9XWA7XG4gICAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB0eXAgPT09IFwib2JqZWN0XCIgJiYgdHlwLmxpdGVyYWwgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gdHlwLmxpdGVyYWw7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB0eXA7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBqc29uVG9KU1Byb3BzKHR5cDogYW55KTogYW55IHtcbiAgICBpZiAodHlwLmpzb25Ub0pTID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29uc3QgbWFwOiBhbnkgPSB7fTtcbiAgICAgICAgdHlwLnByb3BzLmZvckVhY2goKHA6IGFueSkgPT4gbWFwW3AuanNvbl0gPSB7IGtleTogcC5qcywgdHlwOiBwLnR5cCB9KTtcbiAgICAgICAgdHlwLmpzb25Ub0pTID0gbWFwO1xuICAgIH1cbiAgICByZXR1cm4gdHlwLmpzb25Ub0pTO1xufVxuXG5mdW5jdGlvbiBqc1RvSlNPTlByb3BzKHR5cDogYW55KTogYW55IHtcbiAgICBpZiAodHlwLmpzVG9KU09OID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29uc3QgbWFwOiBhbnkgPSB7fTtcbiAgICAgICAgdHlwLnByb3BzLmZvckVhY2goKHA6IGFueSkgPT4gbWFwW3AuanNdID0geyBrZXk6IHAuanNvbiwgdHlwOiBwLnR5cCB9KTtcbiAgICAgICAgdHlwLmpzVG9KU09OID0gbWFwO1xuICAgIH1cbiAgICByZXR1cm4gdHlwLmpzVG9KU09OO1xufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm0odmFsOiBhbnksIHR5cDogYW55LCBnZXRQcm9wczogYW55LCBrZXk6IGFueSA9ICcnLCBwYXJlbnQ6IGFueSA9ICcnKTogYW55IHtcbiAgICBmdW5jdGlvbiB0cmFuc2Zvcm1QcmltaXRpdmUodHlwOiBzdHJpbmcsIHZhbDogYW55KTogYW55IHtcbiAgICAgICAgaWYgKHR5cGVvZiB0eXAgPT09IHR5cGVvZiB2YWwpIHJldHVybiB2YWw7XG4gICAgICAgIHJldHVybiBpbnZhbGlkVmFsdWUodHlwLCB2YWwsIGtleSwgcGFyZW50KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0cmFuc2Zvcm1Vbmlvbih0eXBzOiBhbnlbXSwgdmFsOiBhbnkpOiBhbnkge1xuICAgICAgICAvLyB2YWwgbXVzdCB2YWxpZGF0ZSBhZ2FpbnN0IG9uZSB0eXAgaW4gdHlwc1xuICAgICAgICBjb25zdCBsID0gdHlwcy5sZW5ndGg7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCB0eXAgPSB0eXBzW2ldO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJhbnNmb3JtKHZhbCwgdHlwLCBnZXRQcm9wcyk7XG4gICAgICAgICAgICB9IGNhdGNoIChfKSB7fVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpbnZhbGlkVmFsdWUodHlwcywgdmFsLCBrZXksIHBhcmVudCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdHJhbnNmb3JtRW51bShjYXNlczogc3RyaW5nW10sIHZhbDogYW55KTogYW55IHtcbiAgICAgICAgaWYgKGNhc2VzLmluZGV4T2YodmFsKSAhPT0gLTEpIHJldHVybiB2YWw7XG4gICAgICAgIHJldHVybiBpbnZhbGlkVmFsdWUoY2FzZXMubWFwKGEgPT4geyByZXR1cm4gbChhKTsgfSksIHZhbCwga2V5LCBwYXJlbnQpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRyYW5zZm9ybUFycmF5KHR5cDogYW55LCB2YWw6IGFueSk6IGFueSB7XG4gICAgICAgIC8vIHZhbCBtdXN0IGJlIGFuIGFycmF5IHdpdGggbm8gaW52YWxpZCBlbGVtZW50c1xuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsKSkgcmV0dXJuIGludmFsaWRWYWx1ZShsKFwiYXJyYXlcIiksIHZhbCwga2V5LCBwYXJlbnQpO1xuICAgICAgICByZXR1cm4gdmFsLm1hcChlbCA9PiB0cmFuc2Zvcm0oZWwsIHR5cCwgZ2V0UHJvcHMpKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0cmFuc2Zvcm1EYXRlKHZhbDogYW55KTogYW55IHtcbiAgICAgICAgaWYgKHZhbCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZCA9IG5ldyBEYXRlKHZhbCk7XG4gICAgICAgIGlmIChpc05hTihkLnZhbHVlT2YoKSkpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnZhbGlkVmFsdWUobChcIkRhdGVcIiksIHZhbCwga2V5LCBwYXJlbnQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRyYW5zZm9ybU9iamVjdChwcm9wczogeyBbazogc3RyaW5nXTogYW55IH0sIGFkZGl0aW9uYWw6IGFueSwgdmFsOiBhbnkpOiBhbnkge1xuICAgICAgICBpZiAodmFsID09PSBudWxsIHx8IHR5cGVvZiB2YWwgIT09IFwib2JqZWN0XCIgfHwgQXJyYXkuaXNBcnJheSh2YWwpKSB7XG4gICAgICAgICAgICByZXR1cm4gaW52YWxpZFZhbHVlKGwocmVmIHx8IFwib2JqZWN0XCIpLCB2YWwsIGtleSwgcGFyZW50KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXN1bHQ6IGFueSA9IHt9O1xuICAgICAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhwcm9wcykuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJvcCA9IHByb3BzW2tleV07XG4gICAgICAgICAgICBjb25zdCB2ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbCwga2V5KSA/IHZhbFtrZXldIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgcmVzdWx0W3Byb3Aua2V5XSA9IHRyYW5zZm9ybSh2LCBwcm9wLnR5cCwgZ2V0UHJvcHMsIGtleSwgcmVmKTtcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHZhbCkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocHJvcHMsIGtleSkpIHtcbiAgICAgICAgICAgICAgICByZXN1bHRba2V5XSA9IHRyYW5zZm9ybSh2YWxba2V5XSwgYWRkaXRpb25hbCwgZ2V0UHJvcHMsIGtleSwgcmVmKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgaWYgKHR5cCA9PT0gXCJhbnlcIikgcmV0dXJuIHZhbDtcbiAgICBpZiAodHlwID09PSBudWxsKSB7XG4gICAgICAgIGlmICh2YWwgPT09IG51bGwpIHJldHVybiB2YWw7XG4gICAgICAgIHJldHVybiBpbnZhbGlkVmFsdWUodHlwLCB2YWwsIGtleSwgcGFyZW50KTtcbiAgICB9XG4gICAgaWYgKHR5cCA9PT0gZmFsc2UpIHJldHVybiBpbnZhbGlkVmFsdWUodHlwLCB2YWwsIGtleSwgcGFyZW50KTtcbiAgICBsZXQgcmVmOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgd2hpbGUgKHR5cGVvZiB0eXAgPT09IFwib2JqZWN0XCIgJiYgdHlwLnJlZiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJlZiA9IHR5cC5yZWY7XG4gICAgICAgIHR5cCA9IHR5cGVNYXBbdHlwLnJlZl07XG4gICAgfVxuICAgIGlmIChBcnJheS5pc0FycmF5KHR5cCkpIHJldHVybiB0cmFuc2Zvcm1FbnVtKHR5cCwgdmFsKTtcbiAgICBpZiAodHlwZW9mIHR5cCA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICByZXR1cm4gdHlwLmhhc093blByb3BlcnR5KFwidW5pb25NZW1iZXJzXCIpID8gdHJhbnNmb3JtVW5pb24odHlwLnVuaW9uTWVtYmVycywgdmFsKVxuICAgICAgICAgICAgOiB0eXAuaGFzT3duUHJvcGVydHkoXCJhcnJheUl0ZW1zXCIpICAgID8gdHJhbnNmb3JtQXJyYXkodHlwLmFycmF5SXRlbXMsIHZhbClcbiAgICAgICAgICAgIDogdHlwLmhhc093blByb3BlcnR5KFwicHJvcHNcIikgICAgICAgICA/IHRyYW5zZm9ybU9iamVjdChnZXRQcm9wcyh0eXApLCB0eXAuYWRkaXRpb25hbCwgdmFsKVxuICAgICAgICAgICAgOiBpbnZhbGlkVmFsdWUodHlwLCB2YWwsIGtleSwgcGFyZW50KTtcbiAgICB9XG4gICAgLy8gTnVtYmVycyBjYW4gYmUgcGFyc2VkIGJ5IERhdGUgYnV0IHNob3VsZG4ndCBiZS5cbiAgICBpZiAodHlwID09PSBEYXRlICYmIHR5cGVvZiB2YWwgIT09IFwibnVtYmVyXCIpIHJldHVybiB0cmFuc2Zvcm1EYXRlKHZhbCk7XG4gICAgcmV0dXJuIHRyYW5zZm9ybVByaW1pdGl2ZSh0eXAsIHZhbCk7XG59XG5cbmZ1bmN0aW9uIGNhc3Q8VD4odmFsOiBhbnksIHR5cDogYW55KTogVCB7XG4gICAgcmV0dXJuIHRyYW5zZm9ybSh2YWwsIHR5cCwganNvblRvSlNQcm9wcyk7XG59XG5cbmZ1bmN0aW9uIHVuY2FzdDxUPih2YWw6IFQsIHR5cDogYW55KTogYW55IHtcbiAgICByZXR1cm4gdHJhbnNmb3JtKHZhbCwgdHlwLCBqc1RvSlNPTlByb3BzKTtcbn1cblxuZnVuY3Rpb24gbCh0eXA6IGFueSkge1xuICAgIHJldHVybiB7IGxpdGVyYWw6IHR5cCB9O1xufVxuXG5mdW5jdGlvbiBhKHR5cDogYW55KSB7XG4gICAgcmV0dXJuIHsgYXJyYXlJdGVtczogdHlwIH07XG59XG5cbmZ1bmN0aW9uIHUoLi4udHlwczogYW55W10pIHtcbiAgICByZXR1cm4geyB1bmlvbk1lbWJlcnM6IHR5cHMgfTtcbn1cblxuZnVuY3Rpb24gbyhwcm9wczogYW55W10sIGFkZGl0aW9uYWw6IGFueSkge1xuICAgIHJldHVybiB7IHByb3BzLCBhZGRpdGlvbmFsIH07XG59XG5cbi8vIGZ1bmN0aW9uIG0oYWRkaXRpb25hbDogYW55KSB7XG4vLyAgICAgcmV0dXJuIHsgcHJvcHM6IFtdLCBhZGRpdGlvbmFsIH07XG4vLyB9XG5cbmZ1bmN0aW9uIHIobmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHsgcmVmOiBuYW1lIH07XG59XG5cbmNvbnN0IHR5cGVNYXA6IGFueSA9IHtcbiAgICBcIkNvbXB0ZXNSZW5kdXNcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJjb21wdGVzUmVuZHVzXCIsIGpzOiBcImNvbXB0ZXNSZW5kdXNcIiwgdHlwOiByKFwiQ29tcHRlUmVuZHVDbGFzc1wiKSB9LFxuICAgIF0sIGZhbHNlKSxcbiAgICBcIkNvbXB0ZVJlbmR1Q2xhc3NcIjogbyhbXHRcbiAgICAgICAgeyBqc29uOiBcImNvbXB0ZVJlbmR1XCIsIGpzOiBcImNvbXB0ZVJlbmR1XCIsIHR5cDogYShyKFwiQ29tcHRlUmVuZHVcIikpIH0sXHRcbiAgICBdLCBmYWxzZSksXHRcbiAgICBcIkNvbXB0ZVJlbmR1V3JhcHBlclwiOiBvKFtcdFxuICAgICAgICB7IGpzb246IFwiY29tcHRlUmVuZHVcIiwganM6IFwiY29tcHRlUmVuZHVcIiwgdHlwOiByKFwiQ29tcHRlUmVuZHVcIikgfSxcdFxuICAgIF0sIGZhbHNlKSxcbiAgICBcIkNvbXB0ZVJlbmR1XCI6IG8oW1xuICAgICAgICB7IGpzb246IFwieG1sbnNcIiwganM6IFwieG1sbnNcIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJ1aWRcIiwganM6IFwidWlkXCIsIHR5cDogXCJcIiB9LFxuICAgICAgICB7IGpzb246IFwic2VhbmNlUmVmXCIsIGpzOiBcInNlYW5jZVJlZlwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcInNlc3Npb25SZWZcIiwganM6IFwic2Vzc2lvblJlZlwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcIm1ldGFkb25uZWVzXCIsIGpzOiBcIm1ldGFkb25uZWVzXCIsIHR5cDogcihcIk1ldGFkb25uZWVzXCIpIH0sXG4gICAgICAgIHsganNvbjogXCJjb250ZW51XCIsIGpzOiBcImNvbnRlbnVcIiwgdHlwOiByKFwiQ29udGVudVwiKSB9LFxuICAgIF0sIGZhbHNlKSxcbiAgICBcIkNvbnRlbnVcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJxdWFudGllbWVzXCIsIGpzOiBcInF1YW50aWVtZXNcIiwgdHlwOiByKFwiUXVhbnRpZW1lc1wiKSB9LFxuICAgICAgICB7IGpzb246IFwib3V2ZXJ0dXJlU2VhbmNlXCIsIGpzOiBcIm91dmVydHVyZVNlYW5jZVwiLCB0eXA6IHIoXCJPdXZlcnR1cmVTZWFuY2VcIikgfSxcbiAgICAgICAgeyBqc29uOiBcInBvaW50XCIsIGpzOiBcInBvaW50XCIsIHR5cDogdShhKHIoXCJQb2ludFwiKSksIHIoXCJQb2ludFwiKSkgfSxcbiAgICAgICAgeyBqc29uOiBcImZpblNlYW5jZVwiLCBqczogXCJmaW5TZWFuY2VcIiwgdHlwOiB1KHVuZGVmaW5lZCwgcihcIkZpblNlYW5jZVwiKSkgfSxcbiAgICAgICAgeyBqc29uOiBcInBhcmFncmFwaGVcIiwganM6IFwicGFyYWdyYXBoZVwiLCB0eXA6IHUodW5kZWZpbmVkLCBhKHIoXCJQb2ludFwiKSkpIH0sXG4gICAgXSwgZmFsc2UpLFxuICAgIFwiRmluU2VhbmNlXCI6IG8oW1xuICAgICAgICB7IGpzb246IFwicG9pbnRcIiwganM6IFwicG9pbnRcIiwgdHlwOiByKFwiRmluU2VhbmNlUG9pbnRcIikgfSxcbiAgICBdLCBmYWxzZSksXG4gICAgXCJGaW5TZWFuY2VQb2ludFwiOiBvKFtcbiAgICAgICAgeyBqc29uOiBcIm5pdnBvaW50XCIsIGpzOiBcIm5pdnBvaW50XCIsIHR5cDogXCJcIiB9LFxuICAgICAgICB7IGpzb246IFwidmFsZXVyX3B0c29kalwiLCBqczogXCJ2YWxldXJfcHRzb2RqXCIsIHR5cDogXCJcIiB9LFxuICAgICAgICB7IGpzb246IFwib3JkaW5hbF9wcmlzZVwiLCBqczogXCJvcmRpbmFsX3ByaXNlXCIsIHR5cDogXCJcIiB9LFxuICAgICAgICB7IGpzb246IFwiaWRfcHJlcGFyYXRpb25cIiwganM6IFwiaWRfcHJlcGFyYXRpb25cIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJvcmRyZV9hYnNvbHVfc2VhbmNlXCIsIGpzOiBcIm9yZHJlX2Fic29sdV9zZWFuY2VcIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJjb2RlX2dyYW1tYWlyZVwiLCBqczogXCJjb2RlX2dyYW1tYWlyZVwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcImNvZGVfc3R5bGVcIiwganM6IFwiY29kZV9zdHlsZVwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcImNvZGVfcGFyb2xlXCIsIGpzOiBcImNvZGVfcGFyb2xlXCIsIHR5cDogXCJcIiB9LFxuICAgICAgICB7IGpzb246IFwic29tbWFpcmVcIiwganM6IFwic29tbWFpcmVcIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJpZF9zeWNlcm9uXCIsIGpzOiBcImlkX3N5Y2Vyb25cIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJ2YWxldXJcIiwganM6IFwidmFsZXVyXCIsIHR5cDogXCJcIiB9LFxuICAgICAgICB7IGpzb246IFwib3JhdGV1cnNcIiwganM6IFwib3JhdGV1cnNcIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJ0ZXh0ZVwiLCBqczogXCJ0ZXh0ZVwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcInBhcmFncmFwaGVcIiwganM6IFwicGFyYWdyYXBoZVwiLCB0eXA6IGEocihcIlBvaW50XCIpKSB9LFxuICAgICAgICB7IGpzb246IFwidHlwZV9kZWJhdFwiLCBqczogXCJ0eXBlX2RlYmF0XCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgXSwgZmFsc2UpLFxuICAgIFwiT3JhdGV1cnNcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJvcmF0ZXVyXCIsIGpzOiBcIm9yYXRldXJcIiwgdHlwOiB1KGEocihcIk9yYXRldXJFbGVtZW50XCIpKSwgcihcIk9yYXRldXJFbGVtZW50XCIpKSB9LFxuICAgIF0sIGZhbHNlKSxcbiAgICBcIk9yYXRldXJFbGVtZW50XCI6IG8oW1xuICAgICAgICB7IGpzb246IFwibm9tXCIsIGpzOiBcIm5vbVwiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgICAgICB7IGpzb246IFwiaWRcIiwganM6IFwiaWRcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcInF1YWxpdGVcIiwganM6IFwicXVhbGl0ZVwiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgIF0sIGZhbHNlKSxcbiAgICBcIlRleHRlXCI6IG8oW1xuICAgICAgICB7IGpzb246IFwiX1wiLCBqczogXCJfXCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICAgIHsganNvbjogXCJzdGltZVwiLCBqczogXCJzdGltZVwiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgICAgICB7IGpzb246IFwiaW5kaWNlXCIsIGpzOiBcImluZGljZVwiLCB0eXA6IHUodW5kZWZpbmVkLCB1KGEoXCJcIiksIFwiXCIpKSB9LFxuICAgIF0sIGZhbHNlKSxcbiAgICBcIk91dmVydHVyZVNlYW5jZVwiOiBvKFtcbiAgICAgICAgeyBqc29uOiBcIm5pdnBvaW50XCIsIGpzOiBcIm5pdnBvaW50XCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICAgIHsganNvbjogXCJ2YWxldXJfcHRzb2RqXCIsIGpzOiBcInZhbGV1cl9wdHNvZGpcIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJvcmRpbmFsX3ByaXNlXCIsIGpzOiBcIm9yZGluYWxfcHJpc2VcIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJpZF9wcmVwYXJhdGlvblwiLCBqczogXCJpZF9wcmVwYXJhdGlvblwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcIm9yZHJlX2Fic29sdV9zZWFuY2VcIiwganM6IFwib3JkcmVfYWJzb2x1X3NlYW5jZVwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcImlkX2FjdGV1clwiLCBqczogXCJpZF9hY3RldXJcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcImlkX21hbmRhdFwiLCBqczogXCJpZF9tYW5kYXRcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcImlkX25vbWluYXRpb25fb2VcIiwganM6IFwiaWRfbm9taW5hdGlvbl9vZVwiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgICAgICB7IGpzb246IFwiaWRfbm9taW5hdGlvbl9vcFwiLCBqczogXCJpZF9ub21pbmF0aW9uX29wXCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICAgIHsganNvbjogXCJjb2RlX2dyYW1tYWlyZVwiLCBqczogXCJjb2RlX2dyYW1tYWlyZVwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcImNvZGVfc3R5bGVcIiwganM6IFwiY29kZV9zdHlsZVwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcImNvZGVfcGFyb2xlXCIsIGpzOiBcImNvZGVfcGFyb2xlXCIsIHR5cDogXCJcIiB9LFxuICAgICAgICB7IGpzb246IFwic29tbWFpcmVcIiwganM6IFwic29tbWFpcmVcIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJpZF9zeWNlcm9uXCIsIGpzOiBcImlkX3N5Y2Vyb25cIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJ2YWxldXJcIiwganM6IFwidmFsZXVyXCIsIHR5cDogXCJcIiB9LFxuICAgICAgICB7IGpzb246IFwib3JhdGV1cnNcIiwganM6IFwib3JhdGV1cnNcIiwgdHlwOiB1KHIoXCJPcmF0ZXVyc1wiKSwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcInRleHRlXCIsIGpzOiBcInRleHRlXCIsIHR5cDogdShyKFwiVGV4dGVcIiksIFwiXCIpIH0sXG4gICAgICAgIHsganNvbjogXCJwYXJhZ3JhcGhlXCIsIGpzOiBcInBhcmFncmFwaGVcIiwgdHlwOiB1KHVuZGVmaW5lZCwgYShyKFwiUG9pbnRcIikpKSB9LFxuICAgICAgICB7IGpzb246IFwiaW50ZXJFeHRyYWN0aW9uXCIsIGpzOiBcImludGVyRXh0cmFjdGlvblwiLCB0eXA6IHUodW5kZWZpbmVkLCByKFwiSW50ZXJFeHRyYWN0aW9uXCIpKSB9LFxuICAgICAgICB7IGpzb246IFwicG9pbnRcIiwganM6IFwicG9pbnRcIiwgdHlwOiB1KHVuZGVmaW5lZCwgcihcIlBvaW50XCIpKSB9LFxuICAgICAgICB7IGpzb246IFwib3V2ZXJ0dXJlU2VhbmNlXCIsIGpzOiBcIm91dmVydHVyZVNlYW5jZVwiLCB0eXA6IHUodW5kZWZpbmVkLCByKFwiT3V2ZXJ0dXJlU2VhbmNlXCIpKSB9LFxuICAgIF0sIGZhbHNlKSxcbiAgICBcIkludGVyRXh0cmFjdGlvblwiOiBvKFtcbiAgICAgICAgeyBqc29uOiBcIm5vbV9vcmF0ZXVyXCIsIGpzOiBcIm5vbV9vcmF0ZXVyXCIsIHR5cDogXCJcIiB9LFxuICAgICAgICB7IGpzb246IFwicXVhbGl0ZVwiLCBqczogXCJub21fb3JhdGV1clwiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgICAgICB7IGpzb246IFwiaWRfYWN0ZXVyXCIsIGpzOiBcImlkX2FjdGV1clwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcImlkX25vbWluYXRpb25fb2VcIiwganM6IFwiaWRfbm9taW5hdGlvbl9vZVwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcImlkX25vbWluYXRpb25fb3BcIiwganM6IFwiaWRfbm9taW5hdGlvbl9vcFwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcImlkX21hbmRhdFwiLCBqczogXCJpZF9tYW5kYXRcIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJwYXJhZ3JhcGhlXCIsIGpzOiBcInBhcmFncmFwaGVcIiwgdHlwOiB1KGEocihcIlBvaW50XCIpKSwgcihcIlBvaW50XCIpKSB9LFxuICAgICAgICB7IGpzb246IFwiY2hhbmdlbWVudFByZXNpZGVuY2VcIiwganM6IFwiY2hhbmdlbWVudFByZXNpZGVuY2VcIiwgdHlwOiB1KHVuZGVmaW5lZCwgcihcIlBvaW50XCIpKSB9LFxuICAgIF0sIGZhbHNlKSxcbiAgICBcIlBvaW50XCI6IG8oW1xuICAgICAgICB7IGpzb246IFwibml2cG9pbnRcIiwganM6IFwibml2cG9pbnRcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcInZhbGV1cl9wdHNvZGpcIiwganM6IFwidmFsZXVyX3B0c29kalwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcIm9yZGluYWxfcHJpc2VcIiwganM6IFwib3JkaW5hbF9wcmlzZVwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcImlkX3ByZXBhcmF0aW9uXCIsIGpzOiBcImlkX3ByZXBhcmF0aW9uXCIsIHR5cDogXCJcIiB9LFxuICAgICAgICB7IGpzb246IFwib3JkcmVfYWJzb2x1X3NlYW5jZVwiLCBqczogXCJvcmRyZV9hYnNvbHVfc2VhbmNlXCIsIHR5cDogXCJcIiB9LFxuICAgICAgICB7IGpzb246IFwiY29kZV9ncmFtbWFpcmVcIiwganM6IFwiY29kZV9ncmFtbWFpcmVcIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJjb2RlX3N0eWxlXCIsIGpzOiBcImNvZGVfc3R5bGVcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcImNvZGVfcGFyb2xlXCIsIGpzOiBcImNvZGVfcGFyb2xlXCIsIHR5cDogXCJcIiB9LFxuICAgICAgICB7IGpzb246IFwic29tbWFpcmVcIiwganM6IFwic29tbWFpcmVcIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJpZF9zeWNlcm9uXCIsIGpzOiBcImlkX3N5Y2Vyb25cIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJ2YWxldXJcIiwganM6IFwidmFsZXVyXCIsIHR5cDogXCJcIiB9LFxuICAgICAgICB7IGpzb246IFwib3JhdGV1cnNcIiwganM6IFwib3JhdGV1cnNcIiwgdHlwOiB1KHIoXCJPcmF0ZXVyc1wiKSwgXCJcIiwgdW5kZWZpbmVkKSB9LFxuICAgICAgICB7IGpzb246IFwidGV4dGVcIiwganM6IFwidGV4dGVcIiwgdHlwOiB1KHIoXCJUZXh0ZVwiKSwgXCJcIiwgdW5kZWZpbmVkKSB9LFxuICAgICAgICB7IGpzb246IFwicGFyYWdyYXBoZVwiLCBqczogXCJwYXJhZ3JhcGhlXCIsIHR5cDogdSh1bmRlZmluZWQsIHUoYShyKFwiUG9pbnRcIikpLCByKFwiUG9pbnRcIikpKSB9LFxuICAgICAgICB7IGpzb246IFwiaW50ZXJFeHRyYWN0aW9uXCIsIGpzOiBcImludGVyRXh0cmFjdGlvblwiLCB0eXA6IHUodW5kZWZpbmVkLCBhKHIoXCJJbnRlckV4dHJhY3Rpb25cIikpLCByKFwiSW50ZXJFeHRyYWN0aW9uXCIpKSB9LFxuICAgICAgICB7IGpzb246IFwicG9pbnRcIiwganM6IFwicG9pbnRcIiwgdHlwOiB1KHVuZGVmaW5lZCwgdShhKHIoXCJQb2ludFwiKSksIHIoXCJQb2ludFwiKSkpIH0sXG4gICAgICAgIHsganNvbjogXCJzdHJ1Y3R1cmVcIiwganM6IFwic3RydWN0dXJlXCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICAgIHsganNvbjogXCJpZF9hY3RldXJcIiwganM6IFwiaWRfYWN0ZXVyXCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICAgIHsganNvbjogXCJpZF9tYW5kYXRcIiwganM6IFwiaWRfbWFuZGF0XCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICAgIHsganNvbjogXCJpZF9ub21pbmF0aW9uX29lXCIsIGpzOiBcImlkX25vbWluYXRpb25fb2VcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcImlkX25vbWluYXRpb25fb3BcIiwganM6IFwiaWRfbm9taW5hdGlvbl9vcFwiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgICAgICB7IGpzb246IFwib3JhdGV1clwiLCBqczogXCJvcmF0ZXVyXCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICAgIHsganNvbjogXCJiaWJhcmRcIiwganM6IFwiYmliYXJkXCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICAgIHsganNvbjogXCJhcnRcIiwganM6IFwiYXJ0XCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICAgIHsganNvbjogXCJhZHRcIiwganM6IFwiYWR0XCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICAgIHsganNvbjogXCJzc2FkdFwiLCBqczogXCJzc2FkdFwiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgICAgICB7IGpzb246IFwicm9sZWRlYmF0XCIsIGpzOiBcInJvbGVkZWJhdFwiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgICAgICB7IGpzb246IFwidHlwZV9kZWJhdFwiLCBqczogXCJ0eXBlX2RlYmF0XCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICAgIHsganNvbjogXCJjaGFuZ2VtZW50UHJlc2lkZW5jZVwiLCBqczogXCJjaGFuZ2VtZW50UHJlc2lkZW5jZVwiLCB0eXA6IHUodW5kZWZpbmVkLCByKFwiUG9pbnRcIikpIH0sXG4gICAgICAgIHsganNvbjogXCJkZWNpc2lvblwiLCBqczogXCJkZWNpc2lvblwiLCB0eXA6IHUodW5kZWZpbmVkLCByKFwiRGVjaXNpb25cIikpIH0sXG4gICAgXSwgZmFsc2UpLFxuICAgIFwiUXVhbnRpZW1lc1wiOiBvKFtcbiAgICAgICAgeyBqc29uOiBcImpvdXJuZWVcIiwganM6IFwiam91cm5lZVwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcInNlc3Npb25cIiwganM6IFwic2Vzc2lvblwiLCB0eXA6IFwiXCIgfSxcbiAgICBdLCBmYWxzZSksXG4gICAgXCJNZXRhZG9ubmVlc1wiOiBvKFtcbiAgICAgICAgeyBqc29uOiBcImRhdGVTZWFuY2VcIiwganM6IFwiZGF0ZVNlYW5jZVwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcImRhdGVTZWFuY2VKb3VyXCIsIGpzOiBcImRhdGVTZWFuY2VKb3VyXCIsIHR5cDogXCJcIiB9LFxuICAgICAgICB7IGpzb246IFwibnVtU2VhbmNlSm91clwiLCBqczogXCJudW1TZWFuY2VKb3VyXCIsIHR5cDogXCJcIiB9LFxuICAgICAgICB7IGpzb246IFwibnVtU2VhbmNlXCIsIGpzOiBcIm51bVNlYW5jZVwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcInR5cGVBc3NlbWJsZWVcIiwganM6IFwidHlwZUFzc2VtYmxlZVwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcImxlZ2lzbGF0dXJlXCIsIGpzOiBcImxlZ2lzbGF0dXJlXCIsIHR5cDogXCJcIiB9LFxuICAgICAgICB7IGpzb246IFwic2Vzc2lvblwiLCBqczogXCJzZXNzaW9uXCIsIHR5cDogXCJcIiB9LFxuICAgICAgICB7IGpzb246IFwibm9tRmljaGllckpvXCIsIGpzOiBcIm5vbUZpY2hpZXJKb1wiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcInZhbGlkaXRlXCIsIGpzOiBcInZhbGlkaXRlXCIsIHR5cDogXCJcIiB9LFxuICAgICAgICB7IGpzb246IFwiZXRhdFwiLCBqczogXCJldGF0XCIsIHR5cDogXCJcIiB9LFxuICAgICAgICB7IGpzb246IFwiZGlmZnVzaW9uXCIsIGpzOiBcImRpZmZ1c2lvblwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcInZlcnNpb25cIiwganM6IFwidmVyc2lvblwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcImVudmlyb25uZW1lbnRcIiwganM6IFwiZW52aXJvbm5lbWVudFwiLCB0eXA6IFwiXCJ9LFxuICAgICAgICB7IGpzb246IFwiaGV1cmVHZW5lcmF0aW9uXCIsIGpzOiBcImhldXJlR2VuZXJhdGlvblwiLCB0eXA6IERhdGUgfSxcbiAgICAgICAgeyBqc29uOiBcInNvbW1haXJlXCIsIGpzOiBcInNvbW1haXJlXCIsIHR5cDogcihcIlNvbW1haXJlXCIpIH0sXG4gICAgXSwgZmFsc2UpLFxuICAgIFwiU29tbWFpcmVcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJwcmVzaWRlbnRTZWFuY2VcIiwganM6IFwicHJlc2lkZW50U2VhbmNlXCIsIHR5cDogcihcIlBhcmFcIikgfSxcbiAgICAgICAgeyBqc29uOiBcInNvbW1haXJlMVwiLCBqczogXCJzb21tYWlyZTFcIiwgdHlwOiB1KGEocihcIlNvbW1haXJlRWxlbWVudFwiKSksIHIoXCJTb21tYWlyZUVsZW1lbnRcIikpIH0sXG4gICAgICAgIHsganNvbjogXCJzb21tYWlyZTNcIiwganM6IFwic29tbWFpcmUzXCIsIHR5cDogdSh1bmRlZmluZWQsIHUoYShyKFwiU29tbWFpcmVFbGVtZW50XCIpKSwgcihcIlNvbW1haXJlRWxlbWVudFwiKSkpIH0sXG4gICAgICAgIHsganNvbjogXCJzb21tYWlyZTJcIiwganM6IFwic29tbWFpcmUyXCIsIHR5cDogdSh1bmRlZmluZWQsIHUoYShyKFwiU29tbWFpcmVFbGVtZW50XCIpKSwgcihcIlNvbW1haXJlRWxlbWVudFwiKSkpIH0sXG4gICAgICAgIHsganNvbjogXCJwYXJhXCIsIGpzOiBcInBhcmFcIiwgdHlwOiB1KHVuZGVmaW5lZCwgcihcIlBhcmFcIikpIH0sXG4gICAgXSwgZmFsc2UpLFxuICAgIFwiU29tbWFpcmVFbGVtZW50XCI6IG8oW1xuICAgICAgICB7IGpzb246IFwidmFsZXVyX3B0c19vZGpcIiwganM6IFwidmFsZXVyX3B0c19vZGpcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcInRpdHJlU3RydWN0XCIsIGpzOiBcInRpdHJlU3RydWN0XCIsIHR5cDogdSggdW5kZWZpbmVkLCByKFwiVGl0cmVTdHJ1Y3RcIikpIH0sXG4gICAgICAgIHsganNvbjogXCJwYXJhXCIsIGpzOiBcInBhcmFcIiwgdHlwOiB1KHVuZGVmaW5lZCwgdShhKHUocihcIlBhcmFcIiksIFwiXCIpKSwgcihcIlBhcmFcIikpKSB9LFxuICAgICAgICB7IGpzb246IFwiUGFyYVwiLCBqczogXCJQYXJhXCIsIHR5cDogdSh1bmRlZmluZWQsIHUoYSh1KHIoXCJQYXJhXCIpLCBcIlwiKSksIHIoXCJQYXJhXCIpKSkgfSxcbiAgICAgICAgeyBqc29uOiBcInNvbW1haXJlMlwiLCBqczogXCJzb21tYWlyZTJcIiwgdHlwOiB1KHVuZGVmaW5lZCwgdShhKHIoXCJTb21tYWlyZUVsZW1lbnRcIikpLCByKFwiU29tbWFpcmVFbGVtZW50XCIpKSkgfSxcbiAgICAgICAgeyBqc29uOiBcInNvbW1haXJlM1wiLCBqczogXCJzb21tYWlyZTNcIiwgdHlwOiB1KHVuZGVmaW5lZCwgdShhKHIoXCJTb21tYWlyZUVsZW1lbnRcIikpLCByKFwiU29tbWFpcmVFbGVtZW50XCIpKSkgfSxcbiAgICAgICAgeyBqc29uOiBcInByZXNpZGVudFNlYW5jZVwiLCBqczogXCJwcmVzaWRlbnRTZWFuY2VcIiwgdHlwOiB1KHVuZGVmaW5lZCwgdShhKHIoXCJQYXJhXCIpKSwgcihcIlBhcmFcIikpKSB9LFxuICAgICAgICB7IGpzb246IFwidHlwZV9kZWJhdFwiLCBqczogXCJ0eXBlX2RlYmF0XCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgXSwgZmFsc2UpLFxuICAgIFwiUGFyYVwiOiBvKFtcbiAgICAgICAgeyBqc29uOiBcIl9cIiwganM6IFwiX1wiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgICAgICB7IGpzb246IFwiaWRfc3ljZXJvblwiLCBqczogXCJpZF9zeWNlcm9uXCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICAgIHsganNvbjogXCJzdXBcIiwganM6IFwic3VwXCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICAgIHsganNvbjogXCJsaWVuQWR0XCIsIGpzOiBcImxpZW5BZHRcIiwgdHlwOiB1KHVuZGVmaW5lZCwgdShhKHIoXCJQYXJhXCIpKSwgcihcIlBhcmFcIikpKSB9LFxuICAgIF0sIGZhbHNlKSxcbiAgICBcIlRlc3RcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJfXCIsIGpzOiBcIl9cIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcImlkX3N5Y2Vyb25cIiwganM6IFwiaWRfc3ljZXJvblwiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgICAgICB7IGpzb246IFwic3VwXCIsIGpzOiBcInN1cFwiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgIF0sIGZhbHNlKSxcbiAgICBcIlRpdHJlU3RydWN0XCI6IG8oW1xuICAgICAgICB7IGpzb246IFwiaWRfc3ljZXJvblwiLCBqczogXCJpZF9zeWNlcm9uXCIsIHR5cDogXCJcIiB9LFxuICAgICAgICB7IGpzb246IFwiaW50aXR1bGVcIiwganM6IFwiaW50aXR1bGVcIiwgdHlwOiB1KHIoXCJUZXh0ZVwiKSwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcInNvdXNJbnRpdHVsZVwiLCBqczogXCJzb3VzSW50aXR1bGVcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcInR5cGVfZGViYXRcIiwganM6IFwidHlwZV9kZWJhdFwiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgIF0sIGZhbHNlKSxcbiAgICBcIkRlY2lzaW9uXCI6IFtcbiAgICAgICAgXCJBRE9QVElPTiBhbWVuZGVtZW50IChtYWluIGxldsOpZSkgYWR0XCIsXG4gICAgICAgIFwiQURPUFRJT04gZOKAmXVuIGFydGljbGUgKHZvdGUgw6AgbWFpbiBsZXbDqWUpXCIsXG4gICAgICAgIFwiQURPUFRJT04gZOKAmXVuIHNvdXMtYW1lbmRlbWVudCAobWFpbiBsZXbDqWUpIHNzLWFkdFwiLFxuICAgICAgICBcIkFET1BUSU9OIGRlIHBsdXNpZXVycyBhbWVuZGVtZW50cyAobWFpbiBsZXbDqWUpIGFkdHNcIixcbiAgICAgICAgXCJBRE9QVElPTiBkZSBwbHVzaWV1cnMgc291cy1hbWVuZGVtZW50cyAobWFpbiBsZXbDqWUpIHNzLWFkdHNcIixcbiAgICAgICAgXCJcIixcbiAgICAgICAgXCJSRUpFVCBk4oCZdW4gYW1lbmRlbWVudCAobWFpbiBsZXbDqWUpIGFkdFwiLFxuICAgICAgICBcIlJFSkVUIGTigJl1biBhcnRpY2xlICh2b3RlIMOgIG1haW4gbGV2w6llKVwiLFxuICAgICAgICBcIlJFSkVUIGTigJl1biBzb3VzLWFtZW5kZW1lbnQgKG1haW4gbGV2w6llKSBzcy1hZHRcIixcbiAgICAgICAgXCJSRUpFVCBkZSBwbHVzaWV1cnMgYW1lbmRlbWVudHMgKG1haW4gbGV2w6llKSBhZHRzXCIsXG4gICAgICAgIFwiUkVKRVQgZGUgcGx1c2lldXJzIHNvdXMtYW1lbmRlbWVudHMgKG1haW4gbGV2w6llKSBzcy1hZHRzXCIsXG4gICAgICAgIFwiUkVKRVQgbW90aW9uIGRlIHJlamV0IHByw6lh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
573
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEZWNpc2lvbiIsIkNvbnZlcnQiLCJ0b0NvbXB0ZXNSZW5kdXMiLCJqc29uIiwiY2FzdCIsIkpTT04iLCJwYXJzZSIsInIiLCJjb21wdGVzUmVuZHVzVG9Kc29uIiwidmFsdWUiLCJzdHJpbmdpZnkiLCJ1bmNhc3QiLCJ0b0NvbXB0ZVJlbmR1V3JhcHBlciIsImNvbXB0ZVJlbmR1V3JhcHBlclRvSnNvbiIsImludmFsaWRWYWx1ZSIsInR5cCIsInZhbCIsImtleSIsInBhcmVudCIsInByZXR0eVR5cCIsInByZXR0eVR5cGVOYW1lIiwicGFyZW50VGV4dCIsImtleVRleHQiLCJFcnJvciIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsInVuZGVmaW5lZCIsIm1hcCIsImEiLCJqb2luIiwibGl0ZXJhbCIsImpzb25Ub0pTUHJvcHMiLCJqc29uVG9KUyIsInByb3BzIiwiZm9yRWFjaCIsInAiLCJqcyIsImpzVG9KU09OUHJvcHMiLCJqc1RvSlNPTiIsInRyYW5zZm9ybSIsImdldFByb3BzIiwidHJhbnNmb3JtUHJpbWl0aXZlIiwidHJhbnNmb3JtVW5pb24iLCJ0eXBzIiwibCIsImkiLCJfIiwidHJhbnNmb3JtRW51bSIsImNhc2VzIiwiaW5kZXhPZiIsInRyYW5zZm9ybUFycmF5IiwiZWwiLCJ0cmFuc2Zvcm1EYXRlIiwiZCIsIkRhdGUiLCJpc05hTiIsInZhbHVlT2YiLCJ0cmFuc2Zvcm1PYmplY3QiLCJhZGRpdGlvbmFsIiwicmVmIiwicmVzdWx0IiwiT2JqZWN0IiwiZ2V0T3duUHJvcGVydHlOYW1lcyIsInByb3AiLCJ2IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwidHlwZU1hcCIsInVuaW9uTWVtYmVycyIsImFycmF5SXRlbXMiLCJ1IiwibyIsIm5hbWUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvcmF3X3R5cGVzL2RlYmF0cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUbyBwYXJzZSB0aGlzIGRhdGE6XG4vL1xuLy8gICBpbXBvcnQgeyBDb252ZXJ0LCBDb21wdGVzUmVuZHVzLCBDb21wdGVSZW5kdVdyYXBwZXIgfSBmcm9tIFwiLi9maWxlXCI7XG4vL1xuLy8gICBjb25zdCBjb21wdGVSZW5kdSA9IENvbnZlcnQudG9Db21wdGVSZW5kdShqc29uKTtcbi8vICAgY29uc3QgY29tcHRlUmVuZHVXcmFwcGVyID0gQ29udmVydC50b0NvbXB0ZVJlbmR1V3JhcHBlcihqc29uKTtcbi8vXG4vLyBUaGVzZSBmdW5jdGlvbnMgd2lsbCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgSlNPTiBkb2Vzbid0XG4vLyBtYXRjaCB0aGUgZXhwZWN0ZWQgaW50ZXJmYWNlLCBldmVuIGlmIHRoZSBKU09OIGlzIHZhbGlkLlxuXG5leHBvcnQgaW50ZXJmYWNlIENvbXB0ZXNSZW5kdXMge1xuICAgIGNvbXB0ZVJlbmR1OiBDb21wdGVSZW5kdUNsYXNzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbXB0ZVJlbmR1Q2xhc3Mge1xuICAgIGNvbXB0ZVJlbmR1OiBDb21wdGVSZW5kdVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbXB0ZVJlbmR1V3JhcHBlciB7XG4gICAgY29tcHRlUmVuZHU6IENvbXB0ZVJlbmR1O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbXB0ZVJlbmR1IHtcbiAgICB4bWxuczogc3RyaW5nO1xuICAgIHVpZDogc3RyaW5nO1xuICAgIHNlYW5jZVJlZjogc3RyaW5nO1xuICAgIHNlc3Npb25SZWY6IHN0cmluZztcbiAgICBtZXRhZG9ubmVlczogTWV0YWRvbm5lZXM7XG4gICAgY29udGVudTogQ29udGVudTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb250ZW51IHtcbiAgICBxdWFudGllbWVzOiBRdWFudGllbWVzO1xuICAgIG91dmVydHVyZVNlYW5jZTogUG9pbnRbXSB8IFBvaW50O1xuICAgIHBvaW50OiBQb2ludFtdIHwgUG9pbnQ7XG4gICAgZmluU2VhbmNlPzogRmluU2VhbmNlO1xuICAgIHBhcmFncmFwaGU/OiBQb2ludFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpblNlYW5jZSB7XG4gICAgcG9pbnQ6IFBvaW50O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9yYXRldXJzIHtcbiAgICBvcmF0ZXVyOiBPcmF0ZXVyRWxlbWVudFtdIHwgT3JhdGV1ckVsZW1lbnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3JhdGV1ckVsZW1lbnQge1xuICAgIG5vbTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgcXVhbGl0ZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRleHRlIHtcbiAgICBfPzogc3RyaW5nXG4gICAgaWRfc3ljZXJvbj86IHN0cmluZ1xuICAgIHN0aW1lPzogc3RyaW5nXG4gICAgc3VwPzogc3RyaW5nXG4gICAgbGllbkFkdD86IFRleHRlW10gfCBUZXh0ZVxufVxuXG5leHBvcnQgZW51bSBEZWNpc2lvbiB7XG4gICAgQWRvcHRpb25BbWVuZGVtZW50TWFpbkxldsOpZUFkdCA9IFwiQURPUFRJT04gYW1lbmRlbWVudCAobWFpbiBsZXbDqWUpIGFkdFwiLFxuICAgIEFkb3B0aW9uRFVuQXJ0aWNsZVZvdGXDgE1haW5MZXbDqWUgPSBcIkFET1BUSU9OIGTigJl1biBhcnRpY2xlICh2b3RlIMOgIG1haW4gbGV2w6llKVwiLFxuICAgIEFkb3B0aW9uRFVuU291c0FtZW5kZW1lbnRNYWluTGV2w6llU3NBZHQgPSBcIkFET1BUSU9OIGTigJl1biBzb3VzLWFtZW5kZW1lbnQgKG1haW4gbGV2w6llKSBzcy1hZHRcIixcbiAgICBBZG9wdGlvbkRlUGx1c2lldXJzQW1lbmRlbWVudHNNYWluTGV2w6llQWR0cyA9IFwiQURPUFRJT04gZGUgcGx1c2lldXJzIGFtZW5kZW1lbnRzIChtYWluIGxldsOpZSkgYWR0c1wiLFxuICAgIEFkb3B0aW9uRGVQbHVzaWV1cnNTb3VzQW1lbmRlbWVudHNNYWluTGV2w6llU3NBZHRzID0gXCJBRE9QVElPTiBkZSBwbHVzaWV1cnMgc291cy1hbWVuZGVtZW50cyAobWFpbiBsZXbDqWUpIHNzLWFkdHNcIixcbiAgICBFbXB0eSA9IFwiXCIsXG4gICAgUmVqZXREVW5BbWVuZGVtZW50TWFpbkxldsOpZUFkdCA9IFwiUkVKRVQgZOKAmXVuIGFtZW5kZW1lbnQgKG1haW4gbGV2w6llKSBhZHRcIixcbiAgICBSZWpldERVbkFydGljbGVWb3Rlw4BNYWluTGV2w6llID0gXCJSRUpFVCBk4oCZdW4gYXJ0aWNsZSAodm90ZSDDoCBtYWluIGxldsOpZSlcIixcbiAgICBSZWpldERVblNvdXNBbWVuZGVtZW50TWFpbkxldsOpZVNzQWR0ID0gXCJSRUpFVCBk4oCZdW4gc291cy1hbWVuZGVtZW50IChtYWluIGxldsOpZSkgc3MtYWR0XCIsXG4gICAgUmVqZXREZVBsdXNpZXVyc0FtZW5kZW1lbnRzTWFpbkxldsOpZUFkdHMgPSBcIlJFSkVUIGRlIHBsdXNpZXVycyBhbWVuZGVtZW50cyAobWFpbiBsZXbDqWUpIGFkdHNcIixcbiAgICBSZWpldERlUGx1c2lldXJzU291c0FtZW5kZW1lbnRzTWFpbkxldsOpZVNzQWR0cyA9IFwiUkVKRVQgZGUgcGx1c2lldXJzIHNvdXMtYW1lbmRlbWVudHMgKG1haW4gbGV2w6llKSBzcy1hZHRzXCIsXG4gICAgUmVqZXRNb3Rpb25EZVJlamV0UHLDqWFsYWJsZU1haW5MZXbDqWUgPSBcIlJFSkVUIG1vdGlvbiBkZSByZWpldCBwcsOpYWxhYmxlIChtYWluIGxldsOpZSlcIixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQb2ludCB7XG4gICAgaWRfcHJlcGFyYXRpb24/OiBzdHJpbmc7XG4gICAgb3JkcmVfYWJzb2x1X3NlYW5jZT86IHN0cmluZztcbiAgICBjb2RlX2dyYW1tYWlyZT86IHN0cmluZztcbiAgICBzb21tYWlyZT86IHN0cmluZztcbiAgICBpZF9zeWNlcm9uPzogc3RyaW5nO1xuICAgIHZhbGV1cl9wdHNvZGo/OiBzdHJpbmc7XG4gICAgbml2cG9pbnQ/OiBzdHJpbmc7XG4gICAgb3JkaW5hbF9wcmlzZT86IHN0cmluZztcbiAgICBjb2RlX3N0eWxlPzogc3RyaW5nO1xuICAgIGNvZGVfcGFyb2xlPzogc3RyaW5nO1xuICAgIHZhbGV1cj86IHN0cmluZztcbiAgICBvcmF0ZXVycz86IE9yYXRldXJzIHwgc3RyaW5nO1xuICAgIHRleHRlPzogVGV4dGUgfCBzdHJpbmc7XG4gICAgcGFyYWdyYXBoZT86IFBvaW50W10gfCBQb2ludDtcbiAgICBpbnRlckV4dHJhY3Rpb24/OiBQb2ludFtdIHwgUG9pbnQ7XG4gICAgcG9pbnQ/OiBQb2ludFtdIHwgUG9pbnQ7XG4gICAgc3RydWN0dXJlPzogc3RyaW5nO1xuICAgIGlkX2FjdGV1cj86IHN0cmluZztcbiAgICBpZF9tYW5kYXQ/OiBzdHJpbmc7XG4gICAgaWRfbm9taW5hdGlvbl9vZT86IHN0cmluZztcbiAgICBpZF9ub21pbmF0aW9uX29wPzogc3RyaW5nO1xuICAgIG9yYXRldXI/OiBzdHJpbmc7XG4gICAgYmliYXJkPzogc3RyaW5nO1xuICAgIGFydD86IHN0cmluZztcbiAgICBhZHQ/OiBzdHJpbmc7XG4gICAgc3NhZHQ/OiBzdHJpbmc7XG4gICAgcm9sZWRlYmF0Pzogc3RyaW5nO1xuICAgIGNoYW5nZW1lbnRQcmVzaWRlbmNlPzogUG9pbnQ7XG4gICAgdHlwZV9kZWJhdD86IHN0cmluZztcbiAgICBkZWNpc2lvbj86IERlY2lzaW9uO1xuICAgIG91dmVydHVyZVNlYW5jZT86IFBvaW50O1xuICAgIHF1YWxpdGU/OiBzdHJpbmc7XG4gICAgbm9tX29yYXRldXI/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUXVhbnRpZW1lcyB7XG4gICAgam91cm5lZTogc3RyaW5nO1xuICAgIHNlc3Npb246IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZXRhZG9ubmVlcyB7XG4gICAgZGF0ZVNlYW5jZTogc3RyaW5nO1xuICAgIGRhdGVTZWFuY2VKb3VyOiBzdHJpbmc7XG4gICAgbnVtU2VhbmNlSm91cjogc3RyaW5nO1xuICAgIG51bVNlYW5jZTogc3RyaW5nO1xuICAgIHR5cGVBc3NlbWJsZWU6IHN0cmluZztcbiAgICBsZWdpc2xhdHVyZTogc3RyaW5nO1xuICAgIHNlc3Npb246IHN0cmluZztcbiAgICBub21GaWNoaWVySm86IHN0cmluZztcbiAgICB2YWxpZGl0ZTogc3RyaW5nO1xuICAgIGV0YXQ6IHN0cmluZztcbiAgICBkaWZmdXNpb246IHN0cmluZztcbiAgICB2ZXJzaW9uOiBzdHJpbmc7XG4gICAgZW52aXJvbm5lbWVudDogc3RyaW5nO1xuICAgIGhldXJlR2VuZXJhdGlvbjogRGF0ZTtcbiAgICBzb21tYWlyZTogU29tbWFpcmU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU29tbWFpcmUge1xuICAgIHByZXNpZGVudFNlYW5jZTogVGV4dGU7XG4gICAgc29tbWFpcmUxOiBTb21tYWlyZUVsZW1lbnRbXSB8IFNvbW1haXJlRWxlbWVudDtcbiAgICBzb21tYWlyZTM/OiBTb21tYWlyZUVsZW1lbnRbXSB8IFNvbW1haXJlRWxlbWVudDtcbiAgICBzb21tYWlyZTI/OiBTb21tYWlyZUVsZW1lbnRbXSB8IFNvbW1haXJlRWxlbWVudDtcbiAgICBwYXJhPzogVGV4dGVbXSB8IFRleHRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNvbW1haXJlRWxlbWVudCB7XG4gICAgdmFsZXVyX3B0c19vZGo6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICB0aXRyZVN0cnVjdDogVGl0cmVTdHJ1Y3Q7XG4gICAgcGFyYT86IEFycmF5PFRleHRlIHwgc3RyaW5nPiB8IFRleHRlO1xuICAgIHNvbW1haXJlMj86IFNvbW1haXJlRWxlbWVudFtdIHwgU29tbWFpcmVFbGVtZW50O1xuICAgIHNvbW1haXJlMz86IFNvbW1haXJlRWxlbWVudFtdIHwgU29tbWFpcmVFbGVtZW50O1xuICAgIHByZXNpZGVudFNlYW5jZT86IFRleHRlW10gfCBUZXh0ZTtcbiAgICB0eXBlX2RlYmF0Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRpdHJlU3RydWN0IHtcbiAgICBpZF9zeWNlcm9uOiBzdHJpbmc7XG4gICAgaW50aXR1bGU/OiBzdHJpbmc7XG4gICAgc291c0ludGl0dWxlPzogc3RyaW5nO1xuICAgIHR5cGVfZGViYXQ/OiBzdHJpbmc7XG59XG5cbi8vIENvbnZlcnRzIEpTT04gc3RyaW5ncyB0by9mcm9tIHlvdXIgdHlwZXNcbi8vIGFuZCBhc3NlcnRzIHRoZSByZXN1bHRzIG9mIEpTT04ucGFyc2UgYXQgcnVudGltZVxuZXhwb3J0IGNsYXNzIENvbnZlcnQge1xuICAgIHB1YmxpYyBzdGF0aWMgdG9Db21wdGVzUmVuZHVzKGpzb246IHN0cmluZyk6IENvbXB0ZXNSZW5kdXMge1xuICAgICAgICByZXR1cm4gY2FzdChKU09OLnBhcnNlKGpzb24pLCByKFwiQ29tcHRlc1JlbmR1c1wiKSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBjb21wdGVzUmVuZHVzVG9Kc29uKHZhbHVlOiBDb21wdGVzUmVuZHVzKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHVuY2FzdCh2YWx1ZSwgcihcIkNvbXB0ZXNSZW5kdXNcIikpLCBudWxsLCAyKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIHRvQ29tcHRlUmVuZHVXcmFwcGVyKGpzb246IHN0cmluZyk6IENvbXB0ZVJlbmR1V3JhcHBlciB7XG4gICAgICAgIHJldHVybiBjYXN0KEpTT04ucGFyc2UoanNvbiksIHIoXCJDb21wdGVSZW5kdVdyYXBwZXJcIikpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgY29tcHRlUmVuZHVXcmFwcGVyVG9Kc29uKHZhbHVlOiBDb21wdGVSZW5kdVdyYXBwZXIpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodW5jYXN0KHZhbHVlLCByKFwiQ29tcHRlUmVuZHVXcmFwcGVyXCIpKSwgbnVsbCwgMik7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBpbnZhbGlkVmFsdWUodHlwOiBhbnksIHZhbDogYW55LCBrZXk6IGFueSwgcGFyZW50OiBhbnkgPSAnJyk6IG5ldmVyIHtcbiAgICBjb25zdCBwcmV0dHlUeXAgPSBwcmV0dHlUeXBlTmFtZSh0eXApO1xuICAgIGNvbnN0IHBhcmVudFRleHQgPSBwYXJlbnQgPyBgIG9uICR7cGFyZW50fWAgOiAnJztcbiAgICBjb25zdCBrZXlUZXh0ID0ga2V5ID8gYCBmb3Iga2V5IFwiJHtrZXl9XCJgIDogJyc7XG4gICAgdGhyb3cgRXJyb3IoYEludmFsaWQgdmFsdWUke2tleVRleHR9JHtwYXJlbnRUZXh0fS4gRXhwZWN0ZWQgJHtwcmV0dHlUeXB9IGJ1dCBnb3QgJHtKU09OLnN0cmluZ2lmeSh2YWwpfWApO1xufVxuXG5mdW5jdGlvbiBwcmV0dHlUeXBlTmFtZSh0eXA6IGFueSk6IHN0cmluZyB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodHlwKSkge1xuICAgICAgICBpZiAodHlwLmxlbmd0aCA9PT0gMiAmJiB0eXBbMF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIGBhbiBvcHRpb25hbCAke3ByZXR0eVR5cGVOYW1lKHR5cFsxXSl9YDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBgb25lIG9mIFske3R5cC5tYXAoYSA9PiB7IHJldHVybiBwcmV0dHlUeXBlTmFtZShhKTsgfSkuam9pbihcIiwgXCIpfV1gO1xuICAgICAgICB9XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdHlwID09PSBcIm9iamVjdFwiICYmIHR5cC5saXRlcmFsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHR5cC5saXRlcmFsO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgdHlwO1xuICAgIH1cbn1cblxuZnVuY3Rpb24ganNvblRvSlNQcm9wcyh0eXA6IGFueSk6IGFueSB7XG4gICAgaWYgKHR5cC5qc29uVG9KUyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnN0IG1hcDogYW55ID0ge307XG4gICAgICAgIHR5cC5wcm9wcy5mb3JFYWNoKChwOiBhbnkpID0+IG1hcFtwLmpzb25dID0geyBrZXk6IHAuanMsIHR5cDogcC50eXAgfSk7XG4gICAgICAgIHR5cC5qc29uVG9KUyA9IG1hcDtcbiAgICB9XG4gICAgcmV0dXJuIHR5cC5qc29uVG9KUztcbn1cblxuZnVuY3Rpb24ganNUb0pTT05Qcm9wcyh0eXA6IGFueSk6IGFueSB7XG4gICAgaWYgKHR5cC5qc1RvSlNPTiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnN0IG1hcDogYW55ID0ge307XG4gICAgICAgIHR5cC5wcm9wcy5mb3JFYWNoKChwOiBhbnkpID0+IG1hcFtwLmpzXSA9IHsga2V5OiBwLmpzb24sIHR5cDogcC50eXAgfSk7XG4gICAgICAgIHR5cC5qc1RvSlNPTiA9IG1hcDtcbiAgICB9XG4gICAgcmV0dXJuIHR5cC5qc1RvSlNPTjtcbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtKHZhbDogYW55LCB0eXA6IGFueSwgZ2V0UHJvcHM6IGFueSwga2V5OiBhbnkgPSAnJywgcGFyZW50OiBhbnkgPSAnJyk6IGFueSB7XG4gICAgZnVuY3Rpb24gdHJhbnNmb3JtUHJpbWl0aXZlKHR5cDogc3RyaW5nLCB2YWw6IGFueSk6IGFueSB7XG4gICAgICAgIGlmICh0eXBlb2YgdHlwID09PSB0eXBlb2YgdmFsKSByZXR1cm4gdmFsO1xuICAgICAgICByZXR1cm4gaW52YWxpZFZhbHVlKHR5cCwgdmFsLCBrZXksIHBhcmVudCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdHJhbnNmb3JtVW5pb24odHlwczogYW55W10sIHZhbDogYW55KTogYW55IHtcbiAgICAgICAgLy8gdmFsIG11c3QgdmFsaWRhdGUgYWdhaW5zdCBvbmUgdHlwIGluIHR5cHNcbiAgICAgICAgY29uc3QgbCA9IHR5cHMubGVuZ3RoO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGw7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgdHlwID0gdHlwc1tpXTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRyYW5zZm9ybSh2YWwsIHR5cCwgZ2V0UHJvcHMpO1xuICAgICAgICAgICAgfSBjYXRjaCAoXykgeyB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGludmFsaWRWYWx1ZSh0eXBzLCB2YWwsIGtleSwgcGFyZW50KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0cmFuc2Zvcm1FbnVtKGNhc2VzOiBzdHJpbmdbXSwgdmFsOiBhbnkpOiBhbnkge1xuICAgICAgICBpZiAoY2FzZXMuaW5kZXhPZih2YWwpICE9PSAtMSkgcmV0dXJuIHZhbDtcbiAgICAgICAgcmV0dXJuIGludmFsaWRWYWx1ZShjYXNlcy5tYXAoYSA9PiB7IHJldHVybiBsKGEpOyB9KSwgdmFsLCBrZXksIHBhcmVudCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdHJhbnNmb3JtQXJyYXkodHlwOiBhbnksIHZhbDogYW55KTogYW55IHtcbiAgICAgICAgLy8gdmFsIG11c3QgYmUgYW4gYXJyYXkgd2l0aCBubyBpbnZhbGlkIGVsZW1lbnRzXG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWwpKSByZXR1cm4gaW52YWxpZFZhbHVlKGwoXCJhcnJheVwiKSwgdmFsLCBrZXksIHBhcmVudCk7XG4gICAgICAgIHJldHVybiB2YWwubWFwKGVsID0+IHRyYW5zZm9ybShlbCwgdHlwLCBnZXRQcm9wcykpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRyYW5zZm9ybURhdGUodmFsOiBhbnkpOiBhbnkge1xuICAgICAgICBpZiAodmFsID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkID0gbmV3IERhdGUodmFsKTtcbiAgICAgICAgaWYgKGlzTmFOKGQudmFsdWVPZigpKSkge1xuICAgICAgICAgICAgcmV0dXJuIGludmFsaWRWYWx1ZShsKFwiRGF0ZVwiKSwgdmFsLCBrZXksIHBhcmVudCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGQ7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdHJhbnNmb3JtT2JqZWN0KHByb3BzOiB7IFtrOiBzdHJpbmddOiBhbnkgfSwgYWRkaXRpb25hbDogYW55LCB2YWw6IGFueSk6IGFueSB7XG4gICAgICAgIGlmICh2YWwgPT09IG51bGwgfHwgdHlwZW9mIHZhbCAhPT0gXCJvYmplY3RcIiB8fCBBcnJheS5pc0FycmF5KHZhbCkpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnZhbGlkVmFsdWUobChyZWYgfHwgXCJvYmplY3RcIiksIHZhbCwga2V5LCBwYXJlbnQpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlc3VsdDogYW55ID0ge307XG4gICAgICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHByb3BzKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwcm9wID0gcHJvcHNba2V5XTtcbiAgICAgICAgICAgIGNvbnN0IHYgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodmFsLCBrZXkpID8gdmFsW2tleV0gOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICByZXN1bHRbcHJvcC5rZXldID0gdHJhbnNmb3JtKHYsIHByb3AudHlwLCBnZXRQcm9wcywga2V5LCByZWYpO1xuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModmFsKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChwcm9wcywga2V5KSkge1xuICAgICAgICAgICAgICAgIHJlc3VsdFtrZXldID0gdHJhbnNmb3JtKHZhbFtrZXldLCBhZGRpdGlvbmFsLCBnZXRQcm9wcywga2V5LCByZWYpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBpZiAodHlwID09PSBcImFueVwiKSByZXR1cm4gdmFsO1xuICAgIGlmICh0eXAgPT09IG51bGwpIHtcbiAgICAgICAgaWYgKHZhbCA9PT0gbnVsbCkgcmV0dXJuIHZhbDtcbiAgICAgICAgcmV0dXJuIGludmFsaWRWYWx1ZSh0eXAsIHZhbCwga2V5LCBwYXJlbnQpO1xuICAgIH1cbiAgICBpZiAodHlwID09PSBmYWxzZSkgcmV0dXJuIGludmFsaWRWYWx1ZSh0eXAsIHZhbCwga2V5LCBwYXJlbnQpO1xuICAgIGxldCByZWY6IGFueSA9IHVuZGVmaW5lZDtcbiAgICB3aGlsZSAodHlwZW9mIHR5cCA9PT0gXCJvYmplY3RcIiAmJiB0eXAucmVmICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmVmID0gdHlwLnJlZjtcbiAgICAgICAgdHlwID0gdHlwZU1hcFt0eXAucmVmXTtcbiAgICB9XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodHlwKSkgcmV0dXJuIHRyYW5zZm9ybUVudW0odHlwLCB2YWwpO1xuICAgIGlmICh0eXBlb2YgdHlwID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIHJldHVybiB0eXAuaGFzT3duUHJvcGVydHkoXCJ1bmlvbk1lbWJlcnNcIikgPyB0cmFuc2Zvcm1Vbmlvbih0eXAudW5pb25NZW1iZXJzLCB2YWwpXG4gICAgICAgICAgICA6IHR5cC5oYXNPd25Qcm9wZXJ0eShcImFycmF5SXRlbXNcIikgPyB0cmFuc2Zvcm1BcnJheSh0eXAuYXJyYXlJdGVtcywgdmFsKVxuICAgICAgICAgICAgICAgIDogdHlwLmhhc093blByb3BlcnR5KFwicHJvcHNcIikgPyB0cmFuc2Zvcm1PYmplY3QoZ2V0UHJvcHModHlwKSwgdHlwLmFkZGl0aW9uYWwsIHZhbClcbiAgICAgICAgICAgICAgICAgICAgOiBpbnZhbGlkVmFsdWUodHlwLCB2YWwsIGtleSwgcGFyZW50KTtcbiAgICB9XG4gICAgLy8gTnVtYmVycyBjYW4gYmUgcGFyc2VkIGJ5IERhdGUgYnV0IHNob3VsZG4ndCBiZS5cbiAgICBpZiAodHlwID09PSBEYXRlICYmIHR5cGVvZiB2YWwgIT09IFwibnVtYmVyXCIpIHJldHVybiB0cmFuc2Zvcm1EYXRlKHZhbCk7XG4gICAgcmV0dXJuIHRyYW5zZm9ybVByaW1pdGl2ZSh0eXAsIHZhbCk7XG59XG5cbmZ1bmN0aW9uIGNhc3Q8VD4odmFsOiBhbnksIHR5cDogYW55KTogVCB7XG4gICAgcmV0dXJuIHRyYW5zZm9ybSh2YWwsIHR5cCwganNvblRvSlNQcm9wcyk7XG59XG5cbmZ1bmN0aW9uIHVuY2FzdDxUPih2YWw6IFQsIHR5cDogYW55KTogYW55IHtcbiAgICByZXR1cm4gdHJhbnNmb3JtKHZhbCwgdHlwLCBqc1RvSlNPTlByb3BzKTtcbn1cblxuZnVuY3Rpb24gbCh0eXA6IGFueSkge1xuICAgIHJldHVybiB7IGxpdGVyYWw6IHR5cCB9O1xufVxuXG5mdW5jdGlvbiBhKHR5cDogYW55KSB7XG4gICAgcmV0dXJuIHsgYXJyYXlJdGVtczogdHlwIH07XG59XG5cbmZ1bmN0aW9uIHUoLi4udHlwczogYW55W10pIHtcbiAgICByZXR1cm4geyB1bmlvbk1lbWJlcnM6IHR5cHMgfTtcbn1cblxuZnVuY3Rpb24gbyhwcm9wczogYW55W10sIGFkZGl0aW9uYWw6IGFueSkge1xuICAgIHJldHVybiB7IHByb3BzLCBhZGRpdGlvbmFsIH07XG59XG5cbi8vIGZ1bmN0aW9uIG0oYWRkaXRpb25hbDogYW55KSB7XG4vLyAgICAgcmV0dXJuIHsgcHJvcHM6IFtdLCBhZGRpdGlvbmFsIH07XG4vLyB9XG5cbmZ1bmN0aW9uIHIobmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHsgcmVmOiBuYW1lIH07XG59XG5cbmNvbnN0IHR5cGVNYXA6IGFueSA9IHtcbiAgICBcIkNvbXB0ZXNSZW5kdXNcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJjb21wdGVzUmVuZHVzXCIsIGpzOiBcImNvbXB0ZXNSZW5kdXNcIiwgdHlwOiByKFwiQ29tcHRlUmVuZHVDbGFzc1wiKSB9LFxuICAgIF0sIGZhbHNlKSxcbiAgICBcIkNvbXB0ZVJlbmR1Q2xhc3NcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJjb21wdGVSZW5kdVwiLCBqczogXCJjb21wdGVSZW5kdVwiLCB0eXA6IGEocihcIkNvbXB0ZVJlbmR1XCIpKSB9LFxuICAgIF0sIGZhbHNlKSxcbiAgICBcIkNvbXB0ZVJlbmR1V3JhcHBlclwiOiBvKFtcbiAgICAgICAgeyBqc29uOiBcImNvbXB0ZVJlbmR1XCIsIGpzOiBcImNvbXB0ZVJlbmR1XCIsIHR5cDogcihcIkNvbXB0ZVJlbmR1XCIpIH0sXG4gICAgXSwgZmFsc2UpLFxuICAgIFwiQ29tcHRlUmVuZHVcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJ4bWxuc1wiLCBqczogXCJ4bWxuc1wiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcInVpZFwiLCBqczogXCJ1aWRcIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJzZWFuY2VSZWZcIiwganM6IFwic2VhbmNlUmVmXCIsIHR5cDogXCJcIiB9LFxuICAgICAgICB7IGpzb246IFwic2Vzc2lvblJlZlwiLCBqczogXCJzZXNzaW9uUmVmXCIsIHR5cDogXCJcIiB9LFxuICAgICAgICB7IGpzb246IFwibWV0YWRvbm5lZXNcIiwganM6IFwibWV0YWRvbm5lZXNcIiwgdHlwOiByKFwiTWV0YWRvbm5lZXNcIikgfSxcbiAgICAgICAgeyBqc29uOiBcImNvbnRlbnVcIiwganM6IFwiY29udGVudVwiLCB0eXA6IHIoXCJDb250ZW51XCIpIH0sXG4gICAgXSwgZmFsc2UpLFxuICAgIFwiQ29udGVudVwiOiBvKFtcbiAgICAgICAgeyBqc29uOiBcInF1YW50aWVtZXNcIiwganM6IFwicXVhbnRpZW1lc1wiLCB0eXA6IHIoXCJRdWFudGllbWVzXCIpIH0sXG4gICAgICAgIHsganNvbjogXCJvdXZlcnR1cmVTZWFuY2VcIiwganM6IFwib3V2ZXJ0dXJlU2VhbmNlXCIsIHR5cDogdShhKHIoXCJQb2ludFwiKSksIHIoXCJQb2ludFwiKSkgfSxcbiAgICAgICAgeyBqc29uOiBcInBvaW50XCIsIGpzOiBcInBvaW50XCIsIHR5cDogdShhKHIoXCJQb2ludFwiKSksIHIoXCJQb2ludFwiKSkgfSxcbiAgICAgICAgeyBqc29uOiBcImZpblNlYW5jZVwiLCBqczogXCJmaW5TZWFuY2VcIiwgdHlwOiB1KHVuZGVmaW5lZCwgcihcIkZpblNlYW5jZVwiKSkgfSxcbiAgICAgICAgeyBqc29uOiBcInBhcmFncmFwaGVcIiwganM6IFwicGFyYWdyYXBoZVwiLCB0eXA6IHUodW5kZWZpbmVkLCBhKHIoXCJQb2ludFwiKSkpIH0sXG4gICAgXSwgZmFsc2UpLFxuICAgIFwiRmluU2VhbmNlXCI6IG8oW1xuICAgICAgICB7IGpzb246IFwicG9pbnRcIiwganM6IFwicG9pbnRcIiwgdHlwOiByKFwiUG9pbnRcIikgfSxcbiAgICBdLCBmYWxzZSksXG4gICAgXCJPcmF0ZXVyc1wiOiBvKFtcbiAgICAgICAgeyBqc29uOiBcIm9yYXRldXJcIiwganM6IFwib3JhdGV1clwiLCB0eXA6IHUoYShyKFwiT3JhdGV1ckVsZW1lbnRcIikpLCByKFwiT3JhdGV1ckVsZW1lbnRcIikpIH0sXG4gICAgXSwgZmFsc2UpLFxuICAgIFwiT3JhdGV1ckVsZW1lbnRcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJub21cIiwganM6IFwibm9tXCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICAgIHsganNvbjogXCJpZFwiLCBqczogXCJpZFwiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgICAgICB7IGpzb246IFwicXVhbGl0ZVwiLCBqczogXCJxdWFsaXRlXCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgXSwgZmFsc2UpLFxuICAgIFwiVGV4dGVcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJfXCIsIGpzOiBcIl9cIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcImlkX3N5Y2Vyb25cIiwganM6IFwiaWRfc3ljZXJvblwiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgICAgICB7IGpzb246IFwic3RpbWVcIiwganM6IFwic3RpbWVcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcInN1cFwiLCBqczogXCJzdXBcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcImxpZW5BZHRcIiwganM6IFwibGllbkFkdFwiLCB0eXA6IHUodW5kZWZpbmVkLCB1KGEocihcIlRleHRlXCIpKSwgcihcIlRleHRlXCIpKSkgfSxcbiAgICBdLCBmYWxzZSksXG4gICAgXCJQb2ludFwiOiBvKFtcbiAgICAgICAgeyBqc29uOiBcIm5pdnBvaW50XCIsIGpzOiBcIm5pdnBvaW50XCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICAgIHsganNvbjogXCJ2YWxldXJfcHRzb2RqXCIsIGpzOiBcInZhbGV1cl9wdHNvZGpcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcIm9yZGluYWxfcHJpc2VcIiwganM6IFwib3JkaW5hbF9wcmlzZVwiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgICAgICB7IGpzb246IFwiaWRfcHJlcGFyYXRpb25cIiwganM6IFwiaWRfcHJlcGFyYXRpb25cIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcIm9yZHJlX2Fic29sdV9zZWFuY2VcIiwganM6IFwib3JkcmVfYWJzb2x1X3NlYW5jZVwiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgICAgICB7IGpzb246IFwiY29kZV9ncmFtbWFpcmVcIiwganM6IFwiY29kZV9ncmFtbWFpcmVcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcImNvZGVfc3R5bGVcIiwganM6IFwiY29kZV9zdHlsZVwiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgICAgICB7IGpzb246IFwiY29kZV9wYXJvbGVcIiwganM6IFwiY29kZV9wYXJvbGVcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcInNvbW1haXJlXCIsIGpzOiBcInNvbW1haXJlXCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICAgIHsganNvbjogXCJpZF9zeWNlcm9uXCIsIGpzOiBcImlkX3N5Y2Vyb25cIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcInZhbGV1clwiLCBqczogXCJ2YWxldXJcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcIm9yYXRldXJzXCIsIGpzOiBcIm9yYXRldXJzXCIsIHR5cDogdShyKFwiT3JhdGV1cnNcIiksIHUoXCJcIiwgdW5kZWZpbmVkKSkgfSxcbiAgICAgICAgeyBqc29uOiBcInRleHRlXCIsIGpzOiBcInRleHRlXCIsIHR5cDogdShyKFwiVGV4dGVcIiksIHUoXCJcIiwgdW5kZWZpbmVkKSkgfSxcbiAgICAgICAgeyBqc29uOiBcInBhcmFncmFwaGVcIiwganM6IFwicGFyYWdyYXBoZVwiLCB0eXA6IHUodW5kZWZpbmVkLCB1KGEocihcIlBvaW50XCIpKSwgcihcIlBvaW50XCIpKSkgfSxcbiAgICAgICAgeyBqc29uOiBcImludGVyRXh0cmFjdGlvblwiLCBqczogXCJpbnRlckV4dHJhY3Rpb25cIiwgdHlwOiB1KHVuZGVmaW5lZCwgdShhKHIoXCJQb2ludFwiKSksIHIoXCJQb2ludFwiKSkpIH0sXG4gICAgICAgIHsganNvbjogXCJwb2ludFwiLCBqczogXCJwb2ludFwiLCB0eXA6IHUodW5kZWZpbmVkLCB1KGEocihcIlBvaW50XCIpKSwgcihcIlBvaW50XCIpKSkgfSxcbiAgICAgICAgeyBqc29uOiBcInN0cnVjdHVyZVwiLCBqczogXCJzdHJ1Y3R1cmVcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcImlkX2FjdGV1clwiLCBqczogXCJpZF9hY3RldXJcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcImlkX21hbmRhdFwiLCBqczogXCJpZF9tYW5kYXRcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcImlkX25vbWluYXRpb25fb2VcIiwganM6IFwiaWRfbm9taW5hdGlvbl9vZVwiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgICAgICB7IGpzb246IFwiaWRfbm9taW5hdGlvbl9vcFwiLCBqczogXCJpZF9ub21pbmF0aW9uX29wXCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICAgIHsganNvbjogXCJvcmF0ZXVyXCIsIGpzOiBcIm9yYXRldXJcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcImJpYmFyZFwiLCBqczogXCJiaWJhcmRcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcImFydFwiLCBqczogXCJhcnRcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcImFkdFwiLCBqczogXCJhZHRcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcInNzYWR0XCIsIGpzOiBcInNzYWR0XCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICAgIHsganNvbjogXCJyb2xlZGViYXRcIiwganM6IFwicm9sZWRlYmF0XCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICAgIHsganNvbjogXCJ0eXBlX2RlYmF0XCIsIGpzOiBcInR5cGVfZGViYXRcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcImNoYW5nZW1lbnRQcmVzaWRlbmNlXCIsIGpzOiBcImNoYW5nZW1lbnRQcmVzaWRlbmNlXCIsIHR5cDogdSh1bmRlZmluZWQsIHIoXCJQb2ludFwiKSkgfSxcbiAgICAgICAgeyBqc29uOiBcImRlY2lzaW9uXCIsIGpzOiBcImRlY2lzaW9uXCIsIHR5cDogdSh1bmRlZmluZWQsIHIoXCJEZWNpc2lvblwiKSkgfSxcbiAgICAgICAgeyBqc29uOiBcIm91dmVydHVyZVNlYW5jZVwiLCBqczogXCJvdXZlcnR1cmVTZWFuY2VcIiwgdHlwOiB1KHVuZGVmaW5lZCwgcihcIlBvaW50XCIpKSB9LFxuICAgICAgICB7IGpzb246IFwibm9tX29yYXRldXJcIiwganM6IFwibm9tX29yYXRldXJcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcInF1YWxpdGVcIiwganM6IFwicXVhbGl0ZVwiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgIF0sIGZhbHNlKSxcbiAgICBcIlF1YW50aWVtZXNcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJqb3VybmVlXCIsIGpzOiBcImpvdXJuZWVcIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJzZXNzaW9uXCIsIGpzOiBcInNlc3Npb25cIiwgdHlwOiBcIlwiIH0sXG4gICAgXSwgZmFsc2UpLFxuICAgIFwiTWV0YWRvbm5lZXNcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJkYXRlU2VhbmNlXCIsIGpzOiBcImRhdGVTZWFuY2VcIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJkYXRlU2VhbmNlSm91clwiLCBqczogXCJkYXRlU2VhbmNlSm91clwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcIm51bVNlYW5jZUpvdXJcIiwganM6IFwibnVtU2VhbmNlSm91clwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcIm51bVNlYW5jZVwiLCBqczogXCJudW1TZWFuY2VcIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJ0eXBlQXNzZW1ibGVlXCIsIGpzOiBcInR5cGVBc3NlbWJsZWVcIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJsZWdpc2xhdHVyZVwiLCBqczogXCJsZWdpc2xhdHVyZVwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcInNlc3Npb25cIiwganM6IFwic2Vzc2lvblwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcIm5vbUZpY2hpZXJKb1wiLCBqczogXCJub21GaWNoaWVySm9cIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJ2YWxpZGl0ZVwiLCBqczogXCJ2YWxpZGl0ZVwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcImV0YXRcIiwganM6IFwiZXRhdFwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcImRpZmZ1c2lvblwiLCBqczogXCJkaWZmdXNpb25cIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJ2ZXJzaW9uXCIsIGpzOiBcInZlcnNpb25cIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJlbnZpcm9ubmVtZW50XCIsIGpzOiBcImVudmlyb25uZW1lbnRcIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJoZXVyZUdlbmVyYXRpb25cIiwganM6IFwiaGV1cmVHZW5lcmF0aW9uXCIsIHR5cDogRGF0ZSB9LFxuICAgICAgICB7IGpzb246IFwic29tbWFpcmVcIiwganM6IFwic29tbWFpcmVcIiwgdHlwOiByKFwiU29tbWFpcmVcIikgfSxcbiAgICBdLCBmYWxzZSksXG4gICAgXCJTb21tYWlyZVwiOiBvKFtcbiAgICAgICAgeyBqc29uOiBcInByZXNpZGVudFNlYW5jZVwiLCBqczogXCJwcmVzaWRlbnRTZWFuY2VcIiwgdHlwOiByKFwiVGV4dGVcIikgfSxcbiAgICAgICAgeyBqc29uOiBcInNvbW1haXJlMVwiLCBqczogXCJzb21tYWlyZTFcIiwgdHlwOiB1KGEocihcIlNvbW1haXJlRWxlbWVudFwiKSksIHIoXCJTb21tYWlyZUVsZW1lbnRcIikpIH0sXG4gICAgICAgIHsganNvbjogXCJzb21tYWlyZTNcIiwganM6IFwic29tbWFpcmUzXCIsIHR5cDogdSh1bmRlZmluZWQsIHUoYShyKFwiU29tbWFpcmVFbGVtZW50XCIpKSwgcihcIlNvbW1haXJlRWxlbWVudFwiKSkpIH0sXG4gICAgICAgIHsganNvbjogXCJzb21tYWlyZTJcIiwganM6IFwic29tbWFpcmUyXCIsIHR5cDogdSh1bmRlZmluZWQsIHUoYShyKFwiU29tbWFpcmVFbGVtZW50XCIpKSwgcihcIlNvbW1haXJlRWxlbWVudFwiKSkpIH0sXG4gICAgICAgIHsganNvbjogXCJwYXJhXCIsIGpzOiBcInBhcmFcIiwgdHlwOiB1KHVuZGVmaW5lZCwgdShhKHIoXCJUZXh0ZVwiKSksIHIoXCJUZXh0ZVwiKSkpIH0sXG4gICAgXSwgZmFsc2UpLFxuICAgIFwiU29tbWFpcmVFbGVtZW50XCI6IG8oW1xuICAgICAgICB7IGpzb246IFwidmFsZXVyX3B0c19vZGpcIiwganM6IFwidmFsZXVyX3B0c19vZGpcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcInRpdHJlU3RydWN0XCIsIGpzOiBcInRpdHJlU3RydWN0XCIsIHR5cDogdSh1bmRlZmluZWQsIHIoXCJUaXRyZVN0cnVjdFwiKSkgfSxcbiAgICAgICAgeyBqc29uOiBcInBhcmFcIiwganM6IFwicGFyYVwiLCB0eXA6IHUodW5kZWZpbmVkLCB1KGEodShyKFwiVGV4dGVcIiksIFwiXCIpKSwgcihcIlRleHRlXCIpKSkgfSxcbiAgICAgICAgeyBqc29uOiBcInNvbW1haXJlMlwiLCBqczogXCJzb21tYWlyZTJcIiwgdHlwOiB1KHVuZGVmaW5lZCwgdShhKHIoXCJTb21tYWlyZUVsZW1lbnRcIikpLCByKFwiU29tbWFpcmVFbGVtZW50XCIpKSkgfSxcbiAgICAgICAgeyBqc29uOiBcInNvbW1haXJlM1wiLCBqczogXCJzb21tYWlyZTNcIiwgdHlwOiB1KHVuZGVmaW5lZCwgdShhKHIoXCJTb21tYWlyZUVsZW1lbnRcIikpLCByKFwiU29tbWFpcmVFbGVtZW50XCIpKSkgfSxcbiAgICAgICAgeyBqc29uOiBcInByZXNpZGVudFNlYW5jZVwiLCBqczogXCJwcmVzaWRlbnRTZWFuY2VcIiwgdHlwOiB1KHVuZGVmaW5lZCwgdShhKHIoXCJUZXh0ZVwiKSksIHIoXCJUZXh0ZVwiKSkpIH0sXG4gICAgICAgIHsganNvbjogXCJ0eXBlX2RlYmF0XCIsIGpzOiBcInR5cGVfZGViYXRcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICBdLCBmYWxzZSksXG4gICAgXCJUaXRyZVN0cnVjdFwiOiBvKFtcbiAgICAgICAgeyBqc29uOiBcImlkX3N5Y2Vyb25cIiwganM6IFwiaWRfc3ljZXJvblwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcImludGl0dWxlXCIsIGpzOiBcImludGl0dWxlXCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICAgIHsganNvbjogXCJzb3VzSW50aXR1bGVcIiwganM6IFwic291c0ludGl0dWxlXCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICAgIHsganNvbjogXCJ0eXBlX2RlYmF0XCIsIGpzOiBcInR5cGVfZGViYXRcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICBdLCBmYWxzZSksXG4gICAgXCJEZWNpc2lvblwiOiBbXG4gICAgICAgIFwiQURPUFRJT04gYW1lbmRlbWVudCAobWFpbiBsZXbDqWUpIGFkdFwiLFxuICAgICAgICBcIkFET1BUSU9OIGTigJl1biBhcnRpY2xlICh2b3RlIMOgIG1haW4gbGV2w6llKVwiLFxuICAgICAgICBcIkFET1BUSU9OIGTigJl1biBzb3VzLWFtZW5kZW1lbnQgKG1haW4gbGV2w6llKSBzcy1hZHRcIixcbiAgICAgICAgXCJBRE9QVElPTiBkZSBwbHVzaWV1cnMgYW1lbmRlbWVudHMgKG1haW4gbGV2w6llKSBhZHRzXCIsXG4gICAgICAgIFwiQURPUFRJT04gZGUgcGx1c2lldXJzIHNvdXMtYW1lbmRlbWVudHMgKG1haW4gbGV2w6llKSBzcy1hZHRzXCIsXG4gICAgICAgIFwiXCIsXG4gICAgICAgIFwiUkVKRVQgZOKAmXVuIGFtZW5kZW1lbnQgKG1haW4gbGV2w6llKSBhZHRcIixcbiAgICAgICAgXCJSRUpFVCBk4oCZdW4gYXJ0aWNsZSAodm90ZSDDoCBtYWluIGxldsOpZSlcIixcbiAgICAgICAgXCJSRUpFVCBk4oCZdW4gc291cy1hbWVuZGVtZW50IChtYWluIGxldsOpZSkgc3MtYWR0XCIsXG4gICAgICAgIFwiUkVKRVQgZGUgcGx1c2lldXJzIGFtZW5kZW1lbnRzIChtYWluIGxldsOpZSkgYWR0c1wiLFxuICAgICAgICBcIlJFSkVUIGRlIHBsdXNpZXVycyBzb3VzLWFtZW5kZW1lbnRzIChtYWluIGxldsOpZSkgc3MtYWR0c1wiLFxuICAgICAgICBcIlJFSkVUIG1vdGlvbiBkZSByZWpldCBwcsOpYWxhYmxlIChtYWluIGxldsOpZSlcIixcbiAgICBdLFxufTsiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFxREEsV0FBWUEsUUFBUSwwQkFBUkEsUUFBUTtFQUFSQSxRQUFRO0VBQVJBLFFBQVE7RUFBUkEsUUFBUTtFQUFSQSxRQUFRO0VBQVJBLFFBQVE7RUFBUkEsUUFBUTtFQUFSQSxRQUFRO0VBQVJBLFFBQVE7RUFBUkEsUUFBUTtFQUFSQSxRQUFRO0VBQVJBLFFBQVE7RUFBUkEsUUFBUTtFQUFBLE9BQVJBLFFBQVE7QUFBQTtBQW1HcEI7QUFDQTtBQUNBLE9BQU8sTUFBTUMsT0FBTyxDQUFDO0VBQ2pCLE9BQWNDLGVBQWVBLENBQUNDLElBQVksRUFBaUI7SUFDdkQsT0FBT0MsSUFBSSxDQUFDQyxJQUFJLENBQUNDLEtBQUssQ0FBQ0gsSUFBSSxDQUFDLEVBQUVJLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQztFQUNyRDtFQUVBLE9BQWNDLG1C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