@pepperi-addons/ngx-lib 0.4.0-angular14.9 → 0.4.0-beta.3

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 (234) hide show
  1. package/chips/chips.component.d.ts +93 -0
  2. package/chips/chips.component.theme.scss +58 -0
  3. package/chips/chips.model.d.ts +13 -0
  4. package/chips/chips.module.d.ts +20 -0
  5. package/chips/chips.service.d.ts +15 -0
  6. package/{plugin → chips}/index.d.ts +1 -1
  7. package/chips/public-api.d.ts +3 -0
  8. package/color/color-picker.component.d.ts +1 -1
  9. package/core/common/model/wapi.model.d.ts +1 -0
  10. package/core/common/services/addon.service.d.ts +13 -9
  11. package/core/common/services/utilities.service.d.ts +5 -4
  12. package/core/customization/customization.model.d.ts +7 -0
  13. package/esm2020/address/address.component.mjs +1 -1
  14. package/esm2020/attachment/attachment.component.mjs +1 -1
  15. package/esm2020/checkbox/checkbox.component.mjs +1 -1
  16. package/esm2020/chips/chips.component.mjs +158 -0
  17. package/esm2020/chips/chips.model.mjs +2 -0
  18. package/esm2020/chips/chips.module.mjs +81 -0
  19. package/esm2020/chips/chips.service.mjs +44 -0
  20. package/esm2020/chips/pepperi-addons-ngx-lib-chips.mjs +5 -0
  21. package/esm2020/chips/public-api.mjs +7 -0
  22. package/esm2020/color/color-picker.component.mjs +4 -4
  23. package/esm2020/color/color.component.mjs +1 -1
  24. package/esm2020/core/common/model/wapi.model.mjs +1 -1
  25. package/esm2020/core/common/services/addon.service.mjs +43 -38
  26. package/esm2020/core/common/services/utilities.service.mjs +66 -13
  27. package/esm2020/core/customization/customization.model.mjs +10 -1
  28. package/esm2020/core/http/interceptors/loader.interceptor.mjs +4 -5
  29. package/esm2020/core/http/services/loader.service.mjs +4 -4
  30. package/esm2020/date/date.component.mjs +3 -3
  31. package/esm2020/field-title/field-title.component.mjs +6 -3
  32. package/esm2020/form/field-generator.component.mjs +7 -7
  33. package/esm2020/form/form.component.mjs +12 -3
  34. package/esm2020/form/internal-button.component.mjs +1 -1
  35. package/esm2020/form/internal-field-generator.component.mjs +3 -3
  36. package/esm2020/form/internal-form.component.mjs +4 -2
  37. package/esm2020/form/internal-list.component.mjs +5 -2
  38. package/esm2020/group-buttons/group-buttons.component.mjs +8 -4
  39. package/esm2020/icon/icon-generated-all.model.mjs +8 -1
  40. package/esm2020/icon/icon-generated.model.mjs +29 -1
  41. package/esm2020/image/image.component.mjs +1 -1
  42. package/esm2020/images-filmstrip/images-filmstrip.component.mjs +3 -91
  43. package/esm2020/images-filmstrip/images-filmstrip.module.mjs +1 -56
  44. package/esm2020/link/link.component.mjs +1 -1
  45. package/esm2020/list/list-pager.component.mjs +1 -1
  46. package/esm2020/list/list.component.mjs +5 -2
  47. package/esm2020/list/virtual-scroller.mjs +11 -10
  48. package/esm2020/menu/menu.component.mjs +11 -3
  49. package/esm2020/page-layout/page-layout.component.mjs +3 -3
  50. package/esm2020/profile-data-views-list/profile-data-views-list.component.mjs +1 -1
  51. package/esm2020/quantity-selector/quantity-selector.component.mjs +24 -4
  52. package/esm2020/query-builder/query-builder-item/query-builder-item.component.mjs +1 -1
  53. package/esm2020/query-builder/query-builder-section/query-builder-section.component.mjs +1 -1
  54. package/esm2020/remote-loader/addon-block-loader.component.mjs +23 -5
  55. package/esm2020/remote-loader/addon-block-loader.service.mjs +9 -8
  56. package/esm2020/remote-loader/public-api.mjs +2 -1
  57. package/esm2020/remote-loader/remote-loader-element.component.mjs +109 -0
  58. package/esm2020/remote-loader/remote-loader.component.mjs +37 -59
  59. package/esm2020/remote-loader/remote-loader.model.mjs +1 -1
  60. package/esm2020/remote-loader/remote-loader.module.mjs +12 -3
  61. package/esm2020/remote-loader/remote-loader.service.mjs +50 -26
  62. package/esm2020/rich-html-textarea/rich-html-textarea.component.mjs +1 -1
  63. package/esm2020/select/select.component.mjs +33 -7
  64. package/esm2020/side-bar/side-bar.component.mjs +11 -27
  65. package/esm2020/side-bar/side-bar.module.mjs +7 -3
  66. package/esm2020/signature/signature.component.mjs +1 -1
  67. package/esm2020/size-detector/size-detector.component.mjs +2 -2
  68. package/esm2020/slider/slider.component.mjs +1 -1
  69. package/esm2020/smart-filters/boolean-filter/boolean-filter.component.mjs +1 -1
  70. package/esm2020/smart-filters/date-filter/date-filter.component.mjs +1 -1
  71. package/esm2020/smart-filters/multi-select-filter/multi-select-filter.component.mjs +1 -1
  72. package/esm2020/smart-filters/number-filter/number-filter.component.mjs +3 -3
  73. package/esm2020/smart-filters/text-filter/text-filter.component.mjs +1 -1
  74. package/esm2020/textarea/textarea.component.mjs +1 -1
  75. package/esm2020/textbox/textbox.component.mjs +48 -7
  76. package/esm2020/textbox-icon/textbox-icon.component.mjs +2 -2
  77. package/fesm2015/pepperi-addons-ngx-lib-address.mjs +1 -1
  78. package/fesm2015/pepperi-addons-ngx-lib-address.mjs.map +1 -1
  79. package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs +1 -1
  80. package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs.map +1 -1
  81. package/fesm2015/pepperi-addons-ngx-lib-checkbox.mjs +1 -1
  82. package/fesm2015/pepperi-addons-ngx-lib-checkbox.mjs.map +1 -1
  83. package/fesm2015/pepperi-addons-ngx-lib-chips.mjs +287 -0
  84. package/fesm2015/pepperi-addons-ngx-lib-chips.mjs.map +1 -0
  85. package/fesm2015/pepperi-addons-ngx-lib-color.mjs +4 -4
  86. package/fesm2015/pepperi-addons-ngx-lib-color.mjs.map +1 -1
  87. package/fesm2015/pepperi-addons-ngx-lib-date.mjs +2 -2
  88. package/fesm2015/pepperi-addons-ngx-lib-date.mjs.map +1 -1
  89. package/fesm2015/pepperi-addons-ngx-lib-field-title.mjs +5 -2
  90. package/fesm2015/pepperi-addons-ngx-lib-field-title.mjs.map +1 -1
  91. package/fesm2015/pepperi-addons-ngx-lib-form.mjs +23 -12
  92. package/fesm2015/pepperi-addons-ngx-lib-form.mjs.map +1 -1
  93. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.mjs +7 -3
  94. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.mjs.map +1 -1
  95. package/fesm2015/pepperi-addons-ngx-lib-icon.mjs +36 -1
  96. package/fesm2015/pepperi-addons-ngx-lib-icon.mjs.map +1 -1
  97. package/fesm2015/pepperi-addons-ngx-lib-image.mjs +1 -1
  98. package/fesm2015/pepperi-addons-ngx-lib-image.mjs.map +1 -1
  99. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs +2 -129
  100. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -1
  101. package/fesm2015/pepperi-addons-ngx-lib-link.mjs +1 -1
  102. package/fesm2015/pepperi-addons-ngx-lib-link.mjs.map +1 -1
  103. package/fesm2015/pepperi-addons-ngx-lib-list.mjs +15 -11
  104. package/fesm2015/pepperi-addons-ngx-lib-list.mjs.map +1 -1
  105. package/fesm2015/pepperi-addons-ngx-lib-menu.mjs +10 -2
  106. package/fesm2015/pepperi-addons-ngx-lib-menu.mjs.map +1 -1
  107. package/fesm2015/pepperi-addons-ngx-lib-page-layout.mjs +2 -2
  108. package/fesm2015/pepperi-addons-ngx-lib-page-layout.mjs.map +1 -1
  109. package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs +1 -1
  110. package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +1 -1
  111. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs +23 -3
  112. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs.map +1 -1
  113. package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs +2 -2
  114. package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
  115. package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs +249 -105
  116. package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -1
  117. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.mjs +1 -1
  118. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.mjs.map +1 -1
  119. package/fesm2015/pepperi-addons-ngx-lib-select.mjs +32 -6
  120. package/fesm2015/pepperi-addons-ngx-lib-select.mjs.map +1 -1
  121. package/fesm2015/pepperi-addons-ngx-lib-side-bar.mjs +15 -27
  122. package/fesm2015/pepperi-addons-ngx-lib-side-bar.mjs.map +1 -1
  123. package/fesm2015/pepperi-addons-ngx-lib-signature.mjs +1 -1
  124. package/fesm2015/pepperi-addons-ngx-lib-signature.mjs.map +1 -1
  125. package/fesm2015/pepperi-addons-ngx-lib-size-detector.mjs +1 -1
  126. package/fesm2015/pepperi-addons-ngx-lib-size-detector.mjs.map +1 -1
  127. package/fesm2015/pepperi-addons-ngx-lib-slider.mjs +1 -1
  128. package/fesm2015/pepperi-addons-ngx-lib-slider.mjs.map +1 -1
  129. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs +6 -6
  130. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
  131. package/fesm2015/pepperi-addons-ngx-lib-textarea.mjs +1 -1
  132. package/fesm2015/pepperi-addons-ngx-lib-textarea.mjs.map +1 -1
  133. package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.mjs +1 -1
  134. package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.mjs.map +1 -1
  135. package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs +49 -8
  136. package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
  137. package/fesm2015/pepperi-addons-ngx-lib.mjs +128 -57
  138. package/fesm2015/pepperi-addons-ngx-lib.mjs.map +1 -1
  139. package/fesm2020/pepperi-addons-ngx-lib-address.mjs +1 -1
  140. package/fesm2020/pepperi-addons-ngx-lib-address.mjs.map +1 -1
  141. package/fesm2020/pepperi-addons-ngx-lib-attachment.mjs +1 -1
  142. package/fesm2020/pepperi-addons-ngx-lib-attachment.mjs.map +1 -1
  143. package/fesm2020/pepperi-addons-ngx-lib-checkbox.mjs +1 -1
  144. package/fesm2020/pepperi-addons-ngx-lib-checkbox.mjs.map +1 -1
  145. package/fesm2020/pepperi-addons-ngx-lib-chips.mjs +287 -0
  146. package/fesm2020/pepperi-addons-ngx-lib-chips.mjs.map +1 -0
  147. package/fesm2020/pepperi-addons-ngx-lib-color.mjs +4 -4
  148. package/fesm2020/pepperi-addons-ngx-lib-color.mjs.map +1 -1
  149. package/fesm2020/pepperi-addons-ngx-lib-date.mjs +2 -2
  150. package/fesm2020/pepperi-addons-ngx-lib-date.mjs.map +1 -1
  151. package/fesm2020/pepperi-addons-ngx-lib-field-title.mjs +5 -2
  152. package/fesm2020/pepperi-addons-ngx-lib-field-title.mjs.map +1 -1
  153. package/fesm2020/pepperi-addons-ngx-lib-form.mjs +26 -12
  154. package/fesm2020/pepperi-addons-ngx-lib-form.mjs.map +1 -1
  155. package/fesm2020/pepperi-addons-ngx-lib-group-buttons.mjs +7 -3
  156. package/fesm2020/pepperi-addons-ngx-lib-group-buttons.mjs.map +1 -1
  157. package/fesm2020/pepperi-addons-ngx-lib-icon.mjs +36 -1
  158. package/fesm2020/pepperi-addons-ngx-lib-icon.mjs.map +1 -1
  159. package/fesm2020/pepperi-addons-ngx-lib-image.mjs +1 -1
  160. package/fesm2020/pepperi-addons-ngx-lib-image.mjs.map +1 -1
  161. package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs +2 -129
  162. package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -1
  163. package/fesm2020/pepperi-addons-ngx-lib-link.mjs +1 -1
  164. package/fesm2020/pepperi-addons-ngx-lib-link.mjs.map +1 -1
  165. package/fesm2020/pepperi-addons-ngx-lib-list.mjs +15 -11
  166. package/fesm2020/pepperi-addons-ngx-lib-list.mjs.map +1 -1
  167. package/fesm2020/pepperi-addons-ngx-lib-menu.mjs +10 -2
  168. package/fesm2020/pepperi-addons-ngx-lib-menu.mjs.map +1 -1
  169. package/fesm2020/pepperi-addons-ngx-lib-page-layout.mjs +2 -2
  170. package/fesm2020/pepperi-addons-ngx-lib-page-layout.mjs.map +1 -1
  171. package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs +1 -1
  172. package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +1 -1
  173. package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs +23 -3
  174. package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs.map +1 -1
  175. package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs +2 -2
  176. package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
  177. package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs +230 -98
  178. package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -1
  179. package/fesm2020/pepperi-addons-ngx-lib-rich-html-textarea.mjs +1 -1
  180. package/fesm2020/pepperi-addons-ngx-lib-rich-html-textarea.mjs.map +1 -1
  181. package/fesm2020/pepperi-addons-ngx-lib-select.mjs +32 -6
  182. package/fesm2020/pepperi-addons-ngx-lib-select.mjs.map +1 -1
  183. package/fesm2020/pepperi-addons-ngx-lib-side-bar.mjs +15 -27
  184. package/fesm2020/pepperi-addons-ngx-lib-side-bar.mjs.map +1 -1
  185. package/fesm2020/pepperi-addons-ngx-lib-signature.mjs +1 -1
  186. package/fesm2020/pepperi-addons-ngx-lib-signature.mjs.map +1 -1
  187. package/fesm2020/pepperi-addons-ngx-lib-size-detector.mjs +1 -1
  188. package/fesm2020/pepperi-addons-ngx-lib-size-detector.mjs.map +1 -1
  189. package/fesm2020/pepperi-addons-ngx-lib-slider.mjs +1 -1
  190. package/fesm2020/pepperi-addons-ngx-lib-slider.mjs.map +1 -1
  191. package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs +6 -6
  192. package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
  193. package/fesm2020/pepperi-addons-ngx-lib-textarea.mjs +1 -1
  194. package/fesm2020/pepperi-addons-ngx-lib-textarea.mjs.map +1 -1
  195. package/fesm2020/pepperi-addons-ngx-lib-textbox-icon.mjs +1 -1
  196. package/fesm2020/pepperi-addons-ngx-lib-textbox-icon.mjs.map +1 -1
  197. package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs +48 -8
  198. package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
  199. package/fesm2020/pepperi-addons-ngx-lib.mjs +125 -58
  200. package/fesm2020/pepperi-addons-ngx-lib.mjs.map +1 -1
  201. package/field-title/field-title.component.d.ts +2 -1
  202. package/form/field-generator.component.d.ts +1 -1
  203. package/group-buttons/group-buttons.component.d.ts +2 -1
  204. package/icon/icon-generated-all.model.d.ts +7 -0
  205. package/icon/icon-generated.model.d.ts +29 -1
  206. package/menu/menu.component.d.ts +2 -0
  207. package/package.json +14 -13
  208. package/page-layout/page-layout.component.d.ts +1 -1
  209. package/quantity-selector/quantity-selector.component.d.ts +7 -1
  210. package/remote-loader/addon-block-loader.component.d.ts +10 -6
  211. package/remote-loader/addon-block-loader.service.d.ts +2 -3
  212. package/remote-loader/public-api.d.ts +1 -0
  213. package/remote-loader/remote-loader-element.component.d.ts +30 -0
  214. package/remote-loader/remote-loader.component.d.ts +3 -5
  215. package/remote-loader/remote-loader.model.d.ts +16 -11
  216. package/remote-loader/remote-loader.module.d.ts +8 -6
  217. package/remote-loader/remote-loader.service.d.ts +5 -7
  218. package/select/select.component.d.ts +10 -4
  219. package/side-bar/side-bar.component.d.ts +3 -3
  220. package/src/assets/i18n/en.ngx-lib.json +4 -0
  221. package/src/core/style/components/checkbox.scss +20 -1
  222. package/src/core/style/components/general.scss +5 -4
  223. package/textbox/textbox.component.d.ts +16 -1
  224. package/esm2020/plugin/pepperi-addons-ngx-lib-plugin.mjs +0 -5
  225. package/esm2020/plugin/plugin-proxy.component.mjs +0 -90
  226. package/esm2020/plugin/plugin.model.mjs +0 -2
  227. package/esm2020/plugin/public-api.mjs +0 -6
  228. package/fesm2015/pepperi-addons-ngx-lib-plugin.mjs +0 -107
  229. package/fesm2015/pepperi-addons-ngx-lib-plugin.mjs.map +0 -1
  230. package/fesm2020/pepperi-addons-ngx-lib-plugin.mjs +0 -101
  231. package/fesm2020/pepperi-addons-ngx-lib-plugin.mjs.map +0 -1
  232. package/plugin/plugin-proxy.component.d.ts +0 -22
  233. package/plugin/plugin.model.d.ts +0 -5
  234. package/plugin/public-api.d.ts +0 -2
@@ -197,8 +197,8 @@ export class PepColorPickerComponent {
197
197
  this.currentLightnessMin,
198
198
  });
199
199
  }
200
- onColorValueChange(event) {
201
- this.convertValueStringToColor(event.value);
200
+ onColorValueChange(color) {
201
+ this.convertValueStringToColor(color);
202
202
  }
203
203
  onSave(event) {
204
204
  const color = this.checkAAComplient
@@ -213,7 +213,7 @@ export class PepColorPickerComponent {
213
213
  }
214
214
  PepColorPickerComponent.CURRENT_HUE = '--pep-color-picker-current-hue';
215
215
  PepColorPickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepColorPickerComponent, deps: [{ token: i1.PepColorService }, { token: i2.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
216
- PepColorPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepColorPickerComponent, selector: "ng-component", ngImport: i0, template: "<div class=\"pep-color-picker-container\">\n <pep-dialog [title]=\"'COLOR.DIALOG_TITLE' | translate\" (close)=\"closeDialog($event)\">\n <ng-container pep-dialog-content>\n <div class=\"color-chooser-content\">\n <div class=\"current-color\" [ngStyle]=\"{ 'background': data?.value ? data.value : 'transparent' }\"></div>\n\n <pep-slider class=\"slider-box\" [label]=\"'COLOR.CHANGE_HUE' | translate\" [minValue]=\"currentHueMin\"\n [maxValue]=\"currentHueMax\" [value]=\"currentHue\" [background]=\"currentHueBackground\"\n (valueChange)=\"onHueChange($event)\">\n </pep-slider>\n <pep-slider class=\"slider-box\" [label]=\"'COLOR.CHANGE_SATURATION' | translate\"\n [minValue]=\"currentSaturationMin\" [maxValue]=\"currentSaturationMax\" [value]=\"currentSaturation\"\n [background]=\"currentSaturationBackground\" (valueChange)=\"onSaturationChange($event)\">\n </pep-slider>\n <pep-slider class=\"slider-box\" [label]=\"'COLOR.CHANGE_LIGHTNESS' | translate\"\n [minValue]=\"currentLightnessMin\" [maxValue]=\"currentLightnessMax\"\n [value]=\"currentLightnessMax - currentLightness + currentLightnessMin\"\n [background]=\"currentLightnessBackground\" (valueChange)=\"onLightnessChange($event)\">\n </pep-slider>\n </div>\n <div class=\"color-value-content\">\n <div class=\"color-value\" [ngClass]=\"{ 'with-complient': checkAAComplient }\">\n <pep-textbox [key]=\"'colorValue'\" [label]=\"'COLOR.ADD_VALUE_HERE' | translate \"\n [formattedValue]=\"data?.value\" [value]=\"data?.value\" (valueChange)=\"onColorValueChange($event)\">\n </pep-textbox>\n </div>\n <div *ngIf=\"checkAAComplient\" class=\"color-complient-container\">\n <pep-field-title [label]=\"'COLOR.AA_COMPLIENT' | translate \">\n </pep-field-title>\n <div class=\"color-complient\" [ngStyle]=\"{ 'background': complientColor }\">\n <mat-icon *ngIf=\"isUserChooseAAComplientColor\">\n <pep-icon name=\"system_ok\">\n </pep-icon>\n </mat-icon>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-container pep-dialog-actions>\n <div class=\"color-actions pep-spacing-element-negative\">\n <mat-checkbox *ngIf=\"data.showAAComplient\" class=\"pep-spacing-element\" type=\"checkbox\"\n id=\"checkAAComplient\" (change)=\"checkAAComplient = !checkAAComplient\" [checked]=\"checkAAComplient\">\n <span class=\"body-xs ellipsis\">{{ 'COLOR.AA_COMPLIENT' | translate }}</span>\n </mat-checkbox>\n <div>\n <button mat-button [mat-dialog-close]=\"null\" class=\"pep-spacing-element pep-button md weak\">\n {{'ACTIONS.CANCEL' | translate}}\n </button>\n <button mat-button class=\"pep-spacing-element pep-button md strong\" (click)=\"onSave($event)\">\n {{'ACTIONS.OK' | translate}}\n </button>\n </div>\n </div>\n </ng-container>\n </pep-dialog>\n</div>", styles: [".mat-slider-track-background,.mat-slider-horizontal .mat-slider-track-fill{display:none}.pepperi-color-picker-container ::ng-deep .mat-dialog-content,.pep-color-picker-container ::ng-deep .mat-dialog-content{padding:var(--pep-spacing-sm, .5rem) var(--pep-spacing-sm, .5rem) 0}.pepperi-color-picker-container .color-chooser-content,.pep-color-picker-container .color-chooser-content{display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(3,1fr);grid-column-gap:var(--pep-spacing-xl, 1.5rem);grid-row-gap:var(--pep-spacing-sm, .5rem);margin-top:var(--pep-spacing-sm, .5rem)}.pepperi-color-picker-container .color-chooser-content .current-color,.pep-color-picker-container .color-chooser-content .current-color{grid-row:1/span 3;grid-column:6/span 4;border-radius:var(--pep-border-radius-md, .25rem);width:9.25rem;height:9.25rem}.pepperi-color-picker-container .color-chooser-content .slider-box,.pep-color-picker-container .color-chooser-content .slider-box{grid-column:1/span 5}.pepperi-color-picker-container .color-value-content,.pep-color-picker-container .color-value-content{display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(1,1fr);grid-column-gap:var(--pep-spacing-xl, 1.5rem);grid-row-gap:var(--pep-spacing-sm, .5rem);margin-top:1.5rem}.pepperi-color-picker-container .color-value-content .color-value,.pep-color-picker-container .color-value-content .color-value{grid-row:1/span 1;grid-column:1/span 9}.pepperi-color-picker-container .color-value-content .color-value.with-complient,.pep-color-picker-container .color-value-content .color-value.with-complient{grid-column:1/span 5}.pepperi-color-picker-container .color-value-content .color-complient-container,.pep-color-picker-container .color-value-content .color-complient-container{grid-column:6/span 4}.pepperi-color-picker-container .color-value-content .color-complient-container .color-complient,.pep-color-picker-container .color-value-content .color-complient-container .color-complient{display:flex;justify-content:center;align-items:center;border-radius:var(--pep-border-radius-md, .25rem);height:var(--pep-form-field-height, 2.5rem);width:9.25rem}.pepperi-color-picker-container ::ng-deep .mat-dialog-actions,.pep-color-picker-container ::ng-deep .mat-dialog-actions{display:block}.pepperi-color-picker-container ::ng-deep .mat-dialog-actions .color-actions,.pep-color-picker-container ::ng-deep .mat-dialog-actions .color-actions{display:flex;justify-content:space-between;align-items:center}\n", ".pepperi-color-picker-container .color-value-content .color-complient-container .color-complient ::ng-deep .mat-icon .svg-icon,.pep-color-picker-container .color-value-content .color-complient-container .color-complient ::ng-deep .mat-icon .svg-icon{fill:hsl(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%))}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i2.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7.PepDialogComponent, selector: "pep-dialog", inputs: ["title", "showClose", "showHeader", "showFooter"], outputs: ["close"] }, { kind: "component", type: i8.PepIconComponent, selector: "pep-icon", inputs: ["spin", "name", "fill"] }, { kind: "component", type: i9.PepSliderComponent, selector: "pep-slider", inputs: ["label", "disabled", "hint", "background", "step", "minValue", "maxValue", "value"], outputs: ["valueChange", "inputChange"] }, { kind: "component", type: i10.PepFieldTitleComponent, selector: "pep-field-title", inputs: ["label", "mandatory", "disabled", "maxFieldCharacters", "hint", "xAlignment", "showTitle", "inputLength"] }, { kind: "component", type: i11.PepTextboxComponent, selector: "pep-textbox", inputs: ["key", "value", "formattedValue", "accessory", "label", "placeholder", "type", "mandatory", "disabled", "readonly", "maxFieldCharacters", "hint", "textColor", "xAlignment", "rowSpan", "minValue", "maxValue", "visible", "form", "isActive", "showTitle", "renderTitle", "renderError", "renderSymbol", "layoutType", "parentFieldKey"], outputs: ["valueChange", "formValidationChange"] }, { kind: "pipe", type: i12.TranslatePipe, name: "translate" }] });
216
+ PepColorPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepColorPickerComponent, selector: "ng-component", ngImport: i0, template: "<div class=\"pep-color-picker-container\">\n <pep-dialog [title]=\"'COLOR.DIALOG_TITLE' | translate\" (close)=\"closeDialog($event)\">\n <ng-container pep-dialog-content>\n <div class=\"color-chooser-content\">\n <div class=\"current-color\" [ngStyle]=\"{ 'background': data?.value ? data.value : 'transparent' }\"></div>\n\n <pep-slider class=\"slider-box\" [label]=\"'COLOR.CHANGE_HUE' | translate\" [minValue]=\"currentHueMin\"\n [maxValue]=\"currentHueMax\" [value]=\"currentHue\" [background]=\"currentHueBackground\"\n (valueChange)=\"onHueChange($event)\">\n </pep-slider>\n <pep-slider class=\"slider-box\" [label]=\"'COLOR.CHANGE_SATURATION' | translate\"\n [minValue]=\"currentSaturationMin\" [maxValue]=\"currentSaturationMax\" [value]=\"currentSaturation\"\n [background]=\"currentSaturationBackground\" (valueChange)=\"onSaturationChange($event)\">\n </pep-slider>\n <pep-slider class=\"slider-box\" [label]=\"'COLOR.CHANGE_LIGHTNESS' | translate\"\n [minValue]=\"currentLightnessMin\" [maxValue]=\"currentLightnessMax\"\n [value]=\"currentLightnessMax - currentLightness + currentLightnessMin\"\n [background]=\"currentLightnessBackground\" (valueChange)=\"onLightnessChange($event)\">\n </pep-slider>\n </div>\n <div class=\"color-value-content\">\n <div class=\"color-value\" [ngClass]=\"{ 'with-complient': checkAAComplient }\">\n <pep-textbox [key]=\"'colorValue'\" [label]=\"'COLOR.ADD_VALUE_HERE' | translate \"\n [formattedValue]=\"data?.value\" [value]=\"data?.value\" (valueChange)=\"onColorValueChange($event)\">\n </pep-textbox>\n </div>\n <div *ngIf=\"checkAAComplient\" class=\"color-complient-container\">\n <pep-field-title [label]=\"'COLOR.AA_COMPLIENT' | translate \">\n </pep-field-title>\n <div class=\"color-complient\" [ngStyle]=\"{ 'background': complientColor }\">\n <mat-icon *ngIf=\"isUserChooseAAComplientColor\">\n <pep-icon name=\"system_ok\">\n </pep-icon>\n </mat-icon>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-container pep-dialog-actions>\n <div class=\"color-actions pep-spacing-element-negative\">\n <mat-checkbox *ngIf=\"data.showAAComplient\" class=\"pep-spacing-element\" type=\"checkbox\"\n id=\"checkAAComplient\" (change)=\"checkAAComplient = !checkAAComplient\" [checked]=\"checkAAComplient\">\n <span class=\"body-xs ellipsis\">{{ 'COLOR.AA_COMPLIENT' | translate }}</span>\n </mat-checkbox>\n <div>\n <button mat-button [mat-dialog-close]=\"null\" class=\"pep-spacing-element pep-button md weak\">\n {{'ACTIONS.CANCEL' | translate}}\n </button>\n <button mat-button class=\"pep-spacing-element pep-button md strong\" (click)=\"onSave($event)\">\n {{'ACTIONS.OK' | translate}}\n </button>\n </div>\n </div>\n </ng-container>\n </pep-dialog>\n</div>", styles: [".mat-slider-track-background,.mat-slider-horizontal .mat-slider-track-fill{display:none}.pepperi-color-picker-container ::ng-deep .mat-dialog-content,.pep-color-picker-container ::ng-deep .mat-dialog-content{padding:var(--pep-spacing-sm, .5rem) var(--pep-spacing-sm, .5rem) 0}.pepperi-color-picker-container .color-chooser-content,.pep-color-picker-container .color-chooser-content{display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(3,1fr);grid-column-gap:var(--pep-spacing-xl, 1.5rem);grid-row-gap:var(--pep-spacing-sm, .5rem);margin-top:var(--pep-spacing-sm, .5rem)}.pepperi-color-picker-container .color-chooser-content .current-color,.pep-color-picker-container .color-chooser-content .current-color{grid-row:1/span 3;grid-column:6/span 4;border-radius:var(--pep-border-radius-md, .25rem);width:9.25rem;height:9.25rem}.pepperi-color-picker-container .color-chooser-content .slider-box,.pep-color-picker-container .color-chooser-content .slider-box{grid-column:1/span 5}.pepperi-color-picker-container .color-value-content,.pep-color-picker-container .color-value-content{display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(1,1fr);grid-column-gap:var(--pep-spacing-xl, 1.5rem);grid-row-gap:var(--pep-spacing-sm, .5rem);margin-top:1.5rem}.pepperi-color-picker-container .color-value-content .color-value,.pep-color-picker-container .color-value-content .color-value{grid-row:1/span 1;grid-column:1/span 9}.pepperi-color-picker-container .color-value-content .color-value.with-complient,.pep-color-picker-container .color-value-content .color-value.with-complient{grid-column:1/span 5}.pepperi-color-picker-container .color-value-content .color-complient-container,.pep-color-picker-container .color-value-content .color-complient-container{grid-column:6/span 4}.pepperi-color-picker-container .color-value-content .color-complient-container .color-complient,.pep-color-picker-container .color-value-content .color-complient-container .color-complient{display:flex;justify-content:center;align-items:center;border-radius:var(--pep-border-radius-md, .25rem);height:var(--pep-form-field-height, 2.5rem);width:9.25rem}.pepperi-color-picker-container ::ng-deep .mat-dialog-actions,.pep-color-picker-container ::ng-deep .mat-dialog-actions{display:block}.pepperi-color-picker-container ::ng-deep .mat-dialog-actions .color-actions,.pep-color-picker-container ::ng-deep .mat-dialog-actions .color-actions{display:flex;justify-content:space-between;align-items:center}\n", ".pepperi-color-picker-container .color-value-content .color-complient-container .color-complient ::ng-deep .mat-icon .svg-icon,.pep-color-picker-container .color-value-content .color-complient-container .color-complient ::ng-deep .mat-icon .svg-icon{fill:hsl(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%))}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i2.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7.PepDialogComponent, selector: "pep-dialog", inputs: ["title", "showClose", "showHeader", "showFooter"], outputs: ["close"] }, { kind: "component", type: i8.PepIconComponent, selector: "pep-icon", inputs: ["spin", "name", "fill"] }, { kind: "component", type: i9.PepSliderComponent, selector: "pep-slider", inputs: ["label", "disabled", "hint", "background", "step", "minValue", "maxValue", "value"], outputs: ["valueChange", "inputChange"] }, { kind: "component", type: i10.PepFieldTitleComponent, selector: "pep-field-title", inputs: ["label", "mandatory", "disabled", "maxFieldCharacters", "hint", "xAlignment", "showTitle", "inputLength", "fontBodyType"] }, { kind: "component", type: i11.PepTextboxComponent, selector: "pep-textbox", inputs: ["key", "value", "formattedValue", "minFractionDigits", "maxFractionDigits", "accessory", "label", "placeholder", "type", "mandatory", "disabled", "readonly", "maxFieldCharacters", "hint", "textColor", "xAlignment", "rowSpan", "minValue", "maxValue", "visible", "form", "isActive", "showTitle", "renderTitle", "renderError", "renderSymbol", "layoutType", "parentFieldKey", "regex", "regexError"], outputs: ["valueChange", "formValidationChange"] }, { kind: "pipe", type: i12.TranslatePipe, name: "translate" }] });
217
217
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepColorPickerComponent, decorators: [{
218
218
  type: Component,
219
219
  args: [{ template: "<div class=\"pep-color-picker-container\">\n <pep-dialog [title]=\"'COLOR.DIALOG_TITLE' | translate\" (close)=\"closeDialog($event)\">\n <ng-container pep-dialog-content>\n <div class=\"color-chooser-content\">\n <div class=\"current-color\" [ngStyle]=\"{ 'background': data?.value ? data.value : 'transparent' }\"></div>\n\n <pep-slider class=\"slider-box\" [label]=\"'COLOR.CHANGE_HUE' | translate\" [minValue]=\"currentHueMin\"\n [maxValue]=\"currentHueMax\" [value]=\"currentHue\" [background]=\"currentHueBackground\"\n (valueChange)=\"onHueChange($event)\">\n </pep-slider>\n <pep-slider class=\"slider-box\" [label]=\"'COLOR.CHANGE_SATURATION' | translate\"\n [minValue]=\"currentSaturationMin\" [maxValue]=\"currentSaturationMax\" [value]=\"currentSaturation\"\n [background]=\"currentSaturationBackground\" (valueChange)=\"onSaturationChange($event)\">\n </pep-slider>\n <pep-slider class=\"slider-box\" [label]=\"'COLOR.CHANGE_LIGHTNESS' | translate\"\n [minValue]=\"currentLightnessMin\" [maxValue]=\"currentLightnessMax\"\n [value]=\"currentLightnessMax - currentLightness + currentLightnessMin\"\n [background]=\"currentLightnessBackground\" (valueChange)=\"onLightnessChange($event)\">\n </pep-slider>\n </div>\n <div class=\"color-value-content\">\n <div class=\"color-value\" [ngClass]=\"{ 'with-complient': checkAAComplient }\">\n <pep-textbox [key]=\"'colorValue'\" [label]=\"'COLOR.ADD_VALUE_HERE' | translate \"\n [formattedValue]=\"data?.value\" [value]=\"data?.value\" (valueChange)=\"onColorValueChange($event)\">\n </pep-textbox>\n </div>\n <div *ngIf=\"checkAAComplient\" class=\"color-complient-container\">\n <pep-field-title [label]=\"'COLOR.AA_COMPLIENT' | translate \">\n </pep-field-title>\n <div class=\"color-complient\" [ngStyle]=\"{ 'background': complientColor }\">\n <mat-icon *ngIf=\"isUserChooseAAComplientColor\">\n <pep-icon name=\"system_ok\">\n </pep-icon>\n </mat-icon>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-container pep-dialog-actions>\n <div class=\"color-actions pep-spacing-element-negative\">\n <mat-checkbox *ngIf=\"data.showAAComplient\" class=\"pep-spacing-element\" type=\"checkbox\"\n id=\"checkAAComplient\" (change)=\"checkAAComplient = !checkAAComplient\" [checked]=\"checkAAComplient\">\n <span class=\"body-xs ellipsis\">{{ 'COLOR.AA_COMPLIENT' | translate }}</span>\n </mat-checkbox>\n <div>\n <button mat-button [mat-dialog-close]=\"null\" class=\"pep-spacing-element pep-button md weak\">\n {{'ACTIONS.CANCEL' | translate}}\n </button>\n <button mat-button class=\"pep-spacing-element pep-button md strong\" (click)=\"onSave($event)\">\n {{'ACTIONS.OK' | translate}}\n </button>\n </div>\n </div>\n </ng-container>\n </pep-dialog>\n</div>", styles: [".mat-slider-track-background,.mat-slider-horizontal .mat-slider-track-fill{display:none}.pepperi-color-picker-container ::ng-deep .mat-dialog-content,.pep-color-picker-container ::ng-deep .mat-dialog-content{padding:var(--pep-spacing-sm, .5rem) var(--pep-spacing-sm, .5rem) 0}.pepperi-color-picker-container .color-chooser-content,.pep-color-picker-container .color-chooser-content{display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(3,1fr);grid-column-gap:var(--pep-spacing-xl, 1.5rem);grid-row-gap:var(--pep-spacing-sm, .5rem);margin-top:var(--pep-spacing-sm, .5rem)}.pepperi-color-picker-container .color-chooser-content .current-color,.pep-color-picker-container .color-chooser-content .current-color{grid-row:1/span 3;grid-column:6/span 4;border-radius:var(--pep-border-radius-md, .25rem);width:9.25rem;height:9.25rem}.pepperi-color-picker-container .color-chooser-content .slider-box,.pep-color-picker-container .color-chooser-content .slider-box{grid-column:1/span 5}.pepperi-color-picker-container .color-value-content,.pep-color-picker-container .color-value-content{display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(1,1fr);grid-column-gap:var(--pep-spacing-xl, 1.5rem);grid-row-gap:var(--pep-spacing-sm, .5rem);margin-top:1.5rem}.pepperi-color-picker-container .color-value-content .color-value,.pep-color-picker-container .color-value-content .color-value{grid-row:1/span 1;grid-column:1/span 9}.pepperi-color-picker-container .color-value-content .color-value.with-complient,.pep-color-picker-container .color-value-content .color-value.with-complient{grid-column:1/span 5}.pepperi-color-picker-container .color-value-content .color-complient-container,.pep-color-picker-container .color-value-content .color-complient-container{grid-column:6/span 4}.pepperi-color-picker-container .color-value-content .color-complient-container .color-complient,.pep-color-picker-container .color-value-content .color-complient-container .color-complient{display:flex;justify-content:center;align-items:center;border-radius:var(--pep-border-radius-md, .25rem);height:var(--pep-form-field-height, 2.5rem);width:9.25rem}.pepperi-color-picker-container ::ng-deep .mat-dialog-actions,.pep-color-picker-container ::ng-deep .mat-dialog-actions{display:block}.pepperi-color-picker-container ::ng-deep .mat-dialog-actions .color-actions,.pep-color-picker-container ::ng-deep .mat-dialog-actions .color-actions{display:flex;justify-content:space-between;align-items:center}\n", ".pepperi-color-picker-container .color-value-content .color-complient-container .color-complient ::ng-deep .mat-icon .svg-icon,.pep-color-picker-container .color-value-content .color-complient-container .color-complient ::ng-deep .mat-icon .svg-icon{fill:hsl(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%))}\n"] }]
@@ -221,4 +221,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
221
221
  type: Inject,
222
222
  args: [MAT_DIALOG_DATA]
223
223
  }] }]; } });
224
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvY29sb3IvY29sb3ItcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvY29sb3IvY29sb3ItcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBZ0IsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBY3pFLElBQUssb0JBR0o7QUFIRCxXQUFLLG9CQUFvQjtJQUNyQiw2REFBUSxDQUFBO0lBQ1IsNkRBQU8sQ0FBQTtBQUNYLENBQUMsRUFISSxvQkFBb0IsS0FBcEIsb0JBQW9CLFFBR3hCO0FBZUQsTUFBTSxPQUFPLHVCQUF1QjtJQU1oQyxZQUNZLFlBQTZCLEVBQzdCLFNBQWdELEVBQ3hCLElBQStCO1FBRnZELGlCQUFZLEdBQVosWUFBWSxDQUFpQjtRQUM3QixjQUFTLEdBQVQsU0FBUyxDQUF1QztRQUN4QixTQUFJLEdBQUosSUFBSSxDQUEyQjtRQVBsRCxpQkFBWSxHQUFHLE1BQU0sQ0FBQztRQUV2QyxxQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFrQmhCLHlCQUFvQixHQUFHOzs7Ozs7O2tDQU9ELENBQUM7UUFFL0IsZUFBVSxHQUFHLEdBQUcsQ0FBQztRQUNqQixrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUNsQixrQkFBYSxHQUFHLEdBQUcsQ0FBQztRQUNwQix5QkFBb0IsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUM7UUFFekMsZ0NBQTJCLEdBQUc7O2tFQUV3QixDQUFDO1FBRS9ELHNCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUN2Qix5QkFBb0IsR0FBRyxDQUFDLENBQUM7UUFDekIseUJBQW9CLEdB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QU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbi8vIGltcG9ydCB7XG4vLyAgICAgaGV4MmhzbCxcbi8vICAgICBoc2xTdHJpbmcyaHNsLFxuLy8gICAgIHJnYlN0cmluZzJoc2wsXG4vLyAgICAgSVBlcEhzbENvbG9yLFxuLy8gICAgIGZpbmRDbG9zZXN0QWNjZXNzaWJsZUNvbG9yLFxuLy8gICAgIGhzbDJoZXgsXG4vLyAgICAgY29udmVydEhzbFRvU3RyaW5nSHNsLFxuLy8gfSBmcm9tICcuL2NvbG9yLXV0aWxzJztcbmltcG9ydCB7IFBlcENvbG9yU2VydmljZSwgSVBlcEhzbENvbG9yIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWInO1xuXG5pbXBvcnQgeyBQZXBDb2xvclR5cGUgfSBmcm9tICcuL2NvbG9yLm1vZGVsJztcblxuZW51bSBQZXBDb250cmFzdFJhdGlvVHlwZSB7XG4gICAgQUEgPSA0LjUsXG4gICAgQUFBID0gNyxcbn1cblxuaW50ZXJmYWNlIElQZXBDb2xvclBpY2tlckRpYWxvZ0RhdGEge1xuICAgIHZhbHVlOiBzdHJpbmc7XG4gICAgdHlwZTogUGVwQ29sb3JUeXBlO1xuICAgIHNob3dBQUNvbXBsaWVudDogYm9vbGVhbjtcbiAgICBjaGVja0FBQ29tcGxpZW50OiBib29sZWFuO1xuICAgIHRleHRDb2xvcjogc3RyaW5nO1xuICAgIGNvbnRyYXN0UmF0aW86IFBlcENvbnRyYXN0UmF0aW9UeXBlO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29sb3ItcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jb2xvci1waWNrZXIuY29tcG9uZW50LnNjc3MnLCAnLi9jb2xvci1waWNrZXIuY29tcG9uZW50LnRoZW1lLnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUGVwQ29sb3JQaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHN0YXRpYyBDVVJSRU5UX0hVRSA9ICctLXBlcC1jb2xvci1waWNrZXItY3VycmVudC1odWUnO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdENvbG9yID0gJyNjY2MnO1xuXG4gICAgY2hlY2tBQUNvbXBsaWVudCA9IHRydWU7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBjb2xvclNlcnZpY2U6IFBlcENvbG9yU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxQZXBDb2xvclBpY2tlckNvbXBvbmVudD4sXG4gICAgICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogSVBlcENvbG9yUGlja2VyRGlhbG9nRGF0YVxuICAgICkge1xuICAgICAgICB0aGlzLmRhdGEudHlwZSA9IGRhdGEgPyBkYXRhLnR5cGUgOiAnYW55JztcbiAgICAgICAgdGhpcy5kYXRhLnNob3dBQUNvbXBsaWVudCA9ICFkYXRhXG4gICAgICAgICAgICA/IGZhbHNlXG4gICAgICAgICAgICA6IGRhdGEuc2hvd0FBQ29tcGxpZW50ID8/IHRydWU7XG4gICAgICAgIHRoaXMuZGF0YS50ZXh0Q29sb3IgPSBkYXRhICYmIGRhdGEudGV4dENvbG9yID8gZGF0YS50ZXh0Q29sb3IgOiAnI2ZmZic7XG4gICAgICAgIHRoaXMuZGF0YS5jb250cmFzdFJhdGlvID1cbiAgICAgICAgICAgIGRhdGEgJiYgZGF0YS5jb250cmFzdFJhdGlvXG4gICAgICAgICAgICAgICAgPyBkYXRhLmNvbnRyYXN0UmF0aW9cbiAgICAgICAgICAgICAgICA6IFBlcENvbnRyYXN0UmF0aW9UeXBlLkFBO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVmYXVsdEh1ZUJhY2tncm91bmQgPSBgbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LFxuICAgICAgICBoc2woMCwgMTAwJSwgNTAlKSAwJSxcbiAgICAgICAgaHNsKDYwLCAxMDAlLCA1MCUpIDE3JSxcbiAgICAgICAgaHNsKDEyMCwgMTAwJSwgNTAlKSAzMyUsXG4gICAgICAgIGhzbCgxODAsIDEwMCUsIDUwJSkgNTAlLFxuICAgICAgICBoc2woMjQwLCAxMDAlLCA1MCUpIDY3JSxcbiAgICAgICAgaHNsKDMwMCwgMTAwJSwgNTAlKSA4MyUsXG4gICAgICAgIGhzbCgzNjAsIDEwMCUsIDUwJSkgMTAwJSlgO1xuXG4gICAgY3VycmVudEh1ZSA9IDEwMDtcbiAgICBjdXJyZW50SHVlTWluID0gMDtcbiAgICBjdXJyZW50SHVlTWF4ID0gMzYwO1xuICAgIGN1cnJlbnRIdWVCYWNrZ3JvdW5kID0gdGhpcy5kZWZhdWx0SHVlQmFja2dyb3VuZDtcblxuICAgIHByaXZhdGUgZGVmYXVsdFNhdHVyYXRpb25CYWNrZ3JvdW5kID0gYGxpbmVhci1ncmFkaWVudCh0byByaWdodCxcbiAgICAgICAgaHNsKHZhcigtLXBlcC1jb2xvci1waWNrZXItY3VycmVudC1odWUpLCAwLjAxJSwgNTAlKSAwJSxcbiAgICAgICAgaHNsKHZhcigtLXBlcC1jb2xvci1waWNrZXItY3VycmVudC1odWUpLCAxMDAlLCA1MCUpIDEwMCUpYDtcblxuICAgIGN1cnJlbnRTYXR1cmF0aW9uID0gNTA7XG4gICAgY3VycmVudFNhdHVyYXRpb25NaW4gPSAwO1xuICAgIGN1cnJlbnRTYXR1cmF0aW9uTWF4ID0gMTAwO1xuICAgIGN1cnJlbnRTYXR1cmF0aW9uQmFja2dyb3VuZCA9IHRoaXMuZGVmYXVsdFNhdHVyYXRpb25CYWNrZ3JvdW5kO1xuXG4gICAgcHJpdmF0ZSBkZWZhdWx0TGlnaHRuZXNzQmFja2dyb3VuZCA9IGBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsXG4gICAgICAgIGhzbCh2YXIoLS1wZXAtY29sb3ItcGlja2VyLWN1cnJlbnQtaHVlKSwgMTAwJSwgMTAwJSkgMCUsXG4gICAgICAgIGhzbCh2YXIoLS1wZXAtY29sb3ItcGlja2VyLWN1cnJlbnQtaHVlKSwgMTAwJSwgNTAlKSA1MCUsXG4gICAgICAgIGhzbCh2YXIoLS1wZXAtY29sb3ItcGlja2VyLWN1cnJlbnQtaHVlKSwgMTAwJSwgMC4wMSUpIDEwMCUpYDtcblxuICAgIGN1cnJlbnRMaWdodG5lc3MgPSA1MDtcbiAgICBjdXJyZW50TGlnaHRuZXNzTWluID0gMDtcbiAgICBjdXJyZW50TGlnaHRuZXNzTWF4ID0gMTAwO1xuICAgIGN1cnJlbnRMaWdodG5lc3NCYWNrZ3JvdW5kID0gdGhpcy5kZWZhdWx0TGlnaHRuZXNzQmFja2dyb3VuZDtcblxuICAgIGNvbXBsaWVudENvbG9yOiBzdHJpbmc7XG4gICAgaXNVc2VyQ2hvb3NlQUFDb21wbGllbnRDb2xvcjogYm9vbGVhbjtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmluaXRWYXJzKCk7XG4gICAgICAgIHRoaXMuY2hlY2tBQUNvbXBsaWVudCA9IHRoaXMuZGF0YS5jaGVja0FBQ29tcGxpZW50O1xuICAgICAgICB0aGlzLmNvbnZlcnRWYWx1ZVN0cmluZ1RvQ29sb3IodGhpcy5kYXRhLnZhbHVlKTtcbiAgICB9XG5cbiAgICBpbml0VmFycygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGF0YS50eXBlID09PSAnbWFpbicpIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudExpZ2h0bmVzc01heCA9IDEwO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TGlnaHRuZXNzID0gNTtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudEh1ZUJhY2tncm91bmQgPSB0aGlzLmRlZmF1bHRIdWVCYWNrZ3JvdW5kO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50U2F0dXJhdGlvbkJhY2tncm91bmQgPSB0aGlzLmRlZmF1bHRTYXR1cmF0aW9uQmFja2dyb3VuZDtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudExpZ2h0bmVzc0JhY2tncm91bmQgPSB0aGlzLmRlZmF1bHRMaWdodG5lc3NCYWNrZ3JvdW5kO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZGF0YS50eXBlID09PSAnc3VjY2VzcycpIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudEh1ZU1pbiA9IDcwO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50SHVlTWF4ID0gMTUwO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50SHVlID0gMTAwO1xuXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRTYXR1cmF0aW9uTWluID0gNTA7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRTYXR1cmF0aW9uTWF4ID0gMTAwO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50U2F0dXJhdGlvbiA9IDUwO1xuXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRMaWdodG5lc3NNaW4gPSAxMDtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudExpZ2h0bmVzc01heCA9IDY1O1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TGlnaHRuZXNzID0gNTA7XG5cbiAgICAgICAgICAgIHRoaXMuY3VycmVudEh1ZUJhY2tncm91bmQgPSBgbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LFxuICAgICAgICAgICAgICAgIGhzbCg3MCwgMTAwJSwgNTAlKSAwJSxcbiAgICAgICAgICAgICAgICBoc2woMTUwLCAxMDAlLCA1MCUpIDEwMCUpYDtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFNhdHVyYXRpb25CYWNrZ3JvdW5kID0gYGxpbmVhci1ncmFkaWVudCh0byByaWdodCxcbiAgICAgICAgICAgICAgICBoc2wodmFyKC0tcGVwLWNvbG9yLXBpY2tlci1jdXJyZW50LWh1ZSksIDUwJSwgNTAlKSA1MCUsXG4gICAgICAgICAgICAgICAgaHNsKHZhcigtLXBlcC1jb2xvci1waWNrZXItY3VycmVudC1odWUpLCAxMDAlLCA1MCUpIDEwMCUpYDtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudExpZ2h0bmVzc0JhY2tncm91bmQgPSBgbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LFxuICAgICAgICAgICAgICAgIGhzbCh2YXIoLS1wZXAtY29sb3ItcGlja2VyLWN1cnJlbnQtaHVlKSwgMTAwJSwgNjUlKSAxMCUsXG4gICAgICAgICAgICAgICAgaHNsKHZhcigtLXBlcC1jb2xvci1waWNrZXItY3VycmVudC1odWUpLCAxMDAlLCAzNSUpIDM1JSxcbiAgICAgICAgICAgICAgICBoc2wodmFyKC0tcGVwLWNvbG9yLXBpY2tlci1jdXJyZW50LWh1ZSksIDEwMCUsIDEwJSkgNjUlKWA7XG5cbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmRhdGEudHlwZSA9PT0gJ2NhdXRpb24nKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRIdWVNaW4gPSAtMjA7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRIdWVNYXggPSAyMDtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudEh1ZSA9IDEwO1xuXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRTYXR1cmF0aW9uTWluID0gNzU7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRTYXR1cmF0aW9uTWF4ID0gMTAwO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50U2F0dXJhdGlvbiA9IDc1O1xuXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRMaWdodG5lc3NNaW4gPSAyNTtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudExpZ2h0bmVzc01heCA9IDc1O1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TGlnaHRuZXNzID0gNTA7XG5cbiAgICAgICAgICAgIHRoaXMuY3VycmVudEh1ZUJhY2tncm91bmQgPSBgbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LFxuICAgICAgICAgICAgICAgIGhzbCgzNDAsIDEwMCUsIDUwJSkgMCUsXG4gICAgICAgICAgICAgICAgaHNsKDIwLCAxMDAlLCA1MCUpIDEwMCUpYDtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFNhdHVyYXRpb25CYWNrZ3JvdW5kID0gYGxpbmVhci1ncmFkaWVudCh0byByaWdodCxcbiAgICAgICAgICAgICAgICBoc2wodmFyKC0tcGVwLWNvbG9yLXBpY2tlci1jdXJyZW50LWh1ZSksIDc1JSwgNTAlKSA3NSUsXG4gICAgICAgICAgICAgICAgaHNsKHZhcigtLXBlcC1jb2xvci1waWNrZXItY3VycmVudC1odWUpLCAxMDAlLCA1MCUpIDEwMCUpYDtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudExpZ2h0bmVzc0JhY2tncm91bmQgPSBgbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LFxuICAgICAgICAgICAgICAgIGhzbCh2YXIoLS1wZXAtY29sb3ItcGlja2VyLWN1cnJlbnQtaHVlKSwgMTAwJSwgNzUlKSAyNSUsXG4gICAgICAgICAgICAgICAgaHNsKHZhcigtLXBlcC1jb2xvci1waWNrZXItY3VycmVudC1odWUpLCAxMDAlLCA1MCUpIDUwJSxcbiAgICAgICAgICAgICAgICBoc2wodmFyKC0tcGVwLWNvbG9yLXBpY2tlci1jdXJyZW50LWh1ZSksIDEwMCUsIDI1JSkgNzUlKWA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRDdXJyZW50SHVlSW5Dc3MoKTogdm9pZCB7XG4gICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcbiAgICAgICAgICAgIFBlcENvbG9yUGlja2VyQ29tcG9uZW50LkNVUlJFTlRfSFVFLFxuICAgICAgICAgICAgdGhpcy5jdXJyZW50SHVlLnRvU3RyaW5nKClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBjb252ZXJ0VmFsdWVTdHJpbmdUb0NvbG9yKGNvbG9yKTogdm9pZCB7XG4gICAgICAgIGlmIChjb2xvci5pbmRleE9mKCdoc2wnKSA9PT0gMCkge1xuICAgICAgICAgICAgY29uc3QgaHNsID0gdGhpcy5jb2xvclNlcnZpY2UuaHNsU3RyaW5nMmhzbChjb2xvcik7XG4gICAgICAgICAgICB0aGlzLmNvbnZlcnRDb2xvclRvVmFsdWVTdHJpbmcoaHNsKTtcbiAgICAgICAgfSBlbHNlIGlmIChjb2xvci5pbmRleE9mKCdyZ2InKSA9PT0gMCkge1xuICAgICAgICAgICAgY29uc3QgaHNsID0gdGhpcy5jb2xvclNlcnZpY2UucmdiU3RyaW5nMmhzbChjb2xvcik7XG4gICAgICAgICAgICB0aGlzLmNvbnZlcnRDb2xvclRvVmFsdWVTdHJpbmcoaHNsKTtcbiAgICAgICAgfSBlbHNlIGlmIChjb2xvci5pbmRleE9mKCcjJykgPT09IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGhzbCA9IHRoaXMuY29sb3JTZXJ2aWNlLmhleDJoc2woY29sb3IpO1xuICAgICAgICAgICAgdGhpcy5jb252ZXJ0Q29sb3JUb1ZhbHVlU3RyaW5nKGhzbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBIYW5kbGUgZGVmYXVsdC5cbiAgICAgICAgICAgIGNvbnN0IGhzbCA9IHRoaXMuY29sb3JTZXJ2aWNlLmhleDJoc2wodGhpcy5kZWZhdWx0Q29sb3IpO1xuICAgICAgICAgICAgdGhpcy5jb252ZXJ0Q29sb3JUb1ZhbHVlU3RyaW5nKGhzbCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNldEN1cnJlbnRIdWVJbkNzcygpO1xuICAgIH1cblxuICAgIGNvbnZlcnRDb2xvclRvVmFsdWVTdHJpbmcoaHNsQ29sb3I6IElQZXBIc2xDb2xvcik6IHZvaWQge1xuICAgICAgICAvLyBSZWd1bGFyIGh1ZVxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBoc2xDb2xvci5oID49IHRoaXMuY3VycmVudEh1ZU1pbiAmJlxuICAgICAgICAgICAgaHNsQ29sb3IuaCA8PSB0aGlzLmN1cnJlbnRIdWVNYXhcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRIdWUgPSBoc2xDb2xvci5oO1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgdGhpcy5jdXJyZW50SHVlTWluIDwgMCAmJlxuICAgICAgICAgICAgaHNsQ29sb3IuaCA+PSAwICYmXG4gICAgICAgICAgICBoc2xDb2xvci5oIDw9IDM2MFxuICAgICAgICApIHtcbiAgICAgICAgICAgIC8vIEZvciBtaW4gd2l0aCAtIChjaGFuZ2UgdG8gdGhlIG90aGVyIHNpZGUgb2YgdGhlIGNpcmNsZSlcbiAgICAgICAgICAgIGhzbENvbG9yLmggPSBoc2xDb2xvci5oIC0gMzYwO1xuXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgaHNsQ29sb3IuaCA+PSB0aGlzLmN1cnJlbnRIdWVNaW4gJiZcbiAgICAgICAgICAgICAgICBoc2xDb2xvci5oIDw9IHRoaXMuY3VycmVudEh1ZU1heFxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50SHVlID0gaHNsQ29sb3IuaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY3VycmVudFNhdHVyYXRpb24gPVxuICAgICAgICAgICAgaHNsQ29sb3IucyA+PSB0aGlzLmN1cnJlbnRTYXR1cmF0aW9uTWluICYmXG4gICAgICAgICAgICAgICAgaHNsQ29sb3IucyA8PSB0aGlzLmN1cnJlbnRTYXR1cmF0aW9uTWF4XG4gICAgICAgICAgICAgICAgPyBoc2xDb2xvci5zXG4gICAgICAgICAgICAgICAgOiB0aGlzLmN1cnJlbnRTYXR1cmF0aW9uO1xuXG4gICAgICAgIHRoaXMuY3VycmVudExpZ2h0bmVzcyA9XG4gICAgICAgICAgICBoc2xDb2xvci5sID49IHRoaXMuY3VycmVudExpZ2h0bmVzc01pbiAmJlxuICAgICAgICAgICAgICAgIGhzbENvbG9yLmwgPD0gdGhpcy5jdXJyZW50TGlnaHRuZXNzTWF4XG4gICAgICAgICAgICAgICAgPyBoc2xDb2xvci5sXG4gICAgICAgICAgICAgICAgOiB0aGlzLmN1cnJlbnRMaWdodG5lc3M7XG5cbiAgICAgICAgLy8gV3JpdGUgdGhlIHZhbHVlIChpZiBodWUgaXMgY2hhbmdlZCB0byB0aGUgb3RoZXIgc2lkZSBvZiB0aGUgY2lyY2xlIHJldHVybiBpdCBiYWNrKS5cbiAgICAgICAgY29uc3QgaHNsID0ge1xuICAgICAgICAgICAgaDogdGhpcy5jdXJyZW50SHVlLFxuICAgICAgICAgICAgczogdGhpcy5jdXJyZW50U2F0dXJhdGlvbixcbiAgICAgICAgICAgIGw6IHRoaXMuY3VycmVudExpZ2h0bmVzcyxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5kYXRhLnZhbHVlID0gdGhpcy5jb2xvclNlcnZpY2UuY29udmVydEhzbFRvU3RyaW5nSHNsKGhzbCk7XG5cbiAgICAgICAgLy8gQ2hlY2sgdGhlIGNvbnRyYXN0IHJhdGlvIC0gc2V0IHRoZSBjbG9zZXN0IGFjY2Vzc2libGUgY29sb3IgdG8gY29tcGxpZW50Q29sb3JcbiAgICAgICAgLy8gYW5kIHVwZGF0ZSBpc1VzZXJDaG9vc2VBQUNvbXBsaWVudENvbG9yLlxuICAgICAgICBjb25zdCBhZGp1c3RhYmxlQ29sb3IgPSB0aGlzLmNvbG9yU2VydmljZS5oc2wyaGV4KGhzbCk7XG4gICAgICAgIGNvbnN0IGNsb3Nlc3RIZXggPSB0aGlzLmNvbG9yU2VydmljZS5maW5kQ2xvc2VzdEFjY2Vzc2libGVDb2xvcihcbiAgICAgICAgICAgIGFkanVzdGFibGVDb2xvcixcbiAgICAgICAgICAgIHRoaXMuZGF0YS50ZXh0Q29sb3IsXG4gICAgICAgICAgICB0aGlzLmRhdGEuY29udHJhc3RSYXRpb1xuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuaXNVc2VyQ2hvb3NlQUFDb21wbGllbnRDb2xvciA9IGFkanVzdGFibGVDb2xvciA9PT0gY2xvc2VzdEhleDtcbiAgICAgICAgdGhpcy5jb21wbGllbnRDb2xvciA9IHRoaXMuY29sb3JTZXJ2aWNlLmNvbnZlcnRIc2xUb1N0cmluZ0hzbChcbiAgICAgICAgICAgIHRoaXMuY29sb3JTZXJ2aWNlLmhleDJoc2woY2xvc2VzdEhleClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBvbkh1ZUNoYW5nZSh2YWx1ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnZlcnRDb2xvclRvVmFsdWVTdHJpbmcoeyBoOiB2YWx1ZSB9KTtcbiAgICAgICAgdGhpcy5zZXRDdXJyZW50SHVlSW5Dc3MoKTtcbiAgICB9XG5cbiAgICBvblNhdHVyYXRpb25DaGFuZ2UodmFsdWUpOiB2b2lkIHtcbiAgICAgICAgLy8gdGhpcy5jdXJyZW50U2F0dXJhdGlvbiA9IGV2ZW50LnZhbHVlO1xuICAgICAgICB0aGlzLmNvbnZlcnRDb2xvclRvVmFsdWVTdHJpbmcoeyBzOiB2YWx1ZSB9KTtcbiAgICB9XG5cbiAgICBvbkxpZ2h0bmVzc0NoYW5nZSh2YWx1ZSk6IHZvaWQge1xuICAgICAgICAvLyB0aGlzLmN1cnJlbnRMaWdodG5lc3MgPSBldmVudC52YWx1ZTtcbiAgICAgICAgdGhpcy5jb252ZXJ0Q29sb3JUb1ZhbHVlU3RyaW5nKHtcbiAgICAgICAgICAgIGw6XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50TGlnaHRuZXNzTWF4IC1cbiAgICAgICAgICAgICAgICB2YWx1ZSArXG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50TGlnaHRuZXNzTWluLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvbkNvbG9yVmFsdWVDaGFuZ2UoZXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb252ZXJ0VmFsdWVTdHJpbmdUb0NvbG9yKGV2ZW50LnZhbHVlKTtcbiAgICB9XG5cbiAgICBvblNhdmUoZXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY29sb3IgPSB0aGlzLmNoZWNrQUFDb21wbGllbnRcbiAgICAgICAgICAgID8gdGhpcy5jb21wbGllbnRDb2xvclxuICAgICAgICAgICAgOiB0aGlzLmRhdGEudmFsdWU7XG5cbiAgICAgICAgLy8gdGhpcy5ub3RpZnkuZW1pdCh7IGtleTogdGhpcy5rZXksIHZhbHVlOiBjb2xvciB9KTtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoY29sb3IpO1xuICAgIH1cblxuICAgIGNsb3NlRGlhbG9nKGV2ZW50KSB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKGV2ZW50KTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicGVwLWNvbG9yLXBpY2tlci1jb250YWluZXJcIj5cbiAgICA8cGVwLWRpYWxvZyBbdGl0bGVdPVwiJ0NPTE9SLkRJQUxPR19USVRMRScgfCB0cmFuc2xhdGVcIiAoY2xvc2UpPVwiY2xvc2VEaWFsb2coJGV2ZW50KVwiPlxuICAgICAgICA8bmctY29udGFpbmVyIHBlcC1kaWFsb2ctY29udGVudD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xvci1jaG9vc2VyLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3VycmVudC1jb2xvclwiIFtuZ1N0eWxlXT1cInsgJ2JhY2tncm91bmQnOiBkYXRhPy52YWx1ZSA/IGRhdGEudmFsdWUgOiAndHJhbnNwYXJlbnQnIH1cIj48L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxwZXAtc2xpZGVyIGNsYXNzPVwic2xpZGVyLWJveFwiIFtsYWJlbF09XCInQ09MT1IuQ0hBTkdFX0hVRScgfCB0cmFuc2xhdGVcIiBbbWluVmFsdWVdPVwiY3VycmVudEh1ZU1pblwiXG4gICAgICAgICAgICAgICAgICAgIFttYXhWYWx1ZV09XCJjdXJyZW50SHVlTWF4XCIgW3ZhbHVlXT1cImN1cnJlbnRIdWVcIiBbYmFja2dyb3VuZF09XCJjdXJyZW50SHVlQmFja2dyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvbkh1ZUNoYW5nZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgPC9wZXAtc2xpZGVyPlxuICAgICAgICAgICAgICAgIDxwZXAtc2xpZGVyIGNsYXNzPVwic2xpZGVyLWJveFwiIFtsYWJlbF09XCInQ09MT1IuQ0hBTkdFX1NBVFVSQVRJT04nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgW21pblZhbHVlXT1cImN1cnJlbnRTYXR1cmF0aW9uTWluXCIgW21heFZhbHVlXT1cImN1cnJlbnRTYXR1cmF0aW9uTWF4XCIgW3ZhbHVlXT1cImN1cnJlbnRTYXR1cmF0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2JhY2tncm91bmRdPVwiY3VycmVudFNhdHVyYXRpb25CYWNrZ3JvdW5kXCIgKHZhbHVlQ2hhbmdlKT1cIm9uU2F0dXJhdGlvbkNoYW5nZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgPC9wZXAtc2xpZGVyPlxuICAgICAgICAgICAgICAgIDxwZXAtc2xpZGVyIGNsYXNzPVwic2xpZGVyLWJveFwiIFtsYWJlbF09XCInQ09MT1IuQ0hBTkdFX0xJR0hUTkVTUycgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICBbbWluVmFsdWVdPVwiY3VycmVudExpZ2h0bmVzc01pblwiIFttYXhWYWx1ZV09XCJjdXJyZW50TGlnaHRuZXNzTWF4XCJcbiAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImN1cnJlbnRMaWdodG5lc3NNYXggLSBjdXJyZW50TGlnaHRuZXNzICsgY3VycmVudExpZ2h0bmVzc01pblwiXG4gICAgICAgICAgICAgICAgICAgIFtiYWNrZ3JvdW5kXT1cImN1cnJlbnRMaWdodG5lc3NCYWNrZ3JvdW5kXCIgKHZhbHVlQ2hhbmdlKT1cIm9uTGlnaHRuZXNzQ2hhbmdlKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICA8L3BlcC1zbGlkZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xvci12YWx1ZS1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbG9yLXZhbHVlXCIgW25nQ2xhc3NdPVwieyAnd2l0aC1jb21wbGllbnQnOiBjaGVja0FBQ29tcGxpZW50IH1cIj5cbiAgICAgICAgICAgICAgICAgICAgPHBlcC10ZXh0Ym94IFtrZXldPVwiJ2NvbG9yVmFsdWUnXCIgW2xhYmVsXT1cIidDT0xPUi5BRERfVkFMVUVfSEVSRScgfCB0cmFuc2xhdGUgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtYXR0ZWRWYWx1ZV09XCJkYXRhPy52YWx1ZVwiIFt2YWx1ZV09XCJkYXRhPy52YWx1ZVwiICh2YWx1ZUNoYW5nZSk9XCJvbkNvbG9yVmFsdWVDaGFuZ2UoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAgICA8L3BlcC10ZXh0Ym94PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjaGVja0FBQ29tcGxpZW50XCIgY2xhc3M9XCJjb2xvci1jb21wbGllbnQtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwZXAtZmllbGQtdGl0bGUgW2xhYmVsXT1cIidDT0xPUi5BQV9DT01QTElFTlQnIHwgdHJhbnNsYXRlIFwiPlxuICAgICAgICAgICAgICAgICAgICA8L3BlcC1maWVsZC10aXRsZT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbG9yLWNvbXBsaWVudFwiIFtuZ1N0eWxlXT1cInsgJ2JhY2tncm91bmQnOiBjb21wbGllbnRDb2xvciB9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJpc1VzZXJDaG9vc2VBQUNvbXBsaWVudENvbG9yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBlcC1pY29uIG5hbWU9XCJzeXN0ZW1fb2tcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3BlcC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgcGVwLWRpYWxvZy1hY3Rpb25zPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbG9yLWFjdGlvbnMgcGVwLXNwYWNpbmctZWxlbWVudC1uZWdhdGl2ZVwiPlxuICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggKm5nSWY9XCJkYXRhLnNob3dBQUNvbXBsaWVudFwiIGNsYXNzPVwicGVwLXNwYWNpbmctZWxlbWVudFwiIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiY2hlY2tBQUNvbXBsaWVudFwiIChjaGFuZ2UpPVwiY2hlY2tBQUNvbXBsaWVudCA9ICFjaGVja0FBQ29tcGxpZW50XCIgW2NoZWNrZWRdPVwiY2hlY2tBQUNvbXBsaWVudFwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJvZHkteHMgZWxsaXBzaXNcIj57eyAnQ09MT1IuQUFfQ09NUExJRU5UJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L21hdC1jaGVja2JveD5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gW21hdC1kaWFsb2ctY2xvc2VdPVwibnVsbFwiIGNsYXNzPVwicGVwLXNwYWNpbmctZWxlbWVudCBwZXAtYnV0dG9uIG1kIHdlYWtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7J0FDVElPTlMuQ0FOQ0VMJyB8IHRyYW5zbGF0ZX19XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gY2xhc3M9XCJwZXAtc3BhY2luZy1lbGVtZW50IHBlcC1idXR0b24gbWQgc3Ryb25nXCIgKGNsaWNrKT1cIm9uU2F2ZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eydBQ1RJT05TLk9LJyB8IHRyYW5zbGF0ZX19XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvcGVwLWRpYWxvZz5cbjwvZGl2PiJdfQ==
224
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvY29sb3IvY29sb3ItcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvY29sb3IvY29sb3ItcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBZ0IsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBY3pFLElBQUssb0JBR0o7QUFIRCxXQUFLLG9CQUFvQjtJQUNyQiw2REFBUSxDQUFBO0lBQ1IsNkRBQU8sQ0FBQTtBQUNYLENBQUMsRUFISSxvQkFBb0IsS0FBcEIsb0JBQW9CLFFBR3hCO0FBZUQsTUFBTSxPQUFPLHVCQUF1QjtJQU1oQyxZQUNZLFlBQTZCLEVBQzdCLFNBQWdELEVBQ3hCLElBQStCO1FBRnZELGlCQUFZLEdBQVosWUFBWSxDQUFpQjtRQUM3QixjQUFTLEdBQVQsU0FBUyxDQUF1QztRQUN4QixTQUFJLEdBQUosSUFBSSxDQUEyQjtRQVBsRCxpQkFBWSxHQUFHLE1BQU0sQ0FBQztRQUV2QyxxQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFrQmhCLHlCQUFvQixHQUFHOzs7Ozs7O2tDQU9ELENBQUM7UUFFL0IsZUFBVSxHQUFHLEdBQUcsQ0FBQztRQUNqQixrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUNsQixrQkFBYSxHQUFHLEdBQUcsQ0FBQztRQUNwQix5QkFBb0IsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUM7UUFFekMsZ0NBQTJCLEdBQUc7O2tFQUV3QixDQUFDO1FBRS9ELHNCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUN2Qix5QkFBb0IsR0FBRyxDQUFDLENBQUM7UUFDekIseUJBQW9CLEdB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QUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuLy8gaW1wb3J0IHtcbi8vICAgICBoZXgyaHNsLFxuLy8gICAgIGhzbFN0cmluZzJoc2wsXG4vLyAgICAgcmdiU3RyaW5nMmhzbCxcbi8vICAgICBJUGVwSHNsQ29sb3IsXG4vLyAgICAgZmluZENsb3Nlc3RBY2Nlc3NpYmxlQ29sb3IsXG4vLyAgICAgaHNsMmhleCxcbi8vICAgICBjb252ZXJ0SHNsVG9TdHJpbmdIc2wsXG4vLyB9IGZyb20gJy4vY29sb3ItdXRpbHMnO1xuaW1wb3J0IHsgUGVwQ29sb3JTZXJ2aWNlLCBJUGVwSHNsQ29sb3IgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYic7XG5cbmltcG9ydCB7IFBlcENvbG9yVHlwZSB9IGZyb20gJy4vY29sb3IubW9kZWwnO1xuXG5lbnVtIFBlcENvbnRyYXN0UmF0aW9UeXBlIHtcbiAgICBBQSA9IDQuNSxcbiAgICBBQUEgPSA3LFxufVxuXG5pbnRlcmZhY2UgSVBlcENvbG9yUGlja2VyRGlhbG9nRGF0YSB7XG4gICAgdmFsdWU6IHN0cmluZztcbiAgICB0eXBlOiBQZXBDb2xvclR5cGU7XG4gICAgc2hvd0FBQ29tcGxpZW50OiBib29sZWFuO1xuICAgIGNoZWNrQUFDb21wbGllbnQ6IGJvb2xlYW47XG4gICAgdGV4dENvbG9yOiBzdHJpbmc7XG4gICAgY29udHJhc3RSYXRpbzogUGVwQ29udHJhc3RSYXRpb1R5cGU7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlVXJsOiAnLi9jb2xvci1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NvbG9yLXBpY2tlci5jb21wb25lbnQuc2NzcycsICcuL2NvbG9yLXBpY2tlci5jb21wb25lbnQudGhlbWUuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBQZXBDb2xvclBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgc3RhdGljIENVUlJFTlRfSFVFID0gJy0tcGVwLWNvbG9yLXBpY2tlci1jdXJyZW50LWh1ZSc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0Q29sb3IgPSAnI2NjYyc7XG5cbiAgICBjaGVja0FBQ29tcGxpZW50ID0gdHJ1ZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGNvbG9yU2VydmljZTogUGVwQ29sb3JTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFBlcENvbG9yUGlja2VyQ29tcG9uZW50PixcbiAgICAgICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBJUGVwQ29sb3JQaWNrZXJEaWFsb2dEYXRhXG4gICAgKSB7XG4gICAgICAgIHRoaXMuZGF0YS50eXBlID0gZGF0YSA/IGRhdGEudHlwZSA6ICdhbnknO1xuICAgICAgICB0aGlzLmRhdGEuc2hvd0FBQ29tcGxpZW50ID0gIWRhdGFcbiAgICAgICAgICAgID8gZmFsc2VcbiAgICAgICAgICAgIDogZGF0YS5zaG93QUFDb21wbGllbnQgPz8gdHJ1ZTtcbiAgICAgICAgdGhpcy5kYXRhLnRleHRDb2xvciA9IGRhdGEgJiYgZGF0YS50ZXh0Q29sb3IgPyBkYXRhLnRleHRDb2xvciA6ICcjZmZmJztcbiAgICAgICAgdGhpcy5kYXRhLmNvbnRyYXN0UmF0aW8gPVxuICAgICAgICAgICAgZGF0YSAmJiBkYXRhLmNvbnRyYXN0UmF0aW9cbiAgICAgICAgICAgICAgICA/IGRhdGEuY29udHJhc3RSYXRpb1xuICAgICAgICAgICAgICAgIDogUGVwQ29udHJhc3RSYXRpb1R5cGUuQUE7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZWZhdWx0SHVlQmFja2dyb3VuZCA9IGBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsXG4gICAgICAgIGhzbCgwLCAxMDAlLCA1MCUpIDAlLFxuICAgICAgICBoc2woNjAsIDEwMCUsIDUwJSkgMTclLFxuICAgICAgICBoc2woMTIwLCAxMDAlLCA1MCUpIDMzJSxcbiAgICAgICAgaHNsKDE4MCwgMTAwJSwgNTAlKSA1MCUsXG4gICAgICAgIGhzbCgyNDAsIDEwMCUsIDUwJSkgNjclLFxuICAgICAgICBoc2woMzAwLCAxMDAlLCA1MCUpIDgzJSxcbiAgICAgICAgaHNsKDM2MCwgMTAwJSwgNTAlKSAxMDAlKWA7XG5cbiAgICBjdXJyZW50SHVlID0gMTAwO1xuICAgIGN1cnJlbnRIdWVNaW4gPSAwO1xuICAgIGN1cnJlbnRIdWVNYXggPSAzNjA7XG4gICAgY3VycmVudEh1ZUJhY2tncm91bmQgPSB0aGlzLmRlZmF1bHRIdWVCYWNrZ3JvdW5kO1xuXG4gICAgcHJpdmF0ZSBkZWZhdWx0U2F0dXJhdGlvbkJhY2tncm91bmQgPSBgbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LFxuICAgICAgICBoc2wodmFyKC0tcGVwLWNvbG9yLXBpY2tlci1jdXJyZW50LWh1ZSksIDAuMDElLCA1MCUpIDAlLFxuICAgICAgICBoc2wodmFyKC0tcGVwLWNvbG9yLXBpY2tlci1jdXJyZW50LWh1ZSksIDEwMCUsIDUwJSkgMTAwJSlgO1xuXG4gICAgY3VycmVudFNhdHVyYXRpb24gPSA1MDtcbiAgICBjdXJyZW50U2F0dXJhdGlvbk1pbiA9IDA7XG4gICAgY3VycmVudFNhdHVyYXRpb25NYXggPSAxMDA7XG4gICAgY3VycmVudFNhdHVyYXRpb25CYWNrZ3JvdW5kID0gdGhpcy5kZWZhdWx0U2F0dXJhdGlvbkJhY2tncm91bmQ7XG5cbiAgICBwcml2YXRlIGRlZmF1bHRMaWdodG5lc3NCYWNrZ3JvdW5kID0gYGxpbmVhci1ncmFkaWVudCh0byByaWdodCxcbiAgICAgICAgaHNsKHZhcigtLXBlcC1jb2xvci1waWNrZXItY3VycmVudC1odWUpLCAxMDAlLCAxMDAlKSAwJSxcbiAgICAgICAgaHNsKHZhcigtLXBlcC1jb2xvci1waWNrZXItY3VycmVudC1odWUpLCAxMDAlLCA1MCUpIDUwJSxcbiAgICAgICAgaHNsKHZhcigtLXBlcC1jb2xvci1waWNrZXItY3VycmVudC1odWUpLCAxMDAlLCAwLjAxJSkgMTAwJSlgO1xuXG4gICAgY3VycmVudExpZ2h0bmVzcyA9IDUwO1xuICAgIGN1cnJlbnRMaWdodG5lc3NNaW4gPSAwO1xuICAgIGN1cnJlbnRMaWdodG5lc3NNYXggPSAxMDA7XG4gICAgY3VycmVudExpZ2h0bmVzc0JhY2tncm91bmQgPSB0aGlzLmRlZmF1bHRMaWdodG5lc3NCYWNrZ3JvdW5kO1xuXG4gICAgY29tcGxpZW50Q29sb3I6IHN0cmluZztcbiAgICBpc1VzZXJDaG9vc2VBQUNvbXBsaWVudENvbG9yOiBib29sZWFuO1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5pdFZhcnMoKTtcbiAgICAgICAgdGhpcy5jaGVja0FBQ29tcGxpZW50ID0gdGhpcy5kYXRhLmNoZWNrQUFDb21wbGllbnQ7XG4gICAgICAgIHRoaXMuY29udmVydFZhbHVlU3RyaW5nVG9Db2xvcih0aGlzLmRhdGEudmFsdWUpO1xuICAgIH1cblxuICAgIGluaXRWYXJzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kYXRhLnR5cGUgPT09ICdtYWluJykge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TGlnaHRuZXNzTWF4ID0gMTA7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRMaWdodG5lc3MgPSA1O1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50SHVlQmFja2dyb3VuZCA9IHRoaXMuZGVmYXVsdEh1ZUJhY2tncm91bmQ7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRTYXR1cmF0aW9uQmFja2dyb3VuZCA9IHRoaXMuZGVmYXVsdFNhdHVyYXRpb25CYWNrZ3JvdW5kO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TGlnaHRuZXNzQmFja2dyb3VuZCA9IHRoaXMuZGVmYXVsdExpZ2h0bmVzc0JhY2tncm91bmQ7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5kYXRhLnR5cGUgPT09ICdzdWNjZXNzJykge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50SHVlTWluID0gNzA7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRIdWVNYXggPSAxNTA7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRIdWUgPSAxMDA7XG5cbiAgICAgICAgICAgIHRoaXMuY3VycmVudFNhdHVyYXRpb25NaW4gPSA1MDtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFNhdHVyYXRpb25NYXggPSAxMDA7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRTYXR1cmF0aW9uID0gNTA7XG5cbiAgICAgICAgICAgIHRoaXMuY3VycmVudExpZ2h0bmVzc01pbiA9IDEwO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TGlnaHRuZXNzTWF4ID0gNjU7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRMaWdodG5lc3MgPSA1MDtcblxuICAgICAgICAgICAgdGhpcy5jdXJyZW50SHVlQmFja2dyb3VuZCA9IGBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsXG4gICAgICAgICAgICAgICAgaHNsKDcwLCAxMDAlLCA1MCUpIDAlLFxuICAgICAgICAgICAgICAgIGhzbCgxNTAsIDEwMCUsIDUwJSkgMTAwJSlgO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50U2F0dXJhdGlvbkJhY2tncm91bmQgPSBgbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LFxuICAgICAgICAgICAgICAgIGhzbCh2YXIoLS1wZXAtY29sb3ItcGlja2VyLWN1cnJlbnQtaHVlKSwgNTAlLCA1MCUpIDUwJSxcbiAgICAgICAgICAgICAgICBoc2wodmFyKC0tcGVwLWNvbG9yLXBpY2tlci1jdXJyZW50LWh1ZSksIDEwMCUsIDUwJSkgMTAwJSlgO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TGlnaHRuZXNzQmFja2dyb3VuZCA9IGBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsXG4gICAgICAgICAgICAgICAgaHNsKHZhcigtLXBlcC1jb2xvci1waWNrZXItY3VycmVudC1odWUpLCAxMDAlLCA2NSUpIDEwJSxcbiAgICAgICAgICAgICAgICBoc2wodmFyKC0tcGVwLWNvbG9yLXBpY2tlci1jdXJyZW50LWh1ZSksIDEwMCUsIDM1JSkgMzUlLFxuICAgICAgICAgICAgICAgIGhzbCh2YXIoLS1wZXAtY29sb3ItcGlja2VyLWN1cnJlbnQtaHVlKSwgMTAwJSwgMTAlKSA2NSUpYDtcblxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZGF0YS50eXBlID09PSAnY2F1dGlvbicpIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudEh1ZU1pbiA9IC0yMDtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudEh1ZU1heCA9IDIwO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50SHVlID0gMTA7XG5cbiAgICAgICAgICAgIHRoaXMuY3VycmVudFNhdHVyYXRpb25NaW4gPSA3NTtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFNhdHVyYXRpb25NYXggPSAxMDA7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRTYXR1cmF0aW9uID0gNzU7XG5cbiAgICAgICAgICAgIHRoaXMuY3VycmVudExpZ2h0bmVzc01pbiA9IDI1O1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TGlnaHRuZXNzTWF4ID0gNzU7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRMaWdodG5lc3MgPSA1MDtcblxuICAgICAgICAgICAgdGhpcy5jdXJyZW50SHVlQmFja2dyb3VuZCA9IGBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsXG4gICAgICAgICAgICAgICAgaHNsKDM0MCwgMTAwJSwgNTAlKSAwJSxcbiAgICAgICAgICAgICAgICBoc2woMjAsIDEwMCUsIDUwJSkgMTAwJSlgO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50U2F0dXJhdGlvbkJhY2tncm91bmQgPSBgbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LFxuICAgICAgICAgICAgICAgIGhzbCh2YXIoLS1wZXAtY29sb3ItcGlja2VyLWN1cnJlbnQtaHVlKSwgNzUlLCA1MCUpIDc1JSxcbiAgICAgICAgICAgICAgICBoc2wodmFyKC0tcGVwLWNvbG9yLXBpY2tlci1jdXJyZW50LWh1ZSksIDEwMCUsIDUwJSkgMTAwJSlgO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TGlnaHRuZXNzQmFja2dyb3VuZCA9IGBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsXG4gICAgICAgICAgICAgICAgaHNsKHZhcigtLXBlcC1jb2xvci1waWNrZXItY3VycmVudC1odWUpLCAxMDAlLCA3NSUpIDI1JSxcbiAgICAgICAgICAgICAgICBoc2wodmFyKC0tcGVwLWNvbG9yLXBpY2tlci1jdXJyZW50LWh1ZSksIDEwMCUsIDUwJSkgNTAlLFxuICAgICAgICAgICAgICAgIGhzbCh2YXIoLS1wZXAtY29sb3ItcGlja2VyLWN1cnJlbnQtaHVlKSwgMTAwJSwgMjUlKSA3NSUpYDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldEN1cnJlbnRIdWVJbkNzcygpOiB2b2lkIHtcbiAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFxuICAgICAgICAgICAgUGVwQ29sb3JQaWNrZXJDb21wb25lbnQuQ1VSUkVOVF9IVUUsXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRIdWUudG9TdHJpbmcoKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGNvbnZlcnRWYWx1ZVN0cmluZ1RvQ29sb3IoY29sb3IpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNvbG9yLmluZGV4T2YoJ2hzbCcpID09PSAwKSB7XG4gICAgICAgICAgICBjb25zdCBoc2wgPSB0aGlzLmNvbG9yU2VydmljZS5oc2xTdHJpbmcyaHNsKGNvbG9yKTtcbiAgICAgICAgICAgIHRoaXMuY29udmVydENvbG9yVG9WYWx1ZVN0cmluZyhoc2wpO1xuICAgICAgICB9IGVsc2UgaWYgKGNvbG9yLmluZGV4T2YoJ3JnYicpID09PSAwKSB7XG4gICAgICAgICAgICBjb25zdCBoc2wgPSB0aGlzLmNvbG9yU2VydmljZS5yZ2JTdHJpbmcyaHNsKGNvbG9yKTtcbiAgICAgICAgICAgIHRoaXMuY29udmVydENvbG9yVG9WYWx1ZVN0cmluZyhoc2wpO1xuICAgICAgICB9IGVsc2UgaWYgKGNvbG9yLmluZGV4T2YoJyMnKSA9PT0gMCkge1xuICAgICAgICAgICAgY29uc3QgaHNsID0gdGhpcy5jb2xvclNlcnZpY2UuaGV4MmhzbChjb2xvcik7XG4gICAgICAgICAgICB0aGlzLmNvbnZlcnRDb2xvclRvVmFsdWVTdHJpbmcoaHNsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEhhbmRsZSBkZWZhdWx0LlxuICAgICAgICAgICAgY29uc3QgaHNsID0gdGhpcy5jb2xvclNlcnZpY2UuaGV4MmhzbCh0aGlzLmRlZmF1bHRDb2xvcik7XG4gICAgICAgICAgICB0aGlzLmNvbnZlcnRDb2xvclRvVmFsdWVTdHJpbmcoaHNsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2V0Q3VycmVudEh1ZUluQ3NzKCk7XG4gICAgfVxuXG4gICAgY29udmVydENvbG9yVG9WYWx1ZVN0cmluZyhoc2xDb2xvcjogSVBlcEhzbENvbG9yKTogdm9pZCB7XG4gICAgICAgIC8vIFJlZ3VsYXIgaHVlXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGhzbENvbG9yLmggPj0gdGhpcy5jdXJyZW50SHVlTWluICYmXG4gICAgICAgICAgICBoc2xDb2xvci5oIDw9IHRoaXMuY3VycmVudEh1ZU1heFxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudEh1ZSA9IGhzbENvbG9yLmg7XG4gICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRIdWVNaW4gPCAwICYmXG4gICAgICAgICAgICBoc2xDb2xvci5oID49IDAgJiZcbiAgICAgICAgICAgIGhzbENvbG9yLmggPD0gMzYwXG4gICAgICAgICkge1xuICAgICAgICAgICAgLy8gRm9yIG1pbiB3aXRoIC0gKGNoYW5nZSB0byB0aGUgb3RoZXIgc2lkZSBvZiB0aGUgY2lyY2xlKVxuICAgICAgICAgICAgaHNsQ29sb3IuaCA9IGhzbENvbG9yLmggLSAzNjA7XG5cbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBoc2xDb2xvci5oID49IHRoaXMuY3VycmVudEh1ZU1pbiAmJlxuICAgICAgICAgICAgICAgIGhzbENvbG9yLmggPD0gdGhpcy5jdXJyZW50SHVlTWF4XG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRIdWUgPSBoc2xDb2xvci5oO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jdXJyZW50U2F0dXJhdGlvbiA9XG4gICAgICAgICAgICBoc2xDb2xvci5zID49IHRoaXMuY3VycmVudFNhdHVyYXRpb25NaW4gJiZcbiAgICAgICAgICAgICAgICBoc2xDb2xvci5zIDw9IHRoaXMuY3VycmVudFNhdHVyYXRpb25NYXhcbiAgICAgICAgICAgICAgICA/IGhzbENvbG9yLnNcbiAgICAgICAgICAgICAgICA6IHRoaXMuY3VycmVudFNhdHVyYXRpb247XG5cbiAgICAgICAgdGhpcy5jdXJyZW50TGlnaHRuZXNzID1cbiAgICAgICAgICAgIGhzbENvbG9yLmwgPj0gdGhpcy5jdXJyZW50TGlnaHRuZXNzTWluICYmXG4gICAgICAgICAgICAgICAgaHNsQ29sb3IubCA8PSB0aGlzLmN1cnJlbnRMaWdodG5lc3NNYXhcbiAgICAgICAgICAgICAgICA/IGhzbENvbG9yLmxcbiAgICAgICAgICAgICAgICA6IHRoaXMuY3VycmVudExpZ2h0bmVzcztcblxuICAgICAgICAvLyBXcml0ZSB0aGUgdmFsdWUgKGlmIGh1ZSBpcyBjaGFuZ2VkIHRvIHRoZSBvdGhlciBzaWRlIG9mIHRoZSBjaXJjbGUgcmV0dXJuIGl0IGJhY2spLlxuICAgICAgICBjb25zdCBoc2wgPSB7XG4gICAgICAgICAgICBoOiB0aGlzLmN1cnJlbnRIdWUsXG4gICAgICAgICAgICBzOiB0aGlzLmN1cnJlbnRTYXR1cmF0aW9uLFxuICAgICAgICAgICAgbDogdGhpcy5jdXJyZW50TGlnaHRuZXNzLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmRhdGEudmFsdWUgPSB0aGlzLmNvbG9yU2VydmljZS5jb252ZXJ0SHNsVG9TdHJpbmdIc2woaHNsKTtcblxuICAgICAgICAvLyBDaGVjayB0aGUgY29udHJhc3QgcmF0aW8gLSBzZXQgdGhlIGNsb3Nlc3QgYWNjZXNzaWJsZSBjb2xvciB0byBjb21wbGllbnRDb2xvclxuICAgICAgICAvLyBhbmQgdXBkYXRlIGlzVXNlckNob29zZUFBQ29tcGxpZW50Q29sb3IuXG4gICAgICAgIGNvbnN0IGFkanVzdGFibGVDb2xvciA9IHRoaXMuY29sb3JTZXJ2aWNlLmhzbDJoZXgoaHNsKTtcbiAgICAgICAgY29uc3QgY2xvc2VzdEhleCA9IHRoaXMuY29sb3JTZXJ2aWNlLmZpbmRDbG9zZXN0QWNjZXNzaWJsZUNvbG9yKFxuICAgICAgICAgICAgYWRqdXN0YWJsZUNvbG9yLFxuICAgICAgICAgICAgdGhpcy5kYXRhLnRleHRDb2xvcixcbiAgICAgICAgICAgIHRoaXMuZGF0YS5jb250cmFzdFJhdGlvXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5pc1VzZXJDaG9vc2VBQUNvbXBsaWVudENvbG9yID0gYWRqdXN0YWJsZUNvbG9yID09PSBjbG9zZXN0SGV4O1xuICAgICAgICB0aGlzLmNvbXBsaWVudENvbG9yID0gdGhpcy5jb2xvclNlcnZpY2UuY29udmVydEhzbFRvU3RyaW5nSHNsKFxuICAgICAgICAgICAgdGhpcy5jb2xvclNlcnZpY2UuaGV4MmhzbChjbG9zZXN0SGV4KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIG9uSHVlQ2hhbmdlKHZhbHVlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29udmVydENvbG9yVG9WYWx1ZVN0cmluZyh7IGg6IHZhbHVlIH0pO1xuICAgICAgICB0aGlzLnNldEN1cnJlbnRIdWVJbkNzcygpO1xuICAgIH1cblxuICAgIG9uU2F0dXJhdGlvbkNoYW5nZSh2YWx1ZSk6IHZvaWQge1xuICAgICAgICAvLyB0aGlzLmN1cnJlbnRTYXR1cmF0aW9uID0gZXZlbnQudmFsdWU7XG4gICAgICAgIHRoaXMuY29udmVydENvbG9yVG9WYWx1ZVN0cmluZyh7IHM6IHZhbHVlIH0pO1xuICAgIH1cblxuICAgIG9uTGlnaHRuZXNzQ2hhbmdlKHZhbHVlKTogdm9pZCB7XG4gICAgICAgIC8vIHRoaXMuY3VycmVudExpZ2h0bmVzcyA9IGV2ZW50LnZhbHVlO1xuICAgICAgICB0aGlzLmNvbnZlcnRDb2xvclRvVmFsdWVTdHJpbmcoe1xuICAgICAgICAgICAgbDpcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRMaWdodG5lc3NNYXggLVxuICAgICAgICAgICAgICAgIHZhbHVlICtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRMaWdodG5lc3NNaW4sXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uQ29sb3JWYWx1ZUNoYW5nZShjb2xvcik6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnZlcnRWYWx1ZVN0cmluZ1RvQ29sb3IoY29sb3IpO1xuICAgIH1cblxuICAgIG9uU2F2ZShldmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjb2xvciA9IHRoaXMuY2hlY2tBQUNvbXBsaWVudFxuICAgICAgICAgICAgPyB0aGlzLmNvbXBsaWVudENvbG9yXG4gICAgICAgICAgICA6IHRoaXMuZGF0YS52YWx1ZTtcblxuICAgICAgICAvLyB0aGlzLm5vdGlmeS5lbWl0KHsga2V5OiB0aGlzLmtleSwgdmFsdWU6IGNvbG9yIH0pO1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShjb2xvcik7XG4gICAgfVxuXG4gICAgY2xvc2VEaWFsb2coZXZlbnQpIHtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoZXZlbnQpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJwZXAtY29sb3ItcGlja2VyLWNvbnRhaW5lclwiPlxuICAgIDxwZXAtZGlhbG9nIFt0aXRsZV09XCInQ09MT1IuRElBTE9HX1RJVExFJyB8IHRyYW5zbGF0ZVwiIChjbG9zZSk9XCJjbG9zZURpYWxvZygkZXZlbnQpXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgcGVwLWRpYWxvZy1jb250ZW50PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbG9yLWNob29zZXItY29udGVudFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdXJyZW50LWNvbG9yXCIgW25nU3R5bGVdPVwieyAnYmFja2dyb3VuZCc6IGRhdGE/LnZhbHVlID8gZGF0YS52YWx1ZSA6ICd0cmFuc3BhcmVudCcgfVwiPjwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPHBlcC1zbGlkZXIgY2xhc3M9XCJzbGlkZXItYm94XCIgW2xhYmVsXT1cIidDT0xPUi5DSEFOR0VfSFVFJyB8IHRyYW5zbGF0ZVwiIFttaW5WYWx1ZV09XCJjdXJyZW50SHVlTWluXCJcbiAgICAgICAgICAgICAgICAgICAgW21heFZhbHVlXT1cImN1cnJlbnRIdWVNYXhcIiBbdmFsdWVdPVwiY3VycmVudEh1ZVwiIFtiYWNrZ3JvdW5kXT1cImN1cnJlbnRIdWVCYWNrZ3JvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uSHVlQ2hhbmdlKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICA8L3BlcC1zbGlkZXI+XG4gICAgICAgICAgICAgICAgPHBlcC1zbGlkZXIgY2xhc3M9XCJzbGlkZXItYm94XCIgW2xhYmVsXT1cIidDT0xPUi5DSEFOR0VfU0FUVVJBVElPTicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICBbbWluVmFsdWVdPVwiY3VycmVudFNhdHVyYXRpb25NaW5cIiBbbWF4VmFsdWVdPVwiY3VycmVudFNhdHVyYXRpb25NYXhcIiBbdmFsdWVdPVwiY3VycmVudFNhdHVyYXRpb25cIlxuICAgICAgICAgICAgICAgICAgICBbYmFja2dyb3VuZF09XCJjdXJyZW50U2F0dXJhdGlvbkJhY2tncm91bmRcIiAodmFsdWVDaGFuZ2UpPVwib25TYXR1cmF0aW9uQ2hhbmdlKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICA8L3BlcC1zbGlkZXI+XG4gICAgICAgICAgICAgICAgPHBlcC1zbGlkZXIgY2xhc3M9XCJzbGlkZXItYm94XCIgW2xhYmVsXT1cIidDT0xPUi5DSEFOR0VfTElHSFRORVNTJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIFttaW5WYWx1ZV09XCJjdXJyZW50TGlnaHRuZXNzTWluXCIgW21heFZhbHVlXT1cImN1cnJlbnRMaWdodG5lc3NNYXhcIlxuICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiY3VycmVudExpZ2h0bmVzc01heCAtIGN1cnJlbnRMaWdodG5lc3MgKyBjdXJyZW50TGlnaHRuZXNzTWluXCJcbiAgICAgICAgICAgICAgICAgICAgW2JhY2tncm91bmRdPVwiY3VycmVudExpZ2h0bmVzc0JhY2tncm91bmRcIiAodmFsdWVDaGFuZ2UpPVwib25MaWdodG5lc3NDaGFuZ2UoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgIDwvcGVwLXNsaWRlcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbG9yLXZhbHVlLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sb3ItdmFsdWVcIiBbbmdDbGFzc109XCJ7ICd3aXRoLWNvbXBsaWVudCc6IGNoZWNrQUFDb21wbGllbnQgfVwiPlxuICAgICAgICAgICAgICAgICAgICA8cGVwLXRleHRib3ggW2tleV09XCInY29sb3JWYWx1ZSdcIiBbbGFiZWxdPVwiJ0NPTE9SLkFERF9WQUxVRV9IRVJFJyB8IHRyYW5zbGF0ZSBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1hdHRlZFZhbHVlXT1cImRhdGE/LnZhbHVlXCIgW3ZhbHVlXT1cImRhdGE/LnZhbHVlXCIgKHZhbHVlQ2hhbmdlKT1cIm9uQ29sb3JWYWx1ZUNoYW5nZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvcGVwLXRleHRib3g+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNoZWNrQUFDb21wbGllbnRcIiBjbGFzcz1cImNvbG9yLWNvbXBsaWVudC1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPHBlcC1maWVsZC10aXRsZSBbbGFiZWxdPVwiJ0NPTE9SLkFBX0NPTVBMSUVOVCcgfCB0cmFuc2xhdGUgXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvcGVwLWZpZWxkLXRpdGxlPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sb3ItY29tcGxpZW50XCIgW25nU3R5bGVdPVwieyAnYmFja2dyb3VuZCc6IGNvbXBsaWVudENvbG9yIH1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cImlzVXNlckNob29zZUFBQ29tcGxpZW50Q29sb3JcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGVwLWljb24gbmFtZT1cInN5c3RlbV9va1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcGVwLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBwZXAtZGlhbG9nLWFjdGlvbnM+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sb3ItYWN0aW9ucyBwZXAtc3BhY2luZy1lbGVtZW50LW5lZ2F0aXZlXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1jaGVja2JveCAqbmdJZj1cImRhdGEuc2hvd0FBQ29tcGxpZW50XCIgY2xhc3M9XCJwZXAtc3BhY2luZy1lbGVtZW50XCIgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaGVja0FBQ29tcGxpZW50XCIgKGNoYW5nZSk9XCJjaGVja0FBQ29tcGxpZW50ID0gIWNoZWNrQUFDb21wbGllbnRcIiBbY2hlY2tlZF09XCJjaGVja0FBQ29tcGxpZW50XCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYm9keS14cyBlbGxpcHNpc1wiPnt7ICdDT0xPUi5BQV9DT01QTElFTlQnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbWF0LWNoZWNrYm94PlxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBbbWF0LWRpYWxvZy1jbG9zZV09XCJudWxsXCIgY2xhc3M9XCJwZXAtc3BhY2luZy1lbGVtZW50IHBlcC1idXR0b24gbWQgd2Vha1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3snQUNUSU9OUy5DQU5DRUwnIHwgdHJhbnNsYXRlfX1cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjbGFzcz1cInBlcC1zcGFjaW5nLWVsZW1lbnQgcGVwLWJ1dHRvbiBtZCBzdHJvbmdcIiAoY2xpY2spPVwib25TYXZlKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7J0FDVElPTlMuT0snIHwgdHJhbnNsYXRlfX1cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9wZXAtZGlhbG9nPlxuPC9kaXY+Il19
@@ -56,7 +56,7 @@ export class PepColorComponent {
56
56
  }
57
57
  }
58
58
  PepColorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepColorComponent, deps: [{ token: i1.PepDialogService }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
59
- PepColorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepColorComponent, selector: "pep-color", inputs: { key: "key", value: "value", label: "label", disabled: "disabled", xAlignment: "xAlignment", rowSpan: "rowSpan", type: "type", showTitle: "showTitle", renderTitle: "renderTitle", showAAComplient: "showAAComplient", checkAAComplient: "checkAAComplient", layoutType: "layoutType" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<pep-field-title *ngIf=\"renderTitle\" [label]=\"label\" [disabled]=\"disabled\" [xAlignment]=\"xAlignment\"\n [showTitle]=\"showTitle\">\n</pep-field-title>\n<div [id]=\"key\" class=\"pep-color-container\" [ngClass]=\"{ 'right-alignment': xAlignment == 'right' }\">\n <div pepRtlDirection (click)=\"!disabled ? chooseColor() : ''\" class=\"pep-color pep-input\"\n [ngClass]=\"{disable: disabled, 'one-row': rowSpan === 1}\"\n style=\"background: {{ value ? value + '!important' : 'transparent' }}; opacity: {{ disabled && value ? 0.12 : 1}};\">\n <button *ngIf=\"!disabled\" class=\"pep-button icon-button xs weak invert mat-button btn-edit\" tabindex=\"-1\"\n pepButtonBlur mat-button>\n <mat-icon>\n <pep-icon name=\"system_edit\"></pep-icon>\n </mat-icon>\n </button>\n </div>\n</div>", styles: [":host{display:grid}.pepperi-color-container .pepperi-color,.pepperi-color-container .pep-color,.pep-color-container .pepperi-color,.pep-color-container .pep-color{padding:0;display:grid}.pepperi-color-container .pepperi-color .btn-edit,.pepperi-color-container .pep-color .btn-edit,.pep-color-container .pepperi-color .btn-edit,.pep-color-container .pep-color .btn-edit{width:calc(var(--pep-form-field-height, 2.5rem) - var(--pep-spacing-lg, 1rem));min-width:unset;padding:0;margin:0 var(--pep-spacing-md, .75rem);justify-self:end;align-self:center}.pepperi-color-container.right-alignment .pepperi-color .btn-edit,.pepperi-color-container.right-alignment .pep-color .btn-edit,.pep-color-container.right-alignment .pepperi-color .btn-edit,.pep-color-container.right-alignment .pep-color .btn-edit{justify-self:start}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.PepButtonBlurDirective, selector: "[pepButtonBlur]" }, { kind: "directive", type: i5.PepRtlDirectionDirective, selector: "[pepRtlDirection]" }, { kind: "component", type: i6.PepIconComponent, selector: "pep-icon", inputs: ["spin", "name", "fill"] }, { kind: "component", type: i7.PepFieldTitleComponent, selector: "pep-field-title", inputs: ["label", "mandatory", "disabled", "maxFieldCharacters", "hint", "xAlignment", "showTitle", "inputLength"] }] });
59
+ PepColorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepColorComponent, selector: "pep-color", inputs: { key: "key", value: "value", label: "label", disabled: "disabled", xAlignment: "xAlignment", rowSpan: "rowSpan", type: "type", showTitle: "showTitle", renderTitle: "renderTitle", showAAComplient: "showAAComplient", checkAAComplient: "checkAAComplient", layoutType: "layoutType" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<pep-field-title *ngIf=\"renderTitle\" [label]=\"label\" [disabled]=\"disabled\" [xAlignment]=\"xAlignment\"\n [showTitle]=\"showTitle\">\n</pep-field-title>\n<div [id]=\"key\" class=\"pep-color-container\" [ngClass]=\"{ 'right-alignment': xAlignment == 'right' }\">\n <div pepRtlDirection (click)=\"!disabled ? chooseColor() : ''\" class=\"pep-color pep-input\"\n [ngClass]=\"{disable: disabled, 'one-row': rowSpan === 1}\"\n style=\"background: {{ value ? value + '!important' : 'transparent' }}; opacity: {{ disabled && value ? 0.12 : 1}};\">\n <button *ngIf=\"!disabled\" class=\"pep-button icon-button xs weak invert mat-button btn-edit\" tabindex=\"-1\"\n pepButtonBlur mat-button>\n <mat-icon>\n <pep-icon name=\"system_edit\"></pep-icon>\n </mat-icon>\n </button>\n </div>\n</div>", styles: [":host{display:grid}.pepperi-color-container .pepperi-color,.pepperi-color-container .pep-color,.pep-color-container .pepperi-color,.pep-color-container .pep-color{padding:0;display:grid}.pepperi-color-container .pepperi-color .btn-edit,.pepperi-color-container .pep-color .btn-edit,.pep-color-container .pepperi-color .btn-edit,.pep-color-container .pep-color .btn-edit{width:calc(var(--pep-form-field-height, 2.5rem) - var(--pep-spacing-lg, 1rem));min-width:unset;padding:0;margin:0 var(--pep-spacing-md, .75rem);justify-self:end;align-self:center}.pepperi-color-container.right-alignment .pepperi-color .btn-edit,.pepperi-color-container.right-alignment .pep-color .btn-edit,.pep-color-container.right-alignment .pepperi-color .btn-edit,.pep-color-container.right-alignment .pep-color .btn-edit{justify-self:start}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.PepButtonBlurDirective, selector: "[pepButtonBlur]" }, { kind: "directive", type: i5.PepRtlDirectionDirective, selector: "[pepRtlDirection]" }, { kind: "component", type: i6.PepIconComponent, selector: "pep-icon", inputs: ["spin", "name", "fill"] }, { kind: "component", type: i7.PepFieldTitleComponent, selector: "pep-field-title", inputs: ["label", "mandatory", "disabled", "maxFieldCharacters", "hint", "xAlignment", "showTitle", "inputLength", "fontBodyType"] }] });
60
60
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepColorComponent, decorators: [{
61
61
  type: Component,
62
62
  args: [{ selector: 'pep-color', template: "<pep-field-title *ngIf=\"renderTitle\" [label]=\"label\" [disabled]=\"disabled\" [xAlignment]=\"xAlignment\"\n [showTitle]=\"showTitle\">\n</pep-field-title>\n<div [id]=\"key\" class=\"pep-color-container\" [ngClass]=\"{ 'right-alignment': xAlignment == 'right' }\">\n <div pepRtlDirection (click)=\"!disabled ? chooseColor() : ''\" class=\"pep-color pep-input\"\n [ngClass]=\"{disable: disabled, 'one-row': rowSpan === 1}\"\n style=\"background: {{ value ? value + '!important' : 'transparent' }}; opacity: {{ disabled && value ? 0.12 : 1}};\">\n <button *ngIf=\"!disabled\" class=\"pep-button icon-button xs weak invert mat-button btn-edit\" tabindex=\"-1\"\n pepButtonBlur mat-button>\n <mat-icon>\n <pep-icon name=\"system_edit\"></pep-icon>\n </mat-icon>\n </button>\n </div>\n</div>", styles: [":host{display:grid}.pepperi-color-container .pepperi-color,.pepperi-color-container .pep-color,.pep-color-container .pepperi-color,.pep-color-container .pep-color{padding:0;display:grid}.pepperi-color-container .pepperi-color .btn-edit,.pepperi-color-container .pep-color .btn-edit,.pep-color-container .pepperi-color .btn-edit,.pep-color-container .pep-color .btn-edit{width:calc(var(--pep-form-field-height, 2.5rem) - var(--pep-spacing-lg, 1rem));min-width:unset;padding:0;margin:0 var(--pep-spacing-md, .75rem);justify-self:end;align-self:center}.pepperi-color-container.right-alignment .pepperi-color .btn-edit,.pepperi-color-container.right-alignment .pep-color .btn-edit,.pep-color-container.right-alignment .pepperi-color .btn-edit,.pep-color-container.right-alignment .pep-color .btn-edit{justify-self:start}\n"] }]
@@ -153,4 +153,4 @@ export class SmartSearchResponse {
153
153
  }
154
154
  export class KeyValuePair {
155
155
  }
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FwaS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvc3JjL2NvcmUvY29tbW9uL21vZGVsL3dhcGkubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksVUE0RVg7QUE1RUQsV0FBWSxVQUFVO0lBQ2xCLHFCQUFxQjtJQUNyQixpREFBYSxDQUFBO0lBQ2IsaURBQWEsQ0FBQTtJQUNiLDJFQUEwQixDQUFBO0lBQzFCLDBCQUEwQjtJQUMxQixtREFBYyxDQUFBO0lBQ2QsdURBQWdCLENBQUE7SUFDaEIscUJBQXFCO0lBQ3JCLDJDQUFVLENBQUE7SUFDViw0QkFBNEI7SUFDNUIseURBQWlCLENBQUE7SUFDakIsd0JBQXdCO0lBQ3hCLDZEQUFtQixDQUFBO0lBQ25CLHdCQUF3QjtJQUN4Qix1REFBZ0IsQ0FBQTtJQUNoQix5QkFBeUI7SUFDekIsbURBQWMsQ0FBQTtJQUNkLHdCQUF3QjtJQUN4QixrREFBYyxDQUFBO0lBQ2QsaUNBQWlDO0lBQ2pDLG9EQUFlLENBQUE7SUFDZixpQ0FBaUM7SUFDakMsNERBQW1CLENBQUE7SUFDbkIsc0NBQXNDO0lBQ3RDLHNEQUFnQixDQUFBO0lBQ2hCLHdCQUF3QjtJQUN4QixrREFBYyxDQUFBO0lBQ2QsMkJBQTJCO0lBQzNCLHdEQUFpQixDQUFBO0lBQ2pCLDhEQUFvQixDQUFBO0lBQ3BCLDREQUFtQixDQUFBO0lBQ25CLHNCQUFzQjtJQUN0Qiw4Q0FBWSxDQUFBO0lBQ1osMERBQWtCLENBQUE7SUFDbEIsc0JBQXNCO0lBQ3RCLDhDQUFZLENBQUE7SUFDWixnRkFBNkIsQ0FBQTtJQUM3QixzRUFBd0IsQ0FBQTtJQUN4QixnREFBYSxDQUFBO0lBQ2IsMkJBQTJCO0lBQzNCLHdEQUFpQixDQUFBO0lBQ2pCLHNEQUFnQixDQUFBO0lBQ2hCLHFCQUFxQjtJQUNyQiw0Q0FBVyxDQUFBO0lBQ1gsMEJBQTBCO0lB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QyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLDBCQUEwQjtRQUMxQiw2QkFBNkI7SUFDakMsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLGlCQUFpQjtDQU03QjtBQUVELE1BQU0sT0FBTyxtQkFBbUI7Q0FNL0I7QUFFRCxNQUFNLE9BQU8sWUFBWTtDQUd4QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEZJRUxEX1RZUEUge1xuICAgIC8vIHNwZWNpZnkgdGV4dCBmaWVsZFxuICAgICdEZWZhdWx0JyA9IDAsXG4gICAgJ1RleHRCb3gnID0gMSxcbiAgICAnTGltaXRlZExlbmd0aFRleHRCb3gnID0gMixcbiAgICAvLyBzcGVjaWZ5IHRleHQgYXJlYSBmaWVsZFxuICAgICdUZXh0QXJlYScgPSAzLFxuICAgICdUZXh0SGVhZGVyJyA9IDQsXG4gICAgLy8gc3BlY2lmeSBkYXRlIGZpZWxkXG4gICAgJ0RhdGUnID0gNSxcbiAgICAvLyBzcGVjaWZ5IGRhdGUgJiB0aW1lIGZpZWxkXG4gICAgJ0RhdGVBbmRUaW1lJyA9IDYsXG4gICAgLy8gc3BlY2lmeSBpbnRlZ2VyIGZpZWxkXG4gICAgJ051bWJlckludGVnZXInID0gNyxcbiAgICAvLyBzcGVjaWZ5IGRlY2ltYWwgZmllbGRcbiAgICAnTnVtYmVyUmVhbCcgPSA4LFxuICAgIC8vIHNwZWNpZnkgY3VycmVuY3kgZmllbGRcbiAgICAnQ3VycmVuY3knID0gOSxcbiAgICAvLyBzcGVjaWZ5IGJvb2xlYW4gZmllbGRcbiAgICAnQm9vbGVhbicgPSAxMCxcbiAgICAvLyBzcGVjaWZ5IG11bHRpcGxlIG9wdGlvbnMgZmllbGRcbiAgICAnQ29tYm9Cb3gnID0gMTEsXG4gICAgLy8gc3BlY2lmeSBtdWx0aXBsZSBvcHRpb25zIGZpZWxkXG4gICAgJ011bHRpVGlja0JveCcgPSAxMixcbiAgICAvLyBzcGVjaWZ5IHNlcGFyYXRvciAodmlldyBvbmx5KSBmaWVsZFxuICAgICdTZXBhcmF0b3InID0gMTMsXG4gICAgLy8gc3BlY2lmeSBhZGRyZXNzIGZpZWxkXG4gICAgJ0FkZHJlc3MnID0gMTQsXG4gICAgLy8gc3BlY2lmeSBwZXJjZW50YWdlIGZpZWxkXG4gICAgJ1BlcmNlbnRhZ2UnID0gMTUsXG4gICAgJ0VtcHR5Q29tYm9Cb3gnID0gMTYsIC8vIEZvciBDYXRlZ29yeSwgQ1BJUHJpY2VMaXN0LCBTcGVjaWFsIFByaWNlIExpc3QgKENvbWJvQm94IFdpdGhvdXQgVmFsdWVzKVxuICAgICdJbnRlcm5hbExpbmsnID0gMTcsIC8vIGZvciByZXBzLCBDb250YWN0cywgTG9jYXRpb25zICYgQ2F0YWxvZ3NcbiAgICAvLyBzcGVjaWZ5IGVtYWlsIGZpZWxkXG4gICAgJ0VtYWlsJyA9IDE4LFxuICAgICdMaW1pdGVkRGF0ZScgPSAxOSxcbiAgICAvLyBzcGVjaWZ5IGltYWdlIGZpZWxkXG4gICAgJ0ltYWdlJyA9IDIwLFxuICAgICdNdWx0aVRpY2tCb3hUb0NvbWJvQm94JyA9IDIxLFxuICAgICdFbXB0eU11bHRpVGlja0JveCcgPSAyMixcbiAgICAnVG90YWxzJyA9IDIzLFxuICAgIC8vIHNwZWNpZnkgYXR0YWNobWVudCBmaWVsZFxuICAgICdBdHRhY2htZW50JyA9IDI0LFxuICAgICdTaWduYXR1cmUnID0gMjUsXG4gICAgLy8gc3BlY2lmeSBsaW5rIGZpZWxkXG4gICAgJ0xpbmsnID0gMjYsXG4gICAgLy8gc3BlY2lmeSBpbWFnZSB1cmwgZmllbGRcbiAgICAnSW1hZ2VVUkwnID0gMjcsXG4gICAgJ051bWJlckludGVnZXJRdWFudGl0eVNlbGVjdG9yJyA9IDI4LCAvLyBoYWNrIGZvciBxdWFudGl0eSBzZWxlY3RvciBpbiBjYXNlIG9mIGludGVnZXJcbiAgICAnTnVtYmVyUmVhbFF1YW50aXR5U2VsZWN0b3InID0gMjksIC8vIGhhY2sgZm9yIHF1YW50aXR5IHNlbGVjdG9yIGluIGNhc2Ugb2YgZG91YmxlXG4gICAgJ051bWJlckludGVnZXJGb3JNYXRyaXgnID0gMzAsIC8vIGhhY2sgZm9yIGludGVnZXIgaW4gbWF0cml4XG4gICAgJ051bWJlclJlYWxGb3JNYXRyaXgnID0gMzEsIC8vIGhhY2sgZm9yIGRvdWJsZSBpbiBtYXRyaXhcbiAgICAnSW1hZ2VzJyA9IDMyLCAvLyBoYWNrIGZvciBJbWFnZXMgKGZvciBmaWxtc3RyaXAgYW5kIHZhcmlhbnRzKVxuICAgICdJbmRpY2F0b3JzJyA9IDMzLCAvLyBJbmRpY2F0b3JzIGlzIGxpa2UgYWRkcmVzcyAoZ3JvdXAgZmllbGQgdGhhdCBjb25haW5zIGJvb2xlYW4gZmllbGRzKS5cbiAgICAnQ2FsY3VsYXRlZFJlYWwnID0gMzQsXG4gICAgJ0NhbGN1bGF0ZWRJbnQnID0gMzUsXG4gICAgJ0NhbGN1bGF0ZWRTdHJpbmcnID0gMzYsXG4gICAgJ0NhbGN1bGF0ZWREYXRlJyA9IDM3LFxuICAgICdDYWxjdWxhdGVkQm9vbCcgPSAzOCxcbiAgICAnTWFwRGF0YURyb3BEb3duJyA9IDM5LFxuICAgICdNYXBEYXRhUmVhbCcgPSA0MCxcbiAgICAnTWFwRGF0YVN0cmluZycgPSA0MSxcbiAgICAnTWFwRGF0YUludCcgPSA0MixcbiAgICAnU3VtJyA9IDQzLFxuICAgICdQaG9uZScgPSA0NCxcbiAgICAnVXJsRm9yQXBpJyA9IDQ1LFxuICAgICdNYW55VG9NYW55VXJsRm9yQXBpJyA9IDQ2LFxuICAgICdSZWZlcmVuY2VUeXBlJyA9IDQ3LFxuICAgICdHdWlkUmVmZXJlbmNlVHlwZScgPSA0OCxcbiAgICAnQnV0dG9uJyA9IDQ5LFxuICAgICdJbnRlcm5hbFBhZ2UnID0gNTAsIC8vIFRoZSBvbGQgdmFsdWUgd2FzIDQ1IC0gaW4gdGhlIGNwaSBwcm9qZWN0IHRoZSBcIkludGVybmFsUGFnZVwiIHZhbHVlIGlzIDUwIHNvIGkgZml4ZWQgaXQhISFcbiAgICAnRHVyYXRpb24nID0gNTEsXG4gICAgJ0xpc3RPZk9iamVjdHMnID0gNTIsXG4gICAgJ1BhY2thZ2UnID0gNTMsIC8vIFBhY2thZ2UgUXVhbnRpdHkgU2VsZWN0b3JcbiAgICAnUmVsYXRlZE9iamVjdHNDYXJkcycgPSA1NCxcbiAgICAnQm9vbGVhblRleHQnID0gNTUsIC8vIEJvb2xlYW4gdGhhdCByZXR1cm4gYSBzdHJpbmcgZGVmaW5lZCBieSB0aGUgdXNlciBpbiBjYXNlIG9mIHRydWUvZmFsc2VcbiAgICAnUmljaFRleHRIVE1MJyA9IDU2LCAvLyBIdG1sIFRleHRcbn1cblxuZXhwb3J0IGVudW0gWF9BTElHTk1FTlRfVFlQRSB7XG4gICAgTm9uZSA9IDAsXG4gICAgTGVmdCA9IDEsXG4gICAgUmlnaHQgPSAyLFxuICAgIENlbnRlciA9IDMsXG59XG5cbmV4cG9ydCBlbnVtIFlfQUxJR05NRU5UX1RZUEUge1xuICAgIE5vbmUgPSAwLFxuICAgIFRvcCA9IDEsXG4gICAgQm90dG9tID0gMixcbiAgICBDZW50ZXIgPSAzLFxufVxuXG5leHBvcnQgY2xhc3MgRmllbGRMYXlvdXQge1xuICAgIFg6IG51bWJlcjtcbiAgICBXaWR0aDogbnVtYmVyO1xuICAgIFhBbGlnbm1lbnQ6IFhfQUxJR05NRU5UX1RZUEU7XG4gICAgWTogWV9BTElHTk1FTlRfVFlQRTtcbiAgICBIZWlnaHQ6IG51bWJlcjtcbiAgICBZQWxpZ25tZW50OiBZX0FMSUdOTUVOVF9UWVBFO1xuICAgIExpbmVOdW1iZXI6IG51bWJlcjtcblxuICAgIC8vIGNvbnN0cnVjdG9yKFxuICAgIC8vICAgICB4ID0gMCxcbiAgICAvLyAgICAgd2lkdGggPSAxLFxuICAgIC8vICAgICB4QWxpZ25tZW50OiBYX0FMSUdOTUVOVF9UWVBFID0gMSwgeTogWV9BTElHTk1FTlRfVFlQRSA9IDAsIGhlaWdodCA9IDEsIHlBbGlnbm1lbnQgPSAxLCBsaW5lTnVtYmVyID0gMSkge1xuICAgIC8vICAgICB0aGlzLlggPSB4O1xuICAgIC8vICAgICB0aGlzLldpZHRoID0gd2lkdGg7XG4gICAgLy8gICAgIHRoaXMuWEFsaWdubWVudCA9IHhBbGlnbm1lbnQ7XG4gICAgLy8gICAgIHRoaXMuWSA9IHk7XG4gICAgLy8gICAgIHRoaXMuSGVpZ2h0ID0gaGVpZ2h0O1xuICAgIC8vICAgICB0aGlzLllBbGlnbm1lbnQgPSB5QWxpZ25tZW50O1xuICAgIC8vICAgICB0aGlzLkxpbmVOdW1iZXIgPSBsaW5lTnVtYmVyO1xuICAgIC8vIH1cblxuICAgIGNvbnN0cnVjdG9yKGRhdGE6IFBhcnRpYWw8RmllbGRMYXlvdXQ+KSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywgZGF0YSk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVUlDb250cm9sRmllbGQge1xuICAgIFRpdGxlOiBzdHJpbmc7XG4gICAgTWFuZGF0b3J5RmllbGQgPSBmYWxzZTtcbiAgICBNYW5kYXRvcnkgPSBmYWxzZTtcbiAgICBSZWFkT25seUZpZWxkOiBib29sZWFuO1xuICAgIFJlYWRPbmx5OiBib29sZWFuO1xuICAgIEZpZWxkQ29uZGl0aW9uczogYW55O1xuICAgIEN1c3RvbUZpZWxkOiBhbnk7XG4gICAgQXBpTmFtZTogc3RyaW5nO1xuICAgIEZpZWxkVHlwZTogRklFTERfVFlQRTtcbiAgICBPcHRpb25hbFZhbHVlczogQXJyYXk8S2V5VmFsdWVQYWlyPHN0cmluZz4+O1xuICAgIE1pblZhbHVlOiBudW1iZXI7XG4gICAgTWF4VmFsdWU6IG51bWJlcjtcbiAgICBNYXhDaGFyYWN0ZXJzOiBudW1iZXI7XG4gICAgTWF4RmllbGRDaGFyYWN0ZXJzOiBudW1iZXI7XG4gICAgTWF4TGluZXM6IG51bWJlcjtcbiAgICBMYXlvdXQ6IEZpZWxkTGF5b3V0OyAvLyB7IFg6IG51bWJlcjsgSGVpZ2h0OiBudW1iZXI7IFk6IG51bWJlcjsgV2lkdGg6IG51bWJlcjsgWEFsaWdubWVudDogbnVtYmVyOyBZQWxpZ25tZW50OiBudW1iZXIgfTtcbiAgICBDb2x1bW5XaWR0aDogbnVtYmVyO1xuICAgIENvbHVtbldpZHRoVHlwZTogbnVtYmVyO1xuICAgIEZpZWxkTmFtZTogc3RyaW5nO1xuICAgIERlZmF1bHRWYWx1ZTogc3RyaW5nO1xuICAgIEhpZGRlbjogYm9vbGVhbjtcbiAgICBPYmplY3RUeXBlUmVmZXJlbmNlOiBhbnk7XG4gICAgUGFyZW50RmllbGQ6IHN0cmluZztcbiAgICBXcm50eUZpZWxkTmFtZTogc3RyaW5nO1xuICAgIEVkaXRvcjogYW55O1xuICAgIG1pbkZpZWxkV2lkdGggPSA0NTtcbiAgICBjYWxjQ29sdW1uV2lkdGggPSAxMDtcbiAgICBjYWxjVGl0bGVDb2x1bW5XaWR0aFN0cmluZyA9ICcxMDAlJztcbiAgICBjYWxjQ29sdW1uV2lkdGhTdHJpbmcgPSAnMTAwJSc7XG59XG5cbmV4cG9ydCBjbGFzcyBVSUNvbnRyb2wge1xuICAgIE9iamVjdElEOiBhbnk7XG4gICAgVHlwZTogc3RyaW5nO1xuICAgIERpc3BsYXlOYW1lOiBzdHJpbmc7XG4gICAgQ29udHJvbEZpZWxkczogQXJyYXk8VUlDb250cm9sRmllbGQ+O1xuICAgIENvbHVtbnM6IG51bWJlcjtcbn1cblxuZXhwb3J0IGNsYXNzIE9iamVjdHNEYXRhUm93Q2VsbCB7XG4gICAgQWNjZXNzb3J5Pzogc3RyaW5nO1xuICAgIEFkZGl0aW9uYWxWYWx1ZT86IHN0cmluZztcbiAgICBBcGlOYW1lOiBzdHJpbmc7XG4gICAgQmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIEVuYWJsZWQ/OiBib29sZWFuO1xuICAgIEZpZWxkVHlwZTogbnVtYmVyO1xuICAgIEZvcm1hdHRlZFZhbHVlOiBhbnk7XG4gICAgR3JvdXBGaWVsZHM/OiBBcnJheTxPYmplY3RzRGF0YVJvd0NlbGw+O1xuICAgIEhpZ2hsaWdodGVkPzogYm9vbGVhbjtcbiAgICBOb3RpZmljYXRpb25JbmZvPzogc3RyaW5nO1xuICAgIE9wdGlvbmFsVmFsdWVzPzogQXJyYXk8S2V5VmFsdWVQYWlyPHN0cmluZz4+O1xuICAgIFJlZmVyZW5jZU9iamVjdEludGVybmFsVHlwZT86IHN0cmluZztcbiAgICBSZWZlcmVuY2VPYmplY3RTdWJUeXBlPzogc3RyaW5nO1xuICAgIFJlZmVyZW5jZU9iamVjdFR5cGU/OiBzdHJpbmc7XG4gICAgVGV4dENvbG9yPzogc3RyaW5nO1xuICAgIFVpUGFnZUtleT86IHN0cmluZztcbiAgICBVSVBhZ2VJbmZvPzogYW55O1xuICAgIC8vIFR5cGU/OiBzdHJpbmc7IC8vIFRoaXMgaXMgaW4gdGhlIG9iamVjdD8/XG4gICAgVmFsdWU6IGFueTtcbiAgICBWaXNpYmxlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIE9iamVjdHNEYXRhUm93IHtcbiAgICBBZGRpdGlvbmFsRGF0YT86IGFueTtcbiAgICBCYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgRXh0cmFJbmZvPzogQXJyYXk8eyBLZXk6IHN0cmluZzsgVmFsdWU6IHN0cmluZyB9PjtcbiAgICBGaWVsZHM6IEFycmF5PE9iamVjdHNEYXRhUm93Q2VsbD47XG4gICAgSXNFZGl0YWJsZSA9IHRydWU7XG4gICAgSXNTZWxlY3RhYmxlRm9yQWN0aW9ucyA9IHRydWU7XG4gICAgTWFpbkFjdGlvbj86IHN0cmluZztcbiAgICBQcm9maWxlPzogYW55O1xuICAgIFR5cGU6IG51bWJlcjtcbiAgICBVSUQ6IGFueTtcbiAgICBLZXk6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIE9iamVjdFNpbmdsZURhdGEge1xuICAgIERhdGE6IE9iamVjdHNEYXRhUm93O1xuICAgIEVycm9yQ29kZTogc3RyaW5nO1xuICAgIEVycm9yTWVzc2FnZTogc3RyaW5nO1xuICAgIElzRWRpdGFibGU6IGJvb2xlYW47XG4gICAgU3VjY2VzczogYm9vbGVhbjtcbiAgICBUeXBlOiBzdHJpbmc7XG4gICAgVUlDb250cm9sOiBVSUNvbnRyb2w7XG5cbiAgICBjb25zdHJ1Y3Rvcih1aUNvbnRyb2w6IFVJQ29udHJvbCA9IG51bGwsIGRhdGE6IE9iamVjdHNEYXRhUm93ID0gbnVsbCkge1xuICAgICAgICB0aGlzLlN1Y2Nlc3MgPSB0cnVlO1xuICAgICAgICB0aGlzLkVycm9yTWVzc2FnZSA9ICcnO1xuICAgICAgICB0aGlzLlR5cGUgPSAnJztcblxuICAgICAgICB0aGlzLlVJQ29udHJvbCA9IHVpQ29udHJvbDtcbiAgICAgICAgdGhpcy5EYXRhID0gZGF0YTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBPYmplY3RzRGF0YSB7XG4gICAgRGF0ZUZpbHRlcj86IHN0cmluZztcbiAgICBFcnJvckNvZGU6IHN0cmluZztcbiAgICBFcnJvck1lc3NhZ2U6IHN0cmluZztcbiAgICBSb3dzOiBBcnJheTxPYmplY3RzRGF0YVJvdz47XG4gICAgU2VhcmNoQ29kZT86IHN0cmluZztcbiAgICBTZWNTbWFydFNlYXJjaExpc3Q/OiBbXTtcbiAgICBTbWFydFNlYXJjaExpc3Q6IEFycmF5PFNtYXJ0U2VhcmNoUmVzcG9uc2U+O1xuICAgIFN1Y2Nlc3M6IGJvb2xlYW47XG4gICAgVG90YWxSb3dzOiBudW1iZXI7XG4gICAgVUlDb250cm9sOiBVSUNvbnRyb2w7XG4gICAgLy8gQWxsUm93czogQXJyYXk8T2JqZWN0c0RhdGFSb3c+O1xuICAgIC8vIFRvdGFsQW1vdW50OiBhbnk7XG4gICAgLy8gQ3VycmVuY3lTeW1ib2w6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLkVycm9yTWVzc2FnZSA9ICcnO1xuICAgICAgICB0aGlzLlN1Y2Nlc3MgPSB0cnVlO1xuICAgICAgICAvLyB0aGlzLlRvdGFsQW1vdW50ID0gJzAnO1xuICAgICAgICAvLyB0aGlzLkN1cnJlbmN5U3ltYm9sID0gJyQnO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNtYXJ0U2VhcmNoVmFsdWVzIHtcbiAgICBBcGlOYW1lOiBzdHJpbmc7XG4gICAgQ29tcGFyaXNvblR5cGU6IHN0cmluZztcbiAgICBWYWx1ZTogc3RyaW5nO1xuICAgIFZhbHVlUmFuZ2U6IHsgU3RhcnQ6IHN0cmluZzsgRW5kOiBzdHJpbmcgfTtcbiAgICBWYWx1ZXM6IEFycmF5PHN0cmluZz47XG59XG5cbmV4cG9ydCBjbGFzcyBTbWFydFNlYXJjaFJlc3BvbnNlIHtcbiAgICBBcGlOYW1lOiBzdHJpbmc7XG4gICAgRmllbGRUeXBlOiBhbnk7XG4gICAgVGl0bGU6IHN0cmluZztcbiAgICBWYWx1ZXM6IEFycmF5PEtleVZhbHVlUGFpcjxzdHJpbmc+PjtcbiAgICBTbWFydFNlYXJjaERhdGE6IFNtYXJ0U2VhcmNoVmFsdWVzO1xufVxuXG5leHBvcnQgY2xhc3MgS2V5VmFsdWVQYWlyPFQ+IHtcbiAgICBLZXk6IHN0cmluZztcbiAgICBWYWx1ZTogVDtcbn1cbiJdfQ==
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FwaS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvc3JjL2NvcmUvY29tbW9uL21vZGVsL3dhcGkubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksVUE0RVg7QUE1RUQsV0FBWSxVQUFVO0lBQ2xCLHFCQUFxQjtJQUNyQixpREFBYSxDQUFBO0lBQ2IsaURBQWEsQ0FBQTtJQUNiLDJFQUEwQixDQUFBO0lBQzFCLDBCQUEwQjtJQUMxQixtREFBYyxDQUFBO0lBQ2QsdURBQWdCLENBQUE7SUFDaEIscUJBQXFCO0lBQ3JCLDJDQUFVLENBQUE7SUFDViw0QkFBNEI7SUFDNUIseURBQWlCLENBQUE7SUFDakIsd0JBQXdCO0lBQ3hCLDZEQUFtQixDQUFBO0lBQ25CLHdCQUF3QjtJQUN4Qix1REFBZ0IsQ0FBQTtJQUNoQix5QkFBeUI7SUFDekIsbURBQWMsQ0FBQTtJQUNkLHdCQUF3QjtJQUN4QixrREFBYyxDQUFBO0lBQ2QsaUNBQWlDO0lBQ2pDLG9EQUFlLENBQUE7SUFDZixpQ0FBaUM7SUFDakMsNERBQW1CLENBQUE7SUFDbkIsc0NBQXNDO0lBQ3RDLHNEQUFnQixDQUFBO0lBQ2hCLHdCQUF3QjtJQUN4QixrREFBYyxDQUFBO0lBQ2QsMkJBQTJCO0lBQzNCLHdEQUFpQixDQUFBO0lBQ2pCLDhEQUFvQixDQUFBO0lBQ3BCLDREQUFtQixDQUFBO0lBQ25CLHNCQUFzQjtJQUN0Qiw4Q0FBWSxDQUFBO0lBQ1osMERBQWtCLENBQUE7SUFDbEIsc0JBQXNCO0lBQ3RCLDhDQUFZLENBQUE7SUFDWixnRkFBNkIsQ0FBQTtJQUM3QixzRUFBd0IsQ0FBQTtJQUN4QixnREFBYSxDQUFBO0lBQ2IsMkJBQTJCO0lBQzNCLHdEQUFpQixDQUFBO0lBQ2pCLHNEQUFnQixDQUFBO0lBQ2hCLHFCQUFxQjtJQUNyQiw0Q0FBVyxDQUFBO0lBQ1gsMEJBQTBCO0lB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QyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLDBCQUEwQjtRQUMxQiw2QkFBNkI7SUFDakMsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLGlCQUFpQjtDQU03QjtBQUVELE1BQU0sT0FBTyxtQkFBbUI7Q0FNL0I7QUFFRCxNQUFNLE9BQU8sWUFBWTtDQUd4QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEZJRUxEX1RZUEUge1xuICAgIC8vIHNwZWNpZnkgdGV4dCBmaWVsZFxuICAgICdEZWZhdWx0JyA9IDAsXG4gICAgJ1RleHRCb3gnID0gMSxcbiAgICAnTGltaXRlZExlbmd0aFRleHRCb3gnID0gMixcbiAgICAvLyBzcGVjaWZ5IHRleHQgYXJlYSBmaWVsZFxuICAgICdUZXh0QXJlYScgPSAzLFxuICAgICdUZXh0SGVhZGVyJyA9IDQsXG4gICAgLy8gc3BlY2lmeSBkYXRlIGZpZWxkXG4gICAgJ0RhdGUnID0gNSxcbiAgICAvLyBzcGVjaWZ5IGRhdGUgJiB0aW1lIGZpZWxkXG4gICAgJ0RhdGVBbmRUaW1lJyA9IDYsXG4gICAgLy8gc3BlY2lmeSBpbnRlZ2VyIGZpZWxkXG4gICAgJ051bWJlckludGVnZXInID0gNyxcbiAgICAvLyBzcGVjaWZ5IGRlY2ltYWwgZmllbGRcbiAgICAnTnVtYmVyUmVhbCcgPSA4LFxuICAgIC8vIHNwZWNpZnkgY3VycmVuY3kgZmllbGRcbiAgICAnQ3VycmVuY3knID0gOSxcbiAgICAvLyBzcGVjaWZ5IGJvb2xlYW4gZmllbGRcbiAgICAnQm9vbGVhbicgPSAxMCxcbiAgICAvLyBzcGVjaWZ5IG11bHRpcGxlIG9wdGlvbnMgZmllbGRcbiAgICAnQ29tYm9Cb3gnID0gMTEsXG4gICAgLy8gc3BlY2lmeSBtdWx0aXBsZSBvcHRpb25zIGZpZWxkXG4gICAgJ011bHRpVGlja0JveCcgPSAxMixcbiAgICAvLyBzcGVjaWZ5IHNlcGFyYXRvciAodmlldyBvbmx5KSBmaWVsZFxuICAgICdTZXBhcmF0b3InID0gMTMsXG4gICAgLy8gc3BlY2lmeSBhZGRyZXNzIGZpZWxkXG4gICAgJ0FkZHJlc3MnID0gMTQsXG4gICAgLy8gc3BlY2lmeSBwZXJjZW50YWdlIGZpZWxkXG4gICAgJ1BlcmNlbnRhZ2UnID0gMTUsXG4gICAgJ0VtcHR5Q29tYm9Cb3gnID0gMTYsIC8vIEZvciBDYXRlZ29yeSwgQ1BJUHJpY2VMaXN0LCBTcGVjaWFsIFByaWNlIExpc3QgKENvbWJvQm94IFdpdGhvdXQgVmFsdWVzKVxuICAgICdJbnRlcm5hbExpbmsnID0gMTcsIC8vIGZvciByZXBzLCBDb250YWN0cywgTG9jYXRpb25zICYgQ2F0YWxvZ3NcbiAgICAvLyBzcGVjaWZ5IGVtYWlsIGZpZWxkXG4gICAgJ0VtYWlsJyA9IDE4LFxuICAgICdMaW1pdGVkRGF0ZScgPSAxOSxcbiAgICAvLyBzcGVjaWZ5IGltYWdlIGZpZWxkXG4gICAgJ0ltYWdlJyA9IDIwLFxuICAgICdNdWx0aVRpY2tCb3hUb0NvbWJvQm94JyA9IDIxLFxuICAgICdFbXB0eU11bHRpVGlja0JveCcgPSAyMixcbiAgICAnVG90YWxzJyA9IDIzLFxuICAgIC8vIHNwZWNpZnkgYXR0YWNobWVudCBmaWVsZFxuICAgICdBdHRhY2htZW50JyA9IDI0LFxuICAgICdTaWduYXR1cmUnID0gMjUsXG4gICAgLy8gc3BlY2lmeSBsaW5rIGZpZWxkXG4gICAgJ0xpbmsnID0gMjYsXG4gICAgLy8gc3BlY2lmeSBpbWFnZSB1cmwgZmllbGRcbiAgICAnSW1hZ2VVUkwnID0gMjcsXG4gICAgJ051bWJlckludGVnZXJRdWFudGl0eVNlbGVjdG9yJyA9IDI4LCAvLyBoYWNrIGZvciBxdWFudGl0eSBzZWxlY3RvciBpbiBjYXNlIG9mIGludGVnZXJcbiAgICAnTnVtYmVyUmVhbFF1YW50aXR5U2VsZWN0b3InID0gMjksIC8vIGhhY2sgZm9yIHF1YW50aXR5IHNlbGVjdG9yIGluIGNhc2Ugb2YgZG91YmxlXG4gICAgJ051bWJlckludGVnZXJGb3JNYXRyaXgnID0gMzAsIC8vIGhhY2sgZm9yIGludGVnZXIgaW4gbWF0cml4XG4gICAgJ051bWJlclJlYWxGb3JNYXRyaXgnID0gMzEsIC8vIGhhY2sgZm9yIGRvdWJsZSBpbiBtYXRyaXhcbiAgICAnSW1hZ2VzJyA9IDMyLCAvLyBoYWNrIGZvciBJbWFnZXMgKGZvciBmaWxtc3RyaXAgYW5kIHZhcmlhbnRzKVxuICAgICdJbmRpY2F0b3JzJyA9IDMzLCAvLyBJbmRpY2F0b3JzIGlzIGxpa2UgYWRkcmVzcyAoZ3JvdXAgZmllbGQgdGhhdCBjb25haW5zIGJvb2xlYW4gZmllbGRzKS5cbiAgICAnQ2FsY3VsYXRlZFJlYWwnID0gMzQsXG4gICAgJ0NhbGN1bGF0ZWRJbnQnID0gMzUsXG4gICAgJ0NhbGN1bGF0ZWRTdHJpbmcnID0gMzYsXG4gICAgJ0NhbGN1bGF0ZWREYXRlJyA9IDM3LFxuICAgICdDYWxjdWxhdGVkQm9vbCcgPSAzOCxcbiAgICAnTWFwRGF0YURyb3BEb3duJyA9IDM5LFxuICAgICdNYXBEYXRhUmVhbCcgPSA0MCxcbiAgICAnTWFwRGF0YVN0cmluZycgPSA0MSxcbiAgICAnTWFwRGF0YUludCcgPSA0MixcbiAgICAnU3VtJyA9IDQzLFxuICAgICdQaG9uZScgPSA0NCxcbiAgICAnVXJsRm9yQXBpJyA9IDQ1LFxuICAgICdNYW55VG9NYW55VXJsRm9yQXBpJyA9IDQ2LFxuICAgICdSZWZlcmVuY2VUeXBlJyA9IDQ3LFxuICAgICdHdWlkUmVmZXJlbmNlVHlwZScgPSA0OCxcbiAgICAnQnV0dG9uJyA9IDQ5LFxuICAgICdJbnRlcm5hbFBhZ2UnID0gNTAsIC8vIFRoZSBvbGQgdmFsdWUgd2FzIDQ1IC0gaW4gdGhlIGNwaSBwcm9qZWN0IHRoZSBcIkludGVybmFsUGFnZVwiIHZhbHVlIGlzIDUwIHNvIGkgZml4ZWQgaXQhISFcbiAgICAnRHVyYXRpb24nID0gNTEsXG4gICAgJ0xpc3RPZk9iamVjdHMnID0gNTIsXG4gICAgJ1BhY2thZ2UnID0gNTMsIC8vIFBhY2thZ2UgUXVhbnRpdHkgU2VsZWN0b3JcbiAgICAnUmVsYXRlZE9iamVjdHNDYXJkcycgPSA1NCxcbiAgICAnQm9vbGVhblRleHQnID0gNTUsIC8vIEJvb2xlYW4gdGhhdCByZXR1cm4gYSBzdHJpbmcgZGVmaW5lZCBieSB0aGUgdXNlciBpbiBjYXNlIG9mIHRydWUvZmFsc2VcbiAgICAnUmljaFRleHRIVE1MJyA9IDU2LCAvLyBIdG1sIFRleHRcbn1cblxuZXhwb3J0IGVudW0gWF9BTElHTk1FTlRfVFlQRSB7XG4gICAgTm9uZSA9IDAsXG4gICAgTGVmdCA9IDEsXG4gICAgUmlnaHQgPSAyLFxuICAgIENlbnRlciA9IDMsXG59XG5cbmV4cG9ydCBlbnVtIFlfQUxJR05NRU5UX1RZUEUge1xuICAgIE5vbmUgPSAwLFxuICAgIFRvcCA9IDEsXG4gICAgQm90dG9tID0gMixcbiAgICBDZW50ZXIgPSAzLFxufVxuXG5leHBvcnQgY2xhc3MgRmllbGRMYXlvdXQge1xuICAgIFg6IG51bWJlcjtcbiAgICBXaWR0aDogbnVtYmVyO1xuICAgIFhBbGlnbm1lbnQ6IFhfQUxJR05NRU5UX1RZUEU7XG4gICAgWTogWV9BTElHTk1FTlRfVFlQRTtcbiAgICBIZWlnaHQ6IG51bWJlcjtcbiAgICBZQWxpZ25tZW50OiBZX0FMSUdOTUVOVF9UWVBFO1xuICAgIExpbmVOdW1iZXI6IG51bWJlcjtcblxuICAgIC8vIGNvbnN0cnVjdG9yKFxuICAgIC8vICAgICB4ID0gMCxcbiAgICAvLyAgICAgd2lkdGggPSAxLFxuICAgIC8vICAgICB4QWxpZ25tZW50OiBYX0FMSUdOTUVOVF9UWVBFID0gMSwgeTogWV9BTElHTk1FTlRfVFlQRSA9IDAsIGhlaWdodCA9IDEsIHlBbGlnbm1lbnQgPSAxLCBsaW5lTnVtYmVyID0gMSkge1xuICAgIC8vICAgICB0aGlzLlggPSB4O1xuICAgIC8vICAgICB0aGlzLldpZHRoID0gd2lkdGg7XG4gICAgLy8gICAgIHRoaXMuWEFsaWdubWVudCA9IHhBbGlnbm1lbnQ7XG4gICAgLy8gICAgIHRoaXMuWSA9IHk7XG4gICAgLy8gICAgIHRoaXMuSGVpZ2h0ID0gaGVpZ2h0O1xuICAgIC8vICAgICB0aGlzLllBbGlnbm1lbnQgPSB5QWxpZ25tZW50O1xuICAgIC8vICAgICB0aGlzLkxpbmVOdW1iZXIgPSBsaW5lTnVtYmVyO1xuICAgIC8vIH1cblxuICAgIGNvbnN0cnVjdG9yKGRhdGE6IFBhcnRpYWw8RmllbGRMYXlvdXQ+KSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywgZGF0YSk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVUlDb250cm9sRmllbGQge1xuICAgIFRpdGxlOiBzdHJpbmc7XG4gICAgTWFuZGF0b3J5RmllbGQgPSBmYWxzZTtcbiAgICBNYW5kYXRvcnkgPSBmYWxzZTtcbiAgICBSZWFkT25seUZpZWxkOiBib29sZWFuO1xuICAgIFJlYWRPbmx5OiBib29sZWFuO1xuICAgIEZpZWxkQ29uZGl0aW9uczogYW55O1xuICAgIEN1c3RvbUZpZWxkOiBhbnk7XG4gICAgQXBpTmFtZTogc3RyaW5nO1xuICAgIEZpZWxkVHlwZTogRklFTERfVFlQRTtcbiAgICBPcHRpb25hbFZhbHVlczogQXJyYXk8S2V5VmFsdWVQYWlyPHN0cmluZz4+O1xuICAgIE1pblZhbHVlOiBudW1iZXI7XG4gICAgTWF4VmFsdWU6IG51bWJlcjtcbiAgICBNYXhDaGFyYWN0ZXJzOiBudW1iZXI7XG4gICAgTWF4RmllbGRDaGFyYWN0ZXJzOiBudW1iZXI7XG4gICAgTWF4TGluZXM6IG51bWJlcjtcbiAgICBMYXlvdXQ6IEZpZWxkTGF5b3V0OyAvLyB7IFg6IG51bWJlcjsgSGVpZ2h0OiBudW1iZXI7IFk6IG51bWJlcjsgV2lkdGg6IG51bWJlcjsgWEFsaWdubWVudDogbnVtYmVyOyBZQWxpZ25tZW50OiBudW1iZXIgfTtcbiAgICBDb2x1bW5XaWR0aDogbnVtYmVyO1xuICAgIENvbHVtbldpZHRoVHlwZTogbnVtYmVyO1xuICAgIEZpZWxkTmFtZTogc3RyaW5nO1xuICAgIERlZmF1bHRWYWx1ZTogc3RyaW5nO1xuICAgIEhpZGRlbjogYm9vbGVhbjtcbiAgICBPYmplY3RUeXBlUmVmZXJlbmNlOiBhbnk7XG4gICAgUGFyZW50RmllbGQ6IHN0cmluZztcbiAgICBXcm50eUZpZWxkTmFtZTogc3RyaW5nO1xuICAgIEVkaXRvcjogYW55O1xuICAgIG1pbkZpZWxkV2lkdGggPSA0NTtcbiAgICBjYWxjQ29sdW1uV2lkdGggPSAxMDtcbiAgICBjYWxjVGl0bGVDb2x1bW5XaWR0aFN0cmluZyA9ICcxMDAlJztcbiAgICBjYWxjQ29sdW1uV2lkdGhTdHJpbmcgPSAnMTAwJSc7XG59XG5cbmV4cG9ydCBjbGFzcyBVSUNvbnRyb2wge1xuICAgIE9iamVjdElEOiBhbnk7XG4gICAgVHlwZTogc3RyaW5nO1xuICAgIERpc3BsYXlOYW1lOiBzdHJpbmc7XG4gICAgQ29udHJvbEZpZWxkczogQXJyYXk8VUlDb250cm9sRmllbGQ+O1xuICAgIENvbHVtbnM6IG51bWJlcjtcbn1cblxuZXhwb3J0IGNsYXNzIE9iamVjdHNEYXRhUm93Q2VsbCB7XG4gICAgQWNjZXNzb3J5Pzogc3RyaW5nO1xuICAgIEFkZGl0aW9uYWxWYWx1ZT86IHN0cmluZztcbiAgICBBcGlOYW1lOiBzdHJpbmc7XG4gICAgQmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIEVuYWJsZWQ/OiBib29sZWFuO1xuICAgIEZpZWxkVHlwZTogbnVtYmVyO1xuICAgIEZvcm1hdHRlZFZhbHVlOiBhbnk7XG4gICAgR3JvdXBGaWVsZHM/OiBBcnJheTxPYmplY3RzRGF0YVJvd0NlbGw+O1xuICAgIEhpZ2hsaWdodGVkPzogYm9vbGVhbjtcbiAgICBOb3RpZmljYXRpb25JbmZvPzogc3RyaW5nO1xuICAgIE9wdGlvbmFsVmFsdWVzPzogQXJyYXk8S2V5VmFsdWVQYWlyPHN0cmluZz4+O1xuICAgIFJlZmVyZW5jZU9iamVjdEludGVybmFsVHlwZT86IHN0cmluZztcbiAgICBSZWZlcmVuY2VPYmplY3RTdWJUeXBlPzogc3RyaW5nO1xuICAgIFJlZmVyZW5jZU9iamVjdFR5cGU/OiBzdHJpbmc7XG4gICAgVGV4dENvbG9yPzogc3RyaW5nO1xuICAgIFVpUGFnZUtleT86IHN0cmluZztcbiAgICBVSVBhZ2VJbmZvPzogYW55O1xuICAgIC8vIFR5cGU/OiBzdHJpbmc7IC8vIFRoaXMgaXMgaW4gdGhlIG9iamVjdD8/XG4gICAgVmFsdWU6IGFueTtcbiAgICBWaXNpYmxlPzogYm9vbGVhbjsgXG4gICAgRGlnaXRzTnVtYmVyQWZ0ZXJEZWNpbWFsUG9pbnQ/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBPYmplY3RzRGF0YVJvdyB7XG4gICAgQWRkaXRpb25hbERhdGE/OiBhbnk7XG4gICAgQmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIEV4dHJhSW5mbz86IEFycmF5PHsgS2V5OiBzdHJpbmc7IFZhbHVlOiBzdHJpbmcgfT47XG4gICAgRmllbGRzOiBBcnJheTxPYmplY3RzRGF0YVJvd0NlbGw+O1xuICAgIElzRWRpdGFibGUgPSB0cnVlO1xuICAgIElzU2VsZWN0YWJsZUZvckFjdGlvbnMgPSB0cnVlO1xuICAgIE1haW5BY3Rpb24/OiBzdHJpbmc7XG4gICAgUHJvZmlsZT86IGFueTtcbiAgICBUeXBlOiBudW1iZXI7XG4gICAgVUlEOiBhbnk7XG4gICAgS2V5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBPYmplY3RTaW5nbGVEYXRhIHtcbiAgICBEYXRhOiBPYmplY3RzRGF0YVJvdztcbiAgICBFcnJvckNvZGU6IHN0cmluZztcbiAgICBFcnJvck1lc3NhZ2U6IHN0cmluZztcbiAgICBJc0VkaXRhYmxlOiBib29sZWFuO1xuICAgIFN1Y2Nlc3M6IGJvb2xlYW47XG4gICAgVHlwZTogc3RyaW5nO1xuICAgIFVJQ29udHJvbDogVUlDb250cm9sO1xuXG4gICAgY29uc3RydWN0b3IodWlDb250cm9sOiBVSUNvbnRyb2wgPSBudWxsLCBkYXRhOiBPYmplY3RzRGF0YVJvdyA9IG51bGwpIHtcbiAgICAgICAgdGhpcy5TdWNjZXNzID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5FcnJvck1lc3NhZ2UgPSAnJztcbiAgICAgICAgdGhpcy5UeXBlID0gJyc7XG5cbiAgICAgICAgdGhpcy5VSUNvbnRyb2wgPSB1aUNvbnRyb2w7XG4gICAgICAgIHRoaXMuRGF0YSA9IGRhdGE7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgT2JqZWN0c0RhdGEge1xuICAgIERhdGVGaWx0ZXI/OiBzdHJpbmc7XG4gICAgRXJyb3JDb2RlOiBzdHJpbmc7XG4gICAgRXJyb3JNZXNzYWdlOiBzdHJpbmc7XG4gICAgUm93czogQXJyYXk8T2JqZWN0c0RhdGFSb3c+O1xuICAgIFNlYXJjaENvZGU/OiBzdHJpbmc7XG4gICAgU2VjU21hcnRTZWFyY2hMaXN0PzogW107XG4gICAgU21hcnRTZWFyY2hMaXN0OiBBcnJheTxTbWFydFNlYXJjaFJlc3BvbnNlPjtcbiAgICBTdWNjZXNzOiBib29sZWFuO1xuICAgIFRvdGFsUm93czogbnVtYmVyO1xuICAgIFVJQ29udHJvbDogVUlDb250cm9sO1xuICAgIC8vIEFsbFJvd3M6IEFycmF5PE9iamVjdHNEYXRhUm93PjtcbiAgICAvLyBUb3RhbEFtb3VudDogYW55O1xuICAgIC8vIEN1cnJlbmN5U3ltYm9sOiBhbnk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5FcnJvck1lc3NhZ2UgPSAnJztcbiAgICAgICAgdGhpcy5TdWNjZXNzID0gdHJ1ZTtcbiAgICAgICAgLy8gdGhpcy5Ub3RhbEFtb3VudCA9ICcwJztcbiAgICAgICAgLy8gdGhpcy5DdXJyZW5jeVN5bWJvbCA9ICckJztcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTbWFydFNlYXJjaFZhbHVlcyB7XG4gICAgQXBpTmFtZTogc3RyaW5nO1xuICAgIENvbXBhcmlzb25UeXBlOiBzdHJpbmc7XG4gICAgVmFsdWU6IHN0cmluZztcbiAgICBWYWx1ZVJhbmdlOiB7IFN0YXJ0OiBzdHJpbmc7IEVuZDogc3RyaW5nIH07XG4gICAgVmFsdWVzOiBBcnJheTxzdHJpbmc+O1xufVxuXG5leHBvcnQgY2xhc3MgU21hcnRTZWFyY2hSZXNwb25zZSB7XG4gICAgQXBpTmFtZTogc3RyaW5nO1xuICAgIEZpZWxkVHlwZTogYW55O1xuICAgIFRpdGxlOiBzdHJpbmc7XG4gICAgVmFsdWVzOiBBcnJheTxLZXlWYWx1ZVBhaXI8c3RyaW5nPj47XG4gICAgU21hcnRTZWFyY2hEYXRhOiBTbWFydFNlYXJjaFZhbHVlcztcbn1cblxuZXhwb3J0IGNsYXNzIEtleVZhbHVlUGFpcjxUPiB7XG4gICAgS2V5OiBzdHJpbmc7XG4gICAgVmFsdWU6IFQ7XG59XG4iXX0=
@@ -1,4 +1,5 @@
1
- import { Injectable } from '@angular/core';
1
+ import { Injectable, Optional } from '@angular/core';
2
+ import { createCustomElement } from '@angular/elements';
2
3
  import * as i0 from "@angular/core";
3
4
  import * as i1 from "./session.service";
4
5
  import * as i2 from "../../http/services/http.service";
@@ -18,38 +19,36 @@ export class PepAddonService {
18
19
  this.fileService = fileService;
19
20
  this.route = route;
20
21
  this.PAGES_ADDON_UUID = '50062e0c-9967-4ed4-9102-f2bc50602d41';
21
- this.ADDON_ASSETS_PATH_KEY = 'AddonAssetsPath';
22
+ // private readonly ADDON_ASSETS_PATH_KEY = 'AddonAssetsPath';
22
23
  this.ADDONS_DICTIONARY_ASSETS_PATH_KEY = 'AddonsDictionaryAssetsPath';
23
24
  this.ADDON_API_RELATIVE_PATH = '/addons/api';
24
25
  this.ADDON_API_ASYNC_RELATIVE_PATH = `${this.ADDON_API_RELATIVE_PATH}/async`;
25
26
  //
26
27
  }
27
28
  get devServer() {
28
- return this.route.snapshot.queryParamMap.get('devServer') === 'true';
29
+ return this.route ? this.route.snapshot.queryParamMap.get('devServer') === 'true' : false;
29
30
  }
30
31
  getAddonBaseRelativePath(isAsync = false) {
31
32
  return isAsync
32
33
  ? this.ADDON_API_ASYNC_RELATIVE_PATH
33
34
  : this.ADDON_API_RELATIVE_PATH;
34
35
  }
35
- getAddonStaticFolder(subAddonUUID = '') {
36
- if (subAddonUUID.length > 0) {
37
- const addonsDictionary = this.sessionService.getObject(this.ADDONS_DICTIONARY_ASSETS_PATH_KEY);
38
- return addonsDictionary && addonsDictionary[subAddonUUID] ? addonsDictionary[subAddonUUID] : '';
39
- }
40
- else {
41
- return this.sessionService.getObject(this.ADDON_ASSETS_PATH_KEY) || '';
42
- }
36
+ getAddonStaticFolder(addonUUID) {
37
+ // if (addonUUID.length > 0) {
38
+ const addonsDictionary = this.sessionService.getObject(this.ADDONS_DICTIONARY_ASSETS_PATH_KEY);
39
+ return addonsDictionary && addonsDictionary[addonUUID] ? addonsDictionary[addonUUID] : '';
40
+ // } else {
41
+ // return this.sessionService.getObject(this.ADDON_ASSETS_PATH_KEY) || '';
42
+ // }
43
43
  }
44
- setAddonStaticFolder(path, subAddonUUID = '') {
45
- if (subAddonUUID.length > 0) {
46
- const addonsDictionary = this.sessionService.getObject(this.ADDONS_DICTIONARY_ASSETS_PATH_KEY) ?? {};
47
- addonsDictionary[subAddonUUID] = path;
48
- this.sessionService.setObject(this.ADDONS_DICTIONARY_ASSETS_PATH_KEY, addonsDictionary);
49
- }
50
- else {
51
- return this.sessionService.setObject(this.ADDON_ASSETS_PATH_KEY, path);
52
- }
44
+ setAddonStaticFolder(path, addonUUID) {
45
+ // if (addonUUID.length > 0) {
46
+ const addonsDictionary = this.sessionService.getObject(this.ADDONS_DICTIONARY_ASSETS_PATH_KEY) ?? {};
47
+ addonsDictionary[addonUUID] = path;
48
+ this.sessionService.setObject(this.ADDONS_DICTIONARY_ASSETS_PATH_KEY, addonsDictionary);
49
+ // } else {
50
+ // return this.sessionService.setObject(this.ADDON_ASSETS_PATH_KEY, path);
51
+ // }
53
52
  }
54
53
  getServerBaseUrl(addonUUID, fileName = '', isAsync = false, localhostPort = 4500) {
55
54
  const fileToAdd = fileName.length > 0 ? `/${fileName}` : '';
@@ -90,8 +89,8 @@ export class PepAddonService {
90
89
  this.loaderService.hide();
91
90
  });
92
91
  }
93
- getNgxLibTranslationResource(subAddonUUID = '', libName = 'ngx-lib') {
94
- const addonStaticFolder = this.getAddonStaticFolder(subAddonUUID);
92
+ getNgxLibTranslationResource(addonUUID, libName = 'ngx-lib') {
93
+ const addonStaticFolder = this.getAddonStaticFolder(addonUUID);
95
94
  const translationsPath = this.fileService.getAssetsTranslationsPath(addonStaticFolder, libName);
96
95
  const translationsSuffix = this.fileService.getAssetsTranslationsSuffix(libName);
97
96
  return {
@@ -99,8 +98,8 @@ export class PepAddonService {
99
98
  suffix: translationsSuffix,
100
99
  };
101
100
  }
102
- getAddonTranslationResource(subAddonUUID = '') {
103
- const addonStaticFolder = this.getAddonStaticFolder(subAddonUUID);
101
+ getAddonTranslationResource(addonUUID) {
102
+ const addonStaticFolder = this.getAddonStaticFolder(addonUUID);
104
103
  const defaultSubFolder = 'assets/i18n/';
105
104
  return {
106
105
  prefix: addonStaticFolder.length > 0 ? `${addonStaticFolder}${defaultSubFolder}` : `/${defaultSubFolder}`,
@@ -113,36 +112,42 @@ export class PepAddonService {
113
112
  getPagesAddonUUID() {
114
113
  return this.PAGES_ADDON_UUID;
115
114
  }
116
- // Deprecated need to delete in next major.
117
- static createDefaultMultiTranslateLoader(http, fileService, addonService, subAddonUUID = '') {
118
- const ngxLibTranslationResource = addonService.getNgxLibTranslationResource(subAddonUUID);
119
- const addonTranslationResource = addonService.getAddonTranslationResource(subAddonUUID);
120
- return addonService.translateService.createMultiTranslateLoader([
121
- ngxLibTranslationResource,
122
- addonTranslationResource
123
- ]);
115
+ setShellRouterData(data) {
116
+ const eventData = {
117
+ detail: data,
118
+ };
119
+ const customEvent = new CustomEvent('set-router-data', eventData);
120
+ window.dispatchEvent(customEvent);
121
+ }
122
+ defineCustomElement(elementName, component, injector) {
123
+ customElements.upgrade;
124
+ if (!customElements.get(elementName)) {
125
+ customElements.define(elementName, createCustomElement(component, { injector: injector }));
126
+ }
124
127
  }
125
- static createMultiTranslateLoader(addonService, libsName = ['ngx-lib'], subAddonUUID = '') {
128
+ static createMultiTranslateLoader(addonUUID, addonService, libsName = ['ngx-lib']) {
126
129
  const ngxLibTranslationResources = [];
127
130
  if (libsName?.length > 0) {
128
131
  for (let index = 0; index < libsName.length; index++) {
129
132
  const libName = libsName[index];
130
- ngxLibTranslationResources.push(addonService.getNgxLibTranslationResource(subAddonUUID, libName));
133
+ ngxLibTranslationResources.push(addonService.getNgxLibTranslationResource(addonUUID, libName));
131
134
  }
132
135
  }
133
- const addonTranslationResource = addonService.getAddonTranslationResource(subAddonUUID);
136
+ const addonTranslationResource = addonService.getAddonTranslationResource(addonUUID);
134
137
  return addonService.translateService.createMultiTranslateLoader([
135
138
  ...ngxLibTranslationResources,
136
139
  addonTranslationResource
137
140
  ]);
138
141
  }
139
142
  }
140
- PepAddonService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepAddonService, deps: [{ token: i1.PepSessionService }, { token: i2.PepHttpService }, { token: i3.PepLoaderService }, { token: i4.PepTranslateService }, { token: i5.PepFileService }, { token: i6.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Injectable });
143
+ PepAddonService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepAddonService, deps: [{ token: i1.PepSessionService }, { token: i2.PepHttpService }, { token: i3.PepLoaderService }, { token: i4.PepTranslateService }, { token: i5.PepFileService }, { token: i6.ActivatedRoute, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
141
144
  PepAddonService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepAddonService, providedIn: 'root' });
142
145
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepAddonService, decorators: [{
143
146
  type: Injectable,
144
147
  args: [{
145
148
  providedIn: 'root',
146
149
  }]
147
- }], ctorParameters: function () { return [{ type: i1.PepSessionService }, { type: i2.PepHttpService }, { type: i3.PepLoaderService }, { type: i4.PepTranslateService }, { type: i5.PepFileService }, { type: i6.ActivatedRoute }]; } });
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvc3JjL2NvcmUvY29tbW9uL3NlcnZpY2VzL2FkZG9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7QUFZM0M7O0VBRUU7QUFJRixNQUFNLE9BQU8sZUFBZTtJQVd4QixZQUNZLGNBQWlDLEVBQ2pDLFdBQTJCLEVBQzNCLGFBQStCLEVBQ2hDLGdCQUFxQyxFQUNyQyxXQUEyQixFQUMxQixLQUFxQjtRQUxyQixtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDakMsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQzNCLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUNoQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXFCO1FBQ3JDLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUMxQixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQWhCaEIscUJBQWdCLEdBQUcsc0NBQXNDLENBQUM7UUFDMUQsMEJBQXFCLEdBQUcsaUJBQWlCLENBQUM7UUFDMUMsc0NBQWlDLEdBQUcsNEJBQTRCLENBQUM7UUFDakUsNEJBQXVCLEdBQUcsYUFBYSxDQUFDO1FBQ3hDLGtDQUE2QixHQUFHLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixRQUFRLENBQUM7UUFjckYsRUFBRTtJQUNOLENBQUM7SUFiRCxJQUFZLFNBQVM7UUFDakIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxLQUFLLE1BQU0sQ0FBQztJQUN6RSxDQUFDO0lBYU8sd0JBQXdCLENBQUMsT0FBTyxHQUFHLEtBQUs7UUFDNUMsT0FBTyxPQUFPO1lBQ1YsQ0FBQyxDQUFDLElBQUksQ0FBQyw2QkFBNkI7WUFDcEMsQ0FBQyxDQUFDLElBQUks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QyxJQUFJLENBQUMsWUFBWSxDQUFDLDRCQUE0QixDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQ3JHO1NBQ0o7UUFFRCxNQUFNLHdCQUF3QixHQUFHLFlBQVksQ0FBQywyQkFBMkIsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUV4RixPQUFPLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQywwQkFBMEIsQ0FBQztZQUM1RCxHQUFHLDBCQUEwQjtZQUM3Qix3QkFBd0I7U0FDM0IsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7NEdBM0tRLGVBQWU7Z0hBQWYsZUFBZSxjQUZaLE1BQU07MkZBRVQsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBQZXBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4vc2Vzc2lvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFBlcEZpbGVTZXJ2aWNlIH0gZnJvbSAnLi9maWxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGVwSHR0cFNlcnZpY2UgfSBmcm9tICcuLi8uLi9odHRwL3NlcnZpY2VzL2h0dHAuc2VydmljZSc7XG5pbXBvcnQgeyBQZXBMb2FkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaHR0cC9zZXJ2aWNlcy9sb2FkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgSVRyYW5zbGF0aW9uUmVzb3VyY2UgfSBmcm9tICduZ3gtdHJhbnNsYXRlLW11bHRpLWh0dHAtbG9hZGVyJztcbmltcG9ydCB7IFBlcFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuL3RyYW5zbGF0ZS5zZXJ2aWNlJztcblxuLypcbiAgICBUaGlzIHNlcnZpY2UgaXMgdGhlIHdlYmFwcCBhcGkgZm9yIGFkZG9uIHVzZWdlLlxuKi9cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFBlcEFkZG9uU2VydmljZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBQQUdFU19BRERPTl9VVUlEID0gJzUwMDYyZTBjLTk5NjctNGVkNC05MTAyLWYyYmM1MDYwMmQ0MSc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBBRERPTl9BU1NFVFNfUEFUSF9LRVkgPSAnQWRkb25Bc3NldHNQYXRoJztcbiAgICBwcml2YXRlIHJlYWRvbmx5IEFERE9OU19ESUNUSU9OQVJZX0FTU0VUU19QQVRIX0tFWSA9ICdBZGRvbnNEaWN0aW9uYXJ5QXNzZXRzUGF0aCc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBBRERPTl9BUElfUkVMQVRJVkVfUEFUSCA9ICcvYWRkb25zL2FwaSc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBBRERPTl9BUElfQVNZTkNfUkVMQVRJVkVfUEFUSCA9IGAke3RoaXMuQURET05fQVBJX1JFTEFUSVZFX1BBVEh9L2FzeW5jYDtcblxuICAgIHByaXZhdGUgZ2V0IGRldlNlcnZlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbU1hcC5nZXQoJ2RldlNlcnZlcicpID09PSAndHJ1ZSc7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgc2Vzc2lvblNlcnZpY2U6IFBlcFNlc3Npb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGh0dHBTZXJ2aWNlOiBQZXBIdHRwU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBsb2FkZXJTZXJ2aWNlOiBQZXBMb2FkZXJTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgdHJhbnNsYXRlU2VydmljZTogUGVwVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgcHVibGljIGZpbGVTZXJ2aWNlOiBQZXBGaWxlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgKSB7XG4gICAgICAgIC8vXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRBZGRvbkJhc2VSZWxhdGl2ZVBhdGgoaXNBc3luYyA9IGZhbHNlKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGlzQXN5bmNcbiAgICAgICAgICAgID8gdGhpcy5BRERPTl9BUElfQVNZTkNfUkVMQVRJVkVfUEFUSFxuICAgICAgICAgICAgOiB0aGlzLkFERE9OX0FQSV9SRUxBVElWRV9QQVRIO1xuICAgIH1cblxuICAgIGdldEFkZG9uU3RhdGljRm9sZGVyKHN1YkFkZG9uVVVJRCA9ICcnKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHN1YkFkZG9uVVVJRC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBhZGRvbnNEaWN0aW9uYXJ5ID0gdGhpcy5zZXNzaW9uU2VydmljZS5nZXRPYmplY3QodGhpcy5BRERPTlNfRElDVElPTkFSWV9BU1NFVFNfUEFUSF9LRVkpO1xuICAgICAgICAgICAgcmV0dXJuIGFkZG9uc0RpY3Rpb25hcnkgJiYgYWRkb25zRGljdGlvbmFyeVtzdWJBZGRvblVVSURdID8gYWRkb25zRGljdGlvbmFyeVtzdWJBZGRvblVVSURdIDogJyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZXNzaW9uU2VydmljZS5nZXRPYmplY3QodGhpcy5BRERPTl9BU1NFVFNfUEFUSF9LRVkpIHx8ICcnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2V0QWRkb25TdGF0aWNGb2xkZXIocGF0aDogc3RyaW5nLCBzdWJBZGRvblVVSUQgPSAnJyk6IHZvaWQge1xuICAgICAgICBpZiAoc3ViQWRkb25VVUlELmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGFkZG9uc0RpY3Rpb25hcnkgPSB0aGlzLnNlc3Npb25TZXJ2aWNlLmdldE9iamVjdCh0aGlzLkFERE9OU19ESUNUSU9OQVJZX0FTU0VUU19QQVRIX0tFWSkgPz8ge307XG4gICAgICAgICAgICBhZGRvbnNEaWN0aW9uYXJ5W3N1YkFkZG9uVVVJRF0gPSBwYXRoO1xuICAgICAgICAgICAgdGhpcy5zZXNzaW9uU2VydmljZS5zZXRPYmplY3QodGhpcy5BRERPTlNfRElDVElPTkFSWV9BU1NFVFNfUEFUSF9LRVksIGFkZG9uc0RpY3Rpb25hcnkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2Vzc2lvblNlcnZpY2Uuc2V0T2JqZWN0KHRoaXMuQURET05fQVNTRVRTX1BBVEhfS0VZLCBwYXRoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldFNlcnZlckJhc2VVcmwoYWRkb25VVUlEOiBzdHJpbmcsIGZpbGVOYW1lID0gJycsIGlzQXN5bmMgPSBmYWxzZSwgbG9jYWxob3N0UG9ydCA9IDQ1MDApOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBmaWxlVG9BZGQgPSBmaWxlTmFtZS5sZW5ndGggPiAwID8gYC8ke2ZpbGVOYW1lfWAgOiAnJztcbiAgICAgICAgXG4gICAgICAgIC8vIEZvciBkZXZTZXJ2ZXIgcnVuIHNlcnZlciBvbiBsb2NhbGhvc3QuXG4gICAgICAgIGlmKHRoaXMuZGV2U2VydmVyKSB7XG4gICAgICAgICAgICByZXR1cm4gYGh0dHA6Ly9sb2NhbGhvc3Q6JHtsb2NhbGhvc3RQb3J0fSR7ZmlsZVRvQWRkfWA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBiYXNlVXJsID0gdGhpcy5zZXNzaW9uU2VydmljZS5nZXRQYXBpQmFzZVVybCgpO1xuICAgICAgICAgICAgcmV0dXJuIGAke2Jhc2VVcmx9JHt0aGlzLmdldEFkZG9uQmFzZVJlbGF0aXZlUGF0aChpc0FzeW5jKX0vJHthZGRvblVVSUR9JHtmaWxlVG9BZGR9YDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldEFkZG9uQXBpQ2FsbChcbiAgICAgICAgYWRkb25VVUlEOiBzdHJpbmcsXG4gICAgICAgIGZpbGVOYW1lOiBzdHJpbmcsXG4gICAgICAgIGZ1bmN0aW9uTmFtZTogc3RyaW5nLFxuICAgICAgICBodHRwT3B0aW9ucyA9IHt9LFxuICAgICAgICBpc0FzeW5jID0gZmFsc2VcbiAgICApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICAvLyByZXR1cm4gdGhpcy5odHRwU2VydmljZS5nZXRQYXBpQXBpQ2FsbChcbiAgICAgICAgLy8gICAgIGAke3RoaXMuZ2V0QWRkb25CYXNlUmVsYXRpdmVQYXRoKFxuICAgICAgICAvLyAgICAgICAgIGlzQXN5bmNcbiAgICAgICAgLy8gICAgICl9LyR7YWRkb25VVUlEfS8ke2ZpbGVOYW1lfS8ke2Z1bmN0aW9uTmFtZX1gLFxuICAgICAgICAvLyAgICAgaHR0cE9wdGlvbnNcbiAgICAgICAgLy8gKTtcblxuICAgICAgICBjb25zdCBwYXBpQmFzZVVybCA9IHRoaXMuZ2V0U2VydmVyQmFzZVVybChhZGRvblVVSUQsIGZpbGVOYW1lLCBpc0FzeW5jKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuZ2V0SHR0cENhbGwoYCR7cGFwaUJhc2VVcmx9LyR7ZnVuY3Rpb25OYW1lfWAsIGh0dHBPcHRpb25zKTtcbiAgICB9XG5cbiAgICBwb3N0QWRkb25BcGlDYWxsKFxuICAgICAgICBhZGRvblVVSUQ6IHN0cmluZyxcbiAgICAgICAgZmlsZU5hbWU6IHN0cmluZyxcbiAgICAgICAgZnVuY3Rpb25OYW1lOiBzdHJpbmcsXG4gICAgICAgIGJvZHkgPSB7fSxcbiAgICAgICAgaHR0cE9wdGlvbnMgPSB7fSxcbiAgICAgICAgaXNBc3luYyA9IGZhbHNlXG4gICAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgLy8gcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UucG9zdFBhcGlBcGlDYWxsKFxuICAgICAgICAvLyAgICAgYCR7dGhpcy5nZXRBZGRvbkJhc2VSZWxhdGl2ZVBhdGgoXG4gICAgICAgIC8vICAgICAgICAgaXNBc3luY1xuICAgICAgICAvLyAgICAgKX0vJHthZGRvblVVSUR9LyR7ZmlsZU5hbWV9LyR7ZnVuY3Rpb25OYW1lfWAsXG4gICAgICAgIC8vICAgICBib2R5LFxuICAgICAgICAvLyAgICAgaHR0cE9wdGlvbnNcbiAgICAgICAgLy8gKTtcblxuICAgICAgICBjb25zdCBwYXBpQmFzZVVybCA9IHRoaXMuZ2V0U2VydmVyQmFzZVVybChhZGRvblVVSUQsIGZpbGVOYW1lLCBpc0FzeW5jKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UucG9zdEh0dHBDYWxsKGAke3BhcGlCYXNlVXJsfS8ke2Z1bmN0aW9uTmFtZX1gLCBib2R5LCBodHRwT3B0aW9ucyk7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogbmVlZCB0byBjaGVrIHRoaXMgaWYgdGhlIGxvYWRlciBpcyB3b3JraW5nLlxuICAgIGZldGNoKGlucHV0OiBSZXF1ZXN0SW5mbywgaW5pdD86IFJlcXVlc3RJbml0KTogUHJvbWlzZTxSZXNwb25zZT4ge1xuICAgICAgICB0aGlzLmxvYWRlclNlcnZpY2Uuc2hvdygpO1xuXG4gICAgICAgIHJldHVybiB3aW5kb3cuZmV0Y2goaW5wdXQsIGluaXQpLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2FkZXJTZXJ2aWNlLmhpZGUoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0Tmd4TGliVHJhbnNsYXRpb25SZXNvdXJjZShzdWJBZGRvblVVSUQgPSAnJywgbGliTmFtZSA9ICduZ3gtbGliJyk6IElUcmFuc2xhdGlvblJlc291cmNlIHtcbiAgICAgICAgY29uc3QgYWRkb25TdGF0aWNGb2xkZXIgPSB0aGlzLmdldEFkZG9uU3RhdGljRm9sZGVyKHN1YkFkZG9uVVVJRCk7XG4gICAgICAgIGNvbnN0IHRyYW5zbGF0aW9uc1BhdGg6IHN0cmluZyA9IHRoaXMuZmlsZVNlcnZpY2UuZ2V0QXNzZXRzVHJhbnNsYXRpb25zUGF0aChhZGRvblN0YXRpY0ZvbGRlciwgbGliTmFtZSk7XG4gICAgICAgIGNvbnN0IHRyYW5zbGF0aW9uc1N1ZmZpeDogc3RyaW5nID0gdGhpcy5maWxlU2VydmljZS5nZXRBc3NldHNUcmFuc2xhdGlvbnNTdWZmaXgobGliTmFtZSk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHByZWZpeDogdHJhbnNsYXRpb25zUGF0aCxcbiAgICAgICAgICAgIHN1ZmZpeDogdHJhbnNsYXRpb25zU3VmZml4LFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGdldEFkZG9uVHJhbnNsYXRpb25SZXNvdXJjZShzdWJBZGRvblVVSUQgPSAnJyk6IElUcmFuc2xhdGlvblJlc291cmNlIHtcbiAgICAgICAgY29uc3QgYWRkb25TdGF0aWNGb2xkZXIgPSB0aGlzLmdldEFkZG9uU3RhdGljRm9sZGVyKHN1YkFkZG9uVVVJRCk7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRTdWJGb2xkZXIgPSAnYXNzZXRzL2kxOG4vJztcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcHJlZml4OiBhZGRvblN0YXRpY0ZvbGRlci5sZW5ndGggPiAwID8gYCR7YWRkb25TdGF0aWNGb2xkZXJ9JHtkZWZhdWx0U3ViRm9sZGVyfWAgOiBgLyR7ZGVmYXVsdFN1YkZvbGRlcn1gLFxuICAgICAgICAgICAgc3VmZml4OiAnLmpzb24nLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHNldERlZmF1bHRUcmFuc2xhdGVMYW5nKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgdXJsTGFuZ1BhcmFtID0gJ3VzZXJMYW5nJykge1xuICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc2V0RGVmYXVsdFRyYW5zbGF0ZUxhbmcodHJhbnNsYXRlLCB1cmxMYW5nUGFyYW0pO1xuICAgIH1cblxuICAgIGdldFBhZ2VzQWRkb25VVUlEKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5QQUdFU19BRERPTl9VVUlEO1xuICAgIH1cblxuICAgIC8vIERlcHJlY2F0ZWQgbmVlZCB0byBkZWxldGUgaW4gbmV4dCBtYWpvci5cbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZURlZmF1bHRNdWx0aVRyYW5zbGF0ZUxvYWRlcihcbiAgICAgICAgaHR0cDogSHR0cENsaWVudCxcbiAgICAgICAgZmlsZVNlcnZpY2U6IFBlcEZpbGVTZXJ2aWNlLFxuICAgICAgICBhZGRvblNlcnZpY2U6IFBlcEFkZG9uU2VydmljZSxcbiAgICAgICAgc3ViQWRkb25VVUlEID0gJydcbiAgICApIHtcbiAgICAgICAgY29uc3Qgbmd4TGliVHJhbnNsYXRpb25SZXNvdXJjZSA9IGFkZG9uU2VydmljZS5nZXROZ3hMaWJUcmFuc2xhdGlvblJlc291cmNlKHN1YkFkZG9uVVVJRCk7XG4gICAgICAgIGNvbnN0IGFkZG9uVHJhbnNsYXRpb25SZXNvdXJjZSA9IGFkZG9uU2VydmljZS5nZXRBZGRvblRyYW5zbGF0aW9uUmVzb3VyY2Uoc3ViQWRkb25VVUlEKTtcblxuICAgICAgICByZXR1cm4gYWRkb25TZXJ2aWNlLnRyYW5zbGF0ZVNlcnZpY2UuY3JlYXRlTXVsdGlUcmFuc2xhdGVMb2FkZXIoW1xuICAgICAgICAgICAgbmd4TGliVHJhbnNsYXRpb25SZXNvdXJjZSxcbiAgICAgICAgICAgIGFkZG9uVHJhbnNsYXRpb25SZXNvdXJjZVxuICAgICAgICBdKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZU11bHRpVHJhbnNsYXRlTG9hZGVyKFxuICAgICAgICBhZGRvblNlcnZpY2U6IFBlcEFkZG9uU2VydmljZSxcbiAgICAgICAgbGlic05hbWUgPSBbJ25neC1saWInXSxcbiAgICAgICAgc3ViQWRkb25VVUlEID0gJydcbiAgICApIHtcbiAgICAgICAgY29uc3Qgbmd4TGliVHJhbnNsYXRpb25SZXNvdXJjZXMgPSBbXTtcblxuICAgICAgICBpZiAobGlic05hbWU/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBsaWJzTmFtZS5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsaWJOYW1lID0gbGlic05hbWVbaW5kZXhdO1xuICAgICAgICAgICAgICAgIG5neExpYlRyYW5zbGF0aW9uUmVzb3VyY2VzLnB1c2goYWRkb25TZXJ2aWNlLmdldE5neExpYlRyYW5zbGF0aW9uUmVzb3VyY2Uoc3ViQWRkb25VVUlELCBsaWJOYW1lKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhZGRvblRyYW5zbGF0aW9uUmVzb3VyY2UgPSBhZGRvblNlcnZpY2UuZ2V0QWRkb25UcmFuc2xhdGlvblJlc291cmNlKHN1YkFkZG9uVVVJRCk7XG5cbiAgICAgICAgcmV0dXJuIGFkZG9uU2VydmljZS50cmFuc2xhdGVTZXJ2aWNlLmNyZWF0ZU11bHRpVHJhbnNsYXRlTG9hZGVyKFtcbiAgICAgICAgICAgIC4uLm5neExpYlRyYW5zbGF0aW9uUmVzb3VyY2VzLFxuICAgICAgICAgICAgYWRkb25UcmFuc2xhdGlvblJlc291cmNlXG4gICAgICAgIF0pO1xuICAgIH1cbn1cbiJdfQ==
150
+ }], ctorParameters: function () { return [{ type: i1.PepSessionService }, { type: i2.PepHttpService }, { type: i3.PepLoaderService }, { type: i4.PepTranslateService }, { type: i5.PepFileService }, { type: i6.ActivatedRoute, decorators: [{
151
+ type: Optional
152
+ }] }]; } });
153
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvc3JjL2NvcmUvY29tbW9uL3NlcnZpY2VzL2FkZG9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBWSxRQUFRLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7O0FBWXhEOztFQUVFO0FBSUYsTUFBTSxPQUFPLGVBQWU7SUFXeEIsWUFDWSxjQUFpQyxFQUNqQyxXQUEyQixFQUMzQixhQUErQixFQUNoQyxnQkFBcUMsRUFDckMsV0FBMkIsRUFDZCxLQUFxQjtRQUxqQyxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDakMsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQzNCLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUNoQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXFCO1FBQ3JDLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUNkLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBaEI1QixxQkFBZ0IsR0FBRyxzQ0FBc0MsQ0FBQztRQUMzRSw4REFBOEQ7UUFDN0Msc0NBQWlDLEdBQUcsNEJBQTRCLENBQUM7UUFDakUsNEJBQXVCLEdBQUcsYUFBYSxDQUFDO1FBQ3hDLGtDQUE2QixHQUFHLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixRQUFRLENBQUM7UUFjckYsRUFBRTtJQUNOLENBQUM7SUFiRCxJQUFZLFNBQVM7UUFDakIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQzlGLENBQUM7SUFhTyx3QkFBd0IsQ0FB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Qyw0QkFBNEIsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQzthQUNsRztTQUNKO1FBRUQsTUFBTSx3QkFBd0IsR0FBRyxZQUFZLENBQUMsMkJBQTJCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFckYsT0FBTyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsMEJBQTBCLENBQUM7WUFDNUQsR0FBRywwQkFBMEI7WUFDN0Isd0JBQXdCO1NBQzNCLENBQUMsQ0FBQztJQUNQLENBQUM7OzRHQTNLUSxlQUFlO2dIQUFmLGVBQWUsY0FGWixNQUFNOzJGQUVULGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkFrQlEsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yLCBPcHRpb25hbCwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY3JlYXRlQ3VzdG9tRWxlbWVudCB9IGZyb20gJ0Bhbmd1bGFyL2VsZW1lbnRzJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFBlcFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi9zZXNzaW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGVwRmlsZVNlcnZpY2UgfSBmcm9tICcuL2ZpbGUuc2VydmljZSc7XG5pbXBvcnQgeyBQZXBIdHRwU2VydmljZSB9IGZyb20gJy4uLy4uL2h0dHAvc2VydmljZXMvaHR0cC5zZXJ2aWNlJztcbmltcG9ydCB7IFBlcExvYWRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9odHRwL3NlcnZpY2VzL2xvYWRlci5zZXJ2aWNlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBJVHJhbnNsYXRpb25SZXNvdXJjZSB9IGZyb20gJ25neC10cmFuc2xhdGUtbXVsdGktaHR0cC1sb2FkZXInO1xuaW1wb3J0IHsgUGVwVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4vdHJhbnNsYXRlLnNlcnZpY2UnO1xuXG4vKlxuICAgIFRoaXMgc2VydmljZSBpcyB0aGUgd2ViYXBwIGFwaSBmb3IgYWRkb24gdXNlZ2UuXG4qL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUGVwQWRkb25TZXJ2aWNlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IFBBR0VTX0FERE9OX1VVSUQgPSAnNTAwNjJlMGMtOTk2Ny00ZWQ0LTkxMDItZjJiYzUwNjAyZDQxJztcbiAgICAvLyBwcml2YXRlIHJlYWRvbmx5IEFERE9OX0FTU0VUU19QQVRIX0tFWSA9ICdBZGRvbkFzc2V0c1BhdGgnO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgQURET05TX0RJQ1RJT05BUllfQVNTRVRTX1BBVEhfS0VZID0gJ0FkZG9uc0RpY3Rpb25hcnlBc3NldHNQYXRoJztcbiAgICBwcml2YXRlIHJlYWRvbmx5IEFERE9OX0FQSV9SRUxBVElWRV9QQVRIID0gJy9hZGRvbnMvYXBpJztcbiAgICBwcml2YXRlIHJlYWRvbmx5IEFERE9OX0FQSV9BU1lOQ19SRUxBVElWRV9QQVRIID0gYCR7dGhpcy5BRERPTl9BUElfUkVMQVRJVkVfUEFUSH0vYXN5bmNgO1xuXG4gICAgcHJpdmF0ZSBnZXQgZGV2U2VydmVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5yb3V0ZSA/IHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbU1hcC5nZXQoJ2RldlNlcnZlcicpID09PSAndHJ1ZScgOiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBzZXNzaW9uU2VydmljZTogUGVwU2Vzc2lvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgaHR0cFNlcnZpY2U6IFBlcEh0dHBTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGxvYWRlclNlcnZpY2U6IFBlcExvYWRlclNlcnZpY2UsXG4gICAgICAgIHB1YmxpYyB0cmFuc2xhdGVTZXJ2aWNlOiBQZXBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgZmlsZVNlcnZpY2U6IFBlcEZpbGVTZXJ2aWNlLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICApIHtcbiAgICAgICAgLy9cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEFkZG9uQmFzZVJlbGF0aXZlUGF0aChpc0FzeW5jID0gZmFsc2UpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gaXNBc3luY1xuICAgICAgICAgICAgPyB0aGlzLkFERE9OX0FQSV9BU1lOQ19SRUxBVElWRV9QQVRIXG4gICAgICAgICAgICA6IHRoaXMuQURET05fQVBJX1JFTEFUSVZFX1BBVEg7XG4gICAgfVxuXG4gICAgZ2V0QWRkb25TdGF0aWNGb2xkZXIoYWRkb25VVUlEOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICAvLyBpZiAoYWRkb25VVUlELmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGFkZG9uc0RpY3Rpb25hcnkgPSB0aGlzLnNlc3Npb25TZXJ2aWNlLmdldE9iamVjdCh0aGlzLkFERE9OU19ESUNUSU9OQVJZX0FTU0VUU19QQVRIX0tFWSk7XG4gICAgICAgICAgICByZXR1cm4gYWRkb25zRGljdGlvbmFyeSAmJiBhZGRvbnNEaWN0aW9uYXJ5W2FkZG9uVVVJRF0gPyBhZGRvbnNEaWN0aW9uYXJ5W2FkZG9uVVVJRF0gOiAnJztcbiAgICAgICAgLy8gfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIHJldHVybiB0aGlzLnNlc3Npb25TZXJ2aWNlLmdldE9iamVjdCh0aGlzLkFERE9OX0FTU0VUU19QQVRIX0tFWSkgfHwgJyc7XG4gICAgICAgIC8vIH1cbiAgICB9XG5cbiAgICBzZXRBZGRvblN0YXRpY0ZvbGRlcihwYXRoOiBzdHJpbmcsIGFkZG9uVVVJRDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIC8vIGlmIChhZGRvblVVSUQubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgYWRkb25zRGljdGlvbmFyeSA9IHRoaXMuc2Vzc2lvblNlcnZpY2UuZ2V0T2JqZWN0KHRoaXMuQURET05TX0RJQ1RJT05BUllfQVNTRVRTX1BBVEhfS0VZKSA/PyB7fTtcbiAgICAgICAgICAgIGFkZG9uc0RpY3Rpb25hcnlbYWRkb25VVUlEXSA9IHBhdGg7XG4gICAgICAgICAgICB0aGlzLnNlc3Npb25TZXJ2aWNlLnNldE9iamVjdCh0aGlzLkFERE9OU19ESUNUSU9OQVJZX0FTU0VUU19QQVRIX0tFWSwgYWRkb25zRGljdGlvbmFyeSk7XG4gICAgICAgIC8vIH0gZWxzZSB7XG4gICAgICAgIC8vICAgICByZXR1cm4gdGhpcy5zZXNzaW9uU2VydmljZS5zZXRPYmplY3QodGhpcy5BRERPTl9BU1NFVFNfUEFUSF9LRVksIHBhdGgpO1xuICAgICAgICAvLyB9XG4gICAgfVxuXG4gICAgZ2V0U2VydmVyQmFzZVVybChhZGRvblVVSUQ6IHN0cmluZywgZmlsZU5hbWUgPSAnJywgaXNBc3luYyA9IGZhbHNlLCBsb2NhbGhvc3RQb3J0ID0gNDUwMCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGZpbGVUb0FkZCA9IGZpbGVOYW1lLmxlbmd0aCA+IDAgPyBgLyR7ZmlsZU5hbWV9YCA6ICcnO1xuICAgICAgICBcbiAgICAgICAgLy8gRm9yIGRldlNlcnZlciBydW4gc2VydmVyIG9uIGxvY2FsaG9zdC5cbiAgICAgICAgaWYodGhpcy5kZXZTZXJ2ZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBgaHR0cDovL2xvY2FsaG9zdDoke2xvY2FsaG9zdFBvcnR9JHtmaWxlVG9BZGR9YDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGJhc2VVcmwgPSB0aGlzLnNlc3Npb25TZXJ2aWNlLmdldFBhcGlCYXNlVXJsKCk7XG4gICAgICAgICAgICByZXR1cm4gYCR7YmFzZVVybH0ke3RoaXMuZ2V0QWRkb25CYXNlUmVsYXRpdmVQYXRoKGlzQXN5bmMpfS8ke2FkZG9uVVVJRH0ke2ZpbGVUb0FkZH1gO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0QWRkb25BcGlDYWxsKFxuICAgICAgICBhZGRvblVVSUQ6IHN0cmluZyxcbiAgICAgICAgZmlsZU5hbWU6IHN0cmluZyxcbiAgICAgICAgZnVuY3Rpb25OYW1lOiBzdHJpbmcsXG4gICAgICAgIGh0dHBPcHRpb25zID0ge30sXG4gICAgICAgIGlzQXN5bmMgPSBmYWxzZVxuICAgICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIC8vIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmdldFBhcGlBcGlDYWxsKFxuICAgICAgICAvLyAgICAgYCR7dGhpcy5nZXRBZGRvbkJhc2VSZWxhdGl2ZVBhdGgoXG4gICAgICAgIC8vICAgICAgICAgaXNBc3luY1xuICAgICAgICAvLyAgICAgKX0vJHthZGRvblVVSUR9LyR7ZmlsZU5hbWV9LyR7ZnVuY3Rpb25OYW1lfWAsXG4gICAgICAgIC8vICAgICBodHRwT3B0aW9uc1xuICAgICAgICAvLyApO1xuXG4gICAgICAgIGNvbnN0IHBhcGlCYXNlVXJsID0gdGhpcy5nZXRTZXJ2ZXJCYXNlVXJsKGFkZG9uVVVJRCwgZmlsZU5hbWUsIGlzQXN5bmMpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5nZXRIdHRwQ2FsbChgJHtwYXBpQmFzZVVybH0vJHtmdW5jdGlvbk5hbWV9YCwgaHR0cE9wdGlvbnMpO1xuICAgIH1cblxuICAgIHBvc3RBZGRvbkFwaUNhbGwoXG4gICAgICAgIGFkZG9uVVVJRDogc3RyaW5nLFxuICAgICAgICBmaWxlTmFtZTogc3RyaW5nLFxuICAgICAgICBmdW5jdGlvbk5hbWU6IHN0cmluZyxcbiAgICAgICAgYm9keSA9IHt9LFxuICAgICAgICBodHRwT3B0aW9ucyA9IHt9LFxuICAgICAgICBpc0FzeW5jID0gZmFsc2VcbiAgICApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICAvLyByZXR1cm4gdGhpcy5odHRwU2VydmljZS5wb3N0UGFwaUFwaUNhbGwoXG4gICAgICAgIC8vICAgICBgJHt0aGlzLmdldEFkZG9uQmFzZVJlbGF0aXZlUGF0aChcbiAgICAgICAgLy8gICAgICAgICBpc0FzeW5jXG4gICAgICAgIC8vICAgICApfS8ke2FkZG9uVVVJRH0vJHtmaWxlTmFtZX0vJHtmdW5jdGlvbk5hbWV9YCxcbiAgICAgICAgLy8gICAgIGJvZHksXG4gICAgICAgIC8vICAgICBodHRwT3B0aW9uc1xuICAgICAgICAvLyApO1xuXG4gICAgICAgIGNvbnN0IHBhcGlCYXNlVXJsID0gdGhpcy5nZXRTZXJ2ZXJCYXNlVXJsKGFkZG9uVVVJRCwgZmlsZU5hbWUsIGlzQXN5bmMpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5wb3N0SHR0cENhbGwoYCR7cGFwaUJhc2VVcmx9LyR7ZnVuY3Rpb25OYW1lfWAsIGJvZHksIGh0dHBPcHRpb25zKTtcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBuZWVkIHRvIGNoZWsgdGhpcyBpZiB0aGUgbG9hZGVyIGlzIHdvcmtpbmcuXG4gICAgZmV0Y2goaW5wdXQ6IFJlcXVlc3RJbmZvLCBpbml0PzogUmVxdWVzdEluaXQpOiBQcm9taXNlPFJlc3BvbnNlPiB7XG4gICAgICAgIHRoaXMubG9hZGVyU2VydmljZS5zaG93KCk7XG5cbiAgICAgICAgcmV0dXJuIHdpbmRvdy5mZXRjaChpbnB1dCwgaW5pdCkuZmluYWxseSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmxvYWRlclNlcnZpY2UuaGlkZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXROZ3hMaWJUcmFuc2xhdGlvblJlc291cmNlKGFkZG9uVVVJRDogc3RyaW5nLCBsaWJOYW1lID0gJ25neC1saWInKTogSVRyYW5zbGF0aW9uUmVzb3VyY2Uge1xuICAgICAgICBjb25zdCBhZGRvblN0YXRpY0ZvbGRlciA9IHRoaXMuZ2V0QWRkb25TdGF0aWNGb2xkZXIoYWRkb25VVUlEKTtcbiAgICAgICAgY29uc3QgdHJhbnNsYXRpb25zUGF0aDogc3RyaW5nID0gdGhpcy5maWxlU2VydmljZS5nZXRBc3NldHNUcmFuc2xhdGlvbnNQYXRoKGFkZG9uU3RhdGljRm9sZGVyLCBsaWJOYW1lKTtcbiAgICAgICAgY29uc3QgdHJhbnNsYXRpb25zU3VmZml4OiBzdHJpbmcgPSB0aGlzLmZpbGVTZXJ2aWNlLmdldEFzc2V0c1RyYW5zbGF0aW9uc1N1ZmZpeChsaWJOYW1lKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcHJlZml4OiB0cmFuc2xhdGlvbnNQYXRoLFxuICAgICAgICAgICAgc3VmZml4OiB0cmFuc2xhdGlvbnNTdWZmaXgsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZ2V0QWRkb25UcmFuc2xhdGlvblJlc291cmNlKGFkZG9uVVVJRDogc3RyaW5nKTogSVRyYW5zbGF0aW9uUmVzb3VyY2Uge1xuICAgICAgICBjb25zdCBhZGRvblN0YXRpY0ZvbGRlciA9IHRoaXMuZ2V0QWRkb25TdGF0aWNGb2xkZXIoYWRkb25VVUlEKTtcbiAgICAgICAgY29uc3QgZGVmYXVsdFN1YkZvbGRlciA9ICdhc3NldHMvaTE4bi8nO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBwcmVmaXg6IGFkZG9uU3RhdGljRm9sZGVyLmxlbmd0aCA+IDAgPyBgJHthZGRvblN0YXRpY0ZvbGRlcn0ke2RlZmF1bHRTdWJGb2xkZXJ9YCA6IGAvJHtkZWZhdWx0U3ViRm9sZGVyfWAsXG4gICAgICAgICAgICBzdWZmaXg6ICcuanNvbicsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgc2V0RGVmYXVsdFRyYW5zbGF0ZUxhbmcodHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLCB1cmxMYW5nUGFyYW0gPSAndXNlckxhbmcnKSB7XG4gICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5zZXREZWZhdWx0VHJhbnNsYXRlTGFuZyh0cmFuc2xhdGUsIHVybExhbmdQYXJhbSk7XG4gICAgfVxuXG4gICAgZ2V0UGFnZXNBZGRvblVVSUQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLlBBR0VTX0FERE9OX1VVSUQ7XG4gICAgfVxuXG4gICAgc2V0U2hlbGxSb3V0ZXJEYXRhKGRhdGE6IHsgYWRkUGFkZGluZz86IGJvb2xlYW4sIHNob3dTaWRlYmFyPzogYm9vbGVhbiwgc2hvd0hlYWRlcj86IGJvb2xlYW4gfSkge1xuICAgICAgICBjb25zdCBldmVudERhdGEgPSB7XG4gICAgICAgICAgICBkZXRhaWw6IGRhdGEsXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgY3VzdG9tRXZlbnQgPSBuZXcgQ3VzdG9tRXZlbnQoJ3NldC1yb3V0ZXItZGF0YScsIGV2ZW50RGF0YSk7XG4gICAgICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KGN1c3RvbUV2ZW50KTtcbiAgICB9XG5cbiAgICBkZWZpbmVDdXN0b21FbGVtZW50KGVsZW1lbnROYW1lOiBzdHJpbmcsIGNvbXBvbmVudDogVHlwZTxhbnk+LCBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICAgICAgY3VzdG9tRWxlbWVudHMudXBncmFkZVxuICAgICAgICBpZiAoIWN1c3RvbUVsZW1lbnRzLmdldChlbGVtZW50TmFtZSkpIHsgIFxuICAgICAgICAgICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKGVsZW1lbnROYW1lLCBjcmVhdGVDdXN0b21FbGVtZW50KGNvbXBvbmVudCwge2luamVjdG9yOiBpbmplY3Rvcn0pKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlTXVsdGlUcmFuc2xhdGVMb2FkZXIoXG4gICAgICAgIGFkZG9uVVVJRDogc3RyaW5nLFxuICAgICAgICBhZGRvblNlcnZpY2U6IFBlcEFkZG9uU2VydmljZSxcbiAgICAgICAgbGlic05hbWUgPSBbJ25neC1saWInXSxcbiAgICApIHtcbiAgICAgICAgY29uc3Qgbmd4TGliVHJhbnNsYXRpb25SZXNvdXJjZXMgPSBbXTtcblxuICAgICAgICBpZiAobGlic05hbWU/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBsaWJzTmFtZS5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsaWJOYW1lID0gbGlic05hbWVbaW5kZXhdO1xuICAgICAgICAgICAgICAgIG5neExpYlRyYW5zbGF0aW9uUmVzb3VyY2VzLnB1c2goYWRkb25TZXJ2aWNlLmdldE5neExpYlRyYW5zbGF0aW9uUmVzb3VyY2UoYWRkb25VVUlELCBsaWJOYW1lKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhZGRvblRyYW5zbGF0aW9uUmVzb3VyY2UgPSBhZGRvblNlcnZpY2UuZ2V0QWRkb25UcmFuc2xhdGlvblJlc291cmNlKGFkZG9uVVVJRCk7XG5cbiAgICAgICAgcmV0dXJuIGFkZG9uU2VydmljZS50cmFuc2xhdGVTZXJ2aWNlLmNyZWF0ZU11bHRpVHJhbnNsYXRlTG9hZGVyKFtcbiAgICAgICAgICAgIC4uLm5neExpYlRyYW5zbGF0aW9uUmVzb3VyY2VzLFxuICAgICAgICAgICAgYWRkb25UcmFuc2xhdGlvblJlc291cmNlXG4gICAgICAgIF0pO1xuICAgIH1cbn1cbiJdfQ==