@arsedizioni/ars-utils 18.5.61 → 19.0.1

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 (178) hide show
  1. package/fesm2022/arsedizioni-ars-utils-clipper.common.mjs +14 -12
  2. package/fesm2022/arsedizioni-ars-utils-clipper.common.mjs.map +1 -1
  3. package/fesm2022/arsedizioni-ars-utils-clipper.ui.mjs +41 -41
  4. package/fesm2022/arsedizioni-ars-utils-clipper.ui.mjs.map +1 -1
  5. package/fesm2022/arsedizioni-ars-utils-core.mjs +99 -99
  6. package/fesm2022/arsedizioni-ars-utils-core.mjs.map +1 -1
  7. package/fesm2022/arsedizioni-ars-utils-evolution.common.mjs +15 -13
  8. package/fesm2022/arsedizioni-ars-utils-evolution.common.mjs.map +1 -1
  9. package/fesm2022/arsedizioni-ars-utils-help.mjs +13 -13
  10. package/fesm2022/arsedizioni-ars-utils-help.mjs.map +1 -1
  11. package/fesm2022/arsedizioni-ars-utils-support.common.mjs +14 -12
  12. package/fesm2022/arsedizioni-ars-utils-support.common.mjs.map +1 -1
  13. package/fesm2022/arsedizioni-ars-utils-support.ui.mjs +6 -6
  14. package/fesm2022/arsedizioni-ars-utils-support.ui.mjs.map +1 -1
  15. package/fesm2022/arsedizioni-ars-utils-tinymce.mjs +7 -7
  16. package/fesm2022/arsedizioni-ars-utils-tinymce.mjs.map +1 -1
  17. package/fesm2022/arsedizioni-ars-utils-ui.application.mjs +58 -58
  18. package/fesm2022/arsedizioni-ars-utils-ui.application.mjs.map +1 -1
  19. package/fesm2022/arsedizioni-ars-utils-ui.mjs +34 -34
  20. package/fesm2022/arsedizioni-ars-utils-ui.mjs.map +1 -1
  21. package/fesm2022/arsedizioni-ars-utils-ui.oauth.mjs +7 -7
  22. package/fesm2022/arsedizioni-ars-utils-ui.oauth.mjs.map +1 -1
  23. package/fesm2022/arsedizioni-ars-utils.mjs.map +1 -1
  24. package/package.json +9 -33
  25. package/clipper.ui/ui/clipper.scss +0 -530
  26. package/esm2022/arsedizioni-ars-utils.mjs +0 -5
  27. package/esm2022/clipper.common/arsedizioni-ars-utils-clipper.common.mjs +0 -5
  28. package/esm2022/clipper.common/common/common.module.mjs +0 -16
  29. package/esm2022/clipper.common/common/definitions.mjs +0 -2041
  30. package/esm2022/clipper.common/common/interceptors/auth.interceptor.mjs +0 -100
  31. package/esm2022/clipper.common/common/messages.mjs +0 -36
  32. package/esm2022/clipper.common/common/services/clipper.service.mjs +0 -1009
  33. package/esm2022/clipper.common/public_api.mjs +0 -5
  34. package/esm2022/clipper.ui/arsedizioni-ars-utils-clipper.ui.mjs +0 -5
  35. package/esm2022/clipper.ui/documents.mjs +0 -50
  36. package/esm2022/clipper.ui/public_api.mjs +0 -18
  37. package/esm2022/clipper.ui/ui/browser-dialog/browser-dialog.component.mjs +0 -766
  38. package/esm2022/clipper.ui/ui/document/document.component.mjs +0 -688
  39. package/esm2022/clipper.ui/ui/document-index/document-index.component.mjs +0 -118
  40. package/esm2022/clipper.ui/ui/document-manager/document-manager.mjs +0 -441
  41. package/esm2022/clipper.ui/ui/document-menu/document-menu.component.mjs +0 -217
  42. package/esm2022/clipper.ui/ui/references/references.component.mjs +0 -380
  43. package/esm2022/clipper.ui/ui/search-calendar/search-calendar.component.mjs +0 -116
  44. package/esm2022/clipper.ui/ui/search-dialog/search-dialog.component.mjs +0 -339
  45. package/esm2022/clipper.ui/ui/search-facets/search-facets.component.mjs +0 -251
  46. package/esm2022/clipper.ui/ui/search-free-text-help/search-free-text-help.component.mjs +0 -17
  47. package/esm2022/clipper.ui/ui/search-free-text-query-builder/search-free-text-query-builder.component.mjs +0 -106
  48. package/esm2022/clipper.ui/ui/search-result-item/search-result-item.component.mjs +0 -120
  49. package/esm2022/clipper.ui/ui/search-result-manager/search-result-manager.mjs +0 -531
  50. package/esm2022/core/arsedizioni-ars-utils-core.mjs +0 -5
  51. package/esm2022/core/core.module.mjs +0 -151
  52. package/esm2022/core/dateFnsAdapter.mjs +0 -203
  53. package/esm2022/core/definitions.mjs +0 -47
  54. package/esm2022/core/directives/autoFocusDirective.mjs +0 -22
  55. package/esm2022/core/directives/changeDateIntervalDirective.mjs +0 -48
  56. package/esm2022/core/directives/copyClipboardDirective.mjs +0 -46
  57. package/esm2022/core/directives/validators.mjs +0 -502
  58. package/esm2022/core/pipes/format.pipe.mjs +0 -53
  59. package/esm2022/core/pipes/replace.pipe.mjs +0 -29
  60. package/esm2022/core/pipes/safe-html.pipe.mjs +0 -24
  61. package/esm2022/core/pipes/safe-url.pipe.mjs +0 -24
  62. package/esm2022/core/pipes/search-callback.pipe.mjs +0 -21
  63. package/esm2022/core/pipes/search-filter.pipe.mjs +0 -50
  64. package/esm2022/core/public_api.mjs +0 -22
  65. package/esm2022/core/selectable.mjs +0 -131
  66. package/esm2022/core/services/broadcast.service.mjs +0 -35
  67. package/esm2022/core/services/broadcastChannelManager.mjs +0 -80
  68. package/esm2022/core/services/environment.service.mjs +0 -29
  69. package/esm2022/core/services/screen.service.mjs +0 -23
  70. package/esm2022/core/services/theme.service.mjs +0 -140
  71. package/esm2022/core/system.mjs +0 -664
  72. package/esm2022/evolution.common/arsedizioni-ars-utils-evolution.common.mjs +0 -5
  73. package/esm2022/evolution.common/common/common.module.mjs +0 -16
  74. package/esm2022/evolution.common/common/definitions.mjs +0 -454
  75. package/esm2022/evolution.common/common/interceptors/auth.interceptor.mjs +0 -100
  76. package/esm2022/evolution.common/common/messages.mjs +0 -8
  77. package/esm2022/evolution.common/common/services/evolution.service.mjs +0 -488
  78. package/esm2022/evolution.common/public_api.mjs +0 -5
  79. package/esm2022/help/arsedizioni-ars-utils-help.mjs +0 -5
  80. package/esm2022/help/components/help-viewer/help-viewer.component.mjs +0 -442
  81. package/esm2022/help/definitions.mjs +0 -2
  82. package/esm2022/help/help.module.mjs +0 -12
  83. package/esm2022/help/public_api.mjs +0 -7
  84. package/esm2022/help/services/help.service.mjs +0 -77
  85. package/esm2022/public_api.mjs +0 -15
  86. package/esm2022/support.common/arsedizioni-ars-utils-support.common.mjs +0 -5
  87. package/esm2022/support.common/common/common.module.mjs +0 -16
  88. package/esm2022/support.common/common/definitions.mjs +0 -29
  89. package/esm2022/support.common/common/interceptors/auth.interceptor.mjs +0 -100
  90. package/esm2022/support.common/common/messages.mjs +0 -13
  91. package/esm2022/support.common/common/services/support.service.mjs +0 -287
  92. package/esm2022/support.common/public_api.mjs +0 -8
  93. package/esm2022/support.ui/arsedizioni-ars-utils-support.ui.mjs +0 -5
  94. package/esm2022/support.ui/public_api.mjs +0 -5
  95. package/esm2022/support.ui/ui/notifications-browser/notification/notification.component.mjs +0 -80
  96. package/esm2022/support.ui/ui/notifications-browser/notifications-browser.component.mjs +0 -233
  97. package/esm2022/tinymce/arsedizioni-ars-utils-tinymce.mjs +0 -5
  98. package/esm2022/tinymce/full-screen-editor/full-screen-editor.component.mjs +0 -48
  99. package/esm2022/tinymce/public_api.mjs +0 -7
  100. package/esm2022/tinymce/tinymce.module.mjs +0 -19
  101. package/esm2022/tinymce/utils.mjs +0 -150
  102. package/esm2022/ui/arsedizioni-ars-utils-ui.mjs +0 -5
  103. package/esm2022/ui/public_api.mjs +0 -12
  104. package/esm2022/ui/ui/components/button-selector/button-selector.component.mjs +0 -150
  105. package/esm2022/ui/ui/components/button-toggle/button-toggle.component.mjs +0 -51
  106. package/esm2022/ui/ui/components/calendar-empty-header/calendar-empy-header.component.mjs +0 -30
  107. package/esm2022/ui/ui/components/chips-selector/chips-selector.component.mjs +0 -272
  108. package/esm2022/ui/ui/components/file-input/file-input.component.mjs +0 -264
  109. package/esm2022/ui/ui/components/file-preview/file-preview.component.mjs +0 -73
  110. package/esm2022/ui/ui/components/filter-bar/filter-bar.component.mjs +0 -356
  111. package/esm2022/ui/ui/definitions.mjs +0 -2
  112. package/esm2022/ui/ui/dialogs/busy/busy-dialog.component.mjs +0 -47
  113. package/esm2022/ui/ui/dialogs/confirm/confirm-dialog.component.mjs +0 -101
  114. package/esm2022/ui/ui/dialogs/credentials/credentials-dialog.component.mjs +0 -86
  115. package/esm2022/ui/ui/dialogs/info/info-dialog.component.mjs +0 -51
  116. package/esm2022/ui/ui/dialogs/prompt/prompt-dialog.component.mjs +0 -77
  117. package/esm2022/ui/ui/dialogs/prompt-date/prompt-date-dialog.component.mjs +0 -79
  118. package/esm2022/ui/ui/dialogs/prompt-time/prompt-time-dialog.component.mjs +0 -72
  119. package/esm2022/ui/ui/dialogs/recover-password/recover-password-dialog.component.mjs +0 -49
  120. package/esm2022/ui/ui/dialogs/reset-password/reset-password-dialog.component.mjs +0 -89
  121. package/esm2022/ui/ui/dialogs/select/select-dialog.component.mjs +0 -374
  122. package/esm2022/ui/ui/dialogs/select-file/select-file-dialog.component.mjs +0 -106
  123. package/esm2022/ui/ui/dialogs/select-picture/select-picture-dialog.component.mjs +0 -62
  124. package/esm2022/ui/ui/dialogs/select-tree/select-tree-dialog.component.mjs +0 -277
  125. package/esm2022/ui/ui/dialogs/send-to/send-to-dialog.component.mjs +0 -90
  126. package/esm2022/ui/ui/dialogs/toast/toast.component.mjs +0 -32
  127. package/esm2022/ui/ui/directives/resize-table-column.directive.mjs +0 -63
  128. package/esm2022/ui/ui/filters.mjs +0 -43
  129. package/esm2022/ui/ui/paginatorIntl.mjs +0 -34
  130. package/esm2022/ui/ui/services/dialog.service.mjs +0 -417
  131. package/esm2022/ui/ui/services/ui.service.mjs +0 -21
  132. package/esm2022/ui/ui/ui.module.mjs +0 -21
  133. package/esm2022/ui.application/arsedizioni-ars-utils-ui.application.mjs +0 -5
  134. package/esm2022/ui.application/public_api.mjs +0 -21
  135. package/esm2022/ui.application/ui/components/button-selector/button-selector.component.mjs +0 -150
  136. package/esm2022/ui.application/ui/components/button-toggle/button-toggle.component.mjs +0 -51
  137. package/esm2022/ui.application/ui/components/calendar-empty-header/calendar-empy-header.component.mjs +0 -30
  138. package/esm2022/ui.application/ui/components/chips-selector/chips-selector.component.mjs +0 -272
  139. package/esm2022/ui.application/ui/components/file-input/file-input.component.mjs +0 -264
  140. package/esm2022/ui.application/ui/components/file-preview/file-preview.component.mjs +0 -73
  141. package/esm2022/ui.application/ui/components/filter-bar/filter-bar.component.mjs +0 -356
  142. package/esm2022/ui.application/ui/definitions.mjs +0 -31
  143. package/esm2022/ui.application/ui/dialogs/prompt/prompt-dialog.component.mjs +0 -77
  144. package/esm2022/ui.application/ui/dialogs/prompt-date/prompt-date-dialog.component.mjs +0 -79
  145. package/esm2022/ui.application/ui/dialogs/prompt-time/prompt-time-dialog.component.mjs +0 -72
  146. package/esm2022/ui.application/ui/dialogs/select/select-dialog.component.mjs +0 -374
  147. package/esm2022/ui.application/ui/dialogs/select-file/select-file-dialog.component.mjs +0 -106
  148. package/esm2022/ui.application/ui/dialogs/select-picture/select-picture-dialog.component.mjs +0 -62
  149. package/esm2022/ui.application/ui/dialogs/select-tree/select-tree-dialog.component.mjs +0 -277
  150. package/esm2022/ui.application/ui/dialogs/send-to/send-to-dialog.component.mjs +0 -90
  151. package/esm2022/ui.application/ui/directives/resize-table-column.directive.mjs +0 -63
  152. package/esm2022/ui.application/ui/filters.mjs +0 -43
  153. package/esm2022/ui.application/ui/services/applicationDialog.service.mjs +0 -304
  154. package/esm2022/ui.application/ui/ui.module.mjs +0 -30
  155. package/esm2022/ui.oauth/arsedizioni-ars-utils-ui.oauth.mjs +0 -5
  156. package/esm2022/ui.oauth/public_api.mjs +0 -6
  157. package/esm2022/ui.oauth/ui/components/login/login-oauth.component.mjs +0 -199
  158. package/esm2022/ui.oauth/ui/definitions.mjs +0 -7
  159. package/esm2022/ui.oauth/ui/ui.module.mjs +0 -13
  160. package/styles/ui.colors.scss +0 -77
  161. package/styles/ui.scss +0 -318
  162. package/ui/ui/components/button-selector/button-selector.component.d.ts +0 -52
  163. package/ui/ui/components/button-toggle/button-toggle.component.d.ts +0 -28
  164. package/ui/ui/components/calendar-empty-header/calendar-empy-header.component.d.ts +0 -11
  165. package/ui/ui/components/chips-selector/chips-selector.component.d.ts +0 -82
  166. package/ui/ui/components/file-input/file-input.component.d.ts +0 -88
  167. package/ui/ui/components/file-preview/file-preview.component.d.ts +0 -26
  168. package/ui/ui/components/filter-bar/filter-bar.component.d.ts +0 -83
  169. package/ui/ui/dialogs/prompt/prompt-dialog.component.d.ts +0 -18
  170. package/ui/ui/dialogs/prompt-date/prompt-date-dialog.component.d.ts +0 -18
  171. package/ui/ui/dialogs/prompt-time/prompt-time-dialog.component.d.ts +0 -18
  172. package/ui/ui/dialogs/select/select-dialog.component.d.ts +0 -122
  173. package/ui/ui/dialogs/select-file/select-file-dialog.component.d.ts +0 -36
  174. package/ui/ui/dialogs/select-picture/select-picture-dialog.component.d.ts +0 -26
  175. package/ui/ui/dialogs/select-tree/select-tree-dialog.component.d.ts +0 -98
  176. package/ui/ui/dialogs/send-to/send-to-dialog.component.d.ts +0 -28
  177. package/ui/ui/directives/resize-table-column.directive.d.ts +0 -19
  178. package/ui/ui/filters.d.ts +0 -57
@@ -1,2041 +0,0 @@
1
- import { computed, signal } from '@angular/core';
2
- export var ClipperServiceFlags;
3
- (function (ClipperServiceFlags) {
4
- ClipperServiceFlags[ClipperServiceFlags["None"] = 0] = "None";
5
- ClipperServiceFlags[ClipperServiceFlags["NotifySystemErrors"] = 1] = "NotifySystemErrors";
6
- ClipperServiceFlags[ClipperServiceFlags["DisplayConnectionStateMessages"] = 2] = "DisplayConnectionStateMessages";
7
- })(ClipperServiceFlags || (ClipperServiceFlags = {}));
8
- export var ClipperRecurrenceType;
9
- (function (ClipperRecurrenceType) {
10
- ClipperRecurrenceType[ClipperRecurrenceType["Year"] = 1] = "Year";
11
- ClipperRecurrenceType[ClipperRecurrenceType["Month"] = 2] = "Month";
12
- ClipperRecurrenceType[ClipperRecurrenceType["Day"] = 3] = "Day";
13
- })(ClipperRecurrenceType || (ClipperRecurrenceType = {}));
14
- export const ClipperRecurrenceTypes = [
15
- { name: 'Anni', value: ClipperRecurrenceType.Year },
16
- { name: 'Mesi', value: ClipperRecurrenceType.Month },
17
- { name: 'Giorni', value: ClipperRecurrenceType.Day }
18
- ];
19
- export var ClipperSelectionMode;
20
- (function (ClipperSelectionMode) {
21
- ClipperSelectionMode[ClipperSelectionMode["Single"] = 1] = "Single";
22
- ClipperSelectionMode[ClipperSelectionMode["Multi"] = 2] = "Multi";
23
- ClipperSelectionMode[ClipperSelectionMode["Any"] = 3] = "Any";
24
- })(ClipperSelectionMode || (ClipperSelectionMode = {}));
25
- export var ClipperModuleGroup;
26
- (function (ClipperModuleGroup) {
27
- ClipperModuleGroup[ClipperModuleGroup["Home"] = 0] = "Home";
28
- ClipperModuleGroup[ClipperModuleGroup["NormativaVigente"] = 1] = "NormativaVigente";
29
- ClipperModuleGroup[ClipperModuleGroup["UltimeNovit\u00E0"] = 2] = "UltimeNovit\u00E0";
30
- ClipperModuleGroup[ClipperModuleGroup["ParApprofondire"] = 3] = "ParApprofondire";
31
- ClipperModuleGroup[ClipperModuleGroup["DGInfo"] = 4] = "DGInfo";
32
- ClipperModuleGroup[ClipperModuleGroup["Giurisprudenza"] = 5] = "Giurisprudenza";
33
- ClipperModuleGroup[ClipperModuleGroup["Calendario"] = 11] = "Calendario";
34
- ClipperModuleGroup[ClipperModuleGroup["Archivio"] = 12] = "Archivio";
35
- ClipperModuleGroup[ClipperModuleGroup["Ricerca"] = 99] = "Ricerca";
36
- })(ClipperModuleGroup || (ClipperModuleGroup = {}));
37
- export var ClipperModule;
38
- (function (ClipperModule) {
39
- ClipperModule[ClipperModule["NormativaVigente"] = 4] = "NormativaVigente";
40
- ClipperModule[ClipperModule["News"] = 1] = "News";
41
- ClipperModule[ClipperModule["GazzetteBollettiniEFontiDiverse"] = 2] = "GazzetteBollettiniEFontiDiverse";
42
- ClipperModule[ClipperModule["Giurisprudenza"] = 5] = "Giurisprudenza";
43
- ClipperModule[ClipperModule["ModificheAbrogazioniERinvii"] = 3] = "ModificheAbrogazioniERinvii";
44
- ClipperModule[ClipperModule["ScadenzeESegnalazioni"] = 12] = "ScadenzeESegnalazioni";
45
- ClipperModule[ClipperModule["AllerteAlimentari"] = 8] = "AllerteAlimentari";
46
- ClipperModule[ClipperModule["Approfondimenti"] = 6] = "Approfondimenti";
47
- ClipperModule[ClipperModule["QuesitiECasiRisolti"] = 10] = "QuesitiECasiRisolti";
48
- ClipperModule[ClipperModule["MetodiDiAnalisi"] = 11] = "MetodiDiAnalisi";
49
- ClipperModule[ClipperModule["DGInfo"] = 61] = "DGInfo";
50
- ClipperModule[ClipperModule["Ricerca"] = 99] = "Ricerca";
51
- })(ClipperModule || (ClipperModule = {}));
52
- export var ClipperModel;
53
- (function (ClipperModel) {
54
- ClipperModel[ClipperModel["Unknown"] = 0] = "Unknown";
55
- ClipperModel[ClipperModel["AggiornamentoNormativo"] = 2] = "AggiornamentoNormativo";
56
- ClipperModel[ClipperModel["News"] = 3] = "News";
57
- ClipperModel[ClipperModel["Articoli"] = 4] = "Articoli";
58
- ClipperModel[ClipperModel["Juris"] = 5] = "Juris";
59
- ClipperModel[ClipperModel["Quesiti"] = 8] = "Quesiti";
60
- ClipperModel[ClipperModel["NormativaVigente"] = 9] = "NormativaVigente";
61
- ClipperModel[ClipperModel["Scadenze"] = 10] = "Scadenze";
62
- ClipperModel[ClipperModel["Coordinamento"] = 11] = "Coordinamento";
63
- ClipperModel[ClipperModel["AllerteAlimentari"] = 13] = "AllerteAlimentari";
64
- ClipperModel[ClipperModel["MetodiDiAnalisi"] = 14] = "MetodiDiAnalisi";
65
- ClipperModel[ClipperModel["GiurisprudenzaRecente"] = 18] = "GiurisprudenzaRecente";
66
- ClipperModel[ClipperModel["Segnalazioni"] = 20] = "Segnalazioni";
67
- ClipperModel[ClipperModel["UltimeNovit\u00E0"] = 21] = "UltimeNovit\u00E0";
68
- })(ClipperModel || (ClipperModel = {}));
69
- export const ClipperModels = [
70
- { value: ClipperModel.AggiornamentoNormativo, name: "Testi storici" },
71
- { value: ClipperModel.News, name: 'News' },
72
- { value: ClipperModel.Articoli, name: 'Articoli' },
73
- { value: ClipperModel.Juris, name: 'Note a sentenza' },
74
- { value: ClipperModel.GiurisprudenzaRecente, name: 'Giurisprudenza' },
75
- { value: ClipperModel.Quesiti, name: 'Quesiti' },
76
- { value: ClipperModel.NormativaVigente, name: 'Normativa vigente' },
77
- { value: ClipperModel.Scadenze, name: 'Scadenze' },
78
- { value: ClipperModel.AllerteAlimentari, name: 'Allerte alimentari' },
79
- { value: ClipperModel.Coordinamento, name: 'Modifiche e abrogazioni' },
80
- ];
81
- export const ClipperModuleGroups = [
82
- { name: "Ultime novità", value: ClipperModuleGroup.Home },
83
- { name: "Ricerca", value: ClipperModuleGroup.Ricerca },
84
- { name: "Normativa vigente", value: ClipperModuleGroup.NormativaVigente },
85
- { name: "Rimani aggiornato", value: ClipperModuleGroup.UltimeNovità },
86
- { name: "Contributi", value: ClipperModuleGroup.ParApprofondire },
87
- { name: "DG Info", value: ClipperModuleGroup.DGInfo },
88
- { name: "Calendario", value: ClipperModuleGroup.Calendario },
89
- { name: "Archivio", value: ClipperModuleGroup.Archivio }
90
- ];
91
- export const ClipperModules = [
92
- { name: 'News, articoli di approfondimento e note a sentenza', shortName: 'Novità', value: ClipperModule.News },
93
- { name: 'Gazzette, Bollettini e fonti diverse', shortName: 'Gazzette, Bollettini e fonti diverse', value: ClipperModule.GazzetteBollettiniEFontiDiverse },
94
- { name: 'Giurisprudenza', shortName: 'Giurisprudenza', value: ClipperModule.Giurisprudenza },
95
- { name: 'Modifiche, abrogazioni e rinvii', shortName: 'Modifiche, abrogazioni e rinvii', value: ClipperModule.ModificheAbrogazioniERinvii },
96
- { name: 'Allerte alimentari', shortName: 'Allerte alimentari', value: ClipperModule.AllerteAlimentari },
97
- { name: 'Scadenze e segnalazioni', shortName: 'Scadenze e segnalazioni', value: ClipperModule.ScadenzeESegnalazioni },
98
- { name: 'Normativa vigente', shortName: 'Normativa vigente', value: ClipperModule.NormativaVigente },
99
- { name: 'Quesiti e casi risolti', shortName: 'Quesiti', value: ClipperModule.QuesitiECasiRisolti },
100
- ];
101
- export var ClipperChannel;
102
- (function (ClipperChannel) {
103
- ClipperChannel[ClipperChannel["None"] = 0] = "None";
104
- ClipperChannel[ClipperChannel["LavoroEAmbiente"] = 1] = "LavoroEAmbiente";
105
- ClipperChannel[ClipperChannel["SostanzeAlimentari"] = 2] = "SostanzeAlimentari";
106
- ClipperChannel[ClipperChannel["MerciPericolose"] = 3] = "MerciPericolose";
107
- ClipperChannel[ClipperChannel["Energia"] = 4] = "Energia";
108
- ClipperChannel[ClipperChannel["DGInfo"] = 5] = "DGInfo";
109
- })(ClipperChannel || (ClipperChannel = {}));
110
- export const ClipperChannels = [
111
- { value: ClipperChannel.LavoroEAmbiente, name: "Lavoro e Ambiente", header: "LA" },
112
- { value: ClipperChannel.SostanzeAlimentari, name: "Sostanze Alimentari", header: "SA" },
113
- { value: ClipperChannel.Energia, name: "Energia", header: "E" },
114
- { value: ClipperChannel.MerciPericolose, name: "Merci Pericolose", header: "MP" }
115
- ];
116
- export const ClipperRegions = [
117
- {
118
- value: '4RAB',
119
- name: 'Abruzzo',
120
- },
121
- {
122
- value: '4RBA',
123
- name: 'Basilicata',
124
- },
125
- {
126
- value: '4RCAL',
127
- name: 'Calabria',
128
- },
129
- {
130
- value: '4RCAM',
131
- name: 'Campania',
132
- },
133
- {
134
- value: '4REM',
135
- name: 'Emilia Romagna',
136
- },
137
- {
138
- value: '4RFVG',
139
- name: 'Friuli Venezia Giulia',
140
- },
141
- {
142
- value: '4RLA',
143
- name: 'Lazio',
144
- },
145
- {
146
- value: '4RLI',
147
- name: 'Liguria',
148
- },
149
- {
150
- value: '4RLO',
151
- name: 'Lombardia',
152
- },
153
- {
154
- value: '4RMA',
155
- name: 'Marche',
156
- },
157
- {
158
- value: '4RMO',
159
- name: 'Molise',
160
- },
161
- {
162
- value: '4RPI',
163
- name: 'Piemonte',
164
- },
165
- {
166
- value: '4RPU',
167
- name: 'Puglia',
168
- },
169
- {
170
- value: '4RSA',
171
- name: 'Sardegna',
172
- },
173
- {
174
- value: '4RSI',
175
- name: 'Sicilia',
176
- },
177
- {
178
- value: '4RTO',
179
- name: 'Toscana',
180
- },
181
- {
182
- value: '4RTAA',
183
- name: 'Trentino Alto Adige',
184
- },
185
- {
186
- value: '4RUM',
187
- name: 'Umbria',
188
- },
189
- {
190
- value: '4RVA',
191
- name: "Valle D'Aosta",
192
- },
193
- {
194
- value: '4RVE',
195
- name: 'Veneto',
196
- },
197
- {
198
- value: '4PAT',
199
- name: 'Prov. Aut. Trento',
200
- },
201
- {
202
- value: '4PAB',
203
- name: 'Prov. Aut. Bolzano',
204
- }
205
- ];
206
- export const ClipperSectors = [
207
- {
208
- value: 'LC',
209
- name: 'Legislazione comunitaria',
210
- shortName: 'Comunitaria',
211
- group: 'S',
212
- channels: '|LA|SA|OP|E|',
213
- },
214
- {
215
- value: 'LN',
216
- name: 'Legislazione nazionale',
217
- shortName: 'Nazionale',
218
- group: 'S',
219
- channels: '|LA|SA|OP|E|',
220
- },
221
- {
222
- value: 'LR',
223
- name: 'Legislazione regionale',
224
- shortName: 'Regionale',
225
- group: 'S',
226
- channels: '|LA|SA|OP|E|',
227
- },
228
- {
229
- value: '4RAB',
230
- name: ' Abruzzo',
231
- group: 'A',
232
- channels: '|LA|SA|OP|E|',
233
- },
234
- {
235
- value: '4PAB',
236
- name: ' Prov. Aut. Bolzano',
237
- group: 'A',
238
- channels: '|LA|SA|OP|E|',
239
- },
240
- {
241
- value: '4RBA',
242
- name: ' Basilicata',
243
- group: 'A',
244
- channels: '|LA|SA|OP|E|',
245
- },
246
- {
247
- value: '4RCAL',
248
- name: ' Calabria',
249
- group: 'A',
250
- channels: '|LA|SA|OP|E|',
251
- },
252
- {
253
- value: '4RCAM',
254
- name: ' Campania',
255
- group: 'A',
256
- channels: '|LA|SA|OP|E|',
257
- },
258
- {
259
- value: '4REM',
260
- name: ' Emilia Romagna',
261
- group: 'A',
262
- channels: '|LA|SA|OP|E|',
263
- },
264
- {
265
- value: '4RFVG',
266
- name: ' Friuli Venezia Giulia',
267
- group: 'A',
268
- channels: '|LA|SA|OP|E|',
269
- },
270
- {
271
- value: '4RLA',
272
- name: ' Lazio',
273
- group: 'A',
274
- channels: '|LA|SA|OP|E|',
275
- },
276
- {
277
- value: '4RLI',
278
- name: ' Liguria',
279
- group: 'A',
280
- channels: '|LA|SA|OP|E|',
281
- },
282
- {
283
- value: '4RLO',
284
- name: ' Lombardia',
285
- group: 'A',
286
- channels: '|LA|SA|OP|E|',
287
- },
288
- {
289
- value: '4RMA',
290
- name: ' Marche',
291
- group: 'A',
292
- channels: '|LA|SA|OP|E|',
293
- },
294
- {
295
- value: '4RMO',
296
- name: ' Molise',
297
- group: 'A',
298
- channels: '|LA|SA|OP|E|',
299
- },
300
- {
301
- value: '4RPI',
302
- name: ' Piemonte',
303
- group: 'A',
304
- channels: '|LA|SA|OP|E|',
305
- },
306
- {
307
- value: '4RPU',
308
- name: ' Puglia',
309
- group: 'A',
310
- channels: '|LA|SA|OP|E|',
311
- },
312
- {
313
- value: '4RSA',
314
- name: ' Sardegna',
315
- group: 'A',
316
- channels: '|LA|SA|OP|E|',
317
- },
318
- {
319
- value: '4RSI',
320
- name: ' Sicilia',
321
- group: 'A',
322
- channels: '|LA|SA|OP|E|',
323
- },
324
- {
325
- value: '4RTO',
326
- name: ' Toscana',
327
- group: 'A',
328
- channels: '|LA|SA|OP|E|',
329
- },
330
- {
331
- value: '4RTAA',
332
- name: ' Trentino Alto Adige',
333
- group: 'A',
334
- channels: '|LA|SA|OP|E|',
335
- },
336
- {
337
- value: '4PAT',
338
- name: ' Prov. Aut. Trento',
339
- group: 'A',
340
- channels: '|LA|SA|OP|E|',
341
- },
342
- {
343
- value: '4RUM',
344
- name: ' Umbria',
345
- group: 'A',
346
- channels: '|LA|SA|OP|E|',
347
- },
348
- {
349
- value: '4RVA',
350
- name: " Valle D'Aosta",
351
- group: 'A',
352
- channels: '|LA|SA|OP|E|',
353
- },
354
- {
355
- value: '4RVE',
356
- name: ' Veneto',
357
- group: 'A',
358
- channels: '|LA|SA|OP|E|',
359
- },
360
- {
361
- value: 'GC',
362
- name: 'Giurisprudenza comunitaria',
363
- shortName: 'Giuris. comunitaria',
364
- group: 'S',
365
- channels: '|LA|SA|OP|E|',
366
- },
367
- {
368
- value: 'GN',
369
- name: 'Giurisprudenza nazionale',
370
- shortName: 'Giurisprudenza',
371
- group: 'S',
372
- channels: '|LA|SA|OP|E|',
373
- },
374
- {
375
- value: 'TN',
376
- name: 'Normativa tecnica',
377
- shortName: 'Tecnica',
378
- group: 'S',
379
- channels: '|LA|SA|OP|E|',
380
- },
381
- {
382
- value: 'TI',
383
- name: 'Normativa tecnica internazionale',
384
- shortName: 'Tecnica internaz.',
385
- group: 'S',
386
- channels: '|LA|SA|OP|E|',
387
- },
388
- {
389
- value: 'NI',
390
- name: 'Normativa internazionale',
391
- shortName: 'Internazionale',
392
- group: 'S',
393
- channels: '|LA|SA|OP|E|',
394
- },
395
- /* {
396
- value: 'SN',
397
- name: 'Documentazione scientifica',
398
- shortName: 'Scientifica',
399
- group: 'S',
400
- channels: '|SA|',
401
- } */
402
- ];
403
- export const ClipperSectorTypes = [
404
- {
405
- parentValue: 'NI',
406
- value: '14',
407
- name: 'Convenzione Internazionale',
408
- },
409
- {
410
- parentValue: 'NI',
411
- value: '6',
412
- name: 'Accordo Multilaterale',
413
- },
414
- {
415
- parentValue: 'LN',
416
- value: '4',
417
- name: 'Accordo (naz.)',
418
- },
419
- {
420
- parentValue: 'LN',
421
- value: '75',
422
- name: 'Altri documenti (naz.)',
423
- },
424
- {
425
- parentValue: 'LN',
426
- value: '17',
427
- name: 'Circolare Commissariale',
428
- },
429
- {
430
- parentValue: 'LN',
431
- value: '58',
432
- name: 'Circolare (Comitati)',
433
- },
434
- {
435
- parentValue: 'LN',
436
- value: '10',
437
- name: 'Circolare Ministeriale',
438
- },
439
- {
440
- parentValue: 'LN',
441
- value: '13',
442
- name: 'Comunicato (naz.)',
443
- },
444
- {
445
- parentValue: 'LN',
446
- value: '15',
447
- name: 'Costituzione della Repubblica',
448
- },
449
- {
450
- parentValue: 'LN',
451
- value: '18',
452
- name: 'Decreto Commissariale',
453
- },
454
- {
455
- parentValue: 'LN',
456
- value: '21',
457
- name: 'Decreto Capo Provv. Stato',
458
- },
459
- {
460
- parentValue: 'LN',
461
- value: '22',
462
- name: 'Decreto Pres. Cons. Ministri',
463
- },
464
- {
465
- parentValue: 'LN',
466
- value: '25',
467
- name: 'Decreto Presidente Repubblica',
468
- },
469
- {
470
- parentValue: 'LN',
471
- value: '27',
472
- name: 'Decreto Legge',
473
- },
474
- {
475
- parentValue: 'LN',
476
- value: '28',
477
- name: 'Decreto Legge Luogotenenziale',
478
- },
479
- {
480
- parentValue: 'LN',
481
- value: '29',
482
- name: 'D.Lgs. Capo Provv. Stato',
483
- },
484
- {
485
- parentValue: 'LN',
486
- value: '30',
487
- name: 'D.Lgs. Governo',
488
- },
489
- {
490
- parentValue: 'LN',
491
- value: '32',
492
- name: 'D.Lgs. Luogotenenziale',
493
- },
494
- {
495
- parentValue: 'LN',
496
- value: '33',
497
- name: 'Decreto Luogotenenziale',
498
- },
499
- {
500
- parentValue: 'LN',
501
- value: '34',
502
- name: 'Decreto Ministeriale',
503
- },
504
- {
505
- parentValue: 'LN',
506
- value: '35',
507
- name: 'Deliberazione (naz.)',
508
- },
509
- {
510
- parentValue: 'LN',
511
- value: '47',
512
- name: 'Determinazione (naz.)',
513
- },
514
- {
515
- parentValue: 'LN',
516
- value: '26',
517
- name: 'Documento di consultazione',
518
- },
519
- {
520
- parentValue: 'LN',
521
- value: '48',
522
- name: 'Legge',
523
- },
524
- {
525
- parentValue: 'LN',
526
- value: '42',
527
- name: 'Lettera Circolare (Comitati)',
528
- },
529
- {
530
- parentValue: 'LN',
531
- value: '43',
532
- name: 'Lettera Circolare Ministeriale',
533
- },
534
- {
535
- parentValue: 'LN',
536
- value: '56',
537
- name: 'Nota Ministeriale',
538
- },
539
- {
540
- parentValue: 'LN',
541
- value: '91',
542
- name: 'Ordinanza Commissariale',
543
- },
544
- {
545
- parentValue: 'LN',
546
- value: '82',
547
- name: 'Ordinanza Pres. Cons. Ministri',
548
- },
549
- {
550
- parentValue: 'LN',
551
- value: '57',
552
- name: 'Ordinanza Ministeriale',
553
- },
554
- {
555
- parentValue: 'LN',
556
- value: '76',
557
- name: 'Provvedimento (naz.)',
558
- },
559
- {
560
- parentValue: 'LN',
561
- value: '66',
562
- name: 'Regio Decreto',
563
- },
564
- {
565
- parentValue: 'LN',
566
- value: '67',
567
- name: 'Regio Decreto Legge',
568
- },
569
- {
570
- parentValue: 'LN',
571
- value: '68',
572
- name: 'Regio Decreto Legislativo',
573
- },
574
- {
575
- parentValue: 'LN',
576
- value: '71',
577
- name: 'Statuto delle Regioni Ordinarie',
578
- },
579
- {
580
- parentValue: 'LC',
581
- value: '139',
582
- name: 'Accordi (CE)',
583
- },
584
- {
585
- parentValue: 'LC',
586
- value: '140',
587
- name: 'Atti diversi (CE/UE)',
588
- },
589
- {
590
- parentValue: 'LC',
591
- value: '131',
592
- name: 'Posizione Comune (CE)',
593
- },
594
- {
595
- parentValue: 'LC',
596
- value: '132',
597
- name: 'Posizione Comune (UE)',
598
- },
599
- {
600
- parentValue: 'LC',
601
- value: '126',
602
- name: 'Comunicazione (CE)',
603
- },
604
- {
605
- parentValue: 'LC',
606
- value: '127',
607
- name: 'Comunicazione (UE)',
608
- },
609
- {
610
- parentValue: 'LC',
611
- value: '111',
612
- name: 'Decisione (CE)',
613
- },
614
- {
615
- parentValue: 'LC',
616
- value: '112',
617
- name: 'Decisione (UE)',
618
- },
619
- {
620
- parentValue: 'LC',
621
- value: '113',
622
- name: 'Decisione (UE)',
623
- },
624
- {
625
- parentValue: 'LC',
626
- value: '121',
627
- name: 'Direttiva (CEE)',
628
- },
629
- {
630
- parentValue: 'LC',
631
- value: '122',
632
- name: 'Direttiva (CE)',
633
- },
634
- {
635
- parentValue: 'LC',
636
- value: '123',
637
- name: 'Direttiva (UE)',
638
- },
639
- {
640
- parentValue: 'LC',
641
- value: '138',
642
- name: 'Parere',
643
- },
644
- {
645
- parentValue: 'LC',
646
- value: '128',
647
- name: 'Raccomandazione (CEE)',
648
- },
649
- {
650
- parentValue: 'LC',
651
- value: '129',
652
- name: 'Raccomandazione (CE)',
653
- },
654
- {
655
- parentValue: 'LC',
656
- value: '130',
657
- name: 'Raccomandazione (UE)',
658
- },
659
- {
660
- parentValue: 'LC',
661
- value: '116',
662
- name: 'Regolamento (CEE)',
663
- },
664
- {
665
- parentValue: 'LC',
666
- value: '117',
667
- name: 'Regolamento (CE)',
668
- },
669
- {
670
- parentValue: 'LC',
671
- value: '118',
672
- name: 'Regolamento (UE)',
673
- },
674
- {
675
- parentValue: 'LC',
676
- value: '135',
677
- name: 'Rettifica',
678
- },
679
- {
680
- parentValue: 'LC',
681
- value: '133',
682
- name: 'Risoluzione',
683
- },
684
- {
685
- parentValue: 'LC',
686
- value: '134',
687
- name: 'Trattato',
688
- },
689
- {
690
- parentValue: 'LR',
691
- value: '69',
692
- name: 'Altri documenti (reg.)',
693
- },
694
- {
695
- parentValue: 'LR',
696
- value: '11',
697
- name: 'Circolare Pres. Giunta Reg.',
698
- },
699
- {
700
- parentValue: 'LR',
701
- value: '46',
702
- name: "Circolare dell'Assessore",
703
- },
704
- {
705
- parentValue: 'LR',
706
- value: '83',
707
- name: 'Circolare reg.',
708
- },
709
- {
710
- parentValue: 'LR',
711
- value: '70',
712
- name: 'Comunicato (reg.)',
713
- },
714
- {
715
- parentValue: 'LR',
716
- value: '80',
717
- name: 'Decreto del Dirigente',
718
- },
719
- {
720
- parentValue: 'LR',
721
- value: '24',
722
- name: 'Decreto Pres. Giunta Prov.',
723
- },
724
- {
725
- parentValue: 'LR',
726
- value: '23',
727
- name: 'Decreto Pres. Giunta Reg.',
728
- },
729
- {
730
- parentValue: 'LR',
731
- value: '19',
732
- name: "Decreto dell'Assessore Regionale",
733
- },
734
- {
735
- parentValue: 'LR',
736
- value: '31',
737
- name: 'Delib. Consiglio Prov.',
738
- },
739
- {
740
- parentValue: 'LR',
741
- value: '36',
742
- name: 'Delib. Consiglio Reg.',
743
- },
744
- {
745
- parentValue: 'LR',
746
- value: '37',
747
- name: 'Delib. Giunta Prov.',
748
- },
749
- {
750
- parentValue: 'LR',
751
- value: '38',
752
- name: 'Delib. Giunta Reg.',
753
- },
754
- {
755
- parentValue: 'LR',
756
- value: '81',
757
- name: 'Determinazione del Dirigente',
758
- },
759
- {
760
- parentValue: 'LR',
761
- value: '12',
762
- name: 'Direttiva (reg.)',
763
- },
764
- {
765
- parentValue: 'LR',
766
- value: '49',
767
- name: 'Legge Prov. Aut.',
768
- },
769
- {
770
- parentValue: 'LR',
771
- value: '50',
772
- name: 'Legge Regionale',
773
- },
774
- {
775
- parentValue: 'LR',
776
- value: '51',
777
- name: 'Linee guida (reg.)',
778
- },
779
- {
780
- parentValue: 'LR',
781
- value: '9',
782
- name: 'Ordinanza Pres. Prov.',
783
- },
784
- {
785
- parentValue: 'LR',
786
- value: '55',
787
- name: 'Ordinanza Pres. Reg.',
788
- },
789
- {
790
- parentValue: 'LR',
791
- value: '85',
792
- name: 'Provvedimento (reg.)',
793
- },
794
- {
795
- parentValue: 'LR',
796
- value: '65',
797
- name: 'Regolamento Regionale',
798
- },
799
- {
800
- parentValue: 'GN',
801
- value: '63',
802
- name: 'Decisione',
803
- },
804
- {
805
- parentValue: 'GN',
806
- value: '41',
807
- name: 'Decreto Penale',
808
- },
809
- {
810
- parentValue: 'GN',
811
- value: '54',
812
- name: 'Ordinanza',
813
- },
814
- {
815
- parentValue: 'GN',
816
- value: '62',
817
- name: 'Ricorso',
818
- },
819
- {
820
- parentValue: 'GN',
821
- value: '72',
822
- name: 'Sentenza',
823
- },
824
- {
825
- parentValue: 'GC',
826
- value: '143',
827
- name: 'Ordinanza (CE)',
828
- },
829
- {
830
- parentValue: 'GC',
831
- value: '144',
832
- name: 'Ordinanza (UE)',
833
- },
834
- {
835
- parentValue: 'GC',
836
- value: '141',
837
- name: 'Sentenza (CE)',
838
- },
839
- {
840
- parentValue: 'GC',
841
- value: '142',
842
- name: 'Sentenza (UE)',
843
- },
844
- {
845
- parentValue: 'TN',
846
- value: '73',
847
- name: 'Altri documenti (Enti ed Istituti)',
848
- },
849
- {
850
- parentValue: 'TN',
851
- value: '44',
852
- name: 'Circolare (Enti ed Istituti)',
853
- },
854
- {
855
- parentValue: 'TN',
856
- value: '20',
857
- name: 'Comunicato (Enti ed Istituti)',
858
- },
859
- {
860
- parentValue: 'TN',
861
- value: '60',
862
- name: 'Decreto (Enti ed Istituti)',
863
- },
864
- {
865
- parentValue: 'TN',
866
- value: '40',
867
- name: 'Delibera (Enti ed Istituti)',
868
- },
869
- {
870
- parentValue: 'TN',
871
- value: '53',
872
- name: 'Fascicolo (Enti ed Istituti)',
873
- },
874
- {
875
- parentValue: 'TN',
876
- value: '45',
877
- name: 'Istruzione Tecnica',
878
- },
879
- {
880
- parentValue: 'TN',
881
- value: '59',
882
- name: 'Lettera Circolare (Enti ed Istituti)',
883
- },
884
- {
885
- parentValue: 'TN',
886
- value: '79',
887
- name: 'Linee guida (Enti ed Istituti)',
888
- },
889
- {
890
- parentValue: 'TN',
891
- value: '98',
892
- name: 'Norma Tecnica',
893
- },
894
- {
895
- parentValue: 'TN',
896
- value: '97',
897
- name: 'Opuscolo Tecnico',
898
- },
899
- {
900
- parentValue: 'TN',
901
- value: '77',
902
- name: 'Pubblicazione (Enti ed Istituti)',
903
- },
904
- {
905
- parentValue: 'TN',
906
- value: '86',
907
- name: 'Quaderno',
908
- },
909
- {
910
- parentValue: 'TN',
911
- value: '52',
912
- name: 'Regolamento (Enti ed Istituti)',
913
- },
914
- {
915
- parentValue: 'TN',
916
- value: '84',
917
- name: 'Istruzione Operativa (Enti e Istituti)',
918
- },
919
- {
920
- parentValue: 'TN',
921
- value: '94',
922
- name: 'Nota (Enti e Istituti)',
923
- },
924
- {
925
- parentValue: 'NI',
926
- value: '104',
927
- name: 'Regolamento UNECE',
928
- },
929
- {
930
- parentValue: 'SN',
931
- value: '105',
932
- name: 'Documento',
933
- },
934
- {
935
- parentValue: 'TN',
936
- value: '106',
937
- name: 'Direttiva (Enti e Istituti)',
938
- },
939
- {
940
- parentValue: 'TN',
941
- value: '74',
942
- name: 'Prassi di riferimento',
943
- },
944
- {
945
- parentValue: 'LN',
946
- value: '16',
947
- name: 'Linee guida (naz.)',
948
- },
949
- {
950
- parentValue: 'LN',
951
- value: '3',
952
- name: 'Direttiva (naz.)',
953
- },
954
- {
955
- parentValue: 'TI',
956
- value: '107',
957
- name: 'Normativa Tecnica Internazionale',
958
- },
959
- ];
960
- export const ClipperAuthors = [
961
- {
962
- sectorId: 'LR',
963
- channels: null,
964
- value: '4RAB',
965
- name: 'Abruzzo',
966
- },
967
- {
968
- sectorId: 'LR',
969
- channels: null,
970
- value: '4RBA',
971
- name: 'Basilicata',
972
- },
973
- {
974
- sectorId: 'LR',
975
- channels: null,
976
- value: '4RCAL',
977
- name: 'Calabria',
978
- },
979
- {
980
- sectorId: 'LR',
981
- channels: null,
982
- value: '4RCAM',
983
- name: 'Campania',
984
- },
985
- {
986
- sectorId: 'LR',
987
- channels: null,
988
- value: '4REM',
989
- name: 'Emilia Romagna',
990
- },
991
- {
992
- sectorId: 'LR',
993
- channels: null,
994
- value: '4RFVG',
995
- name: 'Friuli Venezia Giulia',
996
- },
997
- {
998
- sectorId: 'LR',
999
- channels: null,
1000
- value: '4RLA',
1001
- name: 'Lazio',
1002
- },
1003
- {
1004
- sectorId: 'LR',
1005
- channels: null,
1006
- value: '4RLI',
1007
- name: 'Liguria',
1008
- },
1009
- {
1010
- sectorId: 'LR',
1011
- channels: null,
1012
- value: '4RLO',
1013
- name: 'Lombardia',
1014
- },
1015
- {
1016
- sectorId: 'LR',
1017
- channels: null,
1018
- value: '4RMA',
1019
- name: 'Marche',
1020
- },
1021
- {
1022
- sectorId: 'LR',
1023
- channels: null,
1024
- value: '4RMO',
1025
- name: 'Molise',
1026
- },
1027
- {
1028
- sectorId: 'LR',
1029
- channels: null,
1030
- value: '4RPI',
1031
- name: 'Piemonte',
1032
- },
1033
- {
1034
- sectorId: 'LR',
1035
- channels: null,
1036
- value: '4RPU',
1037
- name: 'Puglia',
1038
- },
1039
- {
1040
- sectorId: 'LR',
1041
- channels: null,
1042
- value: '4RSA',
1043
- name: 'Sardegna',
1044
- },
1045
- {
1046
- sectorId: 'LR',
1047
- channels: null,
1048
- value: '4RSI',
1049
- name: 'Sicilia',
1050
- },
1051
- {
1052
- sectorId: 'LR',
1053
- channels: null,
1054
- value: '4RTO',
1055
- name: 'Toscana',
1056
- },
1057
- {
1058
- sectorId: 'LR',
1059
- channels: null,
1060
- value: '4RTAA',
1061
- name: 'Trentino Trentino Alto Adige',
1062
- },
1063
- {
1064
- sectorId: 'LR',
1065
- channels: null,
1066
- value: '4RUM',
1067
- name: 'Umbria',
1068
- },
1069
- {
1070
- sectorId: 'LR',
1071
- channels: null,
1072
- value: '4RVA',
1073
- name: "Valle D'Aosta",
1074
- },
1075
- {
1076
- sectorId: 'LR',
1077
- channels: null,
1078
- value: '4RVE',
1079
- name: 'Veneto',
1080
- },
1081
- {
1082
- sectorId: 'LR',
1083
- channels: null,
1084
- value: '4PAB',
1085
- name: 'Prov. Autonoma di Bolzano',
1086
- },
1087
- {
1088
- sectorId: 'LR',
1089
- channels: null,
1090
- value: '4PAT',
1091
- name: 'Prov. Autonoma di Trento',
1092
- },
1093
- {
1094
- sectorId: 'TN',
1095
- channels: '|LA|',
1096
- value: '6CEI',
1097
- name: 'C.E.I. - Comitato Elettrotecnico Italiano',
1098
- },
1099
- {
1100
- sectorId: 'TN',
1101
- channels: '|LA|SA|',
1102
- value: '6CNR',
1103
- name: 'C.N.R. - Consiglio Nazionale delle Ricerche',
1104
- },
1105
- {
1106
- sectorId: 'TN',
1107
- channels: '|LA|',
1108
- value: '6ENPI',
1109
- name: 'E.N.P.I. - Ente Nazionale Prevenzione Infortuni',
1110
- },
1111
- {
1112
- sectorId: 'TN',
1113
- channels: '|LA|',
1114
- value: '6INAI',
1115
- name: 'I.N.A.I.L. - Istituto nazionale Assicurazione Infortuni sul Lavoro',
1116
- },
1117
- {
1118
- sectorId: 'TN',
1119
- channels: '|LA|',
1120
- value: '6ISPS',
1121
- name: 'I.S.P.E.S.L. - Istituto Superiore per la Prevenzione e la Sicurezza del Lavoro',
1122
- },
1123
- {
1124
- sectorId: 'TN',
1125
- channels: '|LA|',
1126
- value: '6INPS',
1127
- name: 'I.N.P.S. - Istituto Nazionale Previdenza Sociale',
1128
- },
1129
- {
1130
- sectorId: 'TN',
1131
- channels: '|LA|SA|',
1132
- value: '6ISS',
1133
- name: 'I.S.S. - Istituto Superiore di Sanità',
1134
- },
1135
- {
1136
- sectorId: 'TN',
1137
- channels: '|LA|SA|',
1138
- value: '6UNI',
1139
- name: 'U.N.I. - Ente Nazionale Italiano di Unificazione',
1140
- },
1141
- {
1142
- sectorId: 'GN',
1143
- channels: null,
1144
- value: '5CC',
1145
- name: 'Corte Costituzionale',
1146
- },
1147
- {
1148
- sectorId: 'GN',
1149
- channels: null,
1150
- value: '5CCC',
1151
- name: 'Corte di Cassazione Civile',
1152
- },
1153
- {
1154
- sectorId: 'GN',
1155
- channels: null,
1156
- value: '5CCP',
1157
- name: 'Corte di Cassazione Penale',
1158
- },
1159
- {
1160
- sectorId: 'GN',
1161
- channels: null,
1162
- value: '5CASA',
1163
- name: "Corte d'Assise d'Appello",
1164
- },
1165
- {
1166
- sectorId: 'GN',
1167
- channels: null,
1168
- value: '5CAS',
1169
- name: "Corte d'Assise",
1170
- },
1171
- {
1172
- sectorId: 'GN',
1173
- channels: null,
1174
- value: '5CA',
1175
- name: "Corte d'Appello",
1176
- },
1177
- {
1178
- sectorId: 'GN',
1179
- channels: null,
1180
- value: '5PCA',
1181
- name: "Procura Generale Corte d'Appello",
1182
- },
1183
- {
1184
- sectorId: 'GN',
1185
- channels: null,
1186
- value: '5GDP',
1187
- name: 'Giudice di Pace',
1188
- },
1189
- {
1190
- sectorId: 'GN',
1191
- channels: null,
1192
- value: '5PR',
1193
- name: 'Procura della Repubblica',
1194
- },
1195
- {
1196
- sectorId: 'GN',
1197
- channels: null,
1198
- value: '5T',
1199
- name: 'Tribunale',
1200
- },
1201
- {
1202
- sectorId: 'GN',
1203
- channels: null,
1204
- value: '5P',
1205
- name: 'Pretura',
1206
- },
1207
- {
1208
- sectorId: 'GN',
1209
- channels: null,
1210
- value: '5CDS',
1211
- name: 'Consiglio di Stato',
1212
- },
1213
- {
1214
- sectorId: 'GN',
1215
- channels: null,
1216
- value: '5TAR',
1217
- name: 'Tribunale Amministrativo Regionale',
1218
- },
1219
- {
1220
- sectorId: 'GN',
1221
- channels: null,
1222
- value: '5TSA',
1223
- name: 'Tribunale Superiore delle Acque',
1224
- },
1225
- {
1226
- sectorId: 'GN',
1227
- channels: null,
1228
- value: '5TGA',
1229
- name: 'Tribunale Regionale acque',
1230
- },
1231
- {
1232
- sectorId: 'GN',
1233
- channels: null,
1234
- value: '5CTP',
1235
- name: 'Commissione Tributaria Provinciale',
1236
- },
1237
- {
1238
- sectorId: 'GN',
1239
- channels: null,
1240
- value: '5CTR',
1241
- name: 'Commissione Tributaria Regionale',
1242
- },
1243
- {
1244
- sectorId: 'GN',
1245
- channels: null,
1246
- value: '5CGAS',
1247
- name: 'Cons. di Giustizia Amm.va della Sicilia',
1248
- },
1249
- {
1250
- sectorId: 'GN',
1251
- channels: null,
1252
- value: '5CDC',
1253
- name: 'Corte dei Conti',
1254
- },
1255
- {
1256
- sectorId: 'GC',
1257
- channels: null,
1258
- value: '3CJCE',
1259
- name: 'Corte di Giustizia CEE/CE',
1260
- },
1261
- {
1262
- sectorId: 'GC',
1263
- channels: null,
1264
- value: '3CEDM',
1265
- name: "Corte Europea per i Diritti dell'Uomo",
1266
- },
1267
- {
1268
- sectorId: 'GC',
1269
- channels: null,
1270
- value: '3CWJ',
1271
- name: 'Corte Internazionale di Giustizia',
1272
- },
1273
- {
1274
- sectorId: 'GC',
1275
- channels: null,
1276
- value: '3T1CE',
1277
- name: 'Tribunale di Primo Grado CEE/CE',
1278
- },
1279
- ];
1280
- export const ClipperSources = [
1281
- {
1282
- value: 'ACCML',
1283
- name: 'Accordi Multilaterali',
1284
- },
1285
- {
1286
- value: 'AEEG',
1287
- name: "Sito Autorità per l'Energia Elettrica, il Gas e il Sistema Idrico",
1288
- },
1289
- {
1290
- value: 'ARERA',
1291
- name: 'Sito Autorità di Regolazione per Energia, Reti e Ambiente',
1292
- },
1293
- {
1294
- value: 'BUR',
1295
- name: 'Bollettino Uff. Regione',
1296
- },
1297
- {
1298
- value: 'BUS',
1299
- name: 'Suppl. speciale al Bollettino Uff.',
1300
- },
1301
- {
1302
- value: 'BUSO',
1303
- name: 'Suppl. ordin. al Bollettino Uff.',
1304
- },
1305
- {
1306
- value: 'BUSS',
1307
- name: 'Suppl. straord. al Bollettino Uff.',
1308
- },
1309
- {
1310
- value: 'GU',
1311
- name: 'Gazzetta Ufficiale Italiana',
1312
- },
1313
- {
1314
- value: 'GUCC',
1315
- name: 'Gazz. Uff. Corte Costituzionale',
1316
- },
1317
- {
1318
- value: 'GUCE',
1319
- name: 'Gazzetta ufficiale delle Comunità europee',
1320
- },
1321
- {
1322
- value: 'GUES',
1323
- name: 'Gazz. Uff. Ediz. Speciale',
1324
- },
1325
- {
1326
- value: 'GURS',
1327
- name: 'Gazz. Uff. Regione Sicilia',
1328
- },
1329
- {
1330
- value: 'GUS',
1331
- name: 'Gazz. Uff. Serie Speciale',
1332
- },
1333
- {
1334
- value: 'GUSO',
1335
- name: 'Suppl. ordin. alla Gazzetta Ufficiale',
1336
- },
1337
- {
1338
- value: 'GUSS',
1339
- name: 'Suppl. straord. alla Gazzetta Ufficiale',
1340
- },
1341
- {
1342
- value: 'GUUE',
1343
- name: 'Gazzetta ufficiale dell’Unione europea',
1344
- },
1345
- {
1346
- value: 'MAC',
1347
- name: 'Massimario Civile',
1348
- },
1349
- {
1350
- value: 'MAP',
1351
- name: 'Massimario Penale',
1352
- },
1353
- {
1354
- value: 'NONE',
1355
- name: 'Fonti diverse',
1356
- }
1357
- ];
1358
- export class ClipperChannelSettings {
1359
- constructor() {
1360
- this.isEnabled = false;
1361
- this.isActive = false;
1362
- this.sectors = [];
1363
- this.regions = [];
1364
- }
1365
- /**
1366
- * Check at least one of sector values is contained in sectors list
1367
- * @param values : the admitted values
1368
- * @returns true if at least one value has been found
1369
- */
1370
- hasAnyOfSectors(values) {
1371
- if (this.isEnabled === true && this.isActive === true) {
1372
- for (let i = 0; i < values.length; i++) {
1373
- if (this.sectors.filter(n => n.value === values[i])?.length > 0) {
1374
- return true;
1375
- }
1376
- }
1377
- }
1378
- return false;
1379
- }
1380
- /**
1381
- * Check at least one of region values is contained in regions list
1382
- * @param values : the admitted values
1383
- * @returns true if at least one value has been found
1384
- */
1385
- hasAnyOfRegions(values) {
1386
- if (this.isEnabled === true && this.isActive === true) {
1387
- for (let i = 0; i < values.length; i++) {
1388
- if (this.regions.filter(n => n.value === values[i])?.length > 0) {
1389
- return true;
1390
- }
1391
- }
1392
- }
1393
- return false;
1394
- }
1395
- }
1396
- export class ClipperSearchParams {
1397
- constructor() {
1398
- this.version = 6;
1399
- this.searchId = null;
1400
- this.searchName = null;
1401
- this.text = null;
1402
- this.augmentedText = null;
1403
- this.title = null;
1404
- this.titleOnly = false;
1405
- this.showUnreadDocumentsOnly = false;
1406
- this.showCommentedDocumentsOnly = false;
1407
- this.showNotAbrogatedDocumentsOnly = false;
1408
- this.expandTextQueryUsingAI = false;
1409
- this.number = null;
1410
- this.fromDate = null;
1411
- this.toDate = null;
1412
- this.year = null;
1413
- this.sourceNumber = null;
1414
- this.source = null;
1415
- this.sourceFromDate = null;
1416
- this.sourceToDate = null;
1417
- this.sourceYear = null;
1418
- this.sector = null;
1419
- this.sectors = null;
1420
- this.topic = null;
1421
- this.topics = null;
1422
- this.taxonomy = null;
1423
- this.taxonomies = null;
1424
- this.taxonomyPath = null;
1425
- this.taxonomyNode = null;
1426
- this.type = null;
1427
- this.types = null;
1428
- this.tag = null;
1429
- this.tags = null;
1430
- this.author = null;
1431
- this.authors = null;
1432
- this.changeReason = null;
1433
- this.changedNumber = null;
1434
- this.changedYear = null;
1435
- this.changedTitle = null;
1436
- this.modifierNumber = null;
1437
- this.modifierYear = null;
1438
- this.modifierTitle = null;
1439
- this.model = null;
1440
- this.models = null;
1441
- this.module = null;
1442
- this.modules = null;
1443
- this.mode = null;
1444
- this.channels = [...ClipperChannels];
1445
- this.count = 15;
1446
- this.id = null;
1447
- this.anchor = null;
1448
- this.excludeTextReferences = false;
1449
- this.excludeNotesReferences = false;
1450
- this.useModifierInfo = false;
1451
- this.returnModifierInfo = false;
1452
- this.first = 0;
1453
- this.sortMode = null;
1454
- }
1455
- }
1456
- export var ClipperDocumentContainer;
1457
- (function (ClipperDocumentContainer) {
1458
- ClipperDocumentContainer[ClipperDocumentContainer["None"] = 0] = "None";
1459
- ClipperDocumentContainer[ClipperDocumentContainer["LavoroEAmbiente"] = 1] = "LavoroEAmbiente";
1460
- ClipperDocumentContainer[ClipperDocumentContainer["SostanzeAlimentari"] = 2] = "SostanzeAlimentari";
1461
- ClipperDocumentContainer[ClipperDocumentContainer["OrangeProject"] = 4] = "OrangeProject";
1462
- ClipperDocumentContainer[ClipperDocumentContainer["Energia"] = 8] = "Energia";
1463
- ClipperDocumentContainer[ClipperDocumentContainer["DGInfo"] = 16] = "DGInfo";
1464
- ClipperDocumentContainer[ClipperDocumentContainer["DLGS231"] = 32] = "DLGS231";
1465
- ClipperDocumentContainer[ClipperDocumentContainer["All"] = 63] = "All";
1466
- })(ClipperDocumentContainer || (ClipperDocumentContainer = {}));
1467
- export const ClipperDocumentChangeReasons = [
1468
- { name: 'Abrogazione', value: 1 },
1469
- { name: 'Annullamento', value: 5 },
1470
- { name: 'Modifica', value: 2 },
1471
- { name: 'Sostiuzione', value: 3 },
1472
- { name: 'Segnalazione', value: 6 },
1473
- { name: 'Rettifica', value: 7 },
1474
- ];
1475
- export class ClipperSearchResult {
1476
- constructor() {
1477
- this.days = null;
1478
- this.interval = null;
1479
- this.items = null;
1480
- this.facets = new ClipperSearchFacetsSnapshot();
1481
- this.total = null;
1482
- this.terms = null;
1483
- this.searchInfo = null;
1484
- this.searchParams = new ClipperSearchParams();
1485
- this.snapshotMode = null;
1486
- }
1487
- }
1488
- export class ClipperSearchFacetsSnapshot {
1489
- constructor() {
1490
- this.groups = [];
1491
- this.usedGroups = [];
1492
- this.hasFacets = false;
1493
- this.hasMoreFacets = false;
1494
- this.hasTooManyResults = false;
1495
- this.sector = null;
1496
- this.author = null;
1497
- this.anchor = null;
1498
- this.type = null;
1499
- this.reason = null;
1500
- this.fromDate = null;
1501
- this.toDate = null;
1502
- this.interval = null;
1503
- this.changedInterval = false;
1504
- this.changedSector = false;
1505
- this.changedAuthor = false;
1506
- this.changedAnchor = false;
1507
- this.changedType = false;
1508
- this.changedReason = false;
1509
- }
1510
- }
1511
- export class ClipperSearchCalendarSnapshotResult {
1512
- constructor() {
1513
- this.months = null;
1514
- }
1515
- }
1516
- export var ClipperSort;
1517
- (function (ClipperSort) {
1518
- ClipperSort[ClipperSort["Default"] = 0] = "Default";
1519
- ClipperSort[ClipperSort["Relevance"] = 1] = "Relevance";
1520
- ClipperSort[ClipperSort["DateAsc"] = 2] = "DateAsc";
1521
- ClipperSort[ClipperSort["DateDesc"] = 3] = "DateDesc";
1522
- ClipperSort[ClipperSort["SourceDateAsc"] = 7] = "SourceDateAsc";
1523
- ClipperSort[ClipperSort["SourceDateDesc"] = 8] = "SourceDateDesc";
1524
- ClipperSort[ClipperSort["Popularity"] = 5] = "Popularity";
1525
- })(ClipperSort || (ClipperSort = {}));
1526
- export var ClipperQueryReferencesMode;
1527
- (function (ClipperQueryReferencesMode) {
1528
- ClipperQueryReferencesMode[ClipperQueryReferencesMode["ReferencesIn"] = 1] = "ReferencesIn";
1529
- ClipperQueryReferencesMode[ClipperQueryReferencesMode["ReferencesOut"] = 2] = "ReferencesOut";
1530
- ClipperQueryReferencesMode[ClipperQueryReferencesMode["ChangesIn"] = 3] = "ChangesIn";
1531
- ClipperQueryReferencesMode[ClipperQueryReferencesMode["ChangesOut"] = 5] = "ChangesOut";
1532
- ClipperQueryReferencesMode[ClipperQueryReferencesMode["Juris"] = 4] = "Juris";
1533
- })(ClipperQueryReferencesMode || (ClipperQueryReferencesMode = {}));
1534
- export var ClipperFacet;
1535
- (function (ClipperFacet) {
1536
- ClipperFacet[ClipperFacet["Sector"] = 1] = "Sector";
1537
- ClipperFacet[ClipperFacet["Year"] = 2] = "Year";
1538
- ClipperFacet[ClipperFacet["DocumentType"] = 3] = "DocumentType";
1539
- ClipperFacet[ClipperFacet["Topic"] = 4] = "Topic";
1540
- ClipperFacet[ClipperFacet["Article"] = 5] = "Article";
1541
- ClipperFacet[ClipperFacet["Author"] = 6] = "Author";
1542
- ClipperFacet[ClipperFacet["Reason"] = 95] = "Reason";
1543
- })(ClipperFacet || (ClipperFacet = {}));
1544
- export var ClipperExportDocumentsFormat;
1545
- (function (ClipperExportDocumentsFormat) {
1546
- ClipperExportDocumentsFormat[ClipperExportDocumentsFormat["Deafault"] = 1] = "Deafault";
1547
- ClipperExportDocumentsFormat[ClipperExportDocumentsFormat["iCalendar"] = 2] = "iCalendar";
1548
- })(ClipperExportDocumentsFormat || (ClipperExportDocumentsFormat = {}));
1549
- export class ClipperDashboard {
1550
- constructor() {
1551
- this.items = signal([]);
1552
- this.isTrial = false;
1553
- this.expiredDeadlines = null;
1554
- this.expiringDeadlines = null;
1555
- this.documentUpdates = null;
1556
- this.unreadItems = computed(() => {
1557
- const states = [];
1558
- let totalUnread = 0;
1559
- this.items().filter((x) => x.id == ClipperModule.News
1560
- || x.id === ClipperModule.Approfondimenti).forEach((x) => {
1561
- totalUnread += x.unreadItems ?? 0;
1562
- });
1563
- states.push([ClipperModule.News, totalUnread]);
1564
- states.push([ClipperModule.GazzetteBollettiniEFontiDiverse, this.items().find((x) => x.id == ClipperModule.GazzetteBollettiniEFontiDiverse)?.unreadItems ?? 0]);
1565
- states.push([ClipperModule.Giurisprudenza, this.items().find((x) => x.id == ClipperModule.Giurisprudenza)?.unreadItems ?? 0]);
1566
- states.push([ClipperModule.ModificheAbrogazioniERinvii, this.items().find((x) => x.id == ClipperModule.ModificheAbrogazioniERinvii)?.unreadItems ?? 0]);
1567
- states.push([ClipperModule.AllerteAlimentari, this.items().find((x) => x.id == ClipperModule.AllerteAlimentari)?.unreadItems ?? 0]);
1568
- states.push([ClipperModule.QuesitiECasiRisolti, this.items().find((x) => x.id == ClipperModule.QuesitiECasiRisolti)?.unreadItems ?? 0]);
1569
- return states;
1570
- });
1571
- this.unreadItemsByModel = computed(() => {
1572
- const states = [];
1573
- this.items().forEach(item => {
1574
- if (item.models) {
1575
- item.models.forEach(itemModel => {
1576
- states.push([itemModel.id, itemModel.unreadItems]);
1577
- });
1578
- }
1579
- else {
1580
- if (item.id == ClipperModule.News) {
1581
- states.push([ClipperModel.News, item.unreadItems]);
1582
- }
1583
- else if (item.id == ClipperModule.GazzetteBollettiniEFontiDiverse) {
1584
- states.push([ClipperModel.AggiornamentoNormativo, item.unreadItems]);
1585
- }
1586
- else if (item.id == ClipperModule.QuesitiECasiRisolti) {
1587
- states.push([ClipperModel.Quesiti, item.unreadItems]);
1588
- }
1589
- else if (item.id == ClipperModule.AllerteAlimentari) {
1590
- states.push([ClipperModel.AllerteAlimentari, item.unreadItems]);
1591
- }
1592
- else if (item.id == ClipperModule.Approfondimenti) {
1593
- states.push([ClipperModel.Articoli, item.unreadItems]);
1594
- }
1595
- else if (item.id == ClipperModule.ModificheAbrogazioniERinvii) {
1596
- states.push([ClipperModel.Coordinamento, item.unreadItems]);
1597
- }
1598
- else if (item.id == ClipperModule.Giurisprudenza) {
1599
- states.push([ClipperModel.Juris, item.unreadItems]);
1600
- }
1601
- }
1602
- });
1603
- return states;
1604
- });
1605
- }
1606
- /**
1607
- * Update unread items
1608
- * @param module : the module
1609
- * @param model : the optional model
1610
- * @param increment : the increment (can be negative)
1611
- */
1612
- updateUnreadItems(module, model, increment) {
1613
- if (model) {
1614
- this.items().forEach(item => {
1615
- let itemModel = item.models.find(x => x.id === model);
1616
- if (itemModel) {
1617
- item.unreadItems += increment;
1618
- itemModel.unreadItems += increment;
1619
- return;
1620
- }
1621
- });
1622
- }
1623
- else {
1624
- let item = this.items()?.find((x) => x.id == module);
1625
- if (item) {
1626
- item.unreadItems += increment;
1627
- }
1628
- }
1629
- this.items.update((values) => [...values]);
1630
- }
1631
- /***
1632
- * Get the module unread items
1633
- * @param module: the module
1634
- * @param model : the optional model
1635
- * @returns the module unread items
1636
- */
1637
- getUnreadItems(module, model) {
1638
- if (model) {
1639
- return this.unreadItemsByModel()?.find((x) => x[0] === model)?.[1];
1640
- }
1641
- return this.unreadItems()?.find((x) => x[0] === module)?.[1];
1642
- }
1643
- }
1644
- export class ClipperTeamMemberInfo {
1645
- constructor() {
1646
- this.name = null;
1647
- this.email = null;
1648
- this.isAdmin = null;
1649
- this.isDisabled = null;
1650
- this.hasPermission55 = null;
1651
- this.hasPermission56 = null;
1652
- this.hasPermission57 = null;
1653
- }
1654
- }
1655
- export var ClipperTeamProduct;
1656
- (function (ClipperTeamProduct) {
1657
- ClipperTeamProduct[ClipperTeamProduct["SharedArchive"] = 1004676] = "SharedArchive";
1658
- ClipperTeamProduct[ClipperTeamProduct["SharedCalendar"] = 1004683] = "SharedCalendar";
1659
- })(ClipperTeamProduct || (ClipperTeamProduct = {}));
1660
- export var ClipperTeamProductPermission;
1661
- (function (ClipperTeamProductPermission) {
1662
- ClipperTeamProductPermission[ClipperTeamProductPermission["SharedArchive"] = 56] = "SharedArchive";
1663
- ClipperTeamProductPermission[ClipperTeamProductPermission["SharedCalendar"] = 57] = "SharedCalendar";
1664
- })(ClipperTeamProductPermission || (ClipperTeamProductPermission = {}));
1665
- export class ClipperTeamInfo {
1666
- constructor() {
1667
- this.id = null;
1668
- this.customerId = null;
1669
- this.title = null;
1670
- this.isDisabled = null;
1671
- this.created = null;
1672
- this.lastModified = null;
1673
- }
1674
- }
1675
- export var ClipperCalendarState;
1676
- (function (ClipperCalendarState) {
1677
- ClipperCalendarState[ClipperCalendarState["Open"] = 101] = "Open";
1678
- ClipperCalendarState[ClipperCalendarState["Expired"] = 102] = "Expired";
1679
- ClipperCalendarState[ClipperCalendarState["Expiring"] = 103] = "Expiring";
1680
- ClipperCalendarState[ClipperCalendarState["Closed"] = 104] = "Closed";
1681
- })(ClipperCalendarState || (ClipperCalendarState = {}));
1682
- export const ClipperCalendarStates = [
1683
- { name: 'Aperte', value: ClipperCalendarState.Open },
1684
- { name: 'Chiuse', value: ClipperCalendarState.Closed },
1685
- { name: 'Scadute', value: ClipperCalendarState.Expired },
1686
- { name: 'Imminenti', value: ClipperCalendarState.Expiring }
1687
- ];
1688
- export class ClipperCalendarSearchParams {
1689
- constructor() {
1690
- this.id = null;
1691
- this.fromDate = null;
1692
- this.toDate = null;
1693
- this.teamId = null;
1694
- this.text = null;
1695
- this.month = null;
1696
- this.year = null;
1697
- this.sortDescending = null;
1698
- this.state = null;
1699
- this.recurrentOnly = null;
1700
- this.first = 0;
1701
- this.count = 15;
1702
- }
1703
- }
1704
- export var ClipperCalendarCopyMode;
1705
- (function (ClipperCalendarCopyMode) {
1706
- ClipperCalendarCopyMode[ClipperCalendarCopyMode["Duplicate"] = 1] = "Duplicate";
1707
- ClipperCalendarCopyMode[ClipperCalendarCopyMode["Move"] = 2] = "Move";
1708
- })(ClipperCalendarCopyMode || (ClipperCalendarCopyMode = {}));
1709
- export var ClipperArchiveFileType;
1710
- (function (ClipperArchiveFileType) {
1711
- ClipperArchiveFileType[ClipperArchiveFileType["None"] = 0] = "None";
1712
- ClipperArchiveFileType[ClipperArchiveFileType["Procedure"] = 1] = "Procedure";
1713
- ClipperArchiveFileType[ClipperArchiveFileType["OperatingInstructions"] = 2] = "OperatingInstructions";
1714
- ClipperArchiveFileType[ClipperArchiveFileType["TechnicalReport"] = 3] = "TechnicalReport";
1715
- ClipperArchiveFileType[ClipperArchiveFileType["AdministrativeDocument"] = 4] = "AdministrativeDocument";
1716
- ClipperArchiveFileType[ClipperArchiveFileType["Document"] = 5] = "Document";
1717
- ClipperArchiveFileType[ClipperArchiveFileType["OtherApplicableRules"] = 6] = "OtherApplicableRules";
1718
- ClipperArchiveFileType[ClipperArchiveFileType["Other"] = 7] = "Other";
1719
- ClipperArchiveFileType[ClipperArchiveFileType["File"] = 101] = "File";
1720
- ClipperArchiveFileType[ClipperArchiveFileType["Image"] = 102] = "Image";
1721
- })(ClipperArchiveFileType || (ClipperArchiveFileType = {}));
1722
- export const ClipperArchiveFileTypes = [
1723
- { name: 'File', value: ClipperArchiveFileType.File },
1724
- { name: 'Immagine', value: ClipperArchiveFileType.Image },
1725
- { name: 'Procedura', value: ClipperArchiveFileType.Procedure },
1726
- { name: 'Istruzioni operative', value: ClipperArchiveFileType.OperatingInstructions },
1727
- { name: 'Relazione tecnica', value: ClipperArchiveFileType.TechnicalReport },
1728
- { name: 'Documento iter amministrativo', value: ClipperArchiveFileType.AdministrativeDocument },
1729
- { name: 'Documento aziendale', value: ClipperArchiveFileType.Document },
1730
- { name: 'Altre norme applicabili', value: ClipperArchiveFileType.OtherApplicableRules },
1731
- { name: 'Altro', value: ClipperArchiveFileType.Other }
1732
- ];
1733
- export var ClipperArchiveFileStorageType;
1734
- (function (ClipperArchiveFileStorageType) {
1735
- ClipperArchiveFileStorageType[ClipperArchiveFileStorageType["ArsCloud"] = 2] = "ArsCloud";
1736
- ClipperArchiveFileStorageType[ClipperArchiveFileStorageType["OtherCloud"] = 3] = "OtherCloud";
1737
- })(ClipperArchiveFileStorageType || (ClipperArchiveFileStorageType = {}));
1738
- export const ClipperArchiveFileStorageTypes = [
1739
- { name: 'ARS Cloud', value: ClipperArchiveFileStorageType.ArsCloud },
1740
- { name: 'Altro cloud', value: ClipperArchiveFileStorageType.OtherCloud }
1741
- ];
1742
- export class ClipperArchiveFoldersSearchParams {
1743
- constructor() {
1744
- this.teamId = null;
1745
- this.privateOnly = null;
1746
- }
1747
- }
1748
- export class ClipperArchiveFilesSearchParams {
1749
- constructor() {
1750
- this.teamId = null;
1751
- this.folderId = null;
1752
- this.folderName = null;
1753
- this.fileType = null;
1754
- this.fromDate = null;
1755
- this.toDate = null;
1756
- this.topicPath = null;
1757
- this.topicId = null;
1758
- this.topicName = null;
1759
- this.titlesOnly = null;
1760
- this.text = null;
1761
- this.documentNumber = null;
1762
- this.documentYear = null;
1763
- this.first = null;
1764
- this.count = null;
1765
- }
1766
- }
1767
- export var ClipperArchiveCopyMode;
1768
- (function (ClipperArchiveCopyMode) {
1769
- ClipperArchiveCopyMode[ClipperArchiveCopyMode["Duplicate"] = 1] = "Duplicate";
1770
- ClipperArchiveCopyMode[ClipperArchiveCopyMode["Move"] = 2] = "Move";
1771
- })(ClipperArchiveCopyMode || (ClipperArchiveCopyMode = {}));
1772
- export class ClipperUtils {
1773
- /**
1774
- * Check if a model is readable
1775
- * @param model : the model to check
1776
- * @returns : true if the model is readable
1777
- */
1778
- static isClipperModelReadable(model) {
1779
- return model !== ClipperModel.Unknown &&
1780
- model !== ClipperModel.NormativaVigente &&
1781
- model !== ClipperModel.Scadenze &&
1782
- model !== ClipperModel.Segnalazioni;
1783
- }
1784
- /**
1785
- * Return the Clipper module from a document
1786
- * @param item: the documenti item
1787
- * @returns the module id
1788
- */
1789
- static getClipperModuleFromModel(item) {
1790
- switch (item.model) {
1791
- case ClipperModel.AllerteAlimentari: return ClipperModule.AllerteAlimentari;
1792
- case ClipperModel.News:
1793
- case ClipperModel.Articoli:
1794
- case ClipperModel.Juris: return ClipperModule.News;
1795
- case ClipperModel.Quesiti: return ClipperModule.QuesitiECasiRisolti;
1796
- case ClipperModel.Coordinamento: return ClipperModule.ModificheAbrogazioniERinvii;
1797
- case ClipperModel.GiurisprudenzaRecente: return ClipperModule.Giurisprudenza;
1798
- case ClipperModel.NormativaVigente: return ClipperModule.NormativaVigente;
1799
- case ClipperModel.Segnalazioni:
1800
- case ClipperModel.Scadenze: return ClipperModule.ScadenzeESegnalazioni;
1801
- case ClipperModel.AggiornamentoNormativo: return ClipperModule.GazzetteBollettiniEFontiDiverse;
1802
- }
1803
- return null;
1804
- }
1805
- /**
1806
- * Return the Clipper group name
1807
- * @param value: the group value
1808
- * @returns the group name
1809
- */
1810
- static getClipperModuleGroupName(value) {
1811
- return ClipperModuleGroups.filter((n) => n.value === value)?.[0].name;
1812
- }
1813
- /**
1814
- * Return the list of modules of a group
1815
- * @param value: the module name
1816
- * @returns the list of modules
1817
- */
1818
- static getClipperModuleGroupItems(value) {
1819
- return ClipperModules.filter((n) => n.parentValue === value);
1820
- }
1821
- /**
1822
- * Check modules against current selected in filter
1823
- * @param modules : the modules to check for
1824
- * @param mode : thc check mode: 1) exactly all elements 2) all elements 3) any of the elements specified
1825
- * @returns true if the check is successfull
1826
- */
1827
- static checkModules(modules, currentModules, mode = 1) {
1828
- let ok = false;
1829
- if (mode === 1) {
1830
- // All and only the elements specified
1831
- for (let i = 0; i < currentModules.length; i++) {
1832
- ok = (modules.findIndex(x => x === currentModules[i].value) ?? -1) !== -1;
1833
- if (!ok) {
1834
- break;
1835
- }
1836
- }
1837
- ok = ok && modules.length >= (currentModules?.length ?? 0);
1838
- }
1839
- else if (mode === 2) {
1840
- // All the elements specified
1841
- for (let i = 0; i < modules.length; i++) {
1842
- ok = (currentModules?.findIndex(x => x.value === modules[i]) ?? -1) !== -1;
1843
- if (!ok) {
1844
- break;
1845
- }
1846
- }
1847
- }
1848
- else if (mode === 3) {
1849
- // Any of the specified elements
1850
- for (let i = 0; i < modules.length; i++) {
1851
- ok = (currentModules?.findIndex(x => x.value === modules[i]) ?? -1) !== -1;
1852
- if (ok) {
1853
- break;
1854
- }
1855
- }
1856
- }
1857
- return ok;
1858
- }
1859
- /**
1860
- * Return the list of available sort options for a list of modules
1861
- * @param modules : the modules list
1862
- * @returns the list of availbale sort options
1863
- */
1864
- static getClipperAvailableSortOptions(modules = undefined, params = undefined) {
1865
- const options = [
1866
- { name: "Data decrescente", value: ClipperSort.DateDesc },
1867
- { name: "Data crescente", value: ClipperSort.DateAsc },
1868
- { name: "Data fonte decrescente", value: ClipperSort.SourceDateDesc },
1869
- { name: "Data fonte crescente", value: ClipperSort.SourceDateAsc },
1870
- { name: "Rilevanza", value: ClipperSort.Relevance },
1871
- { name: "Popolarità", value: ClipperSort.Popularity },
1872
- ];
1873
- let sortOptions = [];
1874
- if (params && ClipperSearchUtils.isTextQuery(params)) {
1875
- sortOptions.push(options[4]);
1876
- }
1877
- if (modules?.length > 0) {
1878
- if (this.checkModules([ClipperModule.GazzetteBollettiniEFontiDiverse], modules, 1)) {
1879
- sortOptions.push(options[2]);
1880
- sortOptions.push(options[3]);
1881
- }
1882
- else if (this.checkModules([ClipperModule.NormativaVigente, ClipperModule.Giurisprudenza, ClipperModule.GazzetteBollettiniEFontiDiverse], modules, 3)) {
1883
- sortOptions.push(options[0]);
1884
- sortOptions.push(options[1]);
1885
- sortOptions.push(options[2]);
1886
- sortOptions.push(options[3]);
1887
- sortOptions.push(options[5]);
1888
- }
1889
- else {
1890
- sortOptions.push(options[0]);
1891
- sortOptions.push(options[1]);
1892
- }
1893
- }
1894
- else {
1895
- sortOptions.push(options[0]);
1896
- sortOptions.push(options[1]);
1897
- }
1898
- return sortOptions;
1899
- }
1900
- }
1901
- export class ClipperSearchUtils {
1902
- /**
1903
- * Clear the search params object
1904
- * @param params : the search params to clear
1905
- */
1906
- static clear(params) {
1907
- params.sector = null;
1908
- params.sectors = null;
1909
- params.author = null;
1910
- params.authors = null;
1911
- params.topic = null;
1912
- params.topics = null;
1913
- params.taxonomy = null;
1914
- params.taxonomies = null;
1915
- params.taxonomyPath = null;
1916
- params.taxonomyNode = null;
1917
- params.number = null;
1918
- params.fromDate = null;
1919
- params.toDate = null;
1920
- params.year = null;
1921
- params.sourceNumber = null;
1922
- params.source = null;
1923
- params.sourceFromDate = null;
1924
- params.sourceToDate = null;
1925
- params.sourceYear = null;
1926
- params.tags = null;
1927
- params.text = null;
1928
- params.augmentedText = null;
1929
- params.titleOnly = false;
1930
- params.type = null;
1931
- params.types = null;
1932
- params.showUnreadDocumentsOnly = false;
1933
- params.showCommentedDocumentsOnly = false;
1934
- params.showNotAbrogatedDocumentsOnly = false;
1935
- params.expandTextQueryUsingAI = false;
1936
- params.channels = [...ClipperChannels];
1937
- params.changeReason = null;
1938
- params.changedNumber = null;
1939
- params.changedYear = null;
1940
- params.changedTitle = null;
1941
- params.modifierNumber = null;
1942
- params.modifierYear = null;
1943
- params.modifierTitle = null;
1944
- params.model = null;
1945
- params.models = null;
1946
- params.module = null;
1947
- params.modules = null;
1948
- }
1949
- /**
1950
- * Get hte model list related to a list of modules
1951
- * @param modules: the modules to check
1952
- * @parma single: true to select only the most representative
1953
- * @returns the list fo models
1954
- */
1955
- static getModulesModels(modules, single = false) {
1956
- const models = [];
1957
- if ((modules?.length ?? 0) > 0) {
1958
- modules?.forEach(module => {
1959
- switch (module.value) {
1960
- case ClipperModule.ScadenzeESegnalazioni:
1961
- [ClipperModel.Scadenze, ClipperModel.Segnalazioni].forEach(x => models.push(x));
1962
- break;
1963
- case ClipperModule.QuesitiECasiRisolti:
1964
- models.push(ClipperModel.Quesiti);
1965
- break;
1966
- case ClipperModule.News:
1967
- single
1968
- ? models.push(ClipperModel.News)
1969
- : [ClipperModel.Articoli, ClipperModel.News, ClipperModel.Juris].forEach(x => models.push(x));
1970
- break;
1971
- case ClipperModule.Approfondimenti:
1972
- models.push(ClipperModel.Articoli);
1973
- break;
1974
- case ClipperModule.AllerteAlimentari:
1975
- models.push(ClipperModel.AllerteAlimentari);
1976
- break;
1977
- case ClipperModule.GazzetteBollettiniEFontiDiverse:
1978
- models.push(ClipperModel.AggiornamentoNormativo);
1979
- break;
1980
- case ClipperModule.NormativaVigente:
1981
- models.push(ClipperModel.NormativaVigente);
1982
- break;
1983
- case ClipperModule.ModificheAbrogazioniERinvii:
1984
- models.push(ClipperModel.Coordinamento);
1985
- break;
1986
- case ClipperModule.Giurisprudenza:
1987
- models.push(ClipperModel.Juris);
1988
- break;
1989
- }
1990
- });
1991
- }
1992
- return models;
1993
- }
1994
- /**
1995
- * Check if current filter is a text based search
1996
- * @param params : the search params to check
1997
- * @returns true if is a text based search
1998
- */
1999
- static isTextQuery(params) {
2000
- return params.text != null && params.text?.length > 0;
2001
- }
2002
- /**
2003
- * Try to add a query
2004
- * @param q : the new query
2005
- * @param queries : the new query
2006
- */
2007
- static concatTextQuery(q, queries) {
2008
- if (q && q.length > 0) {
2009
- if (queries.length == 0 && (q[0] === '+' || q[0] === '-'))
2010
- q = q.substring(1);
2011
- if (q[q.length - 1] !== '\"' && q.indexOf(' ') !== -1)
2012
- q = "\"" + q + "\"";
2013
- if (queries.length > 0)
2014
- queries += ", ";
2015
- queries += q;
2016
- }
2017
- return queries;
2018
- }
2019
- /**
2020
- * Normalize text query
2021
- * @param text : the text query to normalize
2022
- * @returns : the text normalized or null
2023
- */
2024
- static normalizeTextQuery(text) {
2025
- if (!text || text.length === 0)
2026
- return null;
2027
- let q = '';
2028
- let queries = '';
2029
- for (let i = 0; i < text.length; i++) {
2030
- if (text[i] === ',') {
2031
- queries = this.concatTextQuery(q.trim(), queries);
2032
- q = '';
2033
- }
2034
- else
2035
- q += text[i];
2036
- }
2037
- queries = this.concatTextQuery(q.trim(), queries);
2038
- return queries;
2039
- }
2040
- }
2041
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaW5pdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnMtdXRpbHMvY2xpcHBlci5jb21tb24vY29tbW9uL2RlZmluaXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxRQUFRLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3pELE1BQU0sQ0FBTixJQUFZLG1CQUtYO0FBTEQsV0FBWSxtQkFBbUI7SUFDN0IsNkRBQVEsQ0FBQTtJQUNSLHlGQUFzQixDQUFBO0lBQ3RCLGlIQUF1QyxDQUFBO0FBRXpDLENBQUMsRUFMVyxtQkFBbUIsS0FBbkIsbUJBQW1CLFFBSzlCO0FBQ0QsTUFBTSxDQUFOLElBQVkscUJBSVg7QUFKRCxXQUFZLHFCQUFxQjtJQUMvQixpRUFBUSxDQUFBO0lBQ1IsbUVBQVMsQ0FBQTtJQUNULCtEQUFPLENBQUE7QUFDVCxDQUFDLEVBSlcscUJBQXFCLEtBQXJCLHFCQUFxQixRQUloQztBQUVELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUEyQztJQUM1RSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLHFCQUFxQixDQUFDLElBQUksRUFBRTtJQUNuRCxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLHFCQUFxQixDQUFDLEtBQUssRUFBRTtJQUNwRCxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLHFCQUFxQixDQUFDLEdBQUcsRUFBRTtDQUNyRCxDQUFBO0FBRUQsTUFBTSxDQUFOLElBQVksb0JBSVg7QUFKRCxXQUFZLG9CQUFvQjtJQUM5QixtRUFBVSxDQUFBO0lBQ1YsaUVBQVMsQ0FBQTtJQUNULDZEQUFPLENBQUE7QUFDVCxDQUFDLEVBSlcsb0JBQW9CLEtBQXBCLG9CQUFvQixRQUkvQjtBQUVELE1BQU0sQ0FBTixJQUFZLGtCQVVYO0FBVkQsV0FBWSxrQkFBa0I7SUFDNUIsMkRB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QUFDLENBQUM7Z0JBQ2xELENBQUMsR0FBRyxFQUFFLENBQUM7WUFDVCxDQUFDOztnQkFDSSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLENBQUM7UUFDRCxPQUFPLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDbEQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmltcG9ydCB7IFNlbmRUb0RpYWxvZ1Jlc3VsdCB9IGZyb20gJ0BhcnNlZGl6aW9uaS9hcnMtdXRpbHMvdWkuYXBwbGljYXRpb24nO1xyXG5pbXBvcnQgeyBGb2xkZXIsIExvZ2luUmVzdWx0LCBOYW1lVmFsdWVJdGVtIH0gZnJvbSAnQGFyc2VkaXppb25pL2Fycy11dGlscy9jb3JlJztcclxuaW1wb3J0IHsgTG9naW5PQXV0aFR5cGUgfSBmcm9tICdAYXJzZWRpemlvbmkvYXJzLXV0aWxzL3VpLm9hdXRoJztcclxuaW1wb3J0IHsgY29tcHV0ZWQsIFNpZ25hbCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5cclxuZXhwb3J0IGVudW0gQ2xpcHBlclNlcnZpY2VGbGFncyB7XHJcbiAgTm9uZSA9IDAsXHJcbiAgTm90aWZ5U3lzdGVtRXJyb3JzID0gMSxcclxuICBEaXNwbGF5Q29ubmVjdGlvblN0YXRlTWVzc2FnZXMgPSAxIDw8IDFcclxuXHJcbn1cclxuZXhwb3J0IGVudW0gQ2xpcHBlclJlY3VycmVuY2VUeXBlIHtcclxuICBZZWFyID0gMSxcclxuICBNb250aCA9IDIsXHJcbiAgRGF5ID0gM1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgQ2xpcHBlclJlY3VycmVuY2VUeXBlczogTmFtZVZhbHVlSXRlbTxDbGlwcGVyUmVjdXJyZW5jZVR5cGU+W10gPSBbXHJcbiAgeyBuYW1lOiAnQW5uaScsIHZhbHVlOiBDbGlwcGVyUmVjdXJyZW5jZVR5cGUuWWVhciB9LFxyXG4gIHsgbmFtZTogJ01lc2knLCB2YWx1ZTogQ2xpcHBlclJlY3VycmVuY2VUeXBlLk1vbnRoIH0sXHJcbiAgeyBuYW1lOiAnR2lvcm5pJywgdmFsdWU6IENsaXBwZXJSZWN1cnJlbmNlVHlwZS5EYXkgfVxyXG5dXHJcblxyXG5leHBvcnQgZW51bSBDbGlwcGVyU2VsZWN0aW9uTW9kZSB7XHJcbiAgU2luZ2xlID0gMSxcclxuICBNdWx0aSA9IDIsXHJcbiAgQW55ID0gM1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBDbGlwcGVyTW9kdWxlR3JvdXAge1xyXG4gIEhvbWUgPSAwLFxyXG4gIE5vcm1hdGl2YVZpZ2VudGUgPSAxLFxyXG4gIFVsdGltZU5vdml0w6AgPSAyLFxyXG4gIFBhckFwcHJvZm9uZGlyZSA9IDMsXHJcbiAgREdJbmZvID0gNCxcclxuICBHaXVyaXNwcnVkZW56YSA9IDUsXHJcbiAgQ2FsZW5kYXJpbyA9IDExLFxyXG4gIEFyY2hpdmlvID0gMTIsXHJcbiAgUmljZXJjYSA9IDk5XHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIENsaXBwZXJNb2R1bGUge1xyXG4gIE5vcm1hdGl2YVZpZ2VudGUgPSA0LFxyXG4gIE5ld3MgPSAxLFxyXG4gIEdhenpldHRlQm9sbGV0dGluaUVGb250aURpdmVyc2UgPSAyLFxyXG4gIEdpdXJpc3BydWRlbnphID0gNSxcclxuICBNb2RpZmljaGVBYnJvZ2F6aW9uaUVSaW52aWkgPSAzLFxyXG4gIFNjYWRlbnplRVNlZ25hbGF6aW9uaSA9IDEyLFxyXG4gIEFsbGVydGVBbGltZW50YXJpID0gOCxcclxuICBBcHByb2ZvbmRpbWVudGkgPSA2LFxyXG4gIFF1ZXNpdGlFQ2FzaVJpc29sdGkgPSAxMCxcclxuICBNZXRvZGlEaUFuYWxpc2kgPSAxMSxcclxuICBER0luZm8gPSA2MSxcclxuICBSaWNlcmNhID0gOTlcclxuXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIENsaXBwZXJNb2RlbCB7XHJcbiAgVW5rbm93biA9IDAsXHJcbiAgQWdnaW9ybmFtZW50b05vcm1hdGl2byA9IDIsXHJcbiAgTmV3cyA9IDMsXHJcbiAgQXJ0aWNvbGkgPSA0LFxyXG4gIEp1cmlzID0gNSxcclxuICBRdWVzaXRpID0gOCxcclxuICBOb3JtYXRpdmFWaWdlbnRlID0gOSxcclxuICBTY2FkZW56ZSA9IDEwLFxyXG4gIENvb3JkaW5hbWVudG8gPSAxMSxcclxuICBBbGxlcnRlQWxpbWVudGFyaSA9IDEzLFxyXG4gIE1ldG9kaURpQW5hbGlzaSA9IDE0LFxyXG4gIEdpdXJpc3BydWRlbnphUmVjZW50ZSA9IDE4LFxyXG4gIFNlZ25hbGF6aW9uaSA9IDIwLFxyXG4gIFVsdGltZU5vdml0w6AgPSAyMVxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgQ2xpcHBlck1vZGVsczogTmFtZVZhbHVlSXRlbTxudW1iZXI+W10gPSBbXHJcbiAgeyB2YWx1ZTogQ2xpcHBlck1vZGVsLkFnZ2lvcm5hbWVudG9Ob3JtYXRpdm8sIG5hbWU6IFwiVGVzdGkgc3RvcmljaVwiIH0sXHJcbiAgeyB2YWx1ZTogQ2xpcHBlck1vZGVsLk5ld3MsIG5hbWU6ICdOZXdzJyB9LFxyXG4gIHsgdmFsdWU6IENsaXBwZXJNb2RlbC5BcnRpY29saSwgbmFtZTogJ0FydGljb2xpJyB9LFxyXG4gIHsgdmFsdWU6IENsaXBwZXJNb2RlbC5KdXJpcywgbmFtZTogJ05vdGUgYSBzZW50ZW56YScgfSxcclxuICB7IHZhbHVlOiBDbGlwcGVyTW9kZWwuR2l1cmlzcHJ1ZGVuemFSZWNlbnRlLCBuYW1lOiAnR2l1cmlzcHJ1ZGVuemEnIH0sXHJcbiAgeyB2YWx1ZTogQ2xpcHBlck1vZGVsLlF1ZXNpdGksIG5hbWU6ICdRdWVzaXRpJyB9LFxyXG4gIHsgdmFsdWU6IENsaXBwZXJNb2RlbC5Ob3JtYXRpdmFWaWdlbnRlLCBuYW1lOiAnTm9ybWF0aXZhIHZpZ2VudGUnIH0sXHJcbiAgeyB2YWx1ZTogQ2xpcHBlck1vZGVsLlNjYWRlbnplLCBuYW1lOiAnU2NhZGVuemUnIH0sXHJcbiAgeyB2YWx1ZTogQ2xpcHBlck1vZGVsLkFsbGVydGVBbGltZW50YXJpLCBuYW1lOiAnQWxsZXJ0ZSBhbGltZW50YXJpJyB9LFxyXG4gIHsgdmFsdWU6IENsaXBwZXJNb2RlbC5Db29yZGluYW1lbnRvLCBuYW1lOiAnTW9kaWZpY2hlIGUgYWJyb2dhemlvbmknIH0sXHJcbl1cclxuXHJcbmV4cG9ydCBjb25zdCBDbGlwcGVyTW9kdWxlR3JvdXBzOiBOYW1lVmFsdWVJdGVtPG51bWJlcj5bXSA9IFtcclxuICB7IG5hbWU6IFwiVWx0aW1lIG5vdml0w6BcIiwgdmFsdWU6IENsaXBwZXJNb2R1bGVHcm91cC5Ib21lIH0sXHJcbiAgeyBuYW1lOiBcIlJpY2VyY2FcIiwgdmFsdWU6IENsaXBwZXJNb2R1bGVHcm91cC5SaWNlcmNhIH0sXHJcbiAgeyBuYW1lOiBcIk5vcm1hdGl2YSB2aWdlbnRlXCIsIHZhbHVlOiBDbGlwcGVyTW9kdWxlR3JvdXAuTm9ybWF0aXZhVmlnZW50ZSB9LFxyXG4gIHsgbmFtZTogXCJSaW1hbmkgYWdnaW9ybmF0b1wiLCB2YWx1ZTogQ2xpcHBlck1vZHVsZUdyb3VwLlVsdGltZU5vdml0w6AgfSxcclxuICB7IG5hbWU6IFwiQ29udHJpYnV0aVwiLCB2YWx1ZTogQ2xpcHBlck1vZHVsZUdyb3VwLlBhckFwcHJvZm9uZGlyZSB9LFxyXG4gIHsgbmFtZTogXCJERyBJbmZvXCIsIHZhbHVlOiBDbGlwcGVyTW9kdWxlR3JvdXAuREdJbmZvIH0sXHJcbiAgeyBuYW1lOiBcIkNhbGVuZGFyaW9cIiwgdmFsdWU6IENsaXBwZXJNb2R1bGVHcm91cC5DYWxlbmRhcmlvIH0sXHJcbiAgeyBuYW1lOiBcIkFyY2hpdmlvXCIsIHZhbHVlOiBDbGlwcGVyTW9kdWxlR3JvdXAuQXJjaGl2aW8gfVxyXG5dO1xyXG5cclxuZXhwb3J0IGNvbnN0IENsaXBwZXJNb2R1bGVzOiBOYW1lVmFsdWVJdGVtPG51bWJlcj5bXSA9IFtcclxuICB7IG5hbWU6ICdOZXdzLCBhcnRpY29saSBkaSBhcHByb2ZvbmRpbWVudG8gZSBub3RlIGEgc2VudGVuemEnLCBzaG9ydE5hbWU6ICdOb3ZpdMOgJywgdmFsdWU6IENsaXBwZXJNb2R1bGUuTmV3cyB9LFxyXG4gIHsgbmFtZTogJ0dhenpldHRlLCBCb2xsZXR0aW5pIGUgZm9udGkgZGl2ZXJzZScsIHNob3J0TmFtZTogJ0dhenpldHRlLCBCb2xsZXR0aW5pIGUgZm9udGkgZGl2ZXJzZScsIHZhbHVlOiBDbGlwcGVyTW9kdWxlLkdhenpldHRlQm9sbGV0dGluaUVGb250aURpdmVyc2UgfSxcclxuICB7IG5hbWU6ICdHaXVyaXNwcnVkZW56YScsIHNob3J0TmFtZTogJ0dpdXJpc3BydWRlbnphJywgdmFsdWU6IENsaXBwZXJNb2R1bGUuR2l1cmlzcHJ1ZGVuemEgfSxcclxuICB7IG5hbWU6ICdNb2RpZmljaGUsIGFicm9nYXppb25pIGUgcmludmlpJywgc2hvcnROYW1lOiAnTW9kaWZpY2hlLCBhYnJvZ2F6aW9uaSBlIHJpbnZpaScsIHZhbHVlOiBDbGlwcGVyTW9kdWxlLk1vZGlmaWNoZUFicm9nYXppb25pRVJpbnZpaSB9LFxyXG4gIHsgbmFtZTogJ0FsbGVydGUgYWxpbWVudGFyaScsIHNob3J0TmFtZTogJ0FsbGVydGUgYWxpbWVudGFyaScsIHZhbHVlOiBDbGlwcGVyTW9kdWxlLkFsbGVydGVBbGltZW50YXJpIH0sXHJcbiAgeyBuYW1lOiAnU2NhZGVuemUgZSBzZWduYWxhemlvbmknLCBzaG9ydE5hbWU6ICdTY2FkZW56ZSBlIHNlZ25hbGF6aW9uaScsIHZhbHVlOiBDbGlwcGVyTW9kdWxlLlNjYWRlbnplRVNlZ25hbGF6aW9uaSB9LFxyXG4gIHsgbmFtZTogJ05vcm1hdGl2YSB2aWdlbnRlJywgc2hvcnROYW1lOiAnTm9ybWF0aXZhIHZpZ2VudGUnLCB2YWx1ZTogQ2xpcHBlck1vZHVsZS5Ob3JtYXRpdmFWaWdlbnRlIH0sXHJcbiAgeyBuYW1lOiAnUXVlc2l0aSBlIGNhc2kgcmlzb2x0aScsIHNob3J0TmFtZTogJ1F1ZXNpdGknLCB2YWx1ZTogQ2xpcHBlck1vZHVsZS5RdWVzaXRpRUNhc2lSaXNvbHRpIH0sXHJcbl1cclxuXHJcbmV4cG9ydCBlbnVtIENsaXBwZXJDaGFubmVsIHtcclxuICBOb25lID0gMCxcclxuICBMYXZvcm9FQW1iaWVudGUgPSAxLFxyXG4gIFNvc3RhbnplQWxpbWVudGFyaSA9IDIsXHJcbiAgTWVyY2lQZXJpY29sb3NlID0gMyxcclxuICBFbmVyZ2lhID0gNCxcclxuICBER0luZm8gPSA1XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBDbGlwcGVyQ2hhbm5lbHM6IE5hbWVWYWx1ZUl0ZW08Q2xpcHBlckNoYW5uZWw+W10gPSBbXHJcbiAgeyB2YWx1ZTogQ2xpcHBlckNoYW5uZWwuTGF2b3JvRUFtYmllbnRlLCBuYW1lOiBcIkxhdm9ybyBlIEFtYmllbnRlXCIsIGhlYWRlcjogXCJMQVwiIH0sXHJcbiAgeyB2YWx1ZTogQ2xpcHBlckNoYW5uZWwuU29zdGFuemVBbGltZW50YXJpLCBuYW1lOiBcIlNvc3RhbnplIEFsaW1lbnRhcmlcIiwgaGVhZGVyOiBcIlNBXCIgfSxcclxuICB7IHZhbHVlOiBDbGlwcGVyQ2hhbm5lbC5FbmVyZ2lhLCBuYW1lOiBcIkVuZXJnaWFcIiwgaGVhZGVyOiBcIkVcIiB9LFxyXG4gIHsgdmFsdWU6IENsaXBwZXJDaGFubmVsLk1lcmNpUGVyaWNvbG9zZSwgbmFtZTogXCJNZXJjaSBQZXJpY29sb3NlXCIsIGhlYWRlcjogXCJNUFwiIH1cclxuXVxyXG5cclxuZXhwb3J0IGNvbnN0IENsaXBwZXJSZWdpb25zOiBOYW1lVmFsdWVJdGVtPHN0cmluZz5bXSA9IFtcclxuICB7XHJcbiAgICB2YWx1ZTogJzRSQUInLFxyXG4gICAgbmFtZTogJ0FicnV6em8nLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgdmFsdWU6ICc0UkJBJyxcclxuICAgIG5hbWU6ICdCYXNpbGljYXRhJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHZhbHVlOiAnNFJDQUwnLFxyXG4gICAgbmFtZTogJ0NhbGFicmlhJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHZhbHVlOiAnNFJDQU0nLFxyXG4gICAgbmFtZTogJ0NhbXBhbmlhJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHZhbHVlOiAnNFJFTScsXHJcbiAgICBuYW1lOiAnRW1pbGlhIFJvbWFnbmEnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgdmFsdWU6ICc0UkZWRycsXHJcbiAgICBuYW1lOiAnRnJpdWxpIFZlbmV6aWEgR2l1bGlhJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHZhbHVlOiAnNFJMQScsXHJcbiAgICBuYW1lOiAnTGF6aW8nLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgdmFsdWU6ICc0UkxJJyxcclxuICAgIG5hbWU6ICdMaWd1cmlhJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHZhbHVlOiAnNFJMTycsXHJcbiAgICBuYW1lOiAnTG9tYmFyZGlhJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHZhbHVlOiAnNFJNQScsXHJcbiAgICBuYW1lOiAnTWFyY2hlJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHZhbHVlOiAnNFJNTycsXHJcbiAgICBuYW1lOiAnTW9saXNlJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHZhbHVlOiAnNFJQSScsXHJcbiAgICBuYW1lOiAnUGllbW9udGUnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgdmFsdWU6ICc0UlBVJyxcclxuICAgIG5hbWU6ICdQdWdsaWEnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgdmFsdWU6ICc0UlNBJyxcclxuICAgIG5hbWU6ICdTYXJkZWduYScsXHJcbiAgfSxcclxuICB7XHJcbiAgICB2YWx1ZTogJzRSU0knLFxyXG4gICAgbmFtZTogJ1NpY2lsaWEnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgdmFsdWU6ICc0UlRPJyxcclxuICAgIG5hbWU6ICdUb3NjYW5hJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHZhbHVlOiAnNFJUQUEnLFxyXG4gICAgbmFtZTogJ1RyZW50aW5vIEFsdG8gQWRpZ2UnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgdmFsdWU6ICc0UlVNJyxcclxuICAgIG5hbWU6ICdVbWJyaWEnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgdmFsdWU6ICc0UlZBJyxcclxuICAgIG5hbWU6IFwiVmFsbGUgRCdBb3N0YVwiLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgdmFsdWU6ICc0UlZFJyxcclxuICAgIG5hbWU6ICdWZW5ldG8nLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgdmFsdWU6ICc0UEFUJyxcclxuICAgIG5hbWU6ICdQcm92LiBBdXQuIFRyZW50bycsXHJcbiAgfSxcclxuICB7XHJcbiAgICB2YWx1ZTogJzRQQUInLFxyXG4gICAgbmFtZTogJ1Byb3YuIEF1dC4gQm9semFubycsXHJcbiAgfVxyXG5dXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNlY3RvckluZm8gZXh0ZW5kcyBOYW1lVmFsdWVJdGVtPHN0cmluZz4ge1xyXG5cclxuICBzaG9ydE5hbWU/OiBzdHJpbmcgfCBudWxsO1xyXG4gIGdyb3VwPzogc3RyaW5nIHwgbnVsbDtcclxuICBjaGFubmVscz86IHN0cmluZyB8IG51bGw7XHJcbiAgc2VjdG9ySWQ/OiBzdHJpbmcgfCBudWxsO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgQ2xpcHBlclNlY3RvcnM6IFNlY3RvckluZm9bXSA9IFtcclxuICB7XHJcbiAgICB2YWx1ZTogJ0xDJyxcclxuICAgIG5hbWU6ICdMZWdpc2xhemlvbmUgY29tdW5pdGFyaWEnLFxyXG4gICAgc2hvcnROYW1lOiAnQ29tdW5pdGFyaWEnLFxyXG4gICAgZ3JvdXA6ICdTJyxcclxuICAgIGNoYW5uZWxzOiAnfExBfFNBfE9QfEV8JyxcclxuICB9LFxyXG4gIHtcclxuICAgIHZhbHVlOiAnTE4nLFxyXG4gICAgbmFtZTogJ0xlZ2lzbGF6aW9uZSBuYXppb25hbGUnLFxyXG4gICAgc2hvcnROYW1lOiAnTmF6aW9uYWxlJyxcclxuICAgIGdyb3VwOiAnUycsXHJcbiAgICBjaGFubmVsczogJ3xMQXxTQXxPUHxFfCcsXHJcbiAgfSxcclxuXHJcbiAge1xyXG4gICAgdmFsdWU6ICdMUicsXHJcbiAgICBuYW1lOiAnTGVnaXNsYXppb25lIHJlZ2lvbmFsZScsXHJcbiAgICBzaG9ydE5hbWU6ICdSZWdpb25hbGUnLFxyXG4gICAgZ3JvdXA6ICdTJyxcclxuICAgIGNoYW5uZWxzOiAnfExBfFNBfE9QfEV8JyxcclxuICB9LFxyXG4gIHtcclxuICAgIHZhbHVlOiAnNFJBQicsXHJcbiAgICBuYW1lOiAnICBBYnJ1enpvJyxcclxuICAgIGdyb3VwOiAnQScsXHJcbiAgICBjaGFubmVsczogJ3xMQXxTQXxPUHxFfCcsXHJcbiAgfSxcclxuICB7XHJcbiAgICB2YWx1ZTogJzRQQUInLFxyXG4gICAgbmFtZTogJyAgUHJvdi4gQXV0LiBCb2x6YW5vJyxcclxuICAgIGdyb3VwOiAnQScsXHJcbiAgICBjaGFubmVsczogJ3xMQXxTQXxPUHxFfCcsXHJcbiAgfSxcclxuICB7XHJcbiAgICB2YWx1ZTogJzRSQkEnLFxyXG4gICAgbmFtZTogJyAgQmFzaWxpY2F0YScsXHJcbiAgICBncm91cDogJ0EnLFxyXG4gICAgY2hhbm5lbHM6ICd8TEF8U0F8T1B8RXwnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgdmFsdWU6ICc0UkNBTCcsXHJcbiAgICBuYW1lOiAnICBDYWxhYnJpYScsXHJcbiAgICBncm91cDogJ0EnLFxyXG4gICAgY2hhbm5lbHM6ICd8TEF8U0F8T1B8RXwnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgdmFsdWU6ICc0UkNBTScsXHJcbiAgICBuYW1lOiAnICBDYW1wYW5pYScsXHJcbiAgICBncm91cDogJ0EnLFxyXG4gICAgY2hhbm5lbHM6ICd8TEF8U0F8T1B8RXwnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgdmFsdWU6ICc0UkVNJyxcclxuICAgIG5hbWU6ICcgIEVtaWxpYSBSb21hZ25hJyxcclxuICAgIGdyb3VwOiAnQScsXHJcbiAgICBjaGFubmVsczogJ3xMQXxTQXxPUHxFfCcsXHJcbiAgfSxcclxuICB7XHJcbiAgICB2YWx1ZTogJzRSRlZHJyxcclxuICAgIG5hbWU6ICcgIEZyaXVsaSBWZW5lemlhIEdpdWxpYScsXHJcbiAgICBncm91cDogJ0EnLFxyXG4gICAgY2hhbm5lbHM6ICd8TEF8U0F8T1B8RXwnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgdmFsdWU6ICc0UkxBJyxcclxuICAgIG5hbWU6ICcgIExhemlvJyxcclxuICAgIGdyb3VwOiAnQScsXHJcbiAgICBjaGFubmVsczogJ3xMQXxTQXxPUHxFfCcsXHJcbiAgfSxcclxuICB7XHJcbiAgICB2YWx1ZTogJzRSTEknLFxyXG4gICAgbmFtZTogJyAgTGlndXJpYScsXHJcbiAgICBncm91cDogJ0EnLFxyXG4gICAgY2hhbm5lbHM6ICd8TEF8U0F8T1B8RXwnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgdmFsdWU6ICc0UkxPJyxcclxuICAgIG5hbWU6ICcgIExvbWJhcmRpYScsXHJcbiAgICBncm91cDogJ0EnLFxyXG4gICAgY2hhbm5lbHM6ICd8TEF8U0F8T1B8RXwnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgdmFsdWU6ICc0Uk1BJyxcclxuICAgIG5hbWU6ICcgIE1hcmNoZScsXHJcbiAgICBncm91cDogJ0EnLFxyXG4gICAgY2hhbm5lbHM6ICd8TEF8U0F8T1B8RXwnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgdmFsdWU6ICc0Uk1PJyxcclxuICAgIG5hbWU6ICcgIE1vbGlzZScsXHJcbiAgICBncm91cDogJ0EnLFxyXG4gICAgY2hhbm5lbHM6ICd8TEF8U0F8T1B8RXwnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgdmFsdWU6ICc0UlBJJyxcclxuICAgIG5hbWU6ICcgIFBpZW1vbnRlJyxcclxuICAgIGdyb3VwOiAnQScsXHJcbiAgICBjaGFubmVsczogJ3xMQXxTQXxPUHxFfCcsXHJcbiAgfSxcclxuICB7XHJcbiAgICB2YWx1ZTogJzRSUFUnLFxyXG4gICAgbmFtZTogJyAgUHVnbGlhJyxcclxuICAgIGdyb3VwOiAnQScsXHJcbiAgICBjaGFubmVsczogJ3xMQXxTQXxPUHxFfCcsXHJcbiAgfSxcclxuICB7XHJcbiAgICB2YWx1ZTogJzRSU0EnLFxyXG4gICAgbmFtZTogJyAgU2FyZGVnbmEnLFxyXG4gICAgZ3JvdXA6ICdBJyxcclxuICAgIGNoYW5uZWxzOiAnfExBfFNBfE9QfEV8JyxcclxuICB9LFxyXG4gIHtcclxuICAgIHZhbHVlOiAnNFJTSScsXHJcbiAgICBuYW1lOiAnICBTaWNpbGlhJyxcclxuICAgIGdyb3VwOiAnQScsXHJcbiAgICBjaGFubmVsczogJ3xMQXxTQXxPUHxFfCcsXHJcbiAgfSxcclxuICB7XHJcbiAgICB2YWx1ZTogJzRSVE8nLFxyXG4gICAgbmFtZTogJyAgVG9zY2FuYScsXHJcbiAgICBncm91cDogJ0EnLFxyXG4gICAgY2hhbm5lbHM6ICd8TEF8U0F8T1B8RXwnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgdmFsdWU6ICc0UlRBQScsXHJcbiAgICBuYW1lOiAnICBUcmVudGlubyBBbHRvIEFkaWdlJyxcclxuICAgIGdyb3VwOiAnQScsXHJcbiAgICBjaGFubmVsczogJ3xMQXxTQXxPUHxFfCcsXHJcbiAgfSxcclxuICB7XHJcbiAgICB2YWx1ZTogJzRQQVQnLFxyXG4gICAgbmFtZTogJyAgUHJvdi4gQXV0LiBUcmVudG8nLFxyXG4gICAgZ3JvdXA6ICdBJyxcclxuICAgIGNoYW5uZWxzOiAnfExBfFNBfE9QfEV8JyxcclxuICB9LFxyXG4gIHtcclxuICAgIHZhbHVlOiAnNFJVTScsXHJcbiAgICBuYW1lOiAnICBVbWJyaWEnLFxyXG4gICAgZ3JvdXA6ICdBJyxcclxuICAgIGNoYW5uZWxzOiAnfExBfFNBfE9QfEV8JyxcclxuICB9LFxyXG4gIHtcclxuICAgIHZhbHVlOiAnNFJWQScsXHJcbiAgICBuYW1lOiBcIiAgVmFsbGUgRCdBb3N0YVwiLFxyXG4gICAgZ3JvdXA6ICdBJyxcclxuICAgIGNoYW5uZWxzOiAnfExBfFNBfE9QfEV8JyxcclxuICB9LFxyXG4gIHtcclxuICAgIHZhbHVlOiAnNFJWRScsXHJcbiAgICBuYW1lOiAnICBWZW5ldG8nLFxyXG4gICAgZ3JvdXA6ICdBJyxcclxuICAgIGNoYW5uZWxzOiAnfExBfFNBfE9QfEV8JyxcclxuICB9LFxyXG4gIHtcclxuICAgIHZhbHVlOiAnR0MnLFxyXG4gICAgbmFtZTogJ0dpdXJpc3BydWRlbnphIGNvbXVuaXRhcmlhJyxcclxuICAgIHNob3J0TmFtZTogJ0dpdXJpcy4gY29tdW5pdGFyaWEnLFxyXG4gICAgZ3JvdXA6ICdTJyxcclxuICAgIGNoYW5uZWxzOiAnfExBfFNBfE9QfEV8JyxcclxuICB9LFxyXG4gIHtcclxuICAgIHZhbHVlOiAnR04nLFxyXG4gICAgbmFtZTogJ0dpdXJpc3BydWRlbnphIG5hemlvbmFsZScsXHJcbiAgICBzaG9ydE5hbWU6ICdHaXVyaXNwcnVkZW56YScsXHJcbiAgICBncm91cDogJ1MnLFxyXG4gICAgY2hhbm5lbHM6ICd8TEF8U0F8T1B8RXwnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgdmFsdWU6ICdUTicsXHJcbiAgICBuYW1lOiAnTm9ybWF0aXZhIHRlY25pY2EnLFxyXG4gICAgc2hvcnROYW1lOiAnVGVjbmljYScsXHJcbiAgICBncm91cDogJ1MnLFxyXG4gICAgY2hhbm5lbHM6ICd8TEF8U0F8T1B8RXwnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgdmFsdWU6ICdUSScsXHJcbiAgICBuYW1lOiAnTm9ybWF0aXZhIHRlY25pY2EgaW50ZXJuYXppb25hbGUnLFxyXG4gICAgc2hvcnROYW1lOiAnVGVjbmljYSBpbnRlcm5hei4nLFxyXG4gICAgZ3JvdXA6ICdTJyxcclxuICAgIGNoYW5uZWxzOiAnfExBfFNBfE9QfEV8JyxcclxuICB9LFxyXG4gIHtcclxuICAgIHZhbHVlOiAnTkknLFxyXG4gICAgbmFtZTogJ05vcm1hdGl2YSBpbnRlcm5hemlvbmFsZScsXHJcbiAgICBzaG9ydE5hbWU6ICdJbnRlcm5hemlvbmFsZScsXHJcbiAgICBncm91cDogJ1MnLFxyXG4gICAgY2hhbm5lbHM6ICd8TEF8U0F8T1B8RXwnLFxyXG4gIH0sXHJcbiAgLyoge1xyXG4gICAgIHZhbHVlOiAnU04nLFxyXG4gICAgIG5hbWU6ICdEb2N1bWVudGF6aW9uZSBzY2llbnRpZmljYScsXHJcbiAgICAgc2hvcnROYW1lOiAnU2NpZW50aWZpY2EnLFxyXG4gICAgIGdyb3VwOiAnUycsXHJcbiAgICAgY2hhbm5lbHM6ICd8U0F8JyxcclxuICAgfSAqL1xyXG5dXHJcblxyXG5leHBvcnQgY29uc3QgQ2xpcHBlclNlY3RvclR5cGVzOiBOYW1lVmFsdWVJdGVtPHN0cmluZz5bXSA9IFtcclxuXHJcbiAge1xyXG4gICAgcGFyZW50VmFsdWU6ICdOSScsXHJcbiAgICB2YWx1ZTogJzE0JyxcclxuICAgIG5hbWU6ICdDb252ZW56aW9uZSBJbnRlcm5hemlvbmFsZScsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXJlbnRWYWx1ZTogJ05JJyxcclxuICAgIHZhbHVlOiAnNicsXHJcbiAgICBuYW1lOiAnQWNjb3JkbyBNdWx0aWxhdGVyYWxlJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhcmVudFZhbHVlOiAnTE4nLFxyXG4gICAgdmFsdWU6ICc0JyxcclxuICAgIG5hbWU6ICdBY2NvcmRvIChuYXouKScsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXJlbnRWYWx1ZTogJ0xOJyxcclxuICAgIHZhbHVlOiAnNzUnLFxyXG4gICAgbmFtZTogJ0FsdHJpIGRvY3VtZW50aSAobmF6LiknLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGFyZW50VmFsdWU6ICdMTicsXHJcbiAgICB2YWx1ZTogJzE3JyxcclxuICAgIG5hbWU6ICdDaXJjb2xhcmUgQ29tbWlzc2FyaWFsZScsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXJlbnRWYWx1ZTogJ0xOJyxcclxuICAgIHZhbHVlOiAnNTgnLFxyXG4gICAgbmFtZTogJ0NpcmNvbGFyZSAoQ29taXRhdGkpJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhcmVudFZhbHVlOiAnTE4nLFxyXG4gICAgdmFsdWU6ICcxMCcsXHJcbiAgICBuYW1lOiAnQ2lyY29sYXJlIE1pbmlzdGVyaWFsZScsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXJlbnRWYWx1ZTogJ0xOJyxcclxuICAgIHZhbHVlOiAnMTMnLFxyXG4gICAgbmFtZTogJ0NvbXVuaWNhdG8gKG5hei4pJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhcmVudFZhbHVlOiAnTE4nLFxyXG4gICAgdmFsdWU6ICcxNScsXHJcbiAgICBuYW1lOiAnQ29zdGl0dXppb25lIGRlbGxhIFJlcHViYmxpY2EnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGFyZW50VmFsdWU6ICdMTicsXHJcbiAgICB2YWx1ZTogJzE4JyxcclxuICAgIG5hbWU6ICdEZWNyZXRvIENvbW1pc3NhcmlhbGUnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGFyZW50VmFsdWU6ICdMTicsXHJcbiAgICB2YWx1ZTogJzIxJyxcclxuICAgIG5hbWU6ICdEZWNyZXRvIENhcG8gUHJvdnYuIFN0YXRvJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhcmVudFZhbHVlOiAnTE4nLFxyXG4gICAgdmFsdWU6ICcyMicsXHJcbiAgICBuYW1lOiAnRGVjcmV0byBQcmVzLiBDb25zLiBNaW5pc3RyaScsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXJlbnRWYWx1ZTogJ0xOJyxcclxuICAgIHZhbHVlOiAnMjUnLFxyXG4gICAgbmFtZTogJ0RlY3JldG8gUHJlc2lkZW50ZSBSZXB1YmJsaWNhJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhcmVudFZhbHVlOiAnTE4nLFxyXG4gICAgdmFsdWU6ICcyNycsXHJcbiAgICBuYW1lOiAnRGVjcmV0byBMZWdnZScsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXJlbnRWYWx1ZTogJ0xOJyxcclxuICAgIHZhbHVlOiAnMjgnLFxyXG4gICAgbmFtZTogJ0RlY3JldG8gTGVnZ2UgTHVvZ290ZW5lbnppYWxlJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhcmVudFZhbHVlOiAnTE4nLFxyXG4gICAgdmFsdWU6ICcyOScsXHJcbiAgICBuYW1lOiAnRC5MZ3MuIENhcG8gUHJvdnYuIFN0YXRvJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhcmVudFZhbHVlOiAnTE4nLFxyXG4gICAgdmFsdWU6ICczMCcsXHJcbiAgICBuYW1lOiAnRC5MZ3MuIEdvdmVybm8nLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGFyZW50VmFsdWU6ICdMTicsXHJcbiAgICB2YWx1ZTogJzMyJyxcclxuICAgIG5hbWU6ICdELkxncy4gTHVvZ290ZW5lbnppYWxlJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhcmVudFZhbHVlOiAnTE4nLFxyXG4gICAgdmFsdWU6ICczMycsXHJcbiAgICBuYW1lOiAnRGVjcmV0byBMdW9nb3RlbmVuemlhbGUnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGFyZW50VmFsdWU6ICdMTicsXHJcbiAgICB2YWx1ZTogJzM0JyxcclxuICAgIG5hbWU6ICdEZWNyZXRvIE1pbmlzdGVyaWFsZScsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXJlbnRWYWx1ZTogJ0xOJyxcclxuICAgIHZhbHVlOiAnMzUnLFxyXG4gICAgbmFtZTogJ0RlbGliZXJhemlvbmUgKG5hei4pJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhcmVudFZhbHVlOiAnTE4nLFxyXG4gICAgdmFsdWU6ICc0NycsXHJcbiAgICBuYW1lOiAnRGV0ZXJtaW5hemlvbmUgKG5hei4pJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhcmVudFZhbHVlOiAnTE4nLFxyXG4gICAgdmFsdWU6ICcyNicsXHJcbiAgICBuYW1lOiAnRG9jdW1lbnRvIGRpIGNvbnN1bHRhemlvbmUnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGFyZW50VmFsdWU6ICdMTicsXHJcbiAgICB2YWx1ZTogJzQ4JyxcclxuICAgIG5hbWU6ICdMZWdnZScsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXJlbnRWYWx1ZTogJ0xOJyxcclxuICAgIHZhbHVlOiAnNDInLFxyXG4gICAgbmFtZTogJ0xldHRlcmEgQ2lyY29sYXJlIChDb21pdGF0aSknLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGFyZW50VmFsdWU6ICdMTicsXHJcbiAgICB2YWx1ZTogJzQzJyxcclxuICAgIG5hbWU6ICdMZXR0ZXJhIENpcmNvbGFyZSBNaW5pc3RlcmlhbGUnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGFyZW50VmFsdWU6ICdMTicsXHJcbiAgICB2YWx1ZTogJzU2JyxcclxuICAgIG5hbWU6ICdOb3RhIE1pbmlzdGVyaWFsZScsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXJlbnRWYWx1ZTogJ0xOJyxcclxuICAgIHZhbHVlOiAnOTEnLFxyXG4gICAgbmFtZTogJ09yZGluYW56YSBDb21taXNzYXJpYWxlJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhcmVudFZhbHVlOiAnTE4nLFxyXG4gICAgdmFsdWU6ICc4MicsXHJcbiAgICBuYW1lOiAnT3JkaW5hbnphIFByZXMuIENvbnMuIE1pbmlzdHJpJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhcmVudFZhbHVlOiAnTE4nLFxyXG4gICAgdmFsdWU6ICc1NycsXHJcbiAgICBuYW1lOiAnT3JkaW5hbnphIE1pbmlzdGVyaWFsZScsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXJlbnRWYWx1ZTogJ0xOJyxcclxuICAgIHZhbHVlOiAnNzYnLFxyXG4gICAgbmFtZTogJ1Byb3Z2ZWRpbWVudG8gKG5hei4pJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhcmVudFZhbHVlOiAnTE4nLFxyXG4gICAgdmFsdWU6ICc2NicsXHJcbiAgICBuYW1lOiAnUmVnaW8gRGVjcmV0bycsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXJlbnRWYWx1ZTogJ0xOJyxcclxuICAgIHZhbHVlOiAnNjcnLFxyXG4gICAgbmFtZTogJ1JlZ2lvIERlY3JldG8gTGVnZ2UnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGFyZW50VmFsdWU6ICdMTicsXHJcbiAgICB2YWx1ZTogJzY4JyxcclxuICAgIG5hbWU6ICdSZWdpbyBEZWNyZXRvIExlZ2lzbGF0aXZvJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhcmVudFZhbHVlOiAnTE4nLFxyXG4gICAgdmFsdWU6ICc3MScsXHJcbiAgICBuYW1lOiAnU3RhdHV0byBkZWxsZSBSZWdpb25pIE9yZGluYXJpZScsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXJlbnRWYWx1ZTogJ0xDJyxcclxuICAgIHZhbHVlOiAnMTM5JyxcclxuICAgIG5hbWU6ICdBY2NvcmRpIChDRSknLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGFyZW50VmFsdWU6ICdMQycsXHJcbiAgICB2YWx1ZTogJzE0MCcsXHJcbiAgICBuYW1lOiAnQXR0aSBkaXZlcnNpIChDRS9VRSknLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGFyZW50VmFsdWU6ICdMQycsXHJcbiAgICB2YWx1ZTogJzEzMScsXHJcbiAgICBuYW1lOiAnUG9zaXppb25lIENvbXVuZSAoQ0UpJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhcmVudFZhbHVlOiAnTEMnLFxyXG4gICAgdmFsdWU6ICcxMzInLFxyXG4gICAgbmFtZTogJ1Bvc2l6aW9uZSBDb211bmUgKFVFKScsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXJlbnRWYWx1ZTogJ0xDJyxcclxuICAgIHZhbHVlOiAnMTI2JyxcclxuICAgIG5hbWU6ICdDb211bmljYXppb25lIChDRSknLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGFyZW50VmFsdWU6ICdMQycsXHJcbiAgICB2YWx1ZTogJzEyNycsXHJcbiAgICBuYW1lOiAnQ29tdW5pY2F6aW9uZSAoVUUpJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhcmVudFZhbHVlOiAnTEMnLFxyXG4gICAgdmFsdWU6ICcxMTEnLFxyXG4gICAgbmFtZTogJ0RlY2lzaW9uZSAoQ0UpJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhcmVudFZhbHVlOiAnTEMnLFxyXG4gICAgdmFsdWU6ICcxMTInLFxyXG4gICAgbmFtZTogJ0RlY2lzaW9uZSAoVUUpJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhcmVudFZhbHVlOiAnTEMnLFxyXG4gICAgdmFsdWU6ICcxMTMnLFxyXG4gICAgbmFtZTogJ0RlY2lzaW9uZSAoVUUpJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhcmVudFZhbHVlOiAnTEMnLFxyXG4gICAgdmFsdWU6ICcxMjEnLFxyXG4gICAgbmFtZTogJ0RpcmV0dGl2YSAoQ0VFKScsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXJlbnRWYWx1ZTogJ0xDJyxcclxuICAgIHZhbHVlOiAnMTIyJyxcclxuICAgIG5hbWU6ICdEaXJldHRpdmEgKENFKScsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXJlbnRWYWx1ZTogJ0xDJyxcclxuICAgIHZhbHVlOiAnMTIzJyxcclxuICAgIG5hbWU6ICdEaXJldHRpdmEgKFVFKScsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXJlbnRWYWx1ZTogJ0xDJyxcclxuICAgIHZhbHVlOiAnMTM4JyxcclxuICAgIG5hbWU6ICdQYXJlcmUnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGFyZW50VmFsdWU6ICdMQycsXHJcbiAgICB2YWx1ZTogJzEyOCcsXHJcbiAgICBuYW1lOiAnUmFjY29tYW5kYXppb25lIChDRUUpJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhcmVudFZhbHVlOiAnTEMnLFxyXG4gICAgdmFsdWU6ICcxMjknLFxyXG4gICAgbmFtZTogJ1JhY2NvbWFuZGF6aW9uZSAoQ0UpJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhcmVudFZhbHVlOiAnTEMnLFxyXG4gICAgdmFsdWU6ICcxMzAnLFxyXG4gICAgbmFtZTogJ1JhY2NvbWFuZGF6aW9uZSAoVUUpJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhcmVudFZhbHVlOiAnTEMnLFxyXG4gICAgdmFsdWU6ICcxMTYnLFxyXG4gICAgbmFtZTogJ1JlZ29sYW1lbnRvIChDRUUpJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhcmVudFZhbHVlOiAnTEMnLFxyXG4gICAgdmFsdWU6ICcxMTcnLFxyXG4gICAgbmFtZTogJ1JlZ29sYW1lbnRvIChDRSknLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGFyZW50VmFsdWU6ICdMQycsXHJcbiAgICB2YWx1ZTogJzExOCcsXHJcbiAgICBuYW1lOiAnUmVnb2xhbWVudG8gKFVFKScsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXJlbnRWYWx1ZTogJ0xDJyxcclxuICAgIHZhbHVlOiAnMTM1JyxcclxuICAgIG5hbWU6ICdSZXR0aWZpY2EnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGFyZW50VmFsdWU6ICdMQycsXHJcbiAgICB2YWx1ZTogJzEzMycsXHJcbiAgICBuYW1lOiAnUmlzb2x1emlvbmUnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGFyZW50VmFsdWU6ICdMQycsXHJcbiAgICB2YWx1ZTogJzEzNCcsXHJcbiAgICBuYW1lOiAnVHJhdHRhdG8nLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGFyZW50VmFsdWU6ICdMUicsXHJcbiAgICB2YWx1ZTogJzY5JyxcclxuICAgIG5hbWU6ICdBbHRyaSBkb2N1bWVudGkgKHJlZy4pJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhcmVudFZhbHVlOiAnTFInLFxyXG4gICAgdmFsdWU6ICcxMScsXHJcbiAgICBuYW1lOiAnQ2lyY29sYXJlIFByZXMuIEdpdW50YSBSZWcuJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhcmVudFZhbHVlOiAnTFInLFxyXG4gICAgdmFsdWU6ICc0NicsXHJcbiAgICBuYW1lOiBcIkNpcmNvbGFyZSBkZWxsJ0Fzc2Vzc29yZVwiLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGFyZW50VmFsdWU6ICdMUicsXHJcbiAgICB2YWx1ZTogJzgzJyxcclxuICAgIG5hbWU6ICdDaXJjb2xhcmUgcmVnLicsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXJlbnRWYWx1ZTogJ0xSJyxcclxuICAgIHZhbHVlOiAnNzAnLFxyXG4gICAgbmFtZTogJ0NvbXVuaWNhdG8gKHJlZy4pJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhcmVudFZhbHVlOiAnTFInLFxyXG4gICAgdmFsdWU6ICc4MCcsXHJcbiAgICBuYW1lOiAnRGVjcmV0byBkZWwgRGlyaWdlbnRlJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhcmVudFZhbHVlOiAnTFInLFxyXG4gICAgdmFsdWU6ICcyNCcsXHJcbiAgICBuYW1lOiAnRGVjcmV0byBQcmVzLiBHaXVudGEgUHJvdi4nLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGFyZW50VmFsdWU6ICdMUicsXHJcbiAgICB2YWx1ZTogJzIzJyxcclxuICAgIG5hbWU6ICdEZWNyZXRvIFByZXMuIEdpdW50YSBSZWcuJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhcmVudFZhbHVlOiAnTFInLFxyXG4gICAgdmFsdWU6ICcxOScsXHJcbiAgICBuYW1lOiBcIkRlY3JldG8gZGVsbCdBc3Nlc3NvcmUgUmVnaW9uYWxlXCIsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXJlbnRWYWx1ZTogJ0xSJyxcclxuICAgIHZhbHVlOiAnMzEnLFxyXG4gICAgbmFtZTogJ0RlbGliLiBDb25zaWdsaW8gUHJvdi4nLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGFyZW50VmFsdWU6ICdMUicsXHJcbiAgICB2YWx1ZTogJzM2JyxcclxuICAgIG5hbWU6ICdEZWxpYi4gQ29uc2lnbGlvIFJlZy4nLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGFyZW50VmFsdWU6ICdMUicsXHJcbiAgICB2YWx1ZTogJzM3JyxcclxuICAgIG5hbWU6ICdEZWxpYi4gR2l1bnRhIFByb3YuJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhcmVudFZhbHVlOiAnTFInLFxyXG4gICAgdmFsdWU6ICczOCcsXHJcbiAgICBuYW1lOiAnRGVsaWIuIEdpdW50YSBSZWcuJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhcmVudFZhbHVlOiAnTFInLFxyXG4gICAgdmFsdWU6ICc4MScsXHJcbiAgICBuYW1lOiAnRGV0ZXJtaW5hemlvbmUgZGVsIERpcmlnZW50ZScsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXJlbnRWYWx1ZTogJ0xSJyxcclxuICAgIHZhbHVlOiAnMTInLFxyXG4gICAgbmFtZTogJ0RpcmV0dGl2YSAocmVnLiknLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGFyZW50VmFsdWU6ICdMUicsXHJcbiAgICB2YWx1ZTogJzQ5JyxcclxuICAgIG5hbWU6ICdMZWdnZSBQcm92LiBBdXQuJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhcmVudFZhbHVlOiAnTFInLFxyXG4gICAgdmFsdWU6ICc1MCcsXHJcbiAgICBuYW1lOiAnTGVnZ2UgUmVnaW9uYWxlJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhcmVudFZhbHVlOiAnTFInLFxyXG4gICAgdmFsdWU6ICc1MScsXHJcbiAgICBuYW1lOiAnTGluZWUgZ3VpZGEgKHJlZy4pJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhcmVudFZhbHVlOiAnTFInLFxyXG4gICAgdmFsdWU6ICc5JyxcclxuICAgIG5hbWU6ICdPcmRpbmFuemEgUHJlcy4gUHJvdi4nLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGFyZW50VmFsdWU6ICdMUicsXHJcbiAgICB2YWx1ZTogJzU1JyxcclxuICAgIG5hbWU6ICdPcmRpbmFuemEgUHJlcy4gUmVnLicsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXJlbnRWYWx1ZTogJ0xSJyxcclxuICAgIHZhbHVlOiAnODUnLFxyXG4gICAgbmFtZTogJ1Byb3Z2ZWRpbWVudG8gKHJlZy4pJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhcmVudFZhbHVlOiAnTFInLFxyXG4gICAgdmFsdWU6ICc2NScsXHJcbiAgICBuYW1lOiAnUmVnb2xhbWVudG8gUmVnaW9uYWxlJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhcmVudFZhbHVlOiAnR04nLFxyXG4gICAgdmFsdWU6ICc2MycsXHJcbiAgICBuYW1lOiAnRGVjaXNpb25lJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhcmVudFZhbHVlOiAnR04nLFxyXG4gICAgdmFsdWU6ICc0MScsXHJcbiAgICBuYW1lOiAnRGVjcmV0byBQZW5hbGUnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGFyZW50VmFsdWU6ICdHTicsXHJcbiAgICB2YWx1ZTogJzU0JyxcclxuICAgIG5hbWU6ICdPcmRpbmFuemEnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGFyZW50VmFsdWU6ICdHTicsXHJcbiAgICB2YWx1ZTogJzYyJyxcclxuICAgIG5hbWU6ICdSaWNvcnNvJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhcmVudFZhbHVlOiAnR04nLFxyXG4gICAgdmFsdWU6ICc3MicsXHJcbiAgICBuYW1lOiAnU2VudGVuemEnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGFyZW50VmFsdWU6ICdHQycsXHJcbiAgICB2YWx1ZTogJzE0MycsXHJcbiAgICBuYW1lOiAnT3JkaW5hbnphIChDRSknLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGFyZW50VmFsdWU6ICdHQycsXHJcbiAgICB2YWx1ZTogJzE0NCcsXHJcbiAgICBuYW1lOiAnT3JkaW5hbnphIChVRSknLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGFyZW50VmFsdWU6ICdHQycsXHJcbiAgICB2YWx1ZTogJzE0MScsXHJcbiAgICBuYW1lOiAnU2VudGVuemEgKENFKScsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXJlbnRWYWx1ZTogJ0dDJyxcclxuICAgIHZhbHVlOiAnMTQyJyxcclxuICAgIG5hbWU6ICdTZW50ZW56YSAoVUUpJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhcmVudFZhbHVlOiAnVE4nLFxyXG4gICAgdmFsdWU6ICc3MycsXHJcbiAgICBuYW1lOiAnQWx0cmkgZG9jdW1lbnRpIChFbnRpIGVkIElzdGl0dXRpKScsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXJlbnRWYWx1ZTogJ1ROJyxcclxuICAgIHZhbHVlOiAnNDQnLFxyXG4gICAgbmFtZTogJ0NpcmNvbGFyZSAoRW50aSBlZCBJc3RpdHV0aSknLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGFyZW50VmFsdWU6ICdUTicsXHJcbiAgICB2YWx1ZTogJzIwJyxcclxuICAgIG5hbWU6ICdDb211bmljYXRvICAoRW50aSBlZCBJc3RpdHV0aSknLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGFyZW50VmFsdWU6ICdUTicsXHJcbiAgICB2YWx1ZTogJzYwJyxcclxuICAgIG5hbWU6ICdEZWNyZXRvIChFbnRpIGVkIElzdGl0dXRpKScsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXJlbnRWYWx1ZTogJ1ROJyxcclxuICAgIHZhbHVlOiAnNDAnLFxyXG4gICAgbmFtZTogJ0RlbGliZXJhIChFbnRpIGVkIElzdGl0dXRpKScsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXJlbnRWYWx1ZTogJ1ROJyxcclxuICAgIHZhbHVlOiAnNTMnLFxyXG4gICAgbmFtZTogJ0Zhc2NpY29sbyAoRW50aSBlZCBJc3RpdHV0aSknLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGFyZW50VmFsdWU6ICdUTicsXHJcbiAgICB2YWx1ZTogJzQ1JyxcclxuICAgIG5hbWU6ICdJc3RydXppb25lIFRlY25pY2EnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGFyZW50VmFsdWU6ICdUTicsXHJcbiAgICB2YWx1ZTogJzU5JyxcclxuICAgIG5hbWU6ICdMZXR0ZXJhIENpcmNvbGFyZSAoRW50aSBlZCBJc3RpdHV0aSknLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGFyZW50VmFsdWU6ICdUTicsXHJcbiAgICB2YWx1ZTogJzc5JyxcclxuICAgIG5hbWU6ICdMaW5lZSBndWlkYSAoRW50aSBlZCBJc3RpdHV0aSknLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGFyZW50VmFsdWU6ICdUTicsXHJcbiAgICB2YWx1ZTogJzk4JyxcclxuICAgIG5hbWU6ICdOb3JtYSBUZWNuaWNhJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhcmVudFZhbHVlOiAnVE4nLFxyXG4gICAgdmFsdWU6ICc5NycsXHJcbiAgICBuYW1lOiAnT3B1c2NvbG8gVGVjbmljbycsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXJlbnRWYWx1ZTogJ1ROJyxcclxuICAgIHZhbHVlOiAnNzcnLFxyXG4gICAgbmFtZTogJ1B1YmJsaWNhemlvbmUgKEVudGkgZWQgSXN0aXR1dGkpJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhcmVudFZhbHVlOiAnVE4nLFxyXG4gICAgdmFsdWU6ICc4NicsXHJcbiAgICBuYW1lOiAnUXVhZGVybm8nLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGFyZW50VmFsdWU6ICdUTicsXHJcbiAgICB2YWx1ZTogJzUyJyxcclxuICAgIG5hbWU6ICdSZWdvbGFtZW50byAoRW50aSBlZCBJc3RpdHV0aSknLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGFyZW50VmFsdWU6ICdUTicsXHJcbiAgICB2YWx1ZTogJzg0JyxcclxuICAgIG5hbWU6ICdJc3RydXppb25lIE9wZXJhdGl2YSAoRW50aSBlIElzdGl0dXRpKScsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXJlbnRWYWx1ZTogJ1ROJyxcclxuICAgIHZhbHVlOiAnOTQnLFxyXG4gICAgbmFtZTogJ05vdGEgKEVudGkgZSBJc3RpdHV0aSknLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGFyZW50VmFsdWU6ICdOSScsXHJcbiAgICB2YWx1ZTogJzEwNCcsXHJcbiAgICBuYW1lOiAnUmVnb2xhbWVudG8gVU5FQ0UnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGFyZW50VmFsdWU6ICdTTicsXHJcbiAgICB2YWx1ZTogJzEwNScsXHJcbiAgICBuYW1lOiAnRG9jdW1lbnRvJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhcmVudFZhbHVlOiAnVE4nLFxyXG4gICAgdmFsdWU6ICcxMDYnLFxyXG4gICAgbmFtZTogJ0RpcmV0dGl2YSAoRW50aSBlIElzdGl0dXRpKScsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXJlbnRWYWx1ZTogJ1ROJyxcclxuICAgIHZhbHVlOiAnNzQnLFxyXG4gICAgbmFtZTogJ1ByYXNzaSBkaSByaWZlcmltZW50bycsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXJlbnRWYWx1ZTogJ0xOJyxcclxuICAgIHZhbHVlOiAnMTYnLFxyXG4gICAgbmFtZTogJ0xpbmVlIGd1aWRhIChuYXouKScsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXJlbnRWYWx1ZTogJ0xOJyxcclxuICAgIHZhbHVlOiAnMycsXHJcbiAgICBuYW1lOiAnRGlyZXR0aXZhIChuYXouKScsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXJlbnRWYWx1ZTogJ1RJJyxcclxuICAgIHZhbHVlOiAnMTA3JyxcclxuICAgIG5hbWU6ICdOb3JtYXRpdmEgVGVjbmljYSBJbnRlcm5hemlvbmFsZScsXHJcbiAgfSxcclxuXVxyXG5cclxuZXhwb3J0IGNvbnN0IENsaXBwZXJBdXRob3JzOiBTZWN0b3JJbmZvW10gPSBbXHJcbiAge1xyXG4gICAgc2VjdG9ySWQ6ICdMUicsXHJcbiAgICBjaGFubmVsczogbnVsbCxcclxuICAgIHZhbHVlOiAnNFJBQicsXHJcbiAgICBuYW1lOiAnQWJydXp6bycsXHJcbiAgfSxcclxuICB7XHJcbiAgICBzZWN0b3JJZDogJ0xSJyxcclxuICAgIGNoYW5uZWxzOiBudWxsLFxyXG4gICAgdmFsdWU6ICc0UkJBJyxcclxuICAgIG5hbWU6ICdCYXNpbGljYXRhJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHNlY3RvcklkOiAnTFInLFxyXG4gICAgY2hhbm5lbHM6IG51bGwsXHJcbiAgICB2YWx1ZTogJzRSQ0FMJyxcclxuICAgIG5hbWU6ICdDYWxhYnJpYScsXHJcbiAgfSxcclxuICB7XHJcbiAgICBzZWN0b3JJZDogJ0xSJyxcclxuICAgIGNoYW5uZWxzOiBudWxsLFxyXG4gICAgdmFsdWU6ICc0UkNBTScsXHJcbiAgICBuYW1lOiAnQ2FtcGFuaWEnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgc2VjdG9ySWQ6ICdMUicsXHJcbiAgICBjaGFubmVsczogbnVsbCxcclxuICAgIHZhbHVlOiAnNFJFTScsXHJcbiAgICBuYW1lOiAnRW1pbGlhIFJvbWFnbmEnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgc2VjdG9ySWQ6ICdMUicsXHJcbiAgICBjaGFubmVsczogbnVsbCxcclxuICAgIHZhbHVlOiAnNFJGVkcnLFxyXG4gICAgbmFtZTogJ0ZyaXVsaSBWZW5lemlhIEdpdWxpYScsXHJcbiAgfSxcclxuICB7XHJcbiAgICBzZWN0b3JJZDogJ0xSJyxcclxuICAgIGNoYW5uZWxzOiBudWxsLFxyXG4gICAgdmFsdWU6ICc0UkxBJyxcclxuICAgIG5hbWU6ICdMYXppbycsXHJcbiAgfSxcclxuICB7XHJcbiAgICBzZWN0b3JJZDogJ0xSJyxcclxuICAgIGNoYW5uZWxzOiBudWxsLFxyXG4gICAgdmFsdWU6ICc0UkxJJyxcclxuICAgIG5hbWU6ICdMaWd1cmlhJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHNlY3RvcklkOiAnTFInLFxyXG4gICAgY2hhbm5lbHM6IG51bGwsXHJcbiAgICB2YWx1ZTogJzRSTE8nLFxyXG4gICAgbmFtZTogJ0xvbWJhcmRpYScsXHJcbiAgfSxcclxuICB7XHJcbiAgICBzZWN0b3JJZDogJ0xSJyxcclxuICAgIGNoYW5uZWxzOiBudWxsLFxyXG4gICAgdmFsdWU6ICc0Uk1BJyxcclxuICAgIG5hbWU6ICdNYXJjaGUnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgc2VjdG9ySWQ6ICdMUicsXHJcbiAgICBjaGFubmVsczogbnVsbCxcclxuICAgIHZhbHVlOiAnNFJNTycsXHJcbiAgICBuYW1lOiAnTW9saXNlJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHNlY3RvcklkOiAnTFInLFxyXG4gICAgY2hhbm5lbHM6IG51bGwsXHJcbiAgICB2YWx1ZTogJzRSUEknLFxyXG4gICAgbmFtZTogJ1BpZW1vbnRlJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHNlY3RvcklkOiAnTFInLFxyXG4gICAgY2hhbm5lbHM6IG51bGwsXHJcbiAgICB2YWx1ZTogJzRSUFUnLFxyXG4gICAgbmFtZTogJ1B1Z2xpYScsXHJcbiAgfSxcclxuICB7XHJcbiAgICBzZWN0b3JJZDogJ0xSJyxcclxuICAgIGNoYW5uZWxzOiBudWxsLFxyXG4gICAgdmFsdWU6ICc0UlNBJyxcclxuICAgIG5hbWU6ICdTYXJkZWduYScsXHJcbiAgfSxcclxuICB7XHJcbiAgICBzZWN0b3JJZDogJ0xSJyxcclxuICAgIGNoYW5uZWxzOiBudWxsLFxyXG4gICAgdmFsdWU6ICc0UlNJJyxcclxuICAgIG5hbWU6ICdTaWNpbGlhJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHNlY3RvcklkOiAnTFInLFxyXG4gICAgY2hhbm5lbHM6IG51bGwsXHJcbiAgICB2YWx1ZTogJzRSVE8nLFxyXG4gICAgbmFtZTogJ1Rvc2NhbmEnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgc2VjdG9ySWQ6ICdMUicsXHJcbiAgICBjaGFubmVsczogbnVsbCxcclxuICAgIHZhbHVlOiAnNFJUQUEnLFxyXG4gICAgbmFtZTogJ1RyZW50aW5vIFRyZW50aW5vIEFsdG8gQWRpZ2UnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgc2VjdG9ySWQ6ICdMUicsXHJcbiAgICBjaGFubmVsczogbnVsbCxcclxuICAgIHZhbHVlOiAnNFJVTScsXHJcbiAgICBuYW1lOiAnVW1icmlhJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHNlY3RvcklkOiAnTFInLFxyXG4gICAgY2hhbm5lbHM6IG51bGwsXHJcbiAgICB2YWx1ZTogJzRSVkEnLFxyXG4gICAgbmFtZTogXCJWYWxsZSBEJ0Fvc3RhXCIsXHJcbiAgfSxcclxuICB7XHJcbiAgICBzZWN0b3JJZDogJ0xSJyxcclxuICAgIGNoYW5uZWxzOiBudWxsLFxyXG4gICAgdmFsdWU6ICc0UlZFJyxcclxuICAgIG5hbWU6ICdWZW5ldG8nLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgc2VjdG9ySWQ6ICdMUicsXHJcbiAgICBjaGFubmVsczogbnVsbCxcclxuICAgIHZhbHVlOiAnNFBBQicsXHJcbiAgICBuYW1lOiAnUHJvdi4gQXV0b25vbWEgZGkgQm9semFubycsXHJcbiAgfSxcclxuICB7XHJcbiAgICBzZWN0b3JJZDogJ0xSJyxcclxuICAgIGNoYW5uZWxzOiBudWxsLFxyXG4gICAgdmFsdWU6ICc0UEFUJyxcclxuICAgIG5hbWU6ICdQcm92LiBBdXRvbm9tYSBkaSBUcmVudG8nLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgc2VjdG9ySWQ6ICdUTicsXHJcbiAgICBjaGFubmVsczogJ3xMQXwnLFxyXG4gICAgdmFsdWU6ICc2Q0VJJyxcclxuICAgIG5hbWU6ICdDLkUuSS4gLSBDb21pdGF0byBFbGV0dHJvdGVjbmljbyBJdGFsaWFubycsXHJcbiAgfSxcclxuICB7XHJcbiAgICBzZWN0b3JJZDogJ1ROJyxcclxuICAgIGNoYW5uZWxzOiAnfExBfFNBfCcsXHJcbiAgICB2YWx1ZTogJzZDTlInLFxyXG4gICAgbmFtZTogJ0MuTi5SLiAtIENvbnNpZ2xpbyBOYXppb25hbGUgZGVsbGUgUmljZXJjaGUnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgc2VjdG9ySWQ6ICdUTicsXHJcbiAgICBjaGFubmVsczogJ3xMQXwnLFxyXG4gICAgdmFsdWU6ICc2RU5QSScsXHJcbiAgICBuYW1lOiAnRS5OLlAuSS4gLSBFbnRlIE5hemlvbmFsZSBQcmV2ZW56aW9uZSBJbmZvcnR1bmknLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgc2VjdG9ySWQ6ICdUTicsXHJcbiAgICBjaGFubmVsczogJ3xMQXwnLFxyXG4gICAgdmFsdWU6ICc2SU5BSScsXHJcbiAgICBuYW1lOlxyXG4gICAgICAnSS5OLkEuSS5MLiAtIElzdGl0dXRvIG5hemlvbmFsZSBBc3NpY3VyYXppb25lIEluZm9ydHVuaSBzdWwgTGF2b3JvJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHNlY3RvcklkOiAnVE4nLFxyXG4gICAgY2hhbm5lbHM6ICd8TEF8JyxcclxuICAgIHZhbHVlOiAnNklTUFMnLFxyXG4gICAgbmFtZTpcclxuICAgICAgJ0kuUy5QLkUuUy5MLiAtIElzdGl0dXRvIFN1cGVyaW9yZSBwZXIgbGEgUHJldmVuemlvbmUgZSBsYSBTaWN1cmV6emEgZGVsIExhdm9ybycsXHJcbiAgfSxcclxuICB7XHJcbiAgICBzZWN0b3JJZDogJ1ROJyxcclxuICAgIGNoYW5uZWxzOiAnfExBfCcsXHJcbiAgICB2YWx1ZTogJzZJTlBTJyxcclxuICAgIG5hbWU6ICdJLk4uUC5TLiAtIElzdGl0dXRvIE5hemlvbmFsZSBQcmV2aWRlbnphIFNvY2lhbGUnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgc2VjdG9ySWQ6ICdUTicsXHJcbiAgICBjaGFubmVsczogJ3xMQXxTQXwnLFxyXG4gICAgdmFsdWU6ICc2SVNTJyxcclxuICAgIG5hbWU6ICdJLlMuUy4gLSBJc3RpdHV0byBTdXBlcmlvcmUgZGkgU2FuaXTDoCcsXHJcbiAgfSxcclxuICB7XHJcbiAgICBzZWN0b3JJZDogJ1ROJyxcclxuICAgIGNoYW5uZWxzOiAnfExBfFNBfCcsXHJcbiAgICB2YWx1ZTogJzZVTkknLFxyXG4gICAgbmFtZTogJ1UuTi5JLiAtIEVudGUgTmF6aW9uYWxlIEl0YWxpYW5vIGRpIFVuaWZpY2F6aW9uZScsXHJcbiAgfSxcclxuICB7XHJcbiAgICBzZWN0b3JJZDogJ0dOJyxcclxuICAgIGNoYW5uZWxzOiBudWxsLFxyXG4gICAgdmFsdWU6ICc1Q0MnLFxyXG4gICAgbmFtZTogJ0NvcnRlIENvc3RpdHV6aW9uYWxlJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHNlY3RvcklkOiAnR04nLFxyXG4gICAgY2hhbm5lbHM6IG51bGwsXHJcbiAgICB2YWx1ZTogJzVDQ0MnLFxyXG4gICAgbmFtZTogJ0NvcnRlIGRpIENhc3NhemlvbmUgQ2l2aWxlJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHNlY3RvcklkOiAnR04nLFxyXG4gICAgY2hhbm5lbHM6IG51bGwsXHJcbiAgICB2YWx1ZTogJzVDQ1AnLFxyXG4gICAgbmFtZTogJ0NvcnRlIGRpIENhc3NhemlvbmUgUGVuYWxlJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHNlY3RvcklkOiAnR04nLFxyXG4gICAgY2hhbm5lbHM6IG51bGwsXHJcbiAgICB2YWx1ZTogJzVDQVNBJyxcclxuICAgIG5hbWU6IFwiQ29ydGUgZCdBc3Npc2UgZCdBcHBlbGxvXCIsXHJcbiAgfSxcclxuICB7XHJcbiAgICBzZWN0b3JJZDogJ0dOJyxcclxuICAgIGNoYW5uZWxzOiBudWxsLFxyXG4gICAgdmFsdWU6ICc1Q0FTJyxcclxuICAgIG5hbWU6IFwiQ29ydGUgZCdBc3Npc2VcIixcclxuICB9LFxyXG4gIHtcclxuICAgIHNlY3RvcklkOiAnR04nLFxyXG4gICAgY2hhbm5lbHM6IG51bGwsXHJcbiAgICB2YWx1ZTogJzVDQScsXHJcbiAgICBuYW1lOiBcIkNvcnRlIGQnQXBwZWxsb1wiLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgc2VjdG9ySWQ6ICdHTicsXHJcbiAgICBjaGFubmVsczogbnVsbCxcclxuICAgIHZhbHVlOiAnNVBDQScsXHJcbiAgICBuYW1lOiBcIlByb2N1cmEgR2VuZXJhbGUgQ29ydGUgZCdBcHBlbGxvXCIsXHJcbiAgfSxcclxuICB7XHJcbiAgICBzZWN0b3JJZDogJ0dOJyxcclxuICAgIGNoYW5uZWxzOiBudWxsLFxyXG4gICAgdmFsdWU6ICc1R0RQJyxcclxuICAgIG5hbWU6ICdHaXVkaWNlIGRpIFBhY2UnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgc2VjdG9ySWQ6ICdHTicsXHJcbiAgICBjaGFubmVsczogbnVsbCxcclxuICAgIHZhbHVlOiAnNVBSJyxcclxuICAgIG5hbWU6ICdQcm9jdXJhIGRlbGxhIFJlcHViYmxpY2EnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgc2VjdG9ySWQ6ICdHTicsXHJcbiAgICBjaGFubmVsczogbnVsbCxcclxuICAgIHZhbHVlOiAnNVQnLFxyXG4gICAgbmFtZTogJ1RyaWJ1bmFsZScsXHJcbiAgfSxcclxuICB7XHJcbiAgICBzZWN0b3JJZDogJ0dOJyxcclxuICAgIGNoYW5uZWxzOiBudWxsLFxyXG4gICAgdmFsdWU6ICc1UCcsXHJcbiAgICBuYW1lOiAnUHJldHVyYScsXHJcbiAgfSxcclxuICB7XHJcbiAgICBzZWN0b3JJZDogJ0dOJyxcclxuICAgIGNoYW5uZWxzOiBudWxsLFxyXG4gICAgdmFsdWU6ICc1Q0RTJyxcclxuICAgIG5hbWU6ICdDb25zaWdsaW8gZGkgU3RhdG8nLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgc2VjdG9ySWQ6ICdHTicsXHJcbiAgICBjaGFubmVsczogbnVsbCxcclxuICAgIHZhbHVlOiAnNVRBUicsXHJcbiAgICBuYW1lOiAnVHJpYnVuYWxlIEFtbWluaXN0cmF0aXZvIFJlZ2lvbmFsZScsXHJcbiAgfSxcclxuICB7XHJcbiAgICBzZWN0b3JJZDogJ0dOJyxcclxuICAgIGNoYW5uZWxzOiBudWxsLFxyXG4gICAgdmFsdWU6ICc1VFNBJyxcclxuICAgIG5hbWU6ICdUcmlidW5hbGUgU3VwZXJpb3JlIGRlbGxlIEFjcXVlJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHNlY3RvcklkOiAnR04nLFxyXG4gICAgY2hhbm5lbHM6IG51bGwsXHJcbiAgICB2YWx1ZTogJzVUR0EnLFxyXG4gICAgbmFtZTogJ1RyaWJ1bmFsZSBSZWdpb25hbGUgYWNxdWUnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgc2VjdG9ySWQ6ICdHTicsXHJcbiAgICBjaGFubmVsczogbnVsbCxcclxuICAgIHZhbHVlOiAnNUNUUCcsXHJcbiAgICBuYW1lOiAnQ29tbWlzc2lvbmUgVHJpYnV0YXJpYSBQcm92aW5jaWFsZScsXHJcbiAgfSxcclxuICB7XHJcbiAgICBzZWN0b3JJZDogJ0dOJyxcclxuICAgIGNoYW5uZWxzOiBudWxsLFxyXG4gICAgdmFsdWU6ICc1Q1RSJyxcclxuICAgIG5hbWU6ICdDb21taXNzaW9uZSBUcmlidXRhcmlhIFJlZ2lvbmFsZScsXHJcbiAgfSxcclxuICB7XHJcbiAgICBzZWN0b3JJZDogJ0dOJyxcclxuICAgIGNoYW5uZWxzOiBudWxsLFxyXG4gICAgdmFsdWU6ICc1Q0dBUycsXHJcbiAgICBuYW1lOiAnQ29ucy4gZGkgR2l1c3RpemlhIEFtbS52YSBkZWxsYSBTaWNpbGlhJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHNlY3RvcklkOiAnR04nLFxyXG4gICAgY2hhbm5lbHM6IG51bGwsXHJcbiAgICB2YWx1ZTogJzVDREMnLFxyXG4gICAgbmFtZTogJ0NvcnRlIGRlaSBDb250aScsXHJcbiAgfSxcclxuICB7XHJcbiAgICBzZWN0b3JJZDogJ0dDJyxcclxuICAgIGNoYW5uZWxzOiBudWxsLFxyXG4gICAgdmFsdWU6ICczQ0pDRScsXHJcbiAgICBuYW1lOiAnQ29ydGUgZGkgR2l1c3RpemlhIENFRS9DRScsXHJcbiAgfSxcclxuICB7XHJcbiAgICBzZWN0b3JJZDogJ0dDJyxcclxuICAgIGNoYW5uZWxzOiBudWxsLFxyXG4gICAgdmFsdWU6ICczQ0VETScsXHJcbiAgICBuYW1lOiBcIkNvcnRlIEV1cm9wZWEgcGVyIGkgRGlyaXR0aSBkZWxsJ1VvbW9cIixcclxuICB9LFxyXG4gIHtcclxuICAgIHNlY3RvcklkOiAnR0MnLFxyXG4gICAgY2hhbm5lbHM6IG51bGwsXHJcbiAgICB2YWx1ZTogJzNDV0onLFxyXG4gICAgbmFtZTogJ0NvcnRlIEludGVybmF6aW9uYWxlIGRpIEdpdXN0aXppYScsXHJcbiAgfSxcclxuICB7XHJcbiAgICBzZWN0b3JJZDogJ0dDJyxcclxuICAgIGNoYW5uZWxzOiBudWxsLFxyXG4gICAgdmFsdWU6ICczVDFDRScsXHJcbiAgICBuYW1lOiAnVHJpYnVuYWxlIGRpIFByaW1vIEdyYWRvIENFRS9DRScsXHJcbiAgfSxcclxuXVxyXG5cclxuZXhwb3J0IGNvbnN0IENsaXBwZXJTb3VyY2VzOiBOYW1lVmFsdWVJdGVtPHN0cmluZz5bXSA9IFtcclxuICB7XHJcbiAgICB2YWx1ZTogJ0FDQ01MJyxcclxuICAgIG5hbWU6ICdBY2NvcmRpIE11bHRpbGF0ZXJhbGknLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgdmFsdWU6ICdBRUVHJyxcclxuICAgIG5hbWU6IFwiU2l0byBBdXRvcml0w6AgcGVyIGwnRW5lcmdpYSBFbGV0dHJpY2EsIGlsIEdhcyBlIGlsIFNpc3RlbWEgSWRyaWNvXCIsXHJcbiAgfSxcclxuICB7XHJcbiAgICB2YWx1ZTogJ0FSRVJBJyxcclxuICAgIG5hbWU6ICdTaXRvIEF1dG9yaXTDoCBkaSBSZWdvbGF6aW9uZSBwZXIgRW5lcmdpYSwgUmV0aSBlIEFtYmllbnRlJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHZhbHVlOiAnQlVSJyxcclxuICAgIG5hbWU6ICdCb2xsZXR0aW5vIFVmZi4gUmVnaW9uZScsXHJcbiAgfSxcclxuICB7XHJcbiAgICB2YWx1ZTogJ0JVUycsXHJcbiAgICBuYW1lOiAnU3VwcGwuIHNwZWNpYWxlIGFsIEJvbGxldHRpbm8gVWZmLicsXHJcbiAgfSxcclxuICB7XHJcbiAgICB2YWx1ZTogJ0JVU08nLFxyXG4gICAgbmFtZTogJ1N1cHBsLiBvcmRpbi4gYWwgQm9sbGV0dGlubyBVZmYuJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHZhbHVlOiAnQlVTUycsXHJcbiAgICBuYW1lOiAnU3VwcGwuIHN0cmFvcmQuIGFsIEJvbGxldHRpbm8gVWZmLicsXHJcbiAgfSxcclxuICB7XHJcbiAgICB2YWx1ZTogJ0dVJyxcclxuICAgIG5hbWU6ICdHYXp6ZXR0YSAgVWZmaWNpYWxlIEl0YWxpYW5hJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHZhbHVlOiAnR1VDQycsXHJcbiAgICBuYW1lOiAnR2F6ei4gVWZmLiBDb3J0ZSBDb3N0aXR1emlvbmFsZScsXHJcbiAgfSxcclxuICB7XHJcbiAgICB2YWx1ZTogJ0dVQ0UnLFxyXG4gICAgbmFtZTogJ0dhenpldHRhIHVmZmljaWFsZSBkZWxsZSBDb211bml0w6AgZXVyb3BlZScsXHJcbiAgfSxcclxuICB7XHJcbiAgICB2YWx1ZTogJ0dVRVMnLFxyXG4gICAgbmFtZTogJ0dhenouIFVmZi4gRWRpei4gU3BlY2lhbGUnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgdmFsdWU6ICdHVVJTJyxcclxuICAgIG5hbWU6ICdHYXp6LiBVZmYuIFJlZ2lvbmUgU2ljaWxpYScsXHJcbiAgfSxcclxuICB7XHJcbiAgICB2YWx1ZTogJ0dVUycsXHJcbiAgICBuYW1lOiAnR2F6ei4gVWZmLiBTZXJpZSBTcGVjaWFsZScsXHJcbiAgfSxcclxuICB7XHJcbiAgICB2YWx1ZTogJ0dVU08nLFxyXG4gICAgbmFtZTogJ1N1cHBsLiBvcmRpbi4gYWxsYSAgR2F6emV0dGEgVWZmaWNpYWxlJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHZhbHVlOiAnR1VTUycsXHJcbiAgICBuYW1lOiAnU3VwcGwuIHN0cmFvcmQuIGFsbGEgIEdhenpldHRhIFVmZmljaWFsZScsXHJcbiAgfSxcclxuICB7XHJcbiAgICB2YWx1ZTogJ0dVVUUnLFxyXG4gICAgbmFtZTogJ0dhenpldHRhIHVmZmljaWFsZSBkZWxs4oCZVW5pb25lIGV1cm9wZWEnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgdmFsdWU6ICdNQUMnLFxyXG4gICAgbmFtZTogJ01hc3NpbWFyaW8gQ2l2aWxlJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHZhbHVlOiAnTUFQJyxcclxuICAgIG5hbWU6ICdNYXNzaW1hcmlvIFBlbmFsZScsXHJcbiAgfSxcclxuICB7XHJcbiAgICB2YWx1ZTogJ05PTkUnLFxyXG4gICAgbmFtZTogJ0ZvbnRpIGRpdmVyc2UnLFxyXG4gIH1cclxuXVxyXG5cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2xpcHBlckNoYW5uZWxTZXR0aW5nc0l0ZW08VD4ge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB2YWx1ZTogVDtcclxuICBjaGVja2VkOiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ2xpcHBlckNoYW5uZWxTZXR0aW5ncyB7XHJcbiAgY2hhbm5lbElkOiBDbGlwcGVyQ2hhbm5lbDtcclxuICBjaGFubmVsTmFtZTogc3RyaW5nO1xyXG4gIGlzRW5hYmxlZD86IGJvb2xlYW4gfCBudWxsID0gZmFsc2U7XHJcbiAgaXNBY3RpdmU/OiBib29sZWFuIHwgbnVsbCA9IGZhbHNlO1xyXG4gIHNlY3RvcnM6IENsaXBwZXJDaGFubmVsU2V0dGluZ3NJdGVtPHN0cmluZz5bXSA9IFtdO1xyXG4gIHJlZ2lvbnM6IENsaXBwZXJDaGFubmVsU2V0dGluZ3NJdGVtPHN0cmluZz5bXSA9IFtdO1xyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBhdCBsZWFzdCBvbmUgb2Ygc2VjdG9yIHZhbHVlcyBpcyBjb250YWluZWQgaW4gc2VjdG9ycyBsaXN0XHJcbiAgICogQHBhcmFtIHZhbHVlcyA6IHRoZSBhZG1pdHRlZCB2YWx1ZXNcclxuICAgKiBAcmV0dXJucyB0cnVlIGlmIGF0IGxlYXN0IG9uZSB2YWx1ZSBoYXMgYmVlbiBmb3VuZFxyXG4gICAqL1xyXG4gIGhhc0FueU9mU2VjdG9ycyh2YWx1ZXM6IHN0cmluZ1tdKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5pc0VuYWJsZWQgPT09IHRydWUgJiYgdGhpcy5pc0FjdGl2ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmICh0aGlzLnNlY3RvcnMuZmlsdGVyKG4gPT4gbi52YWx1ZSA9PT0gdmFsdWVzW2ldKT8ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBhdCBsZWFzdCBvbmUgb2YgcmVnaW9uIHZhbHVlcyBpcyBjb250YWluZWQgaW4gcmVnaW9ucyBsaXN0XHJcbiAgICogQHBhcmFtIHZhbHVlcyA6IHRoZSBhZG1pdHRlZCB2YWx1ZXNcclxuICAgKiBAcmV0dXJucyB0cnVlIGlmIGF0IGxlYXN0IG9uZSB2YWx1ZSBoYXMgYmVlbiBmb3VuZFxyXG4gICAqL1xyXG4gIGhhc0FueU9mUmVnaW9ucyh2YWx1ZXM6IHN0cmluZ1tdKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5pc0VuYWJsZWQgPT09IHRydWUgJiYgdGhpcy5pc0FjdGl2ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmICh0aGlzLnJlZ2lvbnMuZmlsdGVyKG4gPT4gbi52YWx1ZSA9PT0gdmFsdWVzW2ldKT8ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDbGlwcGVyVXNlckNoYW5uZWxJbmZvIHtcclxuICBjaGFubmVsOiBDbGlwcGVyQ2hhbm5lbDtcclxuICBjaGFubmVsTmFtZT86IHN0cmluZyB8IG51bGw7XHJcbiAgZXhwaXJpbmdEYXRlOiBzdHJpbmc7XHJcbiAgaXNUcmlhbD86IGJvb2xlYW4gfCBudWxsO1xyXG4gIGlzRGlzYWJsZWQ6IGJvb2xlYW47XHJcbiAgaXNEdmQ6IGJvb2xlYW47XHJcbiAgaXNBY3RpdmU6IGJvb2xlYW47XHJcbiAgZG9jdW1lbnRzVmlld2FibGU/OiBudW1iZXIgfCBudWxsO1xyXG4gIGRvY3VtZW50c1ZpZXdlZD86IG51bWJlciB8IG51bGw7XHJcbiAgc2V0dGluZ3M/OiBDbGlwcGVyQ2hhbm5lbFNldHRpbmdzIHwgbnVsbDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDbGlwcGVyVXNlckluZm8ge1xyXG4gIHVzZXJJZDogbnVtYmVyO1xyXG4gIGN1c3RvbWVySWQ/OiBudW1iZXIgfCBudWxsO1xyXG4gIGNvbXBhbnlOYW1lOiBzdHJpbmc7XHJcbiAgZGlzcGxheU5hbWU6IHN0cmluZztcclxuICBmaXJzdE5hbWU6IHN0cmluZztcclxuICBlbWFpbDogc3RyaW5nO1xyXG4gIE9BVVRIPzogYm9vbGVhbiB8IG51bGw7XHJcbiAgc2Vzc2lvbklkPzogc3RyaW5nIHwgbnVsbDtcclxuICBzY29wZTogbnVtYmVyO1xyXG4gIGlzQXV0aGVudGljYXRlZDogYm9vbGVhbjtcclxuICBpc1RlbXBvcmFyeTogYm9vbGVhbjtcclxuICBoYXNUcmlhbDogYm9vbGVhbjtcclxuICBoYXNUZWFtOiBib29sZWFuO1xyXG4gIGhhc0FJOiBib29sZWFuO1xyXG4gIGhhc0FJQXNzaXN0YW50OiBib29sZWFuO1xyXG4gIGhhc0FJRWRpdG9yOiBib29sZWFuO1xyXG4gIGNoYW5uZWxzOiBDbGlwcGVyVXNlckNoYW5uZWxJbmZvW107XHJcbiAgZmlyc3RDaGFubmVsVHJpYWw6IENsaXBwZXJVc2VyQ2hhbm5lbEluZm87XHJcbiAgdHJpYWxJbmZvPzogQ2xpcHBlclVzZXJUcmlhbEluZm8gfCBudWxsO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENsaXBwZXJMb2dpblJlc3VsdCBleHRlbmRzIExvZ2luUmVzdWx0PENsaXBwZXJVc2VySW5mbz4ge1xyXG4gIHNldHRpbmdzPzogQ2xpcHBlckNoYW5uZWxTZXR0aW5nc1tdIHwgbnVsbDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDbGlwcGVyTG9naW5JbmZvIHtcclxuICBjb250ZXh0OiBDbGlwcGVyVXNlckluZm87XHJcbiAgY29tcGxpYW5jZUNvbnRleHQ/OiBhbnkgfCBudWxsO1xyXG4gIHVzZXJTZXR0aW5ncz86IENsaXBwZXJDaGFubmVsU2V0dGluZ3NbXSB8IG51bGw7XHJcbiAgdXNlckNyZWRlbnRpYWxzPzogc3RyaW5nIHwgbnVsbDtcclxuICBPQVVUSD86IExvZ2luT0F1dGhUeXBlIHwgbnVsbDtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENsaXBwZXJTZWFyY2hQYXJhbXMge1xyXG4gIHZlcnNpb246IG51bWJlciA9IDY7XHJcbiAgc2VhcmNoSWQ/OiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuICBzZWFyY2hOYW1lPzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgdGV4dD86IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIGF1Z21lbnRlZFRleHQ/OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICB0aXRsZT86IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIHRpdGxlT25seT86IGJvb2xlYW4gfCBudWxsID0gZmFsc2U7XHJcbiAgc2hvd1VucmVhZERvY3VtZW50c09ubHk/OiBib29sZWFuIHwgbnVsbCA9IGZhbHNlO1xyXG4gIHNob3dDb21tZW50ZWREb2N1bWVudHNPbmx5PzogYm9vbGVhbiB8IG51bGwgPSBmYWxzZTtcclxuICBzaG93Tm90QWJyb2dhdGVkRG9jdW1lbnRzT25seT86IGJvb2xlYW4gfCBudWxsID0gZmFsc2U7XHJcbiAgZXhwYW5kVGV4dFF1ZXJ5VXNpbmdBST86IGJvb2xlYW4gfCBudWxsID0gZmFsc2U7XHJcbiAgbnVtYmVyPzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgZnJvbURhdGU/OiBEYXRlIHwgbnVsbCA9IG51bGw7XHJcbiAgdG9EYXRlPzogRGF0ZSB8IG51bGwgPSBudWxsO1xyXG4gIHllYXI/OiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuICBzb3VyY2VOdW1iZXI/OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBzb3VyY2U/OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBzb3VyY2VGcm9tRGF0ZT86IERhdGUgfCBudWxsID0gbnVsbDtcclxuICBzb3VyY2VUb0RhdGU/OiBEYXRlIHwgbnVsbCA9IG51bGw7XHJcbiAgc291cmNlWWVhcj86IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG4gIHNlY3Rvcj86IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIHNlY3RvcnM/OiBTZWN0b3JJbmZvW10gfCBudWxsID0gbnVsbDtcclxuICB0b3BpYz86IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIHRvcGljcz86IE5hbWVWYWx1ZUl0ZW08c3RyaW5nPltdIHwgbnVsbCA9IG51bGw7XHJcbiAgdGF4b25vbXk/OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICB0YXhvbm9taWVzPzogTmFtZVZhbHVlSXRlbTxzdHJpbmc+W10gfCBudWxsID0gbnVsbDtcclxuICB0YXhvbm9teVBhdGg/OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICB0YXhvbm9teU5vZGU/OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICB0eXBlPzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgdHlwZXM/OiBOYW1lVmFsdWVJdGVtPHN0cmluZz5bXSB8IG51bGwgPSBudWxsO1xyXG4gIHRhZz86IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIHRhZ3M/OiBOYW1lVmFsdWVJdGVtPHN0cmluZz5bXSB8IG51bGwgPSBudWxsO1xyXG4gIGF1dGhvcj86IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIGF1dGhvcnM/OiBOYW1lVmFsdWVJdGVtPHN0cmluZz5bXSB8IG51bGwgPSBudWxsO1xyXG4gIGNoYW5nZVJlYXNvbj86IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG4gIGNoYW5nZWROdW1iZXI/OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBjaGFuZ2VkWWVhcj86IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG4gIGNoYW5nZWRUaXRsZT86IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIG1vZGlmaWVyTnVtYmVyPzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgbW9kaWZpZXJZZWFyPzogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcbiAgbW9kaWZpZXJUaXRsZT86IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIG1vZGVsPzogQ2xpcHBlck1vZGVsIHwgbnVsbCA9IG51bGw7XHJcbiAgbW9kZWxzPzogQ2xpcHBlck1vZGVsW10gfCBudWxsID0gbnVsbDtcclxuICBtb2R1bGU/OiBDbGlwcGVyTW9kdWxlIHwgbnVsbCA9IG51bGw7XHJcbiAgbW9kdWxlcz86IE5hbWVWYWx1ZUl0ZW08Q2xpcHBlck1vZHVsZT5bXSB8IG51bGwgPSBudWxsO1xyXG4gIG1vZGU/OiBDbGlwcGVyUXVlcnlSZWZlcmVuY2VzTW9kZSB8IG51bGwgPSBudWxsO1xyXG4gIGNoYW5uZWxzPzogTmFtZVZhbHVlSXRlbTxDbGlwcGVyQ2hhbm5lbD5bXSB8IG51bGwgPSBbLi4uQ2xpcHBlckNoYW5uZWxzXTtcclxuICBjb3VudD86IG51bWJlciB8IG51bGwgPSAxNTtcclxuICBpZD86IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIGFuY2hvcj86IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIGV4Y2x1ZGVUZXh0UmVmZXJlbmNlcz86IGJvb2xlYW4gfCBudWxsID0gZmFsc2U7XHJcbiAgZXhjbHVkZU5vdGVzUmVmZXJlbmNlcz86IGJvb2xlYW4gfCBudWxsID0gZmFsc2U7XHJcbiAgdXNlTW9kaWZpZXJJbmZvPzogYm9vbGVhbiB8IG51bGwgPSBmYWxzZTtcclxuICByZXR1cm5Nb2RpZmllckluZm8/OiBib29sZWFuIHwgbnVsbCA9IGZhbHNlO1xyXG4gIGZpcnN0PzogbnVtYmVyIHwgbnVsbCA9IDA7XHJcbiAgc29ydE1vZGU/OiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDbGlwcGVyUmVmZXJlbmNlc1NlYXJjaFBhcmFtcyB7XHJcbiAgZG9jdW1lbnRJZDogc3RyaW5nO1xyXG4gIHllYXI/OiBudW1iZXIgfCBudWxsO1xyXG4gIHNlY3Rvcj86IHN0cmluZyB8IG51bGw7XHJcbiAgYXV0aG9yPzogc3RyaW5nIHwgbnVsbDtcclxuICBhbmNob3I/OiBzdHJpbmcgfCBudWxsO1xyXG4gIG1vZGVsPzogc3RyaW5nIHwgbnVsbDtcclxuICBtb2RlPzogQ2xpcHBlclF1ZXJ5UmVmZXJlbmNlc01vZGUgfCBudWxsO1xyXG4gIGV4Y2x1ZGVUZXh0UmVmZXJlbmNlcz86IGJvb2xlYW4gfCBudWxsO1xyXG4gIGV4Y2x1ZGVOb3Rlc1JlZmVyZW5jZXM/OiBib29sZWFuIHwgbnVsbDtcclxuICB1c2VNb2RpZmllckluZm8/OiBib29sZWFuIHwgbnVsbDtcclxuICByZXR1cm5Nb2RpZmllckluZm8/OiBib29sZWFuIHwgbnVsbDtcclxuICBjb3VudD86IG51bWJlciB8IG51bGw7XHJcbiAgZmlyc3Q/OiBudW1iZXIgfCBudWxsO1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBDbGlwcGVyRG9jdW1lbnRDb250YWluZXIge1xyXG4gIE5vbmUgPSAwLFxyXG4gIExhdm9yb0VBbWJpZW50ZSA9IDEsXHJcbiAgU29zdGFuemVBbGltZW50YXJpID0gMixcclxuICBPcmFuZ2VQcm9qZWN0ID0gNCxcclxuICBFbmVyZ2lhID0gOCxcclxuICBER0luZm8gPSAweDEwLFxyXG4gIERMR1MyMzEgPSAweDIwLFxyXG4gIEFsbCA9IDB4M0ZcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IENsaXBwZXJEb2N1bWVudENoYW5nZVJlYXNvbnM6IE5hbWVWYWx1ZUl0ZW08bnVtYmVyPltdID0gW1xyXG4gIHsgbmFtZTogJ0Ficm9nYXppb25lJywgdmFsdWU6IDEgfSxcclxuICB7IG5hbWU6ICdBbm51bGxhbWVudG8nLCB2YWx1ZTogNSB9LFxyXG4gIHsgbmFtZTogJ01vZGlmaWNhJywgdmFsdWU6IDIgfSxcclxuICB7IG5hbWU6ICdTb3N0aXV6aW9uZScsIHZhbHVlOiAzIH0sXHJcbiAgeyBuYW1lOiAnU2VnbmFsYXppb25lJywgdmFsdWU6IDYgfSxcclxuICB7IG5hbWU6ICdSZXR0aWZpY2EnLCB2YWx1ZTogNyB9LFxyXG5dXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENsaXBwZXJEb2N1bWVudEFuY2hvckluZm8ge1xyXG4gIGRvY3VtZW50SWQ6IHN0cmluZztcclxuICB0eXBlOiBudW1iZXI7XHJcbiAgdHlwZURlc2NyaXB0aW9uOiBzdHJpbmc7XHJcbiAgdGV4dDogc3RyaW5nO1xyXG4gIHRpdGxlPzogc3RyaW5nIHwgbnVsbDtcclxuICBkZXNjcmlwdGlvbj86IHN0cmluZyB8IG51bGw7XHJcbiAgdXJpOiBzdHJpbmc7XHJcbiAgb3JkaW5hbD86IHN0cmluZyB8IG51bGw7XHJcbiAgc2NvcmU/OiBudW1iZXIgfCBudWxsO1xyXG4gIHZlcnlSZWxldmFudD86IGJvb2xlYW4gfCBudWxsO1xyXG4gIHZhbHVlPzogc3RyaW5nIHwgbnVsbDtcclxuICBsZXZlbD86IG51bWJlciB8IG51bGw7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2xpcHBlckRvY3VtZW50UmVsZXZhbnRzIHtcclxuICBpdGVtczogQ2xpcHBlckRvY3VtZW50QW5jaG9ySW5mb1tdO1xyXG4gIGhpdHM6IG51bWJlcjtcclxuICBoaXQ6IG51bWJlcjtcclxuICBtaW5pbXVtU2NvcmU6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDbGlwcGVyRG9jdW1lbnRJbmZvIHtcclxuICBpZD86IHN0cmluZyB8IG51bGw7XHJcbiAgZG9jdW1lbnRJZD86IHN0cmluZyB8IG51bGw7XHJcbiAgbW9kZWw/OiBudW1iZXI7XHJcbiAgbW9kZWxOYW1lPzogc3RyaW5nIHwgbnVsbDtcclxuICBtb2R1bGU/OiBudW1iZXIgfCBudWxsO1xyXG4gIG1vZHVsZU5hbWU/OiBzdHJpbmcgfCBudWxsO1xyXG4gIGNoYW5uZWxOYW1lPzogc3RyaW5nIHwgbnVsbDtcclxuICBncm91cD86IHN0cmluZyB8IG51bGw7XHJcbiAgdGl0bGUyPzogc3RyaW5nIHwgbnVsbDtcclxuICB0aXRsZTE/OiBzdHJpbmcgfCBudWxsO1xyXG4gIHRhZ3M/OiBzdHJpbmcgfCBudWxsO1xyXG4gIHRvcGljcz86IHN0cmluZyB8IG51bGw7XHJcbiAgbnVtYmVyPzogc3RyaW5nIHwgbnVsbDtcclxuICBkYXRlPzogRGF0ZSB8IG51bGw7XHJcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmcgfCBudWxsO1xyXG4gIHB1Ymxpc2hpbmdEYXRlPzogRGF0ZSB8IG51bGw7XHJcbiAgcGljdHVyZUlkPzogc3RyaW5nIHwgbnVsbDtcclxuICBzb3VyY2VOdW1iZXI/OiBzdHJpbmcgfCBudWxsO1xyXG4gIHNvdXJjZURhdGU/OiBEYXRlIHwgbnVsbDtcclxuICBzb3VyY2U/OiBzdHJpbmcgfCBudWxsO1xyXG4gIHNlY3Rvcj86IHN0cmluZyB8IG51bGw7XHJcbiAgb3JpZ2luPzogc3RyaW5nIHwgbnVsbDtcclxuICBvcmlnaW5EZXNjcmlwdGlvbj86IHN0cmluZyB8IG51bGw7XHJcbiAgYXV0aG9yPzogc3RyaW5nIHwgbnVsbDtcclxuICBhbmNob3JzPzogQ2xpcHBlckRvY3VtZW50QW5jaG9ySW5mb1tdIHwgbnVsbDtcclxuICB0YXhvbm9teT86IHN0cmluZyB8IG51bGw7XHJcbiAgaW5mbz86IHN0cmluZyB8IG51bGw7XHJcbiAgaXNSZWFkPzogYm9vbGVhbiB8IG51bGw7XHJcbiAgaXNFeHBvcnRhYmxlPzogYm9vbGVhbiB8IG51bGw7XHJcbiAgaXNDb21tZW50ZWQ/OiBib29sZWFuIHwgbnVsbDtcclxuICBpc0p1cmlzPzogYm9vbGVhbiB8IG51bGw7XHJcbiAgaXNPdmVyPzogYm9vbGVhbiB8IG51bGw7XHJcbiAgaXNUcmlhbD86IGJvb2xlYW4gfCBudWxsO1xyXG4gIGlzTmV3PzogYm9vbGVhbiB8IG51bGw7XHJcbiAgaXNFeHBpcmVkPzogYm9vbGVhbiB8IG51bGw7XHJcbiAgaXNFeHBpcmluZz86IGJvb2xlYW4gfCBudWxsO1xyXG4gIGlzTWVudU9wZW4/OiBib29sZWFuIHwgbnVsbDtcclxuICBhcHBsaWNhYmxlRnJvbURhdGU/OiBEYXRlIHwgbnVsbDtcclxuICB2YWxpZGl0eVN0YXRlPzogbnVtYmVyIHwgbnVsbDtcclxuICB2YWxpZEZyb21EYXRlPzogRGF0ZSB8IG51bGw7XHJcbiAgdmFsaWRVbnRpbERhdGU/OiBEYXRlIHwgbnVsbDtcclxuICB2YWxpZGl0eURlc2NyaXB0aW9uPzogc3RyaW5nIHwgbnVsbDtcclxuICB2YWxpZGl0eUluZm8/OiBzdHJpbmcgfCBudWxsO1xyXG4gIGV4cGlyaW5nRGF0ZT86IERhdGUgfCBudWxsO1xyXG4gIGV4cGlyaW5nRGVzY3JpcHRpb24/OiBzdHJpbmcgfCBudWxsO1xyXG4gIGV4cGlyaW5nSW5mbz86IHN0cmluZyB8IG51bGw7XHJcbiAgcG9wdWxhcml0eT86IG51bWJlciB8IG51bGw7XHJcbiAgcGFydD86IG51bWJlciB8IG51bGw7XHJcbiAgcHJpbWFyeUlkPzogc3RyaW5nIHwgbnVsbDtcclxuICBwcmltYXJ5RGVzY3JpcHRpb24/OiBzdHJpbmcgfCBudWxsO1xyXG4gIHByaW1hcnlNb2RlbD86IG51bWJlciB8IG51bGw7XHJcbiAgaGFzUHJpbWFyeT86IGJvb2xlYW4gfCBudWxsO1xyXG4gIHNlY29uZGFyeUlkPzogc3RyaW5nIHwgbnVsbDtcclxuICBiYWc/OiBhbnkgfCBudWxsO1xyXG4gIGxhc3RVcGRhdGU/OiBzdHJpbmcgfCBudWxsO1xyXG5cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENsaXBwZXJTZWFyY2hSZXN1bHQge1xyXG4gIGRheXM/OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBpbnRlcnZhbD86IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIGl0ZW1zPzogQ2xpcHBlckRvY3VtZW50SW5mb1tdIHwgbnVsbCA9IG51bGw7XHJcbiAgZmFjZXRzPzogQ2xpcHBlclNlYXJjaEZhY2V0c1NuYXBzaG90IHwgbnVsbCA9IG5ldyBDbGlwcGVyU2VhcmNoRmFjZXRzU25hcHNob3QoKTtcclxuICB0YWdzPzogTmFtZVZhbHVlSXRlbTxzdHJpbmc+W10gfCBudWxsO1xyXG4gIHRvdGFsPzogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcbiAgdGVybXM/OiBzdHJpbmdbXSB8IG51bGwgPSBudWxsO1xyXG4gIHNlYXJjaEluZm8/OiBhbnkgfCBudWxsID0gbnVsbDtcclxuICBzZWFyY2hQYXJhbXM/OiBDbGlwcGVyU2VhcmNoUGFyYW1zIHwgbnVsbCA9IG5ldyBDbGlwcGVyU2VhcmNoUGFyYW1zKCk7XHJcbiAgc25hcHNob3RNb2RlPzogQ2xpcHBlclF1ZXJ5UmVmZXJlbmNlc01vZGUgfCBudWxsID0gbnVsbDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDbGlwcGVyU2VhcmNoRmFjZXQge1xyXG4gIHR5cGU6IG51bWJlcjtcclxuICB0eXBlTmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgdmFsdWU6IHN0cmluZztcclxuICBjb3VudDogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENsaXBwZXJTZWFyY2hGYWNldEdyb3VwIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgc2VsZWN0ZWRWYWx1ZT86IHN0cmluZyB8IG51bGw7XHJcbiAgc2VsZWN0ZWRWYWx1ZURlc2NyaXB0aW9uPzogc3RyaW5nIHwgbnVsbDtcclxuICB2YWx1ZXM6IENsaXBwZXJTZWFyY2hGYWNldFtdO1xyXG4gIGluZGV4OiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2xpcHBlclNlYXJjaEZhY2V0c1Jlc3VsdCB7XHJcbiAgaW50ZXJ2YWw/OiBzdHJpbmcgfCBudWxsO1xyXG4gIGZhY2V0cz86IENsaXBwZXJTZWFyY2hGYWNldFtdW10gfCBudWxsO1xyXG4gIHRvdGFsPzogbnVtYmVyIHwgbnVsbDtcclxufVxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBDbGlwcGVyU2VhcmNoRmFjZXRzU25hcHNob3Qge1xyXG4gIGdyb3VwczogQ2xpcHBlclNlYXJjaEZhY2V0R3JvdXBbXSA9IFtdO1xyXG4gIHVzZWRHcm91cHM6IENsaXBwZXJTZWFyY2hGYWNldEdyb3VwW10gPSBbXTtcclxuICBoYXNGYWNldHM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBoYXNNb3JlRmFjZXRzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaGFzVG9vTWFueVJlc3VsdHM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzZWN0b3I/OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBhdXRob3I/OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBhbmNob3I/OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICB0eXBlPzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgcmVhc29uPzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgZnJvbURhdGU/OiBEYXRlIHwgbnVsbCA9IG51bGw7XHJcbiAgdG9EYXRlPzogRGF0ZSB8IG51bGwgPSBudWxsO1xyXG4gIGludGVydmFsPzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgY2hhbmdlZEludGVydmFsOiBib29sZWFuID0gZmFsc2U7XHJcbiAgY2hhbmdlZFNlY3RvcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGNoYW5nZWRBdXRob3I6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjaGFuZ2VkQW5jaG9yOiBib29sZWFuID0gZmFsc2U7XHJcbiAgY2hhbmdlZFR5cGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjaGFuZ2VkUmVhc29uOiBib29sZWFuID0gZmFsc2U7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2xpcHBlclNlYXJjaENhbGVuZGFyU25hcHNob3RNb250aCB7XHJcbiAgZGF5czogbnVtYmVyW107XHJcbiAgbW9udGhTaG9ydE5hbWU6IHN0cmluZztcclxuICBtb250aE5hbWU6IHN0cmluZztcclxuICBtb250aDogbnVtYmVyO1xyXG4gIHllYXI6IG51bWJlcjtcclxuICB0b3RhbDogbnVtYmVyO1xyXG4gIGV4cGlyZWQ6IG51bWJlcjtcclxuICBleHBpcmluZzogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ2xpcHBlclNlYXJjaENhbGVuZGFyU25hcHNob3RSZXN1bHQge1xyXG4gIG1vbnRocz86IENsaXBwZXJTZWFyY2hDYWxlbmRhclNuYXBzaG90TW9udGhbXSB8IG51bGwgPSBudWxsO1xyXG59XHJcblxyXG5cclxuXHJcbmV4cG9ydCBlbnVtIENsaXBwZXJTb3J0IHtcclxuICBEZWZhdWx0ID0gMCxcclxuICBSZWxldmFuY2UgPSAxLFxyXG4gIERhdGVBc2MgPSAyLFxyXG4gIERhdGVEZXNjID0gMyxcclxuICBTb3VyY2VEYXRlQXNjID0gNyxcclxuICBTb3VyY2VEYXRlRGVzYyA9IDgsXHJcbiAgUG9wdWxhcml0eSA9IDVcclxufVxyXG5cclxuZXhwb3J0IGVudW0gQ2xpcHBlclF1ZXJ5UmVmZXJlbmNlc01vZGUge1xyXG4gIFJlZmVyZW5jZXNJbiA9IDEsXHJcbiAgUmVmZXJlbmNlc091dCA9IDIsXHJcbiAgQ2hhbmdlc0luID0gMyxcclxuICBDaGFuZ2VzT3V0ID0gNSxcclxuICBKdXJpcyA9IDRcclxufVxyXG5cclxuZXhwb3J0IGVudW0gQ2xpcHBlckZhY2V0IHtcclxuICBTZWN0b3IgPSAxLFxyXG4gIFllYXIgPSAyLFxyXG4gIERvY3VtZW50VHlwZSA9IDMsXHJcbiAgVG9waWMgPSA0LFxyXG4gIEFydGljbGUgPSA1LFxyXG4gIEF1dGhvciA9IDYsXHJcbiAgUmVhc29uID0gOTVcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDbGlwcGVyT1RQSW5mbyB7XHJcbiAgY29kZTogc3RyaW5nO1xyXG4gIGNhblByZXZpZXc/OiBib29sZWFuIHwgbnVsbDtcclxuICBjYW5FbWJlZD86IGJvb2xlYW4gfCBudWxsO1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBDbGlwcGVyRXhwb3J0RG9jdW1lbnRzRm9ybWF0IHtcclxuICBEZWFmYXVsdCA9IDEsXHJcbiAgaUNhbGVuZGFyID0gMlxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENsaXBwZXJFeHBvcnREb2N1bWVudHNQYXJhbXMge1xyXG4gIHF1ZXJ5OiBDbGlwcGVyU2VhcmNoUGFyYW1zO1xyXG4gIGlkczogc3RyaW5nW107XHJcbiAgZm9ybWF0PzogQ2xpcHBlckV4cG9ydERvY3VtZW50c0Zvcm1hdCB8IG51bGw7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2xpcHBlclNlbmREb2N1bWVudHNCeUVtYWlsUGFyYW1zIGV4dGVuZHMgU2VuZFRvRGlhbG9nUmVzdWx0IHtcclxuICBpZHM6IHN0cmluZ1tdO1xyXG4gIHB1YmxpYzogc3RyaW5nO1xyXG4gIGlzQ2FsZW5kYXI6IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2xpcHBlckRvY3VtZW50U3RydWN0dXJlIHtcclxuICBpZDogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgaXRlbXM/OiBDbGlwcGVyRG9jdW1lbnRBbmNob3JJbmZvW10gfCBudWxsO1xyXG59XHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDbGlwcGVyU2VhcmNoRmlsdGVyIHtcclxuICBjb250YWluZXI6IENsaXBwZXJEb2N1bWVudENvbnRhaW5lcjtcclxuICBtb2RlbHM6IG51bWJlcltdO1xyXG4gIHNlY3RvcnM6IHN0cmluZ1tdO1xyXG4gIHJlZ2lvbnM6IHN0cmluZ1tdO1xyXG4gIG5vdGlmaWNhdGlvbnM6IG51bWJlcltdO1xyXG4gIGlzRW5hYmxlZDogYm9vbGVhbjtcclxuICBpc0FjdGl2ZTogYm9vbGVhbjtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIENsaXBwZXJUYXhvbm9teVBhcmFtcyB7XHJcbiAgY291bnRJdGVtczogYm9vbGVhbjtcclxuICBtb2RlbDogQ2xpcHBlck1vZGVsO1xyXG4gIHVzZXJGaWx0ZXJzPzogQ2xpcHBlclNlYXJjaEZpbHRlcltdIHwgbnVsbDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDbGlwcGVyVXNlclNlYXJjaCB7XHJcbiAgaWQ/OiBudW1iZXIgfCBudWxsO1xyXG4gIHVzZXJJZD86IG51bWJlciB8IG51bGw7XHJcbiAgbmFtZT86IHN0cmluZyB8IG51bGw7XHJcbiAgbW9kdWxlPzogQ2xpcHBlck1vZHVsZSB8IG51bGwsXHJcbiAgZGF0YT86IHN0cmluZyB8IG51bGw7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2xpcHBlclVzZXJXb3JraW5nRG9jdW1lbnQge1xyXG4gIHVzZXJJZD86IG51bWJlciB8IG51bGw7XHJcbiAgZG9jdW1lbnRJZD86IHN0cmluZyB8IG51bGw7XHJcbiAgZG9jdW1lbnREZXNjcmlwdG9yPzogc3RyaW5nIHwgbnVsbDtcclxuICB0aXRsZTE/OiBzdHJpbmcgfCBudWxsO1xyXG4gIHRpdGxlMj86IHN0cmluZyB8IG51bGw7XHJcbiAgdGltZXN0YW1wPzogc3RyaW5nIHwgbnVsbDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDbGlwcGVyRGVsZXRlV29ya2luZ0RvY3VtZW50c1BhcmFtcyB7XHJcbiAgZG9jdW1lbnRJZHM6IHN0cmluZ1tdO1xyXG4gIGRlbGV0ZUFsbDogYm9vbGVhbjtcclxufVxyXG5cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2xpcHBlclVzZXJMaW5rIHtcclxuICBpZD86IG51bWJlciB8IG51bGw7XHJcbiAgdXNlcklkOiBudW1iZXI7XHJcbiAgdXNlck5hbWU/OiBzdHJpbmcgfCBudWxsO1xyXG4gIGtleTogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENsaXBwZXJVc2VyVHJpYWxJbmZvIHtcclxuICBjaGFubmVsTmFtZTogc3RyaW5nO1xyXG4gIGV4cGlyaW5nRGF0ZTogRGF0ZTtcclxuICByZW1haW5pbmdEb2N1bWVudHM6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDbGlwcGVyQXJzRXZlbnRJbmZvIHtcclxuICBpZDogbnVtYmVyO1xyXG4gIGxvY2F0aW9uPzogc3RyaW5nIHwgbnVsbDtcclxuICB0aXRsZT86IHN0cmluZyB8IG51bGw7XHJcbiAgcGljdHVyZUlkPzogc3RyaW5nIHwgbnVsbDtcclxuICBkYXRlPzogc3RyaW5nIHwgbnVsbDtcclxuICBlbmREYXRlPzogc3RyaW5nIHwgbnVsbDtcclxuICBzdGFydFRpbWU/OiBzdHJpbmcgfCBudWxsO1xyXG4gIGVuZFRpbWU/OiBzdHJpbmcgfCBudWxsO1xyXG4gIGhvdXJzPzogbnVtYmVyIHwgbnVsbDtcclxuICBkYXlzPzogbnVtYmVyIHwgbnVsbDtcclxuICBkYXRlSW50ZXJ2YWxEZXNjcmlwdGlvbj86IHN0cmluZyB8IG51bGw7XHJcbiAgZHVyYXRpb25EZXNjcmlwdGlvbj86IHN0cmluZyB8IG51bGw7XHJcbiAgZ3JvdXA/OiBzdHJpbmcgfCBudWxsO1xyXG4gIGFkZHJlc3M/OiBzdHJpbmcgfCBudWxsO1xyXG4gIGNpdHk/OiBzdHJpbmcgfCBudWxsO1xyXG4gIGlzT3Zlcj86IGJvb2xlYW4gfCBudWxsO1xyXG59XHJcblxyXG5cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2xpcHBlclNlYXJjaEFyc0V2ZW50c1BhcmFtcyB7XHJcbiAgZ3JvdXA/OiBzdHJpbmcgfCBudWxsO1xyXG4gIGdyb3VwMT86IHN0cmluZyB8IG51bGw7XHJcbiAgY29sbGVjdEdyb3Vwcz86IGJvb2xlYW4gfCBudWxsO1xyXG4gIGNvbGxlY3RCdW5kbGVzPzogYm9vbGVhbiB8IG51bGw7XHJcbiAgZnJvbURhdGU/OiBzdHJpbmcgfCBudWxsO1xyXG4gIHVudGlsRGF0ZT86IHN0cmluZyB8IG51bGw7XHJcbiAgdGV4dD86IHN0cmluZyB8IG51bGw7XHJcbiAgc29ydEJ5Pzogc3RyaW5nIHwgbnVsbDtcclxuICBjb3VudDogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2xpcHBlclNlYXJjaEFyc0V2ZW50c1Jlc3VsdCB7XHJcbiAgaW50ZXJ2YWw/OiBzdHJpbmcgfCBudWxsO1xyXG4gIGl0ZW1zPzogQ2xpcHBlckFyc0V2ZW50SW5mb1tdIHwgbnVsbDtcclxuICB0b3RhbD86IG51bWJlciB8IG51bGw7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2xpcHBlckRvY3VtZW50VXBkYXRlU3RhdGVQYXJhbXMge1xyXG4gIGRvY3VtZW50SWRzOiBzdHJpbmdbXSB8IG51bGw7XHJcbiAgaXNSZWFkOiBib29sZWFuIHwgbnVsbDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDbGlwcGVyRGFzaGJvYXJkTW9kZWxJdGVtIHtcclxuICBpZD86IENsaXBwZXJNb2RlbCB8IG51bGw7XHJcbiAgbmV3SXRlbXM/OiBudW1iZXIgfCBudWxsO1xyXG4gIHVucmVhZEl0ZW1zPzogbnVtYmVyIHwgbnVsbDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDbGlwcGVyRGFzaGJvYXJkSXRlbSB7XHJcbiAgaWQ/OiBDbGlwcGVyTW9kdWxlIHwgbnVsbDtcclxuICBtb2RlbHM/OiBDbGlwcGVyRGFzaGJvYXJkTW9kZWxJdGVtW10gfCBudWxsO1xyXG4gIG5ld0l0ZW1zPzogbnVtYmVyIHwgbnVsbDtcclxuICB1bnJlYWRJdGVtcz86IG51bWJlciB8IG51bGw7XHJcbiAgbGFzdFVwZGF0ZWQ/OiBzdHJpbmcgfCBudWxsO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENsaXBwZXJEYXNoYm9hcmRSZXN1bHQge1xyXG4gIGl0ZW1zPzogQ2xpcHBlckRhc2hib2FyZEl0ZW1bXSB8IG51bGw7XHJcbiAgaXNUcmlhbD86IGJvb2xlYW4gfCBudWxsO1xyXG4gIGV4cGlyZWREZWFkbGluZXM/OiBudW1iZXIgfCBudWxsO1xyXG4gIGV4cGlyaW5nRGVhZGxpbmVzPzogbnVtYmVyIHwgbnVsbDtcclxuICBkb2N1bWVudFVwZGF0ZXM/OiBudW1iZXIgfCBudWxsO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ2xpcHBlckRhc2hib2FyZCB7XHJcbiAgaXRlbXMgPSBzaWduYWw8Q2xpcHBlckRhc2hib2FyZEl0ZW1bXT4oW10pO1xyXG4gIGlzVHJpYWw/OiBib29sZWFuIHwgbnVsbCA9IGZhbHNlO1xyXG4gIGV4cGlyZWREZWFkbGluZXM/OiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuICBleHBpcmluZ0RlYWRsaW5lcz86IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG4gIGRvY3VtZW50VXBkYXRlcz86IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG4gIHVucmVhZEl0ZW1zOiBTaWduYWw8W0NsaXBwZXJNb2R1bGUsIG51bWJlcl1bXT4gPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICBjb25zdCBzdGF0ZXM6IFtDbGlwcGVyTW9kdWxlLCBudW1iZXJdW10gPSBbXTtcclxuICAgIGxldCB0b3RhbFVucmVhZCA9IDA7XHJcbiAgICB0aGlzLml0ZW1zKCkuZmlsdGVyKCh4OiBDbGlwcGVyRGFzaGJvYXJkSXRlbSkgPT4geC5pZCA9PSBDbGlwcGVyTW9kdWxlLk5ld3NcclxuICAgICAgfHwgeC5pZCA9PT0gQ2xpcHBlck1vZHVsZS5BcHByb2ZvbmRpbWVudGkpLmZvckVhY2goKHg6IENsaXBwZXJEYXNoYm9hcmRJdGVtKSA9PiB7XHJcbiAgICAgICAgdG90YWxVbnJlYWQgKz0geC51bnJlYWRJdGVtcyA/PyAwO1xyXG4gICAgICB9KTtcclxuICAgIHN0YXRlcy5wdXNoKFtDbGlwcGVyTW9kdWxlLk5ld3MsIHRvdGFsVW5yZWFkXSk7XHJcbiAgICBzdGF0ZXMucHVzaChbQ2xpcHBlck1vZHVsZS5HYXp6ZXR0ZUJvbGxldHRpbmlFRm9udGlEaXZlcnNlLCB0aGlzLml0ZW1zKCkuZmluZCgoeDogQ2xpcHBlckRhc2hib2FyZEl0ZW0pID0+IHguaWQgPT0gQ2xpcHBlck1vZHVsZS5HYXp6ZXR0ZUJvbGxldHRpbmlFRm9udGlEaXZlcnNlKT8udW5yZWFkSXRlbXMgPz8gMF0pO1xyXG4gICAgc3RhdGVzLnB1c2goW0NsaXBwZXJNb2R1bGUuR2l1cmlzcHJ1ZGVuemEsIHRoaXMuaXRlbXMoKS5maW5kKCh4OiBDbGlwcGVyRGFzaGJvYXJkSXRlbSkgPT4geC5pZCA9PSBDbGlwcGVyTW9kdWxlLkdpdXJpc3BydWRlbnphKT8udW5yZWFkSXRlbXMgPz8gMF0pO1xyXG4gICAgc3RhdGVzLnB1c2goW0NsaXBwZXJNb2R1bGUuTW9kaWZpY2hlQWJyb2dhemlvbmlFUmludmlpLCB0aGlzLml0ZW1zKCkuZmluZCgoeDogQ2xpcHBlckRhc2hib2FyZEl0ZW0pID0+IHguaWQgPT0gQ2xpcHBlck1vZHVsZS5Nb2RpZmljaGVBYnJvZ2F6aW9uaUVSaW52aWkpPy51bnJlYWRJdGVtcyA/PyAwXSk7XHJcbiAgICBzdGF0ZXMucHVzaChbQ2xpcHBlck1vZHVsZS5BbGxlcnRlQWxpbWVudGFyaSwgdGhpcy5pdGVtcygpLmZpbmQoKHg6IENsaXBwZXJEYXNoYm9hcmRJdGVtKSA9PiB4LmlkID09IENsaXBwZXJNb2R1bGUuQWxsZXJ0ZUFsaW1lbnRhcmkpPy51bnJlYWRJdGVtcyA/PyAwXSk7XHJcbiAgICBzdGF0ZXMucHVzaChbQ2xpcHBlck1vZHVsZS5RdWVzaXRpRUNhc2lSaXNvbHRpLCB0aGlzLml0ZW1zKCkuZmluZCgoeDogQ2xpcHBlckRhc2hib2FyZEl0ZW0pID0+IHguaWQgPT0gQ2xpcHBlck1vZHVsZS5RdWVzaXRpRUNhc2lSaXNvbHRpKT8udW5yZWFkSXRlbXMgPz8gMF0pO1xyXG4gICAgcmV0dXJuIHN0YXRlcztcclxuICB9KTtcclxuICB1bnJlYWRJdGVtc0J5TW9kZWw6IFNpZ25hbDxbQ2xpcHBlck1vZGVsLCBudW1iZXJdW10+ID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgY29uc3Qgc3RhdGVzOiBbQ2xpcHBlck1vZGVsLCBudW1iZXJdW10gPSBbXTtcclxuICAgIHRoaXMuaXRlbXMoKS5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICBpZiAoaXRlbS5tb2RlbHMpIHtcclxuICAgICAgICBpdGVtLm1vZGVscy5mb3JFYWNoKGl0ZW1Nb2RlbCA9PiB7XHJcbiAgICAgICAgICBzdGF0ZXMucHVzaChbaXRlbU1vZGVsLmlkLCBpdGVtTW9kZWwudW5yZWFkSXRlbXNdKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoaXRlbS5pZCA9PSBDbGlwcGVyTW9kdWxlLk5ld3MpIHtcclxuICAgICAgICAgIHN0YXRlcy5wdXNoKFtDbGlwcGVyTW9kZWwuTmV3cywgaXRlbS51bnJlYWRJdGVtc10pO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoaXRlbS5pZCA9PSBDbGlwcGVyTW9kdWxlLkdhenpldHRlQm9sbGV0dGluaUVGb250aURpdmVyc2UpIHtcclxuICAgICAgICAgIHN0YXRlcy5wdXNoKFtDbGlwcGVyTW9kZWwuQWdnaW9ybmFtZW50b05vcm1hdGl2bywgaXRlbS51bnJlYWRJdGVtc10pO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoaXRlbS5pZCA9PSBDbGlwcGVyTW9kdWxlLlF1ZXNpdGlFQ2FzaVJpc29sdGkpIHtcclxuICAgICAgICAgIHN0YXRlcy5wdXNoKFtDbGlwcGVyTW9kZWwuUXVlc2l0aSwgaXRlbS51bnJlYWRJdGVtc10pO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoaXRlbS5pZCA9PSBDbGlwcGVyTW9kdWxlLkFsbGVydGVBbGltZW50YXJpKSB7XHJcbiAgICAgICAgICBzdGF0ZXMucHVzaChbQ2xpcHBlck1vZGVsLkFsbGVydGVBbGltZW50YXJpLCBpdGVtLnVucmVhZEl0ZW1zXSk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChpdGVtLmlkID09IENsaXBwZXJNb2R1bGUuQXBwcm9mb25kaW1lbnRpKSB7XHJcbiAgICAgICAgICBzdGF0ZXMucHVzaChbQ2xpcHBlck1vZGVsLkFydGljb2xpLCBpdGVtLnVucmVhZEl0ZW1zXSk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChpdGVtLmlkID09IENsaXBwZXJNb2R1bGUuTW9kaWZpY2hlQWJyb2dhemlvbmlFUmludmlpKSB7XHJcbiAgICAgICAgICBzdGF0ZXMucHVzaChbQ2xpcHBlck1vZGVsLkNvb3JkaW5hbWVudG8sIGl0ZW0udW5yZWFkSXRlbXNdKTtcclxuICAgICAgICB9IGVsc2UgaWYgKGl0ZW0uaWQgPT0gQ2xpcHBlck1vZHVsZS5HaXVyaXNwcnVkZW56YSkge1xyXG4gICAgICAgICAgc3RhdGVzLnB1c2goW0NsaXBwZXJNb2RlbC5KdXJpcywgaXRlbS51bnJlYWRJdGVtc10pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICAgIHJldHVybiBzdGF0ZXM7XHJcbiAgfSk7XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZSB1bnJlYWQgaXRlbXNcclxuICAgKiBAcGFyYW0gbW9kdWxlIDogdGhlIG1vZHVsZVxyXG4gICAqIEBwYXJhbSBtb2RlbCA6IHRoZSBvcHRpb25hbCBtb2RlbFxyXG4gICAqIEBwYXJhbSBpbmNyZW1lbnQgOiB0aGUgaW5jcmVtZW50IChjYW4gYmUgbmVnYXRpdmUpXHJcbiAgICovXHJcbiAgdXBkYXRlVW5yZWFkSXRlbXMobW9kdWxlOiBDbGlwcGVyTW9kdWxlLCBtb2RlbDogQ2xpcHBlck1vZGVsIHwgbnVsbCwgaW5jcmVtZW50OiBudW1iZXIpIHtcclxuICAgIGlmIChtb2RlbCkge1xyXG4gICAgICB0aGlzLml0ZW1zKCkuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgICBsZXQgaXRlbU1vZGVsID0gaXRlbS5tb2RlbHMuZmluZCh4ID0+IHguaWQgPT09IG1vZGVsKTtcclxuICAgICAgICBpZiAoaXRlbU1vZGVsKSB7XHJcbiAgICAgICAgICBpdGVtLnVucmVhZEl0ZW1zICs9IGluY3JlbWVudDtcclxuICAgICAgICAgIGl0ZW1Nb2RlbC51bnJlYWRJdGVtcyArPSBpbmNyZW1lbnQ7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCBpdGVtID0gdGhpcy5pdGVtcygpPy5maW5kKCh4OiBDbGlwcGVyRGFzaGJvYXJkSXRlbSkgPT4geC5pZCA9PSBtb2R1bGUpO1xyXG4gICAgICBpZiAoaXRlbSkge1xyXG4gICAgICAgIGl0ZW0udW5yZWFkSXRlbXMgKz0gaW5jcmVtZW50O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLml0ZW1zLnVwZGF0ZSgodmFsdWVzOiBDbGlwcGVyRGFzaGJvYXJkSXRlbVtdKSA9PiBbLi4udmFsdWVzXSk7XHJcbiAgfVxyXG5cclxuICAvKioqXHJcbiAgICogR2V0IHRoZSBtb2R1bGUgdW5yZWFkIGl0ZW1zXHJcbiAgICogQHBhcmFtIG1vZHVsZTogdGhlIG1vZHVsZVxyXG4gICAqIEBwYXJhbSBtb2RlbCA6IHRoZSBvcHRpb25hbCBtb2RlbFxyXG4gICAqIEByZXR1cm5zIHRoZSBtb2R1bGUgdW5yZWFkIGl0ZW1zXHJcbiAgICovXHJcbiAgZ2V0VW5yZWFkSXRlbXMobW9kdWxlOiBDbGlwcGVyTW9kdWxlLCBtb2RlbDogQ2xpcHBlck1vZGVsIHwgbnVsbCk6IG51bWJlciB7XHJcbiAgICBpZiAobW9kZWwpIHtcclxuICAgICAgcmV0dXJuIHRoaXMudW5yZWFkSXRlbXNCeU1vZGVsKCk/LmZpbmQoKHg6IFtDbGlwcGVyTW9kZWwsIG51bWJlcl0pID0+IHhbMF0gPT09IG1vZGVsKT8uWzFdO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMudW5yZWFkSXRlbXMoKT8uZmluZCgoeDogW0NsaXBwZXJNb2R1bGUsIG51bWJlcl0pID0+IHhbMF0gPT09IG1vZHVsZSk/LlsxXTtcclxuICB9XHJcbn1cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgQ2xpcHBlclRlYW1NZW1iZXJJbmZvIHtcclxuICBpZDogbnVtYmVyO1xyXG4gIHRlYW1JZDogc3RyaW5nO1xyXG4gIG5hbWU/OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBlbWFpbD86IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIGlzQWRtaW4/OiBib29sZWFuIHwgbnVsbCA9IG51bGw7XHJcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW4gfCBudWxsID0gbnVsbDtcclxuICBoYXNQZXJtaXNzaW9uNTU/OiBib29sZWFuIHwgbnVsbCA9IG51bGw7XHJcbiAgaGFzUGVybWlzc2lvbjU2PzogYm9vbGVhbiB8IG51bGwgPSBudWxsO1xyXG4gIGhhc1Blcm1pc3Npb241Nz86IGJvb2xlYW4gfCBudWxsID0gbnVsbDtcclxufVxyXG5cclxuZXhwb3J0IGVudW0gQ2xpcHBlclRlYW1Qcm9kdWN0IHtcclxuICBTaGFyZWRBcmNoaXZlID0gMTAwNDY3NixcclxuICBTaGFyZWRDYWxlbmRhciA9IDEwMDQ2ODNcclxufVxyXG5cclxuZXhwb3J0IGVudW0gQ2xpcHBlclRlYW1Qcm9kdWN0UGVybWlzc2lvbiB7XHJcbiAgU2hhcmVkQXJjaGl2ZSA9IDU2LFxyXG4gIFNoYXJlZENhbGVuZGFyID0gNTdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDbGlwcGVyVGVhbVByb2R1Y3RJbmZvIHtcclxuICBwZXJtaXNzaW9uSWQ6IENsaXBwZXJUZWFtUHJvZHVjdFBlcm1pc3Npb247XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIG1heE1lbWJlcnM6IG51bWJlcjtcclxuICB1c2VkTWVtYmVyczogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENsaXBwZXJUZWFtTWVtYmVyc1NlYXJjaFJlc3VsdCB7XHJcbiAgdGVhbUlkPzogc3RyaW5nIHwgbnVsbDtcclxuICB0ZWFtVGl0bGU/OiBzdHJpbmcgfCBudWxsO1xyXG4gIHRvdGFsPzogbnVtYmVyIHwgbnVsbDtcclxuICBjdXN0b21lcklkPzogbnVtYmVyIHwgbnVsbDtcclxuICBjYW5FZGl0PzogYm9vbGVhbiB8IG51bGw7XHJcbiAgcHJvZHVjdHM/OiBDbGlwcGVyVGVhbVByb2R1Y3RJbmZvW10gfCBudWxsO1xyXG4gIGl0ZW1zPzogQ2xpcHBlclRlYW1NZW1iZXJJbmZvW10gfCBudWxsO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENsaXBwZXJUZWFtc1NlYXJjaFBhcmFtcyB7XHJcbiAgdGVhbUlkPzogc3RyaW5nIHwgbnVsbDtcclxuICBwZXJtaXNzaW9uSWQ/OiBudW1iZXIgfCBudWxsO1xyXG4gIHByb2R1Y3RJZD86IG51bWJlciB8IG51bGw7XHJcbiAgYWN0aXZlTWVtYmVyc09ubHk/OiBib29sZWFuIHwgbnVsbDtcclxuICBpbmNsdWRlUlNUZWFtcz86IGJvb2xlYW4gfCBudWxsO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENsaXBwZXJUZWFtc1NlYXJjaFJlc3VsdCB7XHJcbiAgdG90YWw6IG51bWJlcjtcclxuICBpdGVtczogTmFtZVZhbHVlSXRlbTxzdHJpbmc+W107XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDbGlwcGVyVGVhbUluZm8ge1xyXG4gIGlkPzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgY3VzdG9tZXJJZD86IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG4gIHRpdGxlPzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW4gfCBudWxsID0gbnVsbDtcclxuICBjcmVhdGVkPzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgbGFzdE1vZGlmaWVkPzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIENsaXBwZXJDYWxlbmRhclN0YXRlIHtcclxuICBPcGVuID0gMTAxLFxyXG4gIEV4cGlyZWQgPSAxMDIsXHJcbiAgRXhwaXJpbmcgPSAxMDMsXHJcbiAgQ2xvc2VkID0gMTA0XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBDbGlwcGVyQ2FsZW5kYXJTdGF0ZXM6IE5hbWVWYWx1ZUl0ZW08Q2xpcHBlckNhbGVuZGFyU3RhdGU+W10gPSBbXHJcbiAgeyBuYW1lOiAnQXBlcnRlJywgdmFsdWU6IENsaXBwZXJDYWxlbmRhclN0YXRlLk9wZW4gfSxcclxuICB7IG5hbWU6ICdDaGl1c2UnLCB2YWx1ZTogQ2xpcHBlckNhbGVuZGFyU3RhdGUuQ2xvc2VkIH0sXHJcbiAgeyBuYW1lOiAnU2NhZHV0ZScsIHZhbHVlOiBDbGlwcGVyQ2FsZW5kYXJTdGF0ZS5FeHBpcmVkIH0sXHJcbiAgeyBuYW1lOiAnSW1taW5lbnRpJywgdmFsdWU6IENsaXBwZXJDYWxlbmRhclN0YXRlLkV4cGlyaW5nIH1cclxuXVxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBDbGlwcGVyQ2FsZW5kYXJTZWFyY2hQYXJhbXMge1xyXG4gIGlkPzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgZnJvbURhdGU/OiBEYXRlIHwgbnVsbCA9IG51bGw7XHJcbiAgdG9EYXRlPzogRGF0ZSB8IG51bGwgPSBudWxsO1xyXG4gIHRlYW1JZD86IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIHRleHQ/OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBtb250aD86IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG4gIHllYXI/OiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuICBzb3J0RGVzY2VuZGluZz86IGJvb2xlYW4gfCBudWxsID0gbnVsbDtcclxuICBzdGF0ZT86IENsaXBwZXJDYWxlbmRhclN0YXRlIHwgbnVsbCA9IG51bGw7XHJcbiAgcmVjdXJyZW50T25seT86IGJvb2xlYW4gfCBudWxsID0gbnVsbDtcclxuICBmaXJzdD86IG51bWJlciB8IG51bGwgPSAwO1xyXG4gIGNvdW50PzogbnVtYmVyIHwgbnVsbCA9IDE1XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2xpcHBlckNhbGVuZGFyU2VhcmNoUmVzdWx0IHtcclxuICBpbnRlcnZhbDogc3RyaW5nO1xyXG4gIGl0ZW1zOiBDbGlwcGVyRGVhZGxpbmVJbmZvW107XHJcbiAgZGF5czogbnVtYmVyW107XHJcbiAgdGVhbXM6IE5hbWVWYWx1ZUl0ZW08c3RyaW5nPltdO1xyXG4gIHRvdGFsOiBudW1iZXI7XHJcbn1cclxuXHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDbGlwcGVyRGVhZGxpbmVJbmZvIHtcclxuICBpZD86IHN0cmluZyB8IG51bGw7XHJcbiAgY29tcGFueUlkPzogbnVtYmVyIHwgbnVsbDtcclxuICB1c2VySWQ/OiBudW1iZXIgfCBudWxsO1xyXG4gIHRlYW1JZDogc3RyaW5nO1xyXG4gIHRlYW1OYW1lPzogc3RyaW5nIHwgbnVsbDtcclxuICBncm91cD86IHN0cmluZyB8IG51bGw7XHJcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmcgfCBudWxsO1xyXG4gIGRvY3VtZW50VGl0bGU/OiBzdHJpbmcgfCBudWxsO1xyXG4gIGRvY3VtZW50SWQ/OiBzdHJpbmcgfCBudWxsO1xyXG4gIGRvY3VtZW50TnVtYmVyPzogc3RyaW5nIHwgbnVsbDtcclxuICBkb2N1bWVudERhdGU/OiBEYXRlIHwgbnVsbDtcclxuICBlbWFpbHM/OiBzdHJpbmcgfCBudWxsO1xyXG4gIGV4cGlyaW5nRGF0ZT86IERhdGUgfCBudWxsO1xyXG4gIGV4cGlyZWRBbGVydFNlbnQ/OiBib29sZWFuIHwgbnVsbDtcclxuICBleHBpcmluZ0luZm8/OiBzdHJpbmcgfCBudWxsO1xyXG4gIGV4cGlyaW5nRGVzY3JpcHRpb24/OiBzdHJpbmcgfCBudWxsO1xyXG4gIG5leHRFeHBpcmluZ0RhdGU/OiBEYXRlIHwgbnVsbDtcclxuICBhbGFybURheXM/OiBudW1iZXIgfCBudWxsO1xyXG4gIGFsYXJtRGF0ZT86IERhdGUgfCBudWxsO1xyXG4gIGFsYXJtTWVtbz86IHN0cmluZyB8IG51bGw7XHJcbiAgYWxhcm1TZW50PzogYm9vbGVhbiB8IG51bGw7XHJcbiAgaGFzQWxhcm0/OiBib29sZWFuIHwgbnVsbDtcclxuICBpc01lbnVPcGVuPzogYm9vbGVhbiB8IG51bGw7XHJcbiAgaXNPdmVyPzogYm9vbGVhbiB8IG51bGw7XHJcbiAgaXNFeHBpcmVkPzogYm9vbGVhbiB8IG51bGw7XHJcbiAgaXNFeHBpcmluZz86IGJvb2xlYW4gfCBudWxsO1xyXG4gIGlzQ2xvc2VkPzogYm9vbGVhbiB8IG51bGw7XHJcbiAgaXNDbG9zYWJsZT86IGJvb2xlYW4gfCBudWxsO1xyXG4gIGlzUHJpdmF0ZT86IGJvb2xlYW4gfCBudWxsO1xyXG4gIGlzUmVjdXJyZW50PzogYm9vbGVhbiB8IG51bGw7XHJcbiAgcmVjdXJyZW5jZVBhdHRlcm5UeXBlPzogQ2xpcHBlclJlY3VycmVuY2VUeXBlIHwgbnVsbDtcclxuICByZWN1cnJlbmNlRnJlcXVlbmN5PzogbnVtYmVyIHwgbnVsbDtcclxuICByZWN1cnJlbmNlRW5kT2ZNb250aD86IGJvb2xlYW4gfCBudWxsO1xyXG4gIHJlY3VycmVuY2VOZXdJZD86IHN0cmluZyB8IG51bGw7XHJcbiAgb3V0bG9va0FwcG9pbnRtZW50SWQ/OiBzdHJpbmcgfCBudWxsO1xyXG4gIGNyZWF0ZWQ/OiBEYXRlIHwgbnVsbDtcclxuICBsYXN0TW9kaWZpZWQ/OiBEYXRlIHwgbnVsbDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDbGlwcGVyQ2FsZW5kYXJTYXZlRGVhZGxpbmVQYXJhbXMge1xyXG4gIGRlYWRsaW5lOiBDbGlwcGVyRGVhZGxpbmVJbmZvO1xyXG4gIHRlYW1JZHM/OiBzdHJpbmdbXSB8IG51bGw7XHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIENsaXBwZXJDYWxlbmRhckNvcHlNb2RlIHtcclxuICBEdXBsaWNhdGUgPSAxLFxyXG4gIE1vdmUgPSAyXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2xpcHBlckNhbGVuZGFyQ29weURlYWRsaW5lc1BhcmFtcyB7XHJcbiAgaWRzOiBzdHJpbmdbXTtcclxuICB0ZWFtSWQ6IHN0cmluZztcclxuICBtb2RlOiBDbGlwcGVyQ2FsZW5kYXJDb3B5TW9kZTtcclxufVxyXG5cclxuZXhwb3J0IGVudW0gQ2xpcHBlckFyY2hpdmVGaWxlVHlwZSB7XHJcbiAgTm9uZSA9IDAsXHJcbiAgUHJvY2VkdXJlID0gMSxcclxuICBPcGVyYXRpbmdJbnN0cnVjdGlvbnMgPSAyLFxyXG4gIFRlY2huaWNhbFJlcG9ydCA9IDMsXHJcbiAgQWRtaW5pc3RyYXRpdmVEb2N1bWVudCA9IDQsXHJcbiAgRG9jdW1lbnQgPSA1LFxyXG4gIE90aGVyQXBwbGljYWJsZVJ1bGVzID0gNixcclxuICBPdGhlciA9IDcsXHJcbiAgRmlsZSA9IDEwMSxcclxuICBJbWFnZSA9IDEwMlxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgQ2xpcHBlckFyY2hpdmVGaWxlVHlwZXM6IE5hbWVWYWx1ZUl0ZW08Q2xpcHBlckFyY2hpdmVGaWxlVHlwZT5bXSA9IFtcclxuICB7IG5hbWU6ICdGaWxlJywgdmFsdWU6IENsaXBwZXJBcmNoaXZlRmlsZVR5cGUuRmlsZSB9LFxyXG4gIHsgbmFtZTogJ0ltbWFnaW5lJywgdmFsdWU6IENsaXBwZXJBcmNoaXZlRmlsZVR5cGUuSW1hZ2UgfSxcclxuICB7IG5hbWU6ICdQcm9jZWR1cmEnLCB2YWx1ZTogQ2xpcHBlckFyY2hpdmVGaWxlVHlwZS5Qcm9jZWR1cmUgfSxcclxuICB7IG5hbWU6ICdJc3RydXppb25pIG9wZXJhdGl2ZScsIHZhbHVlOiBDbGlwcGVyQXJjaGl2ZUZpbGVUeXBlLk9wZXJhdGluZ0luc3RydWN0aW9ucyB9LFxyXG4gIHsgbmFtZTogJ1JlbGF6aW9uZSB0ZWNuaWNhJywgdmFsdWU6IENsaXBwZXJBcmNoaXZlRmlsZVR5cGUuVGVjaG5pY2FsUmVwb3J0IH0sXHJcbiAgeyBuYW1lOiAnRG9jdW1lbnRvIGl0ZXIgYW1taW5pc3RyYXRpdm8nLCB2YWx1ZTogQ2xpcHBlckFyY2hpdmVGaWxlVHlwZS5BZG1pbmlzdHJhdGl2ZURvY3VtZW50IH0sXHJcbiAgeyBuYW1lOiAnRG9jdW1lbnRvIGF6aWVuZGFsZScsIHZhbHVlOiBDbGlwcGVyQXJjaGl2ZUZpbGVUeXBlLkRvY3VtZW50IH0sXHJcbiAgeyBuYW1lOiAnQWx0cmUgbm9ybWUgYXBwbGljYWJpbGknLCB2YWx1ZTogQ2xpcHBlckFyY2hpdmVGaWxlVHlwZS5PdGhlckFwcGxpY2FibGVSdWxlcyB9LFxyXG4gIHsgbmFtZTogJ0FsdHJvJywgdmFsdWU6IENsaXBwZXJBcmNoaXZlRmlsZVR5cGUuT3RoZXIgfVxyXG5dXHJcblxyXG5cclxuZXhwb3J0IGVudW0gQ2xpcHBlckFyY2hpdmVGaWxlU3RvcmFnZVR5cGUge1xyXG4gIEFyc0Nsb3VkID0gMixcclxuICBPdGhlckNsb3VkID0gM1xyXG59XHJcbmV4cG9ydCBjb25zdCBDbGlwcGVyQXJjaGl2ZUZpbGVTdG9yYWdlVHlwZXM6IE5hbWVWYWx1ZUl0ZW08Q2xpcHBlckFyY2hpdmVGaWxlU3RvcmFnZVR5cGU+W10gPSBbXHJcbiAgeyBuYW1lOiAnQVJTIENsb3VkJywgdmFsdWU6IENsaXBwZXJBcmNoaXZlRmlsZVN0b3JhZ2VUeXBlLkFyc0Nsb3VkIH0sXHJcbiAgeyBuYW1lOiAnQWx0cm8gY2xvdWQnLCB2YWx1ZTogQ2xpcHBlckFyY2hpdmVGaWxlU3RvcmFnZVR5cGUuT3RoZXJDbG91ZCB9XHJcbl1cclxuXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENsaXBwZXJBcmNoaXZlRmlsZUluZm8ge1xyXG4gIGlkPzogc3RyaW5nIHwgbnVsbDtcclxuICBwYXJlbnRGb2xkZXJJZD86IHN0cmluZyB8IG51bGw7XHJcbiAgaXNGb2xkZXI/OiBib29sZWFuIHwgbnVsbDtcclxuICBmb2xkZXJJZD86IHN0cmluZyB8IG51bGw7XHJcbiAgZm9sZGVyTmFtZT86IHN0cmluZyB8IG51bGw7XHJcbiAgZm9sZGVySXRlbXNDb3VudD86IG51bWJlciB8IG51bGw7XHJcbiAgdGVhbUlkOiBzdHJpbmc7XHJcbiAgdGVhbU5hbWU/OiBzdHJpbmcgfCBudWxsO1xyXG4gIHRvcGljSWQ/OiBzdHJpbmcgfCBudWxsO1xyXG4gIHRvcGljUGF0aD86IHN0cmluZyB8IG51bGw7XHJcbiAgdG9waWNOYW1lPzogc3RyaW5nIHwgbnVsbDtcclxuICB0b3BpY3M/OiBzdHJpbmdbXSB8IG51bGw7XHJcbiAgdGFncz86IHN0cmluZyB8IG51bGw7XHJcbiAgaXNQcml2YXRlPzogYm9vbGVhbiB8IG51bGw7XHJcbiAgaXNGaWxlPzogYm9vbGVhbiB8IG51bGw7XHJcbiAgZmlsZU5hbWU/OiBzdHJpbmcgfCBudWxsO1xyXG4gIHN0b3JhZ2VUeXBlPzogQ2xpcHBlckFyY2hpdmVGaWxlU3RvcmFnZVR5cGUgfCBudWxsO1xyXG4gIGlzQmluYXJ5PzogYm9vbGVhbiB8IG51bGw7XHJcbiAgYmluYXJ5SWQ/OiBudW1iZXIgfCBudWxsO1xyXG4gIGJpbmFyeUZpbGVQYXRoPzogc3RyaW5nIHwgbnVsbDtcclxuICBpc1Blcm1hbGluaz86IGJvb2xlYW4gfCBudWxsO1xyXG4gIGZpbGVUeXBlPzogQ2xpcHBlckFyY2hpdmVGaWxlVHlwZSB8IG51bGw7XHJcbiAgZmlsZT86IGFueSB8IG51bGw7XHJcbiAgbm90ZXM/OiBzdHJpbmcgfCBudWxsO1xyXG4gIHBvc2l0aW9uPzogbnVtYmVyIHwgbnVsbDtcclxuICBkb2N1bWVudElkcz86IHN0cmluZyB8IG51bGw7XHJcbiAgZG9jdW1lbnRMYXN0Q2hhbmdlZEJ5Pzogc3RyaW5nIHwgbnVsbDtcclxuICBkb2N1bWVudExhc3RDaGFuZ2VkQnlJZD86IHN0cmluZyB8IG51bGw7XHJcbiAgZG9jdW1lbnRMYXN0Q2hhbmdlZFJlYXNvbkRlc2NyaXB0aW9uPzogc3RyaW5nIHwgbnVsbDtcclxuICBkb2N1bWVudExhc3RDaGFuZ2VkPzogRGF0ZSB8IG51bGw7XHJcbiAgZG9jdW1lbnRVcGRhdGVTdGF0ZT86IG51bWJlciB8IG51bGw7XHJcbiAgaXNEb2N1bWVudENoYW5nZWQ/OiBib29sZWFuIHwgbnVsbDtcclxuICBjYW5QcmV2aWV3PzogYm9vbGVhbiB8IG51bGw7XHJcbiAgY2FuRW1iZWQ/OiBib29sZWFuIHwgbnVsbDtcclxuICBjaGFubmVsTmFtZT86IHN0cmluZyB8IG51bGw7XHJcbiAgbW9kZWw/OiBDbGlwcGVyTW9kZWwgfCBudWxsO1xyXG4gIG1vZGVsTmFtZT86IHN0cmluZyB8IG51bGw7XHJcbiAgdGl0bGUxPzogc3RyaW5nIHwgbnVsbDtcclxuICB0aXRsZTI/OiBzdHJpbmcgfCBudWxsO1xyXG4gIGRhdGU/OiBEYXRlIHwgbnVsbDtcclxuICBudW1iZXI/OiBzdHJpbmcgfCBudWxsO1xyXG4gIG9yaWdpbj86IHN0cmluZyB8IG51bGw7XHJcbiAgb3JpZ2luRGVzY3JpcHRpb24/OiBzdHJpbmcgfCBudWxsO1xyXG4gIGRvY3VtZW50SWQ/OiBzdHJpbmcgfCBudWxsO1xyXG4gIGRvY3VtZW50Q29kZT86IHN0cmluZyB8IG51bGw7XHJcbiAgaXNEb2N1bWVudD86IGJvb2xlYW4gfCBudWxsO1xyXG4gIGlzUmVhZD86IGJvb2xlYW4gfCBudWxsO1xyXG4gIGlzSnVyaXM/OiBib29sZWFuIHwgbnVsbDtcclxuICBpc01lbnVPcGVuPzogYm9vbGVhbiB8IG51bGw7XHJcbiAgaXNPdmVyPzogYm9vbGVhbiB8IG51bGw7XHJcbiAgdmFsaWRpdHlTdGF0ZT86IG51bWJlciB8IG51bGw7XHJcbiAgdmFsaWRVbnRpbERhdGU/OiBEYXRlIHwgbnVsbDtcclxuICBleHBpcmluZ0RhdGU/OiBEYXRlIHwgbnVsbDtcclxuICBleHBpcmluZ0luZm8/OiBzdHJpbmcgfCBudWxsO1xyXG4gIHVuaXF1ZUlkOiBzdHJpbmc7XHJcbn1cclxuXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENsaXBwZXJBcmNoaXZlRm9sZGVyVHJlZSBleHRlbmRzIEZvbGRlciB7XHJcbiAgc3ViRm9sZGVyczogQ2xpcHBlckFyY2hpdmVGb2xkZXJUcmVlW107XHJcbn1cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgQ2xpcHBlckFyY2hpdmVGb2xkZXJzU2VhcmNoUGFyYW1zIHtcclxuICB0ZWFtSWQ/OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlT25seT86IGJvb2xlYW4gfCBudWxsID0gbnVsbDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDbGlwcGVyQXJjaGl2ZUZvbGRlcnNTZWFyY2hSZXN1bHQge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0ZWFtczogTmFtZVZhbHVlSXRlbTxzdHJpbmc+W107XHJcbiAgZmlsZXM6IENsaXBwZXJBcmNoaXZlRmlsZUluZm9bXTtcclxuICBzdWJGb2xkZXJzOiBDbGlwcGVyQXJjaGl2ZUZvbGRlclRyZWVbXTtcclxuXHJcbn1cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgQ2xpcHBlckFyY2hpdmVGaWxlc1NlYXJjaFBhcmFtcyB7XHJcbiAgdGVhbUlkPzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgZm9sZGVySWQ/OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBmb2xkZXJOYW1lPzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgZmlsZVR5cGU/OiBDbGlwcGVyQXJjaGl2ZUZpbGVUeXBlIHwgbnVsbCA9IG51bGw7XHJcbiAgZnJvbURhdGU/OiBEYXRlIHwgbnVsbCA9IG51bGw7XHJcbiAgdG9EYXRlPzogRGF0ZSB8IG51bGwgPSBudWxsO1xyXG4gIHRvcGljUGF0aD86IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIHRvcGljSWQ/OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICB0b3BpY05hbWU/OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICB0aXRsZXNPbmx5PzogYm9vbGVhbiB8IG51bGwgPSBudWxsO1xyXG4gIHRleHQ/OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBkb2N1bWVudE51bWJlcj86IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIGRvY3VtZW50WWVhcj86IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG4gIGZpcnN0PzogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcbiAgY291bnQ/OiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDbGlwcGVyQXJjaGl2ZUZpbGVzU2VhcmNoUmVzdWx0IHtcclxuICBpdGVtczogQ2xpcHBlckFyY2hpdmVGaWxlSW5mb1tdO1xyXG4gIGZvbGRlck5hbWU/OiBzdHJpbmcgfCBudWxsO1xyXG4gIHRvdGFsOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2xpcHBlckFyY2hpdmVGb2xkZXJzSW1wb3J0UGFyYW1zIHtcclxuICB0ZWFtSWQ6IHN0cmluZztcclxuICBkZXN0Rm9sZGVySWQ/OiBzdHJpbmcgfCBudWxsO1xyXG4gIHNvdXJjZVBhdGg/OiBzdHJpbmcgfCBudWxsO1xyXG4gIHNvdXJjZUZpbGVOYW1lPzogc3RyaW5nIHwgbnVsbDtcclxuICBmaWxlPzogYW55IHwgbnVsbDtcclxuICBvdmVyd3JpdGU/OiBib29sZWFuIHwgbnVsbDtcclxuICB2ZXJzaW9uPzogbnVtYmVyIHwgbnVsbDtcclxufVxyXG5cclxuZXhwb3J0IGVudW0gQ2xpcHBlckFyY2hpdmVDb3B5TW9kZSB7XHJcbiAgRHVwbGljYXRlID0gMSxcclxuICBNb3ZlID0gMlxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENsaXBwZXJBcmNoaXZlRmlsZXNDb3B5UGFyYW1zIHtcclxuICBkZXN0VGVhbUlkOiBzdHJpbmc7XHJcbiAgZGVzdEZvbGRlcklkPzogc3RyaW5nIHwgbnVsbDtcclxuICBmaWxlcz86IENsaXBwZXJBcmNoaXZlRmlsZUluZm9bXSB8IG51bGw7XHJcbiAgbW9kZT86IENsaXBwZXJBcmNoaXZlQ29weU1vZGUgfCBudWxsO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENsaXBwZXJBcmNoaXZlRmlsZXNEZWxldGVQYXJhbXMge1xyXG4gIHNvdXJjZUZvbGRlcklkPzogc3RyaW5nIHwgbnVsbDtcclxuICBkZXN0Rm9sZGVySWQ/OiBzdHJpbmcgfCBudWxsO1xyXG4gIGZpbGVzPzogQ2xpcHBlckFyY2hpdmVGaWxlSW5mb1tdIHwgbnVsbDtcclxufVxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBDbGlwcGVyVXRpbHMge1xyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBpZiBhIG1vZGVsIGlzIHJlYWRhYmxlXHJcbiAgICogQHBhcmFtIG1vZGVsIDogdGhlIG1vZGVsIHRvIGNoZWNrXHJcbiAgICogQHJldHVybnMgOiB0cnVlIGlmIHRoZSBtb2RlbCBpcyByZWFkYWJsZVxyXG4gICAqL1xyXG4gIHN0YXRpYyBpc0NsaXBwZXJNb2RlbFJlYWRhYmxlKG1vZGVsOiBDbGlwcGVyTW9kZWwpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBtb2RlbCAhPT0gQ2xpcHBlck1vZGVsLlVua25vd24gJiZcclxuICAgICAgbW9kZWwgIT09IENsaXBwZXJNb2RlbC5Ob3JtYXRpdmFWaWdlbnRlICYmXHJcbiAgICAgIG1vZGVsICE9PSBDbGlwcGVyTW9kZWwuU2NhZGVuemUgJiZcclxuICAgICAgbW9kZWwgIT09IENsaXBwZXJNb2RlbC5TZWduYWxhemlvbmlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybiB0aGUgQ2xpcHBlciBtb2R1bGUgZnJvbSBhIGRvY3VtZW50IFxyXG4gICAqIEBwYXJhbSBpdGVtOiB0aGUgZG9jdW1lbnRpIGl0ZW1cclxuICAgKiBAcmV0dXJucyB0aGUgbW9kdWxlIGlkXHJcbiAgICovXHJcbiAgc3RhdGljIGdldENsaXBwZXJNb2R1bGVGcm9tTW9kZWwoaXRlbTogQ2xpcHBlckRvY3VtZW50SW5mbyk6IENsaXBwZXJNb2R1bGUgfCBudWxsIHtcclxuICAgIHN3aXRjaCAoaXRlbS5tb2RlbCkge1xyXG4gICAgICBjYXNlIENsaXBwZXJNb2RlbC5BbGxlcnRlQWxpbWVudGFyaTogcmV0dXJuIENsaXBwZXJNb2R1bGUuQWxsZXJ0ZUFsaW1lbnRhcmk7XHJcbiAgICAgIGNhc2UgQ2xpcHBlck1vZGVsLk5ld3M6XHJcbiAgICAgIGNhc2UgQ2xpcHBlck1vZGVsLkFydGljb2xpOlxyXG4gICAgICBjYXNlIENsaXBwZXJNb2RlbC5KdXJpczogcmV0dXJuIENsaXBwZXJNb2R1bGUuTmV3cztcclxuICAgICAgY2FzZSBDbGlwcGVyTW9kZWwuUXVlc2l0aTogcmV0dXJuIENsaXBwZXJNb2R1bGUuUXVlc2l0aUVDYXNpUmlzb2x0aTtcclxuICAgICAgY2FzZSBDbGlwcGVyTW9kZWwuQ29vcmRpbmFtZW50bzogcmV0dXJuIENsaXBwZXJNb2R1bGUuTW9kaWZpY2hlQWJyb2dhemlvbmlFUmludmlpO1xyXG4gICAgICBjYXNlIENsaXBwZXJNb2RlbC5HaXVyaXNwcnVkZW56YVJlY2VudGU6IHJldHVybiBDbGlwcGVyTW9kdWxlLkdpdXJpc3BydWRlbnphO1xyXG4gICAgICBjYXNlIENsaXBwZXJNb2RlbC5Ob3JtYXRpdmFWaWdlbnRlOiByZXR1cm4gQ2xpcHBlck1vZHVsZS5Ob3JtYXRpdmFWaWdlbnRlO1xyXG4gICAgICBjYXNlIENsaXBwZXJNb2RlbC5TZWduYWxhemlvbmk6XHJcbiAgICAgIGNhc2UgQ2xpcHBlck1vZGVsLlNjYWRlbnplOiByZXR1cm4gQ2xpcHBlck1vZHVsZS5TY2FkZW56ZUVTZWduYWxhemlvbmk7XHJcbiAgICAgIGNhc2UgQ2xpcHBlck1vZGVsLkFnZ2lvcm5hbWVudG9Ob3JtYXRpdm86IHJldHVybiBDbGlwcGVyTW9kdWxlLkdhenpldHRlQm9sbGV0dGluaUVGb250aURpdmVyc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm4gdGhlIENsaXBwZXIgZ3JvdXAgbmFtZVxyXG4gICAqIEBwYXJhbSB2YWx1ZTogdGhlIGdyb3VwIHZhbHVlIFxyXG4gICAqIEByZXR1cm5zIHRoZSBncm91cCBuYW1lXHJcbiAgICovXHJcbiAgc3RhdGljIGdldENsaXBwZXJNb2R1bGVHcm91cE5hbWUodmFsdWU6IENsaXBwZXJNb2R1bGVHcm91cCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gQ2xpcHBlck1vZHVsZUdyb3Vwcy5maWx0ZXIoKG4pID0+IG4udmFsdWUgPT09IHZhbHVlKT8uWzBdLm5hbWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm4gdGhlIGxpc3Qgb2YgbW9kdWxlcyBvZiBhIGdyb3VwXHJcbiAgICogQHBhcmFtIHZhbHVlOiB0aGUgbW9kdWxlIG5hbWVcclxuICAgKiBAcmV0dXJucyB0aGUgbGlzdCBvZiBtb2R1bGVzXHJcbiAgICovXHJcbiAgc3RhdGljIGdldENsaXBwZXJNb2R1bGVHcm91cEl0ZW1zKHZhbHVlOiBDbGlwcGVyTW9kdWxlR3JvdXApOiBOYW1lVmFsdWVJdGVtPENsaXBwZXJNb2R1bGU+W10ge1xyXG4gICAgcmV0dXJuIENsaXBwZXJNb2R1bGVzLmZpbHRlcigobikgPT4gbi5wYXJlbnRWYWx1ZSA9PT0gdmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2sgbW9kdWxlcyBhZ2FpbnN0IGN1cnJlbnQgc2VsZWN0ZWQgaW4gZmlsdGVyXHJcbiAgICogQHBhcmFtIG1vZHVsZXMgOiB0aGUgbW9kdWxlcyB0byBjaGVjayBmb3JcclxuICAgKiBAcGFyYW0gbW9kZSA6IHRoYyBjaGVjayBtb2RlOiAxKSBleGFjdGx5IGFsbCBlbGVtZW50cyAyKSBhbGwgZWxlbWVudHMgMykgYW55IG9mIHRoZSBlbGVtZW50cyBzcGVjaWZpZWRcclxuICAgKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBjaGVjayBpcyBzdWNjZXNzZnVsbFxyXG4gICAqL1xyXG4gIHByaXZhdGUgc3RhdGljIGNoZWNrTW9kdWxlcyhtb2R1bGVzOiBDbGlwcGVyTW9kdWxlW10sIGN1cnJlbnRNb2R1bGVzOiBOYW1lVmFsdWVJdGVtPENsaXBwZXJNb2R1bGU+W10sIG1vZGU6IG51bWJlciA9IDEpOiBib29sZWFuIHtcclxuICAgIGxldCBvazogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgaWYgKG1vZGUgPT09IDEpIHtcclxuICAgICAgLy8gQWxsIGFuZCBvbmx5IHRoZSBlbGVtZW50cyBzcGVjaWZpZWRcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjdXJyZW50TW9kdWxlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIG9rID0gKG1vZHVsZXMuZmluZEluZGV4KHggPT4geCA9PT0gY3VycmVudE1vZHVsZXNbaV0udmFsdWUpID8/IC0xKSAhPT0gLTE7XHJcbiAgICAgICAgaWYgKCFvaykge1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIG9rID0gb2sgJiYgbW9kdWxlcy5sZW5ndGggPj0gKGN1cnJlbnRNb2R1bGVzPy5sZW5ndGggPz8gMCk7XHJcbiAgICB9IGVsc2UgaWYgKG1vZGUgPT09IDIpIHtcclxuICAgICAgLy8gQWxsIHRoZSBlbGVtZW50cyBzcGVjaWZpZWRcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtb2R1bGVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgb2sgPSAoY3VycmVudE1vZHVsZXM/LmZpbmRJbmRleCh4ID0+IHgudmFsdWUgPT09IG1vZHVsZXNbaV0pID8/IC0xKSAhPT0gLTE7XHJcbiAgICAgICAgaWYgKCFvaykge1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKG1vZGUgPT09IDMpIHtcclxuICAgICAgLy8gQW55IG9mIHRoZSBzcGVjaWZpZWQgZWxlbWVudHMgICAgXHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbW9kdWxlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIG9rID0gKGN1cnJlbnRNb2R1bGVzPy5maW5kSW5kZXgoeCA9PiB4LnZhbHVlID09PSBtb2R1bGVzW2ldKSA/PyAtMSkgIT09IC0xO1xyXG4gICAgICAgIGlmIChvaykge1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gb2s7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm4gdGhlIGxpc3Qgb2YgYXZhaWxhYmxlIHNvcnQgb3B0aW9ucyBmb3IgYSBsaXN0IG9mIG1vZHVsZXNcclxuICAgKiBAcGFyYW0gbW9kdWxlcyA6IHRoZSBtb2R1bGVzIGxpc3RcclxuICAgKiBAcmV0dXJucyB0aGUgbGlzdCBvZiBhdmFpbGJhbGUgc29ydCBvcHRpb25zIFxyXG4gICAqL1xyXG4gIHN0YXRpYyBnZXRDbGlwcGVyQXZhaWxhYmxlU29ydE9wdGlvbnMoXHJcbiAgICBtb2R1bGVzOiBOYW1lVmFsdWVJdGVtPENsaXBwZXJNb2R1bGU+W10gfCBudWxsIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxyXG4gICAgcGFyYW1zOiBDbGlwcGVyU2VhcmNoUGFyYW1zIHwgbnVsbCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCk6IE5hbWVWYWx1ZUl0ZW08Q2xpcHBlclNvcnQ+W10ge1xyXG4gICAgY29uc3Qgb3B0aW9uczogTmFtZVZhbHVlSXRlbTxDbGlwcGVyU29ydD5bXSA9IFtcclxuICAgICAgeyBuYW1lOiBcIkRhdGEgZGVjcmVzY2VudGVcIiwgdmFsdWU6IENsaXBwZXJTb3J0LkRhdGVEZXNjIH0sXHJcbiAgICAgIHsgbmFtZTogXCJEYXRhIGNyZXNjZW50ZVwiLCB2YWx1ZTogQ2xpcHBlclNvcnQuRGF0ZUFzYyB9LFxyXG4gICAgICB7IG5hbWU6IFwiRGF0YSBmb250ZSBkZWNyZXNjZW50ZVwiLCB2YWx1ZTogQ2xpcHBlclNvcnQuU291cmNlRGF0ZURlc2MgfSxcclxuICAgICAgeyBuYW1lOiBcIkRhdGEgZm9udGUgY3Jlc2NlbnRlXCIsIHZhbHVlOiBDbGlwcGVyU29ydC5Tb3VyY2VEYXRlQXNjIH0sXHJcbiAgICAgIHsgbmFtZTogXCJSaWxldmFuemFcIiwgdmFsdWU6IENsaXBwZXJTb3J0LlJlbGV2YW5jZSB9LFxyXG4gICAgICB7IG5hbWU6IFwiUG9wb2xhcml0w6BcIiwgdmFsdWU6IENsaXBwZXJTb3J0LlBvcHVsYXJpdHkgfSxcclxuICAgIF07XHJcbiAgICBsZXQgc29ydE9wdGlvbnM6IE5hbWVWYWx1ZUl0ZW08bnVtYmVyPltdID0gW11cclxuICAgIGlmIChwYXJhbXMgJiYgQ2xpcHBlclNlYXJjaFV0aWxzLmlzVGV4dFF1ZXJ5KHBhcmFtcykpIHtcclxuICAgICAgc29ydE9wdGlvbnMucHVzaChvcHRpb25zWzRdKTtcclxuICAgIH1cclxuICAgIGlmIChtb2R1bGVzPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGlmICh0aGlzLmNoZWNrTW9kdWxlcyhbQ2xpcHBlck1vZHVsZS5HYXp6ZXR0ZUJvbGxldHRpbmlFRm9udGlEaXZlcnNlXSwgbW9kdWxlcywgMSkpIHtcclxuICAgICAgICBzb3J0T3B0aW9ucy5wdXNoKG9wdGlvbnNbMl0pO1xyXG4gICAgICAgIHNvcnRPcHRpb25zLnB1c2gob3B0aW9uc1szXSk7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5jaGVja01vZHVsZXMoW0NsaXBwZXJNb2R1bGUuTm9ybWF0aXZhVmlnZW50ZSwgQ2xpcHBlck1vZHVsZS5HaXVyaXNwcnVkZW56YSwgQ2xpcHBlck1vZHVsZS5HYXp6ZXR0ZUJvbGxldHRpbmlFRm9udGlEaXZlcnNlXSwgbW9kdWxlcywgMykpIHtcclxuICAgICAgICBzb3J0T3B0aW9ucy5wdXNoKG9wdGlvbnNbMF0pO1xyXG4gICAgICAgIHNvcnRPcHRpb25zLnB1c2gob3B0aW9uc1sxXSk7XHJcbiAgICAgICAgc29ydE9wdGlvbnMucHVzaChvcHRpb25zWzJdKTtcclxuICAgICAgICBzb3J0T3B0aW9ucy5wdXNoKG9wdGlvbnNbM10pO1xyXG4gICAgICAgIHNvcnRPcHRpb25zLnB1c2gob3B0aW9uc1s1XSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgc29ydE9wdGlvbnMucHVzaChvcHRpb25zWzBdKTtcclxuICAgICAgICBzb3J0T3B0aW9ucy5wdXNoKG9wdGlvbnNbMV0pO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBzb3J0T3B0aW9ucy5wdXNoKG9wdGlvbnNbMF0pO1xyXG4gICAgICBzb3J0T3B0aW9ucy5wdXNoKG9wdGlvbnNbMV0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHNvcnRPcHRpb25zO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDbGlwcGVyU2VhcmNoVXRpbHMge1xyXG5cclxuICAvKipcclxuICAgKiBDbGVhciB0aGUgc2VhcmNoIHBhcmFtcyBvYmplY3RcclxuICAgKiBAcGFyYW0gcGFyYW1zIDogdGhlIHNlYXJjaCBwYXJhbXMgdG8gY2xlYXJcclxuICAgKi9cclxuICBzdGF0aWMgY2xlYXIocGFyYW1zOiBDbGlwcGVyU2VhcmNoUGFyYW1zKSB7XHJcbiAgICBwYXJhbXMuc2VjdG9yID0gbnVsbDtcclxuICAgIHBhcmFtcy5zZWN0b3JzID0gbnVsbDtcclxuICAgIHBhcmFtcy5hdXRob3IgPSBudWxsO1xyXG4gICAgcGFyYW1zLmF1dGhvcnMgPSBudWxsO1xyXG4gICAgcGFyYW1zLnRvcGljID0gbnVsbDtcclxuICAgIHBhcmFtcy50b3BpY3MgPSBudWxsO1xyXG4gICAgcGFyYW1zLnRheG9ub215ID0gbnVsbDtcclxuICAgIHBhcmFtcy50YXhvbm9taWVzID0gbnVsbDtcclxuICAgIHBhcmFtcy50YXhvbm9teVBhdGggPSBudWxsO1xyXG4gICAgcGFyYW1zLnRheG9ub215Tm9kZSA9IG51bGw7XHJcbiAgICBwYXJhbXMubnVtYmVyID0gbnVsbDtcclxuICAgIHBhcmFtcy5mcm9tRGF0ZSA9IG51bGw7XHJcbiAgICBwYXJhbXMudG9EYXRlID0gbnVsbDtcclxuICAgIHBhcmFtcy55ZWFyID0gbnVsbDtcclxuICAgIHBhcmFtcy5zb3VyY2VOdW1iZXIgPSBudWxsO1xyXG4gICAgcGFyYW1zLnNvdXJjZSA9IG51bGw7XHJcbiAgICBwYXJhbXMuc291cmNlRnJvbURhdGUgPSBudWxsO1xyXG4gICAgcGFyYW1zLnNvdXJjZVRvRGF0ZSA9IG51bGw7XHJcbiAgICBwYXJhbXMuc291cmNlWWVhciA9IG51bGw7XHJcbiAgICBwYXJhbXMudGFncyA9IG51bGw7XHJcbiAgICBwYXJhbXMudGV4dCA9IG51bGw7XHJcbiAgICBwYXJhbXMuYXVnbWVudGVkVGV4dCA9IG51bGw7XHJcbiAgICBwYXJhbXMudGl0bGVPbmx5ID0gZmFsc2U7XHJcbiAgICBwYXJhbXMudHlwZSA9IG51bGw7XHJcbiAgICBwYXJhbXMudHlwZXMgPSBudWxsO1xyXG4gICAgcGFyYW1zLnNob3dVbnJlYWREb2N1bWVudHNPbmx5ID0gZmFsc2U7XHJcbiAgICBwYXJhbXMuc2hvd0NvbW1lbnRlZERvY3VtZW50c09ubHkgPSBmYWxzZTtcclxuICAgIHBhcmFtcy5zaG93Tm90QWJyb2dhdGVkRG9jdW1lbnRzT25seSA9IGZhbHNlO1xyXG4gICAgcGFyYW1zLmV4cGFuZFRleHRRdWVyeVVzaW5nQUkgPSBmYWxzZTtcclxuICAgIHBhcmFtcy5jaGFubmVscyA9IFsuLi5DbGlwcGVyQ2hhbm5lbHNdO1xyXG4gICAgcGFyYW1zLmNoYW5nZVJlYXNvbiA9IG51bGw7XHJcbiAgICBwYXJhbXMuY2hhbmdlZE51bWJlciA9IG51bGw7XHJcbiAgICBwYXJhbXMuY2hhbmdlZFllYXIgPSBudWxsO1xyXG4gICAgcGFyYW1zLmNoYW5nZWRUaXRsZSA9IG51bGw7XHJcbiAgICBwYXJhbXMubW9kaWZpZXJOdW1iZXIgPSBudWxsO1xyXG4gICAgcGFyYW1zLm1vZGlmaWVyWWVhciA9IG51bGw7XHJcbiAgICBwYXJhbXMubW9kaWZpZXJUaXRsZSA9IG51bGw7XHJcbiAgICBwYXJhbXMubW9kZWwgPSBudWxsO1xyXG4gICAgcGFyYW1zLm1vZGVscyA9IG51bGw7XHJcbiAgICBwYXJhbXMubW9kdWxlID0gbnVsbDtcclxuICAgIHBhcmFtcy5tb2R1bGVzID0gbnVsbDtcclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiBHZXQgaHRlIG1vZGVsIGxpc3QgcmVsYXRlZCB0byBhIGxpc3Qgb2YgbW9kdWxlc1xyXG4gICAqIEBwYXJhbSBtb2R1bGVzOiB0aGUgbW9kdWxlcyB0byBjaGVja1xyXG4gICAqIEBwYXJtYSBzaW5nbGU6IHRydWUgdG8gc2VsZWN0IG9ubHkgdGhlIG1vc3QgcmVwcmVzZW50YXRpdmVcclxuICAgKiBAcmV0dXJucyB0aGUgbGlzdCBmbyBtb2RlbHNcclxuICAgKi9cclxuICBzdGF0aWMgZ2V0TW9kdWxlc01vZGVscyhcclxuICAgIG1vZHVsZXM6IE5hbWVWYWx1ZUl0ZW08Q2xpcHBlck1vZHVsZT5bXSB8IG51bGwgfCB1bmRlZmluZWQsXHJcbiAgICBzaW5nbGU6IGJvb2xlYW4gfCBudWxsID0gZmFsc2UpOiBDbGlwcGVyTW9kZWxbXSB7XHJcbiAgICBjb25zdCBtb2RlbHM6IENsaXBwZXJNb2RlbFtdID0gW107XHJcbiAgICBpZiAoKG1vZHVsZXM/Lmxlbmd0aCA/PyAwKSA+IDApIHtcclxuICAgICAgbW9kdWxlcz8uZm9yRWFjaChtb2R1bGUgPT4ge1xyXG4gICAgICAgIHN3aXRjaCAobW9kdWxlLnZhbHVlKSB7XHJcbiAgICAgICAgICBjYXNlIENsaXBwZXJNb2R1bGUuU2NhZGVuemVFU2VnbmFsYXppb25pOlxyXG4gICAgICAgICAgICBbQ2xpcHBlck1vZGVsLlNjYWRlbnplLCBDbGlwcGVyTW9kZWwuU2VnbmFsYXppb25pXS5mb3JFYWNoKHggPT4gbW9kZWxzLnB1c2goeCkpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgQ2xpcHBlck1vZHVsZS5RdWVzaXRpRUNhc2lSaXNvbHRpOlxyXG4gICAgICAgICAgICBtb2RlbHMucHVzaChDbGlwcGVyTW9kZWwuUXVlc2l0aSk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBDbGlwcGVyTW9kdWxlLk5ld3M6ICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIHNpbmdsZVxyXG4gICAgICAgICAgICAgID8gbW9kZWxzLnB1c2goQ2xpcHBlck1vZGVsLk5ld3MpXHJcbiAgICAgICAgICAgICAgOiBbQ2xpcHBlck1vZGVsLkFydGljb2xpLCBDbGlwcGVyTW9kZWwuTmV3cywgQ2xpcHBlck1vZGVsLkp1cmlzXS5mb3JFYWNoKHggPT4gbW9kZWxzLnB1c2goeCkpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgQ2xpcHBlck1vZHVsZS5BcHByb2ZvbmRpbWVudGk6XHJcbiAgICAgICAgICAgIG1vZGVscy5wdXNoKENsaXBwZXJNb2RlbC5BcnRpY29saSk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBDbGlwcGVyTW9kdWxlLkFsbGVydGVBbGltZW50YXJpOlxyXG4gICAgICAgICAgICBtb2RlbHMucHVzaChDbGlwcGVyTW9kZWwuQWxsZXJ0ZUFsaW1lbnRhcmkpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgQ2xpcHBlck1vZHVsZS5HYXp6ZXR0ZUJvbGxldHRpbmlFRm9udGlEaXZlcnNlOlxyXG4gICAgICAgICAgICBtb2RlbHMucHVzaChDbGlwcGVyTW9kZWwuQWdnaW9ybmFtZW50b05vcm1hdGl2byk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBDbGlwcGVyTW9kdWxlLk5vcm1hdGl2YVZpZ2VudGU6XHJcbiAgICAgICAgICAgIG1vZGVscy5wdXNoKENsaXBwZXJNb2RlbC5Ob3JtYXRpdmFWaWdlbnRlKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlIENsaXBwZXJNb2R1bGUuTW9kaWZpY2hlQWJyb2dhemlvbmlFUmludmlpOlxyXG4gICAgICAgICAgICBtb2RlbHMucHVzaChDbGlwcGVyTW9kZWwuQ29vcmRpbmFtZW50byk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBDbGlwcGVyTW9kdWxlLkdpdXJpc3BydWRlbnphOlxyXG4gICAgICAgICAgICBtb2RlbHMucHVzaChDbGlwcGVyTW9kZWwuSnVyaXMpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG1vZGVscztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrIGlmIGN1cnJlbnQgZmlsdGVyIGlzIGEgdGV4dCBiYXNlZCBzZWFyY2ggXHJcbiAgICogQHBhcmFtIHBhcmFtcyA6IHRoZSBzZWFyY2ggcGFyYW1zIHRvIGNoZWNrXHJcbiAgICogQHJldHVybnMgdHJ1ZSBpZiBpcyBhIHRleHQgYmFzZWQgc2VhcmNoXHJcbiAgICovXHJcbiAgc3RhdGljIGlzVGV4dFF1ZXJ5KHBhcmFtczogQ2xpcHBlclNlYXJjaFBhcmFtcyk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHBhcmFtcy50ZXh0ICE9IG51bGwgJiYgcGFyYW1zLnRleHQ/Lmxlbmd0aCA+IDA7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUcnkgdG8gYWRkIGEgcXVlcnlcclxuICAgKiBAcGFyYW0gcSA6IHRoZSBuZXcgcXVlcnlcclxuICAgKiBAcGFyYW0gcXVlcmllcyA6IHRoZSBuZXcgcXVlcnlcclxuICAgICAgICAgICovXHJcbiAgcHJpdmF0ZSBzdGF0aWMgY29uY2F0VGV4dFF1ZXJ5KHE6IHN0cmluZywgcXVlcmllczogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGlmIChxICYmIHEubGVuZ3RoID4gMCkge1xyXG4gICAgICBpZiAocXVlcmllcy5sZW5ndGggPT0gMCAmJiAocVswXSA9PT0gJysnIHx8IHFbMF0gPT09ICctJykpXHJcbiAgICAgICAgcSA9IHEuc3Vic3RyaW5nKDEpO1xyXG4gICAgICBpZiAocVtxLmxlbmd0aCAtIDFdICE9PSAnXFxcIicgJiYgcS5pbmRleE9mKCcgJykgIT09IC0xKVxyXG4gICAgICAgIHEgPSBcIlxcXCJcIiArIHEgKyBcIlxcXCJcIjtcclxuICAgICAgaWYgKHF1ZXJpZXMubGVuZ3RoID4gMCkgcXVlcmllcyArPSBcIiwgXCI7XHJcbiAgICAgIHF1ZXJpZXMgKz0gcTtcclxuICAgIH1cclxuICAgIHJldHVybiBxdWVyaWVzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTm9ybWFsaXplIHRleHQgcXVlcnlcclxuICAgKiBAcGFyYW0gdGV4dCA6IHRoZSB0ZXh0IHF1ZXJ5IHRvIG5vcm1hbGl6ZVxyXG4gICAqIEByZXR1cm5zIDogdGhlIHRleHQgbm9ybWFsaXplZCBvciBudWxsXHJcbiAgICovXHJcbiAgc3RhdGljIG5vcm1hbGl6ZVRleHRRdWVyeSh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIGlmICghdGV4dCB8fCB0ZXh0Lmxlbmd0aCA9PT0gMCkgcmV0dXJuIG51bGw7XHJcbiAgICBsZXQgcTogc3RyaW5nID0gJyc7XHJcbiAgICBsZXQgcXVlcmllczogc3RyaW5nID0gJyc7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKHRleHRbaV0gPT09ICcsJykge1xyXG4gICAgICAgIHF1ZXJpZXMgPSB0aGlzLmNvbmNhdFRleHRRdWVyeShxLnRyaW0oKSwgcXVlcmllcyk7XHJcbiAgICAgICAgcSA9ICcnO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgcSArPSB0ZXh0W2ldO1xyXG4gICAgfVxyXG4gICAgcXVlcmllcyA9IHRoaXMuY29uY2F0VGV4dFF1ZXJ5KHEudHJpbSgpLCBxdWVyaWVzKTtcclxuICAgIHJldHVybiBxdWVyaWVzO1xyXG4gIH1cclxufSJdfQ==