@seniorsistemas/data-seniorx-core 2.1.0 → 2.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 (97) hide show
  1. package/core/constants/chips.const.d.ts +1 -0
  2. package/core/constants/combobox.const.d.ts +1 -1
  3. package/core/constants/fileupload.const.d.ts +9 -0
  4. package/core/constants/icon-picker.const.d.ts +1 -0
  5. package/core/constants/picklist.const.d.ts +1 -0
  6. package/core/constants/table.const.d.ts +43 -0
  7. package/core/types/button.type.d.ts +18 -2
  8. package/core/types/fileupload.type.d.ts +17 -0
  9. package/core/types/filters.type.d.ts +4 -0
  10. package/core/types/table-column.type.d.ts +31 -0
  11. package/core/types/table-options.type.d.ts +90 -0
  12. package/core/types/table-shared.type.d.ts +13 -0
  13. package/core/types/table-visual.type.d.ts +23 -0
  14. package/core/types/table.type.d.ts +4 -113
  15. package/core/utils/layout.util.d.ts +4 -0
  16. package/esm2022/core/constants/chips.const.mjs +2 -1
  17. package/esm2022/core/constants/combobox.const.mjs +2 -2
  18. package/esm2022/core/constants/fileupload.const.mjs +10 -0
  19. package/esm2022/core/constants/icon-picker.const.mjs +76 -1
  20. package/esm2022/core/constants/picklist.const.mjs +2 -1
  21. package/esm2022/core/constants/table.const.mjs +53 -6
  22. package/esm2022/core/types/button.type.mjs +1 -1
  23. package/esm2022/core/types/fileupload.type.mjs +2 -0
  24. package/esm2022/core/types/filters.type.mjs +1 -1
  25. package/esm2022/core/types/table-column.type.mjs +2 -0
  26. package/esm2022/core/types/table-options.type.mjs +2 -0
  27. package/esm2022/core/types/table-shared.type.mjs +2 -0
  28. package/esm2022/core/types/table-visual.type.mjs +2 -0
  29. package/esm2022/core/types/table.type.mjs +1 -1
  30. package/esm2022/core/utils/combobox.util.mjs +2 -2
  31. package/esm2022/core/utils/layout.util.mjs +21 -5
  32. package/esm2022/features/accordion/accordion-item.component.mjs +1 -1
  33. package/esm2022/features/badge/badge.component.mjs +1 -1
  34. package/esm2022/features/button/button.component.mjs +76 -11
  35. package/esm2022/features/button/components/button-menu.component.mjs +81 -0
  36. package/esm2022/features/card-list/card/card.component.mjs +3 -3
  37. package/esm2022/features/checkbox/checkbox.component.mjs +3 -3
  38. package/esm2022/features/chips/chips.component.mjs +8 -5
  39. package/esm2022/features/color-picker/color-picker.component.mjs +1 -1
  40. package/esm2022/features/combobox/combobox.component.mjs +17 -4
  41. package/esm2022/features/fileupload/fileupload.component.mjs +311 -0
  42. package/esm2022/features/filters/filters.component.mjs +3 -3
  43. package/esm2022/features/hyperlink/hyperlink.component.mjs +3 -3
  44. package/esm2022/features/icon-picker/icon-picker.component.mjs +34 -7
  45. package/esm2022/features/info-sign/info-sign.component.mjs +1 -1
  46. package/esm2022/features/mask/mask.component.mjs +1 -1
  47. package/esm2022/features/modal/modal.component.mjs +1 -1
  48. package/esm2022/features/number-input/number-input.component.mjs +1 -1
  49. package/esm2022/features/paginator/paginator.component.mjs +3 -3
  50. package/esm2022/features/picklist/picklist.component.mjs +33 -6
  51. package/esm2022/features/row-card-list/row-card/row-card.component.mjs +3 -3
  52. package/esm2022/features/searchbox/searchbox.component.mjs +3 -3
  53. package/esm2022/features/stats-card/stats-card.component.mjs +1 -1
  54. package/esm2022/features/switch/switch.component.mjs +3 -2
  55. package/esm2022/features/table/components/table-actions-menu.component.mjs +86 -0
  56. package/esm2022/features/table/components/table-cell-content.component.mjs +124 -0
  57. package/esm2022/features/table/components/table-sort-indicator.component.mjs +65 -0
  58. package/esm2022/features/table/table.component.mjs +116 -319
  59. package/esm2022/features/table/utils/table-config.util.mjs +35 -0
  60. package/esm2022/features/table/utils/table-data.util.mjs +96 -0
  61. package/esm2022/features/table/utils/table-layout.util.mjs +25 -0
  62. package/esm2022/features/table/utils/table-truncate.pipe.mjs +19 -0
  63. package/esm2022/features/table/utils/table-visual.util.mjs +221 -0
  64. package/esm2022/features/textarea/textarea.component.mjs +1 -1
  65. package/esm2022/features/textbox/textbox.component.mjs +1 -1
  66. package/esm2022/features/tooltip/tooltip.component.mjs +12 -3
  67. package/esm2022/features/visual-sql-editor/visual-sql-editor.component.mjs +2 -2
  68. package/esm2022/locales/en.json +194 -0
  69. package/esm2022/locales/es-CO.json +187 -1
  70. package/esm2022/locales/pt.json +194 -0
  71. package/esm2022/providers/features.provider.mjs +3 -1
  72. package/esm2022/public-api.mjs +3 -1
  73. package/features/button/button.component.d.ts +14 -7
  74. package/features/button/components/button-menu.component.d.ts +25 -0
  75. package/features/chips/chips.component.d.ts +1 -0
  76. package/features/combobox/combobox.component.d.ts +4 -1
  77. package/features/fileupload/fileupload.component.d.ts +66 -0
  78. package/features/icon-picker/icon-picker.component.d.ts +3 -0
  79. package/features/modal/modal.component.d.ts +1 -1
  80. package/features/picklist/picklist.component.d.ts +6 -1
  81. package/features/table/components/table-actions-menu.component.d.ts +12 -0
  82. package/features/table/components/table-cell-content.component.d.ts +41 -0
  83. package/features/table/components/table-sort-indicator.component.d.ts +11 -0
  84. package/features/table/table.component.d.ts +28 -44
  85. package/features/table/utils/table-config.util.d.ts +3 -0
  86. package/features/table/utils/table-data.util.d.ts +10 -0
  87. package/features/table/utils/table-layout.util.d.ts +4 -0
  88. package/features/table/utils/table-truncate.pipe.d.ts +12 -0
  89. package/features/table/utils/table-visual.util.d.ts +21 -0
  90. package/features/tooltip/tooltip.component.d.ts +3 -1
  91. package/fesm2022/seniorsistemas-data-seniorx-core.mjs +3525 -1848
  92. package/fesm2022/seniorsistemas-data-seniorx-core.mjs.map +1 -1
  93. package/package.json +1 -1
  94. package/public-api.d.ts +5 -2
  95. package/src/locales/en.json +194 -0
  96. package/src/locales/es-CO.json +187 -1
  97. package/src/locales/pt.json +194 -0
@@ -241,4 +241,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
241
241
  type: HostListener,
242
242
  args: ['document:keydown', ['$event']]
243
243
  }] } });
244
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9tb2RhbC9tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL21vZGFsL21vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakUsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHdEQsT0FBTyxFQUNMLDRCQUE0QixFQUM1QixzQkFBc0IsRUFDdEIsNEJBQTRCLEVBQzVCLG9CQUFvQixFQUNwQixvQkFBb0IsRUFDcEIsdUJBQXVCLEVBQ3ZCLHlCQUF5QixFQUN6QixzQkFBc0IsRUFDdEIsd0JBQXdCLEVBQ3hCLHVCQUF1QixFQUN2QixtQkFBbUIsRUFDbkIscUJBQXFCLEVBQ3JCLDBCQUEwQixFQUMxQiw0QkFBNEIsRUFDNUIsZ0JBQWdCLEVBQ2hCLGFBQWEsRUFDZCxNQUFNLGtDQUFrQyxDQUFDO0FBRzFDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN2RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7QUFXN0QsTUFBTSxPQUFPLGNBQWM7SUFDQyxXQUFXLENBQThCO0lBQzdDLFVBQVUsQ0FBYTtJQUVwQyxhQUFhLEdBQWtCLDRCQUE0QixDQUFDO0lBQzVELE1BQU0sR0FBRyxvQkFBb0IsQ0FBQztJQUM5QixNQUFNLEdBQWMsb0JBQW9CLENBQUM7SUFDekMsV0FBVyxHQUFHLHlCQUF5QixDQUFDO0lBQ3hDLFFBQVEsR0FBRyxzQkFBc0IsQ0FBQztJQUNsQyxTQUFTLEdBQUcsdUJBQXVCLENBQUM7SUFDcEMsVUFBVSxHQUFHLHdCQUF3QixDQUFDO0lBQ3RDLEtBQUssR0FBYyxtQkFBbUIsQ0FBQztJQUN2QyxNQUFNLEdBQUcscUJBQXFCLENBQUM7SUFDL0IsUUFBUSxHQUFHLHNCQUFzQixDQUFDO0lBQ2xDLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFDekIsSUFBNEMsWUFBWSxDQUFDLEtBQWM7UUFDckUsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN4QixjQUFjLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRVMsTUFBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFDbEMsYUFBYSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7SUFFN0MsT0FBTyxHQUFHLGdCQUFnQixDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDcEQsUUFBUSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sU0FBUyxDQUFDO0lBQ3BDLFNBQVMsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLFVBQVUsQ0FBQztJQUUvQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBRUgsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM1QixHQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDekMsc0JBQXNCLEdBQXVCLElBQUksQ0FBQztJQUUxRCxJQUFhLE9BQU8sQ0FBQyxLQUFjO1FBQ2pDLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUM1QixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLFlBQVksV0FBVztnQkFDOUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYTtnQkFDN0IsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNYLENBQUM7UUFFRCxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQzFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU3QixjQUFjLENBQUMsR0FBRyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUV0QixJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUNWLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sWUFBWSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1lBQzVDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBQzVCLGNBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTztZQUNMLEdBQUcsa0JBQWtCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDMUMsR0FBRyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUM3QyxDQUFDO0lBQ0osQ0FBQztJQUVELGlCQUFpQixDQUFDLFFBQWtDO1FBQ2xELElBQUksUUFBUSxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQzdCLE9BQU8sV0FBVyxDQUFDO1FBQ3JCLENBQUM7UUFFRCxJQUFJLFFBQVEsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUMxQixPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xCLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdCLGNBQWMsQ0FBQyxHQUFHLEVBQUU7WUFDbEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3RCLFlBQVksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdEIsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNyQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3hCLGNBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsbUJBQW1CLENBQUMsTUFBa0I7UUFDcEMsTUFBTSxFQUFFLENBQUM7SUFDWCxDQUFDO0lBR0QsaUJBQWlCLENBQUMsS0FBb0I7UUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNsQixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ25DLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUV2QixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDbEIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2YsQ0FBQztZQUVELE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLGFBQWEsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsQ0FBQztJQUNILENBQUM7SUFFTyxXQUFXO1FBQ2pCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBRXZDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE9BQU87UUFDVCxDQUFDO1FBRUQsb0JBQW9CLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxPQUFnQjtRQUN2QyxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7WUFDOUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyw0QkFBNEIsRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO1lBQy9GLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLDRCQUE0QixFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQzlGLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFTyxTQUFTLENBQUMsS0FBb0I7UUFDcEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFFMUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2YsT0FBTztRQUNULENBQUM7UUFDRCxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBbUMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN2RyxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxhQUFhO2VBQ2hDLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxPQUFPLENBQUMsWUFBWSxDQUF3QjtlQUMxRixJQUFJLENBQUM7SUFDWixDQUFDO0lBRU8sY0FBYztRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUM5QyxPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3hCLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFFN0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQzFCLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQy9CLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDeEIsY0FBYyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQzNDLENBQUM7SUFDSCxDQUFDO0lBRU8sc0JBQXNCO1FBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxlQUFlLENBQ3pDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUNsQixTQUFTLEVBQ1QsU0FBUyxFQUNULFNBQVMsRUFDVCxJQUFJLENBQUMsUUFBUSxDQUNkLENBQUM7UUFDSixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDL0IsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNqQyxDQUFDO0lBQ0gsQ0FBQztJQUVPLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsYUFBYSxHQUFHLDRCQUE0QixDQUFDO0lBQzdDLG9CQUFvQixHQUFHLEVBQUUsQ0FBQztJQUMxQixlQUFlLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLGdCQUFnQixDQUFtQjt3R0EzT2hDLGNBQWM7NEZBQWQsY0FBYyxnV0FlTCxnQkFBZ0IsbVVBYnpCLFNBQVMsZ0RDekR0QixzOEdBK0ZBLDRrUERoRFksU0FBUyxnRkFBRSxZQUFZLHdYQUFFLGVBQWUsNEZBQUUsZUFBZTs7NEZBUXhELGNBQWM7a0JBVDFCLFNBQVM7OEJBQ0MsQ0FBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxlQUFlLENBQUMsY0FDeEQsSUFBSSxZQUNOLFdBQVcsbUJBR0osdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsUUFBUTs4QkFHZixXQUFXO3NCQUFwQyxTQUFTO3VCQUFDLGFBQWE7Z0JBQ0YsVUFBVTtzQkFBL0IsU0FBUzt1QkFBQyxTQUFTO2dCQUVYLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNzQyxZQUFZO3NCQUF2RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQVU1QixNQUFNO3NCQUFmLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFZTSxPQUFPO3NCQUFuQixLQUFLO2dCQThGTixpQkFBaUI7c0JBRGhCLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtQb3J0YWwsIERvbVBvcnRhbE91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgaW5qZWN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBCdXR0b25Qcmlvcml0eSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvYnV0dG9uJztcblxuaW1wb3J0IHtcbiAgREVGQVVMVF9NT0RBTF9BUFBFTkRfVE9fQk9EWSxcbiAgREVGQVVMVF9NT0RBTF9DTE9TQUJMRSxcbiAgREVGQVVMVF9NT0RBTF9GT09URVJfQlVUVE9OUyxcbiAgREVGQVVMVF9NT0RBTF9IRUFERVIsXG4gIERFRkFVTFRfTU9EQUxfSEVJR0hULFxuICBERUZBVUxUX01PREFMX0lEX1BSRUZJWCxcbiAgREVGQVVMVF9NT0RBTF9NQVhJTUlaQUJMRSxcbiAgREVGQVVMVF9NT0RBTF9NQVhJTUlaRSxcbiAgREVGQVVMVF9NT0RBTF9SRVNQT05TSVZFLFxuICBERUZBVUxUX01PREFMX1JFU0laQUJMRSxcbiAgREVGQVVMVF9NT0RBTF9XSURUSCxcbiAgREVGQVVMVF9NT0RBTF9aX0lOREVYLFxuICBNT0RBTF9CT0RZX09WRVJGTE9XX0hJRERFTixcbiAgTU9EQUxfQk9EWV9PVkVSRkxPV19QUk9QRVJUWSxcbiAgTU9EQUxfRVNDQVBFX0tFWSxcbiAgTU9EQUxfVEFCX0tFWVxufSBmcm9tICcuLi8uLi9jb3JlL2NvbnN0YW50cy9tb2RhbC5jb25zdCc7XG5pbXBvcnQgdHlwZSB7IE1vZGFsQnV0dG9uIH0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy9tb2RhbC50eXBlJztcbmltcG9ydCB0eXBlIHsgRGltZW5zaW9uIH0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy9zZW1hbnRpY3MudHlwZSc7XG5pbXBvcnQgeyBnZXREaW1lbnNpb25TdHlsZXMgfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL3NlbWFudGljcy50eXBlJztcbmltcG9ydCB7IGZvY3VzRmlyc3REZXNjZW5kYW50LCByZXN0b3JlRm9jdXMsIHRyYXBGb2N1c0luQ29udGFpbmVyIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9mb2N1cy51dGlsJztcbmltcG9ydCB7IG5leHRTZXF1ZW50aWFsSWQgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL2lkLnV0aWwnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgaW1wb3J0czogW0Nka1BvcnRhbCwgQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIEJ1dHRvbkNvbXBvbmVudF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnc2RjLW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL21vZGFsLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkXG59KVxuZXhwb3J0IGNsYXNzIE1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgQFZpZXdDaGlsZCgnZGlhbG9nUGFuZWwnKSBkaWFsb2dQYW5lbD86IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKENka1BvcnRhbCkgYm9keVBvcnRhbD86IENka1BvcnRhbDtcblxuICBASW5wdXQoKSBmb290ZXJCdXR0b25zOiBNb2RhbEJ1dHRvbltdID0gREVGQVVMVF9NT0RBTF9GT09URVJfQlVUVE9OUztcbiAgQElucHV0KCkgaGVhZGVyID0gREVGQVVMVF9NT0RBTF9IRUFERVI7XG4gIEBJbnB1dCgpIGhlaWdodDogRGltZW5zaW9uID0gREVGQVVMVF9NT0RBTF9IRUlHSFQ7XG4gIEBJbnB1dCgpIG1heGltaXphYmxlID0gREVGQVVMVF9NT0RBTF9NQVhJTUlaQUJMRTtcbiAgQElucHV0KCkgbWF4aW1pemUgPSBERUZBVUxUX01PREFMX01BWElNSVpFO1xuICBASW5wdXQoKSByZXNpemFibGUgPSBERUZBVUxUX01PREFMX1JFU0laQUJMRTtcbiAgQElucHV0KCkgcmVzcG9uc2l2ZSA9IERFRkFVTFRfTU9EQUxfUkVTUE9OU0lWRTtcbiAgQElucHV0KCkgd2lkdGg6IERpbWVuc2lvbiA9IERFRkFVTFRfTU9EQUxfV0lEVEg7XG4gIEBJbnB1dCgpIHpJbmRleCA9IERFRkFVTFRfTU9EQUxfWl9JTkRFWDtcbiAgQElucHV0KCkgY2xvc2FibGUgPSBERUZBVUxUX01PREFMX0NMT1NBQkxFO1xuICBASW5wdXQoKSBzdHlsZUNsYXNzID0gJyc7XG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBzZXQgYXBwZW5kVG9Cb2R5KHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy4kYXBwZW5kVG9Cb2R5ID0gdmFsdWU7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgcXVldWVNaWNyb3Rhc2soKCkgPT4gdGhpcy5zeW5jQm9keVBvcnRhbCgpKTtcbiAgfVxuXG4gIGdldCBhcHBlbmRUb0JvZHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuJGFwcGVuZFRvQm9keTtcbiAgfVxuXG4gIEBPdXRwdXQoKSBoaWRkZW4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIHJlYWRvbmx5IG1vZGFsSWQgPSBuZXh0U2VxdWVudGlhbElkKERFRkFVTFRfTU9EQUxfSURfUFJFRklYKTtcbiAgcmVhZG9ubHkgaGVhZGVySWQgPSBgJHt0aGlzLm1vZGFsSWR9LWhlYWRlcmA7XG4gIHJlYWRvbmx5IGNvbnRlbnRJZCA9IGAke3RoaXMubW9kYWxJZH0tY29udGVudGA7XG5cbiAgaXNNYXhpbWl6ZWQgPSBmYWxzZTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICBwcml2YXRlIHByZXZpb3VzRm9jdXNlZEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgQElucHV0KCkgc2V0IHZpc2libGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodGhpcy4kdmlzaWJsZSA9PT0gdmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMucHJldmlvdXNGb2N1c2VkRWxlbWVudCA9IHRoaXMuZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50XG4gICAgICAgID8gdGhpcy5kb2N1bWVudC5hY3RpdmVFbGVtZW50XG4gICAgICAgIDogbnVsbDtcbiAgICB9XG5cbiAgICB0aGlzLiR2aXNpYmxlID0gdmFsdWU7XG4gICAgdGhpcy5pc01heGltaXplZCA9IHZhbHVlICYmIHRoaXMubWF4aW1pemU7XG4gICAgdGhpcy50b2dnbGVCb2R5U2Nyb2xsKHZhbHVlKTtcblxuICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgIHRoaXMuc3luY0JvZHlQb3J0YWwoKTtcblxuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuZm9jdXNEaWFsb2coKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3RvcmVGb2N1cyh0aGlzLnByZXZpb3VzRm9jdXNlZEVsZW1lbnQpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQodmFsdWUpO1xuICB9XG5cbiAgZ2V0IHZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuJHZpc2libGU7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy52aWV3SW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHRoaXMuc3luY0JvZHlQb3J0YWwoKSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRldGFjaEJvZHlQb3J0YWwoKTtcbiAgICB0aGlzLnRvZ2dsZUJvZHlTY3JvbGwoZmFsc2UpO1xuICB9XG5cbiAgZ2V0IGRpYWxvZ1N0eWxlcygpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uZ2V0RGltZW5zaW9uU3R5bGVzKCd3aWR0aCcsIHRoaXMud2lkdGgpLFxuICAgICAgLi4uZ2V0RGltZW5zaW9uU3R5bGVzKCdoZWlnaHQnLCB0aGlzLmhlaWdodClcbiAgICB9O1xuICB9XG5cbiAgbWFwQnV0dG9uUHJpb3JpdHkoc2V2ZXJpdHk/OiBNb2RhbEJ1dHRvblsnc2V2ZXJpdHknXSk6IEJ1dHRvblByaW9yaXR5IHtcbiAgICBpZiAoc2V2ZXJpdHkgPT09ICdzZWNvbmRhcnknKSB7XG4gICAgICByZXR1cm4gJ3NlY29uZGFyeSc7XG4gICAgfVxuXG4gICAgaWYgKHNldmVyaXR5ID09PSAnZGFuZ2VyJykge1xuICAgICAgcmV0dXJuICdkYW5nZXInO1xuICAgIH1cblxuICAgIHJldHVybiAncHJpbWFyeSc7XG4gIH1cblxuICBjbG9zZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMudmlzaWJsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuJHZpc2libGUgPSBmYWxzZTtcbiAgICB0aGlzLmlzTWF4aW1pemVkID0gZmFsc2U7XG4gICAgdGhpcy50b2dnbGVCb2R5U2Nyb2xsKGZhbHNlKTtcbiAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB7XG4gICAgICB0aGlzLnN5bmNCb2R5UG9ydGFsKCk7XG4gICAgICByZXN0b3JlRm9jdXModGhpcy5wcmV2aW91c0ZvY3VzZWRFbGVtZW50KTtcbiAgICB9KTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdChmYWxzZSk7XG4gICAgdGhpcy5oaWRkZW4uZW1pdCgpO1xuICB9XG5cbiAgdG9nZ2xlTWF4aW1pemUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm1heGltaXphYmxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pc01heGltaXplZCA9ICF0aGlzLmlzTWF4aW1pemVkO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHRoaXMuZm9jdXNEaWFsb2coKSk7XG4gIH1cblxuICBvbkZvb3RlckJ1dHRvbkNsaWNrKGFjdGlvbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIGFjdGlvbigpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIG9uRG9jdW1lbnRLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnZpc2libGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZXZlbnQua2V5ID09PSBNT0RBTF9FU0NBUEVfS0VZKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICBpZiAodGhpcy5jbG9zYWJsZSkge1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZXZlbnQua2V5ID09PSBNT0RBTF9UQUJfS0VZKSB7XG4gICAgICB0aGlzLnRyYXBGb2N1cyhldmVudCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c0RpYWxvZygpOiB2b2lkIHtcbiAgICBjb25zdCBkaWFsb2cgPSB0aGlzLmdldERpYWxvZ0VsZW1lbnQoKTtcblxuICAgIGlmICghZGlhbG9nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZm9jdXNGaXJzdERlc2NlbmRhbnQoZGlhbG9nLCBkaWFsb2cpO1xuICB9XG5cbiAgcHJpdmF0ZSB0b2dnbGVCb2R5U2Nyb2xsKHZpc2libGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAodmlzaWJsZSkge1xuICAgICAgdGhpcy5wcmV2aW91c0JvZHlPdmVyZmxvdyA9IHRoaXMuZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdztcbiAgICAgIHRoaXMuZG9jdW1lbnQuYm9keS5zdHlsZS5zZXRQcm9wZXJ0eShNT0RBTF9CT0RZX09WRVJGTE9XX1BST1BFUlRZLCBNT0RBTF9CT0RZX09WRVJGTE9XX0hJRERFTik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucHJldmlvdXNCb2R5T3ZlcmZsb3cpIHtcbiAgICAgIHRoaXMuZG9jdW1lbnQuYm9keS5zdHlsZS5zZXRQcm9wZXJ0eShNT0RBTF9CT0RZX09WRVJGTE9XX1BST1BFUlRZLCB0aGlzLnByZXZpb3VzQm9keU92ZXJmbG93KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUucmVtb3ZlUHJvcGVydHkoTU9EQUxfQk9EWV9PVkVSRkxPV19QUk9QRVJUWSk7XG4gIH1cblxuICBwcml2YXRlIHRyYXBGb2N1cyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuZ2V0RGlhbG9nRWxlbWVudCgpO1xuXG4gICAgaWYgKCFjb250YWluZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdHJhcEZvY3VzSW5Db250YWluZXIoZXZlbnQsIGNvbnRhaW5lciwgdGhpcy5kb2N1bWVudC5hY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50IHwgbnVsbCwgY29udGFpbmVyKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGlhbG9nRWxlbWVudCgpOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmRpYWxvZ1BhbmVsPy5uYXRpdmVFbGVtZW50XG4gICAgICA/PyAodGhpcy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmhlYWRlcklkKT8uY2xvc2VzdCgnLnNkYy1tb2RhbCcpIGFzIEhUTUxFbGVtZW50IHwgbnVsbClcbiAgICAgID8/IG51bGw7XG4gIH1cblxuICBwcml2YXRlIHN5bmNCb2R5UG9ydGFsKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy52aWV3SW5pdGlhbGl6ZWQgfHwgIXRoaXMuYm9keVBvcnRhbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5hcHBlbmRUb0JvZHkgfHwgIXRoaXMudmlzaWJsZSkge1xuICAgICAgdGhpcy5kZXRhY2hCb2R5UG9ydGFsKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgb3V0bGV0ID0gdGhpcy5lbnN1cmVCb2R5UG9ydGFsT3V0bGV0KCk7XG5cbiAgICBpZiAoIW91dGxldC5oYXNBdHRhY2hlZCgpKSB7XG4gICAgICBvdXRsZXQuYXR0YWNoKHRoaXMuYm9keVBvcnRhbCk7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHRoaXMuZm9jdXNEaWFsb2coKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBlbnN1cmVCb2R5UG9ydGFsT3V0bGV0KCk6IERvbVBvcnRhbE91dGxldCB7XG4gICAgaWYgKCF0aGlzLmJvZHlQb3J0YWxPdXRsZXQpIHtcbiAgICAgIHRoaXMuYm9keVBvcnRhbE91dGxldCA9IG5ldyBEb21Qb3J0YWxPdXRsZXQoXG4gICAgICAgIHRoaXMuZG9jdW1lbnQuYm9keSxcbiAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgdGhpcy5kb2N1bWVudFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5ib2R5UG9ydGFsT3V0bGV0O1xuICB9XG5cbiAgcHJpdmF0ZSBkZXRhY2hCb2R5UG9ydGFsKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmJvZHlQb3J0YWxPdXRsZXQ/Lmhhc0F0dGFjaGVkKCkpIHtcbiAgICAgIHRoaXMuYm9keVBvcnRhbE91dGxldC5kZXRhY2goKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlICR2aXNpYmxlID0gZmFsc2U7XG4gIHByaXZhdGUgJGFwcGVuZFRvQm9keSA9IERFRkFVTFRfTU9EQUxfQVBQRU5EX1RPX0JPRFk7XG4gIHByaXZhdGUgcHJldmlvdXNCb2R5T3ZlcmZsb3cgPSAnJztcbiAgcHJpdmF0ZSB2aWV3SW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBib2R5UG9ydGFsT3V0bGV0PzogRG9tUG9ydGFsT3V0bGV0O1xufVxuIiwiPG5nLXRlbXBsYXRlICNtb2RhbFRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwic2RjLW1vZGFsLWJhY2tkcm9wXCIgW3N0eWxlLnotaW5kZXhdPVwiekluZGV4XCI+XG4gICAgPHNlY3Rpb25cbiAgICAgICNkaWFsb2dQYW5lbFxuICAgICAgY2xhc3M9XCJzZGMtbW9kYWxcIlxuICAgICAgW25nQ2xhc3NdPVwic3R5bGVDbGFzc1wiXG4gICAgICBbY2xhc3Muc2RjLW1vZGFsLS1tYXhpbWl6ZWRdPVwiaXNNYXhpbWl6ZWRcIlxuICAgICAgW2NsYXNzLnNkYy1tb2RhbC0tcmVzaXphYmxlXT1cInJlc2l6YWJsZSAmJiAhaXNNYXhpbWl6ZWRcIlxuICAgICAgW2NsYXNzLnNkYy1tb2RhbC0tcmVzcG9uc2l2ZV09XCJyZXNwb25zaXZlXCJcbiAgICAgIFtuZ1N0eWxlXT1cImRpYWxvZ1N0eWxlc1wiXG4gICAgICByb2xlPVwiZGlhbG9nXCJcbiAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgW2F0dHIuYXJpYS1tb2RhbF09XCJ0cnVlXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJoZWFkZXJJZFwiXG4gICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImNvbnRlbnRJZFwiXG4gICAgPlxuICAgICAgPGhlYWRlciBjbGFzcz1cInNkYy1tb2RhbF9faGVhZGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZGMtbW9kYWxfX3RpdGxlXCIgW2lkXT1cImhlYWRlcklkXCI+XG4gICAgICAgICAge3sgaGVhZGVyIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZGMtbW9kYWxfX2hlYWRlci1hY3Rpb25zXCI+XG4gICAgICAgICAgQGlmIChtYXhpbWl6YWJsZSkge1xuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJzZGMtbW9kYWxfX2ljb24tYnV0dG9uXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZU1heGltaXplKClcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIihcbiAgICAgICAgICAgICAgICBpc01heGltaXplZCA/ICdwbGF0Zm9ybS5kYXRhY29yZS5tb2RhbC5yZXN0b3JlX3NpemUnIDogJ3BsYXRmb3JtLmRhdGFjb3JlLm1vZGFsLm1heGltaXplJ1xuICAgICAgICAgICAgICApIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgQGlmICghaXNNYXhpbWl6ZWQpIHtcbiAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwic2RjLW1vZGFsX19pY29uIHNkYy1tb2RhbF9faWNvbi0tbWF4aW1pemVcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTYgMy41SDMuNVY2XCIgLz5cbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTAgMy41aDIuNVY2XCIgLz5cbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTIuNSAxMHYyLjVIMTBcIiAvPlxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk02IDEyLjVIMy41VjEwXCIgLz5cbiAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cInNkYy1tb2RhbF9faWNvbiBzZGMtbW9kYWxfX2ljb24tLW1heGltaXplXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk01LjUgMy41SDMuNVY1LjVcIiAvPlxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMC41IDMuNWgydjJcIiAvPlxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMi41IDEwLjV2MmgtMlwiIC8+XG4gICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTUuNSAxMi41aC0ydi0yXCIgLz5cbiAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIChjbG9zYWJsZSkge1xuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJzZGMtbW9kYWxfX2ljb24tYnV0dG9uXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlKClcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidwbGF0Zm9ybS5kYXRhY29yZS5tb2RhbC5jbG9zZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwic2RjLW1vZGFsX19pY29uIHNkYy1tb2RhbF9faWNvbi0tY2xvc2VcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgPHBhdGggZD1cIk01IDUgMTEgMTFcIiAvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTEgNSA1IDExXCIgLz5cbiAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9oZWFkZXI+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZGMtbW9kYWxfX2NvbnRlbnRcIiBbaWRdPVwiY29udGVudElkXCI+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwic2RjLW1vZGFsX19mb290ZXJcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5Lm1vZGFsX2Zvb3RlcicgfCB0cmFuc2xhdGVcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2Zvb3Rlcl1cIj48L25nLWNvbnRlbnQ+XG5cbiAgICAgICAgQGZvciAoYnRuIG9mIGZvb3RlckJ1dHRvbnM7IHRyYWNrIGJ0bi5pZCB8fCBidG4ubGFiZWwpIHtcbiAgICAgICAgICA8c2RjLWJ1dHRvblxuICAgICAgICAgICAgW2lkXT1cImJ0bi5pZCA/PyAnbW9kYWwtZm9vdGVyLWJ1dHRvbidcIlxuICAgICAgICAgICAgW2xhYmVsXT1cImJ0bi5sYWJlbFwiXG4gICAgICAgICAgICBbaWNvbl09XCJidG4uaWNvblwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiYnRuLmRpc2FibGVkID8/IGZhbHNlXCJcbiAgICAgICAgICAgIFtwcmlvcml0eV09XCJtYXBCdXR0b25Qcmlvcml0eShidG4uc2V2ZXJpdHkpXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkZvb3RlckJ1dHRvbkNsaWNrKGJ0bi5hY3Rpb24pXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYnRuLmxhYmVsIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICA+PC9zZGMtYnV0dG9uPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L3NlY3Rpb24+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlIGNka1BvcnRhbD5cbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm1vZGFsVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbkBpZiAoIWFwcGVuZFRvQm9keSAmJiB2aXNpYmxlKSB7XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtb2RhbFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG59XG4iXX0=
244
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9tb2RhbC9tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL21vZGFsL21vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakUsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsT0FBTyxFQUNMLDRCQUE0QixFQUM1QixzQkFBc0IsRUFDdEIsNEJBQTRCLEVBQzVCLG9CQUFvQixFQUNwQixvQkFBb0IsRUFDcEIsdUJBQXVCLEVBQ3ZCLHlCQUF5QixFQUN6QixzQkFBc0IsRUFDdEIsd0JBQXdCLEVBQ3hCLHVCQUF1QixFQUN2QixtQkFBbUIsRUFDbkIscUJBQXFCLEVBQ3JCLDBCQUEwQixFQUMxQiw0QkFBNEIsRUFDNUIsZ0JBQWdCLEVBQ2hCLGFBQWEsRUFDZCxNQUFNLGtDQUFrQyxDQUFDO0FBSTFDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN2RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7QUFXN0QsTUFBTSxPQUFPLGNBQWM7SUFDQyxXQUFXLENBQThCO0lBQzdDLFVBQVUsQ0FBYTtJQUVwQyxhQUFhLEdBQWtCLDRCQUE0QixDQUFDO0lBQzVELE1BQU0sR0FBRyxvQkFBb0IsQ0FBQztJQUM5QixNQUFNLEdBQWMsb0JBQW9CLENBQUM7SUFDekMsV0FBVyxHQUFHLHlCQUF5QixDQUFDO0lBQ3hDLFFBQVEsR0FBRyxzQkFBc0IsQ0FBQztJQUNsQyxTQUFTLEdBQUcsdUJBQXVCLENBQUM7SUFDcEMsVUFBVSxHQUFHLHdCQUF3QixDQUFDO0lBQ3RDLEtBQUssR0FBYyxtQkFBbUIsQ0FBQztJQUN2QyxNQUFNLEdBQUcscUJBQXFCLENBQUM7SUFDL0IsUUFBUSxHQUFHLHNCQUFzQixDQUFDO0lBQ2xDLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFDekIsSUFBNEMsWUFBWSxDQUFDLEtBQWM7UUFDckUsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN4QixjQUFjLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRVMsTUFBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFDbEMsYUFBYSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7SUFFN0MsT0FBTyxHQUFHLGdCQUFnQixDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDcEQsUUFBUSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sU0FBUyxDQUFDO0lBQ3BDLFNBQVMsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLFVBQVUsQ0FBQztJQUUvQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBRUgsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM1QixHQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDekMsc0JBQXNCLEdBQXVCLElBQUksQ0FBQztJQUUxRCxJQUFhLE9BQU8sQ0FBQyxLQUFjO1FBQ2pDLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUM1QixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLFlBQVksV0FBVztnQkFDOUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYTtnQkFDN0IsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNYLENBQUM7UUFFRCxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQzFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU3QixjQUFjLENBQUMsR0FBRyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUV0QixJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUNWLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sWUFBWSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1lBQzVDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBQzVCLGNBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTztZQUNMLEdBQUcsa0JBQWtCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDMUMsR0FBRyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUM3QyxDQUFDO0lBQ0osQ0FBQztJQUVELGlCQUFpQixDQUFDLFFBQWtDO1FBQ2xELElBQUksUUFBUSxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQzdCLE9BQU8sV0FBVyxDQUFDO1FBQ3JCLENBQUM7UUFFRCxJQUFJLFFBQVEsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUMxQixPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xCLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdCLGNBQWMsQ0FBQyxHQUFHLEVBQUU7WUFDbEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3RCLFlBQVksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdEIsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNyQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3hCLGNBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsbUJBQW1CLENBQUMsTUFBa0I7UUFDcEMsTUFBTSxFQUFFLENBQUM7SUFDWCxDQUFDO0lBR0QsaUJBQWlCLENBQUMsS0FBb0I7UUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNsQixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ25DLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUV2QixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDbEIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2YsQ0FBQztZQUVELE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLGFBQWEsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsQ0FBQztJQUNILENBQUM7SUFFTyxXQUFXO1FBQ2pCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBRXZDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE9BQU87UUFDVCxDQUFDO1FBRUQsb0JBQW9CLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxPQUFnQjtRQUN2QyxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7WUFDOUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyw0QkFBNEIsRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO1lBQy9GLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLDRCQUE0QixFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQzlGLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFTyxTQUFTLENBQUMsS0FBb0I7UUFDcEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFFMUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2YsT0FBTztRQUNULENBQUM7UUFDRCxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBbUMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN2RyxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxhQUFhO2VBQ2hDLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxPQUFPLENBQUMsWUFBWSxDQUF3QjtlQUMxRixJQUFJLENBQUM7SUFDWixDQUFDO0lBRU8sY0FBYztRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUM5QyxPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3hCLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFFN0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQzFCLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQy9CLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDeEIsY0FBYyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQzNDLENBQUM7SUFDSCxDQUFDO0lBRU8sc0JBQXNCO1FBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxlQUFlLENBQ3pDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUNsQixTQUFTLEVBQ1QsU0FBUyxFQUNULFNBQVMsRUFDVCxJQUFJLENBQUMsUUFBUSxDQUNkLENBQUM7UUFDSixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDL0IsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNqQyxDQUFDO0lBQ0gsQ0FBQztJQUVPLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsYUFBYSxHQUFHLDRCQUE0QixDQUFDO0lBQzdDLG9CQUFvQixHQUFHLEVBQUUsQ0FBQztJQUMxQixlQUFlLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLGdCQUFnQixDQUFtQjt3R0EzT2hDLGNBQWM7NEZBQWQsY0FBYyxnV0FlTCxnQkFBZ0IsbVVBYnpCLFNBQVMsZ0RDekR0QixzOEdBK0ZBLDRrUERoRFksU0FBUyxnRkFBRSxZQUFZLHdYQUFFLGVBQWUsNEZBQUUsZUFBZTs7NEZBUXhELGNBQWM7a0JBVDFCLFNBQVM7OEJBQ0MsQ0FBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxlQUFlLENBQUMsY0FDeEQsSUFBSSxZQUNOLFdBQVcsbUJBR0osdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsUUFBUTs4QkFHZixXQUFXO3NCQUFwQyxTQUFTO3VCQUFDLGFBQWE7Z0JBQ0YsVUFBVTtzQkFBL0IsU0FBUzt1QkFBQyxTQUFTO2dCQUVYLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNzQyxZQUFZO3NCQUF2RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQVU1QixNQUFNO3NCQUFmLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFZTSxPQUFPO3NCQUFuQixLQUFLO2dCQThGTixpQkFBaUI7c0JBRGhCLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtQb3J0YWwsIERvbVBvcnRhbE91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgaW5qZWN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmltcG9ydCB7XG4gIERFRkFVTFRfTU9EQUxfQVBQRU5EX1RPX0JPRFksXG4gIERFRkFVTFRfTU9EQUxfQ0xPU0FCTEUsXG4gIERFRkFVTFRfTU9EQUxfRk9PVEVSX0JVVFRPTlMsXG4gIERFRkFVTFRfTU9EQUxfSEVBREVSLFxuICBERUZBVUxUX01PREFMX0hFSUdIVCxcbiAgREVGQVVMVF9NT0RBTF9JRF9QUkVGSVgsXG4gIERFRkFVTFRfTU9EQUxfTUFYSU1JWkFCTEUsXG4gIERFRkFVTFRfTU9EQUxfTUFYSU1JWkUsXG4gIERFRkFVTFRfTU9EQUxfUkVTUE9OU0lWRSxcbiAgREVGQVVMVF9NT0RBTF9SRVNJWkFCTEUsXG4gIERFRkFVTFRfTU9EQUxfV0lEVEgsXG4gIERFRkFVTFRfTU9EQUxfWl9JTkRFWCxcbiAgTU9EQUxfQk9EWV9PVkVSRkxPV19ISURERU4sXG4gIE1PREFMX0JPRFlfT1ZFUkZMT1dfUFJPUEVSVFksXG4gIE1PREFMX0VTQ0FQRV9LRVksXG4gIE1PREFMX1RBQl9LRVlcbn0gZnJvbSAnLi4vLi4vY29yZS9jb25zdGFudHMvbW9kYWwuY29uc3QnO1xuaW1wb3J0IHR5cGUgeyBCdXR0b25Qcmlvcml0eSB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvYnV0dG9uLnR5cGUnO1xuaW1wb3J0IHR5cGUgeyBNb2RhbEJ1dHRvbiB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvbW9kYWwudHlwZSc7XG5pbXBvcnQgdHlwZSB7IERpbWVuc2lvbiB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvc2VtYW50aWNzLnR5cGUnO1xuaW1wb3J0IHsgZ2V0RGltZW5zaW9uU3R5bGVzIH0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy9zZW1hbnRpY3MudHlwZSc7XG5pbXBvcnQgeyBmb2N1c0ZpcnN0RGVzY2VuZGFudCwgcmVzdG9yZUZvY3VzLCB0cmFwRm9jdXNJbkNvbnRhaW5lciB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMvZm9jdXMudXRpbCc7XG5pbXBvcnQgeyBuZXh0U2VxdWVudGlhbElkIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9pZC51dGlsJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIGltcG9ydHM6IFtDZGtQb3J0YWwsIENvbW1vbk1vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBCdXR0b25Db21wb25lbnRdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ3NkYy1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9tb2RhbC5jb21wb25lbnQuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5FbXVsYXRlZFxufSlcbmV4cG9ydCBjbGFzcyBNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBWaWV3Q2hpbGQoJ2RpYWxvZ1BhbmVsJykgZGlhbG9nUGFuZWw/OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcbiAgQFZpZXdDaGlsZChDZGtQb3J0YWwpIGJvZHlQb3J0YWw/OiBDZGtQb3J0YWw7XG5cbiAgQElucHV0KCkgZm9vdGVyQnV0dG9uczogTW9kYWxCdXR0b25bXSA9IERFRkFVTFRfTU9EQUxfRk9PVEVSX0JVVFRPTlM7XG4gIEBJbnB1dCgpIGhlYWRlciA9IERFRkFVTFRfTU9EQUxfSEVBREVSO1xuICBASW5wdXQoKSBoZWlnaHQ6IERpbWVuc2lvbiA9IERFRkFVTFRfTU9EQUxfSEVJR0hUO1xuICBASW5wdXQoKSBtYXhpbWl6YWJsZSA9IERFRkFVTFRfTU9EQUxfTUFYSU1JWkFCTEU7XG4gIEBJbnB1dCgpIG1heGltaXplID0gREVGQVVMVF9NT0RBTF9NQVhJTUlaRTtcbiAgQElucHV0KCkgcmVzaXphYmxlID0gREVGQVVMVF9NT0RBTF9SRVNJWkFCTEU7XG4gIEBJbnB1dCgpIHJlc3BvbnNpdmUgPSBERUZBVUxUX01PREFMX1JFU1BPTlNJVkU7XG4gIEBJbnB1dCgpIHdpZHRoOiBEaW1lbnNpb24gPSBERUZBVUxUX01PREFMX1dJRFRIO1xuICBASW5wdXQoKSB6SW5kZXggPSBERUZBVUxUX01PREFMX1pfSU5ERVg7XG4gIEBJbnB1dCgpIGNsb3NhYmxlID0gREVGQVVMVF9NT0RBTF9DTE9TQUJMRTtcbiAgQElucHV0KCkgc3R5bGVDbGFzcyA9ICcnO1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2V0IGFwcGVuZFRvQm9keSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuJGFwcGVuZFRvQm9keSA9IHZhbHVlO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHRoaXMuc3luY0JvZHlQb3J0YWwoKSk7XG4gIH1cblxuICBnZXQgYXBwZW5kVG9Cb2R5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiRhcHBlbmRUb0JvZHk7XG4gIH1cblxuICBAT3V0cHV0KCkgaGlkZGVuID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgdmlzaWJsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICByZWFkb25seSBtb2RhbElkID0gbmV4dFNlcXVlbnRpYWxJZChERUZBVUxUX01PREFMX0lEX1BSRUZJWCk7XG4gIHJlYWRvbmx5IGhlYWRlcklkID0gYCR7dGhpcy5tb2RhbElkfS1oZWFkZXJgO1xuICByZWFkb25seSBjb250ZW50SWQgPSBgJHt0aGlzLm1vZGFsSWR9LWNvbnRlbnRgO1xuXG4gIGlzTWF4aW1pemVkID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJpdmF0ZSBwcmV2aW91c0ZvY3VzZWRFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIEBJbnB1dCgpIHNldCB2aXNpYmxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHRoaXMuJHZpc2libGUgPT09IHZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLnByZXZpb3VzRm9jdXNlZEVsZW1lbnQgPSB0aGlzLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudFxuICAgICAgICA/IHRoaXMuZG9jdW1lbnQuYWN0aXZlRWxlbWVudFxuICAgICAgICA6IG51bGw7XG4gICAgfVxuXG4gICAgdGhpcy4kdmlzaWJsZSA9IHZhbHVlO1xuICAgIHRoaXMuaXNNYXhpbWl6ZWQgPSB2YWx1ZSAmJiB0aGlzLm1heGltaXplO1xuICAgIHRoaXMudG9nZ2xlQm9keVNjcm9sbCh2YWx1ZSk7XG5cbiAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB7XG4gICAgICB0aGlzLnN5bmNCb2R5UG9ydGFsKCk7XG5cbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICB0aGlzLmZvY3VzRGlhbG9nKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN0b3JlRm9jdXModGhpcy5wcmV2aW91c0ZvY3VzZWRFbGVtZW50KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgfVxuXG4gIGdldCB2aXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiR2aXNpYmxlO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMudmlld0luaXRpYWxpemVkID0gdHJ1ZTtcbiAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB0aGlzLnN5bmNCb2R5UG9ydGFsKCkpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXRhY2hCb2R5UG9ydGFsKCk7XG4gICAgdGhpcy50b2dnbGVCb2R5U2Nyb2xsKGZhbHNlKTtcbiAgfVxuXG4gIGdldCBkaWFsb2dTdHlsZXMoKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmdldERpbWVuc2lvblN0eWxlcygnd2lkdGgnLCB0aGlzLndpZHRoKSxcbiAgICAgIC4uLmdldERpbWVuc2lvblN0eWxlcygnaGVpZ2h0JywgdGhpcy5oZWlnaHQpXG4gICAgfTtcbiAgfVxuXG4gIG1hcEJ1dHRvblByaW9yaXR5KHNldmVyaXR5PzogTW9kYWxCdXR0b25bJ3NldmVyaXR5J10pOiBCdXR0b25Qcmlvcml0eSB7XG4gICAgaWYgKHNldmVyaXR5ID09PSAnc2Vjb25kYXJ5Jykge1xuICAgICAgcmV0dXJuICdzZWNvbmRhcnknO1xuICAgIH1cblxuICAgIGlmIChzZXZlcml0eSA9PT0gJ2RhbmdlcicpIHtcbiAgICAgIHJldHVybiAnZGFuZ2VyJztcbiAgICB9XG5cbiAgICByZXR1cm4gJ3ByaW1hcnknO1xuICB9XG5cbiAgY2xvc2UoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnZpc2libGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLiR2aXNpYmxlID0gZmFsc2U7XG4gICAgdGhpcy5pc01heGltaXplZCA9IGZhbHNlO1xuICAgIHRoaXMudG9nZ2xlQm9keVNjcm9sbChmYWxzZSk7XG4gICAgcXVldWVNaWNyb3Rhc2soKCkgPT4ge1xuICAgICAgdGhpcy5zeW5jQm9keVBvcnRhbCgpO1xuICAgICAgcmVzdG9yZUZvY3VzKHRoaXMucHJldmlvdXNGb2N1c2VkRWxlbWVudCk7XG4gICAgfSk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQoZmFsc2UpO1xuICAgIHRoaXMuaGlkZGVuLmVtaXQoKTtcbiAgfVxuXG4gIHRvZ2dsZU1heGltaXplKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5tYXhpbWl6YWJsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaXNNYXhpbWl6ZWQgPSAhdGhpcy5pc01heGltaXplZDtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB0aGlzLmZvY3VzRGlhbG9nKCkpO1xuICB9XG5cbiAgb25Gb290ZXJCdXR0b25DbGljayhhY3Rpb246ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICBhY3Rpb24oKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24nLCBbJyRldmVudCddKVxuICBvbkRvY3VtZW50S2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy52aXNpYmxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gTU9EQUxfRVNDQVBFX0tFWSkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgaWYgKHRoaXMuY2xvc2FibGUpIHtcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gTU9EQUxfVEFCX0tFWSkge1xuICAgICAgdGhpcy50cmFwRm9jdXMoZXZlbnQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZm9jdXNEaWFsb2coKTogdm9pZCB7XG4gICAgY29uc3QgZGlhbG9nID0gdGhpcy5nZXREaWFsb2dFbGVtZW50KCk7XG5cbiAgICBpZiAoIWRpYWxvZykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZvY3VzRmlyc3REZXNjZW5kYW50KGRpYWxvZywgZGlhbG9nKTtcbiAgfVxuXG4gIHByaXZhdGUgdG9nZ2xlQm9keVNjcm9sbCh2aXNpYmxlOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHZpc2libGUpIHtcbiAgICAgIHRoaXMucHJldmlvdXNCb2R5T3ZlcmZsb3cgPSB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3c7XG4gICAgICB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUuc2V0UHJvcGVydHkoTU9EQUxfQk9EWV9PVkVSRkxPV19QUk9QRVJUWSwgTU9EQUxfQk9EWV9PVkVSRkxPV19ISURERU4pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByZXZpb3VzQm9keU92ZXJmbG93KSB7XG4gICAgICB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUuc2V0UHJvcGVydHkoTU9EQUxfQk9EWV9PVkVSRkxPV19QUk9QRVJUWSwgdGhpcy5wcmV2aW91c0JvZHlPdmVyZmxvdyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5kb2N1bWVudC5ib2R5LnN0eWxlLnJlbW92ZVByb3BlcnR5KE1PREFMX0JPRFlfT1ZFUkZMT1dfUFJPUEVSVFkpO1xuICB9XG5cbiAgcHJpdmF0ZSB0cmFwRm9jdXMoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmdldERpYWxvZ0VsZW1lbnQoKTtcblxuICAgIGlmICghY29udGFpbmVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRyYXBGb2N1c0luQ29udGFpbmVyKGV2ZW50LCBjb250YWluZXIsIHRoaXMuZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCB8IG51bGwsIGNvbnRhaW5lcik7XG4gIH1cblxuICBwcml2YXRlIGdldERpYWxvZ0VsZW1lbnQoKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5kaWFsb2dQYW5lbD8ubmF0aXZlRWxlbWVudFxuICAgICAgPz8gKHRoaXMuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5oZWFkZXJJZCk/LmNsb3Nlc3QoJy5zZGMtbW9kYWwnKSBhcyBIVE1MRWxlbWVudCB8IG51bGwpXG4gICAgICA/PyBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBzeW5jQm9keVBvcnRhbCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMudmlld0luaXRpYWxpemVkIHx8ICF0aGlzLmJvZHlQb3J0YWwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuYXBwZW5kVG9Cb2R5IHx8ICF0aGlzLnZpc2libGUpIHtcbiAgICAgIHRoaXMuZGV0YWNoQm9keVBvcnRhbCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG91dGxldCA9IHRoaXMuZW5zdXJlQm9keVBvcnRhbE91dGxldCgpO1xuXG4gICAgaWYgKCFvdXRsZXQuaGFzQXR0YWNoZWQoKSkge1xuICAgICAgb3V0bGV0LmF0dGFjaCh0aGlzLmJvZHlQb3J0YWwpO1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB0aGlzLmZvY3VzRGlhbG9nKCkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZW5zdXJlQm9keVBvcnRhbE91dGxldCgpOiBEb21Qb3J0YWxPdXRsZXQge1xuICAgIGlmICghdGhpcy5ib2R5UG9ydGFsT3V0bGV0KSB7XG4gICAgICB0aGlzLmJvZHlQb3J0YWxPdXRsZXQgPSBuZXcgRG9tUG9ydGFsT3V0bGV0KFxuICAgICAgICB0aGlzLmRvY3VtZW50LmJvZHksXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgIHRoaXMuZG9jdW1lbnRcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYm9keVBvcnRhbE91dGxldDtcbiAgfVxuXG4gIHByaXZhdGUgZGV0YWNoQm9keVBvcnRhbCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5ib2R5UG9ydGFsT3V0bGV0Py5oYXNBdHRhY2hlZCgpKSB7XG4gICAgICB0aGlzLmJvZHlQb3J0YWxPdXRsZXQuZGV0YWNoKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSAkdmlzaWJsZSA9IGZhbHNlO1xuICBwcml2YXRlICRhcHBlbmRUb0JvZHkgPSBERUZBVUxUX01PREFMX0FQUEVORF9UT19CT0RZO1xuICBwcml2YXRlIHByZXZpb3VzQm9keU92ZXJmbG93ID0gJyc7XG4gIHByaXZhdGUgdmlld0luaXRpYWxpemVkID0gZmFsc2U7XG4gIHByaXZhdGUgYm9keVBvcnRhbE91dGxldD86IERvbVBvcnRhbE91dGxldDtcbn1cbiIsIjxuZy10ZW1wbGF0ZSAjbW9kYWxUZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cInNkYy1tb2RhbC1iYWNrZHJvcFwiIFtzdHlsZS56LWluZGV4XT1cInpJbmRleFwiPlxuICAgIDxzZWN0aW9uXG4gICAgICAjZGlhbG9nUGFuZWxcbiAgICAgIGNsYXNzPVwic2RjLW1vZGFsXCJcbiAgICAgIFtuZ0NsYXNzXT1cInN0eWxlQ2xhc3NcIlxuICAgICAgW2NsYXNzLnNkYy1tb2RhbC0tbWF4aW1pemVkXT1cImlzTWF4aW1pemVkXCJcbiAgICAgIFtjbGFzcy5zZGMtbW9kYWwtLXJlc2l6YWJsZV09XCJyZXNpemFibGUgJiYgIWlzTWF4aW1pemVkXCJcbiAgICAgIFtjbGFzcy5zZGMtbW9kYWwtLXJlc3BvbnNpdmVdPVwicmVzcG9uc2l2ZVwiXG4gICAgICBbbmdTdHlsZV09XCJkaWFsb2dTdHlsZXNcIlxuICAgICAgcm9sZT1cImRpYWxvZ1wiXG4gICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgIFthdHRyLmFyaWEtbW9kYWxdPVwidHJ1ZVwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiaGVhZGVySWRcIlxuICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJjb250ZW50SWRcIlxuICAgID5cbiAgICAgIDxoZWFkZXIgY2xhc3M9XCJzZGMtbW9kYWxfX2hlYWRlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2RjLW1vZGFsX190aXRsZVwiIFtpZF09XCJoZWFkZXJJZFwiPlxuICAgICAgICAgIHt7IGhlYWRlciB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwic2RjLW1vZGFsX19oZWFkZXItYWN0aW9uc1wiPlxuICAgICAgICAgIEBpZiAobWF4aW1pemFibGUpIHtcbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIGNsYXNzPVwic2RjLW1vZGFsX19pY29uLWJ1dHRvblwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVNYXhpbWl6ZSgpXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIoXG4gICAgICAgICAgICAgICAgaXNNYXhpbWl6ZWQgPyAncGxhdGZvcm0uZGF0YWNvcmUubW9kYWwucmVzdG9yZV9zaXplJyA6ICdwbGF0Zm9ybS5kYXRhY29yZS5tb2RhbC5tYXhpbWl6ZSdcbiAgICAgICAgICAgICAgKSB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIEBpZiAoIWlzTWF4aW1pemVkKSB7XG4gICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cInNkYy1tb2RhbF9faWNvbiBzZGMtbW9kYWxfX2ljb24tLW1heGltaXplXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk02IDMuNUgzLjVWNlwiIC8+XG4gICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEwIDMuNWgyLjVWNlwiIC8+XG4gICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEyLjUgMTB2Mi41SDEwXCIgLz5cbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNiAxMi41SDMuNVYxMFwiIC8+XG4gICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJzZGMtbW9kYWxfX2ljb24gc2RjLW1vZGFsX19pY29uLS1tYXhpbWl6ZVwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNS41IDMuNUgzLjVWNS41XCIgLz5cbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTAuNSAzLjVoMnYyXCIgLz5cbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTIuNSAxMC41djJoLTJcIiAvPlxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk01LjUgMTIuNWgtMnYtMlwiIC8+XG4gICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIH1cblxuICAgICAgICAgIEBpZiAoY2xvc2FibGUpIHtcbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIGNsYXNzPVwic2RjLW1vZGFsX19pY29uLWJ1dHRvblwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjbG9zZSgpXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIncGxhdGZvcm0uZGF0YWNvcmUubW9kYWwuY2xvc2UnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cInNkYy1tb2RhbF9faWNvbiBzZGMtbW9kYWxfX2ljb24tLWNsb3NlXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNSA1IDExIDExXCIgLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTExIDUgNSAxMVwiIC8+XG4gICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvaGVhZGVyPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwic2RjLW1vZGFsX19jb250ZW50XCIgW2lkXT1cImNvbnRlbnRJZFwiPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cInNkYy1tb2RhbF9fZm9vdGVyXCIgW2F0dHIuYXJpYS1sYWJlbF09XCIncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5tb2RhbF9mb290ZXInIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltmb290ZXJdXCI+PC9uZy1jb250ZW50PlxuXG4gICAgICAgIEBmb3IgKGJ0biBvZiBmb290ZXJCdXR0b25zOyB0cmFjayBidG4uaWQgfHwgYnRuLmxhYmVsKSB7XG4gICAgICAgICAgPHNkYy1idXR0b25cbiAgICAgICAgICAgIFtpZF09XCJidG4uaWQgPz8gJ21vZGFsLWZvb3Rlci1idXR0b24nXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCJidG4ubGFiZWxcIlxuICAgICAgICAgICAgW2ljb25dPVwiYnRuLmljb25cIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImJ0bi5kaXNhYmxlZCA/PyBmYWxzZVwiXG4gICAgICAgICAgICBbcHJpb3JpdHldPVwibWFwQnV0dG9uUHJpb3JpdHkoYnRuLnNldmVyaXR5KVwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25Gb290ZXJCdXR0b25DbGljayhidG4uYWN0aW9uKVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImJ0bi5sYWJlbCB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgPjwvc2RjLWJ1dHRvbj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9zZWN0aW9uPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSBjZGtQb3J0YWw+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtb2RhbFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG5AaWYgKCFhcHBlbmRUb0JvZHkgJiYgdmlzaWJsZSkge1xuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibW9kYWxUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxufVxuIl19
@@ -181,7 +181,7 @@ export class NumberInputComponent extends InputsComponent {
181
181
  useExisting: forwardRef(() => NumberInputComponent),
182
182
  multi: true
183
183
  }
184
- ], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"sdc-number-input\">\n @if (labelKey() || hasTooltip) {\n <div class=\"sdc-number-input__label-row\">\n @if (labelKey()) {\n <label [for]=\"identity.id\" class=\"sdc-number-input__label\">\n <span class=\"sdc-number-input__label-text\">\n {{ labelKey() | translate }}\n @if (required) {\n <span class=\"required-field\" aria-hidden=\"true\">*</span>\n }\n @if (required) {\n <span class=\"sr-only\">\n {{ 'platform.datacore.accessibility.required_field' | translate }}\n </span>\n }\n </span>\n </label>\n }\n @if (hasTooltip) {\n <sdc-tooltip\n class=\"sdc-number-input__info-tooltip-wrap\"\n [pTooltip]=\"infoTooltip\"\n [tooltipPosition]=\"infoTooltipPosition\"\n [tooltipEvent]=\"infoTooltipEvent\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <i class=\"fas fa-info-circle sdc-number-input__info-tooltip-icon\" aria-hidden=\"true\"></i>\n </sdc-tooltip>\n }\n </div>\n }\n\n <input\n class=\"sdc-number-input__input\"\n (blur)=\"onBlur()\"\n (focus)=\"onFocus()\"\n (input)=\"onNativeInput($event)\"\n (paste)=\"onPaste($event)\"\n [disabled]=\"disabled\"\n [id]=\"identity.id\"\n [name]=\"identity.name\"\n [ngClass]=\"getInvalidClass()\"\n [ngStyle]=\"getInputStyle()\"\n [class.sdc-number-input__input--align-right]=\"alignTo === 'right'\"\n [class.sdc-number-input__input--invalid]=\"invalid\"\n [placeholder]=\"resolvedPlaceholder\"\n [required]=\"required\"\n [value]=\"displayValue\"\n type=\"text\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n [attr.inputmode]=\"inputMode\"\n [attr.maxlength]=\"resolvedMaxLength\"\n [attr.min]=\"min ?? null\"\n [attr.max]=\"max ?? null\"\n [attr.step]=\"resolvedStep\"\n [attr.role]=\"'spinbutton'\"\n [attr.aria-label]=\"resolvedAriaLabel\"\n [attr.aria-required]=\"required ? 'true' : null\"\n [attr.aria-invalid]=\"invalid ? 'true' : null\"\n [attr.aria-valuenow]=\"value ?? null\"\n [attr.aria-valuemin]=\"min ?? null\"\n [attr.aria-valuemax]=\"max ?? null\"\n [attr.aria-describedby]=\"messageKey() ? identity.id + '-error' : null\"\n />\n\n @if (messageKey()) {\n <small\n [id]=\"identity.id + '-error'\"\n [ngClass]=\"getInvalidMessageClass()\"\n role=\"alert\"\n aria-live=\"polite\"\n >\n {{ messageKey() | translate }}\n </small>\n }\n </div>\n", styles: [".sdc-number-input .sdc-number-input__label-row{display:flex;align-items:center;gap:var(--sdc-form-label-row-gap);margin-bottom:var(--sdc-form-label-row-mb)}.sdc-number-input .sdc-number-input__label{display:inline-flex;align-items:center;margin-bottom:0;line-height:1;padding-top:var(--sdc-form-label-py);padding-bottom:var(--sdc-form-label-py);min-width:0}.sdc-number-input .sdc-number-input__label-text{display:inline-flex;align-items:center}.sdc-number-input .required-field{margin-left:var(--sdc-form-required-ml);color:var(--sdc-form-required-color, var(--sdc-error-color, #d98888));font-weight:400}.sdc-number-input .sr-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sdc-number-input .sdc-number-input__info-tooltip-wrap{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;padding:0;margin:0}.sdc-number-input .sdc-number-input__info-tooltip-icon{display:inline-flex;align-items:center;justify-content:center;width:var(--sdc-form-tooltip-size);height:var(--sdc-form-tooltip-size);line-height:1;cursor:pointer;color:var(--sdc-form-tooltip-color)}.sdc-number-input .sdc-number-input__input{width:100%;border:1px solid var(--sdc-formfield-default-border)!important;border-radius:var(--sdc-formfield-border-radius)!important;min-height:var(--sdc-formfield-default-height)!important;height:var(--sdc-formfield-default-height)!important;max-height:var(--sdc-formfield-default-height)!important;line-height:var(--sdc-formfield-default-line-height)!important;padding:0 var(--sdc-form-input-padding-x)!important;background-color:var(--sdc-formfield-default-bg)!important;color:var(--p-text-color, #111827)!important;font-family:inherit!important;font-size:inherit!important;font-weight:inherit!important;box-sizing:border-box!important;transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}.sdc-number-input .sdc-number-input__input--align-right{text-align:right}.sdc-number-input .sdc-number-input__input:focus{outline:none;border-color:var(--sdc-formfield-focus-color, var(--sdc-tab-primary, #007bff))!important;box-shadow:var(--sdc-formfield-focus-shadow, 0 0 0 2px rgba(0, 123, 255, .14))!important}.sdc-number-input .sdc-number-input__input:focus-visible{outline:none;border-color:var(--sdc-formfield-focus-color, var(--sdc-tab-primary, #007bff))!important;box-shadow:var(--sdc-formfield-focus-shadow-visible, 0 0 0 2px rgba(0, 123, 255, .2))!important}.sdc-number-input .sdc-number-input__input:disabled{background-color:var(--sdc-formfield-disabled-bg)!important;cursor:not-allowed!important}.sdc-number-input .sdc-number-input__input.sdc-number-input__input--invalid,.sdc-number-input .sdc-number-input__input[aria-invalid=true],.sdc-number-input .sdc-number-input__input.ng-invalid.ng-dirty,.sdc-number-input .sdc-number-input__input.ng-invalid.ng-touched{border-color:var(--sdc-formfield-invalid-border, var(--sdc-error-color, #d98888))!important;box-shadow:none!important}.sdc-number-input .sdc-number-input__input.sdc-number-input__input--invalid:focus,.sdc-number-input .sdc-number-input__input.sdc-number-input__input--invalid:focus-visible,.sdc-number-input .sdc-number-input__input[aria-invalid=true]:focus,.sdc-number-input .sdc-number-input__input[aria-invalid=true]:focus-visible,.sdc-number-input .sdc-number-input__input.ng-invalid.ng-dirty:focus,.sdc-number-input .sdc-number-input__input.ng-invalid.ng-dirty:focus-visible,.sdc-number-input .sdc-number-input__input.ng-invalid.ng-touched:focus,.sdc-number-input .sdc-number-input__input.ng-invalid.ng-touched:focus-visible{border-color:var(--sdc-formfield-invalid-border, var(--sdc-error-color, #d98888))!important;box-shadow:var(--sdc-formfield-invalid-focus-shadow, 0 0 0 2px rgba(217, 136, 136, .16))!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "component", type: TooltipComponent, selector: "sdc-tooltip", inputs: ["pTooltip", "tooltipPosition", "tooltipEvent", "fitContent", "tooltipDisabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
184
+ ], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"sdc-number-input\">\n @if (labelKey() || hasTooltip) {\n <div class=\"sdc-number-input__label-row\">\n @if (labelKey()) {\n <label [for]=\"identity.id\" class=\"sdc-number-input__label\">\n <span class=\"sdc-number-input__label-text\">\n {{ labelKey() | translate }}\n @if (required) {\n <span class=\"required-field\" aria-hidden=\"true\">*</span>\n }\n @if (required) {\n <span class=\"sr-only\">\n {{ 'platform.datacore.accessibility.required_field' | translate }}\n </span>\n }\n </span>\n </label>\n }\n @if (hasTooltip) {\n <sdc-tooltip\n class=\"sdc-number-input__info-tooltip-wrap\"\n [pTooltip]=\"infoTooltip\"\n [tooltipPosition]=\"infoTooltipPosition\"\n [tooltipEvent]=\"infoTooltipEvent\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <i class=\"fas fa-info-circle sdc-number-input__info-tooltip-icon\" aria-hidden=\"true\"></i>\n </sdc-tooltip>\n }\n </div>\n }\n\n <input\n class=\"sdc-number-input__input\"\n (blur)=\"onBlur()\"\n (focus)=\"onFocus()\"\n (input)=\"onNativeInput($event)\"\n (paste)=\"onPaste($event)\"\n [disabled]=\"disabled\"\n [id]=\"identity.id\"\n [name]=\"identity.name\"\n [ngClass]=\"getInvalidClass()\"\n [ngStyle]=\"getInputStyle()\"\n [class.sdc-number-input__input--align-right]=\"alignTo === 'right'\"\n [class.sdc-number-input__input--invalid]=\"invalid\"\n [placeholder]=\"resolvedPlaceholder\"\n [required]=\"required\"\n [value]=\"displayValue\"\n type=\"text\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n [attr.inputmode]=\"inputMode\"\n [attr.maxlength]=\"resolvedMaxLength\"\n [attr.min]=\"min ?? null\"\n [attr.max]=\"max ?? null\"\n [attr.step]=\"resolvedStep\"\n [attr.role]=\"'spinbutton'\"\n [attr.aria-label]=\"resolvedAriaLabel\"\n [attr.aria-required]=\"required ? 'true' : null\"\n [attr.aria-invalid]=\"invalid ? 'true' : null\"\n [attr.aria-valuenow]=\"value ?? null\"\n [attr.aria-valuemin]=\"min ?? null\"\n [attr.aria-valuemax]=\"max ?? null\"\n [attr.aria-describedby]=\"messageKey() ? identity.id + '-error' : null\"\n />\n\n @if (messageKey()) {\n <small\n [id]=\"identity.id + '-error'\"\n [ngClass]=\"getInvalidMessageClass()\"\n role=\"alert\"\n aria-live=\"polite\"\n >\n {{ messageKey() | translate }}\n </small>\n }\n </div>\n", styles: [".sdc-number-input .sdc-number-input__label-row{display:flex;align-items:center;gap:var(--sdc-form-label-row-gap);margin-bottom:var(--sdc-form-label-row-mb)}.sdc-number-input .sdc-number-input__label{display:inline-flex;align-items:center;margin-bottom:0;line-height:1;padding-top:var(--sdc-form-label-py);padding-bottom:var(--sdc-form-label-py);min-width:0}.sdc-number-input .sdc-number-input__label-text{display:inline-flex;align-items:center}.sdc-number-input .required-field{margin-left:var(--sdc-form-required-ml);color:var(--sdc-form-required-color, var(--sdc-error-color, #d98888));font-weight:400}.sdc-number-input .sr-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sdc-number-input .sdc-number-input__info-tooltip-wrap{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;padding:0;margin:0}.sdc-number-input .sdc-number-input__info-tooltip-icon{display:inline-flex;align-items:center;justify-content:center;width:var(--sdc-form-tooltip-size);height:var(--sdc-form-tooltip-size);line-height:1;cursor:pointer;color:var(--sdc-form-tooltip-color)}.sdc-number-input .sdc-number-input__input{width:100%;border:1px solid var(--sdc-formfield-default-border)!important;border-radius:var(--sdc-formfield-border-radius)!important;min-height:var(--sdc-formfield-default-height)!important;height:var(--sdc-formfield-default-height)!important;max-height:var(--sdc-formfield-default-height)!important;line-height:var(--sdc-formfield-default-line-height)!important;padding:0 var(--sdc-form-input-padding-x)!important;background-color:var(--sdc-formfield-default-bg)!important;color:var(--p-text-color, #111827)!important;font-family:inherit!important;font-size:inherit!important;font-weight:inherit!important;box-sizing:border-box!important;transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}.sdc-number-input .sdc-number-input__input--align-right{text-align:right}.sdc-number-input .sdc-number-input__input:focus{outline:none;border-color:var(--sdc-formfield-focus-color, var(--sdc-tab-primary, #007bff))!important;box-shadow:var(--sdc-formfield-focus-shadow, 0 0 0 2px rgba(0, 123, 255, .14))!important}.sdc-number-input .sdc-number-input__input:focus-visible{outline:none;border-color:var(--sdc-formfield-focus-color, var(--sdc-tab-primary, #007bff))!important;box-shadow:var(--sdc-formfield-focus-shadow-visible, 0 0 0 2px rgba(0, 123, 255, .2))!important}.sdc-number-input .sdc-number-input__input:disabled{background-color:var(--sdc-formfield-disabled-bg)!important;cursor:not-allowed!important}.sdc-number-input .sdc-number-input__input.sdc-number-input__input--invalid,.sdc-number-input .sdc-number-input__input[aria-invalid=true],.sdc-number-input .sdc-number-input__input.ng-invalid.ng-dirty,.sdc-number-input .sdc-number-input__input.ng-invalid.ng-touched{border-color:var(--sdc-formfield-invalid-border, var(--sdc-error-color, #d98888))!important;box-shadow:none!important}.sdc-number-input .sdc-number-input__input.sdc-number-input__input--invalid:focus,.sdc-number-input .sdc-number-input__input.sdc-number-input__input--invalid:focus-visible,.sdc-number-input .sdc-number-input__input[aria-invalid=true]:focus,.sdc-number-input .sdc-number-input__input[aria-invalid=true]:focus-visible,.sdc-number-input .sdc-number-input__input.ng-invalid.ng-dirty:focus,.sdc-number-input .sdc-number-input__input.ng-invalid.ng-dirty:focus-visible,.sdc-number-input .sdc-number-input__input.ng-invalid.ng-touched:focus,.sdc-number-input .sdc-number-input__input.ng-invalid.ng-touched:focus-visible{border-color:var(--sdc-formfield-invalid-border, var(--sdc-error-color, #d98888))!important;box-shadow:var(--sdc-formfield-invalid-focus-shadow, 0 0 0 2px rgba(217, 136, 136, .16))!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "component", type: TooltipComponent, selector: "sdc-tooltip", inputs: ["pTooltip", "tooltipPosition", "tooltipEvent", "fitContent", "tooltipDisabled", "allowHtml"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
185
185
  }
186
186
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NumberInputComponent, decorators: [{
187
187
  type: Component,
@@ -137,12 +137,12 @@ export class PaginatorComponent {
137
137
  });
138
138
  }
139
139
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PaginatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
140
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: PaginatorComponent, isStandalone: true, selector: "sdc-paginator", inputs: { first: { classPropertyName: "first", publicName: "first", isSignal: true, isRequired: true, transformFunction: null }, rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: true, transformFunction: null }, totalRecords: { classPropertyName: "totalRecords", publicName: "totalRecords", isSignal: true, isRequired: true, transformFunction: null }, rowsPerPageOptions: { classPropertyName: "rowsPerPageOptions", publicName: "rowsPerPageOptions", isSignal: true, isRequired: false, transformFunction: null }, showRowsPerPageSelector: { classPropertyName: "showRowsPerPageSelector", publicName: "showRowsPerPageSelector", isSignal: true, isRequired: false, transformFunction: null }, isMobile: { classPropertyName: "isMobile", publicName: "isMobile", isSignal: true, isRequired: false, transformFunction: null }, totalRecordsLabel: { classPropertyName: "totalRecordsLabel", publicName: "totalRecordsLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { pageChange: "pageChange" }, ngImport: i0, template: "<nav\n class=\"sdc-paginator\"\n role=\"navigation\"\n [attr.aria-label]=\"'platform.datacore.accessibility.pagination_navigation' | translate\"\n>\n <div class=\"sdc-paginator-left\">\n <div class=\"sdc-paginator-pages\">\n <button\n type=\"button\"\n class=\"sdc-page sdc-edge\"\n [disabled]=\"!canGoBack()\"\n (click)=\"firstPage()\"\n [attr.aria-label]=\"'platform.datacore.accessibility.first_page' | translate\"\n >\n <i class=\"fas fa-angle-double-left\" aria-hidden=\"true\"></i>\n </button>\n\n <button\n type=\"button\"\n class=\"sdc-page sdc-edge\"\n [disabled]=\"!canGoBack()\"\n (click)=\"prevPage()\"\n [attr.aria-label]=\"'platform.datacore.accessibility.previous_page' | translate\"\n >\n <i class=\"fas fa-angle-left\" aria-hidden=\"true\"></i>\n </button>\n\n @for (p of pages(); track $index) {\n @if (asNumber(p)) {\n <button\n type=\"button\"\n class=\"sdc-page\"\n [class.is-active]=\"isCurrent(p)\"\n [attr.aria-current]=\"isCurrent(p) ? 'page' : null\"\n [attr.aria-label]=\"\n isCurrent(p)\n ? ('platform.datacore.accessibility.current_page' | translate).replace('{number}', getPageLabel(p))\n : ('platform.datacore.accessibility.page_number' | translate).replace('{number}', getPageLabel(p))\n \"\n (click)=\"gotoPage(p)\"\n >\n {{ p + 1 }}\n </button>\n } @else {\n <button type=\"button\" class=\"sdc-page sdc-page--ellipsis\" disabled aria-hidden=\"true\" tabindex=\"-1\">\n <span class=\"sdc-ellipsis-dots\" aria-hidden=\"true\">\n <span class=\"sdc-ellipsis-dot\"></span>\n <span class=\"sdc-ellipsis-dot\"></span>\n <span class=\"sdc-ellipsis-dot\"></span>\n </span>\n </button>\n }\n }\n\n <button\n type=\"button\"\n class=\"sdc-page sdc-edge\"\n [disabled]=\"!canGoForward()\"\n (click)=\"nextPage()\"\n [attr.aria-label]=\"'platform.datacore.accessibility.next_page' | translate\"\n >\n <i class=\"fas fa-angle-right\" aria-hidden=\"true\"></i>\n </button>\n\n <button\n type=\"button\"\n class=\"sdc-page sdc-edge\"\n [disabled]=\"!canGoForward()\"\n (click)=\"lastPage()\"\n [attr.aria-label]=\"'platform.datacore.accessibility.last_page' | translate\"\n >\n <i class=\"fas fa-angle-double-right\" aria-hidden=\"true\"></i>\n </button>\n </div>\n\n @if (showRowsPerPageSelector()) {\n <sdc-combobox\n class=\"sdc-rows-combobox\"\n [multiple]=\"false\"\n [options]=\"rowOptions()\"\n [appendTo]=\"'body'\"\n [showClear]=\"false\"\n [ngModel]=\"rows().toString()\"\n (onSelectedItem)=\"onRowsComboModel($event)\"\n [attr.aria-label]=\"'platform.datacore.accessibility.rows_per_page' | translate\"\n >\n </sdc-combobox>\n }\n </div>\n\n @if (totalRecordsLabel()) {\n <span class=\"sdc-total\" aria-live=\"polite\">\n @if (shouldDisplayTotalRecordsFirst()) {\n {{ totalRecords() }} {{ totalRecordsDisplayLabel() | translate }}\n } @else {\n {{ totalRecordsDisplayLabel() | translate }}: {{ totalRecords() }}\n }\n </span>\n }\n</nav>\n", styles: [":host{--sdc-paginator-page-size: var(--sdc-table-paginator-size, 34px);--sdc-paginator-border: var(--sdc-table-border-gray, #cccccc);--sdc-paginator-primary: var(--sdc-table-primary, #428bca);--sdc-paginator-primary-hover: var(--sdc-table-primary-hover, #6aa3d5);display:block}.sdc-paginator{display:flex;align-items:center;justify-content:space-between;gap:var(--sdc-paginator-gap, 1rem);width:100%;box-sizing:border-box;padding:var(--sdc-paginator-padding, 10px 10px 10px 0)}.sdc-paginator .sdc-paginator-left{display:inline-flex;align-items:center;gap:var(--sdc-paginator-section-gap, .75rem)}.sdc-paginator .sdc-paginator-left ::ng-deep .sdc-combobox{width:var(--sdc-paginator-combobox-width, 6.5rem)!important;padding-left:var(--sdc-paginator-combobox-padding-left, 1rem)!important}.sdc-paginator .sdc-paginator-pages{display:inline-flex;align-items:center;gap:0}.sdc-paginator .sdc-page{appearance:none;-webkit-appearance:none;box-sizing:border-box;width:var(--sdc-paginator-page-size);min-width:var(--sdc-paginator-page-size);max-width:var(--sdc-paginator-page-size);height:var(--sdc-paginator-page-size);min-height:var(--sdc-paginator-page-size);max-height:var(--sdc-paginator-page-size);margin:0;padding:0;border:1px solid var(--sdc-paginator-border);border-right-width:0;border-radius:0;background:transparent;color:var(--sdc-paginator-primary);display:inline-flex;align-items:center;justify-content:center;flex:0 0 var(--sdc-paginator-page-size);overflow:hidden;cursor:pointer;text-align:center;line-height:1;transition:var(--sdc-paginator-transition, background-color .2s ease-out, color .2s ease-out, border-color .2s ease-out)}.sdc-paginator .sdc-page:focus-visible{outline:2px solid currentColor;outline-offset:2px;z-index:1;position:relative}.sdc-paginator .sdc-page:hover:not(:disabled):not(.sdc-page--ellipsis):not(.is-active){color:var(--sdc-paginator-page-hover-text, #202129)}.sdc-paginator .sdc-page.is-active,.sdc-paginator .sdc-page.is-active:hover{background:var(--sdc-paginator-primary);color:var(--sdc-paginator-active-text, #ffffff);border-color:var(--sdc-paginator-primary)}.sdc-paginator .sdc-page:disabled{opacity:.5;cursor:not-allowed}.sdc-paginator .sdc-page--ellipsis{opacity:1;cursor:default;pointer-events:none;color:var(--sdc-paginator-primary);overflow:visible}.sdc-paginator .sdc-ellipsis-dots{display:inline-flex;align-items:center;justify-content:center;gap:var(--sdc-paginator-ellipsis-gap, 4px);position:relative;top:var(--sdc-paginator-ellipsis-offset-y, 2px)}.sdc-paginator .sdc-ellipsis-dot{width:var(--sdc-paginator-ellipsis-dot-size, 3px);height:var(--sdc-paginator-ellipsis-dot-size, 3px);border-radius:var(--sdc-radius-pill, 9999px);background:currentColor;display:block}.sdc-paginator .sdc-paginator-pages>.sdc-page:first-child{border-radius:var(--sdc-paginator-radius, 4px) 0 0 var(--sdc-paginator-radius, 4px)}.sdc-paginator .sdc-paginator-pages>.sdc-page:last-child{border-right-width:1px;border-radius:0 var(--sdc-paginator-radius, 4px) var(--sdc-paginator-radius, 4px) 0}.sdc-paginator .sdc-rows-combobox{width:max-content;min-width:var(--sdc-paginator-rows-min-width, 88px)}.sdc-paginator .sdc-total{white-space:nowrap}::ng-deep .sdc-paginator .sdc-rows-combobox{min-height:var(--sdc-paginator-rows-min-height, 24px)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { 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: ComboboxComponent, selector: "sdc-combobox", inputs: ["multiple", "appendTo", "zIndex", "options", "overrideChipMessage", "maxSelectedLabels", "showClear", "iconSelector", "showIconClass", "infoTooltip", "infoTooltipPosition", "infoTooltipEvent"], outputs: ["onSelectedItem"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
140
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: PaginatorComponent, isStandalone: true, selector: "sdc-paginator", inputs: { first: { classPropertyName: "first", publicName: "first", isSignal: true, isRequired: true, transformFunction: null }, rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: true, transformFunction: null }, totalRecords: { classPropertyName: "totalRecords", publicName: "totalRecords", isSignal: true, isRequired: true, transformFunction: null }, rowsPerPageOptions: { classPropertyName: "rowsPerPageOptions", publicName: "rowsPerPageOptions", isSignal: true, isRequired: false, transformFunction: null }, showRowsPerPageSelector: { classPropertyName: "showRowsPerPageSelector", publicName: "showRowsPerPageSelector", isSignal: true, isRequired: false, transformFunction: null }, isMobile: { classPropertyName: "isMobile", publicName: "isMobile", isSignal: true, isRequired: false, transformFunction: null }, totalRecordsLabel: { classPropertyName: "totalRecordsLabel", publicName: "totalRecordsLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { pageChange: "pageChange" }, ngImport: i0, template: "<nav\n class=\"sdc-paginator\"\n role=\"navigation\"\n [attr.aria-label]=\"'platform.datacore.accessibility.pagination_navigation' | translate\"\n>\n <div class=\"sdc-paginator-left\">\n <div class=\"sdc-paginator-pages\">\n <button\n type=\"button\"\n class=\"sdc-page sdc-edge\"\n [disabled]=\"!canGoBack()\"\n (click)=\"firstPage()\"\n [attr.aria-label]=\"'platform.datacore.accessibility.first_page' | translate\"\n >\n <i class=\"fas fa-angle-double-left\" aria-hidden=\"true\"></i>\n </button>\n\n <button\n type=\"button\"\n class=\"sdc-page sdc-edge\"\n [disabled]=\"!canGoBack()\"\n (click)=\"prevPage()\"\n [attr.aria-label]=\"'platform.datacore.accessibility.previous_page' | translate\"\n >\n <i class=\"fas fa-angle-left\" aria-hidden=\"true\"></i>\n </button>\n\n @for (p of pages(); track $index) {\n @if (asNumber(p)) {\n <button\n type=\"button\"\n class=\"sdc-page\"\n [class.is-active]=\"isCurrent(p)\"\n [attr.aria-current]=\"isCurrent(p) ? 'page' : null\"\n [attr.aria-label]=\"\n isCurrent(p)\n ? ('platform.datacore.accessibility.current_page' | translate).replace('{number}', getPageLabel(p))\n : ('platform.datacore.accessibility.page_number' | translate).replace('{number}', getPageLabel(p))\n \"\n (click)=\"gotoPage(p)\"\n >\n {{ p + 1 }}\n </button>\n } @else {\n <button type=\"button\" class=\"sdc-page sdc-page--ellipsis\" disabled aria-hidden=\"true\" tabindex=\"-1\">\n <span class=\"sdc-ellipsis-dots\" aria-hidden=\"true\">\n <span class=\"sdc-ellipsis-dot\"></span>\n <span class=\"sdc-ellipsis-dot\"></span>\n <span class=\"sdc-ellipsis-dot\"></span>\n </span>\n </button>\n }\n }\n\n <button\n type=\"button\"\n class=\"sdc-page sdc-edge\"\n [disabled]=\"!canGoForward()\"\n (click)=\"nextPage()\"\n [attr.aria-label]=\"'platform.datacore.accessibility.next_page' | translate\"\n >\n <i class=\"fas fa-angle-right\" aria-hidden=\"true\"></i>\n </button>\n\n <button\n type=\"button\"\n class=\"sdc-page sdc-edge\"\n [disabled]=\"!canGoForward()\"\n (click)=\"lastPage()\"\n [attr.aria-label]=\"'platform.datacore.accessibility.last_page' | translate\"\n >\n <i class=\"fas fa-angle-double-right\" aria-hidden=\"true\"></i>\n </button>\n </div>\n\n @if (showRowsPerPageSelector()) {\n <sdc-combobox\n class=\"sdc-rows-combobox\"\n [multiple]=\"false\"\n [options]=\"rowOptions()\"\n [appendTo]=\"'body'\"\n [showClear]=\"false\"\n [ngModel]=\"rows().toString()\"\n (onSelectedItem)=\"onRowsComboModel($event)\"\n [attr.aria-label]=\"'platform.datacore.accessibility.rows_per_page' | translate\"\n >\n </sdc-combobox>\n }\n </div>\n\n @if (totalRecordsLabel()) {\n <span class=\"sdc-total\" aria-live=\"polite\">\n @if (shouldDisplayTotalRecordsFirst()) {\n {{ totalRecords() }} {{ totalRecordsDisplayLabel() | translate }}\n } @else {\n {{ totalRecordsDisplayLabel() | translate }}: {{ totalRecords() }}\n }\n </span>\n }\n</nav>\n", styles: [":host{--sdc-paginator-page-size: var(--sdc-table-paginator-size, 34px);--sdc-paginator-border: var(--sdc-table-border-gray, #cccccc);--sdc-paginator-primary: var(--sdc-table-primary, #428bca);--sdc-paginator-primary-hover: var(--sdc-table-primary-hover, #6aa3d5);display:block}.sdc-paginator{display:flex;align-items:center;justify-content:space-between;gap:var(--sdc-paginator-gap, 1rem);width:100%;box-sizing:border-box;padding:var(--sdc-paginator-padding, 10px 10px 10px 0)}.sdc-paginator .sdc-paginator-left{display:inline-flex;align-items:center;gap:var(--sdc-paginator-section-gap, .75rem)}.sdc-paginator .sdc-paginator-left ::ng-deep .sdc-combobox{width:var(--sdc-paginator-combobox-width, 6.5rem)!important;padding-left:var(--sdc-paginator-combobox-padding-left, 1rem)!important}.sdc-paginator .sdc-paginator-pages{display:inline-flex;align-items:center;gap:0}.sdc-paginator .sdc-page{appearance:none;-webkit-appearance:none;box-sizing:border-box;width:var(--sdc-paginator-page-size);min-width:var(--sdc-paginator-page-size);max-width:var(--sdc-paginator-page-size);height:var(--sdc-paginator-page-size);min-height:var(--sdc-paginator-page-size);max-height:var(--sdc-paginator-page-size);margin:0;padding:0;border:1px solid var(--sdc-paginator-border);border-right-width:0;border-radius:0;background:transparent;color:var(--sdc-paginator-primary);display:inline-flex;align-items:center;justify-content:center;flex:0 0 var(--sdc-paginator-page-size);overflow:hidden;cursor:pointer;text-align:center;line-height:1;transition:var(--sdc-paginator-transition, background-color .2s ease-out, color .2s ease-out, border-color .2s ease-out)}.sdc-paginator .sdc-page:focus-visible{outline:2px solid currentColor;outline-offset:2px;z-index:1;position:relative}.sdc-paginator .sdc-page:hover:not(:disabled):not(.sdc-page--ellipsis):not(.is-active){color:var(--sdc-paginator-page-hover-text, #202129)}.sdc-paginator .sdc-page.is-active,.sdc-paginator .sdc-page.is-active:hover{background:var(--sdc-paginator-primary);color:var(--sdc-paginator-active-text, #ffffff);border-color:var(--sdc-paginator-primary)}.sdc-paginator .sdc-page:disabled{opacity:.5;cursor:not-allowed}.sdc-paginator .sdc-page--ellipsis{opacity:1;cursor:default;pointer-events:none;color:var(--sdc-paginator-primary);overflow:visible}.sdc-paginator .sdc-ellipsis-dots{display:inline-flex;align-items:center;justify-content:center;gap:var(--sdc-paginator-ellipsis-gap, 4px);position:relative;top:var(--sdc-paginator-ellipsis-offset-y, 2px)}.sdc-paginator .sdc-ellipsis-dot{width:var(--sdc-paginator-ellipsis-dot-size, 3px);height:var(--sdc-paginator-ellipsis-dot-size, 3px);border-radius:var(--sdc-radius-pill, 9999px);background:currentColor;display:block}.sdc-paginator .sdc-paginator-pages>.sdc-page:first-child{border-radius:var(--sdc-paginator-radius, 4px) 0 0 var(--sdc-paginator-radius, 4px)}.sdc-paginator .sdc-paginator-pages>.sdc-page:last-child{border-right-width:1px;border-radius:0 var(--sdc-paginator-radius, 4px) var(--sdc-paginator-radius, 4px) 0}.sdc-paginator .sdc-rows-combobox{width:max-content;min-width:var(--sdc-paginator-rows-min-width, 88px)}.sdc-paginator .sdc-total{white-space:nowrap}::ng-deep .sdc-paginator .sdc-rows-combobox{min-height:var(--sdc-paginator-rows-min-height, 24px)}@media (max-width: 768px){.sdc-paginator{flex-direction:column;align-items:center;justify-content:center;gap:.375rem;padding:.625rem .5rem}.sdc-paginator .sdc-paginator-left{flex-wrap:wrap;justify-content:center}.sdc-paginator .sdc-total{font-size:.8125rem}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { 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: ComboboxComponent, selector: "sdc-combobox", inputs: ["multiple", "appendTo", "zIndex", "options", "overrideChipMessage", "maxSelectedLabels", "showClear", "iconSelector", "showIconClass", "infoTooltip", "infoTooltipPosition", "infoTooltipEvent", "infoTooltipAllowHtml"], outputs: ["onSelectedItem", "panelClosed"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
141
141
  }
142
142
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PaginatorComponent, decorators: [{
143
143
  type: Component,
144
- args: [{ selector: 'sdc-paginator', standalone: true, imports: [CommonModule, FormsModule, ComboboxComponent, TranslateModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<nav\n class=\"sdc-paginator\"\n role=\"navigation\"\n [attr.aria-label]=\"'platform.datacore.accessibility.pagination_navigation' | translate\"\n>\n <div class=\"sdc-paginator-left\">\n <div class=\"sdc-paginator-pages\">\n <button\n type=\"button\"\n class=\"sdc-page sdc-edge\"\n [disabled]=\"!canGoBack()\"\n (click)=\"firstPage()\"\n [attr.aria-label]=\"'platform.datacore.accessibility.first_page' | translate\"\n >\n <i class=\"fas fa-angle-double-left\" aria-hidden=\"true\"></i>\n </button>\n\n <button\n type=\"button\"\n class=\"sdc-page sdc-edge\"\n [disabled]=\"!canGoBack()\"\n (click)=\"prevPage()\"\n [attr.aria-label]=\"'platform.datacore.accessibility.previous_page' | translate\"\n >\n <i class=\"fas fa-angle-left\" aria-hidden=\"true\"></i>\n </button>\n\n @for (p of pages(); track $index) {\n @if (asNumber(p)) {\n <button\n type=\"button\"\n class=\"sdc-page\"\n [class.is-active]=\"isCurrent(p)\"\n [attr.aria-current]=\"isCurrent(p) ? 'page' : null\"\n [attr.aria-label]=\"\n isCurrent(p)\n ? ('platform.datacore.accessibility.current_page' | translate).replace('{number}', getPageLabel(p))\n : ('platform.datacore.accessibility.page_number' | translate).replace('{number}', getPageLabel(p))\n \"\n (click)=\"gotoPage(p)\"\n >\n {{ p + 1 }}\n </button>\n } @else {\n <button type=\"button\" class=\"sdc-page sdc-page--ellipsis\" disabled aria-hidden=\"true\" tabindex=\"-1\">\n <span class=\"sdc-ellipsis-dots\" aria-hidden=\"true\">\n <span class=\"sdc-ellipsis-dot\"></span>\n <span class=\"sdc-ellipsis-dot\"></span>\n <span class=\"sdc-ellipsis-dot\"></span>\n </span>\n </button>\n }\n }\n\n <button\n type=\"button\"\n class=\"sdc-page sdc-edge\"\n [disabled]=\"!canGoForward()\"\n (click)=\"nextPage()\"\n [attr.aria-label]=\"'platform.datacore.accessibility.next_page' | translate\"\n >\n <i class=\"fas fa-angle-right\" aria-hidden=\"true\"></i>\n </button>\n\n <button\n type=\"button\"\n class=\"sdc-page sdc-edge\"\n [disabled]=\"!canGoForward()\"\n (click)=\"lastPage()\"\n [attr.aria-label]=\"'platform.datacore.accessibility.last_page' | translate\"\n >\n <i class=\"fas fa-angle-double-right\" aria-hidden=\"true\"></i>\n </button>\n </div>\n\n @if (showRowsPerPageSelector()) {\n <sdc-combobox\n class=\"sdc-rows-combobox\"\n [multiple]=\"false\"\n [options]=\"rowOptions()\"\n [appendTo]=\"'body'\"\n [showClear]=\"false\"\n [ngModel]=\"rows().toString()\"\n (onSelectedItem)=\"onRowsComboModel($event)\"\n [attr.aria-label]=\"'platform.datacore.accessibility.rows_per_page' | translate\"\n >\n </sdc-combobox>\n }\n </div>\n\n @if (totalRecordsLabel()) {\n <span class=\"sdc-total\" aria-live=\"polite\">\n @if (shouldDisplayTotalRecordsFirst()) {\n {{ totalRecords() }} {{ totalRecordsDisplayLabel() | translate }}\n } @else {\n {{ totalRecordsDisplayLabel() | translate }}: {{ totalRecords() }}\n }\n </span>\n }\n</nav>\n", styles: [":host{--sdc-paginator-page-size: var(--sdc-table-paginator-size, 34px);--sdc-paginator-border: var(--sdc-table-border-gray, #cccccc);--sdc-paginator-primary: var(--sdc-table-primary, #428bca);--sdc-paginator-primary-hover: var(--sdc-table-primary-hover, #6aa3d5);display:block}.sdc-paginator{display:flex;align-items:center;justify-content:space-between;gap:var(--sdc-paginator-gap, 1rem);width:100%;box-sizing:border-box;padding:var(--sdc-paginator-padding, 10px 10px 10px 0)}.sdc-paginator .sdc-paginator-left{display:inline-flex;align-items:center;gap:var(--sdc-paginator-section-gap, .75rem)}.sdc-paginator .sdc-paginator-left ::ng-deep .sdc-combobox{width:var(--sdc-paginator-combobox-width, 6.5rem)!important;padding-left:var(--sdc-paginator-combobox-padding-left, 1rem)!important}.sdc-paginator .sdc-paginator-pages{display:inline-flex;align-items:center;gap:0}.sdc-paginator .sdc-page{appearance:none;-webkit-appearance:none;box-sizing:border-box;width:var(--sdc-paginator-page-size);min-width:var(--sdc-paginator-page-size);max-width:var(--sdc-paginator-page-size);height:var(--sdc-paginator-page-size);min-height:var(--sdc-paginator-page-size);max-height:var(--sdc-paginator-page-size);margin:0;padding:0;border:1px solid var(--sdc-paginator-border);border-right-width:0;border-radius:0;background:transparent;color:var(--sdc-paginator-primary);display:inline-flex;align-items:center;justify-content:center;flex:0 0 var(--sdc-paginator-page-size);overflow:hidden;cursor:pointer;text-align:center;line-height:1;transition:var(--sdc-paginator-transition, background-color .2s ease-out, color .2s ease-out, border-color .2s ease-out)}.sdc-paginator .sdc-page:focus-visible{outline:2px solid currentColor;outline-offset:2px;z-index:1;position:relative}.sdc-paginator .sdc-page:hover:not(:disabled):not(.sdc-page--ellipsis):not(.is-active){color:var(--sdc-paginator-page-hover-text, #202129)}.sdc-paginator .sdc-page.is-active,.sdc-paginator .sdc-page.is-active:hover{background:var(--sdc-paginator-primary);color:var(--sdc-paginator-active-text, #ffffff);border-color:var(--sdc-paginator-primary)}.sdc-paginator .sdc-page:disabled{opacity:.5;cursor:not-allowed}.sdc-paginator .sdc-page--ellipsis{opacity:1;cursor:default;pointer-events:none;color:var(--sdc-paginator-primary);overflow:visible}.sdc-paginator .sdc-ellipsis-dots{display:inline-flex;align-items:center;justify-content:center;gap:var(--sdc-paginator-ellipsis-gap, 4px);position:relative;top:var(--sdc-paginator-ellipsis-offset-y, 2px)}.sdc-paginator .sdc-ellipsis-dot{width:var(--sdc-paginator-ellipsis-dot-size, 3px);height:var(--sdc-paginator-ellipsis-dot-size, 3px);border-radius:var(--sdc-radius-pill, 9999px);background:currentColor;display:block}.sdc-paginator .sdc-paginator-pages>.sdc-page:first-child{border-radius:var(--sdc-paginator-radius, 4px) 0 0 var(--sdc-paginator-radius, 4px)}.sdc-paginator .sdc-paginator-pages>.sdc-page:last-child{border-right-width:1px;border-radius:0 var(--sdc-paginator-radius, 4px) var(--sdc-paginator-radius, 4px) 0}.sdc-paginator .sdc-rows-combobox{width:max-content;min-width:var(--sdc-paginator-rows-min-width, 88px)}.sdc-paginator .sdc-total{white-space:nowrap}::ng-deep .sdc-paginator .sdc-rows-combobox{min-height:var(--sdc-paginator-rows-min-height, 24px)}\n"] }]
144
+ args: [{ selector: 'sdc-paginator', standalone: true, imports: [CommonModule, FormsModule, ComboboxComponent, TranslateModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<nav\n class=\"sdc-paginator\"\n role=\"navigation\"\n [attr.aria-label]=\"'platform.datacore.accessibility.pagination_navigation' | translate\"\n>\n <div class=\"sdc-paginator-left\">\n <div class=\"sdc-paginator-pages\">\n <button\n type=\"button\"\n class=\"sdc-page sdc-edge\"\n [disabled]=\"!canGoBack()\"\n (click)=\"firstPage()\"\n [attr.aria-label]=\"'platform.datacore.accessibility.first_page' | translate\"\n >\n <i class=\"fas fa-angle-double-left\" aria-hidden=\"true\"></i>\n </button>\n\n <button\n type=\"button\"\n class=\"sdc-page sdc-edge\"\n [disabled]=\"!canGoBack()\"\n (click)=\"prevPage()\"\n [attr.aria-label]=\"'platform.datacore.accessibility.previous_page' | translate\"\n >\n <i class=\"fas fa-angle-left\" aria-hidden=\"true\"></i>\n </button>\n\n @for (p of pages(); track $index) {\n @if (asNumber(p)) {\n <button\n type=\"button\"\n class=\"sdc-page\"\n [class.is-active]=\"isCurrent(p)\"\n [attr.aria-current]=\"isCurrent(p) ? 'page' : null\"\n [attr.aria-label]=\"\n isCurrent(p)\n ? ('platform.datacore.accessibility.current_page' | translate).replace('{number}', getPageLabel(p))\n : ('platform.datacore.accessibility.page_number' | translate).replace('{number}', getPageLabel(p))\n \"\n (click)=\"gotoPage(p)\"\n >\n {{ p + 1 }}\n </button>\n } @else {\n <button type=\"button\" class=\"sdc-page sdc-page--ellipsis\" disabled aria-hidden=\"true\" tabindex=\"-1\">\n <span class=\"sdc-ellipsis-dots\" aria-hidden=\"true\">\n <span class=\"sdc-ellipsis-dot\"></span>\n <span class=\"sdc-ellipsis-dot\"></span>\n <span class=\"sdc-ellipsis-dot\"></span>\n </span>\n </button>\n }\n }\n\n <button\n type=\"button\"\n class=\"sdc-page sdc-edge\"\n [disabled]=\"!canGoForward()\"\n (click)=\"nextPage()\"\n [attr.aria-label]=\"'platform.datacore.accessibility.next_page' | translate\"\n >\n <i class=\"fas fa-angle-right\" aria-hidden=\"true\"></i>\n </button>\n\n <button\n type=\"button\"\n class=\"sdc-page sdc-edge\"\n [disabled]=\"!canGoForward()\"\n (click)=\"lastPage()\"\n [attr.aria-label]=\"'platform.datacore.accessibility.last_page' | translate\"\n >\n <i class=\"fas fa-angle-double-right\" aria-hidden=\"true\"></i>\n </button>\n </div>\n\n @if (showRowsPerPageSelector()) {\n <sdc-combobox\n class=\"sdc-rows-combobox\"\n [multiple]=\"false\"\n [options]=\"rowOptions()\"\n [appendTo]=\"'body'\"\n [showClear]=\"false\"\n [ngModel]=\"rows().toString()\"\n (onSelectedItem)=\"onRowsComboModel($event)\"\n [attr.aria-label]=\"'platform.datacore.accessibility.rows_per_page' | translate\"\n >\n </sdc-combobox>\n }\n </div>\n\n @if (totalRecordsLabel()) {\n <span class=\"sdc-total\" aria-live=\"polite\">\n @if (shouldDisplayTotalRecordsFirst()) {\n {{ totalRecords() }} {{ totalRecordsDisplayLabel() | translate }}\n } @else {\n {{ totalRecordsDisplayLabel() | translate }}: {{ totalRecords() }}\n }\n </span>\n }\n</nav>\n", styles: [":host{--sdc-paginator-page-size: var(--sdc-table-paginator-size, 34px);--sdc-paginator-border: var(--sdc-table-border-gray, #cccccc);--sdc-paginator-primary: var(--sdc-table-primary, #428bca);--sdc-paginator-primary-hover: var(--sdc-table-primary-hover, #6aa3d5);display:block}.sdc-paginator{display:flex;align-items:center;justify-content:space-between;gap:var(--sdc-paginator-gap, 1rem);width:100%;box-sizing:border-box;padding:var(--sdc-paginator-padding, 10px 10px 10px 0)}.sdc-paginator .sdc-paginator-left{display:inline-flex;align-items:center;gap:var(--sdc-paginator-section-gap, .75rem)}.sdc-paginator .sdc-paginator-left ::ng-deep .sdc-combobox{width:var(--sdc-paginator-combobox-width, 6.5rem)!important;padding-left:var(--sdc-paginator-combobox-padding-left, 1rem)!important}.sdc-paginator .sdc-paginator-pages{display:inline-flex;align-items:center;gap:0}.sdc-paginator .sdc-page{appearance:none;-webkit-appearance:none;box-sizing:border-box;width:var(--sdc-paginator-page-size);min-width:var(--sdc-paginator-page-size);max-width:var(--sdc-paginator-page-size);height:var(--sdc-paginator-page-size);min-height:var(--sdc-paginator-page-size);max-height:var(--sdc-paginator-page-size);margin:0;padding:0;border:1px solid var(--sdc-paginator-border);border-right-width:0;border-radius:0;background:transparent;color:var(--sdc-paginator-primary);display:inline-flex;align-items:center;justify-content:center;flex:0 0 var(--sdc-paginator-page-size);overflow:hidden;cursor:pointer;text-align:center;line-height:1;transition:var(--sdc-paginator-transition, background-color .2s ease-out, color .2s ease-out, border-color .2s ease-out)}.sdc-paginator .sdc-page:focus-visible{outline:2px solid currentColor;outline-offset:2px;z-index:1;position:relative}.sdc-paginator .sdc-page:hover:not(:disabled):not(.sdc-page--ellipsis):not(.is-active){color:var(--sdc-paginator-page-hover-text, #202129)}.sdc-paginator .sdc-page.is-active,.sdc-paginator .sdc-page.is-active:hover{background:var(--sdc-paginator-primary);color:var(--sdc-paginator-active-text, #ffffff);border-color:var(--sdc-paginator-primary)}.sdc-paginator .sdc-page:disabled{opacity:.5;cursor:not-allowed}.sdc-paginator .sdc-page--ellipsis{opacity:1;cursor:default;pointer-events:none;color:var(--sdc-paginator-primary);overflow:visible}.sdc-paginator .sdc-ellipsis-dots{display:inline-flex;align-items:center;justify-content:center;gap:var(--sdc-paginator-ellipsis-gap, 4px);position:relative;top:var(--sdc-paginator-ellipsis-offset-y, 2px)}.sdc-paginator .sdc-ellipsis-dot{width:var(--sdc-paginator-ellipsis-dot-size, 3px);height:var(--sdc-paginator-ellipsis-dot-size, 3px);border-radius:var(--sdc-radius-pill, 9999px);background:currentColor;display:block}.sdc-paginator .sdc-paginator-pages>.sdc-page:first-child{border-radius:var(--sdc-paginator-radius, 4px) 0 0 var(--sdc-paginator-radius, 4px)}.sdc-paginator .sdc-paginator-pages>.sdc-page:last-child{border-right-width:1px;border-radius:0 var(--sdc-paginator-radius, 4px) var(--sdc-paginator-radius, 4px) 0}.sdc-paginator .sdc-rows-combobox{width:max-content;min-width:var(--sdc-paginator-rows-min-width, 88px)}.sdc-paginator .sdc-total{white-space:nowrap}::ng-deep .sdc-paginator .sdc-rows-combobox{min-height:var(--sdc-paginator-rows-min-height, 24px)}@media (max-width: 768px){.sdc-paginator{flex-direction:column;align-items:center;justify-content:center;gap:.375rem;padding:.625rem .5rem}.sdc-paginator .sdc-paginator-left{flex-wrap:wrap;justify-content:center}.sdc-paginator .sdc-total{font-size:.8125rem}}\n"] }]
145
145
  }], propDecorators: { pageChange: [{
146
146
  type: Output
147
147
  }] } });
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvcGFnaW5hdG9yL3BhZ2luYXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3BhZ2luYXRvci9wYWdpbmF0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJMUcsT0FBTyxFQUNMLDJCQUEyQixFQUMzQiw4QkFBOEIsRUFDOUIsNkNBQTZDLEVBQzdDLHFDQUFxQyxFQUNyQyw2QkFBNkIsRUFDN0IsMEJBQTBCLEVBQzFCLGtCQUFrQixFQUNsQiw0QkFBNEIsRUFDNUIsNEJBQTRCLEVBQzVCLDZCQUE2QixFQUM3Qiw2QkFBNkIsRUFDOUIsTUFBTSxzQ0FBc0MsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7OztBQVVuRSxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7SUFDakMsSUFBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztJQUNoQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO0lBRXhDLGtCQUFrQixHQUFHLEtBQUssQ0FBOEIsU0FBUyxDQUFDLENBQUM7SUFDbkUsdUJBQXVCLEdBQUcsS0FBSyxDQUFDLDZDQUE2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U0FBUztZQUNoQixJQUFJLEVBQUUsUUFBUTtZQUNkLElBQUksRUFBRSxRQUFRO1lBQ2QsU0FBUyxFQUFFLGFBQWE7U0FDekIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt3R0F4S1Usa0JBQWtCOzRGQUFsQixrQkFBa0IsNmxDQzlCL0IsbzZHQW9HQSxxd0dEM0VZLFlBQVksOEJBQUUsV0FBVywrVkFBRSxpQkFBaUIsZ1NBQUUsZUFBZTs7NEZBSzVELGtCQUFrQjtrQkFSOUIsU0FBUzsrQkFDRSxlQUFlLGNBQ2IsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxlQUFlLENBQUMsbUJBR3ZELHVCQUF1QixDQUFDLE1BQU07OEJBWXJDLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBjb21wdXRlZCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHR5cGUgeyBPcHRpb25JdGVtLCBPcHRpb25WYWx1ZSB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvc2VtYW50aWNzLnR5cGUnO1xuaW1wb3J0IHR5cGUgeyBQYWdpbmF0b3JTdGF0ZSwgUGFnaW5hdG9yUGFnZXNJdGVtLCBQYWdpbmF0b3JSb3dzUGVyUGFnZU9wdGlvbnMgfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL3BhZ2luYXRvci50eXBlJztcbmltcG9ydCB7XG4gIFBBR0lOQVRPUl9ERUZBVUxUX0lTX01PQklMRSxcbiAgUEFHSU5BVE9SX0RFRkFVTFRfUk9XU19PUFRJT05TLFxuICBQQUdJTkFUT1JfREVGQVVMVF9TSE9XX1JPV1NfUEVSX1BBR0VfU0VMRUNUT1IsXG4gIFBBR0lOQVRPUl9ERUZBVUxUX1RPVEFMX1JFQ09SRFNfTEFCRUwsXG4gIFBBR0lOQVRPUl9ERVNLVE9QX1dJTkRPV19TSVpFLFxuICBQQUdJTkFUT1JfRklSU1RfUEFHRV9JTkRFWCxcbiAgUEFHSU5BVE9SX01JTl9ST1dTLFxuICBQQUdJTkFUT1JfTU9CSUxFX1dJTkRPV19TSVpFLFxuICBQQUdJTkFUT1JfUkVDT1JEX0ZPVU5EX0xBQkVMLFxuICBQQUdJTkFUT1JfUkVDT1JEU19GT1VORF9MQUJFTCxcbiAgUEFHSU5BVE9SX1RPVEFMX1JFQ09SRFNfTEFCRUxcbn0gZnJvbSAnLi4vLi4vY29yZS9jb25zdGFudHMvcGFnaW5hdG9yLmNvbnN0JztcbmltcG9ydCB7IENvbWJvYm94Q29tcG9uZW50IH0gZnJvbSAnLi4vY29tYm9ib3gvY29tYm9ib3guY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2RjLXBhZ2luYXRvcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBDb21ib2JveENvbXBvbmVudCwgVHJhbnNsYXRlTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2luYXRvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BhZ2luYXRvci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBQYWdpbmF0b3JDb21wb25lbnQge1xuICBmaXJzdCA9IGlucHV0LnJlcXVpcmVkPG51bWJlcj4oKTtcbiAgcm93cyA9IGlucHV0LnJlcXVpcmVkPG51bWJlcj4oKTtcbiAgdG90YWxSZWNvcmRzID0gaW5wdXQucmVxdWlyZWQ8bnVtYmVyPigpO1xuXG4gIHJvd3NQZXJQYWdlT3B0aW9ucyA9IGlucHV0PFBhZ2luYXRvclJvd3NQZXJQYWdlT3B0aW9ucz4odW5kZWZpbmVkKTtcbiAgc2hvd1Jvd3NQZXJQYWdlU2VsZWN0b3IgPSBpbnB1dChQQUdJTkFUT1JfREVGQVVMVF9TSE9XX1JPV1NfUEVSX1BBR0VfU0VMRUNUT1IpO1xuICBpc01vYmlsZSA9IGlucHV0KFBBR0lOQVRPUl9ERUZBVUxUX0lTX01PQklMRSk7XG4gIHRvdGFsUmVjb3Jkc0xhYmVsID0gaW5wdXQ8c3RyaW5nPihQQUdJTkFUT1JfREVGQVVMVF9UT1RBTF9SRUNPUkRTX0xBQkVMKTtcblxuICBAT3V0cHV0KCkgcGFnZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8UGFnaW5hdG9yU3RhdGU+KCk7XG5cbiAgcmVhZG9ubHkgZWZmZWN0aXZlUm93c1BlclBhZ2VPcHRpb25zID0gY29tcHV0ZWQ8bnVtYmVyW10+KCgpID0+IHtcbiAgICBjb25zdCBwcm92aWRlZCA9IHRoaXMucm93c1BlclBhZ2VPcHRpb25zKCkgPz8gUEFHSU5BVE9SX0RFRkFVTFRfUk9XU19PUFRJT05TO1xuICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSBbLi4ucHJvdmlkZWRdXG4gICAgICAubWFwKE51bWJlcilcbiAgICAgIC5maWx0ZXIodiA9PiBOdW1iZXIuaXNGaW5pdGUodikgJiYgdiA+IDApXG4gICAgICAubWFwKHYgPT4gTWF0aC50cnVuYyh2KSk7XG5cbiAgICBjb25zdCB1bmlxdWUgPSBBcnJheS5mcm9tKG5ldyBTZXQobm9ybWFsaXplZCkpO1xuICAgIGNvbnN0IGN1cnJlbnRSb3dzID0gTWF0aC5tYXgoUEFHSU5BVE9SX01JTl9ST1dTLCBNYXRoLnRydW5jKHRoaXMucm93cygpIHx8IFBBR0lOQVRPUl9NSU5fUk9XUykpO1xuXG4gICAgaWYgKCF1bmlxdWUuaW5jbHVkZXMoY3VycmVudFJvd3MpKSB7XG4gICAgICB1bmlxdWUudW5zaGlmdChjdXJyZW50Um93cyk7XG4gICAgfVxuXG4gICAgaWYgKHVuaXF1ZS5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBbY3VycmVudFJvd3NdO1xuICAgIH1cblxuICAgIHJldHVybiB1bmlxdWU7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHJvd09wdGlvbnMgPSBjb21wdXRlZDxPcHRpb25JdGVtW10+KCgpID0+XG4gICAgdGhpcy5lZmZlY3RpdmVSb3dzUGVyUGFnZU9wdGlvbnMoKS5tYXAodiA9PiAoe1xuICAgICAgdGV4dDogU3RyaW5nKHYpLFxuICAgICAgdmFsdWU6IFN0cmluZyh2KSBhcyBPcHRpb25WYWx1ZVxuICAgIH0pKVxuICApO1xuXG4gIHJlYWRvbmx5IHBhZ2VDb3VudCA9IGNvbXB1dGVkPG51bWJlcj4oKCkgPT4ge1xuICAgIGNvbnN0IHRvdGFsID0gTWF0aC5tYXgoMCwgdGhpcy50b3RhbFJlY29yZHMoKSk7XG4gICAgY29uc3QgcGFnZVNpemUgPSBNYXRoLm1heChQQUdJTkFUT1JfTUlOX1JPV1MsIHRoaXMucm93cygpKTtcbiAgICByZXR1cm4gTWF0aC5tYXgoMSwgTWF0aC5jZWlsKHRvdGFsIC8gcGFnZVNpemUpKTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgY3VycmVudFBhZ2UgPSBjb21wdXRlZDxudW1iZXI+KCgpID0+IHtcbiAgICBjb25zdCBwYWdlU2l6ZSA9IE1hdGgubWF4KFBBR0lOQVRPUl9NSU5fUk9XUywgdGhpcy5yb3dzKCkpO1xuICAgIGNvbnN0IHJhdyA9IE1hdGguZmxvb3IodGhpcy5maXJzdCgpIC8gcGFnZVNpemUpO1xuICAgIHJldHVybiBNYXRoLm1pbihNYXRoLm1heChyYXcsIFBBR0lOQVRPUl9GSVJTVF9QQUdFX0lOREVYKSwgdGhpcy5wYWdlQ291bnQoKSAtIDEpO1xuICB9KTtcblxuICByZWFkb25seSBwYWdlcyA9IGNvbXB1dGVkPFBhZ2luYXRvclBhZ2VzSXRlbVtdPigoKSA9PiB7XG4gICAgY29uc3QgY291bnQgPSB0aGlzLnBhZ2VDb3VudCgpO1xuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLmN1cnJlbnRQYWdlKCk7XG4gICAgY29uc3Qgd2luZG93U2l6ZSA9IHRoaXMuaXNNb2JpbGUoKSA/IFBBR0lOQVRPUl9NT0JJTEVfV0lORE9XX1NJWkUgOiBQQUdJTkFUT1JfREVTS1RPUF9XSU5ET1dfU0laRTtcblxuICAgIGlmIChjb3VudCA8PSB3aW5kb3dTaXplKSB7XG4gICAgICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aDogY291bnQgfSwgKF8sIGkpID0+IGkpO1xuICAgIH1cblxuICAgIGNvbnN0IHNpZGVTbG90cyA9IE1hdGguZmxvb3IoKHdpbmRvd1NpemUgLSAzKSAvIDIpO1xuICAgIGNvbnN0IHN0YXJ0ID0gTWF0aC5tYXgoMSwgY3VycmVudCAtIHNpZGVTbG90cyk7XG4gICAgY29uc3QgZW5kID0gTWF0aC5taW4oY291bnQgLSAyLCBjdXJyZW50ICsgc2lkZVNsb3RzKTtcblxuICAgIGNvbnN0IGl0ZW1zOiBQYWdpbmF0b3JQYWdlc0l0ZW1bXSA9IFswXTtcblxuICAgIGlmIChzdGFydCA+IDEpIHtcbiAgICAgIGl0ZW1zLnB1c2goJ+KApicpO1xuICAgIH1cblxuICAgIGZvciAobGV0IHAgPSBzdGFydDsgcCA8PSBlbmQ7IHArKykge1xuICAgICAgaXRlbXMucHVzaChwKTtcbiAgICB9XG5cbiAgICBpZiAoZW5kIDwgY291bnQgLSAyKSB7XG4gICAgICBpdGVtcy5wdXNoKCfigKYnKTtcbiAgICB9XG5cbiAgICBpdGVtcy5wdXNoKGNvdW50IC0gMSk7XG5cbiAgICByZXR1cm4gaXRlbXM7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGNhbkdvQmFjayA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHRoaXMuY3VycmVudFBhZ2UoKSA+IFBBR0lOQVRPUl9GSVJTVF9QQUdFX0lOREVYKTtcbiAgcmVhZG9ubHkgY2FuR29Gb3J3YXJkID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4gdGhpcy5jdXJyZW50UGFnZSgpIDwgdGhpcy5wYWdlQ291bnQoKSAtIDEpO1xuICByZWFkb25seSBzaG91bGREaXNwbGF5VG90YWxSZWNvcmRzRmlyc3QgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PlxuICAgIHRoaXMuaXNEZWZhdWx0UmVjb3Jkc0xhYmVsKHRoaXMudG90YWxSZWNvcmRzTGFiZWwoKSlcbiAgKTtcbiAgcmVhZG9ubHkgdG90YWxSZWNvcmRzRGlzcGxheUxhYmVsID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB7XG4gICAgY29uc3QgbGFiZWwgPSB0aGlzLnRvdGFsUmVjb3Jkc0xhYmVsKCk7XG5cbiAgICBpZiAoIXRoaXMuaXNEZWZhdWx0UmVjb3Jkc0xhYmVsKGxhYmVsKSkge1xuICAgICAgcmV0dXJuIGxhYmVsO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnRvdGFsUmVjb3JkcygpID09PSAxXG4gICAgICA/IFBBR0lOQVRPUl9SRUNPUkRfRk9VTkRfTEFCRUxcbiAgICAgIDogUEFHSU5BVE9SX1JFQ09SRFNfRk9VTkRfTEFCRUw7XG4gIH0pO1xuXG4gIGdvdG9QYWdlKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCB0YXJnZXQgPSBNYXRoLm1pbihNYXRoLm1heChNYXRoLnRydW5jKGluZGV4KSwgMCksIHRoaXMucGFnZUNvdW50KCkgLSAxKTtcbiAgICB0aGlzLmVtaXRDaGFuZ2UodGFyZ2V0ICogTWF0aC5tYXgoUEFHSU5BVE9SX01JTl9ST1dTLCB0aGlzLnJvd3MoKSkpO1xuICB9XG5cbiAgZmlyc3RQYWdlKCk6IHZvaWQge1xuICAgIHRoaXMuZ290b1BhZ2UoMCk7XG4gIH1cblxuICBwcmV2UGFnZSgpOiB2b2lkIHtcbiAgICB0aGlzLmdvdG9QYWdlKHRoaXMuY3VycmVudFBhZ2UoKSAtIDEpO1xuICB9XG5cbiAgbmV4dFBhZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5nb3RvUGFnZSh0aGlzLmN1cnJlbnRQYWdlKCkgKyAxKTtcbiAgfVxuXG4gIGxhc3RQYWdlKCk6IHZvaWQge1xuICAgIHRoaXMuZ290b1BhZ2UodGhpcy5wYWdlQ291bnQoKSAtIDEpO1xuICB9XG5cbiAgb25Sb3dzQ2hhbmdlKHJvd3M6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuZW1pdENoYW5nZSgwLCByb3dzKTtcbiAgfVxuXG4gIG9uUm93c0NvbWJvTW9kZWwodmFsOiBPcHRpb25WYWx1ZSB8IE9wdGlvblZhbHVlW10gfCBudWxsKTogdm9pZCB7XG4gICAgY29uc3QgcmF3ID0gQXJyYXkuaXNBcnJheSh2YWwpID8gdmFsWzBdIDogdmFsO1xuICAgIGNvbnN0IG4gPSBOdW1iZXIocmF3KTtcblxuICAgIGlmICghTnVtYmVyLmlzTmFOKG4pICYmIG4gPiAwKSB7XG4gICAgICB0aGlzLm9uUm93c0NoYW5nZShuKTtcbiAgICB9XG4gIH1cblxuICBpc0N1cnJlbnQocGFnZTogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHBhZ2UgPT09IHRoaXMuY3VycmVudFBhZ2UoKTtcbiAgfVxuXG4gIGFzTnVtYmVyKHA6IFBhZ2luYXRvclBhZ2VzSXRlbSk6IHAgaXMgbnVtYmVyIHtcbiAgICByZXR1cm4gdHlwZW9mIHAgPT09ICdudW1iZXInO1xuICB9XG5cbiAgZ2V0UGFnZUxhYmVsKHBhZ2U6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIFN0cmluZyhwYWdlICsgMSk7XG4gIH1cblxuICBwcml2YXRlIGlzRGVmYXVsdFJlY29yZHNMYWJlbChsYWJlbDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIFtcbiAgICAgIFBBR0lOQVRPUl9UT1RBTF9SRUNPUkRTX0xBQkVMLFxuICAgICAgUEFHSU5BVE9SX1JFQ09SRF9GT1VORF9MQUJFTCxcbiAgICAgIFBBR0lOQVRPUl9SRUNPUkRTX0ZPVU5EX0xBQkVMXG4gICAgXS5pbmNsdWRlcyhsYWJlbCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRDaGFuZ2UoZmlyc3Q6IG51bWJlciwgcm93cyA9IHRoaXMucm93cygpKTogdm9pZCB7XG4gICAgY29uc3Qgc2FmZVJvd3MgPSBNYXRoLm1heChQQUdJTkFUT1JfTUlOX1JPV1MsIE1hdGgudHJ1bmMocm93cyB8fCBQQUdJTkFUT1JfTUlOX1JPV1MpKTtcbiAgICBjb25zdCBzYWZlUGFnZUNvdW50ID0gTWF0aC5tYXgoMSwgTWF0aC5jZWlsKE1hdGgubWF4KDAsIHRoaXMudG90YWxSZWNvcmRzKCkpIC8gc2FmZVJvd3MpKTtcbiAgICBjb25zdCBtYXhGaXJzdCA9IE1hdGgubWF4KDAsIChzYWZlUGFnZUNvdW50IC0gMSkgKiBzYWZlUm93cyk7XG4gICAgY29uc3Qgc2FmZUZpcnN0ID0gTWF0aC5taW4oTWF0aC5tYXgoMCwgTWF0aC50cnVuYyhmaXJzdCB8fCAwKSksIG1heEZpcnN0KTtcbiAgICBjb25zdCBzYWZlUGFnZSA9IE1hdGguZmxvb3Ioc2FmZUZpcnN0IC8gc2FmZVJvd3MpO1xuXG4gICAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQoe1xuICAgICAgZmlyc3Q6IHNhZmVGaXJzdCxcbiAgICAgIHJvd3M6IHNhZmVSb3dzLFxuICAgICAgcGFnZTogc2FmZVBhZ2UsXG4gICAgICBwYWdlQ291bnQ6IHNhZmVQYWdlQ291bnRcbiAgICB9KTtcbiAgfVxufVxuIiwiPG5hdlxuICBjbGFzcz1cInNkYy1wYWdpbmF0b3JcIlxuICByb2xlPVwibmF2aWdhdGlvblwiXG4gIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkucGFnaW5hdGlvbl9uYXZpZ2F0aW9uJyB8IHRyYW5zbGF0ZVwiXG4+XG4gIDxkaXYgY2xhc3M9XCJzZGMtcGFnaW5hdG9yLWxlZnRcIj5cbiAgICA8ZGl2IGNsYXNzPVwic2RjLXBhZ2luYXRvci1wYWdlc1wiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJzZGMtcGFnZSBzZGMtZWRnZVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCIhY2FuR29CYWNrKClcIlxuICAgICAgICAoY2xpY2spPVwiZmlyc3RQYWdlKClcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5LmZpcnN0X3BhZ2UnIHwgdHJhbnNsYXRlXCJcbiAgICAgID5cbiAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtYW5nbGUtZG91YmxlLWxlZnRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICA8L2J1dHRvbj5cblxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJzZGMtcGFnZSBzZGMtZWRnZVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCIhY2FuR29CYWNrKClcIlxuICAgICAgICAoY2xpY2spPVwicHJldlBhZ2UoKVwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkucHJldmlvdXNfcGFnZScgfCB0cmFuc2xhdGVcIlxuICAgICAgPlxuICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1hbmdsZS1sZWZ0XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIEBmb3IgKHAgb2YgcGFnZXMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgIEBpZiAoYXNOdW1iZXIocCkpIHtcbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwic2RjLXBhZ2VcIlxuICAgICAgICAgICAgW2NsYXNzLmlzLWFjdGl2ZV09XCJpc0N1cnJlbnQocClcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1jdXJyZW50XT1cImlzQ3VycmVudChwKSA/ICdwYWdlJyA6IG51bGxcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICAgaXNDdXJyZW50KHApXG4gICAgICAgICAgICAgICAgPyAoJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkuY3VycmVudF9wYWdlJyB8IHRyYW5zbGF0ZSkucmVwbGFjZSgne251bWJlcn0nLCBnZXRQYWdlTGFiZWwocCkpXG4gICAgICAgICAgICAgICAgOiAoJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkucGFnZV9udW1iZXInIHwgdHJhbnNsYXRlKS5yZXBsYWNlKCd7bnVtYmVyfScsIGdldFBhZ2VMYWJlbChwKSlcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAoY2xpY2spPVwiZ290b1BhZ2UocClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IHAgKyAxIH19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwic2RjLXBhZ2Ugc2RjLXBhZ2UtLWVsbGlwc2lzXCIgZGlzYWJsZWQgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGFiaW5kZXg9XCItMVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtZWxsaXBzaXMtZG90c1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNkYy1lbGxpcHNpcy1kb3RcIj48L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2RjLWVsbGlwc2lzLWRvdFwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtZWxsaXBzaXMtZG90XCI+PC9zcGFuPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwic2RjLXBhZ2Ugc2RjLWVkZ2VcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiIWNhbkdvRm9yd2FyZCgpXCJcbiAgICAgICAgKGNsaWNrKT1cIm5leHRQYWdlKClcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5Lm5leHRfcGFnZScgfCB0cmFuc2xhdGVcIlxuICAgICAgPlxuICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1hbmdsZS1yaWdodFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cInNkYy1wYWdlIHNkYy1lZGdlXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIiFjYW5Hb0ZvcndhcmQoKVwiXG4gICAgICAgIChjbGljayk9XCJsYXN0UGFnZSgpXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5sYXN0X3BhZ2UnIHwgdHJhbnNsYXRlXCJcbiAgICAgID5cbiAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtYW5nbGUtZG91YmxlLXJpZ2h0XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgICBAaWYgKHNob3dSb3dzUGVyUGFnZVNlbGVjdG9yKCkpIHtcbiAgICAgIDxzZGMtY29tYm9ib3hcbiAgICAgICAgY2xhc3M9XCJzZGMtcm93cy1jb21ib2JveFwiXG4gICAgICAgIFttdWx0aXBsZV09XCJmYWxzZVwiXG4gICAgICAgIFtvcHRpb25zXT1cInJvd09wdGlvbnMoKVwiXG4gICAgICAgIFthcHBlbmRUb109XCInYm9keSdcIlxuICAgICAgICBbc2hvd0NsZWFyXT1cImZhbHNlXCJcbiAgICAgICAgW25nTW9kZWxdPVwicm93cygpLnRvU3RyaW5nKClcIlxuICAgICAgICAob25TZWxlY3RlZEl0ZW0pPVwib25Sb3dzQ29tYm9Nb2RlbCgkZXZlbnQpXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5yb3dzX3Blcl9wYWdlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICA+XG4gICAgICA8L3NkYy1jb21ib2JveD5cbiAgICB9XG4gIDwvZGl2PlxuXG4gIEBpZiAodG90YWxSZWNvcmRzTGFiZWwoKSkge1xuICAgIDxzcGFuIGNsYXNzPVwic2RjLXRvdGFsXCIgYXJpYS1saXZlPVwicG9saXRlXCI+XG4gICAgICBAaWYgKHNob3VsZERpc3BsYXlUb3RhbFJlY29yZHNGaXJzdCgpKSB7XG4gICAgICAgIHt7IHRvdGFsUmVjb3JkcygpIH19IHt7IHRvdGFsUmVjb3Jkc0Rpc3BsYXlMYWJlbCgpIHwgdHJhbnNsYXRlIH19XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAge3sgdG90YWxSZWNvcmRzRGlzcGxheUxhYmVsKCkgfCB0cmFuc2xhdGUgfX06IHt7IHRvdGFsUmVjb3JkcygpIH19XG4gICAgICB9XG4gICAgPC9zcGFuPlxuICB9XG48L25hdj5cbiJdfQ==
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvcGFnaW5hdG9yL3BhZ2luYXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3BhZ2luYXRvci9wYWdpbmF0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJMUcsT0FBTyxFQUNMLDJCQUEyQixFQUMzQiw4QkFBOEIsRUFDOUIsNkNBQTZDLEVBQzdDLHFDQUFxQyxFQUNyQyw2QkFBNkIsRUFDN0IsMEJBQTBCLEVBQzFCLGtCQUFrQixFQUNsQiw0QkFBNEIsRUFDNUIsNEJBQTRCLEVBQzVCLDZCQUE2QixFQUM3Qiw2QkFBNkIsRUFDOUIsTUFBTSxzQ0FBc0MsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7OztBQVVuRSxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7SUFDakMsSUFBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztJQUNoQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO0lBRXhDLGtCQUFrQixHQUFHLEtBQUssQ0FBOEIsU0FBUyxDQUFDLENBQUM7SUFDbkUsdUJBQXVCLEdBQUcsS0FBSyxDQUFDLDZDQUE2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U0FBUztZQUNoQixJQUFJLEVBQUUsUUFBUTtZQUNkLElBQUksRUFBRSxRQUFRO1lBQ2QsU0FBUyxFQUFFLGFBQWE7U0FDekIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt3R0F4S1Usa0JBQWtCOzRGQUFsQixrQkFBa0IsNmxDQzlCL0IsbzZHQW9HQSx1Z0hEM0VZLFlBQVksOEJBQUUsV0FBVywrVkFBRSxpQkFBaUIsdVVBQUUsZUFBZTs7NEZBSzVELGtCQUFrQjtrQkFSOUIsU0FBUzsrQkFDRSxlQUFlLGNBQ2IsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxlQUFlLENBQUMsbUJBR3ZELHVCQUF1QixDQUFDLE1BQU07OEJBWXJDLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBjb21wdXRlZCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHR5cGUgeyBPcHRpb25JdGVtLCBPcHRpb25WYWx1ZSB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvc2VtYW50aWNzLnR5cGUnO1xuaW1wb3J0IHR5cGUgeyBQYWdpbmF0b3JTdGF0ZSwgUGFnaW5hdG9yUGFnZXNJdGVtLCBQYWdpbmF0b3JSb3dzUGVyUGFnZU9wdGlvbnMgfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL3BhZ2luYXRvci50eXBlJztcbmltcG9ydCB7XG4gIFBBR0lOQVRPUl9ERUZBVUxUX0lTX01PQklMRSxcbiAgUEFHSU5BVE9SX0RFRkFVTFRfUk9XU19PUFRJT05TLFxuICBQQUdJTkFUT1JfREVGQVVMVF9TSE9XX1JPV1NfUEVSX1BBR0VfU0VMRUNUT1IsXG4gIFBBR0lOQVRPUl9ERUZBVUxUX1RPVEFMX1JFQ09SRFNfTEFCRUwsXG4gIFBBR0lOQVRPUl9ERVNLVE9QX1dJTkRPV19TSVpFLFxuICBQQUdJTkFUT1JfRklSU1RfUEFHRV9JTkRFWCxcbiAgUEFHSU5BVE9SX01JTl9ST1dTLFxuICBQQUdJTkFUT1JfTU9CSUxFX1dJTkRPV19TSVpFLFxuICBQQUdJTkFUT1JfUkVDT1JEX0ZPVU5EX0xBQkVMLFxuICBQQUdJTkFUT1JfUkVDT1JEU19GT1VORF9MQUJFTCxcbiAgUEFHSU5BVE9SX1RPVEFMX1JFQ09SRFNfTEFCRUxcbn0gZnJvbSAnLi4vLi4vY29yZS9jb25zdGFudHMvcGFnaW5hdG9yLmNvbnN0JztcbmltcG9ydCB7IENvbWJvYm94Q29tcG9uZW50IH0gZnJvbSAnLi4vY29tYm9ib3gvY29tYm9ib3guY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2RjLXBhZ2luYXRvcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBDb21ib2JveENvbXBvbmVudCwgVHJhbnNsYXRlTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2luYXRvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BhZ2luYXRvci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBQYWdpbmF0b3JDb21wb25lbnQge1xuICBmaXJzdCA9IGlucHV0LnJlcXVpcmVkPG51bWJlcj4oKTtcbiAgcm93cyA9IGlucHV0LnJlcXVpcmVkPG51bWJlcj4oKTtcbiAgdG90YWxSZWNvcmRzID0gaW5wdXQucmVxdWlyZWQ8bnVtYmVyPigpO1xuXG4gIHJvd3NQZXJQYWdlT3B0aW9ucyA9IGlucHV0PFBhZ2luYXRvclJvd3NQZXJQYWdlT3B0aW9ucz4odW5kZWZpbmVkKTtcbiAgc2hvd1Jvd3NQZXJQYWdlU2VsZWN0b3IgPSBpbnB1dChQQUdJTkFUT1JfREVGQVVMVF9TSE9XX1JPV1NfUEVSX1BBR0VfU0VMRUNUT1IpO1xuICBpc01vYmlsZSA9IGlucHV0KFBBR0lOQVRPUl9ERUZBVUxUX0lTX01PQklMRSk7XG4gIHRvdGFsUmVjb3Jkc0xhYmVsID0gaW5wdXQ8c3RyaW5nPihQQUdJTkFUT1JfREVGQVVMVF9UT1RBTF9SRUNPUkRTX0xBQkVMKTtcblxuICBAT3V0cHV0KCkgcGFnZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8UGFnaW5hdG9yU3RhdGU+KCk7XG5cbiAgcmVhZG9ubHkgZWZmZWN0aXZlUm93c1BlclBhZ2VPcHRpb25zID0gY29tcHV0ZWQ8bnVtYmVyW10+KCgpID0+IHtcbiAgICBjb25zdCBwcm92aWRlZCA9IHRoaXMucm93c1BlclBhZ2VPcHRpb25zKCkgPz8gUEFHSU5BVE9SX0RFRkFVTFRfUk9XU19PUFRJT05TO1xuICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSBbLi4ucHJvdmlkZWRdXG4gICAgICAubWFwKE51bWJlcilcbiAgICAgIC5maWx0ZXIodiA9PiBOdW1iZXIuaXNGaW5pdGUodikgJiYgdiA+IDApXG4gICAgICAubWFwKHYgPT4gTWF0aC50cnVuYyh2KSk7XG5cbiAgICBjb25zdCB1bmlxdWUgPSBBcnJheS5mcm9tKG5ldyBTZXQobm9ybWFsaXplZCkpO1xuICAgIGNvbnN0IGN1cnJlbnRSb3dzID0gTWF0aC5tYXgoUEFHSU5BVE9SX01JTl9ST1dTLCBNYXRoLnRydW5jKHRoaXMucm93cygpIHx8IFBBR0lOQVRPUl9NSU5fUk9XUykpO1xuXG4gICAgaWYgKCF1bmlxdWUuaW5jbHVkZXMoY3VycmVudFJvd3MpKSB7XG4gICAgICB1bmlxdWUudW5zaGlmdChjdXJyZW50Um93cyk7XG4gICAgfVxuXG4gICAgaWYgKHVuaXF1ZS5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBbY3VycmVudFJvd3NdO1xuICAgIH1cblxuICAgIHJldHVybiB1bmlxdWU7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHJvd09wdGlvbnMgPSBjb21wdXRlZDxPcHRpb25JdGVtW10+KCgpID0+XG4gICAgdGhpcy5lZmZlY3RpdmVSb3dzUGVyUGFnZU9wdGlvbnMoKS5tYXAodiA9PiAoe1xuICAgICAgdGV4dDogU3RyaW5nKHYpLFxuICAgICAgdmFsdWU6IFN0cmluZyh2KSBhcyBPcHRpb25WYWx1ZVxuICAgIH0pKVxuICApO1xuXG4gIHJlYWRvbmx5IHBhZ2VDb3VudCA9IGNvbXB1dGVkPG51bWJlcj4oKCkgPT4ge1xuICAgIGNvbnN0IHRvdGFsID0gTWF0aC5tYXgoMCwgdGhpcy50b3RhbFJlY29yZHMoKSk7XG4gICAgY29uc3QgcGFnZVNpemUgPSBNYXRoLm1heChQQUdJTkFUT1JfTUlOX1JPV1MsIHRoaXMucm93cygpKTtcbiAgICByZXR1cm4gTWF0aC5tYXgoMSwgTWF0aC5jZWlsKHRvdGFsIC8gcGFnZVNpemUpKTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgY3VycmVudFBhZ2UgPSBjb21wdXRlZDxudW1iZXI+KCgpID0+IHtcbiAgICBjb25zdCBwYWdlU2l6ZSA9IE1hdGgubWF4KFBBR0lOQVRPUl9NSU5fUk9XUywgdGhpcy5yb3dzKCkpO1xuICAgIGNvbnN0IHJhdyA9IE1hdGguZmxvb3IodGhpcy5maXJzdCgpIC8gcGFnZVNpemUpO1xuICAgIHJldHVybiBNYXRoLm1pbihNYXRoLm1heChyYXcsIFBBR0lOQVRPUl9GSVJTVF9QQUdFX0lOREVYKSwgdGhpcy5wYWdlQ291bnQoKSAtIDEpO1xuICB9KTtcblxuICByZWFkb25seSBwYWdlcyA9IGNvbXB1dGVkPFBhZ2luYXRvclBhZ2VzSXRlbVtdPigoKSA9PiB7XG4gICAgY29uc3QgY291bnQgPSB0aGlzLnBhZ2VDb3VudCgpO1xuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLmN1cnJlbnRQYWdlKCk7XG4gICAgY29uc3Qgd2luZG93U2l6ZSA9IHRoaXMuaXNNb2JpbGUoKSA/IFBBR0lOQVRPUl9NT0JJTEVfV0lORE9XX1NJWkUgOiBQQUdJTkFUT1JfREVTS1RPUF9XSU5ET1dfU0laRTtcblxuICAgIGlmIChjb3VudCA8PSB3aW5kb3dTaXplKSB7XG4gICAgICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aDogY291bnQgfSwgKF8sIGkpID0+IGkpO1xuICAgIH1cblxuICAgIGNvbnN0IHNpZGVTbG90cyA9IE1hdGguZmxvb3IoKHdpbmRvd1NpemUgLSAzKSAvIDIpO1xuICAgIGNvbnN0IHN0YXJ0ID0gTWF0aC5tYXgoMSwgY3VycmVudCAtIHNpZGVTbG90cyk7XG4gICAgY29uc3QgZW5kID0gTWF0aC5taW4oY291bnQgLSAyLCBjdXJyZW50ICsgc2lkZVNsb3RzKTtcblxuICAgIGNvbnN0IGl0ZW1zOiBQYWdpbmF0b3JQYWdlc0l0ZW1bXSA9IFswXTtcblxuICAgIGlmIChzdGFydCA+IDEpIHtcbiAgICAgIGl0ZW1zLnB1c2goJ+KApicpO1xuICAgIH1cblxuICAgIGZvciAobGV0IHAgPSBzdGFydDsgcCA8PSBlbmQ7IHArKykge1xuICAgICAgaXRlbXMucHVzaChwKTtcbiAgICB9XG5cbiAgICBpZiAoZW5kIDwgY291bnQgLSAyKSB7XG4gICAgICBpdGVtcy5wdXNoKCfigKYnKTtcbiAgICB9XG5cbiAgICBpdGVtcy5wdXNoKGNvdW50IC0gMSk7XG5cbiAgICByZXR1cm4gaXRlbXM7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGNhbkdvQmFjayA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHRoaXMuY3VycmVudFBhZ2UoKSA+IFBBR0lOQVRPUl9GSVJTVF9QQUdFX0lOREVYKTtcbiAgcmVhZG9ubHkgY2FuR29Gb3J3YXJkID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4gdGhpcy5jdXJyZW50UGFnZSgpIDwgdGhpcy5wYWdlQ291bnQoKSAtIDEpO1xuICByZWFkb25seSBzaG91bGREaXNwbGF5VG90YWxSZWNvcmRzRmlyc3QgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PlxuICAgIHRoaXMuaXNEZWZhdWx0UmVjb3Jkc0xhYmVsKHRoaXMudG90YWxSZWNvcmRzTGFiZWwoKSlcbiAgKTtcbiAgcmVhZG9ubHkgdG90YWxSZWNvcmRzRGlzcGxheUxhYmVsID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB7XG4gICAgY29uc3QgbGFiZWwgPSB0aGlzLnRvdGFsUmVjb3Jkc0xhYmVsKCk7XG5cbiAgICBpZiAoIXRoaXMuaXNEZWZhdWx0UmVjb3Jkc0xhYmVsKGxhYmVsKSkge1xuICAgICAgcmV0dXJuIGxhYmVsO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnRvdGFsUmVjb3JkcygpID09PSAxXG4gICAgICA/IFBBR0lOQVRPUl9SRUNPUkRfRk9VTkRfTEFCRUxcbiAgICAgIDogUEFHSU5BVE9SX1JFQ09SRFNfRk9VTkRfTEFCRUw7XG4gIH0pO1xuXG4gIGdvdG9QYWdlKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCB0YXJnZXQgPSBNYXRoLm1pbihNYXRoLm1heChNYXRoLnRydW5jKGluZGV4KSwgMCksIHRoaXMucGFnZUNvdW50KCkgLSAxKTtcbiAgICB0aGlzLmVtaXRDaGFuZ2UodGFyZ2V0ICogTWF0aC5tYXgoUEFHSU5BVE9SX01JTl9ST1dTLCB0aGlzLnJvd3MoKSkpO1xuICB9XG5cbiAgZmlyc3RQYWdlKCk6IHZvaWQge1xuICAgIHRoaXMuZ290b1BhZ2UoMCk7XG4gIH1cblxuICBwcmV2UGFnZSgpOiB2b2lkIHtcbiAgICB0aGlzLmdvdG9QYWdlKHRoaXMuY3VycmVudFBhZ2UoKSAtIDEpO1xuICB9XG5cbiAgbmV4dFBhZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5nb3RvUGFnZSh0aGlzLmN1cnJlbnRQYWdlKCkgKyAxKTtcbiAgfVxuXG4gIGxhc3RQYWdlKCk6IHZvaWQge1xuICAgIHRoaXMuZ290b1BhZ2UodGhpcy5wYWdlQ291bnQoKSAtIDEpO1xuICB9XG5cbiAgb25Sb3dzQ2hhbmdlKHJvd3M6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuZW1pdENoYW5nZSgwLCByb3dzKTtcbiAgfVxuXG4gIG9uUm93c0NvbWJvTW9kZWwodmFsOiBPcHRpb25WYWx1ZSB8IE9wdGlvblZhbHVlW10gfCBudWxsKTogdm9pZCB7XG4gICAgY29uc3QgcmF3ID0gQXJyYXkuaXNBcnJheSh2YWwpID8gdmFsWzBdIDogdmFsO1xuICAgIGNvbnN0IG4gPSBOdW1iZXIocmF3KTtcblxuICAgIGlmICghTnVtYmVyLmlzTmFOKG4pICYmIG4gPiAwKSB7XG4gICAgICB0aGlzLm9uUm93c0NoYW5nZShuKTtcbiAgICB9XG4gIH1cblxuICBpc0N1cnJlbnQocGFnZTogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHBhZ2UgPT09IHRoaXMuY3VycmVudFBhZ2UoKTtcbiAgfVxuXG4gIGFzTnVtYmVyKHA6IFBhZ2luYXRvclBhZ2VzSXRlbSk6IHAgaXMgbnVtYmVyIHtcbiAgICByZXR1cm4gdHlwZW9mIHAgPT09ICdudW1iZXInO1xuICB9XG5cbiAgZ2V0UGFnZUxhYmVsKHBhZ2U6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIFN0cmluZyhwYWdlICsgMSk7XG4gIH1cblxuICBwcml2YXRlIGlzRGVmYXVsdFJlY29yZHNMYWJlbChsYWJlbDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIFtcbiAgICAgIFBBR0lOQVRPUl9UT1RBTF9SRUNPUkRTX0xBQkVMLFxuICAgICAgUEFHSU5BVE9SX1JFQ09SRF9GT1VORF9MQUJFTCxcbiAgICAgIFBBR0lOQVRPUl9SRUNPUkRTX0ZPVU5EX0xBQkVMXG4gICAgXS5pbmNsdWRlcyhsYWJlbCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRDaGFuZ2UoZmlyc3Q6IG51bWJlciwgcm93cyA9IHRoaXMucm93cygpKTogdm9pZCB7XG4gICAgY29uc3Qgc2FmZVJvd3MgPSBNYXRoLm1heChQQUdJTkFUT1JfTUlOX1JPV1MsIE1hdGgudHJ1bmMocm93cyB8fCBQQUdJTkFUT1JfTUlOX1JPV1MpKTtcbiAgICBjb25zdCBzYWZlUGFnZUNvdW50ID0gTWF0aC5tYXgoMSwgTWF0aC5jZWlsKE1hdGgubWF4KDAsIHRoaXMudG90YWxSZWNvcmRzKCkpIC8gc2FmZVJvd3MpKTtcbiAgICBjb25zdCBtYXhGaXJzdCA9IE1hdGgubWF4KDAsIChzYWZlUGFnZUNvdW50IC0gMSkgKiBzYWZlUm93cyk7XG4gICAgY29uc3Qgc2FmZUZpcnN0ID0gTWF0aC5taW4oTWF0aC5tYXgoMCwgTWF0aC50cnVuYyhmaXJzdCB8fCAwKSksIG1heEZpcnN0KTtcbiAgICBjb25zdCBzYWZlUGFnZSA9IE1hdGguZmxvb3Ioc2FmZUZpcnN0IC8gc2FmZVJvd3MpO1xuXG4gICAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQoe1xuICAgICAgZmlyc3Q6IHNhZmVGaXJzdCxcbiAgICAgIHJvd3M6IHNhZmVSb3dzLFxuICAgICAgcGFnZTogc2FmZVBhZ2UsXG4gICAgICBwYWdlQ291bnQ6IHNhZmVQYWdlQ291bnRcbiAgICB9KTtcbiAgfVxufVxuIiwiPG5hdlxuICBjbGFzcz1cInNkYy1wYWdpbmF0b3JcIlxuICByb2xlPVwibmF2aWdhdGlvblwiXG4gIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkucGFnaW5hdGlvbl9uYXZpZ2F0aW9uJyB8IHRyYW5zbGF0ZVwiXG4+XG4gIDxkaXYgY2xhc3M9XCJzZGMtcGFnaW5hdG9yLWxlZnRcIj5cbiAgICA8ZGl2IGNsYXNzPVwic2RjLXBhZ2luYXRvci1wYWdlc1wiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJzZGMtcGFnZSBzZGMtZWRnZVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCIhY2FuR29CYWNrKClcIlxuICAgICAgICAoY2xpY2spPVwiZmlyc3RQYWdlKClcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5LmZpcnN0X3BhZ2UnIHwgdHJhbnNsYXRlXCJcbiAgICAgID5cbiAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtYW5nbGUtZG91YmxlLWxlZnRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICA8L2J1dHRvbj5cblxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJzZGMtcGFnZSBzZGMtZWRnZVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCIhY2FuR29CYWNrKClcIlxuICAgICAgICAoY2xpY2spPVwicHJldlBhZ2UoKVwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkucHJldmlvdXNfcGFnZScgfCB0cmFuc2xhdGVcIlxuICAgICAgPlxuICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1hbmdsZS1sZWZ0XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIEBmb3IgKHAgb2YgcGFnZXMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgIEBpZiAoYXNOdW1iZXIocCkpIHtcbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwic2RjLXBhZ2VcIlxuICAgICAgICAgICAgW2NsYXNzLmlzLWFjdGl2ZV09XCJpc0N1cnJlbnQocClcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1jdXJyZW50XT1cImlzQ3VycmVudChwKSA/ICdwYWdlJyA6IG51bGxcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICAgaXNDdXJyZW50KHApXG4gICAgICAgICAgICAgICAgPyAoJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkuY3VycmVudF9wYWdlJyB8IHRyYW5zbGF0ZSkucmVwbGFjZSgne251bWJlcn0nLCBnZXRQYWdlTGFiZWwocCkpXG4gICAgICAgICAgICAgICAgOiAoJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkucGFnZV9udW1iZXInIHwgdHJhbnNsYXRlKS5yZXBsYWNlKCd7bnVtYmVyfScsIGdldFBhZ2VMYWJlbChwKSlcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAoY2xpY2spPVwiZ290b1BhZ2UocClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IHAgKyAxIH19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwic2RjLXBhZ2Ugc2RjLXBhZ2UtLWVsbGlwc2lzXCIgZGlzYWJsZWQgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGFiaW5kZXg9XCItMVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtZWxsaXBzaXMtZG90c1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNkYy1lbGxpcHNpcy1kb3RcIj48L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2RjLWVsbGlwc2lzLWRvdFwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtZWxsaXBzaXMtZG90XCI+PC9zcGFuPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwic2RjLXBhZ2Ugc2RjLWVkZ2VcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiIWNhbkdvRm9yd2FyZCgpXCJcbiAgICAgICAgKGNsaWNrKT1cIm5leHRQYWdlKClcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5Lm5leHRfcGFnZScgfCB0cmFuc2xhdGVcIlxuICAgICAgPlxuICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1hbmdsZS1yaWdodFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cInNkYy1wYWdlIHNkYy1lZGdlXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIiFjYW5Hb0ZvcndhcmQoKVwiXG4gICAgICAgIChjbGljayk9XCJsYXN0UGFnZSgpXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5sYXN0X3BhZ2UnIHwgdHJhbnNsYXRlXCJcbiAgICAgID5cbiAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtYW5nbGUtZG91YmxlLXJpZ2h0XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgICBAaWYgKHNob3dSb3dzUGVyUGFnZVNlbGVjdG9yKCkpIHtcbiAgICAgIDxzZGMtY29tYm9ib3hcbiAgICAgICAgY2xhc3M9XCJzZGMtcm93cy1jb21ib2JveFwiXG4gICAgICAgIFttdWx0aXBsZV09XCJmYWxzZVwiXG4gICAgICAgIFtvcHRpb25zXT1cInJvd09wdGlvbnMoKVwiXG4gICAgICAgIFthcHBlbmRUb109XCInYm9keSdcIlxuICAgICAgICBbc2hvd0NsZWFyXT1cImZhbHNlXCJcbiAgICAgICAgW25nTW9kZWxdPVwicm93cygpLnRvU3RyaW5nKClcIlxuICAgICAgICAob25TZWxlY3RlZEl0ZW0pPVwib25Sb3dzQ29tYm9Nb2RlbCgkZXZlbnQpXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5yb3dzX3Blcl9wYWdlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICA+XG4gICAgICA8L3NkYy1jb21ib2JveD5cbiAgICB9XG4gIDwvZGl2PlxuXG4gIEBpZiAodG90YWxSZWNvcmRzTGFiZWwoKSkge1xuICAgIDxzcGFuIGNsYXNzPVwic2RjLXRvdGFsXCIgYXJpYS1saXZlPVwicG9saXRlXCI+XG4gICAgICBAaWYgKHNob3VsZERpc3BsYXlUb3RhbFJlY29yZHNGaXJzdCgpKSB7XG4gICAgICAgIHt7IHRvdGFsUmVjb3JkcygpIH19IHt7IHRvdGFsUmVjb3Jkc0Rpc3BsYXlMYWJlbCgpIHwgdHJhbnNsYXRlIH19XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAge3sgdG90YWxSZWNvcmRzRGlzcGxheUxhYmVsKCkgfCB0cmFuc2xhdGUgfX06IHt7IHRvdGFsUmVjb3JkcygpIH19XG4gICAgICB9XG4gICAgPC9zcGFuPlxuICB9XG48L25hdj5cbiJdfQ==