@agorapulse/ui-components 18.0.0-beta → 18.0.0-beta.11

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 (175) hide show
  1. package/agorapulse-ui-components-18.0.0-beta.11.tgz +0 -0
  2. package/avatar/avatar.component.d.ts +56 -43
  3. package/datepicker/datepicker.component.d.ts +21 -5
  4. package/esm2022/add-comment/add-comment.component.mjs +4 -4
  5. package/esm2022/autocomplete/autocomplete.component.mjs +4 -4
  6. package/esm2022/avatar/avatar.component.mjs +113 -181
  7. package/esm2022/badge/badge.component.mjs +4 -4
  8. package/esm2022/button/button.component.mjs +4 -4
  9. package/esm2022/checkbox/checkbox.component.mjs +5 -5
  10. package/esm2022/confirm-modal/confirm-modal.component.mjs +4 -4
  11. package/esm2022/counter/counter.component.mjs +4 -4
  12. package/esm2022/datepicker/datepicker.component.mjs +35 -17
  13. package/esm2022/directives/autosize-textarea.directive.mjs +4 -4
  14. package/esm2022/directives/base-button.directive.mjs +4 -4
  15. package/esm2022/directives/default-image.directive.mjs +4 -4
  16. package/esm2022/directives/ellipsis.directive.mjs +4 -4
  17. package/esm2022/directives/equal-validator.directive.mjs +4 -4
  18. package/esm2022/directives/frozen-gif.directive.mjs +4 -4
  19. package/esm2022/directives/multi-style-text.directive.mjs +4 -4
  20. package/esm2022/dot-stepper/dot-stepper.component.mjs +4 -4
  21. package/esm2022/form-field/form-field.component.mjs +4 -4
  22. package/esm2022/form-message/form-message.component.mjs +4 -4
  23. package/esm2022/icon-button/icon-button.component.mjs +4 -4
  24. package/esm2022/infobox/infobox.component.mjs +4 -4
  25. package/esm2022/input/input.directive.mjs +4 -4
  26. package/esm2022/input-group/input-group.component.mjs +4 -4
  27. package/esm2022/input-group/input-prefix/input-prefix.component.mjs +4 -4
  28. package/esm2022/input-search/input-search.component.mjs +5 -5
  29. package/esm2022/labels/label-list.component.mjs +4 -4
  30. package/esm2022/labels/label.component.mjs +4 -4
  31. package/esm2022/labels-selector/labels-selector.component.mjs +4 -4
  32. package/esm2022/legacy/input/input.component.mjs +5 -5
  33. package/esm2022/legacy/select/select.component.mjs +4 -4
  34. package/esm2022/legacy/textarea/textarea.component.mjs +5 -5
  35. package/esm2022/media-display-overlay/media-display-overlay-dialog.component.mjs +4 -4
  36. package/esm2022/modal/modal.component.mjs +4 -4
  37. package/esm2022/neo-datepicker/day-disabled.pipe.mjs +4 -4
  38. package/esm2022/neo-datepicker/neo-datepicker.component.mjs +4 -4
  39. package/esm2022/notification/notification.component.mjs +4 -4
  40. package/esm2022/paginator/paginator-button/paginator-button.component.mjs +4 -4
  41. package/esm2022/paginator/paginator.component.mjs +4 -4
  42. package/esm2022/password-input/password-input.component.mjs +4 -4
  43. package/esm2022/phone-number-input/phone-number-input.component.mjs +40 -26
  44. package/esm2022/popmenu/popmenu.component.mjs +4 -4
  45. package/esm2022/popmenu/popmenu.directive.mjs +4 -4
  46. package/esm2022/popmenu/popmenu.module.mjs +5 -5
  47. package/esm2022/radio/radio.component.mjs +7 -7
  48. package/esm2022/range-slider/range-slider.component.mjs +4 -4
  49. package/esm2022/select/ap-select.module.mjs +5 -5
  50. package/esm2022/select/dropdown-group-item/dropdown-group-item.component.mjs +4 -4
  51. package/esm2022/select/dropdown-item-multiple-one-line/dropdown-item-multiple-one-line.component.mjs +4 -4
  52. package/esm2022/select/dropdown-item-multiple-two-lines/dropdown-item-multiple-two-lines.component.mjs +4 -4
  53. package/esm2022/select/dropdown-item-single-one-line/dropdown-item-single-one-line.component.mjs +4 -4
  54. package/esm2022/select/dropdown-item-single-two-lines/dropdown-item-single-two-lines.component.mjs +4 -4
  55. package/esm2022/select/dropdown-search-form/dropdown-search-form.component.mjs +4 -4
  56. package/esm2022/select/select-base.directive.mjs +6 -6
  57. package/esm2022/select/select-label-multiple/select-label-multiple.component.mjs +4 -4
  58. package/esm2022/select/select-label-single/select-label-single.component.mjs +4 -4
  59. package/esm2022/select/select-multiple.directive.mjs +4 -4
  60. package/esm2022/select/select-single.directive.mjs +4 -4
  61. package/esm2022/slide-toggle/slide-toggle.component.mjs +4 -4
  62. package/esm2022/snackbars-thread/component/snackbars-thread.component.mjs +4 -4
  63. package/esm2022/snackbars-thread/service/snackbars-thread.service.mjs +4 -4
  64. package/esm2022/social-button/social-button.component.mjs +4 -4
  65. package/esm2022/split-button/split-button.component.mjs +7 -10
  66. package/esm2022/src/lib/agorapulse-ui-components.module.mjs +5 -5
  67. package/esm2022/status/status.component.mjs +4 -4
  68. package/esm2022/status-card/status-card.component.mjs +4 -4
  69. package/esm2022/stepper/stepper.component.mjs +4 -4
  70. package/esm2022/tag/tag.component.mjs +4 -4
  71. package/esm2022/text-measurement/text-measurement.service.mjs +4 -4
  72. package/esm2022/textarea/textarea.directive.mjs +4 -4
  73. package/esm2022/toggle/toggle.component.mjs +8 -8
  74. package/esm2022/tooltip/tooltip.directive.mjs +4 -4
  75. package/esm2022/tooltip/tooltip.service.mjs +4 -4
  76. package/fesm2022/agorapulse-ui-components-add-comment.mjs +3 -3
  77. package/fesm2022/agorapulse-ui-components-add-comment.mjs.map +1 -1
  78. package/fesm2022/agorapulse-ui-components-autocomplete.mjs +3 -3
  79. package/fesm2022/agorapulse-ui-components-autocomplete.mjs.map +1 -1
  80. package/fesm2022/agorapulse-ui-components-avatar.mjs +113 -181
  81. package/fesm2022/agorapulse-ui-components-avatar.mjs.map +1 -1
  82. package/fesm2022/agorapulse-ui-components-badge.mjs +3 -3
  83. package/fesm2022/agorapulse-ui-components-badge.mjs.map +1 -1
  84. package/fesm2022/agorapulse-ui-components-button.mjs +3 -3
  85. package/fesm2022/agorapulse-ui-components-button.mjs.map +1 -1
  86. package/fesm2022/agorapulse-ui-components-checkbox.mjs +4 -4
  87. package/fesm2022/agorapulse-ui-components-checkbox.mjs.map +1 -1
  88. package/fesm2022/agorapulse-ui-components-confirm-modal.mjs +3 -3
  89. package/fesm2022/agorapulse-ui-components-confirm-modal.mjs.map +1 -1
  90. package/fesm2022/agorapulse-ui-components-counter.mjs +3 -3
  91. package/fesm2022/agorapulse-ui-components-counter.mjs.map +1 -1
  92. package/fesm2022/agorapulse-ui-components-datepicker.mjs +35 -17
  93. package/fesm2022/agorapulse-ui-components-datepicker.mjs.map +1 -1
  94. package/fesm2022/agorapulse-ui-components-directives.mjs +21 -21
  95. package/fesm2022/agorapulse-ui-components-directives.mjs.map +1 -1
  96. package/fesm2022/agorapulse-ui-components-dot-stepper.mjs +3 -3
  97. package/fesm2022/agorapulse-ui-components-dot-stepper.mjs.map +1 -1
  98. package/fesm2022/agorapulse-ui-components-form-field.mjs +3 -3
  99. package/fesm2022/agorapulse-ui-components-form-field.mjs.map +1 -1
  100. package/fesm2022/agorapulse-ui-components-form-message.mjs +3 -3
  101. package/fesm2022/agorapulse-ui-components-form-message.mjs.map +1 -1
  102. package/fesm2022/agorapulse-ui-components-icon-button.mjs +3 -3
  103. package/fesm2022/agorapulse-ui-components-icon-button.mjs.map +1 -1
  104. package/fesm2022/agorapulse-ui-components-infobox.mjs +3 -3
  105. package/fesm2022/agorapulse-ui-components-infobox.mjs.map +1 -1
  106. package/fesm2022/agorapulse-ui-components-input-group.mjs +6 -6
  107. package/fesm2022/agorapulse-ui-components-input-group.mjs.map +1 -1
  108. package/fesm2022/agorapulse-ui-components-input-search.mjs +4 -4
  109. package/fesm2022/agorapulse-ui-components-input-search.mjs.map +1 -1
  110. package/fesm2022/agorapulse-ui-components-input.mjs +3 -3
  111. package/fesm2022/agorapulse-ui-components-input.mjs.map +1 -1
  112. package/fesm2022/agorapulse-ui-components-labels-selector.mjs +3 -3
  113. package/fesm2022/agorapulse-ui-components-labels-selector.mjs.map +1 -1
  114. package/fesm2022/agorapulse-ui-components-labels.mjs +6 -6
  115. package/fesm2022/agorapulse-ui-components-labels.mjs.map +1 -1
  116. package/fesm2022/agorapulse-ui-components-legacy-input.mjs +4 -4
  117. package/fesm2022/agorapulse-ui-components-legacy-input.mjs.map +1 -1
  118. package/fesm2022/agorapulse-ui-components-legacy-select.mjs +3 -3
  119. package/fesm2022/agorapulse-ui-components-legacy-select.mjs.map +1 -1
  120. package/fesm2022/agorapulse-ui-components-legacy-textarea.mjs +4 -4
  121. package/fesm2022/agorapulse-ui-components-legacy-textarea.mjs.map +1 -1
  122. package/fesm2022/agorapulse-ui-components-media-display-overlay.mjs +3 -3
  123. package/fesm2022/agorapulse-ui-components-media-display-overlay.mjs.map +1 -1
  124. package/fesm2022/agorapulse-ui-components-modal.mjs +3 -3
  125. package/fesm2022/agorapulse-ui-components-modal.mjs.map +1 -1
  126. package/fesm2022/agorapulse-ui-components-neo-datepicker.mjs +6 -6
  127. package/fesm2022/agorapulse-ui-components-neo-datepicker.mjs.map +1 -1
  128. package/fesm2022/agorapulse-ui-components-notification.mjs +3 -3
  129. package/fesm2022/agorapulse-ui-components-notification.mjs.map +1 -1
  130. package/fesm2022/agorapulse-ui-components-paginator.mjs +6 -6
  131. package/fesm2022/agorapulse-ui-components-paginator.mjs.map +1 -1
  132. package/fesm2022/agorapulse-ui-components-password-input.mjs +3 -3
  133. package/fesm2022/agorapulse-ui-components-password-input.mjs.map +1 -1
  134. package/fesm2022/agorapulse-ui-components-phone-number-input.mjs +39 -25
  135. package/fesm2022/agorapulse-ui-components-phone-number-input.mjs.map +1 -1
  136. package/fesm2022/agorapulse-ui-components-popmenu.mjs +10 -10
  137. package/fesm2022/agorapulse-ui-components-popmenu.mjs.map +1 -1
  138. package/fesm2022/agorapulse-ui-components-radio.mjs +6 -6
  139. package/fesm2022/agorapulse-ui-components-radio.mjs.map +1 -1
  140. package/fesm2022/agorapulse-ui-components-range-slider.mjs +3 -3
  141. package/fesm2022/agorapulse-ui-components-range-slider.mjs.map +1 -1
  142. package/fesm2022/agorapulse-ui-components-select.mjs +38 -38
  143. package/fesm2022/agorapulse-ui-components-select.mjs.map +1 -1
  144. package/fesm2022/agorapulse-ui-components-slide-toggle.mjs +3 -3
  145. package/fesm2022/agorapulse-ui-components-slide-toggle.mjs.map +1 -1
  146. package/fesm2022/agorapulse-ui-components-snackbars-thread.mjs +6 -6
  147. package/fesm2022/agorapulse-ui-components-snackbars-thread.mjs.map +1 -1
  148. package/fesm2022/agorapulse-ui-components-social-button.mjs +3 -3
  149. package/fesm2022/agorapulse-ui-components-social-button.mjs.map +1 -1
  150. package/fesm2022/agorapulse-ui-components-split-button.mjs +6 -9
  151. package/fesm2022/agorapulse-ui-components-split-button.mjs.map +1 -1
  152. package/fesm2022/agorapulse-ui-components-status-card.mjs +3 -3
  153. package/fesm2022/agorapulse-ui-components-status-card.mjs.map +1 -1
  154. package/fesm2022/agorapulse-ui-components-status.mjs +3 -3
  155. package/fesm2022/agorapulse-ui-components-status.mjs.map +1 -1
  156. package/fesm2022/agorapulse-ui-components-stepper.mjs +3 -3
  157. package/fesm2022/agorapulse-ui-components-stepper.mjs.map +1 -1
  158. package/fesm2022/agorapulse-ui-components-tag.mjs +3 -3
  159. package/fesm2022/agorapulse-ui-components-tag.mjs.map +1 -1
  160. package/fesm2022/agorapulse-ui-components-text-measurement.mjs +3 -3
  161. package/fesm2022/agorapulse-ui-components-text-measurement.mjs.map +1 -1
  162. package/fesm2022/agorapulse-ui-components-textarea.mjs +3 -3
  163. package/fesm2022/agorapulse-ui-components-textarea.mjs.map +1 -1
  164. package/fesm2022/agorapulse-ui-components-toggle.mjs +7 -7
  165. package/fesm2022/agorapulse-ui-components-toggle.mjs.map +1 -1
  166. package/fesm2022/agorapulse-ui-components-tooltip.mjs +6 -6
  167. package/fesm2022/agorapulse-ui-components-tooltip.mjs.map +1 -1
  168. package/fesm2022/agorapulse-ui-components.mjs +4 -4
  169. package/fesm2022/agorapulse-ui-components.mjs.map +1 -1
  170. package/package.json +94 -94
  171. package/phone-number-input/phone-number-input.component.d.ts +5 -3
  172. package/select/select-label-multiple/select-label-multiple.component.d.ts +1 -1
  173. package/split-button/split-button.component.d.ts +3 -3
  174. package/tooltip/tooltip.directive.d.ts +1 -1
  175. package/agorapulse-ui-components-18.0.0-beta.tgz +0 -0
@@ -110,17 +110,17 @@ export class InputComponent {
110
110
  onClear() {
111
111
  this.writeValue(null);
112
112
  }
113
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: InputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
114
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: InputComponent, isStandalone: true, selector: "ap-input", inputs: { ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", ariaDescribedBy: "ariaDescribedBy", disabled: "disabled", clearable: "clearable", inputType: "inputType", inputId: "inputId", name: "name", label: "label", description: "description", prefix: "prefix", suffix: "suffix", required: ["required", "required", booleanAttribute], placeholder: "placeholder", errorMessage: "errorMessage", successMessage: "successMessage", symbolId: "symbolId", symbolPosition: "symbolPosition" }, outputs: { focus: "focus", blur: "blur", keyup: "keyup" }, providers: [
113
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: InputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
114
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: InputComponent, isStandalone: true, selector: "ap-input", inputs: { ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", ariaDescribedBy: "ariaDescribedBy", disabled: "disabled", clearable: "clearable", inputType: "inputType", inputId: "inputId", name: "name", label: "label", description: "description", prefix: "prefix", suffix: "suffix", required: ["required", "required", booleanAttribute], placeholder: "placeholder", errorMessage: "errorMessage", successMessage: "successMessage", symbolId: "symbolId", symbolPosition: "symbolPosition" }, outputs: { focus: "focus", blur: "blur", keyup: "keyup" }, providers: [
115
115
  AP_INPUT_CONTROL_VALUE_ACCESSOR,
116
116
  {
117
117
  provide: NG_VALIDATORS,
118
118
  useExisting: InputComponent,
119
119
  multi: true,
120
120
  },
121
- ], queries: [{ propertyName: "symbols", predicate: SymbolComponent }], viewQueries: [{ propertyName: "symbolWrapper", first: true, predicate: ["symbol"], descendants: true }, { propertyName: "inputElement", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "@if (label) {\n <label [for]=\"inputId\">\n <span>\n {{ label }}\n </span>\n @if (description) {\n <span class=\"description\">\n {{ description }}\n </span>\n }\n </label>\n}\n\n<div\n tabindex=\"0\"\n class=\"input-wrapper\"\n [class.inverse]=\"symbolPosition === 'left'\"\n [class.with-icon]=\"symbolId\"\n [class.with-prefix]=\"prefix\"\n [class.with-suffix]=\"suffix\"\n [class.with-error]=\"errorMessage\"\n [class.with-success]=\"successMessage\"\n [class.disabled]=\"disabled\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledBy || null\"\n [attr.aria-describedby]=\"ariaDescribedBy || null\"\n [attr.aria-disabled]=\"disabled?.toString()\"\n (click)=\"focusInput()\"\n (keydown.enter)=\"focusInput()\">\n @if (prefix) {\n <div class=\"prefix\">\n <span>\n {{ prefix }}\n </span>\n <span class=\"divider\"></span>\n </div>\n }\n <div class=\"content\">\n <input\n #input\n [type]=\"inputType\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [id]=\"inputId ?? ''\"\n [attr.data-test]=\"hostDataTest() ? hostDataTest() : name\"\n [(ngModel)]=\"value\"\n (blur)=\"onBlurHandle($event)\"\n (focus)=\"onFocusHandle($event)\"\n (keyup)=\"onKeyup($event)\"\n (ngModelChange)=\"onValueChange()\" />\n @if (clearable) {\n <button\n type=\"button\"\n class=\"clear-button\"\n (click)=\"onClear()\">\n <ap-symbol symbolId=\"close\" />\n </button>\n }\n </div>\n @if (suffix) {\n <div class=\"suffix\">\n <span class=\"divider\"></span>\n <span>\n {{ suffix }}\n </span>\n </div>\n }\n @if (symbolId) {\n <ap-symbol\n size=\"sm\"\n [symbolId]=\"symbolId\" />\n }\n</div>\n\n@if (errorMessage) {\n <div class=\"form-message error\">\n <ap-symbol\n symbolId=\"error_fill\"\n size=\"sm\" />\n <span>\n {{ errorMessage }}\n </span>\n </div>\n}\n\n@if (successMessage) {\n <div class=\"form-message success\">\n <ap-symbol\n symbolId=\"rounded-check_fill\"\n size=\"sm\" />\n <span>\n {{ successMessage }}\n </span>\n </div>\n}\n", styles: ["ap-input{display:flex;flex-direction:column;gap:var(--comp-input-spacing-horizontal);--border-width: 1px}ap-input.full-width{width:100%}ap-input.full-width .input-wrapper{min-width:100%}ap-input label{display:flex;flex-direction:column;gap:var(--comp-forms-label-spacing-vertical);font-size:var(--comp-forms-label-size);font-weight:var(--comp-forms-label-font-weight);line-height:var(--comp-forms-label-line-height);font-family:var(--comp-forms-label-font-family);color:var(--comp-forms-label-text-color)}ap-input label .description{font-size:var(--comp-forms-label-description-text-size);font-weight:var(--comp-forms-label-description-text-font-weight);line-height:var(--comp-forms-label-description-text-line-height);font-family:var(--comp-forms-label-description-text-font-family);color:var(--comp-forms-label-description-text-color)}ap-input .input-wrapper{display:flex;align-items:center;position:relative;min-width:var(--comp-input-width-default);height:var(--comp-input-height);border:var(--border-width) solid var(--comp-input-border-default-color);box-sizing:border-box;border-radius:var(--comp-input-border-radius);overflow:hidden;background-color:var(--comp-input-fill-color)}ap-input .input-wrapper:hover:not(.disabled){border-color:var(--comp-input-border-hover-color)}ap-input .input-wrapper:focus-within:not(.disabled){border-color:var(--comp-input-border-focused-color)}ap-input .input-wrapper:focus-visible:not(.disabled){outline:none}ap-input .input-wrapper:active:not(.disabled){border-color:var(--comp-input-border-focused-color)}ap-input .input-wrapper.disabled{background-color:var(--comp-input-fill-disabled-color);color:var(--comp-input-text-disabled-color)}ap-input .input-wrapper .content{display:flex;gap:var(--comp-input-spacing-horizontal);flex:1;align-items:center}ap-input .input-wrapper .content input{border:none;outline:none;box-sizing:border-box;min-height:34px;max-height:34px;padding:0 var(--comp-input-padding-horizontal);flex:1;font-size:var(--comp-input-text-size);font-weight:var(--comp-input-text-font-weight);line-height:var(--comp-input-text-line-height);font-family:var(--comp-input-text-font-family);color:var(--comp-input-text-default-color);min-width:0}ap-input .input-wrapper .content input::placeholder{color:var(--comp-input-text-placeholder-color)}ap-input .input-wrapper .content input:disabled{cursor:not-allowed;pointer-events:none;background:var(--comp-input-fill-disabled-color);color:var(--comp-input-text-disabled-color)}ap-input .input-wrapper .content input:disabled:placeholder{color:var(--comp-input-text-placeholder-color)}ap-input .input-wrapper .content input[type=search]::-webkit-search-decoration,ap-input .input-wrapper .content input[type=search]::-webkit-search-cancel-button,ap-input .input-wrapper .content input[type=search]::-webkit-search-results-button,ap-input .input-wrapper .content input[type=search]::-webkit-search-results-decoration{display:none}ap-input .input-wrapper .content .counter{font-size:var(--comp-input-text-counter-size);font-weight:var(--comp-input-text-counter-font-weight);line-height:var(--comp-input-text-counter-line-height);font-family:var(--comp-input-text-counter-font-family);color:var(--comp-input-text-counter-color);padding-right:var(--comp-input-spacing-horizontal)}ap-input .input-wrapper .content .clear-button{display:flex;align-items:center;justify-content:center;border:none;margin:0;padding:0 var(--comp-input-spacing-horizontal) 0 0;background-color:transparent}ap-input .input-wrapper .content .clear-button:hover{cursor:pointer}ap-input .input-wrapper .content .clear-button ap-symbol{padding:0}ap-input .input-wrapper .prefix,ap-input .input-wrapper .suffix{height:100%;display:flex;justify-content:center;align-items:center;font-size:var(--sys-text-style-body-size);font-weight:var(--sys-text-style-body-weight);line-height:var(--sys-text-style-body-line-height);font-family:var(--ref-font-family);color:var(--ref-color-grey-100)}ap-input .input-wrapper .prefix .divider,ap-input .input-wrapper .suffix .divider{height:18px;width:var(--border-width);background:var(--ref-color-grey-10)}ap-input .input-wrapper ap-symbol{height:var(--comp-input-icon-size);width:var(--comp-input-icon-size);min-height:var(--comp-input-icon-size);min-width:var(--comp-input-icon-size);max-height:var(--comp-input-icon-size);max-width:var(--comp-input-icon-size);color:var(--comp-input-icon-color);padding-right:var(--comp-input-padding-horizontal);pointer-events:none;box-sizing:content-box}ap-input .input-wrapper ap-symbol:hover{cursor:text}ap-input .input-wrapper.inverse{flex-direction:row-reverse}ap-input .input-wrapper.inverse.with-icon input{padding-left:0}ap-input .input-wrapper.inverse.with-icon ap-symbol{padding-right:var(--comp-input-spacing-horizontal);padding-left:var(--comp-input-padding-horizontal)}ap-input .input-wrapper.with-icon input{padding-right:var(--ref-spacing-xxxs)}ap-input .input-wrapper.with-prefix input{padding-left:var(--ref-spacing-xxs)}ap-input .input-wrapper.with-prefix .prefix{padding-left:var(--comp-input-padding-horizontal);gap:var(--ref-spacing-xxs)}ap-input .input-wrapper.with-suffix input{padding-right:var(--ref-spacing-xxs)}ap-input .input-wrapper.with-suffix .suffix{padding-right:var(--comp-input-padding-horizontal);gap:var(--ref-spacing-xxs)}ap-input .input-wrapper.with-counter input{padding-right:0}ap-input .input-wrapper.with-error{border-color:var(--comp-input-border-error-color)}ap-input .input-wrapper.with-success{border-color:var(--comp-input-border-success-color)}.form-message{font-size:var(--comp-forms-status-text-size);font-weight:var(--comp-forms-status-text-font-weight);line-height:var(--comp-forms-status-text-line-height);font-family:var(--comp-forms-status-text-font-family);margin:0;display:flex;gap:var(--ref-spacing-xxxs)}.form-message.error{color:var(--comp-forms-status-text-error-color)}.form-message.error ap-symbol{color:var(--comp-forms-status-icon-error-color)}.form-message.success{color:var(--comp-forms-status-text-success-color)}.form-message.success ap-symbol{color:var(--comp-forms-status-icon-success-color)}form.ng-submitted ap-input.ng-valid .input-wrapper{border-color:var(--comp-input-border-success-color)}form.ng-submitted ap-input.ng-invalid .input-wrapper{border-color:var(--comp-input-border-error-color)}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SymbolComponent, selector: "ap-symbol", inputs: ["color", "symbolId", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
121
+ ], queries: [{ propertyName: "symbols", predicate: SymbolComponent }], viewQueries: [{ propertyName: "symbolWrapper", first: true, predicate: ["symbol"], descendants: true }, { propertyName: "inputElement", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "@if (label) {\n <label [for]=\"inputId\">\n <span>\n {{ label }}\n </span>\n @if (description) {\n <span class=\"description\">\n {{ description }}\n </span>\n }\n </label>\n}\n\n<div\n tabindex=\"0\"\n class=\"input-wrapper\"\n [class.inverse]=\"symbolPosition === 'left'\"\n [class.with-icon]=\"symbolId\"\n [class.with-prefix]=\"prefix\"\n [class.with-suffix]=\"suffix\"\n [class.with-error]=\"errorMessage\"\n [class.with-success]=\"successMessage\"\n [class.disabled]=\"disabled\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledBy || null\"\n [attr.aria-describedby]=\"ariaDescribedBy || null\"\n [attr.aria-disabled]=\"disabled?.toString()\"\n (click)=\"focusInput()\"\n (keydown.enter)=\"focusInput()\">\n @if (prefix) {\n <div class=\"prefix\">\n <span>\n {{ prefix }}\n </span>\n <span class=\"divider\"></span>\n </div>\n }\n <div class=\"content\">\n <input\n #input\n [type]=\"inputType\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [id]=\"inputId ?? ''\"\n [attr.data-test]=\"hostDataTest() ? hostDataTest() : name\"\n [(ngModel)]=\"value\"\n (blur)=\"onBlurHandle($event)\"\n (focus)=\"onFocusHandle($event)\"\n (keyup)=\"onKeyup($event)\"\n (ngModelChange)=\"onValueChange()\" />\n @if (clearable) {\n <button\n type=\"button\"\n class=\"clear-button\"\n (click)=\"onClear()\">\n <ap-symbol symbolId=\"close\" />\n </button>\n }\n </div>\n @if (suffix) {\n <div class=\"suffix\">\n <span class=\"divider\"></span>\n <span>\n {{ suffix }}\n </span>\n </div>\n }\n @if (symbolId) {\n <ap-symbol\n size=\"sm\"\n [symbolId]=\"symbolId\" />\n }\n</div>\n\n@if (errorMessage) {\n <div class=\"form-message error\">\n <ap-symbol\n symbolId=\"error_fill\"\n size=\"sm\" />\n <span>\n {{ errorMessage }}\n </span>\n </div>\n}\n\n@if (successMessage) {\n <div class=\"form-message success\">\n <ap-symbol\n symbolId=\"rounded-check_fill\"\n size=\"sm\" />\n <span>\n {{ successMessage }}\n </span>\n </div>\n}\n", styles: ["ap-input{display:flex;flex-direction:column;gap:var(--comp-input-spacing-horizontal);--border-width: 1px}ap-input.full-width{width:100%}ap-input.full-width .input-wrapper{min-width:100%}ap-input label{display:flex;flex-direction:column;gap:var(--comp-forms-label-spacing-vertical);font-size:var(--comp-forms-label-size);font-weight:var(--comp-forms-label-font-weight);line-height:var(--comp-forms-label-line-height);font-family:var(--comp-forms-label-font-family);color:var(--comp-forms-label-text-color)}ap-input label .description{font-size:var(--comp-forms-label-description-text-size);font-weight:var(--comp-forms-label-description-text-font-weight);line-height:var(--comp-forms-label-description-text-line-height);font-family:var(--comp-forms-label-description-text-font-family);color:var(--comp-forms-label-description-text-color)}ap-input .input-wrapper{display:flex;align-items:center;position:relative;min-width:var(--comp-input-width-default);height:var(--comp-input-height);border:var(--border-width) solid var(--comp-input-border-default-color);box-sizing:border-box;border-radius:var(--comp-input-border-radius);overflow:hidden;background-color:var(--comp-input-fill-color)}ap-input .input-wrapper:hover:not(.disabled){border-color:var(--comp-input-border-hover-color)}ap-input .input-wrapper:focus-within:not(.disabled){border-color:var(--comp-input-border-focused-color)}ap-input .input-wrapper:focus-visible:not(.disabled){outline:none}ap-input .input-wrapper:active:not(.disabled){border-color:var(--comp-input-border-focused-color)}ap-input .input-wrapper.disabled{background-color:var(--comp-input-fill-disabled-color);color:var(--comp-input-text-disabled-color)}ap-input .input-wrapper .content{display:flex;gap:var(--comp-input-spacing-horizontal);flex:1;align-items:center}ap-input .input-wrapper .content input{border:none;outline:none;box-sizing:border-box;min-height:34px;max-height:34px;padding:0 var(--comp-input-padding-horizontal);flex:1;font-size:var(--comp-input-text-size);font-weight:var(--comp-input-text-font-weight);line-height:var(--comp-input-text-line-height);font-family:var(--comp-input-text-font-family);color:var(--comp-input-text-default-color);min-width:0}ap-input .input-wrapper .content input::placeholder{color:var(--comp-input-text-placeholder-color)}ap-input .input-wrapper .content input:disabled{cursor:not-allowed;pointer-events:none;background:var(--comp-input-fill-disabled-color);color:var(--comp-input-text-disabled-color)}ap-input .input-wrapper .content input:disabled:placeholder{color:var(--comp-input-text-placeholder-color)}ap-input .input-wrapper .content input[type=search]::-webkit-search-decoration,ap-input .input-wrapper .content input[type=search]::-webkit-search-cancel-button,ap-input .input-wrapper .content input[type=search]::-webkit-search-results-button,ap-input .input-wrapper .content input[type=search]::-webkit-search-results-decoration{display:none}ap-input .input-wrapper .content .counter{font-size:var(--comp-input-text-counter-size);font-weight:var(--comp-input-text-counter-font-weight);line-height:var(--comp-input-text-counter-line-height);font-family:var(--comp-input-text-counter-font-family);color:var(--comp-input-text-counter-color);padding-right:var(--comp-input-spacing-horizontal)}ap-input .input-wrapper .content .clear-button{display:flex;align-items:center;justify-content:center;border:none;margin:0;padding:0 var(--comp-input-spacing-horizontal) 0 0;background-color:transparent}ap-input .input-wrapper .content .clear-button:hover{cursor:pointer}ap-input .input-wrapper .content .clear-button ap-symbol{padding:0}ap-input .input-wrapper .prefix,ap-input .input-wrapper .suffix{height:100%;display:flex;justify-content:center;align-items:center;font-size:var(--sys-text-style-body-size);font-weight:var(--sys-text-style-body-weight);line-height:var(--sys-text-style-body-line-height);font-family:var(--ref-font-family);color:var(--ref-color-grey-100)}ap-input .input-wrapper .prefix .divider,ap-input .input-wrapper .suffix .divider{height:18px;width:var(--border-width);background:var(--ref-color-grey-10)}ap-input .input-wrapper ap-symbol{height:var(--comp-input-icon-size);width:var(--comp-input-icon-size);min-height:var(--comp-input-icon-size);min-width:var(--comp-input-icon-size);max-height:var(--comp-input-icon-size);max-width:var(--comp-input-icon-size);color:var(--comp-input-icon-color);padding-right:var(--comp-input-padding-horizontal);pointer-events:none;box-sizing:content-box}ap-input .input-wrapper ap-symbol:hover{cursor:text}ap-input .input-wrapper.inverse{flex-direction:row-reverse}ap-input .input-wrapper.inverse.with-icon input{padding-left:0}ap-input .input-wrapper.inverse.with-icon ap-symbol{padding-right:var(--comp-input-spacing-horizontal);padding-left:var(--comp-input-padding-horizontal)}ap-input .input-wrapper.with-icon input{padding-right:var(--ref-spacing-xxxs)}ap-input .input-wrapper.with-prefix input{padding-left:var(--ref-spacing-xxs)}ap-input .input-wrapper.with-prefix .prefix{padding-left:var(--comp-input-padding-horizontal);gap:var(--ref-spacing-xxs)}ap-input .input-wrapper.with-suffix input{padding-right:var(--ref-spacing-xxs)}ap-input .input-wrapper.with-suffix .suffix{padding-right:var(--comp-input-padding-horizontal);gap:var(--ref-spacing-xxs)}ap-input .input-wrapper.with-counter input{padding-right:0}ap-input .input-wrapper.with-error{border-color:var(--comp-input-border-error-color)}ap-input .input-wrapper.with-success{border-color:var(--comp-input-border-success-color)}.form-message{font-size:var(--comp-forms-status-text-size);font-weight:var(--comp-forms-status-text-font-weight);line-height:var(--comp-forms-status-text-line-height);font-family:var(--comp-forms-status-text-font-family);margin:0;display:flex;gap:var(--ref-spacing-xxxs)}.form-message.error{color:var(--comp-forms-status-text-error-color)}.form-message.error ap-symbol{color:var(--comp-forms-status-icon-error-color)}.form-message.success{color:var(--comp-forms-status-text-success-color)}.form-message.success ap-symbol{color:var(--comp-forms-status-icon-success-color)}form.ng-submitted ap-input.ng-valid .input-wrapper{border-color:var(--comp-input-border-success-color)}form.ng-submitted ap-input.ng-invalid .input-wrapper{border-color:var(--comp-input-border-error-color)}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SymbolComponent, selector: "ap-symbol", inputs: ["symbolId", "color", "size"], outputs: ["sizeChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
122
122
  }
123
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: InputComponent, decorators: [{
123
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: InputComponent, decorators: [{
124
124
  type: Component,
125
125
  args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ap-input', standalone: true, imports: [FormsModule, SymbolComponent], providers: [
126
126
  AP_INPUT_CONTROL_VALUE_ACCESSOR,
@@ -186,4 +186,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
186
186
  }], keyup: [{
187
187
  type: Output
188
188
  }] } });
189
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL2xlZ2FjeS9pbnB1dC9zcmMvaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL2xlZ2FjeS9pbnB1dC9zcmMvaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU1SCxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLFNBQVMsRUFDVCxpQkFBaUIsRUFFakIsZ0JBQWdCLEVBQ2hCLFVBQVUsRUFDVixNQUFNLEVBQ04sTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsV0FBVyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFtQnJHLE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUFHO0lBQzNDLE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxjQUFjLENBQUM7SUFDN0MsS0FBSyxFQUFFLElBQUk7Q0FDZCxDQUFDO0FBRUYsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLENBQUM7QUFFbEM7O0dBRUc7QUFxQkgsTUFBTSxPQUFPLGNBQWM7SUFDZCxVQUFVLEdBQWUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzVDLGNBQWMsR0FBbUIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRS9CLE9BQU8sQ0FBOEI7SUFDbEQsYUFBYSxDQUFjO0lBQzVCLFlBQVks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QyxVQUFVLGNBRVIsSUFBSSxXQUNQLENBQUMsV0FBVyxFQUFFLGVBQWUsQ0FBQyxhQUM1Qjt3QkFDUCwrQkFBK0I7d0JBRS9COzRCQUNJLE9BQU8sRUFBRSxhQUFhOzRCQUV0QixXQUFXLGdCQUFnQjs0QkFFM0IsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7cUJBQ0osaUJBRWMsaUJBQWlCLENBQUMsSUFBSTs4QkFNSCxPQUFPO3NCQUF4QyxlQUFlO3VCQUFDLGVBQWU7Z0JBQ1gsYUFBYTtzQkFBakMsU0FBUzt1QkFBQyxRQUFRO2dCQUNDLFlBQVk7c0JBQS9CLFNBQVM7dUJBQUMsT0FBTztnQkFFVCxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUcsZUFBZTtzQkFBdkIsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBS04sSUFBSTtzQkFISCxLQUFLO3VCQUFDO3dCQUNILFFBQVEsRUFBRSxJQUFJO3FCQUNqQjtnQkFHUSxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsV0FBVztzQkFBbkIsS0FBSztnQkFFRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUVrQyxRQUFRO3NCQUEvQyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUU3QixXQUFXO3NCQUFuQixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsY0FBYztzQkFBdEIsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBR0ksS0FBSztzQkFBZCxNQUFNO2dCQUVHLElBQUk7c0JBQWIsTUFBTTtnQkFFRyxLQUFLO3NCQUFkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTeW1ib2xDb21wb25lbnQsIFN5bWJvbFJlZ2lzdHJ5LCBhcEVycm9yRmlsbCwgYXBSb3VuZGVkQ2hlY2tGaWxsLCBhcENsb3NlLCBhcFNlYXJjaCB9IGZyb20gJ0BhZ29yYXB1bHNlL3VpLXN5bWJvbCc7XG5cbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBXcml0YWJsZVNpZ25hbCxcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIGZvcndhcmRSZWYsXG4gICAgaW5qZWN0LFxuICAgIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybXNNb2R1bGUsIE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG50eXBlIElucHV0VHlwZSA9XG4gICAgfCAnY29sb3InXG4gICAgfCAnZGF0ZXRpbWUnXG4gICAgfCAnZGF0ZXRpbWUtbG9jYWwnXG4gICAgfCAnZW1haWwnXG4gICAgfCAnaGlkZGVuJ1xuICAgIHwgJ21vbnRoJ1xuICAgIHwgJ251bWJlcidcbiAgICB8ICdwYXNzd29yZCdcbiAgICB8ICdyYW5nZSdcbiAgICB8ICdzZWFyY2gnXG4gICAgfCAndGV4dCdcbiAgICB8ICd0ZWwnXG4gICAgfCAndGltZSdcbiAgICB8ICd1cmwnXG4gICAgfCAnd2Vlayc7XG5cbmV4cG9ydCBjb25zdCBBUF9JTlBVVF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SID0ge1xuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IElucHV0Q29tcG9uZW50KSxcbiAgICBtdWx0aTogdHJ1ZSxcbn07XG5cbmNvbnN0IFNFQVJDSF9TWU1CT0xfSUQgPSAnc2VhcmNoJztcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCB1c2UgbmF0aXZlIGlucHV0IHdpdGggZGlyZWN0aXZlIGFwSW5wdXQsIGFwLWlucHV0LWdyb3VwIGFuZCBhcC1mb3JtLWZpZWxkIGluc3RlYWRcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc2VsZWN0b3I6ICdhcC1pbnB1dCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtGb3Jtc01vZHVsZSwgU3ltYm9sQ29tcG9uZW50XSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgQVBfSU5QVVRfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUixcblxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogSW5wdXRDb21wb25lbnQsXG5cbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICAgIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gICAgcmVhZG9ubHkgc3ltYm9sUmVnaXN0cnk6IFN5bWJvbFJlZ2lzdHJ5ID0gaW5qZWN0KFN5bWJvbFJlZ2lzdHJ5KTtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oU3ltYm9sQ29tcG9uZW50KSBzeW1ib2xzITogUXVlcnlMaXN0PFN5bWJvbENvbXBvbmVudD47XG4gICAgQFZpZXdDaGlsZCgnc3ltYm9sJykgc3ltYm9sV3JhcHBlciE6IEVsZW1lbnRSZWY7XG4gICAgQFZpZXdDaGlsZCgnaW5wdXQnKSBpbnB1dEVsZW1lbnQhOiBFbGVtZW50UmVmO1xuXG4gICAgQElucHV0KCkgYXJpYUxhYmVsITogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgYXJpYUxhYmVsbGVkQnkhOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKSBhcmlhRGVzY3JpYmVkQnkhOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgY2xlYXJhYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSBpbnB1dFR5cGU6IElucHV0VHlwZSA9ICd0ZXh0JztcblxuICAgIEBJbnB1dCgpIGlucHV0SWQ/OiBzdHJpbmc7XG5cbiAgICBASW5wdXQoe1xuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICB9KVxuICAgIG5hbWUhOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKSBsYWJlbD86IHN0cmluZztcblxuICAgIEBJbnB1dCgpIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgcHJlZml4Pzogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgc3VmZml4Pzogc3RyaW5nO1xuXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHJlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSBwbGFjZWhvbGRlcj86IHN0cmluZztcblxuICAgIEBJbnB1dCgpIGVycm9yTWVzc2FnZT86IHN0cmluZztcblxuICAgIEBJbnB1dCgpIHN1Y2Nlc3NNZXNzYWdlPzogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgc3ltYm9sSWQ/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgc3ltYm9sUG9zaXRpb246ICdsZWZ0JyB8ICdyaWdodCcgPSAncmlnaHQnO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlXG4gICAgQE91dHB1dCgpIGZvY3VzID0gbmV3IEV2ZW50RW1pdHRlcjxGb2N1c0V2ZW50PigpO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZVxuICAgIEBPdXRwdXQoKSBibHVyID0gbmV3IEV2ZW50RW1pdHRlcjxGb2N1c0V2ZW50PigpO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZVxuICAgIEBPdXRwdXQoKSBrZXl1cCA9IG5ldyBFdmVudEVtaXR0ZXI8S2V5Ym9hcmRFdmVudD4oKTtcblxuICAgIHByaXZhdGUgX2NvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm4hOiAodmFsdWU6IHN0cmluZyB8IG51bGwpID0+IHZvaWQ7XG5cbiAgICBob3N0RGF0YVRlc3Q6IFdyaXRhYmxlU2lnbmFsPHN0cmluZyB8IHVuZGVmaW5lZD4gPSBzaWduYWw8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gICAgdmFsdWUhOiBzdHJpbmcgfCBudWxsO1xuXG4gICAgb25Ub3VjaGVkITogKCkgPT4gdm9pZDtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5sYWJlbCAmJiAhdGhpcy5pbnB1dElkKSB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcignWW91IGhhdmUgdG8gcHJvdmlkZSBhbiBpbnB1dCBpZCBpZiB5b3Ugd2FudCB0byB1c2UgYSBsYWJlbC4nKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5pbnB1dFR5cGUgPT09ICdzZWFyY2gnKSB7XG4gICAgICAgICAgICB0aGlzLnN5bWJvbElkID0gU0VBUkNIX1NZTUJPTF9JRDtcbiAgICAgICAgICAgIHRoaXMuc3ltYm9sUG9zaXRpb24gPSAnbGVmdCc7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5ob3N0RGF0YVRlc3Quc2V0KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgnZGF0YS10ZXN0JykpO1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtdGVzdCcpO1xuICAgICAgICB0aGlzLnN5bWJvbFJlZ2lzdHJ5LnJlZ2lzdGVyU3ltYm9scyhbYXBFcnJvckZpbGwsIGFwUm91bmRlZENoZWNrRmlsbCwgYXBDbG9zZSwgYXBTZWFyY2hdKTtcbiAgICB9XG5cbiAgICAvLyBTb21ldGltZXMgYXR0cmlidXRlcyBsaWtlIHRoZSBpZCwgb3IgdGhlIGRhdGEtdGVzdCBhcmUgZHluYW1pYyBhbmQgY2FuIGNoYW5nZSBiZXR3ZWVuIHRoZSBjb25zdHJ1Y3RvciBhbmQgdGhlIGluaXRpYWxpemF0aW9uLlxuICAgIC8vIEluIG9yZGVyIHRvIGhhdmUgdGhlIGxhc3QgYXR0cmlidXRlcyB2YWx1ZSB3ZSBjaGVjayBpZiBpdCBjaGFuZ2VzLCBhbmQgaWYgaXQgZG9lcywgd2UgcnVuIGEgbWFyayBmb3IgY2hlY2sgdG8gdXBkYXRlIHRoZSB2aWV3LlxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaG9zdERhdGFUZXN0ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdkYXRhLXRlc3QnKTtcblxuICAgICAgICBpZiAoaG9zdERhdGFUZXN0ICYmIHRoaXMuaG9zdERhdGFUZXN0KCkgIT09IGhvc3REYXRhVGVzdCkge1xuICAgICAgICAgICAgdGhpcy5ob3N0RGF0YVRlc3Quc2V0KGhvc3REYXRhVGVzdCk7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtdGVzdCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFsaWRhdGUoKSB7XG4gICAgICAgIGNvbnN0IGlzTm90VmFsaWQgPSAhdGhpcy52YWx1ZSAmJiB0aGlzLnJlcXVpcmVkO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgaXNOb3RWYWxpZCAmJiB7XG4gICAgICAgICAgICAgICAgaW52YWxpZDogdHJ1ZSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBvblZhbHVlQ2hhbmdlKCkge1xuICAgICAgICBpZiAodGhpcy5vblRvdWNoZWQpIHtcbiAgICAgICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9jb250cm9sVmFsdWVBY2Nlc3NvckNoYW5nZUZuKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY29udHJvbFZhbHVlQWNjZXNzb3JDaGFuZ2VGbih0aGlzLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyB8IG51bGwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogc3RyaW5nIHwgbnVsbCkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jb250cm9sVmFsdWVBY2Nlc3NvckNoYW5nZUZuID0gZm47XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgZm9jdXNJbnB1dCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cblxuICAgIG9uQmx1ckhhbmRsZSgkZXZlbnQ6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ibHVyLmVtaXQoJGV2ZW50KTtcbiAgICB9XG5cbiAgICBvbkZvY3VzSGFuZGxlKCRldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvY3VzLmVtaXQoJGV2ZW50KTtcbiAgICB9XG5cbiAgICBvbktleXVwKCRldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmtleXVwLmVtaXQoJGV2ZW50KTtcbiAgICB9XG5cbiAgICBvbkNsZWFyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLndyaXRlVmFsdWUobnVsbCk7XG4gICAgfVxufVxuIiwiQGlmIChsYWJlbCkge1xuICAgIDxsYWJlbCBbZm9yXT1cImlucHV0SWRcIj5cbiAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICB7eyBsYWJlbCB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIEBpZiAoZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgICB7eyBkZXNjcmlwdGlvbiB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICB9XG4gICAgPC9sYWJlbD5cbn1cblxuPGRpdlxuICAgIHRhYmluZGV4PVwiMFwiXG4gICAgY2xhc3M9XCJpbnB1dC13cmFwcGVyXCJcbiAgICBbY2xhc3MuaW52ZXJzZV09XCJzeW1ib2xQb3NpdGlvbiA9PT0gJ2xlZnQnXCJcbiAgICBbY2xhc3Mud2l0aC1pY29uXT1cInN5bWJvbElkXCJcbiAgICBbY2xhc3Mud2l0aC1wcmVmaXhdPVwicHJlZml4XCJcbiAgICBbY2xhc3Mud2l0aC1zdWZmaXhdPVwic3VmZml4XCJcbiAgICBbY2xhc3Mud2l0aC1lcnJvcl09XCJlcnJvck1lc3NhZ2VcIlxuICAgIFtjbGFzcy53aXRoLXN1Y2Nlc3NdPVwic3VjY2Vzc01lc3NhZ2VcIlxuICAgIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWwgfHwgbnVsbFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZEJ5IHx8IG51bGxcIlxuICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiYXJpYURlc2NyaWJlZEJ5IHx8IG51bGxcIlxuICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiZGlzYWJsZWQ/LnRvU3RyaW5nKClcIlxuICAgIChjbGljayk9XCJmb2N1c0lucHV0KClcIlxuICAgIChrZXlkb3duLmVudGVyKT1cImZvY3VzSW5wdXQoKVwiPlxuICAgIEBpZiAocHJlZml4KSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwcmVmaXhcIj5cbiAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgIHt7IHByZWZpeCB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICB9XG4gICAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAjaW5wdXRcbiAgICAgICAgICAgIFt0eXBlXT1cImlucHV0VHlwZVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgIFtpZF09XCJpbnB1dElkID8/ICcnXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtdGVzdF09XCJob3N0RGF0YVRlc3QoKSA/IGhvc3REYXRhVGVzdCgpIDogbmFtZVwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICAgICAgICAgIChibHVyKT1cIm9uQmx1ckhhbmRsZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIChmb2N1cyk9XCJvbkZvY3VzSGFuZGxlKCRldmVudClcIlxuICAgICAgICAgICAgKGtleXVwKT1cIm9uS2V5dXAoJGV2ZW50KVwiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKClcIiAvPlxuICAgICAgICBAaWYgKGNsZWFyYWJsZSkge1xuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2xlYXItYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25DbGVhcigpXCI+XG4gICAgICAgICAgICAgICAgPGFwLXN5bWJvbCBzeW1ib2xJZD1cImNsb3NlXCIgLz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgPC9kaXY+XG4gICAgQGlmIChzdWZmaXgpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInN1ZmZpeFwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAge3sgc3VmZml4IH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgIH1cbiAgICBAaWYgKHN5bWJvbElkKSB7XG4gICAgICAgIDxhcC1zeW1ib2xcbiAgICAgICAgICAgIHNpemU9XCJzbVwiXG4gICAgICAgICAgICBbc3ltYm9sSWRdPVwic3ltYm9sSWRcIiAvPlxuICAgIH1cbjwvZGl2PlxuXG5AaWYgKGVycm9yTWVzc2FnZSkge1xuICAgIDxkaXYgY2xhc3M9XCJmb3JtLW1lc3NhZ2UgZXJyb3JcIj5cbiAgICAgICAgPGFwLXN5bWJvbFxuICAgICAgICAgICAgc3ltYm9sSWQ9XCJlcnJvcl9maWxsXCJcbiAgICAgICAgICAgIHNpemU9XCJzbVwiIC8+XG4gICAgICAgIDxzcGFuPlxuICAgICAgICAgICAge3sgZXJyb3JNZXNzYWdlIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbn1cblxuQGlmIChzdWNjZXNzTWVzc2FnZSkge1xuICAgIDxkaXYgY2xhc3M9XCJmb3JtLW1lc3NhZ2Ugc3VjY2Vzc1wiPlxuICAgICAgICA8YXAtc3ltYm9sXG4gICAgICAgICAgICBzeW1ib2xJZD1cInJvdW5kZWQtY2hlY2tfZmlsbFwiXG4gICAgICAgICAgICBzaXplPVwic21cIiAvPlxuICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgIHt7IHN1Y2Nlc3NNZXNzYWdlIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbn1cbiJdfQ==
189
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL2xlZ2FjeS9pbnB1dC9zcmMvaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL2xlZ2FjeS9pbnB1dC9zcmMvaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU1SCxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLFNBQVMsRUFDVCxpQkFBaUIsRUFFakIsZ0JBQWdCLEVBQ2hCLFVBQVUsRUFDVixNQUFNLEVBQ04sTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsV0FBVyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFtQnJHLE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUFHO0lBQzNDLE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxjQUFjLENBQUM7SUFDN0MsS0FBSyxFQUFFLElBQUk7Q0FDZCxDQUFDO0FBRUYsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLENBQUM7QUFFbEM7O0dBRUc7QUFxQkgsTUFBTSxPQUFPLGNBQWM7SUFDZCxVQUFVLEdBQWUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzVDLGNBQWMsR0FBbUIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRS9CLE9BQU8sQ0FBOEI7SUFDbEQsYUFBYSxDQUFjO0lBQzVCLFlBQVks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QyxVQUFVLGNBRVIsSUFBSSxXQUNQLENBQUMsV0FBVyxFQUFFLGVBQWUsQ0FBQyxhQUM1Qjt3QkFDUCwrQkFBK0I7d0JBRS9COzRCQUNJLE9BQU8sRUFBRSxhQUFhOzRCQUV0QixXQUFXLGdCQUFnQjs0QkFFM0IsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7cUJBQ0osaUJBRWMsaUJBQWlCLENBQUMsSUFBSTs4QkFNSCxPQUFPO3NCQUF4QyxlQUFlO3VCQUFDLGVBQWU7Z0JBQ1gsYUFBYTtzQkFBakMsU0FBUzt1QkFBQyxRQUFRO2dCQUNDLFlBQVk7c0JBQS9CLFNBQVM7dUJBQUMsT0FBTztnQkFFVCxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUcsZUFBZTtzQkFBdkIsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBS04sSUFBSTtzQkFISCxLQUFLO3VCQUFDO3dCQUNILFFBQVEsRUFBRSxJQUFJO3FCQUNqQjtnQkFHUSxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsV0FBVztzQkFBbkIsS0FBSztnQkFFRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUVrQyxRQUFRO3NCQUEvQyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUU3QixXQUFXO3NCQUFuQixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsY0FBYztzQkFBdEIsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBR0ksS0FBSztzQkFBZCxNQUFNO2dCQUVHLElBQUk7c0JBQWIsTUFBTTtnQkFFRyxLQUFLO3NCQUFkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTeW1ib2xDb21wb25lbnQsIFN5bWJvbFJlZ2lzdHJ5LCBhcEVycm9yRmlsbCwgYXBSb3VuZGVkQ2hlY2tGaWxsLCBhcENsb3NlLCBhcFNlYXJjaCB9IGZyb20gJ0BhZ29yYXB1bHNlL3VpLXN5bWJvbCc7XG5cbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBXcml0YWJsZVNpZ25hbCxcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIGZvcndhcmRSZWYsXG4gICAgaW5qZWN0LFxuICAgIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybXNNb2R1bGUsIE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG50eXBlIElucHV0VHlwZSA9XG4gICAgfCAnY29sb3InXG4gICAgfCAnZGF0ZXRpbWUnXG4gICAgfCAnZGF0ZXRpbWUtbG9jYWwnXG4gICAgfCAnZW1haWwnXG4gICAgfCAnaGlkZGVuJ1xuICAgIHwgJ21vbnRoJ1xuICAgIHwgJ251bWJlcidcbiAgICB8ICdwYXNzd29yZCdcbiAgICB8ICdyYW5nZSdcbiAgICB8ICdzZWFyY2gnXG4gICAgfCAndGV4dCdcbiAgICB8ICd0ZWwnXG4gICAgfCAndGltZSdcbiAgICB8ICd1cmwnXG4gICAgfCAnd2Vlayc7XG5cbmV4cG9ydCBjb25zdCBBUF9JTlBVVF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SID0ge1xuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IElucHV0Q29tcG9uZW50KSxcbiAgICBtdWx0aTogdHJ1ZSxcbn07XG5cbmNvbnN0IFNFQVJDSF9TWU1CT0xfSUQgPSAnc2VhcmNoJztcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCB1c2UgbmF0aXZlIGlucHV0IHdpdGggZGlyZWN0aXZlIGFwSW5wdXQsIGFwLWlucHV0LWdyb3VwIGFuZCBhcC1mb3JtLWZpZWxkIGluc3RlYWRcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc2VsZWN0b3I6ICdhcC1pbnB1dCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtGb3Jtc01vZHVsZSwgU3ltYm9sQ29tcG9uZW50XSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgQVBfSU5QVVRfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUixcblxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogSW5wdXRDb21wb25lbnQsXG5cbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICAgIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gICAgcmVhZG9ubHkgc3ltYm9sUmVnaXN0cnk6IFN5bWJvbFJlZ2lzdHJ5ID0gaW5qZWN0KFN5bWJvbFJlZ2lzdHJ5KTtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oU3ltYm9sQ29tcG9uZW50KSBzeW1ib2xzITogUXVlcnlMaXN0PFN5bWJvbENvbXBvbmVudD47XG4gICAgQFZpZXdDaGlsZCgnc3ltYm9sJykgc3ltYm9sV3JhcHBlciE6IEVsZW1lbnRSZWY7XG4gICAgQFZpZXdDaGlsZCgnaW5wdXQnKSBpbnB1dEVsZW1lbnQhOiBFbGVtZW50UmVmO1xuXG4gICAgQElucHV0KCkgYXJpYUxhYmVsITogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgYXJpYUxhYmVsbGVkQnkhOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKSBhcmlhRGVzY3JpYmVkQnkhOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgY2xlYXJhYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSBpbnB1dFR5cGU6IElucHV0VHlwZSA9ICd0ZXh0JztcblxuICAgIEBJbnB1dCgpIGlucHV0SWQ/OiBzdHJpbmc7XG5cbiAgICBASW5wdXQoe1xuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICB9KVxuICAgIG5hbWUhOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKSBsYWJlbD86IHN0cmluZztcblxuICAgIEBJbnB1dCgpIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgcHJlZml4Pzogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgc3VmZml4Pzogc3RyaW5nO1xuXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHJlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSBwbGFjZWhvbGRlcj86IHN0cmluZztcblxuICAgIEBJbnB1dCgpIGVycm9yTWVzc2FnZT86IHN0cmluZztcblxuICAgIEBJbnB1dCgpIHN1Y2Nlc3NNZXNzYWdlPzogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgc3ltYm9sSWQ/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgc3ltYm9sUG9zaXRpb246ICdsZWZ0JyB8ICdyaWdodCcgPSAncmlnaHQnO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlXG4gICAgQE91dHB1dCgpIGZvY3VzID0gbmV3IEV2ZW50RW1pdHRlcjxGb2N1c0V2ZW50PigpO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZVxuICAgIEBPdXRwdXQoKSBibHVyID0gbmV3IEV2ZW50RW1pdHRlcjxGb2N1c0V2ZW50PigpO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZVxuICAgIEBPdXRwdXQoKSBrZXl1cCA9IG5ldyBFdmVudEVtaXR0ZXI8S2V5Ym9hcmRFdmVudD4oKTtcblxuICAgIHByaXZhdGUgX2NvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm4hOiAodmFsdWU6IHN0cmluZyB8IG51bGwpID0+IHZvaWQ7XG5cbiAgICBob3N0RGF0YVRlc3Q6IFdyaXRhYmxlU2lnbmFsPHN0cmluZyB8IHVuZGVmaW5lZD4gPSBzaWduYWw8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gICAgdmFsdWUhOiBzdHJpbmcgfCBudWxsO1xuXG4gICAgb25Ub3VjaGVkITogKCkgPT4gdm9pZDtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5sYWJlbCAmJiAhdGhpcy5pbnB1dElkKSB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcignWW91IGhhdmUgdG8gcHJvdmlkZSBhbiBpbnB1dCBpZCBpZiB5b3Ugd2FudCB0byB1c2UgYSBsYWJlbC4nKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5pbnB1dFR5cGUgPT09ICdzZWFyY2gnKSB7XG4gICAgICAgICAgICB0aGlzLnN5bWJvbElkID0gU0VBUkNIX1NZTUJPTF9JRDtcbiAgICAgICAgICAgIHRoaXMuc3ltYm9sUG9zaXRpb24gPSAnbGVmdCc7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5ob3N0RGF0YVRlc3Quc2V0KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgnZGF0YS10ZXN0JykpO1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtdGVzdCcpO1xuICAgICAgICB0aGlzLnN5bWJvbFJlZ2lzdHJ5LnJlZ2lzdGVyU3ltYm9scyhbYXBFcnJvckZpbGwsIGFwUm91bmRlZENoZWNrRmlsbCwgYXBDbG9zZSwgYXBTZWFyY2hdKTtcbiAgICB9XG5cbiAgICAvLyBTb21ldGltZXMgYXR0cmlidXRlcyBsaWtlIHRoZSBpZCwgb3IgdGhlIGRhdGEtdGVzdCBhcmUgZHluYW1pYyBhbmQgY2FuIGNoYW5nZSBiZXR3ZWVuIHRoZSBjb25zdHJ1Y3RvciBhbmQgdGhlIGluaXRpYWxpemF0aW9uLlxuICAgIC8vIEluIG9yZGVyIHRvIGhhdmUgdGhlIGxhc3QgYXR0cmlidXRlcyB2YWx1ZSB3ZSBjaGVjayBpZiBpdCBjaGFuZ2VzLCBhbmQgaWYgaXQgZG9lcywgd2UgcnVuIGEgbWFyayBmb3IgY2hlY2sgdG8gdXBkYXRlIHRoZSB2aWV3LlxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaG9zdERhdGFUZXN0ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdkYXRhLXRlc3QnKTtcblxuICAgICAgICBpZiAoaG9zdERhdGFUZXN0ICYmIHRoaXMuaG9zdERhdGFUZXN0KCkgIT09IGhvc3REYXRhVGVzdCkge1xuICAgICAgICAgICAgdGhpcy5ob3N0RGF0YVRlc3Quc2V0KGhvc3REYXRhVGVzdCk7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtdGVzdCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFsaWRhdGUoKSB7XG4gICAgICAgIGNvbnN0IGlzTm90VmFsaWQgPSAhdGhpcy52YWx1ZSAmJiB0aGlzLnJlcXVpcmVkO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgaXNOb3RWYWxpZCAmJiB7XG4gICAgICAgICAgICAgICAgaW52YWxpZDogdHJ1ZSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBvblZhbHVlQ2hhbmdlKCkge1xuICAgICAgICBpZiAodGhpcy5vblRvdWNoZWQpIHtcbiAgICAgICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9jb250cm9sVmFsdWVBY2Nlc3NvckNoYW5nZUZuKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY29udHJvbFZhbHVlQWNjZXNzb3JDaGFuZ2VGbih0aGlzLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyB8IG51bGwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogc3RyaW5nIHwgbnVsbCkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jb250cm9sVmFsdWVBY2Nlc3NvckNoYW5nZUZuID0gZm47XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgZm9jdXNJbnB1dCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cblxuICAgIG9uQmx1ckhhbmRsZSgkZXZlbnQ6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ibHVyLmVtaXQoJGV2ZW50KTtcbiAgICB9XG5cbiAgICBvbkZvY3VzSGFuZGxlKCRldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvY3VzLmVtaXQoJGV2ZW50KTtcbiAgICB9XG5cbiAgICBvbktleXVwKCRldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmtleXVwLmVtaXQoJGV2ZW50KTtcbiAgICB9XG5cbiAgICBvbkNsZWFyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLndyaXRlVmFsdWUobnVsbCk7XG4gICAgfVxufVxuIiwiQGlmIChsYWJlbCkge1xuICAgIDxsYWJlbCBbZm9yXT1cImlucHV0SWRcIj5cbiAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICB7eyBsYWJlbCB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIEBpZiAoZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgICB7eyBkZXNjcmlwdGlvbiB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICB9XG4gICAgPC9sYWJlbD5cbn1cblxuPGRpdlxuICAgIHRhYmluZGV4PVwiMFwiXG4gICAgY2xhc3M9XCJpbnB1dC13cmFwcGVyXCJcbiAgICBbY2xhc3MuaW52ZXJzZV09XCJzeW1ib2xQb3NpdGlvbiA9PT0gJ2xlZnQnXCJcbiAgICBbY2xhc3Mud2l0aC1pY29uXT1cInN5bWJvbElkXCJcbiAgICBbY2xhc3Mud2l0aC1wcmVmaXhdPVwicHJlZml4XCJcbiAgICBbY2xhc3Mud2l0aC1zdWZmaXhdPVwic3VmZml4XCJcbiAgICBbY2xhc3Mud2l0aC1lcnJvcl09XCJlcnJvck1lc3NhZ2VcIlxuICAgIFtjbGFzcy53aXRoLXN1Y2Nlc3NdPVwic3VjY2Vzc01lc3NhZ2VcIlxuICAgIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWwgfHwgbnVsbFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZEJ5IHx8IG51bGxcIlxuICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiYXJpYURlc2NyaWJlZEJ5IHx8IG51bGxcIlxuICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiZGlzYWJsZWQ/LnRvU3RyaW5nKClcIlxuICAgIChjbGljayk9XCJmb2N1c0lucHV0KClcIlxuICAgIChrZXlkb3duLmVudGVyKT1cImZvY3VzSW5wdXQoKVwiPlxuICAgIEBpZiAocHJlZml4KSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwcmVmaXhcIj5cbiAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgIHt7IHByZWZpeCB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICB9XG4gICAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAjaW5wdXRcbiAgICAgICAgICAgIFt0eXBlXT1cImlucHV0VHlwZVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgIFtpZF09XCJpbnB1dElkID8/ICcnXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtdGVzdF09XCJob3N0RGF0YVRlc3QoKSA/IGhvc3REYXRhVGVzdCgpIDogbmFtZVwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICAgICAgICAgIChibHVyKT1cIm9uQmx1ckhhbmRsZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIChmb2N1cyk9XCJvbkZvY3VzSGFuZGxlKCRldmVudClcIlxuICAgICAgICAgICAgKGtleXVwKT1cIm9uS2V5dXAoJGV2ZW50KVwiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKClcIiAvPlxuICAgICAgICBAaWYgKGNsZWFyYWJsZSkge1xuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2xlYXItYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25DbGVhcigpXCI+XG4gICAgICAgICAgICAgICAgPGFwLXN5bWJvbCBzeW1ib2xJZD1cImNsb3NlXCIgLz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgPC9kaXY+XG4gICAgQGlmIChzdWZmaXgpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInN1ZmZpeFwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAge3sgc3VmZml4IH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgIH1cbiAgICBAaWYgKHN5bWJvbElkKSB7XG4gICAgICAgIDxhcC1zeW1ib2xcbiAgICAgICAgICAgIHNpemU9XCJzbVwiXG4gICAgICAgICAgICBbc3ltYm9sSWRdPVwic3ltYm9sSWRcIiAvPlxuICAgIH1cbjwvZGl2PlxuXG5AaWYgKGVycm9yTWVzc2FnZSkge1xuICAgIDxkaXYgY2xhc3M9XCJmb3JtLW1lc3NhZ2UgZXJyb3JcIj5cbiAgICAgICAgPGFwLXN5bWJvbFxuICAgICAgICAgICAgc3ltYm9sSWQ9XCJlcnJvcl9maWxsXCJcbiAgICAgICAgICAgIHNpemU9XCJzbVwiIC8+XG4gICAgICAgIDxzcGFuPlxuICAgICAgICAgICAge3sgZXJyb3JNZXNzYWdlIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbn1cblxuQGlmIChzdWNjZXNzTWVzc2FnZSkge1xuICAgIDxkaXYgY2xhc3M9XCJmb3JtLW1lc3NhZ2Ugc3VjY2Vzc1wiPlxuICAgICAgICA8YXAtc3ltYm9sXG4gICAgICAgICAgICBzeW1ib2xJZD1cInJvdW5kZWQtY2hlY2tfZmlsbFwiXG4gICAgICAgICAgICBzaXplPVwic21cIiAvPlxuICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgIHt7IHN1Y2Nlc3NNZXNzYWdlIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbn1cbiJdfQ==