@seniorsistemas/data-seniorx-core 3.1.0 → 3.2.0

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 (191) hide show
  1. package/core/constants/accordion.const.d.ts +4 -4
  2. package/core/constants/alert.const.d.ts +1 -1
  3. package/core/constants/autocomplete.const.d.ts +2 -2
  4. package/core/constants/badge.const.d.ts +1 -1
  5. package/core/constants/card.const.d.ts +8 -8
  6. package/core/constants/chips.const.d.ts +2 -2
  7. package/core/constants/code-editor.const.d.ts +4 -4
  8. package/core/constants/collapse-link.const.d.ts +2 -2
  9. package/core/constants/color-picker.const.d.ts +2 -2
  10. package/core/constants/combobox.const.d.ts +3 -3
  11. package/core/constants/context-selector.const.d.ts +1 -1
  12. package/core/constants/editable-overlay.const.d.ts +4 -4
  13. package/core/constants/fileupload.const.d.ts +3 -3
  14. package/core/constants/gantt.const.d.ts +1 -1
  15. package/core/constants/help-popover.const.d.ts +2 -2
  16. package/core/constants/hyperlink.const.d.ts +2 -2
  17. package/core/constants/info-sign.const.d.ts +1 -1
  18. package/core/constants/inline-edit.const.d.ts +4 -4
  19. package/core/constants/kanban.const.d.ts +2 -2
  20. package/core/constants/list.const.d.ts +1 -1
  21. package/core/constants/modalc.const.d.ts +1 -1
  22. package/core/constants/navigation-button.const.d.ts +3 -3
  23. package/core/constants/object-card.const.d.ts +2 -2
  24. package/core/constants/picklist.const.d.ts +2 -2
  25. package/core/constants/pin-code-field.const.d.ts +3 -3
  26. package/core/constants/popover.const.d.ts +1 -1
  27. package/core/constants/progressbar.const.d.ts +1 -1
  28. package/core/constants/radio.const.d.ts +2 -2
  29. package/core/constants/rating-scale.const.d.ts +1 -1
  30. package/core/constants/sidebar.const.d.ts +1 -1
  31. package/core/constants/slider.const.d.ts +1 -1
  32. package/core/constants/split-button.const.d.ts +2 -2
  33. package/core/constants/spotlight.const.d.ts +8 -8
  34. package/core/constants/star-rating.const.d.ts +2 -2
  35. package/core/constants/tab.const.d.ts +3 -3
  36. package/core/constants/table.const.d.ts +1 -0
  37. package/core/constants/thumbnails.const.d.ts +4 -4
  38. package/core/constants/token-list.const.d.ts +1 -1
  39. package/core/types/table-column.type.d.ts +4 -0
  40. package/core/types/table-options.type.d.ts +3 -0
  41. package/core/types/table-shared.type.d.ts +1 -1
  42. package/core/types/tile-select.type.d.ts +17 -0
  43. package/esm2022/core/constants/accordion.const.mjs +5 -5
  44. package/esm2022/core/constants/alert.const.mjs +2 -2
  45. package/esm2022/core/constants/autocomplete.const.mjs +3 -3
  46. package/esm2022/core/constants/badge.const.mjs +2 -2
  47. package/esm2022/core/constants/card.const.mjs +9 -9
  48. package/esm2022/core/constants/chips.const.mjs +3 -3
  49. package/esm2022/core/constants/code-editor.const.mjs +5 -5
  50. package/esm2022/core/constants/collapse-link.const.mjs +3 -3
  51. package/esm2022/core/constants/color-picker.const.mjs +3 -3
  52. package/esm2022/core/constants/combobox.const.mjs +7 -4
  53. package/esm2022/core/constants/context-selector.const.mjs +2 -2
  54. package/esm2022/core/constants/editable-overlay.const.mjs +5 -5
  55. package/esm2022/core/constants/fileupload.const.mjs +4 -4
  56. package/esm2022/core/constants/gantt.const.mjs +2 -2
  57. package/esm2022/core/constants/help-popover.const.mjs +3 -3
  58. package/esm2022/core/constants/hyperlink.const.mjs +3 -3
  59. package/esm2022/core/constants/info-sign.const.mjs +2 -2
  60. package/esm2022/core/constants/inline-edit.const.mjs +5 -5
  61. package/esm2022/core/constants/kanban.const.mjs +3 -3
  62. package/esm2022/core/constants/list.const.mjs +2 -2
  63. package/esm2022/core/constants/loading-state.const.mjs +2 -2
  64. package/esm2022/core/constants/modalc.const.mjs +2 -2
  65. package/esm2022/core/constants/navigation-button.const.mjs +4 -4
  66. package/esm2022/core/constants/object-card.const.mjs +3 -3
  67. package/esm2022/core/constants/picklist.const.mjs +3 -3
  68. package/esm2022/core/constants/pin-code-field.const.mjs +4 -4
  69. package/esm2022/core/constants/popover.const.mjs +8 -2
  70. package/esm2022/core/constants/progressbar.const.mjs +2 -2
  71. package/esm2022/core/constants/radio.const.mjs +3 -3
  72. package/esm2022/core/constants/rating-scale.const.mjs +2 -2
  73. package/esm2022/core/constants/sidebar.const.mjs +2 -2
  74. package/esm2022/core/constants/slider.const.mjs +2 -2
  75. package/esm2022/core/constants/split-button.const.mjs +3 -3
  76. package/esm2022/core/constants/spotlight.const.mjs +9 -9
  77. package/esm2022/core/constants/star-rating.const.mjs +3 -3
  78. package/esm2022/core/constants/tab.const.mjs +4 -4
  79. package/esm2022/core/constants/table.const.mjs +4 -3
  80. package/esm2022/core/constants/thumbnails.const.mjs +5 -5
  81. package/esm2022/core/constants/token-list.const.mjs +2 -2
  82. package/esm2022/core/data/fontawesome-v5-solid-icons.data.mjs +2 -2
  83. package/esm2022/core/types/table-column.type.mjs +1 -1
  84. package/esm2022/core/types/table-options.type.mjs +1 -1
  85. package/esm2022/core/types/table-shared.type.mjs +1 -1
  86. package/esm2022/core/types/tile-select.type.mjs +8 -0
  87. package/esm2022/core/utils/combobox.util.mjs +6 -6
  88. package/esm2022/features/accordion/components/accordion-item/accordion-item.component.mjs +3 -3
  89. package/esm2022/features/autocomplete/autocomplete.component.mjs +3 -3
  90. package/esm2022/features/bignumber-input/bignumber-input.component.mjs +1 -1
  91. package/esm2022/features/breadcrumb/breadcrumb.component.mjs +3 -3
  92. package/esm2022/features/button/button.component.mjs +7 -3
  93. package/esm2022/features/card-list/card/card.component.mjs +2 -2
  94. package/esm2022/features/card-list/card-list.component.mjs +7 -3
  95. package/esm2022/features/chat/chat.component.mjs +4 -4
  96. package/esm2022/features/checkbox/checkbox.component.mjs +3 -3
  97. package/esm2022/features/checkbox-list/checkbox-list.component.mjs +3 -3
  98. package/esm2022/features/chips/chips.component.mjs +3 -3
  99. package/esm2022/features/code-editor/code-editor.component.mjs +23 -5
  100. package/esm2022/features/color-picker/color-picker.component.mjs +3 -3
  101. package/esm2022/features/country-phone-picker/country-phone-picker.component.mjs +3 -3
  102. package/esm2022/features/currency/currency.component.mjs +1 -1
  103. package/esm2022/features/editable-overlay/editable-overlay.component.mjs +3 -3
  104. package/esm2022/features/empty-state/empty-state.component.mjs +1 -1
  105. package/esm2022/features/fileupload/fileupload.component.mjs +4 -4
  106. package/esm2022/features/filters/filters.component.mjs +3 -3
  107. package/esm2022/features/help-popover/help-popover.component.mjs +2 -2
  108. package/esm2022/features/hyperlink/hyperlink.component.mjs +3 -3
  109. package/esm2022/features/icon-picker/icon-picker.component.mjs +1 -1
  110. package/esm2022/features/image-cropper/image-cropper.component.mjs +9 -9
  111. package/esm2022/features/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.mjs +1 -1
  112. package/esm2022/features/inline-edit/components/inline-edit-item/inline-edit-item.component.mjs +2 -2
  113. package/esm2022/features/list/list.component.mjs +7 -3
  114. package/esm2022/features/loading-state/loading-state.component.mjs +5 -5
  115. package/esm2022/features/localized-number-input/localized-number-input.component.mjs +4 -4
  116. package/esm2022/features/lookup/lookup.component.mjs +5 -5
  117. package/esm2022/features/mask/mask.component.mjs +4 -4
  118. package/esm2022/features/modal/modal.component.mjs +3 -3
  119. package/esm2022/features/modalc/modalc.component.mjs +3 -3
  120. package/esm2022/features/number-input/number-input.component.mjs +32 -5
  121. package/esm2022/features/object-card/components/object-card-field/object-card-field.component.mjs +1 -1
  122. package/esm2022/features/object-card/components/object-card-main/object-card-main.component.mjs +1 -1
  123. package/esm2022/features/object-card/object-card.component.mjs +2 -2
  124. package/esm2022/features/paginator/paginator.component.mjs +3 -3
  125. package/esm2022/features/panel/panel.component.mjs +6 -6
  126. package/esm2022/features/password-strength/password-strength.component.mjs +6 -6
  127. package/esm2022/features/picklist/picklist.component.mjs +6 -4
  128. package/esm2022/features/pin-code-field/pin-code-field.component.mjs +3 -3
  129. package/esm2022/features/profile-picture-picker/profile-picture-picker.component.mjs +11 -11
  130. package/esm2022/features/rating-scale/rating-scale.component.mjs +3 -3
  131. package/esm2022/features/row-card-list/row-card/row-card.component.mjs +100 -7
  132. package/esm2022/features/row-card-list/row-card-list.component.mjs +7 -3
  133. package/esm2022/features/scaffold/scaffold.component.mjs +3 -3
  134. package/esm2022/features/searchbox/searchbox.component.mjs +4 -4
  135. package/esm2022/features/select-button/select-button.component.mjs +5 -5
  136. package/esm2022/features/sidebar/sidebar.component.mjs +3 -3
  137. package/esm2022/features/slider/slider.component.mjs +3 -3
  138. package/esm2022/features/speech-recognition/speech-recognition.component.mjs +12 -12
  139. package/esm2022/features/spotlight/spotlight.component.mjs +2 -2
  140. package/esm2022/features/star-rating/star-rating.component.mjs +3 -3
  141. package/esm2022/features/switch/switch.component.mjs +4 -4
  142. package/esm2022/features/table/components/table-actions-menu.component.mjs +2 -2
  143. package/esm2022/features/table/components/table-cell-content.component.mjs +16 -10
  144. package/esm2022/features/table/table.component.mjs +46 -16
  145. package/esm2022/features/table/utils/table-visual.util.mjs +25 -7
  146. package/esm2022/features/textarea/textarea.component.mjs +3 -3
  147. package/esm2022/features/textbox/textbox.component.mjs +3 -3
  148. package/esm2022/features/tile-select/tile-select.component.mjs +80 -0
  149. package/esm2022/features/toast/toast.component.mjs +3 -3
  150. package/esm2022/features/tree/components/tree-node-item/tree-node-item.component.mjs +6 -6
  151. package/esm2022/features/visual-sql-editor/visual-sql-editor.component.mjs +2 -2
  152. package/esm2022/locales/en.json +4760 -4749
  153. package/esm2022/locales/es-CO.json +4760 -4749
  154. package/esm2022/locales/pt.json +4760 -4749
  155. package/esm2022/providers/features.provider.mjs +3 -1
  156. package/esm2022/public-api.mjs +3 -1
  157. package/features/button/button.component.d.ts +2 -1
  158. package/features/card-list/card-list.component.d.ts +3 -1
  159. package/features/code-editor/code-editor.component.d.ts +2 -1
  160. package/features/help-popover/help-popover.component.d.ts +1 -1
  161. package/features/inline-edit/components/inline-edit-item/inline-edit-item.component.d.ts +4 -4
  162. package/features/kanban/components/kanban-item-dragging/kanban-item-dragging.component.d.ts +2 -2
  163. package/features/list/list.component.d.ts +3 -1
  164. package/features/navigation-button/navigation-button.component.d.ts +3 -3
  165. package/features/number-input/number-input.component.d.ts +7 -1
  166. package/features/panel/panel.component.d.ts +1 -1
  167. package/features/picklist/picklist.component.d.ts +3 -2
  168. package/features/pin-code-field/pin-code-field.component.d.ts +3 -3
  169. package/features/row-card-list/row-card/row-card.component.d.ts +15 -2
  170. package/features/row-card-list/row-card-list.component.d.ts +3 -1
  171. package/features/spotlight/spotlight.component.d.ts +8 -8
  172. package/features/table/components/table-cell-content.component.d.ts +4 -1
  173. package/features/table/table.component.d.ts +9 -2
  174. package/features/table/utils/table-visual.util.d.ts +5 -0
  175. package/features/textarea/textarea.component.d.ts +1 -1
  176. package/features/thumbnails/components/thumbnail-item/thumbnail-item.component.d.ts +3 -3
  177. package/features/thumbnails/components/thumbnail-item-image/thumbnail-item-image.component.d.ts +1 -1
  178. package/features/thumbnails/components/thumbnail-item-video/thumbnail-item-video.component.d.ts +1 -1
  179. package/features/tile-select/tile-select.component.d.ts +21 -0
  180. package/fesm2022/seniorsistemas-data-seniorx-core-fontawesome-v5-solid-icons.data-fK3MF8KJ.mjs +4 -0
  181. package/fesm2022/{seniorsistemas-data-seniorx-core-fontawesome-v5-solid-icons.data-B7opbaVg.mjs.map → seniorsistemas-data-seniorx-core-fontawesome-v5-solid-icons.data-fK3MF8KJ.mjs.map} +1 -1
  182. package/fesm2022/seniorsistemas-data-seniorx-core.mjs +14859 -14534
  183. package/fesm2022/seniorsistemas-data-seniorx-core.mjs.map +1 -1
  184. package/package.json +57 -22
  185. package/public-api.d.ts +3 -0
  186. package/src/locales/en.json +4760 -4749
  187. package/src/locales/es-CO.json +4760 -4749
  188. package/src/locales/pt.json +4760 -4749
  189. package/styles/sdc-global-variables.scss +2 -2
  190. package/styles.css +2 -2
  191. package/fesm2022/seniorsistemas-data-seniorx-core-fontawesome-v5-solid-icons.data-B7opbaVg.mjs +0 -4
@@ -119,7 +119,7 @@ export class CheckboxListComponent {
119
119
  useExisting: forwardRef(() => CheckboxListComponent),
120
120
  multi: true
121
121
  }
122
- ], usesOnChanges: true, ngImport: i0, template: "<ng-template\n #renderNode\n let-node\n let-nodeState=\"nodeState\"\n let-depth=\"depth\"\n>\n <div class=\"sdc-checkbox-list__item\">\n <label\n class=\"sdc-checkbox-list__label\"\n [class.sdc-checkbox-list__label--disabled]=\"nodeState.disabled\"\n [class.sdc-checkbox-list__label--block]=\"node.renderType === 'block'\"\n [class.sdc-checkbox-list__label--inline]=\"(node.renderType ?? renderType) === 'inline'\"\n >\n <input\n type=\"checkbox\"\n class=\"sdc-checkbox-list__input\"\n [checked]=\"nodeState.checked\"\n [disabled]=\"nodeState.disabled\"\n [indeterminate]=\"nodeState.indeterminate ?? false\"\n [attr.aria-checked]=\"nodeState.indeterminate ? 'mixed' : nodeState.checked\"\n [attr.aria-disabled]=\"nodeState.disabled\"\n (change)=\"onNodeCheckedChange(node, nodeState, $event)\"\n />\n <span>{{ node.label }}</span>\n </label>\n\n @if (node.children?.length) {\n <div\n class=\"sdc-checkbox-list__children\"\n [style.margin-left.rem]=\"depth > 0 ? 1.25 : 1\"\n >\n @for (child of node.children; track child.label) {\n <ng-container\n [ngTemplateOutlet]=\"renderNode\"\n [ngTemplateOutletContext]=\"{\n $implicit: child,\n nodeState: ensureChildState(nodeState, child),\n depth: depth + 1\n }\"\n ></ng-container>\n }\n </div>\n }\n </div>\n</ng-template>\n\n<fieldset\n class=\"sdc-checkbox-list\"\n [class.sdc-checkbox-list--invalid]=\"invalid\"\n [attr.aria-required]=\"required\"\n [attr.aria-invalid]=\"invalid\"\n>\n @if (labelKey()) {\n <legend class=\"sdc-checkbox-list__group-label\">\n <span class=\"sdc-checkbox-list__group-label-text\">\n {{ labelKey() | translate }}\n @if (required) {\n <span class=\"required-field\" aria-hidden=\"true\">*</span>\n <span class=\"sr-only\">{{ 'platform.datacore.accessibility.required_field' | translate }}</span>\n }\n </span>\n </legend>\n }\n\n <ng-container\n [ngTemplateOutlet]=\"renderNode\"\n [ngTemplateOutletContext]=\"{ $implicit: data, nodeState: state, depth: 0 }\"\n ></ng-container>\n</fieldset>\n\n@if (messageKey()) {\n <small class=\"sdc-checkbox-list__message\" [class.invalid]=\"invalid\" role=\"alert\" aria-live=\"polite\">\n {{ messageKey() | translate }}\n </small>\n}\n", styles: [":host{display:block}.sdc-checkbox-list__group-label{display:inline-flex;align-items:center;width:100%;padding:0;margin-bottom:var(--sdc-form-label-row-mb);font-size:var(--sdc-form-label-font-size);font-weight:var(--sdc-form-label-font-weight);color:var(--sdc-form-label-color);line-height:var(--sdc-form-label-lh)}.sdc-checkbox-list__group-label-text{display:inline-flex;align-items:center}.sdc-checkbox-list__message{display:block;margin-top:var(--sdc-form-label-row-mb);font-size:.8125rem;color:var(--sdc-text-subtle, #667085)}.sdc-checkbox-list__message.invalid{color:var(--sdc-form-required-color)}.sdc-checkbox-list{display:flex;flex-direction:column;gap:.625rem;margin:0;padding:0;border:none;min-width:0}.sdc-checkbox-list--invalid{outline:1px solid var(--sdc-formfield-invalid-border, var(--sdc-error-color, #d98888));outline-offset:4px;border-radius:var(--sdc-formfield-border-radius, 4px)}.sdc-checkbox-list__item{display:flex;flex-direction:column;gap:.625rem}.sdc-checkbox-list__label{display:flex;gap:.75rem;color:#212533;font-size:.875rem}.sdc-checkbox-list__label--inline{align-items:center}.sdc-checkbox-list__label--block{flex-direction:column-reverse}.sdc-checkbox-list__label--disabled{opacity:.5;cursor:default}.sdc-checkbox-list__input{position:relative;flex-shrink:0;width:1.25rem;height:1.25rem;border:1px solid #c1c1cc;border-radius:.25rem;cursor:pointer;accent-color:#428bca}.sdc-checkbox-list__children{display:flex;flex-direction:column;gap:.625rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
122
+ ], usesOnChanges: true, ngImport: i0, template: "<ng-template\n #renderNode\n let-node\n let-nodeState=\"nodeState\"\n let-depth=\"depth\"\n>\n <div class=\"sdc-checkbox-list__item\">\n <label\n class=\"sdc-checkbox-list__label\"\n [class.sdc-checkbox-list__label--disabled]=\"nodeState.disabled\"\n [class.sdc-checkbox-list__label--block]=\"node.renderType === 'block'\"\n [class.sdc-checkbox-list__label--inline]=\"(node.renderType ?? renderType) === 'inline'\"\n >\n <input\n type=\"checkbox\"\n class=\"sdc-checkbox-list__input\"\n [checked]=\"nodeState.checked\"\n [disabled]=\"nodeState.disabled\"\n [indeterminate]=\"nodeState.indeterminate ?? false\"\n [attr.aria-checked]=\"nodeState.indeterminate ? 'mixed' : nodeState.checked\"\n [attr.aria-disabled]=\"nodeState.disabled\"\n (change)=\"onNodeCheckedChange(node, nodeState, $event)\"\n />\n <span>{{ node.label }}</span>\n </label>\n\n @if (node.children?.length) {\n <div\n class=\"sdc-checkbox-list__children\"\n [style.margin-left.rem]=\"depth > 0 ? 1.25 : 1\"\n >\n @for (child of node.children; track child.label) {\n <ng-container\n [ngTemplateOutlet]=\"renderNode\"\n [ngTemplateOutletContext]=\"{\n $implicit: child,\n nodeState: ensureChildState(nodeState, child),\n depth: depth + 1\n }\"\n ></ng-container>\n }\n </div>\n }\n </div>\n</ng-template>\n\n<fieldset\n class=\"sdc-checkbox-list\"\n [class.sdc-checkbox-list--invalid]=\"invalid\"\n [attr.aria-required]=\"required\"\n [attr.aria-invalid]=\"invalid\"\n>\n @if (labelKey()) {\n <legend class=\"sdc-checkbox-list__group-label\">\n <span class=\"sdc-checkbox-list__group-label-text\">\n {{ labelKey() | translate }}\n @if (required) {\n <span class=\"required-field\" aria-hidden=\"true\">*</span>\n <span class=\"sr-only\">{{ 'platform.datacore.accessibility_required_field' | translate }}</span>\n }\n </span>\n </legend>\n }\n\n <ng-container\n [ngTemplateOutlet]=\"renderNode\"\n [ngTemplateOutletContext]=\"{ $implicit: data, nodeState: state, depth: 0 }\"\n ></ng-container>\n</fieldset>\n\n@if (messageKey()) {\n <small class=\"sdc-checkbox-list__message\" [class.invalid]=\"invalid\" role=\"alert\" aria-live=\"polite\">\n {{ messageKey() | translate }}\n </small>\n}\n", styles: [":host{display:block}.sdc-checkbox-list__group-label{display:inline-flex;align-items:center;width:100%;padding:0;margin-bottom:var(--sdc-form-label-row-mb);font-size:var(--sdc-form-label-font-size);font-weight:var(--sdc-form-label-font-weight);color:var(--sdc-form-label-color);line-height:var(--sdc-form-label-lh)}.sdc-checkbox-list__group-label-text{display:inline-flex;align-items:center}.sdc-checkbox-list__message{display:block;margin-top:var(--sdc-form-label-row-mb);font-size:.8125rem;color:var(--sdc-text-subtle, #667085)}.sdc-checkbox-list__message.invalid{color:var(--sdc-form-required-color)}.sdc-checkbox-list{display:flex;flex-direction:column;gap:.625rem;margin:0;padding:0;border:none;min-width:0}.sdc-checkbox-list--invalid{outline:1px solid var(--sdc-formfield-invalid-border, var(--sdc-error-color, #d98888));outline-offset:4px;border-radius:var(--sdc-formfield-border-radius, 4px)}.sdc-checkbox-list__item{display:flex;flex-direction:column;gap:.625rem}.sdc-checkbox-list__label{display:flex;gap:.75rem;color:#212533;font-size:.875rem}.sdc-checkbox-list__label--inline{align-items:center}.sdc-checkbox-list__label--block{flex-direction:column-reverse}.sdc-checkbox-list__label--disabled{opacity:.5;cursor:default}.sdc-checkbox-list__input{position:relative;flex-shrink:0;width:1.25rem;height:1.25rem;border:1px solid #c1c1cc;border-radius:.25rem;cursor:pointer;accent-color:#428bca}.sdc-checkbox-list__children{display:flex;flex-direction:column;gap:.625rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
123
123
  }
124
124
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CheckboxListComponent, decorators: [{
125
125
  type: Component,
@@ -129,7 +129,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
129
129
  useExisting: forwardRef(() => CheckboxListComponent),
130
130
  multi: true
131
131
  }
132
- ], template: "<ng-template\n #renderNode\n let-node\n let-nodeState=\"nodeState\"\n let-depth=\"depth\"\n>\n <div class=\"sdc-checkbox-list__item\">\n <label\n class=\"sdc-checkbox-list__label\"\n [class.sdc-checkbox-list__label--disabled]=\"nodeState.disabled\"\n [class.sdc-checkbox-list__label--block]=\"node.renderType === 'block'\"\n [class.sdc-checkbox-list__label--inline]=\"(node.renderType ?? renderType) === 'inline'\"\n >\n <input\n type=\"checkbox\"\n class=\"sdc-checkbox-list__input\"\n [checked]=\"nodeState.checked\"\n [disabled]=\"nodeState.disabled\"\n [indeterminate]=\"nodeState.indeterminate ?? false\"\n [attr.aria-checked]=\"nodeState.indeterminate ? 'mixed' : nodeState.checked\"\n [attr.aria-disabled]=\"nodeState.disabled\"\n (change)=\"onNodeCheckedChange(node, nodeState, $event)\"\n />\n <span>{{ node.label }}</span>\n </label>\n\n @if (node.children?.length) {\n <div\n class=\"sdc-checkbox-list__children\"\n [style.margin-left.rem]=\"depth > 0 ? 1.25 : 1\"\n >\n @for (child of node.children; track child.label) {\n <ng-container\n [ngTemplateOutlet]=\"renderNode\"\n [ngTemplateOutletContext]=\"{\n $implicit: child,\n nodeState: ensureChildState(nodeState, child),\n depth: depth + 1\n }\"\n ></ng-container>\n }\n </div>\n }\n </div>\n</ng-template>\n\n<fieldset\n class=\"sdc-checkbox-list\"\n [class.sdc-checkbox-list--invalid]=\"invalid\"\n [attr.aria-required]=\"required\"\n [attr.aria-invalid]=\"invalid\"\n>\n @if (labelKey()) {\n <legend class=\"sdc-checkbox-list__group-label\">\n <span class=\"sdc-checkbox-list__group-label-text\">\n {{ labelKey() | translate }}\n @if (required) {\n <span class=\"required-field\" aria-hidden=\"true\">*</span>\n <span class=\"sr-only\">{{ 'platform.datacore.accessibility.required_field' | translate }}</span>\n }\n </span>\n </legend>\n }\n\n <ng-container\n [ngTemplateOutlet]=\"renderNode\"\n [ngTemplateOutletContext]=\"{ $implicit: data, nodeState: state, depth: 0 }\"\n ></ng-container>\n</fieldset>\n\n@if (messageKey()) {\n <small class=\"sdc-checkbox-list__message\" [class.invalid]=\"invalid\" role=\"alert\" aria-live=\"polite\">\n {{ messageKey() | translate }}\n </small>\n}\n", styles: [":host{display:block}.sdc-checkbox-list__group-label{display:inline-flex;align-items:center;width:100%;padding:0;margin-bottom:var(--sdc-form-label-row-mb);font-size:var(--sdc-form-label-font-size);font-weight:var(--sdc-form-label-font-weight);color:var(--sdc-form-label-color);line-height:var(--sdc-form-label-lh)}.sdc-checkbox-list__group-label-text{display:inline-flex;align-items:center}.sdc-checkbox-list__message{display:block;margin-top:var(--sdc-form-label-row-mb);font-size:.8125rem;color:var(--sdc-text-subtle, #667085)}.sdc-checkbox-list__message.invalid{color:var(--sdc-form-required-color)}.sdc-checkbox-list{display:flex;flex-direction:column;gap:.625rem;margin:0;padding:0;border:none;min-width:0}.sdc-checkbox-list--invalid{outline:1px solid var(--sdc-formfield-invalid-border, var(--sdc-error-color, #d98888));outline-offset:4px;border-radius:var(--sdc-formfield-border-radius, 4px)}.sdc-checkbox-list__item{display:flex;flex-direction:column;gap:.625rem}.sdc-checkbox-list__label{display:flex;gap:.75rem;color:#212533;font-size:.875rem}.sdc-checkbox-list__label--inline{align-items:center}.sdc-checkbox-list__label--block{flex-direction:column-reverse}.sdc-checkbox-list__label--disabled{opacity:.5;cursor:default}.sdc-checkbox-list__input{position:relative;flex-shrink:0;width:1.25rem;height:1.25rem;border:1px solid #c1c1cc;border-radius:.25rem;cursor:pointer;accent-color:#428bca}.sdc-checkbox-list__children{display:flex;flex-direction:column;gap:.625rem}\n"] }]
132
+ ], template: "<ng-template\n #renderNode\n let-node\n let-nodeState=\"nodeState\"\n let-depth=\"depth\"\n>\n <div class=\"sdc-checkbox-list__item\">\n <label\n class=\"sdc-checkbox-list__label\"\n [class.sdc-checkbox-list__label--disabled]=\"nodeState.disabled\"\n [class.sdc-checkbox-list__label--block]=\"node.renderType === 'block'\"\n [class.sdc-checkbox-list__label--inline]=\"(node.renderType ?? renderType) === 'inline'\"\n >\n <input\n type=\"checkbox\"\n class=\"sdc-checkbox-list__input\"\n [checked]=\"nodeState.checked\"\n [disabled]=\"nodeState.disabled\"\n [indeterminate]=\"nodeState.indeterminate ?? false\"\n [attr.aria-checked]=\"nodeState.indeterminate ? 'mixed' : nodeState.checked\"\n [attr.aria-disabled]=\"nodeState.disabled\"\n (change)=\"onNodeCheckedChange(node, nodeState, $event)\"\n />\n <span>{{ node.label }}</span>\n </label>\n\n @if (node.children?.length) {\n <div\n class=\"sdc-checkbox-list__children\"\n [style.margin-left.rem]=\"depth > 0 ? 1.25 : 1\"\n >\n @for (child of node.children; track child.label) {\n <ng-container\n [ngTemplateOutlet]=\"renderNode\"\n [ngTemplateOutletContext]=\"{\n $implicit: child,\n nodeState: ensureChildState(nodeState, child),\n depth: depth + 1\n }\"\n ></ng-container>\n }\n </div>\n }\n </div>\n</ng-template>\n\n<fieldset\n class=\"sdc-checkbox-list\"\n [class.sdc-checkbox-list--invalid]=\"invalid\"\n [attr.aria-required]=\"required\"\n [attr.aria-invalid]=\"invalid\"\n>\n @if (labelKey()) {\n <legend class=\"sdc-checkbox-list__group-label\">\n <span class=\"sdc-checkbox-list__group-label-text\">\n {{ labelKey() | translate }}\n @if (required) {\n <span class=\"required-field\" aria-hidden=\"true\">*</span>\n <span class=\"sr-only\">{{ 'platform.datacore.accessibility_required_field' | translate }}</span>\n }\n </span>\n </legend>\n }\n\n <ng-container\n [ngTemplateOutlet]=\"renderNode\"\n [ngTemplateOutletContext]=\"{ $implicit: data, nodeState: state, depth: 0 }\"\n ></ng-container>\n</fieldset>\n\n@if (messageKey()) {\n <small class=\"sdc-checkbox-list__message\" [class.invalid]=\"invalid\" role=\"alert\" aria-live=\"polite\">\n {{ messageKey() | translate }}\n </small>\n}\n", styles: [":host{display:block}.sdc-checkbox-list__group-label{display:inline-flex;align-items:center;width:100%;padding:0;margin-bottom:var(--sdc-form-label-row-mb);font-size:var(--sdc-form-label-font-size);font-weight:var(--sdc-form-label-font-weight);color:var(--sdc-form-label-color);line-height:var(--sdc-form-label-lh)}.sdc-checkbox-list__group-label-text{display:inline-flex;align-items:center}.sdc-checkbox-list__message{display:block;margin-top:var(--sdc-form-label-row-mb);font-size:.8125rem;color:var(--sdc-text-subtle, #667085)}.sdc-checkbox-list__message.invalid{color:var(--sdc-form-required-color)}.sdc-checkbox-list{display:flex;flex-direction:column;gap:.625rem;margin:0;padding:0;border:none;min-width:0}.sdc-checkbox-list--invalid{outline:1px solid var(--sdc-formfield-invalid-border, var(--sdc-error-color, #d98888));outline-offset:4px;border-radius:var(--sdc-formfield-border-radius, 4px)}.sdc-checkbox-list__item{display:flex;flex-direction:column;gap:.625rem}.sdc-checkbox-list__label{display:flex;gap:.75rem;color:#212533;font-size:.875rem}.sdc-checkbox-list__label--inline{align-items:center}.sdc-checkbox-list__label--block{flex-direction:column-reverse}.sdc-checkbox-list__label--disabled{opacity:.5;cursor:default}.sdc-checkbox-list__input{position:relative;flex-shrink:0;width:1.25rem;height:1.25rem;border:1px solid #c1c1cc;border-radius:.25rem;cursor:pointer;accent-color:#428bca}.sdc-checkbox-list__children{display:flex;flex-direction:column;gap:.625rem}\n"] }]
133
133
  }], propDecorators: { data: [{
134
134
  type: Input,
135
135
  args: [{ required: true }]
@@ -142,4 +142,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
142
142
  }], invalid: [{
143
143
  type: Input
144
144
  }] } });
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2NoZWNrYm94LWxpc3QvY2hlY2tib3gtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2NoZWNrYm94LWxpc3QvY2hlY2tib3gtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULEtBQUssRUFHTCxpQkFBaUIsRUFDakIsVUFBVSxFQUNWLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7OztBQXlCdEQsTUFBTSxPQUFPLHFCQUFxQjtJQUNmLEdBQUcsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUV0QixJQUFJLENBQW9CO0lBQzFDLEtBQUssR0FBa0IsS0FBSyxDQUFDO0lBQzdCLE9BQU8sR0FBa0IsS0FBSyxDQUFDO0lBQy9CLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUVmLEtBQUssR0FBc0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRTVELFFBQVEsR0FBdUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3pELFNBQVMsR0FBZSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFFMUMsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FB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LENBQUM7Z0JBQ3BELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRiwrQ0NwQ0gsZzRFQTJFQSwrL0NEbERZLFlBQVkscU1BQUUsV0FBVyw4QkFBRSxlQUFlOzs0RkFhekMscUJBQXFCO2tCQWhCakMsU0FBUzsrQkFDRSxtQkFBbUIsY0FDakIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxlQUFlLENBQUMsbUJBR3BDLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLFFBQVEsYUFDOUI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsc0JBQXNCLENBQUM7NEJBQ3BELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGOzhCQUswQixJQUFJO3NCQUE5QixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDaEIsS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGZvcndhcmRSZWYsXG4gIGluamVjdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3Jtc01vZHVsZSwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuaW1wb3J0IHtcbiAgQ2hlY2tib3hMaXN0Q2hpbGRyZW4sXG4gIENoZWNrYm94TGlzdERhdGEsXG4gIENoZWNrYm94TGlzdFN0YXRlXG59IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvY2hlY2tib3gtbGlzdC50eXBlJztcbmltcG9ydCB0eXBlIHsgU3RyaW5nQm9vbGVhbiB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvc2VtYW50aWNzLnR5cGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZGMtY2hlY2tib3gtbGlzdCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hlY2tib3gtbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NoZWNrYm94LWxpc3QuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENoZWNrYm94TGlzdENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBDaGVja2JveExpc3RDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25DaGFuZ2VzIHtcbiAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIGRhdGEhOiBDaGVja2JveExpc3REYXRhO1xuICBASW5wdXQoKSBsYWJlbDogU3RyaW5nQm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBtZXNzYWdlOiBTdHJpbmdCb29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHJlcXVpcmVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGludmFsaWQgPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgc3RhdGU6IENoZWNrYm94TGlzdFN0YXRlID0gdGhpcy5idWlsZFN0YXRlKHsgbGFiZWw6ICcnIH0pO1xuXG4gIHByaXZhdGUgb25DaGFuZ2U6ICh2YWx1ZTogQ2hlY2tib3hMaXN0U3RhdGUpID0+IHZvaWQgPSAoKSA9PiB7IH07XG4gIHByaXZhdGUgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4geyB9O1xuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snZGF0YSddKSB7XG4gICAgICB0aGlzLnN0YXRlID0gdGhpcy5idWlsZFN0YXRlKHRoaXMuZGF0YSk7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBDaGVja2JveExpc3RTdGF0ZSB8IG51bGwpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlID0gdmFsdWUgPyB0aGlzLmNsb25lU3RhdGUodmFsdWUpIDogdGhpcy5idWlsZFN0YXRlKHRoaXMuZGF0YSk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKG9uQ2hhbmdlOiAodmFsdWU6IENoZWNrYm94TGlzdFN0YXRlKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IG9uQ2hhbmdlO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQob25Ub3VjaGVkOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBvblRvdWNoZWQ7XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgcmVuZGVyVHlwZSgpOiAnaW5saW5lJyB8ICdibG9jaycge1xuICAgIHJldHVybiB0aGlzLmRhdGEucmVuZGVyVHlwZSA/PyAnaW5saW5lJztcbiAgfVxuXG4gIHByb3RlY3RlZCBsYWJlbEtleSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0eXBlb2YgdGhpcy5sYWJlbCA9PT0gJ3N0cmluZycgPyB0aGlzLmxhYmVsIDogJyc7XG4gIH1cblxuICBwcm90ZWN0ZWQgbWVzc2FnZUtleSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0eXBlb2YgdGhpcy5tZXNzYWdlID09PSAnc3RyaW5nJyA/IHRoaXMubWVzc2FnZSA6ICcnO1xuICB9XG5cbiAgcHJvdGVjdGVkIGVuc3VyZUNoaWxkU3RhdGUocGFyZW50U3RhdGU6IENoZWNrYm94TGlzdFN0YXRlLCBjaGlsZDogQ2hlY2tib3hMaXN0RGF0YSk6IENoZWNrYm94TGlzdFN0YXRlIHtcbiAgICBpZiAoIXBhcmVudFN0YXRlLmNoaWxkcmVuKSB7XG4gICAgICBwYXJlbnRTdGF0ZS5jaGlsZHJlbiA9IHt9O1xuICAgIH1cblxuICAgIGlmICghcGFyZW50U3RhdGUuY2hpbGRyZW5bY2hpbGQubGFiZWxdKSB7XG4gICAgICBwYXJlbnRTdGF0ZS5jaGlsZHJlbltjaGlsZC5sYWJlbF0gPSB0aGlzLmJ1aWxkU3RhdGUoY2hpbGQpO1xuICAgIH1cblxuICAgIHJldHVybiBwYXJlbnRTdGF0ZS5jaGlsZHJlbltjaGlsZC5sYWJlbF07XG4gIH1cblxuICBwcm90ZWN0ZWQgb25Ob2RlQ2hlY2tlZENoYW5nZShcbiAgICBub2RlOiBDaGVja2JveExpc3REYXRhLFxuICAgIG5vZGVTdGF0ZTogQ2hlY2tib3hMaXN0U3RhdGUsXG4gICAgZXZlbnQ6IEV2ZW50XG4gICk6IHZvaWQge1xuICAgIGlmIChub2RlU3RhdGUuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjaGVja2VkID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS5jaGVja2VkO1xuICAgIHRoaXMuc2V0QnJhbmNoQ2hlY2tlZChub2RlLCBub2RlU3RhdGUsIGNoZWNrZWQpO1xuICAgIHRoaXMuc3luY0JyYW5jaFN0YXRlKHRoaXMuZGF0YSwgdGhpcy5zdGF0ZSk7XG4gICAgdGhpcy5lbWl0U3RhdGVDaGFuZ2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdFN0YXRlQ2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UodGhpcy5jbG9uZVN0YXRlKHRoaXMuc3RhdGUpKTtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZFN0YXRlKG5vZGU6IENoZWNrYm94TGlzdERhdGEpOiBDaGVja2JveExpc3RTdGF0ZSB7XG4gICAgY29uc3QgY2hpbGRyZW4gPSBub2RlLmNoaWxkcmVuPy5yZWR1Y2U8Q2hlY2tib3hMaXN0Q2hpbGRyZW4+KChhY2N1bXVsYXRvciwgY2hpbGQpID0+IHtcbiAgICAgIGFjY3VtdWxhdG9yW2NoaWxkLmxhYmVsXSA9IHRoaXMuYnVpbGRTdGF0ZShjaGlsZCk7XG4gICAgICByZXR1cm4gYWNjdW11bGF0b3I7XG4gICAgfSwge30pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgaW5kZXRlcm1pbmF0ZTogZmFsc2UsXG4gICAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgICBjaGlsZHJlblxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGNsb25lU3RhdGUoc3RhdGU6IENoZWNrYm94TGlzdFN0YXRlKTogQ2hlY2tib3hMaXN0U3RhdGUge1xuICAgIGNvbnN0IGNoaWxkcmVuID0gc3RhdGUuY2hpbGRyZW5cbiAgICAgID8gT2JqZWN0LmVudHJpZXMoc3RhdGUuY2hpbGRyZW4pLnJlZHVjZTxDaGVja2JveExpc3RDaGlsZHJlbj4oKGFjY3VtdWxhdG9yLCBba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgYWNjdW11bGF0b3Jba2V5XSA9IHRoaXMuY2xvbmVTdGF0ZSh2YWx1ZSk7XG4gICAgICAgIHJldHVybiBhY2N1bXVsYXRvcjtcbiAgICAgIH0sIHt9KVxuICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICByZXR1cm4ge1xuICAgICAgY2hlY2tlZDogc3RhdGUuY2hlY2tlZCxcbiAgICAgIGluZGV0ZXJtaW5hdGU6IHN0YXRlLmluZGV0ZXJtaW5hdGUsXG4gICAgICBkaXNhYmxlZDogc3RhdGUuZGlzYWJsZWQsXG4gICAgICBjaGlsZHJlblxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHNldEJyYW5jaENoZWNrZWQobm9kZTogQ2hlY2tib3hMaXN0RGF0YSwgbm9kZVN0YXRlOiBDaGVja2JveExpc3RTdGF0ZSwgY2hlY2tlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIG5vZGVTdGF0ZS5jaGVja2VkID0gY2hlY2tlZDtcbiAgICBub2RlU3RhdGUuaW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xuXG4gICAgZm9yIChjb25zdCBjaGlsZCBvZiBub2RlLmNoaWxkcmVuID8/IFtdKSB7XG4gICAgICBjb25zdCBjaGlsZFN0YXRlID0gdGhpcy5lbnN1cmVDaGlsZFN0YXRlKG5vZGVTdGF0ZSwgY2hpbGQpO1xuICAgICAgdGhpcy5zZXRCcmFuY2hDaGVja2VkKGNoaWxkLCBjaGlsZFN0YXRlLCBjaGVja2VkKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN5bmNCcmFuY2hTdGF0ZShub2RlOiBDaGVja2JveExpc3REYXRhLCBub2RlU3RhdGU6IENoZWNrYm94TGlzdFN0YXRlKTogQ2hlY2tib3hMaXN0U3RhdGUge1xuICAgIGlmICghbm9kZS5jaGlsZHJlbj8ubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gbm9kZVN0YXRlO1xuICAgIH1cblxuICAgIGNvbnN0IGNoaWxkU3RhdGVzID0gbm9kZS5jaGlsZHJlbi5tYXAoKGNoaWxkKSA9PlxuICAgICAgdGhpcy5zeW5jQnJhbmNoU3RhdGUoY2hpbGQsIHRoaXMuZW5zdXJlQ2hpbGRTdGF0ZShub2RlU3RhdGUsIGNoaWxkKSlcbiAgICApO1xuXG4gICAgY29uc3QgYWxsQ2hlY2tlZCA9IGNoaWxkU3RhdGVzLmV2ZXJ5KChjaGlsZFN0YXRlKSA9PiBjaGlsZFN0YXRlLmNoZWNrZWQpO1xuICAgIGNvbnN0IHNvbWVDaGVja2VkID0gY2hpbGRTdGF0ZXMuc29tZShcbiAgICAgIChjaGlsZFN0YXRlKSA9PiBjaGlsZFN0YXRlLmNoZWNrZWQgfHwgY2hpbGRTdGF0ZS5pbmRldGVybWluYXRlXG4gICAgKTtcblxuICAgIG5vZGVTdGF0ZS5jaGVja2VkID0gYWxsQ2hlY2tlZDtcbiAgICBub2RlU3RhdGUuaW5kZXRlcm1pbmF0ZSA9ICFhbGxDaGVja2VkICYmIHNvbWVDaGVja2VkO1xuXG4gICAgcmV0dXJuIG5vZGVTdGF0ZTtcbiAgfVxufVxuIiwiPG5nLXRlbXBsYXRlXG4gICNyZW5kZXJOb2RlXG4gIGxldC1ub2RlXG4gIGxldC1ub2RlU3RhdGU9XCJub2RlU3RhdGVcIlxuICBsZXQtZGVwdGg9XCJkZXB0aFwiXG4+XG4gIDxkaXYgY2xhc3M9XCJzZGMtY2hlY2tib3gtbGlzdF9faXRlbVwiPlxuICAgIDxsYWJlbFxuICAgICAgY2xhc3M9XCJzZGMtY2hlY2tib3gtbGlzdF9fbGFiZWxcIlxuICAgICAgW2NsYXNzLnNkYy1jaGVja2JveC1saXN0X19sYWJlbC0tZGlzYWJsZWRdPVwibm9kZVN0YXRlLmRpc2FibGVkXCJcbiAgICAgIFtjbGFzcy5zZGMtY2hlY2tib3gtbGlzdF9fbGFiZWwtLWJsb2NrXT1cIm5vZGUucmVuZGVyVHlwZSA9PT0gJ2Jsb2NrJ1wiXG4gICAgICBbY2xhc3Muc2RjLWNoZWNrYm94LWxpc3RfX2xhYmVsLS1pbmxpbmVdPVwiKG5vZGUucmVuZGVyVHlwZSA/PyByZW5kZXJUeXBlKSA9PT0gJ2lubGluZSdcIlxuICAgID5cbiAgICAgIDxpbnB1dFxuICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICBjbGFzcz1cInNkYy1jaGVja2JveC1saXN0X19pbnB1dFwiXG4gICAgICAgIFtjaGVja2VkXT1cIm5vZGVTdGF0ZS5jaGVja2VkXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIm5vZGVTdGF0ZS5kaXNhYmxlZFwiXG4gICAgICAgIFtpbmRldGVybWluYXRlXT1cIm5vZGVTdGF0ZS5pbmRldGVybWluYXRlID8/IGZhbHNlXCJcbiAgICAgICAgW2F0dHIuYXJpYS1jaGVja2VkXT1cIm5vZGVTdGF0ZS5pbmRldGVybWluYXRlID8gJ21peGVkJyA6IG5vZGVTdGF0ZS5jaGVja2VkXCJcbiAgICAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJub2RlU3RhdGUuZGlzYWJsZWRcIlxuICAgICAgICAoY2hhbmdlKT1cIm9uTm9kZUNoZWNrZWRDaGFuZ2Uobm9kZSwgbm9kZVN0YXRlLCAkZXZlbnQpXCJcbiAgICAgIC8+XG4gICAgICA8c3Bhbj57eyBub2RlLmxhYmVsIH19PC9zcGFuPlxuICAgIDwvbGFiZWw+XG5cbiAgICBAaWYgKG5vZGUuY2hpbGRyZW4/Lmxlbmd0aCkge1xuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwic2RjLWNoZWNrYm94LWxpc3RfX2NoaWxkcmVuXCJcbiAgICAgIFtzdHlsZS5tYXJnaW4tbGVmdC5yZW1dPVwiZGVwdGggPiAwID8gMS4yNSA6IDFcIlxuICAgID5cbiAgICAgIEBmb3IgKGNoaWxkIG9mIG5vZGUuY2hpbGRyZW47IHRyYWNrIGNoaWxkLmxhYmVsKSB7XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInJlbmRlck5vZGVcIlxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xuICAgICAgICAgICRpbXBsaWNpdDogY2hpbGQsXG4gICAgICAgICAgbm9kZVN0YXRlOiBlbnN1cmVDaGlsZFN0YXRlKG5vZGVTdGF0ZSwgY2hpbGQpLFxuICAgICAgICAgIGRlcHRoOiBkZXB0aCArIDFcbiAgICAgICAgfVwiXG4gICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxmaWVsZHNldFxuICBjbGFzcz1cInNkYy1jaGVja2JveC1saXN0XCJcbiAgW2NsYXNzLnNkYy1jaGVja2JveC1saXN0LS1pbnZhbGlkXT1cImludmFsaWRcIlxuICBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cImludmFsaWRcIlxuPlxuICBAaWYgKGxhYmVsS2V5KCkpIHtcbiAgICA8bGVnZW5kIGNsYXNzPVwic2RjLWNoZWNrYm94LWxpc3RfX2dyb3VwLWxhYmVsXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cInNkYy1jaGVja2JveC1saXN0X19ncm91cC1sYWJlbC10ZXh0XCI+XG4gICAgICAgIHt7IGxhYmVsS2V5KCkgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgQGlmIChyZXF1aXJlZCkge1xuICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWQtZmllbGRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj4qPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPnt7ICdwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5LnJlcXVpcmVkX2ZpZWxkJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgfVxuICAgICAgPC9zcGFuPlxuICAgIDwvbGVnZW5kPlxuICB9XG5cbiAgPG5nLWNvbnRhaW5lclxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInJlbmRlck5vZGVcIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogZGF0YSwgbm9kZVN0YXRlOiBzdGF0ZSwgZGVwdGg6IDAgfVwiXG4gID48L25nLWNvbnRhaW5lcj5cbjwvZmllbGRzZXQ+XG5cbkBpZiAobWVzc2FnZUtleSgpKSB7XG4gIDxzbWFsbCBjbGFzcz1cInNkYy1jaGVja2JveC1saXN0X19tZXNzYWdlXCIgW2NsYXNzLmludmFsaWRdPVwiaW52YWxpZFwiIHJvbGU9XCJhbGVydFwiIGFyaWEtbGl2ZT1cInBvbGl0ZVwiPlxuICAgIHt7IG1lc3NhZ2VLZXkoKSB8IHRyYW5zbGF0ZSB9fVxuICA8L3NtYWxsPlxufVxuIl19
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2NoZWNrYm94LWxpc3QvY2hlY2tib3gtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2NoZWNrYm94LWxpc3QvY2hlY2tib3gtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULEtBQUssRUFHTCxpQkFBaUIsRUFDakIsVUFBVSxFQUNWLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7OztBQXlCdEQsTUFBTSxPQUFPLHFCQUFxQjtJQUNmLEdBQUcsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUV0QixJQUFJLENBQW9CO0lBQzFDLEtBQUssR0FBa0IsS0FBSyxDQUFDO0lBQzdCLE9BQU8sR0FBa0IsS0FBSyxDQUFDO0lBQy9CLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUVmLEtBQUssR0FBc0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRTVELFFBQVEsR0FBdUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3pELFNBQVMsR0FBZSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFFMUMsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN4QyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQStCO1FBQ3hDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxRQUE0QztRQUMzRCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUMzQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsU0FBcUI7UUFDckMsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDN0IsQ0FBQztJQUVELGdCQUFnQixDQUFDLFVBQW1CO1FBQ2xDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztRQUNqQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFjLFVBQVU7UUFDdEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxRQUFRLENBQUM7SUFDMUMsQ0FBQztJQUVTLFFBQVE7UUFDaEIsT0FBTyxPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDMUQsQ0FBQztJQUVTLFVBQVU7UUFDbEIsT0FBTyxPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDOUQsQ0FBQztJQUVTLGdCQUFnQixDQUFDLFdBQThCLEVBQUUsS0FBdUI7UUFDaEYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUMxQixXQUFXLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUM1QixDQUFDO1FBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdkMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBRUQsT0FBTyxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRVMsbUJBQW1CLENBQzNCLElBQXNCLEVBQ3RCLFNBQTRCLEVBQzVCLEtBQVk7UUFFWixJQUFJLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN2QixPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sT0FBTyxHQUFJLEtBQUssQ0FBQyxNQUEyQixDQUFDLE9BQU8sQ0FBQztRQUMzRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRU8sZUFBZTtRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVPLFVBQVUsQ0FBQyxJQUFzQjtRQUN2QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBdUIsQ0FBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDbEYsV0FBVyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2xELE9BQU8sV0FBVyxDQUFDO1FBQ3JCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVQLE9BQU87WUFDTCxPQUFPLEVBQUUsS0FBSztZQUNkLGFBQWEsRUFBRSxLQUFLO1lBQ3BCLFFBQVEsRUFBRSxLQUFLO1lBQ2YsUUFBUTtTQUNULENBQUM7SUFDSixDQUFDO0lBRU8sVUFBVSxDQUFDLEtBQXdCO1FBQ3pDLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRO1lBQzdCLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQXVCLENBQUMsV0FBVyxFQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7Z0JBQzFGLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMxQyxPQUFPLFdBQVcsQ0FBQztZQUNyQixDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ04sQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUVkLE9BQU87WUFDTCxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87WUFDdEIsYUFBYSxFQUFFLEtBQUssQ0FBQyxhQUFhO1lBQ2xDLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtZQUN4QixRQUFRO1NBQ1QsQ0FBQztJQUNKLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxJQUFzQixFQUFFLFNBQTRCLEVBQUUsT0FBZ0I7UUFDN0YsU0FBUyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDNUIsU0FBUyxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFFaEMsS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ3hDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDM0QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDcEQsQ0FBQztJQUNILENBQUM7SUFFTyxlQUFlLENBQUMsSUFBc0IsRUFBRSxTQUE0QjtRQUMxRSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUMzQixPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO1FBRUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUM5QyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQ3JFLENBQUM7UUFFRixNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDekUsTUFBTSxXQUFXLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FDbEMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLElBQUksVUFBVSxDQUFDLGFBQWEsQ0FDL0QsQ0FBQztRQUVGLFNBQVMsQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDO1FBQy9CLFNBQVMsQ0FBQyxhQUFhLEdBQUcsQ0FBQyxVQUFVLElBQUksV0FBVyxDQUFDO1FBRXJELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7d0dBOUlVLHFCQUFxQjs0RkFBckIscUJBQXFCLHdLQVJyQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMscUJBQXFCLENBQUM7Z0JBQ3BELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRiwrQ0NwQ0gsZzRFQTJFQSwrL0NEbERZLFlBQVkscU1BQUUsV0FBVyw4QkFBRSxlQUFlOzs0RkFhekMscUJBQXFCO2tCQWhCakMsU0FBUzsrQkFDRSxtQkFBbUIsY0FDakIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxlQUFlLENBQUMsbUJBR3BDLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLFFBQVEsYUFDOUI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsc0JBQXNCLENBQUM7NEJBQ3BELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGOzhCQUswQixJQUFJO3NCQUE5QixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDaEIsS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGZvcndhcmRSZWYsXG4gIGluamVjdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3Jtc01vZHVsZSwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuaW1wb3J0IHtcbiAgQ2hlY2tib3hMaXN0Q2hpbGRyZW4sXG4gIENoZWNrYm94TGlzdERhdGEsXG4gIENoZWNrYm94TGlzdFN0YXRlXG59IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvY2hlY2tib3gtbGlzdC50eXBlJztcbmltcG9ydCB0eXBlIHsgU3RyaW5nQm9vbGVhbiB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvc2VtYW50aWNzLnR5cGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZGMtY2hlY2tib3gtbGlzdCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hlY2tib3gtbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NoZWNrYm94LWxpc3QuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENoZWNrYm94TGlzdENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBDaGVja2JveExpc3RDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25DaGFuZ2VzIHtcbiAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIGRhdGEhOiBDaGVja2JveExpc3REYXRhO1xuICBASW5wdXQoKSBsYWJlbDogU3RyaW5nQm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBtZXNzYWdlOiBTdHJpbmdCb29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHJlcXVpcmVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGludmFsaWQgPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgc3RhdGU6IENoZWNrYm94TGlzdFN0YXRlID0gdGhpcy5idWlsZFN0YXRlKHsgbGFiZWw6ICcnIH0pO1xuXG4gIHByaXZhdGUgb25DaGFuZ2U6ICh2YWx1ZTogQ2hlY2tib3hMaXN0U3RhdGUpID0+IHZvaWQgPSAoKSA9PiB7IH07XG4gIHByaXZhdGUgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4geyB9O1xuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snZGF0YSddKSB7XG4gICAgICB0aGlzLnN0YXRlID0gdGhpcy5idWlsZFN0YXRlKHRoaXMuZGF0YSk7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBDaGVja2JveExpc3RTdGF0ZSB8IG51bGwpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlID0gdmFsdWUgPyB0aGlzLmNsb25lU3RhdGUodmFsdWUpIDogdGhpcy5idWlsZFN0YXRlKHRoaXMuZGF0YSk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKG9uQ2hhbmdlOiAodmFsdWU6IENoZWNrYm94TGlzdFN0YXRlKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IG9uQ2hhbmdlO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQob25Ub3VjaGVkOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBvblRvdWNoZWQ7XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgcmVuZGVyVHlwZSgpOiAnaW5saW5lJyB8ICdibG9jaycge1xuICAgIHJldHVybiB0aGlzLmRhdGEucmVuZGVyVHlwZSA/PyAnaW5saW5lJztcbiAgfVxuXG4gIHByb3RlY3RlZCBsYWJlbEtleSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0eXBlb2YgdGhpcy5sYWJlbCA9PT0gJ3N0cmluZycgPyB0aGlzLmxhYmVsIDogJyc7XG4gIH1cblxuICBwcm90ZWN0ZWQgbWVzc2FnZUtleSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0eXBlb2YgdGhpcy5tZXNzYWdlID09PSAnc3RyaW5nJyA/IHRoaXMubWVzc2FnZSA6ICcnO1xuICB9XG5cbiAgcHJvdGVjdGVkIGVuc3VyZUNoaWxkU3RhdGUocGFyZW50U3RhdGU6IENoZWNrYm94TGlzdFN0YXRlLCBjaGlsZDogQ2hlY2tib3hMaXN0RGF0YSk6IENoZWNrYm94TGlzdFN0YXRlIHtcbiAgICBpZiAoIXBhcmVudFN0YXRlLmNoaWxkcmVuKSB7XG4gICAgICBwYXJlbnRTdGF0ZS5jaGlsZHJlbiA9IHt9O1xuICAgIH1cblxuICAgIGlmICghcGFyZW50U3RhdGUuY2hpbGRyZW5bY2hpbGQubGFiZWxdKSB7XG4gICAgICBwYXJlbnRTdGF0ZS5jaGlsZHJlbltjaGlsZC5sYWJlbF0gPSB0aGlzLmJ1aWxkU3RhdGUoY2hpbGQpO1xuICAgIH1cblxuICAgIHJldHVybiBwYXJlbnRTdGF0ZS5jaGlsZHJlbltjaGlsZC5sYWJlbF07XG4gIH1cblxuICBwcm90ZWN0ZWQgb25Ob2RlQ2hlY2tlZENoYW5nZShcbiAgICBub2RlOiBDaGVja2JveExpc3REYXRhLFxuICAgIG5vZGVTdGF0ZTogQ2hlY2tib3hMaXN0U3RhdGUsXG4gICAgZXZlbnQ6IEV2ZW50XG4gICk6IHZvaWQge1xuICAgIGlmIChub2RlU3RhdGUuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjaGVja2VkID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS5jaGVja2VkO1xuICAgIHRoaXMuc2V0QnJhbmNoQ2hlY2tlZChub2RlLCBub2RlU3RhdGUsIGNoZWNrZWQpO1xuICAgIHRoaXMuc3luY0JyYW5jaFN0YXRlKHRoaXMuZGF0YSwgdGhpcy5zdGF0ZSk7XG4gICAgdGhpcy5lbWl0U3RhdGVDaGFuZ2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdFN0YXRlQ2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UodGhpcy5jbG9uZVN0YXRlKHRoaXMuc3RhdGUpKTtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZFN0YXRlKG5vZGU6IENoZWNrYm94TGlzdERhdGEpOiBDaGVja2JveExpc3RTdGF0ZSB7XG4gICAgY29uc3QgY2hpbGRyZW4gPSBub2RlLmNoaWxkcmVuPy5yZWR1Y2U8Q2hlY2tib3hMaXN0Q2hpbGRyZW4+KChhY2N1bXVsYXRvciwgY2hpbGQpID0+IHtcbiAgICAgIGFjY3VtdWxhdG9yW2NoaWxkLmxhYmVsXSA9IHRoaXMuYnVpbGRTdGF0ZShjaGlsZCk7XG4gICAgICByZXR1cm4gYWNjdW11bGF0b3I7XG4gICAgfSwge30pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgaW5kZXRlcm1pbmF0ZTogZmFsc2UsXG4gICAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgICBjaGlsZHJlblxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGNsb25lU3RhdGUoc3RhdGU6IENoZWNrYm94TGlzdFN0YXRlKTogQ2hlY2tib3hMaXN0U3RhdGUge1xuICAgIGNvbnN0IGNoaWxkcmVuID0gc3RhdGUuY2hpbGRyZW5cbiAgICAgID8gT2JqZWN0LmVudHJpZXMoc3RhdGUuY2hpbGRyZW4pLnJlZHVjZTxDaGVja2JveExpc3RDaGlsZHJlbj4oKGFjY3VtdWxhdG9yLCBba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgYWNjdW11bGF0b3Jba2V5XSA9IHRoaXMuY2xvbmVTdGF0ZSh2YWx1ZSk7XG4gICAgICAgIHJldHVybiBhY2N1bXVsYXRvcjtcbiAgICAgIH0sIHt9KVxuICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICByZXR1cm4ge1xuICAgICAgY2hlY2tlZDogc3RhdGUuY2hlY2tlZCxcbiAgICAgIGluZGV0ZXJtaW5hdGU6IHN0YXRlLmluZGV0ZXJtaW5hdGUsXG4gICAgICBkaXNhYmxlZDogc3RhdGUuZGlzYWJsZWQsXG4gICAgICBjaGlsZHJlblxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHNldEJyYW5jaENoZWNrZWQobm9kZTogQ2hlY2tib3hMaXN0RGF0YSwgbm9kZVN0YXRlOiBDaGVja2JveExpc3RTdGF0ZSwgY2hlY2tlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIG5vZGVTdGF0ZS5jaGVja2VkID0gY2hlY2tlZDtcbiAgICBub2RlU3RhdGUuaW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xuXG4gICAgZm9yIChjb25zdCBjaGlsZCBvZiBub2RlLmNoaWxkcmVuID8/IFtdKSB7XG4gICAgICBjb25zdCBjaGlsZFN0YXRlID0gdGhpcy5lbnN1cmVDaGlsZFN0YXRlKG5vZGVTdGF0ZSwgY2hpbGQpO1xuICAgICAgdGhpcy5zZXRCcmFuY2hDaGVja2VkKGNoaWxkLCBjaGlsZFN0YXRlLCBjaGVja2VkKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN5bmNCcmFuY2hTdGF0ZShub2RlOiBDaGVja2JveExpc3REYXRhLCBub2RlU3RhdGU6IENoZWNrYm94TGlzdFN0YXRlKTogQ2hlY2tib3hMaXN0U3RhdGUge1xuICAgIGlmICghbm9kZS5jaGlsZHJlbj8ubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gbm9kZVN0YXRlO1xuICAgIH1cblxuICAgIGNvbnN0IGNoaWxkU3RhdGVzID0gbm9kZS5jaGlsZHJlbi5tYXAoKGNoaWxkKSA9PlxuICAgICAgdGhpcy5zeW5jQnJhbmNoU3RhdGUoY2hpbGQsIHRoaXMuZW5zdXJlQ2hpbGRTdGF0ZShub2RlU3RhdGUsIGNoaWxkKSlcbiAgICApO1xuXG4gICAgY29uc3QgYWxsQ2hlY2tlZCA9IGNoaWxkU3RhdGVzLmV2ZXJ5KChjaGlsZFN0YXRlKSA9PiBjaGlsZFN0YXRlLmNoZWNrZWQpO1xuICAgIGNvbnN0IHNvbWVDaGVja2VkID0gY2hpbGRTdGF0ZXMuc29tZShcbiAgICAgIChjaGlsZFN0YXRlKSA9PiBjaGlsZFN0YXRlLmNoZWNrZWQgfHwgY2hpbGRTdGF0ZS5pbmRldGVybWluYXRlXG4gICAgKTtcblxuICAgIG5vZGVTdGF0ZS5jaGVja2VkID0gYWxsQ2hlY2tlZDtcbiAgICBub2RlU3RhdGUuaW5kZXRlcm1pbmF0ZSA9ICFhbGxDaGVja2VkICYmIHNvbWVDaGVja2VkO1xuXG4gICAgcmV0dXJuIG5vZGVTdGF0ZTtcbiAgfVxufVxuIiwiPG5nLXRlbXBsYXRlXG4gICNyZW5kZXJOb2RlXG4gIGxldC1ub2RlXG4gIGxldC1ub2RlU3RhdGU9XCJub2RlU3RhdGVcIlxuICBsZXQtZGVwdGg9XCJkZXB0aFwiXG4+XG4gIDxkaXYgY2xhc3M9XCJzZGMtY2hlY2tib3gtbGlzdF9faXRlbVwiPlxuICAgIDxsYWJlbFxuICAgICAgY2xhc3M9XCJzZGMtY2hlY2tib3gtbGlzdF9fbGFiZWxcIlxuICAgICAgW2NsYXNzLnNkYy1jaGVja2JveC1saXN0X19sYWJlbC0tZGlzYWJsZWRdPVwibm9kZVN0YXRlLmRpc2FibGVkXCJcbiAgICAgIFtjbGFzcy5zZGMtY2hlY2tib3gtbGlzdF9fbGFiZWwtLWJsb2NrXT1cIm5vZGUucmVuZGVyVHlwZSA9PT0gJ2Jsb2NrJ1wiXG4gICAgICBbY2xhc3Muc2RjLWNoZWNrYm94LWxpc3RfX2xhYmVsLS1pbmxpbmVdPVwiKG5vZGUucmVuZGVyVHlwZSA/PyByZW5kZXJUeXBlKSA9PT0gJ2lubGluZSdcIlxuICAgID5cbiAgICAgIDxpbnB1dFxuICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICBjbGFzcz1cInNkYy1jaGVja2JveC1saXN0X19pbnB1dFwiXG4gICAgICAgIFtjaGVja2VkXT1cIm5vZGVTdGF0ZS5jaGVja2VkXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIm5vZGVTdGF0ZS5kaXNhYmxlZFwiXG4gICAgICAgIFtpbmRldGVybWluYXRlXT1cIm5vZGVTdGF0ZS5pbmRldGVybWluYXRlID8/IGZhbHNlXCJcbiAgICAgICAgW2F0dHIuYXJpYS1jaGVja2VkXT1cIm5vZGVTdGF0ZS5pbmRldGVybWluYXRlID8gJ21peGVkJyA6IG5vZGVTdGF0ZS5jaGVja2VkXCJcbiAgICAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJub2RlU3RhdGUuZGlzYWJsZWRcIlxuICAgICAgICAoY2hhbmdlKT1cIm9uTm9kZUNoZWNrZWRDaGFuZ2Uobm9kZSwgbm9kZVN0YXRlLCAkZXZlbnQpXCJcbiAgICAgIC8+XG4gICAgICA8c3Bhbj57eyBub2RlLmxhYmVsIH19PC9zcGFuPlxuICAgIDwvbGFiZWw+XG5cbiAgICBAaWYgKG5vZGUuY2hpbGRyZW4/Lmxlbmd0aCkge1xuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwic2RjLWNoZWNrYm94LWxpc3RfX2NoaWxkcmVuXCJcbiAgICAgIFtzdHlsZS5tYXJnaW4tbGVmdC5yZW1dPVwiZGVwdGggPiAwID8gMS4yNSA6IDFcIlxuICAgID5cbiAgICAgIEBmb3IgKGNoaWxkIG9mIG5vZGUuY2hpbGRyZW47IHRyYWNrIGNoaWxkLmxhYmVsKSB7XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInJlbmRlck5vZGVcIlxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xuICAgICAgICAgICRpbXBsaWNpdDogY2hpbGQsXG4gICAgICAgICAgbm9kZVN0YXRlOiBlbnN1cmVDaGlsZFN0YXRlKG5vZGVTdGF0ZSwgY2hpbGQpLFxuICAgICAgICAgIGRlcHRoOiBkZXB0aCArIDFcbiAgICAgICAgfVwiXG4gICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxmaWVsZHNldFxuICBjbGFzcz1cInNkYy1jaGVja2JveC1saXN0XCJcbiAgW2NsYXNzLnNkYy1jaGVja2JveC1saXN0LS1pbnZhbGlkXT1cImludmFsaWRcIlxuICBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cImludmFsaWRcIlxuPlxuICBAaWYgKGxhYmVsS2V5KCkpIHtcbiAgICA8bGVnZW5kIGNsYXNzPVwic2RjLWNoZWNrYm94LWxpc3RfX2dyb3VwLWxhYmVsXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cInNkYy1jaGVja2JveC1saXN0X19ncm91cC1sYWJlbC10ZXh0XCI+XG4gICAgICAgIHt7IGxhYmVsS2V5KCkgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgQGlmIChyZXF1aXJlZCkge1xuICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWQtZmllbGRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj4qPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPnt7ICdwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5X3JlcXVpcmVkX2ZpZWxkJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgfVxuICAgICAgPC9zcGFuPlxuICAgIDwvbGVnZW5kPlxuICB9XG5cbiAgPG5nLWNvbnRhaW5lclxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInJlbmRlck5vZGVcIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogZGF0YSwgbm9kZVN0YXRlOiBzdGF0ZSwgZGVwdGg6IDAgfVwiXG4gID48L25nLWNvbnRhaW5lcj5cbjwvZmllbGRzZXQ+XG5cbkBpZiAobWVzc2FnZUtleSgpKSB7XG4gIDxzbWFsbCBjbGFzcz1cInNkYy1jaGVja2JveC1saXN0X19tZXNzYWdlXCIgW2NsYXNzLmludmFsaWRdPVwiaW52YWxpZFwiIHJvbGU9XCJhbGVydFwiIGFyaWEtbGl2ZT1cInBvbGl0ZVwiPlxuICAgIHt7IG1lc3NhZ2VLZXkoKSB8IHRyYW5zbGF0ZSB9fVxuICA8L3NtYWxsPlxufVxuIl19
@@ -189,7 +189,7 @@ export class ChipsComponent {
189
189
  useExisting: forwardRef(() => ChipsComponent),
190
190
  multi: true
191
191
  }
192
- ], queries: [{ propertyName: "chipTemplate", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: "<div class=\"sdc-chips\">\n @if (resolvedLabel || resolvedInfoTooltip) {\n <div class=\"sdc-chips__labelRow\">\n @if (resolvedLabel) {\n <label class=\"sdc-chips__label\" [for]=\"inputId\">{{ resolvedLabel }}</label>\n }\n\n @if (resolvedInfoTooltip) {\n <sdc-tooltip [pTooltip]=\"resolvedInfoTooltip\" [tooltipEvent]=\"'both'\">\n <button type=\"button\" class=\"sdc-chips__infoIcon\" [attr.aria-label]=\"resolvedInfoTooltip\">\n <i class=\"fas fa-info-circle\" aria-hidden=\"true\"></i>\n </button>\n </sdc-tooltip>\n }\n </div>\n }\n\n <div class=\"sdc-chips__surface\" [class.sdc-chips__surface--plain]=\"appearance === 'plain'\">\n <ul class=\"sdc-chips__list\">\n @for (item of value; track resolveChipText(item) + '-' + $index) {\n <li class=\"sdc-chips__item\">\n @if (shouldShowChipTooltip(item)) {\n <sdc-tooltip [pTooltip]=\"resolveChipText(item)\" [tooltipEvent]=\"'both'\">\n <span\n class=\"sdc-chips__chip\"\n [class.sdc-chips__chip--disabled]=\"disabled\"\n [attr.role]=\"disabled ? null : 'button'\"\n [attr.tabindex]=\"disabled ? null : 0\"\n (click)=\"onChipItemClick($index, $event)\"\n (keydown)=\"onChipKeydown($index, $event)\"\n >\n @if (chipTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"chipTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item, text: renderChipText(item), index: $index }\"\n ></ng-container>\n } @else {\n <span>{{ renderChipText(item) }}</span>\n }\n\n @if (removableItems) {\n <button\n type=\"button\"\n class=\"sdc-chips__remove\"\n [attr.aria-label]=\"resolveRemoveAriaLabel(item)\"\n (click)=\"removeItem($index, $event)\"\n >\n <i class=\"fas fa-times\" aria-hidden=\"true\"></i>\n </button>\n }\n </span>\n </sdc-tooltip>\n } @else {\n <span\n class=\"sdc-chips__chip\"\n [class.sdc-chips__chip--disabled]=\"disabled\"\n [attr.role]=\"disabled ? null : 'button'\"\n [attr.tabindex]=\"disabled ? null : 0\"\n (click)=\"onChipItemClick($index, $event)\"\n (keydown)=\"onChipKeydown($index, $event)\"\n >\n @if (chipTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"chipTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item, text: renderChipText(item), index: $index }\"\n ></ng-container>\n } @else {\n <span>{{ renderChipText(item) }}</span>\n }\n\n @if (removableItems) {\n <button\n type=\"button\"\n class=\"sdc-chips__remove\"\n [attr.aria-label]=\"resolveRemoveAriaLabel(item)\"\n (click)=\"removeItem($index, $event)\"\n >\n <i class=\"fas fa-times\" aria-hidden=\"true\"></i>\n </button>\n }\n </span>\n }\n </li>\n }\n\n @if (editable) {\n <li class=\"sdc-chips__inputSlot\">\n <input\n [id]=\"inputId\"\n class=\"sdc-chips__input\"\n [disabled]=\"disabled || !canAddMore\"\n [placeholder]=\"resolvedPlaceholder\"\n [attr.maxlength]=\"resolvedMaxLength\"\n [autofocus]=\"autofocus\"\n [(ngModel)]=\"newItem\"\n (keydown)=\"onInputKeydown($event)\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputBlur($event)\"\n />\n </li>\n }\n </ul>\n </div>\n\n @if (resolvedInfoLabel) {\n <small class=\"sdc-chips__infoLabel\">{{ resolvedInfoLabel }}</small>\n }\n\n @if (resolvedMessage) {\n <small class=\"sdc-chips__message\">{{ resolvedMessage }}</small>\n }\n</div>\n", styles: [":host{display:block;width:100%}.sdc-chips{width:100%}.sdc-chips__labelRow{align-items:center;display:flex;gap:var(--sdc-form-label-row-gap, .35rem);margin-bottom:var(--sdc-form-label-row-mb, .15rem)}.sdc-chips__label{align-items:center;display:inline-flex;line-height:var(--sdc-form-label-lh, 1);margin-bottom:0;min-width:0;padding-bottom:var(--sdc-form-label-py, 0);padding-top:var(--sdc-form-label-py, 0)}.sdc-chips__infoIcon{background:transparent;border:0;color:var(--sdc-form-tooltip-color, #090909);cursor:help;display:inline-flex;align-items:center;justify-content:center;width:var(--sdc-form-tooltip-size, 1rem);height:var(--sdc-form-tooltip-size, 1rem);line-height:1;padding:0}.sdc-chips__surface{align-items:flex-start;background:var(--sdc-formfield-default-bg, var(--sdc-chips-surface-bg, #ffffff));border:1px solid var(--sdc-formfield-default-border, var(--sdc-chips-surface-border, #c1c1cc));border-radius:var(--sdc-formfield-border-radius, var(--sdc-chips-surface-radius, 4px));box-sizing:border-box;display:flex;min-height:var(--sdc-formfield-default-height, 34px);max-height:var(--sdc-chips-surface-max-height, 4.5rem);overflow-y:auto;padding:2px 4px;transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}.sdc-chips__surface:focus-within{border-color:var(--sdc-formfield-focus-color, var(--sdc-tab-primary, #007bff));box-shadow:var(--sdc-formfield-focus-shadow, 0 0 0 2px rgba(0, 123, 255, .14))}.sdc-chips__surface--plain{background:transparent;border:0;min-height:auto;padding:0}.sdc-chips__list{align-items:center;display:flex;flex:1 1 auto;flex-wrap:wrap;gap:.375rem;list-style:none;margin:0;min-width:0;padding:0}.sdc-chips__item{display:inline-flex}.sdc-chips__inputSlot{align-items:center;display:flex;flex:1 1 auto;min-height:calc(var(--sdc-formfield-default-height, 34px) - 6px);min-width:6rem}.sdc-chips__chip{align-items:center;background:var(--sdc-chips-chip-bg, #eeebf2);border:1px solid var(--sdc-chips-chip-border, #888b99);border-radius:var(--sdc-chips-chip-radius, 4px);color:var(--sdc-text-default, #111827);cursor:pointer;display:inline-flex;gap:.5rem;min-height:calc(var(--sdc-formfield-default-height, 34px) - 6px);padding:0 .5rem;-webkit-user-select:none;user-select:none}.sdc-chips__chip:focus-visible{box-shadow:var(--sdc-focus-ring, 0 0 0 3px rgba(0, 123, 255, .25));outline:none}.sdc-chips__chip:hover:not(.sdc-chips__chip--disabled){background:var(--sdc-chips-chip-hover-bg, #dfe4ec)}.sdc-chips__chip--disabled{cursor:default;opacity:.6}.sdc-chips__remove{align-items:center;background:transparent;border:0;color:inherit;cursor:pointer;display:inline-flex;padding:0}.sdc-chips__input{background:transparent;border:0;box-sizing:border-box;color:var(--sdc-text-default, #111827);flex:1 1 auto;font:inherit;min-width:0;outline:none;padding:0;width:100%}.sdc-chips__infoLabel,.sdc-chips__message{color:var(--sdc-text-muted, #6b7280);display:block;font-size:.75rem;margin-top:.35rem}.sdc-chips__message{color:var(--sdc-error-color, #d98888)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "component", type: TooltipComponent, selector: "sdc-tooltip", inputs: ["pTooltip", "tooltipPosition", "tooltipEvent", "fitContent", "tooltipDisabled", "allowHtml"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
192
+ ], queries: [{ propertyName: "chipTemplate", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: "<div class=\"sdc-chips\">\n @if (resolvedLabel || resolvedInfoTooltip) {\n <div class=\"sdc-chips__labelRow\">\n @if (resolvedLabel) {\n <label class=\"sdc-chips__label\" [for]=\"inputId\">{{ resolvedLabel }}</label>\n }\n\n @if (resolvedInfoTooltip) {\n <sdc-tooltip [pTooltip]=\"resolvedInfoTooltip\" [tooltipEvent]=\"'both'\">\n <button type=\"button\" class=\"sdc-chips__infoIcon\" [attr.aria-label]=\"resolvedInfoTooltip\">\n <i class=\"fas fa-info-circle\" aria-hidden=\"true\"></i>\n </button>\n </sdc-tooltip>\n }\n </div>\n }\n\n <div class=\"sdc-chips__surface\" [class.sdc-chips__surface--plain]=\"appearance === 'plain'\">\n <ul class=\"sdc-chips__list\">\n @for (item of value; track resolveChipText(item) + '-' + $index) {\n <li class=\"sdc-chips__item\">\n @if (shouldShowChipTooltip(item)) {\n <sdc-tooltip [pTooltip]=\"resolveChipText(item)\" [tooltipEvent]=\"'both'\">\n <span\n class=\"sdc-chips__chip\"\n [class.sdc-chips__chip--disabled]=\"disabled\"\n [attr.role]=\"disabled ? null : 'button'\"\n [attr.tabindex]=\"disabled ? null : 0\"\n (click)=\"onChipItemClick($index, $event)\"\n (keydown)=\"onChipKeydown($index, $event)\"\n >\n @if (chipTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"chipTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item, text: renderChipText(item), index: $index }\"\n ></ng-container>\n } @else {\n <span>{{ renderChipText(item) }}</span>\n }\n\n @if (removableItems) {\n <button\n type=\"button\"\n class=\"sdc-chips__remove\"\n [attr.aria-label]=\"resolveRemoveAriaLabel(item)\"\n (click)=\"removeItem($index, $event)\"\n >\n <i class=\"fas fa-times\" aria-hidden=\"true\"></i>\n </button>\n }\n </span>\n </sdc-tooltip>\n } @else {\n <span\n class=\"sdc-chips__chip\"\n [class.sdc-chips__chip--disabled]=\"disabled\"\n [attr.role]=\"disabled ? null : 'button'\"\n [attr.tabindex]=\"disabled ? null : 0\"\n (click)=\"onChipItemClick($index, $event)\"\n (keydown)=\"onChipKeydown($index, $event)\"\n >\n @if (chipTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"chipTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item, text: renderChipText(item), index: $index }\"\n ></ng-container>\n } @else {\n <span>{{ renderChipText(item) }}</span>\n }\n\n @if (removableItems) {\n <button\n type=\"button\"\n class=\"sdc-chips__remove\"\n [attr.aria-label]=\"resolveRemoveAriaLabel(item)\"\n (click)=\"removeItem($index, $event)\"\n >\n <i class=\"fas fa-times\" aria-hidden=\"true\"></i>\n </button>\n }\n </span>\n }\n </li>\n }\n\n @if (editable) {\n <li class=\"sdc-chips__inputSlot\">\n <input\n [id]=\"inputId\"\n class=\"sdc-chips__input\"\n [disabled]=\"disabled || !canAddMore\"\n [placeholder]=\"resolvedPlaceholder\"\n [attr.maxlength]=\"resolvedMaxLength\"\n [autofocus]=\"autofocus\"\n [(ngModel)]=\"newItem\"\n (keydown)=\"onInputKeydown($event)\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputBlur($event)\"\n />\n </li>\n }\n </ul>\n </div>\n\n @if (resolvedInfoLabel) {\n <small class=\"sdc-chips__infoLabel\">{{ resolvedInfoLabel }}</small>\n }\n\n @if (resolvedMessage) {\n <small class=\"sdc-chips__message\">{{ resolvedMessage }}</small>\n }\n</div>\n", styles: [":host{display:block;width:100%}.sdc-chips{width:100%}.sdc-chips__labelRow{align-items:center;display:flex;gap:var(--sdc-form-label-row-gap, .35rem);margin-bottom:var(--sdc-form-label-row-mb, .15rem)}.sdc-chips__label{align-items:center;display:inline-flex;line-height:var(--sdc-form-label-lh, 1);margin-bottom:0;min-width:0;padding-bottom:var(--sdc-form-label-py, 0);padding-top:var(--sdc-form-label-py, 0)}.sdc-chips__infoIcon{background:transparent;border:0;color:var(--sdc-form-tooltip-color, #090909);cursor:help;display:inline-flex;align-items:center;justify-content:center;width:var(--sdc-form-tooltip-size, 1rem);height:var(--sdc-form-tooltip-size, 1rem);line-height:1;padding:0}.sdc-chips__surface{align-items:flex-start;background:var(--sdc-formfield-default-bg, var(--sdc-chips-surface-bg, #ffffff));border:1px solid var(--sdc-formfield-default-border, var(--sdc-chips-surface-border, #c1c1cc));border-radius:var(--sdc-formfield-border-radius, var(--sdc-chips-surface-radius, 4px));box-sizing:border-box;display:flex;min-height:var(--sdc-formfield-default-height, 34px);max-height:var(--sdc-chips-surface-max-height, 4.5rem);overflow-y:auto;padding:2px var(--sdc-form-input-padding-x, .75rem);transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}.sdc-chips__surface:focus-within{border-color:var(--sdc-formfield-focus-color, var(--sdc-tab-primary, #007bff));box-shadow:var(--sdc-formfield-focus-shadow, 0 0 0 2px rgba(0, 123, 255, .14))}.sdc-chips__surface--plain{background:transparent;border:0;min-height:auto;padding:0}.sdc-chips__list{align-items:center;display:flex;flex:1 1 auto;flex-wrap:wrap;gap:.375rem;list-style:none;margin:0;min-width:0;padding:0}.sdc-chips__item{display:inline-flex}.sdc-chips__inputSlot{align-items:center;display:flex;flex:1 1 auto;min-height:calc(var(--sdc-formfield-default-height, 34px) - 6px);min-width:6rem}.sdc-chips__chip{align-items:center;background:var(--sdc-chips-chip-bg, #eeebf2);border:1px solid var(--sdc-chips-chip-border, #888b99);border-radius:var(--sdc-chips-chip-radius, 4px);color:var(--sdc-text-default, #111827);cursor:pointer;display:inline-flex;gap:.5rem;min-height:calc(var(--sdc-formfield-default-height, 34px) - 6px);padding:0 .5rem;-webkit-user-select:none;user-select:none}.sdc-chips__chip:focus-visible{box-shadow:var(--sdc-focus-ring, 0 0 0 3px rgba(0, 123, 255, .25));outline:none}.sdc-chips__chip:hover:not(.sdc-chips__chip--disabled){background:var(--sdc-chips-chip-hover-bg, #dfe4ec)}.sdc-chips__chip--disabled{cursor:default;opacity:.6}.sdc-chips__remove{align-items:center;background:transparent;border:0;color:inherit;cursor:pointer;display:inline-flex;padding:0}.sdc-chips__input{background:transparent;border:0;box-sizing:border-box;color:var(--sdc-text-default, #111827);flex:1 1 auto;font:inherit;min-width:0;outline:none;padding:0;width:100%}.sdc-chips__infoLabel,.sdc-chips__message{color:var(--sdc-text-muted, #6b7280);display:block;font-size:.75rem;margin-top:.35rem}.sdc-chips__message{color:var(--sdc-error-color, #d98888)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "component", type: TooltipComponent, selector: "sdc-tooltip", inputs: ["pTooltip", "tooltipPosition", "tooltipEvent", "fitContent", "tooltipDisabled", "allowHtml"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
193
193
  }
194
194
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChipsComponent, decorators: [{
195
195
  type: Component,
@@ -199,7 +199,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
199
199
  useExisting: forwardRef(() => ChipsComponent),
200
200
  multi: true
201
201
  }
202
- ], template: "<div class=\"sdc-chips\">\n @if (resolvedLabel || resolvedInfoTooltip) {\n <div class=\"sdc-chips__labelRow\">\n @if (resolvedLabel) {\n <label class=\"sdc-chips__label\" [for]=\"inputId\">{{ resolvedLabel }}</label>\n }\n\n @if (resolvedInfoTooltip) {\n <sdc-tooltip [pTooltip]=\"resolvedInfoTooltip\" [tooltipEvent]=\"'both'\">\n <button type=\"button\" class=\"sdc-chips__infoIcon\" [attr.aria-label]=\"resolvedInfoTooltip\">\n <i class=\"fas fa-info-circle\" aria-hidden=\"true\"></i>\n </button>\n </sdc-tooltip>\n }\n </div>\n }\n\n <div class=\"sdc-chips__surface\" [class.sdc-chips__surface--plain]=\"appearance === 'plain'\">\n <ul class=\"sdc-chips__list\">\n @for (item of value; track resolveChipText(item) + '-' + $index) {\n <li class=\"sdc-chips__item\">\n @if (shouldShowChipTooltip(item)) {\n <sdc-tooltip [pTooltip]=\"resolveChipText(item)\" [tooltipEvent]=\"'both'\">\n <span\n class=\"sdc-chips__chip\"\n [class.sdc-chips__chip--disabled]=\"disabled\"\n [attr.role]=\"disabled ? null : 'button'\"\n [attr.tabindex]=\"disabled ? null : 0\"\n (click)=\"onChipItemClick($index, $event)\"\n (keydown)=\"onChipKeydown($index, $event)\"\n >\n @if (chipTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"chipTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item, text: renderChipText(item), index: $index }\"\n ></ng-container>\n } @else {\n <span>{{ renderChipText(item) }}</span>\n }\n\n @if (removableItems) {\n <button\n type=\"button\"\n class=\"sdc-chips__remove\"\n [attr.aria-label]=\"resolveRemoveAriaLabel(item)\"\n (click)=\"removeItem($index, $event)\"\n >\n <i class=\"fas fa-times\" aria-hidden=\"true\"></i>\n </button>\n }\n </span>\n </sdc-tooltip>\n } @else {\n <span\n class=\"sdc-chips__chip\"\n [class.sdc-chips__chip--disabled]=\"disabled\"\n [attr.role]=\"disabled ? null : 'button'\"\n [attr.tabindex]=\"disabled ? null : 0\"\n (click)=\"onChipItemClick($index, $event)\"\n (keydown)=\"onChipKeydown($index, $event)\"\n >\n @if (chipTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"chipTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item, text: renderChipText(item), index: $index }\"\n ></ng-container>\n } @else {\n <span>{{ renderChipText(item) }}</span>\n }\n\n @if (removableItems) {\n <button\n type=\"button\"\n class=\"sdc-chips__remove\"\n [attr.aria-label]=\"resolveRemoveAriaLabel(item)\"\n (click)=\"removeItem($index, $event)\"\n >\n <i class=\"fas fa-times\" aria-hidden=\"true\"></i>\n </button>\n }\n </span>\n }\n </li>\n }\n\n @if (editable) {\n <li class=\"sdc-chips__inputSlot\">\n <input\n [id]=\"inputId\"\n class=\"sdc-chips__input\"\n [disabled]=\"disabled || !canAddMore\"\n [placeholder]=\"resolvedPlaceholder\"\n [attr.maxlength]=\"resolvedMaxLength\"\n [autofocus]=\"autofocus\"\n [(ngModel)]=\"newItem\"\n (keydown)=\"onInputKeydown($event)\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputBlur($event)\"\n />\n </li>\n }\n </ul>\n </div>\n\n @if (resolvedInfoLabel) {\n <small class=\"sdc-chips__infoLabel\">{{ resolvedInfoLabel }}</small>\n }\n\n @if (resolvedMessage) {\n <small class=\"sdc-chips__message\">{{ resolvedMessage }}</small>\n }\n</div>\n", styles: [":host{display:block;width:100%}.sdc-chips{width:100%}.sdc-chips__labelRow{align-items:center;display:flex;gap:var(--sdc-form-label-row-gap, .35rem);margin-bottom:var(--sdc-form-label-row-mb, .15rem)}.sdc-chips__label{align-items:center;display:inline-flex;line-height:var(--sdc-form-label-lh, 1);margin-bottom:0;min-width:0;padding-bottom:var(--sdc-form-label-py, 0);padding-top:var(--sdc-form-label-py, 0)}.sdc-chips__infoIcon{background:transparent;border:0;color:var(--sdc-form-tooltip-color, #090909);cursor:help;display:inline-flex;align-items:center;justify-content:center;width:var(--sdc-form-tooltip-size, 1rem);height:var(--sdc-form-tooltip-size, 1rem);line-height:1;padding:0}.sdc-chips__surface{align-items:flex-start;background:var(--sdc-formfield-default-bg, var(--sdc-chips-surface-bg, #ffffff));border:1px solid var(--sdc-formfield-default-border, var(--sdc-chips-surface-border, #c1c1cc));border-radius:var(--sdc-formfield-border-radius, var(--sdc-chips-surface-radius, 4px));box-sizing:border-box;display:flex;min-height:var(--sdc-formfield-default-height, 34px);max-height:var(--sdc-chips-surface-max-height, 4.5rem);overflow-y:auto;padding:2px 4px;transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}.sdc-chips__surface:focus-within{border-color:var(--sdc-formfield-focus-color, var(--sdc-tab-primary, #007bff));box-shadow:var(--sdc-formfield-focus-shadow, 0 0 0 2px rgba(0, 123, 255, .14))}.sdc-chips__surface--plain{background:transparent;border:0;min-height:auto;padding:0}.sdc-chips__list{align-items:center;display:flex;flex:1 1 auto;flex-wrap:wrap;gap:.375rem;list-style:none;margin:0;min-width:0;padding:0}.sdc-chips__item{display:inline-flex}.sdc-chips__inputSlot{align-items:center;display:flex;flex:1 1 auto;min-height:calc(var(--sdc-formfield-default-height, 34px) - 6px);min-width:6rem}.sdc-chips__chip{align-items:center;background:var(--sdc-chips-chip-bg, #eeebf2);border:1px solid var(--sdc-chips-chip-border, #888b99);border-radius:var(--sdc-chips-chip-radius, 4px);color:var(--sdc-text-default, #111827);cursor:pointer;display:inline-flex;gap:.5rem;min-height:calc(var(--sdc-formfield-default-height, 34px) - 6px);padding:0 .5rem;-webkit-user-select:none;user-select:none}.sdc-chips__chip:focus-visible{box-shadow:var(--sdc-focus-ring, 0 0 0 3px rgba(0, 123, 255, .25));outline:none}.sdc-chips__chip:hover:not(.sdc-chips__chip--disabled){background:var(--sdc-chips-chip-hover-bg, #dfe4ec)}.sdc-chips__chip--disabled{cursor:default;opacity:.6}.sdc-chips__remove{align-items:center;background:transparent;border:0;color:inherit;cursor:pointer;display:inline-flex;padding:0}.sdc-chips__input{background:transparent;border:0;box-sizing:border-box;color:var(--sdc-text-default, #111827);flex:1 1 auto;font:inherit;min-width:0;outline:none;padding:0;width:100%}.sdc-chips__infoLabel,.sdc-chips__message{color:var(--sdc-text-muted, #6b7280);display:block;font-size:.75rem;margin-top:.35rem}.sdc-chips__message{color:var(--sdc-error-color, #d98888)}\n"] }]
202
+ ], template: "<div class=\"sdc-chips\">\n @if (resolvedLabel || resolvedInfoTooltip) {\n <div class=\"sdc-chips__labelRow\">\n @if (resolvedLabel) {\n <label class=\"sdc-chips__label\" [for]=\"inputId\">{{ resolvedLabel }}</label>\n }\n\n @if (resolvedInfoTooltip) {\n <sdc-tooltip [pTooltip]=\"resolvedInfoTooltip\" [tooltipEvent]=\"'both'\">\n <button type=\"button\" class=\"sdc-chips__infoIcon\" [attr.aria-label]=\"resolvedInfoTooltip\">\n <i class=\"fas fa-info-circle\" aria-hidden=\"true\"></i>\n </button>\n </sdc-tooltip>\n }\n </div>\n }\n\n <div class=\"sdc-chips__surface\" [class.sdc-chips__surface--plain]=\"appearance === 'plain'\">\n <ul class=\"sdc-chips__list\">\n @for (item of value; track resolveChipText(item) + '-' + $index) {\n <li class=\"sdc-chips__item\">\n @if (shouldShowChipTooltip(item)) {\n <sdc-tooltip [pTooltip]=\"resolveChipText(item)\" [tooltipEvent]=\"'both'\">\n <span\n class=\"sdc-chips__chip\"\n [class.sdc-chips__chip--disabled]=\"disabled\"\n [attr.role]=\"disabled ? null : 'button'\"\n [attr.tabindex]=\"disabled ? null : 0\"\n (click)=\"onChipItemClick($index, $event)\"\n (keydown)=\"onChipKeydown($index, $event)\"\n >\n @if (chipTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"chipTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item, text: renderChipText(item), index: $index }\"\n ></ng-container>\n } @else {\n <span>{{ renderChipText(item) }}</span>\n }\n\n @if (removableItems) {\n <button\n type=\"button\"\n class=\"sdc-chips__remove\"\n [attr.aria-label]=\"resolveRemoveAriaLabel(item)\"\n (click)=\"removeItem($index, $event)\"\n >\n <i class=\"fas fa-times\" aria-hidden=\"true\"></i>\n </button>\n }\n </span>\n </sdc-tooltip>\n } @else {\n <span\n class=\"sdc-chips__chip\"\n [class.sdc-chips__chip--disabled]=\"disabled\"\n [attr.role]=\"disabled ? null : 'button'\"\n [attr.tabindex]=\"disabled ? null : 0\"\n (click)=\"onChipItemClick($index, $event)\"\n (keydown)=\"onChipKeydown($index, $event)\"\n >\n @if (chipTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"chipTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item, text: renderChipText(item), index: $index }\"\n ></ng-container>\n } @else {\n <span>{{ renderChipText(item) }}</span>\n }\n\n @if (removableItems) {\n <button\n type=\"button\"\n class=\"sdc-chips__remove\"\n [attr.aria-label]=\"resolveRemoveAriaLabel(item)\"\n (click)=\"removeItem($index, $event)\"\n >\n <i class=\"fas fa-times\" aria-hidden=\"true\"></i>\n </button>\n }\n </span>\n }\n </li>\n }\n\n @if (editable) {\n <li class=\"sdc-chips__inputSlot\">\n <input\n [id]=\"inputId\"\n class=\"sdc-chips__input\"\n [disabled]=\"disabled || !canAddMore\"\n [placeholder]=\"resolvedPlaceholder\"\n [attr.maxlength]=\"resolvedMaxLength\"\n [autofocus]=\"autofocus\"\n [(ngModel)]=\"newItem\"\n (keydown)=\"onInputKeydown($event)\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputBlur($event)\"\n />\n </li>\n }\n </ul>\n </div>\n\n @if (resolvedInfoLabel) {\n <small class=\"sdc-chips__infoLabel\">{{ resolvedInfoLabel }}</small>\n }\n\n @if (resolvedMessage) {\n <small class=\"sdc-chips__message\">{{ resolvedMessage }}</small>\n }\n</div>\n", styles: [":host{display:block;width:100%}.sdc-chips{width:100%}.sdc-chips__labelRow{align-items:center;display:flex;gap:var(--sdc-form-label-row-gap, .35rem);margin-bottom:var(--sdc-form-label-row-mb, .15rem)}.sdc-chips__label{align-items:center;display:inline-flex;line-height:var(--sdc-form-label-lh, 1);margin-bottom:0;min-width:0;padding-bottom:var(--sdc-form-label-py, 0);padding-top:var(--sdc-form-label-py, 0)}.sdc-chips__infoIcon{background:transparent;border:0;color:var(--sdc-form-tooltip-color, #090909);cursor:help;display:inline-flex;align-items:center;justify-content:center;width:var(--sdc-form-tooltip-size, 1rem);height:var(--sdc-form-tooltip-size, 1rem);line-height:1;padding:0}.sdc-chips__surface{align-items:flex-start;background:var(--sdc-formfield-default-bg, var(--sdc-chips-surface-bg, #ffffff));border:1px solid var(--sdc-formfield-default-border, var(--sdc-chips-surface-border, #c1c1cc));border-radius:var(--sdc-formfield-border-radius, var(--sdc-chips-surface-radius, 4px));box-sizing:border-box;display:flex;min-height:var(--sdc-formfield-default-height, 34px);max-height:var(--sdc-chips-surface-max-height, 4.5rem);overflow-y:auto;padding:2px var(--sdc-form-input-padding-x, .75rem);transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}.sdc-chips__surface:focus-within{border-color:var(--sdc-formfield-focus-color, var(--sdc-tab-primary, #007bff));box-shadow:var(--sdc-formfield-focus-shadow, 0 0 0 2px rgba(0, 123, 255, .14))}.sdc-chips__surface--plain{background:transparent;border:0;min-height:auto;padding:0}.sdc-chips__list{align-items:center;display:flex;flex:1 1 auto;flex-wrap:wrap;gap:.375rem;list-style:none;margin:0;min-width:0;padding:0}.sdc-chips__item{display:inline-flex}.sdc-chips__inputSlot{align-items:center;display:flex;flex:1 1 auto;min-height:calc(var(--sdc-formfield-default-height, 34px) - 6px);min-width:6rem}.sdc-chips__chip{align-items:center;background:var(--sdc-chips-chip-bg, #eeebf2);border:1px solid var(--sdc-chips-chip-border, #888b99);border-radius:var(--sdc-chips-chip-radius, 4px);color:var(--sdc-text-default, #111827);cursor:pointer;display:inline-flex;gap:.5rem;min-height:calc(var(--sdc-formfield-default-height, 34px) - 6px);padding:0 .5rem;-webkit-user-select:none;user-select:none}.sdc-chips__chip:focus-visible{box-shadow:var(--sdc-focus-ring, 0 0 0 3px rgba(0, 123, 255, .25));outline:none}.sdc-chips__chip:hover:not(.sdc-chips__chip--disabled){background:var(--sdc-chips-chip-hover-bg, #dfe4ec)}.sdc-chips__chip--disabled{cursor:default;opacity:.6}.sdc-chips__remove{align-items:center;background:transparent;border:0;color:inherit;cursor:pointer;display:inline-flex;padding:0}.sdc-chips__input{background:transparent;border:0;box-sizing:border-box;color:var(--sdc-text-default, #111827);flex:1 1 auto;font:inherit;min-width:0;outline:none;padding:0;width:100%}.sdc-chips__infoLabel,.sdc-chips__message{color:var(--sdc-text-muted, #6b7280);display:block;font-size:.75rem;margin-top:.35rem}.sdc-chips__message{color:var(--sdc-error-color, #d98888)}\n"] }]
203
203
  }], propDecorators: { chipTemplate: [{
204
204
  type: ContentChild,
205
205
  args: [TemplateRef]
@@ -268,4 +268,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
268
268
  }], valueChange: [{
269
269
  type: Output
270
270
  }] } });
271
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9jaGlwcy9jaGlwcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2NoaXBzL2NoaXBzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sV0FBVyxFQUNYLGlCQUFpQixFQUNqQixVQUFVLEVBQ1YsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFeEUsT0FBTyxFQUNMLDZCQUE2QixFQUM3QixpQkFBaUIsRUFDakIsd0JBQXdCLEVBQ3hCLHdDQUF3QyxFQUN4Qyx5QkFBeUIsRUFDekIsK0JBQStCLEVBQ2hDLE1BQU0sa0NBQWtDLENBQUM7QUFFMUMsT0FBTyxFQUFFLCtCQUErQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25GLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7O0FBd0JoRSxNQUFNLE9BQU8sY0FBYztJQUNSLFNBQVMsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNyQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0lBR3BGLFlBQVksQ0FBb0M7SUFFdkMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNqQixLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ1gsS0FBSyxHQUFjLEVBQUUsQ0FBQztJQUN0QixXQUFXLENBQVU7SUFDckIsaUJBQWlCLENBQXdCO0lBQ3pDLEtBQUssQ0FBVTtJQUNmLFdBQVcsQ0FBd0I7SUFDbkMsT0FBTyxDQUFVO0lBQ2pCLGFBQWEsQ0FBd0I7SUFDckMsV0FBVyxDQUFVO0lBQ3JCLGlCQUFpQixDQUF3QjtJQUN6QyxHQUFHLEdBQUcsaUJBQWlCLENBQUM7SUFDeEIsU0FBUyxHQUFHLHdCQUF3QixDQUFDO0lBQ3JDLE9BQU8sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDaEMsZUFBZSxHQUFHLElBQUksQ0FBQztJQUN2Qix3QkFBd0IsR0FBRyxLQUFLLENBQUM7SUFDakMsUUFBUSxHQUFHLElBQUksQ0FBQztJQUNoQixTQUFTLEdBQUcsSUFBSSxDQUFDO0lBQ2pCLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDZixTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ2xCLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDZixXQUFXLEdBQUcsSUFBSSxDQUFDO0lBQ25CLDZCQUE2QixHQUFHLHdDQUF3QyxDQUFDO0lBQ3pFLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFDaEIsU0FBUyxHQUFHLElBQUksQ0FBQztJQUNqQixVQUFVLEdBQXNCLE9BQU8sQ0FBQztJQUV2QyxLQUFLLEdBQUcsSUFBSSxZQUFZLEVBQWdCLENBQUM7SUFDekMsT0FBTyxHQUFHLElBQUksWUFBWSxFQUFtQixDQUFDO0lBQzlDLE9BQU8sR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFDO0lBQ3pDLFNBQVMsR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFDO0lBQzNDLFdBQVcsR0FBRyxJQUFJLFlBQVksRUFBa0IsQ0FBQztJQUNqRCxXQUFXLEdBQUcsSUFBSSxZQUFZLEVBQWEsQ0FBQztJQUV0RCxPQUFPLEdBQUcsRUFBRSxDQUFDO0lBRUwsUUFBUSxHQUErQixHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFDaEQsU0FBUyxHQUFlLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUNqQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFFakMsSUFBSSxhQUFhO1FBQ2YsT0FBTywrQkFBK0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sK0JBQStCLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDL0YsQ0FBQztJQUVELElBQUksbUJBQW1CO1FBQ3JCLE9BQU8sK0JBQStCLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUN2RyxDQUFDO0lBRUQsSUFBSSxtQkFBbUI7UUFDckIsT0FBTyx1QkFBdUIsQ0FDNUIsSUFBSSxDQUFDLFNBQVMsRUFDZCxJQUFJLENBQUMsV0FBVyxJQUFJLHlCQUF5QixFQUM3QyxFQUFFLEVBQ0YsSUFBSSxDQUFDLGlCQUFpQixDQUN2QixDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ25CLE9BQU8sK0JBQStCLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQzlDLENBQUM7SUFFRCxJQUFJLGlCQUFpQjtRQUNuQixPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDakUsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQzFDLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBdUI7UUFDaEMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBOEI7UUFDN0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQWM7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELGdCQUFnQixDQUFDLFVBQW1CO1FBQ2xDLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO0lBQzdCLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBb0I7UUFDakMsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3BDLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLEdBQUcsS0FBSyxPQUFPLENBQUM7UUFDdEMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ3JFLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUM7UUFFbkQsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3ZDLE9BQU87UUFDVCxDQUFDO1FBRUQsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDOUIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLGNBQWMsQ0FBQyxHQUFHLEVBQUU7WUFDbEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBaUI7UUFDNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFpQjtRQUMzQixJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUM3QyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDeEIsQ0FBQztRQUVELElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWEsRUFBRSxLQUFhO1FBQ3JDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxJQUFJLEtBQUssR0FBRyxDQUFDLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDcEUsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLElBQUksR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQWEsRUFBRSxLQUFhO1FBQzFDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFhLEVBQUUsS0FBb0I7UUFDL0MsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQy9DLE9BQU87UUFDVCxDQUFDO1FBRUQsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxlQUFlLENBQUMsSUFBYTtRQUMzQixJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ25ELE9BQU8sTUFBTSxDQUFFLElBQWdDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3JFLENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFhO1FBQzFCLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUM1RixDQUFDO0lBRUQscUJBQXFCLENBQUMsSUFBYTtRQUNqQyxPQUFPLElBQUksQ0FBQyxXQUFXLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsNkJBQTZCLENBQUM7SUFDOUcsQ0FBQztJQUVELHNCQUFzQixDQUFDLElBQWE7UUFDbEMsTUFBTSxRQUFRLEdBQUcsdUJBQXVCLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSwrQkFBK0IsQ0FBQyxDQUFDO1FBQzFGLE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFTyxjQUFjO1FBQ3BCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFckMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksZUFBZSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNoRixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNsQixPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUVyRSxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDekQsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDbEIsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLElBQUksR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVPLFlBQVksQ0FBQyxJQUFZO1FBQy9CLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUM5QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRTNDLElBQUksSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7Z0JBQ2xDLE9BQU8sT0FBTyxLQUFLLElBQUksQ0FBQztZQUMxQixDQUFDO1lBRUQsT0FBTyxPQUFPLENBQUMsV0FBVyxFQUFFLEtBQUssSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3RELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLE1BQU0sQ0FBQyxLQUFnQjtRQUM3QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7d0dBN05VLGNBQWM7NEZBQWQsY0FBYyxtNkJBUmQ7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGNBQWMsQ0FBQztnQkFDN0MsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLG9FQU1hLFdBQVcsZ0RDeEQzQiwrcklBZ0hBLDAvRkR6RVksWUFBWSxxTUFBRSxXQUFXLDhtQkFBRSxlQUFlLCtCQUFFLGdCQUFnQjs7NEZBYTNELGNBQWM7a0JBaEIxQixTQUFTOytCQUNFLFdBQVcsY0FDVCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsQ0FBQyxtQkFHdEQsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsUUFBUSxhQUM5Qjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxlQUFlLENBQUM7NEJBQzdDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGOzhCQU9ELFlBQVk7c0JBRFgsWUFBWTt1QkFBQyxXQUFXO2dCQUdoQixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csd0JBQXdCO3NCQUFoQyxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLDZCQUE2QjtzQkFBckMsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFFSSxLQUFLO3NCQUFkLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGZvcndhcmRSZWYsXG4gIGluamVjdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5pbXBvcnQge1xuICBDSElQU19ERUZBVUxUX0lOUFVUX0lEX1BSRUZJWCxcbiAgQ0hJUFNfREVGQVVMVF9NQVgsXG4gIENISVBTX0RFRkFVTFRfTUFYX0xFTkdUSCxcbiAgQ0hJUFNfREVGQVVMVF9NQVhfTEVOR1RIX1dJVEhPVVRfVE9PTFRJUCxcbiAgQ0hJUFNfREVGQVVMVF9QTEFDRUhPTERFUixcbiAgQ0hJUFNfREVGQVVMVF9SRU1PVkVfQVJJQV9MQUJFTFxufSBmcm9tICcuLi8uLi9jb3JlL2NvbnN0YW50cy9jaGlwcy5jb25zdCc7XG5pbXBvcnQgdHlwZSB7IENoaXBBZGRFdmVudCwgQ2hpcENsaWNrRXZlbnQsIENoaXBSZW1vdmVFdmVudCwgQ2hpcHNUcmFuc2xhdGVQYXJhbXMgfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL2NoaXBzLnR5cGUnO1xuaW1wb3J0IHsgcmVzb2x2ZU51bGxhYmxlVHJhbnNsYXRhYmxlVGV4dCwgcmVzb2x2ZVRyYW5zbGF0YWJsZVRleHQgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL2kxOG4udXRpbCc7XG5pbXBvcnQgeyBuZXh0U2VxdWVudGlhbElkIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9pZC51dGlsJztcbmltcG9ydCB7IGNoYXJhY3Rlckxlbmd0aCwgdHJ1bmNhdGVDaGFyYWN0ZXJzIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9zdHJpbmcudXRpbCc7XG5pbXBvcnQgeyBUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi4vdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudCc7XG5cbnR5cGUgQ2hpcFRlbXBsYXRlQ29udGV4dCA9IHtcbiAgJGltcGxpY2l0OiB1bmtub3duO1xuICB0ZXh0OiBzdHJpbmc7XG4gIGluZGV4OiBudW1iZXI7XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZGMtY2hpcHMnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBUb29sdGlwQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoaXBzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2NoaXBzLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENoaXBzQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIENoaXBzQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGUgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZ2VuZXJhdGVkSW5wdXRJZCA9IG5leHRTZXF1ZW50aWFsSWQoQ0hJUFNfREVGQVVMVF9JTlBVVF9JRF9QUkVGSVgpO1xuXG4gIEBDb250ZW50Q2hpbGQoVGVtcGxhdGVSZWYpXG4gIGNoaXBUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPENoaXBUZW1wbGF0ZUNvbnRleHQ+O1xuXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGZpZWxkID0gJyc7XG4gIEBJbnB1dCgpIHZhbHVlOiB1bmtub3duW10gPSBbXTtcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyUGFyYW1zPzogQ2hpcHNUcmFuc2xhdGVQYXJhbXM7XG4gIEBJbnB1dCgpIGxhYmVsPzogc3RyaW5nO1xuICBASW5wdXQoKSBsYWJlbFBhcmFtcz86IENoaXBzVHJhbnNsYXRlUGFyYW1zO1xuICBASW5wdXQoKSBtZXNzYWdlPzogc3RyaW5nO1xuICBASW5wdXQoKSBtZXNzYWdlUGFyYW1zPzogQ2hpcHNUcmFuc2xhdGVQYXJhbXM7XG4gIEBJbnB1dCgpIGluZm9Ub29sdGlwPzogc3RyaW5nO1xuICBASW5wdXQoKSBpbmZvVG9vbHRpcFBhcmFtcz86IENoaXBzVHJhbnNsYXRlUGFyYW1zO1xuICBASW5wdXQoKSBtYXggPSBDSElQU19ERUZBVUxUX01BWDtcbiAgQElucHV0KCkgbWF4TGVuZ3RoID0gQ0hJUFNfREVGQVVMVF9NQVhfTEVOR1RIO1xuICBASW5wdXQoKSBpbnB1dElkID0gdGhpcy5nZW5lcmF0ZWRJbnB1dElkO1xuICBASW5wdXQoKSBhbGxvd0R1cGxpY2F0ZWQgPSB0cnVlO1xuICBASW5wdXQoKSBjYXNlU2Vuc2l0aXZlRHVwbGljYXRpb24gPSBmYWxzZTtcbiAgQElucHV0KCkgYWRkT25UYWIgPSB0cnVlO1xuICBASW5wdXQoKSBhZGRPbkJsdXIgPSB0cnVlO1xuICBASW5wdXQoKSBzZXBhcmF0b3IgPSAnJztcbiAgQElucHV0KCkgYXV0b2ZvY3VzID0gZmFsc2U7XG4gIEBJbnB1dCgpIGluZm9MYWJlbCA9ICcnO1xuICBASW5wdXQoKSBzaG93VG9vbHRpcCA9IHRydWU7XG4gIEBJbnB1dCgpIG1heExlbmd0aFJlbmRlcldpdGhvdXRUb29sdGlwID0gQ0hJUFNfREVGQVVMVF9NQVhfTEVOR1RIX1dJVEhPVVRfVE9PTFRJUDtcbiAgQElucHV0KCkgZWRpdGFibGUgPSB0cnVlO1xuICBASW5wdXQoKSByZW1vdmFibGUgPSB0cnVlO1xuICBASW5wdXQoKSBhcHBlYXJhbmNlOiAnZmllbGQnIHwgJ3BsYWluJyA9ICdmaWVsZCc7XG5cbiAgQE91dHB1dCgpIGFkZGVkID0gbmV3IEV2ZW50RW1pdHRlcjxDaGlwQWRkRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSByZW1vdmVkID0gbmV3IEV2ZW50RW1pdHRlcjxDaGlwUmVtb3ZlRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBmb2N1c2VkID0gbmV3IEV2ZW50RW1pdHRlcjxGb2N1c0V2ZW50PigpO1xuICBAT3V0cHV0KCkgZm9jdXNMb3N0ID0gbmV3IEV2ZW50RW1pdHRlcjxGb2N1c0V2ZW50PigpO1xuICBAT3V0cHV0KCkgY2hpcENsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPENoaXBDbGlja0V2ZW50PigpO1xuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHVua25vd25bXT4oKTtcblxuICBuZXdJdGVtID0gJyc7XG5cbiAgcHJpdmF0ZSBvbkNoYW5nZTogKHZhbHVlOiB1bmtub3duW10pID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgcHJpdmF0ZSBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgcHJpdmF0ZSB0YWJBZGRJblByb2dyZXNzID0gZmFsc2U7XG5cbiAgZ2V0IHJlc29sdmVkTGFiZWwoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHJlc29sdmVOdWxsYWJsZVRyYW5zbGF0YWJsZVRleHQodGhpcy50cmFuc2xhdGUsIHRoaXMubGFiZWwsICcnLCB0aGlzLmxhYmVsUGFyYW1zKTtcbiAgfVxuXG4gIGdldCByZXNvbHZlZE1lc3NhZ2UoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHJlc29sdmVOdWxsYWJsZVRyYW5zbGF0YWJsZVRleHQodGhpcy50cmFuc2xhdGUsIHRoaXMubWVzc2FnZSwgJycsIHRoaXMubWVzc2FnZVBhcmFtcyk7XG4gIH1cblxuICBnZXQgcmVzb2x2ZWRJbmZvVG9vbHRpcCgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gcmVzb2x2ZU51bGxhYmxlVHJhbnNsYXRhYmxlVGV4dCh0aGlzLnRyYW5zbGF0ZSwgdGhpcy5pbmZvVG9vbHRpcCwgJycsIHRoaXMuaW5mb1Rvb2x0aXBQYXJhbXMpO1xuICB9XG5cbiAgZ2V0IHJlc29sdmVkUGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gcmVzb2x2ZVRyYW5zbGF0YWJsZVRleHQoXG4gICAgICB0aGlzLnRyYW5zbGF0ZSxcbiAgICAgIHRoaXMucGxhY2Vob2xkZXIgPz8gQ0hJUFNfREVGQVVMVF9QTEFDRUhPTERFUixcbiAgICAgICcnLFxuICAgICAgdGhpcy5wbGFjZWhvbGRlclBhcmFtc1xuICAgICk7XG4gIH1cblxuICBnZXQgcmVzb2x2ZWRJbmZvTGFiZWwoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHJlc29sdmVOdWxsYWJsZVRyYW5zbGF0YWJsZVRleHQodGhpcy50cmFuc2xhdGUsIHRoaXMuaW5mb0xhYmVsKTtcbiAgfVxuXG4gIGdldCBjYW5BZGRNb3JlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAodGhpcy52YWx1ZT8ubGVuZ3RoID8/IDApIDwgdGhpcy5tYXg7XG4gIH1cblxuICBnZXQgcmVzb2x2ZWRNYXhMZW5ndGgoKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgcmV0dXJuIE51bWJlci5pc0Zpbml0ZSh0aGlzLm1heExlbmd0aCkgPyB0aGlzLm1heExlbmd0aCA6IG51bGw7XG4gIH1cblxuICBnZXQgcmVtb3ZhYmxlSXRlbXMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucmVtb3ZhYmxlICYmICF0aGlzLmRpc2FibGVkO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogdW5rbm93bltdIHwgbnVsbCk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW107XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IHVua25vd25bXSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgb25JbnB1dEtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCAhdGhpcy5lZGl0YWJsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGlzRW50ZXIgPSBldmVudC5rZXkgPT09ICdFbnRlcic7XG4gICAgY29uc3QgaXNTZXBhcmF0b3IgPSAhIXRoaXMuc2VwYXJhdG9yICYmIGV2ZW50LmtleSA9PT0gdGhpcy5zZXBhcmF0b3I7XG4gICAgY29uc3QgaXNUYWIgPSBldmVudC5rZXkgPT09ICdUYWInICYmIHRoaXMuYWRkT25UYWI7XG5cbiAgICBpZiAoIWlzRW50ZXIgJiYgIWlzU2VwYXJhdG9yICYmICFpc1RhYikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy50YWJBZGRJblByb2dyZXNzID0gaXNUYWI7XG4gICAgdGhpcy5hZGRDdXJyZW50SXRlbSgpO1xuICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgIHRoaXMudGFiQWRkSW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgIH0pO1xuICB9XG5cbiAgb25JbnB1dEZvY3VzKGV2ZW50OiBGb2N1c0V2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5mb2N1c2VkLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgb25JbnB1dEJsdXIoZXZlbnQ6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hZGRPbkJsdXIgJiYgIXRoaXMudGFiQWRkSW5Qcm9ncmVzcykge1xuICAgICAgdGhpcy5hZGRDdXJyZW50SXRlbSgpO1xuICAgIH1cblxuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgdGhpcy5mb2N1c0xvc3QuZW1pdChldmVudCk7XG4gIH1cblxuICByZW1vdmVJdGVtKGluZGV4OiBudW1iZXIsIGV2ZW50PzogRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucmVtb3ZhYmxlSXRlbXMgfHwgaW5kZXggPCAwIHx8IGluZGV4ID49IHRoaXMudmFsdWUubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbmV4dCA9IFsuLi50aGlzLnZhbHVlXTtcbiAgICBjb25zdCByZW1vdmVkVmFsdWUgPSBuZXh0LnNwbGljZShpbmRleCwgMSlbMF07XG4gICAgdGhpcy5jb21taXQobmV4dCk7XG4gICAgdGhpcy5yZW1vdmVkLmVtaXQoeyBvcmlnaW5hbEV2ZW50OiBldmVudCwgdmFsdWU6IHJlbW92ZWRWYWx1ZSwgaW5kZXggfSk7XG4gIH1cblxuICBvbkNoaXBJdGVtQ2xpY2soaW5kZXg6IG51bWJlciwgZXZlbnQ/OiBFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jaGlwQ2xpY2tlZC5lbWl0KHsgb3JpZ2luYWxFdmVudDogZXZlbnQsIHZhbHVlOiB0aGlzLnZhbHVlW2luZGV4XSwgaW5kZXggfSk7XG4gIH1cblxuICBvbkNoaXBLZXlkb3duKGluZGV4OiBudW1iZXIsIGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmtleSAhPT0gJ0VudGVyJyAmJiBldmVudC5rZXkgIT09ICcgJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5vbkNoaXBJdGVtQ2xpY2soaW5kZXgsIGV2ZW50KTtcbiAgfVxuXG4gIHJlc29sdmVDaGlwVGV4dChpdGVtOiB1bmtub3duKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5maWVsZCAmJiBpdGVtICYmIHR5cGVvZiBpdGVtID09PSAnb2JqZWN0Jykge1xuICAgICAgcmV0dXJuIFN0cmluZygoaXRlbSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbdGhpcy5maWVsZF0gPz8gJycpO1xuICAgIH1cblxuICAgIHJldHVybiBTdHJpbmcoaXRlbSA/PyAnJyk7XG4gIH1cblxuICByZW5kZXJDaGlwVGV4dChpdGVtOiB1bmtub3duKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdHJ1bmNhdGVDaGFyYWN0ZXJzKHRoaXMucmVzb2x2ZUNoaXBUZXh0KGl0ZW0pLCB0aGlzLm1heExlbmd0aFJlbmRlcldpdGhvdXRUb29sdGlwKTtcbiAgfVxuXG4gIHNob3VsZFNob3dDaGlwVG9vbHRpcChpdGVtOiB1bmtub3duKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd1Rvb2x0aXAgJiYgY2hhcmFjdGVyTGVuZ3RoKHRoaXMucmVzb2x2ZUNoaXBUZXh0KGl0ZW0pKSA+IHRoaXMubWF4TGVuZ3RoUmVuZGVyV2l0aG91dFRvb2x0aXA7XG4gIH1cblxuICByZXNvbHZlUmVtb3ZlQXJpYUxhYmVsKGl0ZW06IHVua25vd24pOiBzdHJpbmcge1xuICAgIGNvbnN0IHRlbXBsYXRlID0gcmVzb2x2ZVRyYW5zbGF0YWJsZVRleHQodGhpcy50cmFuc2xhdGUsIENISVBTX0RFRkFVTFRfUkVNT1ZFX0FSSUFfTEFCRUwpO1xuICAgIHJldHVybiB0ZW1wbGF0ZS5yZXBsYWNlKCd7bGFiZWx9JywgdGhpcy5yZXNvbHZlQ2hpcFRleHQoaXRlbSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRDdXJyZW50SXRlbSgpOiB2b2lkIHtcbiAgICBjb25zdCByYXdWYWx1ZSA9IHRoaXMubmV3SXRlbS50cmltKCk7XG5cbiAgICBpZiAoIXJhd1ZhbHVlIHx8ICF0aGlzLmNhbkFkZE1vcmUgfHwgY2hhcmFjdGVyTGVuZ3RoKHJhd1ZhbHVlKSA+IHRoaXMubWF4TGVuZ3RoKSB7XG4gICAgICB0aGlzLm5ld0l0ZW0gPSAnJztcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjYW5kaWRhdGUgPSB0aGlzLmZpZWxkID8geyBbdGhpcy5maWVsZF06IHJhd1ZhbHVlIH0gOiByYXdWYWx1ZTtcblxuICAgIGlmICghdGhpcy5hbGxvd0R1cGxpY2F0ZWQgJiYgdGhpcy5oYXNEdXBsaWNhdGUocmF3VmFsdWUpKSB7XG4gICAgICB0aGlzLm5ld0l0ZW0gPSAnJztcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBuZXh0ID0gWy4uLnRoaXMudmFsdWUsIGNhbmRpZGF0ZV07XG4gICAgdGhpcy5jb21taXQobmV4dCk7XG4gICAgdGhpcy5hZGRlZC5lbWl0KHsgdmFsdWU6IGNhbmRpZGF0ZSB9KTtcbiAgICB0aGlzLm5ld0l0ZW0gPSAnJztcbiAgfVxuXG4gIHByaXZhdGUgaGFzRHVwbGljYXRlKHRleHQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlLnNvbWUoKGl0ZW0pID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLnJlc29sdmVDaGlwVGV4dChpdGVtKTtcblxuICAgICAgaWYgKHRoaXMuY2FzZVNlbnNpdGl2ZUR1cGxpY2F0aW9uKSB7XG4gICAgICAgIHJldHVybiBjdXJyZW50ID09PSB0ZXh0O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY3VycmVudC50b0xvd2VyQ2FzZSgpID09PSB0ZXh0LnRvTG93ZXJDYXNlKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNvbW1pdCh2YWx1ZTogdW5rbm93bltdKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJzZGMtY2hpcHNcIj5cbiAgQGlmIChyZXNvbHZlZExhYmVsIHx8IHJlc29sdmVkSW5mb1Rvb2x0aXApIHtcbiAgICA8ZGl2IGNsYXNzPVwic2RjLWNoaXBzX19sYWJlbFJvd1wiPlxuICAgICAgQGlmIChyZXNvbHZlZExhYmVsKSB7XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInNkYy1jaGlwc19fbGFiZWxcIiBbZm9yXT1cImlucHV0SWRcIj57eyByZXNvbHZlZExhYmVsIH19PC9sYWJlbD5cbiAgICAgIH1cblxuICAgICAgQGlmIChyZXNvbHZlZEluZm9Ub29sdGlwKSB7XG4gICAgICAgIDxzZGMtdG9vbHRpcCBbcFRvb2x0aXBdPVwicmVzb2x2ZWRJbmZvVG9vbHRpcFwiIFt0b29sdGlwRXZlbnRdPVwiJ2JvdGgnXCI+XG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJzZGMtY2hpcHNfX2luZm9JY29uXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJyZXNvbHZlZEluZm9Ub29sdGlwXCI+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1pbmZvLWNpcmNsZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9zZGMtdG9vbHRpcD5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgfVxuXG4gIDxkaXYgY2xhc3M9XCJzZGMtY2hpcHNfX3N1cmZhY2VcIiBbY2xhc3Muc2RjLWNoaXBzX19zdXJmYWNlLS1wbGFpbl09XCJhcHBlYXJhbmNlID09PSAncGxhaW4nXCI+XG4gICAgPHVsIGNsYXNzPVwic2RjLWNoaXBzX19saXN0XCI+XG4gICAgICBAZm9yIChpdGVtIG9mIHZhbHVlOyB0cmFjayByZXNvbHZlQ2hpcFRleHQoaXRlbSkgKyAnLScgKyAkaW5kZXgpIHtcbiAgICAgICAgPGxpIGNsYXNzPVwic2RjLWNoaXBzX19pdGVtXCI+XG4gICAgICAgICAgQGlmIChzaG91bGRTaG93Q2hpcFRvb2x0aXAoaXRlbSkpIHtcbiAgICAgICAgICAgIDxzZGMtdG9vbHRpcCBbcFRvb2x0aXBdPVwicmVzb2x2ZUNoaXBUZXh0KGl0ZW0pXCIgW3Rvb2x0aXBFdmVudF09XCInYm90aCdcIj5cbiAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBjbGFzcz1cInNkYy1jaGlwc19fY2hpcFwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLnNkYy1jaGlwc19fY2hpcC0tZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIFthdHRyLnJvbGVdPVwiZGlzYWJsZWQgPyBudWxsIDogJ2J1dHRvbidcIlxuICAgICAgICAgICAgICAgIFthdHRyLnRhYmluZGV4XT1cImRpc2FibGVkID8gbnVsbCA6IDBcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNoaXBJdGVtQ2xpY2soJGluZGV4LCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJvbkNoaXBLZXlkb3duKCRpbmRleCwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBAaWYgKGNoaXBUZW1wbGF0ZSkge1xuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjaGlwVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGl0ZW0sIHRleHQ6IHJlbmRlckNoaXBUZXh0KGl0ZW0pLCBpbmRleDogJGluZGV4IH1cIlxuICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgcmVuZGVyQ2hpcFRleHQoaXRlbSkgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGlmIChyZW1vdmFibGVJdGVtcykge1xuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZGMtY2hpcHNfX3JlbW92ZVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicmVzb2x2ZVJlbW92ZUFyaWFMYWJlbChpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVJdGVtKCRpbmRleCwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXRpbWVzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L3NkYy10b29sdGlwPlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY2xhc3M9XCJzZGMtY2hpcHNfX2NoaXBcIlxuICAgICAgICAgICAgICBbY2xhc3Muc2RjLWNoaXBzX19jaGlwLS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgIFthdHRyLnJvbGVdPVwiZGlzYWJsZWQgPyBudWxsIDogJ2J1dHRvbidcIlxuICAgICAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCJkaXNhYmxlZCA/IG51bGwgOiAwXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2hpcEl0ZW1DbGljaygkaW5kZXgsICRldmVudClcIlxuICAgICAgICAgICAgICAoa2V5ZG93bik9XCJvbkNoaXBLZXlkb3duKCRpbmRleCwgJGV2ZW50KVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIEBpZiAoY2hpcFRlbXBsYXRlKSB7XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2hpcFRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSwgdGV4dDogcmVuZGVyQ2hpcFRleHQoaXRlbSksIGluZGV4OiAkaW5kZXggfVwiXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICA8c3Bhbj57eyByZW5kZXJDaGlwVGV4dChpdGVtKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIEBpZiAocmVtb3ZhYmxlSXRlbXMpIHtcbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2RjLWNoaXBzX19yZW1vdmVcIlxuICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJyZXNvbHZlUmVtb3ZlQXJpYUxhYmVsKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVJdGVtKCRpbmRleCwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvbGk+XG4gICAgICB9XG5cbiAgICAgIEBpZiAoZWRpdGFibGUpIHtcbiAgICAgICAgPGxpIGNsYXNzPVwic2RjLWNoaXBzX19pbnB1dFNsb3RcIj5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIFtpZF09XCJpbnB1dElkXCJcbiAgICAgICAgICAgIGNsYXNzPVwic2RjLWNoaXBzX19pbnB1dFwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgIWNhbkFkZE1vcmVcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInJlc29sdmVkUGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgW2F0dHIubWF4bGVuZ3RoXT1cInJlc29sdmVkTWF4TGVuZ3RoXCJcbiAgICAgICAgICAgIFthdXRvZm9jdXNdPVwiYXV0b2ZvY3VzXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwibmV3SXRlbVwiXG4gICAgICAgICAgICAoa2V5ZG93bik9XCJvbklucHV0S2V5ZG93bigkZXZlbnQpXCJcbiAgICAgICAgICAgIChmb2N1cyk9XCJvbklucHV0Rm9jdXMoJGV2ZW50KVwiXG4gICAgICAgICAgICAoYmx1cik9XCJvbklucHV0Qmx1cigkZXZlbnQpXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2xpPlxuICAgICAgfVxuICAgIDwvdWw+XG4gIDwvZGl2PlxuXG4gIEBpZiAocmVzb2x2ZWRJbmZvTGFiZWwpIHtcbiAgICA8c21hbGwgY2xhc3M9XCJzZGMtY2hpcHNfX2luZm9MYWJlbFwiPnt7IHJlc29sdmVkSW5mb0xhYmVsIH19PC9zbWFsbD5cbiAgfVxuXG4gIEBpZiAocmVzb2x2ZWRNZXNzYWdlKSB7XG4gICAgPHNtYWxsIGNsYXNzPVwic2RjLWNoaXBzX19tZXNzYWdlXCI+e3sgcmVzb2x2ZWRNZXNzYWdlIH19PC9zbWFsbD5cbiAgfVxuPC9kaXY+XG4iXX0=
271
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9jaGlwcy9jaGlwcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2NoaXBzL2NoaXBzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sV0FBVyxFQUNYLGlCQUFpQixFQUNqQixVQUFVLEVBQ1YsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFeEUsT0FBTyxFQUNMLDZCQUE2QixFQUM3QixpQkFBaUIsRUFDakIsd0JBQXdCLEVBQ3hCLHdDQUF3QyxFQUN4Qyx5QkFBeUIsRUFDekIsK0JBQStCLEVBQ2hDLE1BQU0sa0NBQWtDLENBQUM7QUFFMUMsT0FBTyxFQUFFLCtCQUErQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25GLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7O0FBd0JoRSxNQUFNLE9BQU8sY0FBYztJQUNSLFNBQVMsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNyQyxnQkFBZ0IsR0FBRyxn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QUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGZvcndhcmRSZWYsXG4gIGluamVjdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5pbXBvcnQge1xuICBDSElQU19ERUZBVUxUX0lOUFVUX0lEX1BSRUZJWCxcbiAgQ0hJUFNfREVGQVVMVF9NQVgsXG4gIENISVBTX0RFRkFVTFRfTUFYX0xFTkdUSCxcbiAgQ0hJUFNfREVGQVVMVF9NQVhfTEVOR1RIX1dJVEhPVVRfVE9PTFRJUCxcbiAgQ0hJUFNfREVGQVVMVF9QTEFDRUhPTERFUixcbiAgQ0hJUFNfREVGQVVMVF9SRU1PVkVfQVJJQV9MQUJFTFxufSBmcm9tICcuLi8uLi9jb3JlL2NvbnN0YW50cy9jaGlwcy5jb25zdCc7XG5pbXBvcnQgdHlwZSB7IENoaXBBZGRFdmVudCwgQ2hpcENsaWNrRXZlbnQsIENoaXBSZW1vdmVFdmVudCwgQ2hpcHNUcmFuc2xhdGVQYXJhbXMgfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL2NoaXBzLnR5cGUnO1xuaW1wb3J0IHsgcmVzb2x2ZU51bGxhYmxlVHJhbnNsYXRhYmxlVGV4dCwgcmVzb2x2ZVRyYW5zbGF0YWJsZVRleHQgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL2kxOG4udXRpbCc7XG5pbXBvcnQgeyBuZXh0U2VxdWVudGlhbElkIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9pZC51dGlsJztcbmltcG9ydCB7IGNoYXJhY3Rlckxlbmd0aCwgdHJ1bmNhdGVDaGFyYWN0ZXJzIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9zdHJpbmcudXRpbCc7XG5pbXBvcnQgeyBUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi4vdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudCc7XG5cbnR5cGUgQ2hpcFRlbXBsYXRlQ29udGV4dCA9IHtcbiAgJGltcGxpY2l0OiB1bmtub3duO1xuICB0ZXh0OiBzdHJpbmc7XG4gIGluZGV4OiBudW1iZXI7XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZGMtY2hpcHMnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBUb29sdGlwQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoaXBzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2NoaXBzLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENoaXBzQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIENoaXBzQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGUgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZ2VuZXJhdGVkSW5wdXRJZCA9IG5leHRTZXF1ZW50aWFsSWQoQ0hJUFNfREVGQVVMVF9JTlBVVF9JRF9QUkVGSVgpO1xuXG4gIEBDb250ZW50Q2hpbGQoVGVtcGxhdGVSZWYpXG4gIGNoaXBUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPENoaXBUZW1wbGF0ZUNvbnRleHQ+O1xuXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGZpZWxkID0gJyc7XG4gIEBJbnB1dCgpIHZhbHVlOiB1bmtub3duW10gPSBbXTtcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyUGFyYW1zPzogQ2hpcHNUcmFuc2xhdGVQYXJhbXM7XG4gIEBJbnB1dCgpIGxhYmVsPzogc3RyaW5nO1xuICBASW5wdXQoKSBsYWJlbFBhcmFtcz86IENoaXBzVHJhbnNsYXRlUGFyYW1zO1xuICBASW5wdXQoKSBtZXNzYWdlPzogc3RyaW5nO1xuICBASW5wdXQoKSBtZXNzYWdlUGFyYW1zPzogQ2hpcHNUcmFuc2xhdGVQYXJhbXM7XG4gIEBJbnB1dCgpIGluZm9Ub29sdGlwPzogc3RyaW5nO1xuICBASW5wdXQoKSBpbmZvVG9vbHRpcFBhcmFtcz86IENoaXBzVHJhbnNsYXRlUGFyYW1zO1xuICBASW5wdXQoKSBtYXggPSBDSElQU19ERUZBVUxUX01BWDtcbiAgQElucHV0KCkgbWF4TGVuZ3RoID0gQ0hJUFNfREVGQVVMVF9NQVhfTEVOR1RIO1xuICBASW5wdXQoKSBpbnB1dElkID0gdGhpcy5nZW5lcmF0ZWRJbnB1dElkO1xuICBASW5wdXQoKSBhbGxvd0R1cGxpY2F0ZWQgPSB0cnVlO1xuICBASW5wdXQoKSBjYXNlU2Vuc2l0aXZlRHVwbGljYXRpb24gPSBmYWxzZTtcbiAgQElucHV0KCkgYWRkT25UYWIgPSB0cnVlO1xuICBASW5wdXQoKSBhZGRPbkJsdXIgPSB0cnVlO1xuICBASW5wdXQoKSBzZXBhcmF0b3IgPSAnJztcbiAgQElucHV0KCkgYXV0b2ZvY3VzID0gZmFsc2U7XG4gIEBJbnB1dCgpIGluZm9MYWJlbCA9ICcnO1xuICBASW5wdXQoKSBzaG93VG9vbHRpcCA9IHRydWU7XG4gIEBJbnB1dCgpIG1heExlbmd0aFJlbmRlcldpdGhvdXRUb29sdGlwID0gQ0hJUFNfREVGQVVMVF9NQVhfTEVOR1RIX1dJVEhPVVRfVE9PTFRJUDtcbiAgQElucHV0KCkgZWRpdGFibGUgPSB0cnVlO1xuICBASW5wdXQoKSByZW1vdmFibGUgPSB0cnVlO1xuICBASW5wdXQoKSBhcHBlYXJhbmNlOiAnZmllbGQnIHwgJ3BsYWluJyA9ICdmaWVsZCc7XG5cbiAgQE91dHB1dCgpIGFkZGVkID0gbmV3IEV2ZW50RW1pdHRlcjxDaGlwQWRkRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSByZW1vdmVkID0gbmV3IEV2ZW50RW1pdHRlcjxDaGlwUmVtb3ZlRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBmb2N1c2VkID0gbmV3IEV2ZW50RW1pdHRlcjxGb2N1c0V2ZW50PigpO1xuICBAT3V0cHV0KCkgZm9jdXNMb3N0ID0gbmV3IEV2ZW50RW1pdHRlcjxGb2N1c0V2ZW50PigpO1xuICBAT3V0cHV0KCkgY2hpcENsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPENoaXBDbGlja0V2ZW50PigpO1xuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHVua25vd25bXT4oKTtcblxuICBuZXdJdGVtID0gJyc7XG5cbiAgcHJpdmF0ZSBvbkNoYW5nZTogKHZhbHVlOiB1bmtub3duW10pID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgcHJpdmF0ZSBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgcHJpdmF0ZSB0YWJBZGRJblByb2dyZXNzID0gZmFsc2U7XG5cbiAgZ2V0IHJlc29sdmVkTGFiZWwoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHJlc29sdmVOdWxsYWJsZVRyYW5zbGF0YWJsZVRleHQodGhpcy50cmFuc2xhdGUsIHRoaXMubGFiZWwsICcnLCB0aGlzLmxhYmVsUGFyYW1zKTtcbiAgfVxuXG4gIGdldCByZXNvbHZlZE1lc3NhZ2UoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHJlc29sdmVOdWxsYWJsZVRyYW5zbGF0YWJsZVRleHQodGhpcy50cmFuc2xhdGUsIHRoaXMubWVzc2FnZSwgJycsIHRoaXMubWVzc2FnZVBhcmFtcyk7XG4gIH1cblxuICBnZXQgcmVzb2x2ZWRJbmZvVG9vbHRpcCgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gcmVzb2x2ZU51bGxhYmxlVHJhbnNsYXRhYmxlVGV4dCh0aGlzLnRyYW5zbGF0ZSwgdGhpcy5pbmZvVG9vbHRpcCwgJycsIHRoaXMuaW5mb1Rvb2x0aXBQYXJhbXMpO1xuICB9XG5cbiAgZ2V0IHJlc29sdmVkUGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gcmVzb2x2ZVRyYW5zbGF0YWJsZVRleHQoXG4gICAgICB0aGlzLnRyYW5zbGF0ZSxcbiAgICAgIHRoaXMucGxhY2Vob2xkZXIgPz8gQ0hJUFNfREVGQVVMVF9QTEFDRUhPTERFUixcbiAgICAgICcnLFxuICAgICAgdGhpcy5wbGFjZWhvbGRlclBhcmFtc1xuICAgICk7XG4gIH1cblxuICBnZXQgcmVzb2x2ZWRJbmZvTGFiZWwoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHJlc29sdmVOdWxsYWJsZVRyYW5zbGF0YWJsZVRleHQodGhpcy50cmFuc2xhdGUsIHRoaXMuaW5mb0xhYmVsKTtcbiAgfVxuXG4gIGdldCBjYW5BZGRNb3JlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAodGhpcy52YWx1ZT8ubGVuZ3RoID8/IDApIDwgdGhpcy5tYXg7XG4gIH1cblxuICBnZXQgcmVzb2x2ZWRNYXhMZW5ndGgoKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgcmV0dXJuIE51bWJlci5pc0Zpbml0ZSh0aGlzLm1heExlbmd0aCkgPyB0aGlzLm1heExlbmd0aCA6IG51bGw7XG4gIH1cblxuICBnZXQgcmVtb3ZhYmxlSXRlbXMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucmVtb3ZhYmxlICYmICF0aGlzLmRpc2FibGVkO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogdW5rbm93bltdIHwgbnVsbCk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW107XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IHVua25vd25bXSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgb25JbnB1dEtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCAhdGhpcy5lZGl0YWJsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGlzRW50ZXIgPSBldmVudC5rZXkgPT09ICdFbnRlcic7XG4gICAgY29uc3QgaXNTZXBhcmF0b3IgPSAhIXRoaXMuc2VwYXJhdG9yICYmIGV2ZW50LmtleSA9PT0gdGhpcy5zZXBhcmF0b3I7XG4gICAgY29uc3QgaXNUYWIgPSBldmVudC5rZXkgPT09ICdUYWInICYmIHRoaXMuYWRkT25UYWI7XG5cbiAgICBpZiAoIWlzRW50ZXIgJiYgIWlzU2VwYXJhdG9yICYmICFpc1RhYikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy50YWJBZGRJblByb2dyZXNzID0gaXNUYWI7XG4gICAgdGhpcy5hZGRDdXJyZW50SXRlbSgpO1xuICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgIHRoaXMudGFiQWRkSW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgIH0pO1xuICB9XG5cbiAgb25JbnB1dEZvY3VzKGV2ZW50OiBGb2N1c0V2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5mb2N1c2VkLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgb25JbnB1dEJsdXIoZXZlbnQ6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hZGRPbkJsdXIgJiYgIXRoaXMudGFiQWRkSW5Qcm9ncmVzcykge1xuICAgICAgdGhpcy5hZGRDdXJyZW50SXRlbSgpO1xuICAgIH1cblxuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgdGhpcy5mb2N1c0xvc3QuZW1pdChldmVudCk7XG4gIH1cblxuICByZW1vdmVJdGVtKGluZGV4OiBudW1iZXIsIGV2ZW50PzogRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucmVtb3ZhYmxlSXRlbXMgfHwgaW5kZXggPCAwIHx8IGluZGV4ID49IHRoaXMudmFsdWUubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbmV4dCA9IFsuLi50aGlzLnZhbHVlXTtcbiAgICBjb25zdCByZW1vdmVkVmFsdWUgPSBuZXh0LnNwbGljZShpbmRleCwgMSlbMF07XG4gICAgdGhpcy5jb21taXQobmV4dCk7XG4gICAgdGhpcy5yZW1vdmVkLmVtaXQoeyBvcmlnaW5hbEV2ZW50OiBldmVudCwgdmFsdWU6IHJlbW92ZWRWYWx1ZSwgaW5kZXggfSk7XG4gIH1cblxuICBvbkNoaXBJdGVtQ2xpY2soaW5kZXg6IG51bWJlciwgZXZlbnQ/OiBFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jaGlwQ2xpY2tlZC5lbWl0KHsgb3JpZ2luYWxFdmVudDogZXZlbnQsIHZhbHVlOiB0aGlzLnZhbHVlW2luZGV4XSwgaW5kZXggfSk7XG4gIH1cblxuICBvbkNoaXBLZXlkb3duKGluZGV4OiBudW1iZXIsIGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmtleSAhPT0gJ0VudGVyJyAmJiBldmVudC5rZXkgIT09ICcgJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5vbkNoaXBJdGVtQ2xpY2soaW5kZXgsIGV2ZW50KTtcbiAgfVxuXG4gIHJlc29sdmVDaGlwVGV4dChpdGVtOiB1bmtub3duKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5maWVsZCAmJiBpdGVtICYmIHR5cGVvZiBpdGVtID09PSAnb2JqZWN0Jykge1xuICAgICAgcmV0dXJuIFN0cmluZygoaXRlbSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbdGhpcy5maWVsZF0gPz8gJycpO1xuICAgIH1cblxuICAgIHJldHVybiBTdHJpbmcoaXRlbSA/PyAnJyk7XG4gIH1cblxuICByZW5kZXJDaGlwVGV4dChpdGVtOiB1bmtub3duKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdHJ1bmNhdGVDaGFyYWN0ZXJzKHRoaXMucmVzb2x2ZUNoaXBUZXh0KGl0ZW0pLCB0aGlzLm1heExlbmd0aFJlbmRlcldpdGhvdXRUb29sdGlwKTtcbiAgfVxuXG4gIHNob3VsZFNob3dDaGlwVG9vbHRpcChpdGVtOiB1bmtub3duKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd1Rvb2x0aXAgJiYgY2hhcmFjdGVyTGVuZ3RoKHRoaXMucmVzb2x2ZUNoaXBUZXh0KGl0ZW0pKSA+IHRoaXMubWF4TGVuZ3RoUmVuZGVyV2l0aG91dFRvb2x0aXA7XG4gIH1cblxuICByZXNvbHZlUmVtb3ZlQXJpYUxhYmVsKGl0ZW06IHVua25vd24pOiBzdHJpbmcge1xuICAgIGNvbnN0IHRlbXBsYXRlID0gcmVzb2x2ZVRyYW5zbGF0YWJsZVRleHQodGhpcy50cmFuc2xhdGUsIENISVBTX0RFRkFVTFRfUkVNT1ZFX0FSSUFfTEFCRUwpO1xuICAgIHJldHVybiB0ZW1wbGF0ZS5yZXBsYWNlKCd7bGFiZWx9JywgdGhpcy5yZXNvbHZlQ2hpcFRleHQoaXRlbSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRDdXJyZW50SXRlbSgpOiB2b2lkIHtcbiAgICBjb25zdCByYXdWYWx1ZSA9IHRoaXMubmV3SXRlbS50cmltKCk7XG5cbiAgICBpZiAoIXJhd1ZhbHVlIHx8ICF0aGlzLmNhbkFkZE1vcmUgfHwgY2hhcmFjdGVyTGVuZ3RoKHJhd1ZhbHVlKSA+IHRoaXMubWF4TGVuZ3RoKSB7XG4gICAgICB0aGlzLm5ld0l0ZW0gPSAnJztcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjYW5kaWRhdGUgPSB0aGlzLmZpZWxkID8geyBbdGhpcy5maWVsZF06IHJhd1ZhbHVlIH0gOiByYXdWYWx1ZTtcblxuICAgIGlmICghdGhpcy5hbGxvd0R1cGxpY2F0ZWQgJiYgdGhpcy5oYXNEdXBsaWNhdGUocmF3VmFsdWUpKSB7XG4gICAgICB0aGlzLm5ld0l0ZW0gPSAnJztcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBuZXh0ID0gWy4uLnRoaXMudmFsdWUsIGNhbmRpZGF0ZV07XG4gICAgdGhpcy5jb21taXQobmV4dCk7XG4gICAgdGhpcy5hZGRlZC5lbWl0KHsgdmFsdWU6IGNhbmRpZGF0ZSB9KTtcbiAgICB0aGlzLm5ld0l0ZW0gPSAnJztcbiAgfVxuXG4gIHByaXZhdGUgaGFzRHVwbGljYXRlKHRleHQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlLnNvbWUoKGl0ZW0pID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLnJlc29sdmVDaGlwVGV4dChpdGVtKTtcblxuICAgICAgaWYgKHRoaXMuY2FzZVNlbnNpdGl2ZUR1cGxpY2F0aW9uKSB7XG4gICAgICAgIHJldHVybiBjdXJyZW50ID09PSB0ZXh0O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY3VycmVudC50b0xvd2VyQ2FzZSgpID09PSB0ZXh0LnRvTG93ZXJDYXNlKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNvbW1pdCh2YWx1ZTogdW5rbm93bltdKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJzZGMtY2hpcHNcIj5cbiAgQGlmIChyZXNvbHZlZExhYmVsIHx8IHJlc29sdmVkSW5mb1Rvb2x0aXApIHtcbiAgICA8ZGl2IGNsYXNzPVwic2RjLWNoaXBzX19sYWJlbFJvd1wiPlxuICAgICAgQGlmIChyZXNvbHZlZExhYmVsKSB7XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInNkYy1jaGlwc19fbGFiZWxcIiBbZm9yXT1cImlucHV0SWRcIj57eyByZXNvbHZlZExhYmVsIH19PC9sYWJlbD5cbiAgICAgIH1cblxuICAgICAgQGlmIChyZXNvbHZlZEluZm9Ub29sdGlwKSB7XG4gICAgICAgIDxzZGMtdG9vbHRpcCBbcFRvb2x0aXBdPVwicmVzb2x2ZWRJbmZvVG9vbHRpcFwiIFt0b29sdGlwRXZlbnRdPVwiJ2JvdGgnXCI+XG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJzZGMtY2hpcHNfX2luZm9JY29uXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJyZXNvbHZlZEluZm9Ub29sdGlwXCI+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1pbmZvLWNpcmNsZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9zZGMtdG9vbHRpcD5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgfVxuXG4gIDxkaXYgY2xhc3M9XCJzZGMtY2hpcHNfX3N1cmZhY2VcIiBbY2xhc3Muc2RjLWNoaXBzX19zdXJmYWNlLS1wbGFpbl09XCJhcHBlYXJhbmNlID09PSAncGxhaW4nXCI+XG4gICAgPHVsIGNsYXNzPVwic2RjLWNoaXBzX19saXN0XCI+XG4gICAgICBAZm9yIChpdGVtIG9mIHZhbHVlOyB0cmFjayByZXNvbHZlQ2hpcFRleHQoaXRlbSkgKyAnLScgKyAkaW5kZXgpIHtcbiAgICAgICAgPGxpIGNsYXNzPVwic2RjLWNoaXBzX19pdGVtXCI+XG4gICAgICAgICAgQGlmIChzaG91bGRTaG93Q2hpcFRvb2x0aXAoaXRlbSkpIHtcbiAgICAgICAgICAgIDxzZGMtdG9vbHRpcCBbcFRvb2x0aXBdPVwicmVzb2x2ZUNoaXBUZXh0KGl0ZW0pXCIgW3Rvb2x0aXBFdmVudF09XCInYm90aCdcIj5cbiAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBjbGFzcz1cInNkYy1jaGlwc19fY2hpcFwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLnNkYy1jaGlwc19fY2hpcC0tZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIFthdHRyLnJvbGVdPVwiZGlzYWJsZWQgPyBudWxsIDogJ2J1dHRvbidcIlxuICAgICAgICAgICAgICAgIFthdHRyLnRhYmluZGV4XT1cImRpc2FibGVkID8gbnVsbCA6IDBcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNoaXBJdGVtQ2xpY2soJGluZGV4LCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJvbkNoaXBLZXlkb3duKCRpbmRleCwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBAaWYgKGNoaXBUZW1wbGF0ZSkge1xuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjaGlwVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGl0ZW0sIHRleHQ6IHJlbmRlckNoaXBUZXh0KGl0ZW0pLCBpbmRleDogJGluZGV4IH1cIlxuICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgcmVuZGVyQ2hpcFRleHQoaXRlbSkgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGlmIChyZW1vdmFibGVJdGVtcykge1xuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZGMtY2hpcHNfX3JlbW92ZVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicmVzb2x2ZVJlbW92ZUFyaWFMYWJlbChpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVJdGVtKCRpbmRleCwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXRpbWVzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L3NkYy10b29sdGlwPlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY2xhc3M9XCJzZGMtY2hpcHNfX2NoaXBcIlxuICAgICAgICAgICAgICBbY2xhc3Muc2RjLWNoaXBzX19jaGlwLS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgIFthdHRyLnJvbGVdPVwiZGlzYWJsZWQgPyBudWxsIDogJ2J1dHRvbidcIlxuICAgICAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCJkaXNhYmxlZCA/IG51bGwgOiAwXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2hpcEl0ZW1DbGljaygkaW5kZXgsICRldmVudClcIlxuICAgICAgICAgICAgICAoa2V5ZG93bik9XCJvbkNoaXBLZXlkb3duKCRpbmRleCwgJGV2ZW50KVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIEBpZiAoY2hpcFRlbXBsYXRlKSB7XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2hpcFRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSwgdGV4dDogcmVuZGVyQ2hpcFRleHQoaXRlbSksIGluZGV4OiAkaW5kZXggfVwiXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICA8c3Bhbj57eyByZW5kZXJDaGlwVGV4dChpdGVtKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIEBpZiAocmVtb3ZhYmxlSXRlbXMpIHtcbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2RjLWNoaXBzX19yZW1vdmVcIlxuICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJyZXNvbHZlUmVtb3ZlQXJpYUxhYmVsKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVJdGVtKCRpbmRleCwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvbGk+XG4gICAgICB9XG5cbiAgICAgIEBpZiAoZWRpdGFibGUpIHtcbiAgICAgICAgPGxpIGNsYXNzPVwic2RjLWNoaXBzX19pbnB1dFNsb3RcIj5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIFtpZF09XCJpbnB1dElkXCJcbiAgICAgICAgICAgIGNsYXNzPVwic2RjLWNoaXBzX19pbnB1dFwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgIWNhbkFkZE1vcmVcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInJlc29sdmVkUGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgW2F0dHIubWF4bGVuZ3RoXT1cInJlc29sdmVkTWF4TGVuZ3RoXCJcbiAgICAgICAgICAgIFthdXRvZm9jdXNdPVwiYXV0b2ZvY3VzXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwibmV3SXRlbVwiXG4gICAgICAgICAgICAoa2V5ZG93bik9XCJvbklucHV0S2V5ZG93bigkZXZlbnQpXCJcbiAgICAgICAgICAgIChmb2N1cyk9XCJvbklucHV0Rm9jdXMoJGV2ZW50KVwiXG4gICAgICAgICAgICAoYmx1cik9XCJvbklucHV0Qmx1cigkZXZlbnQpXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2xpPlxuICAgICAgfVxuICAgIDwvdWw+XG4gIDwvZGl2PlxuXG4gIEBpZiAocmVzb2x2ZWRJbmZvTGFiZWwpIHtcbiAgICA8c21hbGwgY2xhc3M9XCJzZGMtY2hpcHNfX2luZm9MYWJlbFwiPnt7IHJlc29sdmVkSW5mb0xhYmVsIH19PC9zbWFsbD5cbiAgfVxuXG4gIEBpZiAocmVzb2x2ZWRNZXNzYWdlKSB7XG4gICAgPHNtYWxsIGNsYXNzPVwic2RjLWNoaXBzX19tZXNzYWdlXCI+e3sgcmVzb2x2ZWRNZXNzYWdlIH19PC9zbWFsbD5cbiAgfVxuPC9kaXY+XG4iXX0=