@fundamental-ngx/core 0.34.3-rc.43 → 0.34.3-rc.46

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 (119) hide show
  1. package/action-bar/package.json +1 -1
  2. package/action-sheet/package.json +1 -1
  3. package/alert/package.json +1 -1
  4. package/avatar/package.json +1 -1
  5. package/avatar-group/package.json +1 -1
  6. package/bar/package.json +1 -1
  7. package/breadcrumb/package.json +1 -1
  8. package/busy-indicator/package.json +1 -1
  9. package/button/package.json +1 -1
  10. package/calendar/package.json +1 -1
  11. package/card/package.json +1 -1
  12. package/carousel/package.json +1 -1
  13. package/checkbox/package.json +1 -1
  14. package/combobox/package.json +1 -1
  15. package/date-picker/package.json +1 -1
  16. package/datetime/package.json +1 -1
  17. package/datetime-picker/package.json +1 -1
  18. package/dialog/package.json +1 -1
  19. package/dynamic-page/package.json +1 -1
  20. package/dynamic-side-content/package.json +1 -1
  21. package/esm2020/nested-list/nested-content/nested-list-content.directive.mjs +12 -2
  22. package/esm2020/nested-list/nested-item/nested-item.directive.mjs +59 -12
  23. package/esm2020/nested-list/nested-link/nested-link.directive.mjs +16 -5
  24. package/esm2020/nested-list/nested-list/nested-list.directive.mjs +71 -6
  25. package/esm2020/nested-list/nested-list-directives.mjs +23 -6
  26. package/esm2020/nested-list/nested-list-keyboard.service.mjs +9 -5
  27. package/esm2020/nested-list/nested-list-popover/nested-list-popover.component.mjs +1 -1
  28. package/esm2020/nested-list/prepared-nested-list/prepared-nested-list.component.mjs +1 -1
  29. package/facets/package.json +1 -1
  30. package/feed-input/package.json +1 -1
  31. package/feed-list-item/package.json +1 -1
  32. package/fesm2015/fundamental-ngx-core-nested-list.mjs +185 -29
  33. package/fesm2015/fundamental-ngx-core-nested-list.mjs.map +1 -1
  34. package/fesm2020/fundamental-ngx-core-nested-list.mjs +181 -28
  35. package/fesm2020/fundamental-ngx-core-nested-list.mjs.map +1 -1
  36. package/file-uploader/package.json +1 -1
  37. package/fixed-card-layout/package.json +1 -1
  38. package/flexible-column-layout/package.json +1 -1
  39. package/form/package.json +1 -1
  40. package/formatted-text/package.json +1 -1
  41. package/grid-list/package.json +1 -1
  42. package/icon/package.json +1 -1
  43. package/illustrated-message/package.json +1 -1
  44. package/infinite-scroll/package.json +1 -1
  45. package/info-label/package.json +1 -1
  46. package/inline-help/package.json +1 -1
  47. package/input-group/package.json +1 -1
  48. package/layout-grid/package.json +1 -1
  49. package/layout-panel/package.json +1 -1
  50. package/link/package.json +1 -1
  51. package/list/package.json +1 -1
  52. package/menu/package.json +1 -1
  53. package/message-box/package.json +1 -1
  54. package/message-strip/package.json +1 -1
  55. package/message-toast/package.json +1 -1
  56. package/micro-process-flow/package.json +1 -1
  57. package/mobile-mode/package.json +1 -1
  58. package/multi-input/package.json +1 -1
  59. package/nested-list/esm2020/nested-content/nested-list-content.directive.mjs +12 -2
  60. package/nested-list/esm2020/nested-item/nested-item.directive.mjs +59 -12
  61. package/nested-list/esm2020/nested-link/nested-link.directive.mjs +16 -5
  62. package/nested-list/esm2020/nested-list/nested-list.directive.mjs +71 -6
  63. package/nested-list/esm2020/nested-list-directives.mjs +23 -6
  64. package/nested-list/esm2020/nested-list-keyboard.service.mjs +9 -5
  65. package/nested-list/esm2020/nested-list-popover/nested-list-popover.component.mjs +1 -1
  66. package/nested-list/esm2020/prepared-nested-list/prepared-nested-list.component.mjs +1 -1
  67. package/nested-list/fesm2015/fundamental-ngx-core-nested-list.mjs +185 -29
  68. package/nested-list/fesm2015/fundamental-ngx-core-nested-list.mjs.map +1 -1
  69. package/nested-list/fesm2020/fundamental-ngx-core-nested-list.mjs +181 -28
  70. package/nested-list/fesm2020/fundamental-ngx-core-nested-list.mjs.map +1 -1
  71. package/nested-list/nested-content/nested-list-content.directive.d.ts +4 -0
  72. package/nested-list/nested-item/nested-item.directive.d.ts +20 -3
  73. package/nested-list/nested-link/nested-link.directive.d.ts +9 -4
  74. package/nested-list/nested-list/nested-list.directive.d.ts +22 -2
  75. package/nested-list/nested-list-directives.d.ts +8 -1
  76. package/nested-list/package.json +1 -1
  77. package/notification/package.json +1 -1
  78. package/object-identifier/package.json +1 -1
  79. package/object-marker/package.json +1 -1
  80. package/object-number/package.json +1 -1
  81. package/object-status/package.json +1 -1
  82. package/package.json +1 -1
  83. package/pagination/package.json +1 -1
  84. package/panel/package.json +1 -1
  85. package/popover/package.json +1 -1
  86. package/product-switch/package.json +1 -1
  87. package/progress-indicator/package.json +1 -1
  88. package/quick-view/package.json +1 -1
  89. package/radio/package.json +1 -1
  90. package/rating-indicator/package.json +1 -1
  91. package/resizable-card-layout/package.json +1 -1
  92. package/scroll-spy/package.json +1 -1
  93. package/scrollbar/package.json +1 -1
  94. package/segmented-button/package.json +1 -1
  95. package/select/package.json +1 -1
  96. package/shared/package.json +1 -1
  97. package/shellbar/package.json +1 -1
  98. package/side-navigation/package.json +1 -1
  99. package/slider/package.json +1 -1
  100. package/split-button/package.json +1 -1
  101. package/splitter/package.json +1 -1
  102. package/status-indicator/package.json +1 -1
  103. package/step-input/package.json +1 -1
  104. package/switch/package.json +1 -1
  105. package/table/package.json +1 -1
  106. package/tabs/package.json +1 -1
  107. package/text/package.json +1 -1
  108. package/tile/package.json +1 -1
  109. package/time/package.json +1 -1
  110. package/time-picker/package.json +1 -1
  111. package/timeline/package.json +1 -1
  112. package/title/package.json +1 -1
  113. package/token/package.json +1 -1
  114. package/toolbar/package.json +1 -1
  115. package/tree/package.json +1 -1
  116. package/upload-collection/package.json +1 -1
  117. package/utils/package.json +1 -1
  118. package/vertical-navigation/package.json +1 -1
  119. package/wizard/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/action-bar",
3
- "version": "0.34.3-rc.43",
3
+ "version": "0.34.3-rc.46",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/action-sheet",
3
- "version": "0.34.3-rc.43",
3
+ "version": "0.34.3-rc.46",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/alert",
3
- "version": "0.34.3-rc.43",
3
+ "version": "0.34.3-rc.46",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/avatar",
3
- "version": "0.34.3-rc.43",
3
+ "version": "0.34.3-rc.46",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/avatar-group",
3
- "version": "0.34.3-rc.43",
3
+ "version": "0.34.3-rc.46",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
package/bar/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/bar",
3
- "version": "0.34.3-rc.43",
3
+ "version": "0.34.3-rc.46",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/breadcrumb",
3
- "version": "0.34.3-rc.43",
3
+ "version": "0.34.3-rc.46",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/busy-indicator",
3
- "version": "0.34.3-rc.43",
3
+ "version": "0.34.3-rc.46",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/button",
3
- "version": "0.34.3-rc.43",
3
+ "version": "0.34.3-rc.46",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/calendar",
3
- "version": "0.34.3-rc.43",
3
+ "version": "0.34.3-rc.46",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
package/card/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/card",
3
- "version": "0.34.3-rc.43",
3
+ "version": "0.34.3-rc.46",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/carousel",
3
- "version": "0.34.3-rc.43",
3
+ "version": "0.34.3-rc.46",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/checkbox",
3
- "version": "0.34.3-rc.43",
3
+ "version": "0.34.3-rc.46",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/combobox",
3
- "version": "0.34.3-rc.43",
3
+ "version": "0.34.3-rc.46",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/date-picker",
3
- "version": "0.34.3-rc.43",
3
+ "version": "0.34.3-rc.46",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/datetime",
3
- "version": "0.34.3-rc.43",
3
+ "version": "0.34.3-rc.46",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/datetime-picker",
3
- "version": "0.34.3-rc.43",
3
+ "version": "0.34.3-rc.46",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/dialog",
3
- "version": "0.34.3-rc.43",
3
+ "version": "0.34.3-rc.46",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/dynamic-page",
3
- "version": "0.34.3-rc.43",
3
+ "version": "0.34.3-rc.46",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/dynamic-side-content",
3
- "version": "0.34.3-rc.43",
3
+ "version": "0.34.3-rc.46",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -15,6 +15,10 @@ export class NestedListContentDirective {
15
15
  this._itemService = _itemService;
16
16
  /** Whether this element is selected*/
17
17
  this.selected = false;
18
+ /** @hidden */
19
+ this.role = 'treeitem';
20
+ /** @hidden */
21
+ this.ariaExpanded = false;
18
22
  /** Event thrown, when selected state is changed */
19
23
  this.selectedChange = new EventEmitter();
20
24
  /** Event that is thrown, when any keyboard event is dispatched on this element */
@@ -85,7 +89,7 @@ export class NestedListContentDirective {
85
89
  }
86
90
  }
87
91
  NestedListContentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: NestedListContentDirective, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.NestedItemService }], target: i0.ɵɵFactoryTarget.Directive });
88
- NestedListContentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.4", type: NestedListContentDirective, selector: "[fdNestedListContent], [fd-nested-list-content]", inputs: { selected: "selected" }, outputs: { selectedChange: "selectedChange", keyboardTriggered: "keyboardTriggered", clicked: "clicked" }, host: { attributes: { "tabindex": "0" }, listeners: { "keydown": "onKeyDown($event)", "click": "onClick($event)" }, properties: { "class.is-selected": "this.selected", "class.fd-nested-list__content": "this.fdNestedListContentClass", "class.has-child": "this.hasChildren" } }, queries: [{ propertyName: "nestedLink", first: true, predicate: NestedLinkDirective, descendants: true }, { propertyName: "nestedExpandIcon", first: true, predicate: NestedListExpandIconComponent, descendants: true }], ngImport: i0 });
92
+ NestedListContentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.4", type: NestedListContentDirective, selector: "[fdNestedListContent], [fd-nested-list-content]", inputs: { selected: "selected" }, outputs: { selectedChange: "selectedChange", keyboardTriggered: "keyboardTriggered", clicked: "clicked" }, host: { attributes: { "tabindex": "0" }, listeners: { "keydown": "onKeyDown($event)", "click": "onClick($event)" }, properties: { "class.is-selected": "this.selected", "attr.role": "this.role", "attr.aria-expanded": "this.ariaExpanded", "class.fd-nested-list__content": "this.fdNestedListContentClass", "class.has-child": "this.hasChildren" } }, queries: [{ propertyName: "nestedLink", first: true, predicate: NestedLinkDirective, descendants: true }, { propertyName: "nestedExpandIcon", first: true, predicate: NestedListExpandIconComponent, descendants: true }], ngImport: i0 });
89
93
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: NestedListContentDirective, decorators: [{
90
94
  type: Directive,
91
95
  args: [{
@@ -99,6 +103,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
99
103
  }, {
100
104
  type: HostBinding,
101
105
  args: ['class.is-selected']
106
+ }], role: [{
107
+ type: HostBinding,
108
+ args: ['attr.role']
109
+ }], ariaExpanded: [{
110
+ type: HostBinding,
111
+ args: ['attr.aria-expanded']
102
112
  }], selectedChange: [{
103
113
  type: Output
104
114
  }], keyboardTriggered: [{
@@ -124,4 +134,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
124
134
  type: HostListener,
125
135
  args: ['click', ['$event']]
126
136
  }] } });
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdGVkLWxpc3QtY29udGVudC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9uZXN0ZWQtbGlzdC9uZXN0ZWQtY29udGVudC9uZXN0ZWQtbGlzdC1jb250ZW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsaUJBQWlCLEVBQ2pCLFlBQVksRUFDWixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFRM0MsTUFBTSxPQUFPLDBCQUEwQjtJQXNDbkMsY0FBYztJQUNkLFlBQ1csWUFBK0IsRUFDOUIsU0FBb0IsRUFDcEIsV0FBdUIsRUFDdkIsWUFBK0I7UUFIaEMsaUJBQVksR0FBWixZQUFZLENBQW1CO1FBQzlCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDcEIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDdkIsaUJBQVksR0FBWixZQUFZLENBQW1CO1FBMUMzQyxzQ0FBc0M7UUFHdEMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVqQixtREFBbUQ7UUFFbkQsbUJBQWMsR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUVwRSxrRkFBa0Y7UUFFekUsc0JBQWlCLEdBQWdDLElBQUksWUFBWSxFQUFpQixDQUFDO1FBRTVGLHlEQUF5RDtRQUVoRCxZQUFPLEdBQTZCLElBQUksWUFBWSxFQUFjLENBQUM7UUFFNUUsY0FBYztRQUVkLDZCQUF3QixHQUFHLElBQUksQ0FBQztRQUVoQzs7O1dBR0c7UUFFSCxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQVFwQix1R0FBdUc7UUFDdEYsZUFBVSxHQUFrQixJQUFJLE9BQU8sRUFBUSxDQUFDO0lBUTlELENBQUM7SUFFSixjQUFjO0lBQ2Qsa0JBQWtCO1FBQ2QsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVELGNBQWM7SUFDZCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCw2QkFBNkI7SUFFN0IsU0FBUyxDQUFDLEtBQW9CO1FBQzFCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCwrQkFBK0I7SUFFL0IsT0FBTztRQUNILElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCw4Q0FBOEM7SUFDOUMsY0FBYyxDQUFDLFFBQWlCO1FBQzVCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCwrQ0FBK0M7SUFDL0MsbUJBQW1CLENBQUMsUUFBaUI7UUFDakMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3ZEO0lBQ0wsQ0FBQztJQUVELGdDQUFnQztJQUNoQyxLQUFLO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVELGdEQUFnRDtJQUNoRCxLQUFLO1FBQ0QsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2IsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDM0I7SUFDTCxDQUFDO0lBRUQsMENBQTBDO0lBQ2xDLHFCQUFxQjtRQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBRUQsMkNBQTJDO0lBQ25DLG9CQUFvQjtRQUN4QixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDOUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUNyQztJQUNMLENBQUM7O3VIQTVHUSwwQkFBMEI7MkdBQTFCLDBCQUEwQixpaUJBNkJyQixtQkFBbUIsbUZBR25CLDZCQUE2QjsyRkFoQ2xDLDBCQUEwQjtrQkFOdEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsaURBQWlEO29CQUMzRCxJQUFJLEVBQUU7d0JBQ0YsUUFBUSxFQUFFLEdBQUc7cUJBQ2hCO2lCQUNKO3lMQUtHLFFBQVE7c0JBRlAsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyxtQkFBbUI7Z0JBS2hDLGNBQWM7c0JBRGIsTUFBTTtnQkFLRSxpQkFBaUI7c0JBRHpCLE1BQU07Z0JBS0UsT0FBTztzQkFEZixNQUFNO2dCQUtQLHdCQUF3QjtzQkFEdkIsV0FBVzt1QkFBQywrQkFBK0I7Z0JBUTVDLFdBQVc7c0JBRFYsV0FBVzt1QkFBQyxpQkFBaUI7Z0JBSTlCLFVBQVU7c0JBRFQsWUFBWTt1QkFBQyxtQkFBbUI7Z0JBSWpDLGdCQUFnQjtzQkFEZixZQUFZO3VCQUFDLDZCQUE2QjtnQkE0QjNDLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBUW5DLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29udGVudENoaWxkLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBSZW5kZXJlcjJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZXN0ZWRMaW5rRGlyZWN0aXZlIH0gZnJvbSAnLi4vbmVzdGVkLWxpbmsvbmVzdGVkLWxpbmsuZGlyZWN0aXZlJztcbmltcG9ydCB7IE5lc3RlZExpc3RFeHBhbmRJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vbmVzdGVkLWxpc3QtZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBOZXN0ZWRJdGVtU2VydmljZSB9IGZyb20gJy4uL25lc3RlZC1pdGVtL25lc3RlZC1pdGVtLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tmZE5lc3RlZExpc3RDb250ZW50XSwgW2ZkLW5lc3RlZC1saXN0LWNvbnRlbnRdJyxcbiAgICBob3N0OiB7XG4gICAgICAgIHRhYmluZGV4OiAnMCdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIE5lc3RlZExpc3RDb250ZW50RGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95IHtcbiAgICAvKiogV2hldGhlciB0aGlzIGVsZW1lbnQgaXMgc2VsZWN0ZWQqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pcy1zZWxlY3RlZCcpXG4gICAgc2VsZWN0ZWQgPSBmYWxzZTtcblxuICAgIC8qKiBFdmVudCB0aHJvd24sIHdoZW4gc2VsZWN0ZWQgc3RhdGUgaXMgY2hhbmdlZCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHNlbGVjdGVkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICAvKiogRXZlbnQgdGhhdCBpcyB0aHJvd24sIHdoZW4gYW55IGtleWJvYXJkIGV2ZW50IGlzIGRpc3BhdGNoZWQgb24gdGhpcyBlbGVtZW50ICovXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkga2V5Ym9hcmRUcmlnZ2VyZWQ6IEV2ZW50RW1pdHRlcjxLZXlib2FyZEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8S2V5Ym9hcmRFdmVudD4oKTtcblxuICAgIC8qKiBFdmVudCB0aGF0IGlzIHRocm93biwgd2hlbiB0aGlzIGVsZW1lbnQgaXMgY2xpY2tlZCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IGNsaWNrZWQ6IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC1uZXN0ZWQtbGlzdF9fY29udGVudCcpXG4gICAgZmROZXN0ZWRMaXN0Q29udGVudENsYXNzID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBBdHRyaWJ1dGUgY29udHJvbGxlZCBieSB0aGUgcGFyZW50IGBOZXN0ZWRJdGVtRGlyZWN0aXZlYFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaGFzLWNoaWxkJylcbiAgICBoYXNDaGlsZHJlbiA9IGZhbHNlO1xuXG4gICAgQENvbnRlbnRDaGlsZChOZXN0ZWRMaW5rRGlyZWN0aXZlKVxuICAgIG5lc3RlZExpbms6IE5lc3RlZExpbmtEaXJlY3RpdmU7XG5cbiAgICBAQ29udGVudENoaWxkKE5lc3RlZExpc3RFeHBhbmRJY29uQ29tcG9uZW50KVxuICAgIG5lc3RlZEV4cGFuZEljb246IE5lc3RlZExpc3RFeHBhbmRJY29uQ29tcG9uZW50O1xuXG4gICAgLyoqIEFuIFJ4SlMgU3ViamVjdCB0aGF0IHdpbGwga2lsbCB0aGUgZGF0YSBzdHJlYW0gdXBvbiBjb21wb25lbnTigJlzIGRlc3RydWN0aW9uIChmb3IgdW5zdWJzY3JpYmluZykgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBvbkRlc3Ryb3kkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBjaGFuZ2VEZXRSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIF9pdGVtU2VydmljZTogTmVzdGVkSXRlbVNlcnZpY2VcbiAgICApIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbWFrZUxpbmtVbkZvY3VzYWJsZSgpO1xuICAgICAgICB0aGlzLl9zZXRGb2N1c1N1YnNjcmlwdGlvbigpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25EZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMub25EZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIC8qKiBLZXlib2FyZCBFdmVudCBIYW5kbGVyICovXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gICAgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMua2V5Ym9hcmRUcmlnZ2VyZWQuZW1pdChldmVudCk7XG4gICAgICAgIHRoaXMuX2l0ZW1TZXJ2aWNlLmtleURvd24ubmV4dChldmVudCk7XG4gICAgfVxuXG4gICAgLyoqIEhhbmRsZXIgZm9yIG1vdXNlIGV2ZW50cyAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgICBvbkNsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pdGVtU2VydmljZS5jbGljay5uZXh0KCk7XG4gICAgfVxuXG4gICAgLyoqIE1ldGhvZCB0byB0cmlnZ2VyIHNlbGVjdGVkIHN0YXRlIGNoYW5nZSAqL1xuICAgIGNoYW5nZVNlbGVjdGVkKHNlbGVjdGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQgPSBzZWxlY3RlZDtcbiAgICAgICAgdGhpcy5zZWxlY3RlZENoYW5nZS5lbWl0KHNlbGVjdGVkKTtcbiAgICB9XG5cbiAgICAvKiogRXhwYW5kZWQgc3RhdGUgY2hhbmdlIHByb3BhZ2F0aW9uIG1ldGhvZCAqL1xuICAgIGNoYW5nZUV4cGFuZGVkU3RhdGUoZXhwYW5kZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubmVzdGVkRXhwYW5kSWNvbikge1xuICAgICAgICAgICAgdGhpcy5uZXN0ZWRFeHBhbmRJY29uLmNoYW5nZUV4cGFuZGVkU3RhdGUoZXhwYW5kZWQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFNldCBmb2N1cyBvbiB0aGUgZWxlbWVudC4gKi9cbiAgICBmb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgLyoqIERpc3BhdGNoZXMgdGhlIGNsaWNrIGV2ZW50IG9uIHRoZSBlbGVtZW50ICovXG4gICAgY2xpY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICAgICAgaWYgKHRoaXMubmVzdGVkTGluaykge1xuICAgICAgICAgICAgdGhpcy5uZXN0ZWRMaW5rLmNsaWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQWRkIHN1YnNjcmlwdGlvbiBmb3IgY2hpbGQgZm9jdXNpbmcgKi9cbiAgICBwcml2YXRlIF9zZXRGb2N1c1N1YnNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faXRlbVNlcnZpY2UuZm9jdXMucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMuZm9jdXMoKSk7XG4gICAgfVxuXG4gICAgLyoqIEhpZGUgbGluayBjaGlsZCBlbGVtZW50IGZyb20gdGFiIGtleSAqL1xuICAgIHByaXZhdGUgX21ha2VMaW5rVW5Gb2N1c2FibGUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm5lc3RlZExpbmspIHtcbiAgICAgICAgICAgIHRoaXMubmVzdGVkTGluay50YWJJbmRleCA9IC0xO1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdGVkLWxpc3QtY29udGVudC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9uZXN0ZWQtbGlzdC9uZXN0ZWQtY29udGVudC9uZXN0ZWQtbGlzdC1jb250ZW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsaUJBQWlCLEVBQ2pCLFlBQVksRUFDWixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFRM0MsTUFBTSxPQUFPLDBCQUEwQjtJQThDbkMsY0FBYztJQUNkLFlBQ1csWUFBK0IsRUFDOUIsU0FBb0IsRUFDcEIsV0FBdUIsRUFDdkIsWUFBK0I7UUFIaEMsaUJBQVksR0FBWixZQUFZLENBQW1CO1FBQzlCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDcEIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDdkIsaUJBQVksR0FBWixZQUFZLENBQW1CO1FBbEQzQyxzQ0FBc0M7UUFHdEMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVqQixjQUFjO1FBRWQsU0FBSSxHQUFHLFVBQVUsQ0FBQztRQUVsQixjQUFjO1FBRWQsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFFckIsbURBQW1EO1FBRW5ELG1CQUFjLEdBQTBCLElB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eEIsWUFBWTtzQkFEWCxXQUFXO3VCQUFDLG9CQUFvQjtnQkFLakMsY0FBYztzQkFEYixNQUFNO2dCQUtFLGlCQUFpQjtzQkFEekIsTUFBTTtnQkFLRSxPQUFPO3NCQURmLE1BQU07Z0JBS1Asd0JBQXdCO3NCQUR2QixXQUFXO3VCQUFDLCtCQUErQjtnQkFRNUMsV0FBVztzQkFEVixXQUFXO3VCQUFDLGlCQUFpQjtnQkFJOUIsVUFBVTtzQkFEVCxZQUFZO3VCQUFDLG1CQUFtQjtnQkFJakMsZ0JBQWdCO3NCQURmLFlBQVk7dUJBQUMsNkJBQTZCO2dCQTRCM0MsU0FBUztzQkFEUixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFRbkMsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIFJlbmRlcmVyMlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5lc3RlZExpbmtEaXJlY3RpdmUgfSBmcm9tICcuLi9uZXN0ZWQtbGluay9uZXN0ZWQtbGluay5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTmVzdGVkTGlzdEV4cGFuZEljb25Db21wb25lbnQgfSBmcm9tICcuLi9uZXN0ZWQtbGlzdC1kaXJlY3RpdmVzJztcbmltcG9ydCB7IE5lc3RlZEl0ZW1TZXJ2aWNlIH0gZnJvbSAnLi4vbmVzdGVkLWl0ZW0vbmVzdGVkLWl0ZW0uc2VydmljZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2ZkTmVzdGVkTGlzdENvbnRlbnRdLCBbZmQtbmVzdGVkLWxpc3QtY29udGVudF0nLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgdGFiaW5kZXg6ICcwJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgTmVzdGVkTGlzdENvbnRlbnREaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuICAgIC8qKiBXaGV0aGVyIHRoaXMgZWxlbWVudCBpcyBzZWxlY3RlZCovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlzLXNlbGVjdGVkJylcbiAgICBzZWxlY3RlZCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIucm9sZScpXG4gICAgcm9sZSA9ICd0cmVlaXRlbSc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWV4cGFuZGVkJylcbiAgICBhcmlhRXhwYW5kZWQgPSBmYWxzZTtcblxuICAgIC8qKiBFdmVudCB0aHJvd24sIHdoZW4gc2VsZWN0ZWQgc3RhdGUgaXMgY2hhbmdlZCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHNlbGVjdGVkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICAvKiogRXZlbnQgdGhhdCBpcyB0aHJvd24sIHdoZW4gYW55IGtleWJvYXJkIGV2ZW50IGlzIGRpc3BhdGNoZWQgb24gdGhpcyBlbGVtZW50ICovXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkga2V5Ym9hcmRUcmlnZ2VyZWQ6IEV2ZW50RW1pdHRlcjxLZXlib2FyZEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8S2V5Ym9hcmRFdmVudD4oKTtcblxuICAgIC8qKiBFdmVudCB0aGF0IGlzIHRocm93biwgd2hlbiB0aGlzIGVsZW1lbnQgaXMgY2xpY2tlZCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IGNsaWNrZWQ6IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC1uZXN0ZWQtbGlzdF9fY29udGVudCcpXG4gICAgZmROZXN0ZWRMaXN0Q29udGVudENsYXNzID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBBdHRyaWJ1dGUgY29udHJvbGxlZCBieSB0aGUgcGFyZW50IGBOZXN0ZWRJdGVtRGlyZWN0aXZlYFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaGFzLWNoaWxkJylcbiAgICBoYXNDaGlsZHJlbiA9IGZhbHNlO1xuXG4gICAgQENvbnRlbnRDaGlsZChOZXN0ZWRMaW5rRGlyZWN0aXZlKVxuICAgIG5lc3RlZExpbms6IE5lc3RlZExpbmtEaXJlY3RpdmU7XG5cbiAgICBAQ29udGVudENoaWxkKE5lc3RlZExpc3RFeHBhbmRJY29uQ29tcG9uZW50KVxuICAgIG5lc3RlZEV4cGFuZEljb246IE5lc3RlZExpc3RFeHBhbmRJY29uQ29tcG9uZW50O1xuXG4gICAgLyoqIEFuIFJ4SlMgU3ViamVjdCB0aGF0IHdpbGwga2lsbCB0aGUgZGF0YSBzdHJlYW0gdXBvbiBjb21wb25lbnTigJlzIGRlc3RydWN0aW9uIChmb3IgdW5zdWJzY3JpYmluZykgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBvbkRlc3Ryb3kkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBjaGFuZ2VEZXRSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIF9pdGVtU2VydmljZTogTmVzdGVkSXRlbVNlcnZpY2VcbiAgICApIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbWFrZUxpbmtVbkZvY3VzYWJsZSgpO1xuICAgICAgICB0aGlzLl9zZXRGb2N1c1N1YnNjcmlwdGlvbigpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25EZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMub25EZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIC8qKiBLZXlib2FyZCBFdmVudCBIYW5kbGVyICovXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gICAgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMua2V5Ym9hcmRUcmlnZ2VyZWQuZW1pdChldmVudCk7XG4gICAgICAgIHRoaXMuX2l0ZW1TZXJ2aWNlLmtleURvd24ubmV4dChldmVudCk7XG4gICAgfVxuXG4gICAgLyoqIEhhbmRsZXIgZm9yIG1vdXNlIGV2ZW50cyAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgICBvbkNsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pdGVtU2VydmljZS5jbGljay5uZXh0KCk7XG4gICAgfVxuXG4gICAgLyoqIE1ldGhvZCB0byB0cmlnZ2VyIHNlbGVjdGVkIHN0YXRlIGNoYW5nZSAqL1xuICAgIGNoYW5nZVNlbGVjdGVkKHNlbGVjdGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQgPSBzZWxlY3RlZDtcbiAgICAgICAgdGhpcy5zZWxlY3RlZENoYW5nZS5lbWl0KHNlbGVjdGVkKTtcbiAgICB9XG5cbiAgICAvKiogRXhwYW5kZWQgc3RhdGUgY2hhbmdlIHByb3BhZ2F0aW9uIG1ldGhvZCAqL1xuICAgIGNoYW5nZUV4cGFuZGVkU3RhdGUoZXhwYW5kZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubmVzdGVkRXhwYW5kSWNvbikge1xuICAgICAgICAgICAgdGhpcy5uZXN0ZWRFeHBhbmRJY29uLmNoYW5nZUV4cGFuZGVkU3RhdGUoZXhwYW5kZWQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFNldCBmb2N1cyBvbiB0aGUgZWxlbWVudC4gKi9cbiAgICBmb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgLyoqIERpc3BhdGNoZXMgdGhlIGNsaWNrIGV2ZW50IG9uIHRoZSBlbGVtZW50ICovXG4gICAgY2xpY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICAgICAgaWYgKHRoaXMubmVzdGVkTGluaykge1xuICAgICAgICAgICAgdGhpcy5uZXN0ZWRMaW5rLmNsaWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQWRkIHN1YnNjcmlwdGlvbiBmb3IgY2hpbGQgZm9jdXNpbmcgKi9cbiAgICBwcml2YXRlIF9zZXRGb2N1c1N1YnNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faXRlbVNlcnZpY2UuZm9jdXMucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMuZm9jdXMoKSk7XG4gICAgfVxuXG4gICAgLyoqIEhpZGUgbGluayBjaGlsZCBlbGVtZW50IGZyb20gdGFiIGtleSAqL1xuICAgIHByaXZhdGUgX21ha2VMaW5rVW5Gb2N1c2FibGUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm5lc3RlZExpbmspIHtcbiAgICAgICAgICAgIHRoaXMubmVzdGVkTGluay50YWJJbmRleCA9IC0xO1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -1,11 +1,11 @@
1
1
  import { ContentChild, Directive, EventEmitter, HostBinding, Input, Output } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import { filter, takeUntil } from 'rxjs/operators';
2
4
  import { NestedLinkDirective } from '../nested-link/nested-link.directive';
3
5
  import { NestedListKeyboardService } from '../nested-list-keyboard.service';
4
- import { NestedItemService } from './nested-item.service';
5
6
  import { NestedListContentDirective } from '../nested-content/nested-list-content.directive';
6
- import { Subject } from 'rxjs';
7
- import { filter, takeUntil } from 'rxjs/operators';
8
7
  import { NestedListStateService } from '../nested-list-state.service';
8
+ import { NestedItemService } from './nested-item.service';
9
9
  import * as i0 from "@angular/core";
10
10
  import * as i1 from "./nested-item.service";
11
11
  import * as i2 from "../nested-list-keyboard.service";
@@ -24,7 +24,17 @@ export class NestedItemDirective {
24
24
  /** @hidden */
25
25
  this.fdNestedListItemClass = true;
26
26
  /** @hidden */
27
+ this._ariaLevel = null;
28
+ /** @hidden */
27
29
  this._expanded = false;
30
+ /** @hidden */
31
+ this._ariaExpanded = null;
32
+ /** @hidden */
33
+ this._ariaSelected = null;
34
+ /** @hidden */
35
+ this._ariaDisabled = false;
36
+ /** @hidden */
37
+ this._ariaHidden = true;
28
38
  /** An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing) */
29
39
  this._onDestroy$ = new Subject();
30
40
  /** Unique element ID */
@@ -47,6 +57,11 @@ export class NestedItemDirective {
47
57
  this._passItemReferences();
48
58
  /** Propagate initial open state to children */
49
59
  this.propagateOpenChange(this._expanded);
60
+ if (this.linkItem) {
61
+ this._ariaSelected = this.linkItem.selected;
62
+ this._ariaDisabled = !this._stateService.selectable && !this.linkItem.selected;
63
+ this._title = this.linkItem.getTitle();
64
+ }
50
65
  }
51
66
  /** @hidden */
52
67
  ngOnDestroy() {
@@ -55,11 +70,11 @@ export class NestedItemDirective {
55
70
  }
56
71
  /** Check if the item element has any child */
57
72
  get hasChildren() {
58
- return !!(this._itemService && this._itemService.list);
73
+ return !!this._itemService?.list;
59
74
  }
60
75
  /** Get all of the children item elements */
61
76
  get allChildrenItems() {
62
- if (this._itemService && this._itemService.list) {
77
+ if (this._itemService?.list) {
63
78
  return this._itemService.list.nestedItems.toArray();
64
79
  }
65
80
  return [];
@@ -109,9 +124,7 @@ export class NestedItemDirective {
109
124
  if (this._itemService.list) {
110
125
  return !!this._itemService.list.nestedItems.find((item) => item.containsId(id));
111
126
  }
112
- else {
113
- return false;
114
- }
127
+ return false;
115
128
  }
116
129
  /**
117
130
  * @hidden
@@ -119,11 +132,15 @@ export class NestedItemDirective {
119
132
  */
120
133
  propagateOpenChange(open) {
121
134
  this._expanded = open;
135
+ if (this.hasChildren) {
136
+ this._ariaExpanded = this._expanded;
137
+ }
122
138
  /**
123
139
  * Propagate to child content directive, which contains icon and link
124
140
  */
125
141
  if (this.contentItem) {
126
142
  this.contentItem.changeExpandedState(open);
143
+ this.contentItem.ariaExpanded = this._expanded;
127
144
  }
128
145
  /** Propagate hidden flag to list component, that is passed from child */
129
146
  if (this._itemService.list) {
@@ -149,6 +166,9 @@ export class NestedItemDirective {
149
166
  }
150
167
  /** @hidden */
151
168
  _setUpSubscriptions() {
169
+ if (this._stateService.condensed) {
170
+ this._role = 'menuitemradio';
171
+ }
152
172
  /** Subscribe to mouse click event, thrown by link item */
153
173
  this._itemService.toggle.pipe(takeUntil(this._onDestroy$)).subscribe(() => this.toggle());
154
174
  /** Subscribe to mouse click event, thrown by link item */
@@ -167,6 +187,7 @@ export class NestedItemDirective {
167
187
  /** @hidden */
168
188
  _propagateHasChildrenProperty() {
169
189
  if (this.contentItem && this.hasChildren) {
190
+ this._ariaExpanded = false;
170
191
  this.contentItem.hasChildren = true;
171
192
  this.contentItem.changeDetRef.detectChanges();
172
193
  }
@@ -179,16 +200,18 @@ export class NestedItemDirective {
179
200
  }
180
201
  /** Change of selected state of content or link, if there is any children with I */
181
202
  _selectedChange(id) {
203
+ const selected = this.containsId(id);
204
+ this._ariaSelected = selected;
182
205
  if (this.contentItem) {
183
- this.contentItem.changeSelected(this.containsId(id));
206
+ this.contentItem.changeSelected(selected);
184
207
  }
185
208
  else if (this.linkItem) {
186
- this.linkItem.changeSelected(this.containsId(id));
209
+ this.linkItem.changeSelected(selected);
187
210
  }
188
211
  }
189
212
  }
190
213
  NestedItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: NestedItemDirective, deps: [{ token: i1.NestedItemService }, { token: i2.NestedListKeyboardService }, { token: i3.NestedListStateService }], target: i0.ɵɵFactoryTarget.Directive });
191
- NestedItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.4", type: NestedItemDirective, selector: "[fdNestedItem], [fd-nested-list-item]", inputs: { expanded: "expanded" }, outputs: { expandedChange: "expandedChange", keyboardTriggered: "keyboardTriggered" }, host: { properties: { "class.fd-nested-list__item": "this.fdNestedListItemClass" } }, providers: [NestedItemService], queries: [{ propertyName: "linkItem", first: true, predicate: NestedLinkDirective, descendants: true }, { propertyName: "contentItem", first: true, predicate: NestedListContentDirective, descendants: true }], ngImport: i0 });
214
+ NestedItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.4", type: NestedItemDirective, selector: "[fdNestedItem], [fd-nested-list-item]", inputs: { expanded: "expanded" }, outputs: { expandedChange: "expandedChange", keyboardTriggered: "keyboardTriggered" }, host: { properties: { "class.fd-nested-list__item": "this.fdNestedListItemClass", "attr.aria-level": "this._ariaLevel", "attr.title": "this._title", "attr.role": "this._role", "attr.aria-expanded": "this._ariaExpanded", "attr.aria-selected": "this._ariaSelected", "attr.aria-disabled": "this._ariaDisabled", "attr.aria-label": "this._ariaLabel", "attr.aria-hidden": "this._ariaHidden" } }, providers: [NestedItemService], queries: [{ propertyName: "linkItem", first: true, predicate: NestedLinkDirective, descendants: true }, { propertyName: "contentItem", first: true, predicate: NestedListContentDirective, descendants: true }], ngImport: i0 });
192
215
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: NestedItemDirective, decorators: [{
193
216
  type: Directive,
194
217
  args: [{
@@ -210,5 +233,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
210
233
  }], contentItem: [{
211
234
  type: ContentChild,
212
235
  args: [NestedListContentDirective]
236
+ }], _ariaLevel: [{
237
+ type: HostBinding,
238
+ args: ['attr.aria-level']
239
+ }], _title: [{
240
+ type: HostBinding,
241
+ args: ['attr.title']
242
+ }], _role: [{
243
+ type: HostBinding,
244
+ args: ['attr.role']
245
+ }], _ariaExpanded: [{
246
+ type: HostBinding,
247
+ args: ['attr.aria-expanded']
248
+ }], _ariaSelected: [{
249
+ type: HostBinding,
250
+ args: ['attr.aria-selected']
251
+ }], _ariaDisabled: [{
252
+ type: HostBinding,
253
+ args: ['attr.aria-disabled']
254
+ }], _ariaLabel: [{
255
+ type: HostBinding,
256
+ args: ['attr.aria-label']
257
+ }], _ariaHidden: [{
258
+ type: HostBinding,
259
+ args: ['attr.aria-hidden']
213
260
  }] } });
214
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdGVkLWl0ZW0uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvbmVzdGVkLWxpc3QvbmVzdGVkLWl0ZW0vbmVzdGVkLWl0ZW0uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxZQUFZLEVBQ1osU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUVMLE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU1RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUM3RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7O0FBRXRFLElBQUksMEJBQTBCLEdBQUcsQ0FBQyxDQUFDO0FBTW5DLE1BQU0sT0FBTyxtQkFBbUI7SUF3QzVCLGNBQWM7SUFDZCxZQUNZLFlBQStCLEVBQy9CLGdCQUEyQyxFQUMzQyxhQUFxQztRQUZyQyxpQkFBWSxHQUFaLFlBQVksQ0FBbUI7UUFDL0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUEyQjtRQUMzQyxrQkFBYSxHQUFiLGFBQWEsQ0FBd0I7UUEvQmpELG1EQUFtRDtRQUUxQyxtQkFBYyxHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO1FBRTdFLG1GQUFtRjtRQUUxRSxzQkFBaUIsR0FBZ0MsSUFBSSxZQUFZLEVBQWlCLENBQUM7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QUtQLHFCQUFxQjtzQkFEcEIsV0FBVzt1QkFBQyw0QkFBNEI7Z0JBUXpDLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxtQkFBbUI7Z0JBU2pDLFdBQVc7c0JBRFYsWUFBWTt1QkFBQywwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5lc3RlZExpbmtEaXJlY3RpdmUgfSBmcm9tICcuLi9uZXN0ZWQtbGluay9uZXN0ZWQtbGluay5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTmVzdGVkTGlzdEtleWJvYXJkU2VydmljZSB9IGZyb20gJy4uL25lc3RlZC1saXN0LWtleWJvYXJkLnNlcnZpY2UnO1xuaW1wb3J0IHsgTmVzdGVkSXRlbUludGVyZmFjZSB9IGZyb20gJy4vbmVzdGVkLWl0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7IE5lc3RlZEl0ZW1TZXJ2aWNlIH0gZnJvbSAnLi9uZXN0ZWQtaXRlbS5zZXJ2aWNlJztcbmltcG9ydCB7IE5lc3RlZExpc3RDb250ZW50RGlyZWN0aXZlIH0gZnJvbSAnLi4vbmVzdGVkLWNvbnRlbnQvbmVzdGVkLWxpc3QtY29udGVudC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBOZXN0ZWRMaXN0U3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vbmVzdGVkLWxpc3Qtc3RhdGUuc2VydmljZSc7XG5cbmxldCBzaWRlTmF2aWdhdGlvbkl0ZW1VbmlxdWVJZCA9IDA7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2ZkTmVzdGVkSXRlbV0sIFtmZC1uZXN0ZWQtbGlzdC1pdGVtXScsXG4gICAgcHJvdmlkZXJzOiBbTmVzdGVkSXRlbVNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIE5lc3RlZEl0ZW1EaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBOZXN0ZWRJdGVtSW50ZXJmYWNlLCBPbkRlc3Ryb3kge1xuICAgIC8qKiBXaGV0aGVyIGl0ZW0gc2hvdWxkIGJlIGV4cGFuZGVkICovXG4gICAgQElucHV0KCkgc2V0IGV4cGFuZGVkKGV4cGFuZGVkOiBib29sZWFuKSB7XG4gICAgICAgIGlmIChleHBhbmRlZCAhPT0gdGhpcy5fZXhwYW5kZWQpIHtcbiAgICAgICAgICAgIHRoaXMucHJvcGFnYXRlT3BlbkNoYW5nZShleHBhbmRlZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBleHBhbmRlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2V4cGFuZGVkO1xuICAgIH1cblxuICAgIC8qKiBFdmVudCB0aHJvd24sIHdoZW4gZXhwYW5kZWQgc3RhdGUgaXMgY2hhbmdlZCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IGV4cGFuZGVkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICAvKiogRXZlbnQgdGhyb3duLCB3aGVuIGFueSBrZXlib2FyZCBldmVudCBpcyBkaXNwYXRjaGVkIG9uIHRoaXMsIG9yIGxpbmsgZWxlbWVudCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IGtleWJvYXJkVHJpZ2dlcmVkOiBFdmVudEVtaXR0ZXI8S2V5Ym9hcmRFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEtleWJvYXJkRXZlbnQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmQtbmVzdGVkLWxpc3RfX2l0ZW0nKVxuICAgIGZkTmVzdGVkTGlzdEl0ZW1DbGFzcyA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogUmVmZXJlbmNlIHRvIHRoZSBsaW5rIGRpcmVjdGl2ZSwgdG8gYWxsb3cgbWFuaXB1bGF0aW5nIHRoZSBwcm9wZXJ0aWVzIG9mIHRoaXMgZWxlbWVudC5cbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKE5lc3RlZExpbmtEaXJlY3RpdmUpXG4gICAgbGlua0l0ZW06IE5lc3RlZExpbmtEaXJlY3RpdmU7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogTW9zdGx5IHVzZWQsIHdoZW4gdGhpcyBpdGVtIGhhcyBsaXN0XG4gICAgICogUmVmZXJlbmNlIHRvIHRoZSBjb250ZW50IGRpcmVjdGl2ZSwgdG8gYWxsb3cgbWFuaXB1bGF0aW5nIHRoZSBwcm9wZXJ0aWVzIG9mIHRoaXMgZWxlbWVudC5cbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKE5lc3RlZExpc3RDb250ZW50RGlyZWN0aXZlKVxuICAgIGNvbnRlbnRJdGVtOiBOZXN0ZWRMaXN0Q29udGVudERpcmVjdGl2ZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX2l0ZW1TZXJ2aWNlOiBOZXN0ZWRJdGVtU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfa2V5Ym9hcmRTZXJ2aWNlOiBOZXN0ZWRMaXN0S2V5Ym9hcmRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9zdGF0ZVNlcnZpY2U6IE5lc3RlZExpc3RTdGF0ZVNlcnZpY2VcbiAgICApIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2V4cGFuZGVkID0gZmFsc2U7XG5cbiAgICAvKiogQW4gUnhKUyBTdWJqZWN0IHRoYXQgd2lsbCBraWxsIHRoZSBkYXRhIHN0cmVhbSB1cG9uIGNvbXBvbmVudOKAmXMgZGVzdHJ1Y3Rpb24gKGZvciB1bnN1YnNjcmliaW5nKSAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9vbkRlc3Ryb3kkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBVbmlxdWUgZWxlbWVudCBJRCAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRJZDogc3RyaW5nID0gJ2ZkTmVzdGVkSXRlbScgKyBzaWRlTmF2aWdhdGlvbkl0ZW1VbmlxdWVJZCsrO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NldFVwU3Vic2NyaXB0aW9ucygpO1xuICAgICAgICB0aGlzLl9wcm9wYWdhdGVIYXNDaGlsZHJlblByb3BlcnR5KCk7XG4gICAgICAgIHRoaXMuX3Bhc3NJdGVtUmVmZXJlbmNlcygpO1xuICAgICAgICAvKiogUHJvcGFnYXRlIGluaXRpYWwgb3BlbiBzdGF0ZSB0byBjaGlsZHJlbiAqL1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZU9wZW5DaGFuZ2UodGhpcy5fZXhwYW5kZWQpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX29uRGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLl9vbkRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgLyoqIENoZWNrIGlmIHRoZSBpdGVtIGVsZW1lbnQgaGFzIGFueSBjaGlsZCAqL1xuICAgIGdldCBoYXNDaGlsZHJlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhKHRoaXMuX2l0ZW1TZXJ2aWNlICYmIHRoaXMuX2l0ZW1TZXJ2aWNlLmxpc3QpO1xuICAgIH1cblxuICAgIC8qKiBHZXQgYWxsIG9mIHRoZSBjaGlsZHJlbiBpdGVtIGVsZW1lbnRzICovXG4gICAgZ2V0IGFsbENoaWxkcmVuSXRlbXMoKTogTmVzdGVkSXRlbUludGVyZmFjZVtdIHtcbiAgICAgICAgaWYgKHRoaXMuX2l0ZW1TZXJ2aWNlICYmIHRoaXMuX2l0ZW1TZXJ2aWNlLmxpc3QpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9pdGVtU2VydmljZS5saXN0Lm5lc3RlZEl0ZW1zLnRvQXJyYXkoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgLyoqIE1ldGhvZCB0aGF0IGV4cGFuZCB0aGUgaXRlbSBhbmQgcHJvcGFnYXRlIGl0IHRvIGNoaWxkcmVuICovXG4gICAgdHJpZ2dlck9wZW4oKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5leHBhbmRlZCkge1xuICAgICAgICAgICAgLyoqIFByb3BhZ2F0ZSBpbml0aWFsIG9wZW4gc3RhdGUgdG8gY2hpbGRyZW4gKi9cbiAgICAgICAgICAgIHRoaXMucHJvcGFnYXRlT3BlbkNoYW5nZSh0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBNZXRob2QgdGhhdCBjbG9zZSB0aGUgaXRlbSBhbmQgcHJvcGFnYXRlIGl0IHRvIGNoaWxkcmVuICovXG4gICAgdHJpZ2dlckNsb3NlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5leHBhbmRlZCkge1xuICAgICAgICAgICAgLyoqIFByb3BhZ2F0ZSBpbml0aWFsIG9wZW4gc3RhdGUgdG8gY2hpbGRyZW4gKi9cbiAgICAgICAgICAgIHRoaXMucHJvcGFnYXRlT3BlbkNoYW5nZShmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogTWV0aG9kIHRoYXQgdG9nZ2xlIHRoZSBpdGVtIGFuZCBwcm9wYWdhdGUgaXQgdG8gY2hpbGRyZW4gKi9cbiAgICB0b2dnbGUoKTogdm9pZCB7XG4gICAgICAgIC8qKiBQcm9wYWdhdGUgaW5pdGlhbCBvcGVuIHN0YXRlIHRvIGNoaWxkcmVuICovXG4gICAgICAgIHRoaXMucHJvcGFnYXRlT3BlbkNoYW5nZSghdGhpcy5fZXhwYW5kZWQpO1xuICAgIH1cblxuICAgIC8qKiBNZXRob2QgdGhhdCBkaXNwYXRjaGVzIGBjbGlja2AgZXZlbnQgb24gbGluayBpdGVtKi9cbiAgICBjbGljaygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY29udGVudEl0ZW0pIHtcbiAgICAgICAgICAgIHRoaXMuY29udGVudEl0ZW0uY2xpY2soKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmxpbmtJdGVtKSB7XG4gICAgICAgICAgICB0aGlzLmxpbmtJdGVtLmNsaWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogTWV0aG9kIHRoYXQgZm9jdXNlcyBsaW5rIGl0ZW0qL1xuICAgIGZvY3VzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jb250ZW50SXRlbSkge1xuICAgICAgICAgICAgdGhpcy5jb250ZW50SXRlbS5mb2N1cygpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubGlua0l0ZW0pIHtcbiAgICAgICAgICAgIHRoaXMubGlua0l0ZW0uZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBNZXRob2QgdGhhdCBwcm92aWRlcyBpbmZvcm1hdGlvbiBpZiBlbGVtZW50LCBvciBjaGlsZHJlbiBvZiB0aGlzIGVsZW1lbnQgaGFzIHBhc3NlZCBpZCAqL1xuICAgIGNvbnRhaW5zSWQoaWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5fZWxlbWVudElkID09PSBpZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX2l0ZW1TZXJ2aWNlLmxpc3QpIHtcbiAgICAgICAgICAgIHJldHVybiAhIXRoaXMuX2l0ZW1TZXJ2aWNlLmxpc3QubmVzdGVkSXRlbXMuZmluZCgoaXRlbSkgPT4gaXRlbS5jb250YWluc0lkKGlkKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogUHJvcGFnYXRlIG9wZW4gc3RhdGUgdG8gYWxsIG9mIHRoZSBjaGlsZHJlblxuICAgICAqL1xuICAgIHByaXZhdGUgcHJvcGFnYXRlT3BlbkNoYW5nZShvcGVuOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2V4cGFuZGVkID0gb3BlbjtcblxuICAgICAgICAvKipcbiAgICAgICAgICogUHJvcGFnYXRlIHRvIGNoaWxkIGNvbnRlbnQgZGlyZWN0aXZlLCB3aGljaCBjb250YWlucyBpY29uIGFuZCBsaW5rXG4gICAgICAgICAqL1xuICAgICAgICBpZiAodGhpcy5jb250ZW50SXRlbSkge1xuICAgICAgICAgICAgdGhpcy5jb250ZW50SXRlbS5jaGFuZ2VFeHBhbmRlZFN0YXRlKG9wZW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqIFByb3BhZ2F0ZSBoaWRkZW4gZmxhZyB0byBsaXN0IGNvbXBvbmVudCwgdGhhdCBpcyBwYXNzZWQgZnJvbSBjaGlsZCAqL1xuICAgICAgICBpZiAodGhpcy5faXRlbVNlcnZpY2UubGlzdCkge1xuICAgICAgICAgICAgdGhpcy5faXRlbVNlcnZpY2UubGlzdC5oaWRkZW4gPSAhb3BlbjtcbiAgICAgICAgICAgIHRoaXMuX2l0ZW1TZXJ2aWNlLmxpc3QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqIFByb3BhZ2F0ZSBvcGVuIGZsYWcgdG8gcG9wb3ZlciBsaXN0IGNvbXBvbmVudCwgdGhhdCBpcyBwYXNzZWQgZnJvbSBjaGlsZCAqL1xuICAgICAgICBpZiAodGhpcy5faXRlbVNlcnZpY2UucG9wb3Zlcikge1xuICAgICAgICAgICAgdGhpcy5faXRlbVNlcnZpY2UucG9wb3Zlci5vcGVuID0gb3BlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiB0aGVyZSBhcmUgYW55IGxpc3QgYmVsb3dcbiAgICAgICAgICogVHJpZ2dlciBldmVudCB0byBwcm92aWRlIGtleWJvYXJkIHN1cHBvcnQgdG8gbmV3IGxpc3Qgb2Ygb3BlbmVkIGl0ZW0gZWxlbWVudC5cbiAgICAgICAgICogKi9cbiAgICAgICAgaWYgKHRoaXMuX3Nob3VsZFJlZnJlc2hLZXlib2FyZFNlcnZpY2UoKSkge1xuICAgICAgICAgICAgdGhpcy5fa2V5Ym9hcmRTZXJ2aWNlLnJlZnJlc2gkLm5leHQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZXhwYW5kZWRDaGFuZ2UuZW1pdChvcGVuKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3Nob3VsZFJlZnJlc2hLZXlib2FyZFNlcnZpY2UoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhISh0aGlzLl9pdGVtU2VydmljZS5wb3BvdmVyIHx8IHRoaXMuX2l0ZW1TZXJ2aWNlLmxpc3QgfHwgdGhpcy5jb250ZW50SXRlbSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zZXRVcFN1YnNjcmlwdGlvbnMoKTogdm9pZCB7XG4gICAgICAgIC8qKiBTdWJzY3JpYmUgdG8gbW91c2UgY2xpY2sgZXZlbnQsIHRocm93biBieSBsaW5rIGl0ZW0gKi9cbiAgICAgICAgdGhpcy5faXRlbVNlcnZpY2UudG9nZ2xlLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy50b2dnbGUoKSk7XG5cbiAgICAgICAgLyoqIFN1YnNjcmliZSB0byBtb3VzZSBjbGljayBldmVudCwgdGhyb3duIGJ5IGxpbmsgaXRlbSAqL1xuICAgICAgICB0aGlzLl9pdGVtU2VydmljZS5jbGlja1xuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9zdGF0ZVNlcnZpY2Uub25TZWxlY3RlZC5uZXh0KHRoaXMuX2VsZW1lbnRJZCkpO1xuXG4gICAgICAgIC8qKiBTdWJzY3JpYmUgdG8ga2V5Ym9hcmQgZXZlbnQgYW5kIHRocm93IGl0IGZhcnRoZXIgKi9cbiAgICAgICAgdGhpcy5faXRlbVNlcnZpY2Uua2V5RG93blxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoa2V5Ym9hcmRFdmVudCkgPT4gdGhpcy5rZXlib2FyZFRyaWdnZXJlZC5lbWl0KGtleWJvYXJkRXZlbnQpKTtcblxuICAgICAgICAvKiogU3Vic2NyaWJlIHRvIHNlbGVjdGVkIHN0YXRlIGNoYW5nZSwgaXQncyBub3QgdHJpZ2dlcmVkLCB3aGVuIHNlbGVjdGFibGUgZmxhZyBpcyBkaXNhYmxlZCovXG4gICAgICAgIHRoaXMuX3N0YXRlU2VydmljZS5vblNlbGVjdGVkXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCksXG4gICAgICAgICAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMuX3N0YXRlU2VydmljZS5zZWxlY3RhYmxlKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoaWQpID0+IHRoaXMuX3NlbGVjdGVkQ2hhbmdlKGlkKSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9wcm9wYWdhdGVIYXNDaGlsZHJlblByb3BlcnR5KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jb250ZW50SXRlbSAmJiB0aGlzLmhhc0NoaWxkcmVuKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRlbnRJdGVtLmhhc0NoaWxkcmVuID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuY29udGVudEl0ZW0uY2hhbmdlRGV0UmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBQYXNzIHRoaXMgZWxlbWVudCB0byBwb3BvdmVyIGNoaWxkIGl0ZW0sIHRvIGFsbG93IGNvbnRyb2wgYGV4cGFuZGVkYCB2YWx1ZSAqL1xuICAgIHByaXZhdGUgX3Bhc3NJdGVtUmVmZXJlbmNlcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2l0ZW1TZXJ2aWNlLnBvcG92ZXIpIHtcbiAgICAgICAgICAgIHRoaXMuX2l0ZW1TZXJ2aWNlLnBvcG92ZXIucGFyZW50SXRlbUVsZW1lbnQgPSB0aGlzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIENoYW5nZSBvZiBzZWxlY3RlZCBzdGF0ZSBvZiBjb250ZW50IG9yIGxpbmssIGlmIHRoZXJlIGlzIGFueSBjaGlsZHJlbiB3aXRoIEkgKi9cbiAgICBwcml2YXRlIF9zZWxlY3RlZENoYW5nZShpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRlbnRJdGVtKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRlbnRJdGVtLmNoYW5nZVNlbGVjdGVkKHRoaXMuY29udGFpbnNJZChpZCkpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubGlua0l0ZW0pIHtcbiAgICAgICAgICAgIHRoaXMubGlua0l0ZW0uY2hhbmdlU2VsZWN0ZWQodGhpcy5jb250YWluc0lkKGlkKSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
261
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdGVkLWl0ZW0uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvbmVzdGVkLWxpc3QvbmVzdGVkLWl0ZW0vbmVzdGVkLWl0ZW0uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxZQUFZLEVBQ1osU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUVMLE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDNUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDN0YsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7O0FBRzFELElBQUksMEJBQTBCLEdBQUcsQ0FBQyxDQUFDO0FBTW5DLE1BQU0sT0FBTyxtQkFBbUI7SUFpRjVCLGNBQWM7SUFDZCxZQUNZLFlBQStCLEVBQy9CLGdCQUEyQyxFQUMzQyxhQUFxQztRQUZyQyxpQkFBWSxHQUFaLFlBQVksQ0FBbUI7UUFDL0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUEyQjtRQUMzQyxrQkFBYSxHQUFiLGFBQWEsQ0FBd0I7UUF4RWpELG1EQUFtRDtRQUUxQyxtQkFBYyxHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO1FBRTdFLG1GQUFtRjtRQUUxRSxzQkFBaUIsR0FBZ0MsSUFBSSxZQUFZLEVBQWlCLENBQUM7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QURwQixXQUFXO3VCQUFDLG9CQUFvQjtnQkFLekIsYUFBYTtzQkFEcEIsV0FBVzt1QkFBQyxvQkFBb0I7Z0JBS3pCLGFBQWE7c0JBRHBCLFdBQVc7dUJBQUMsb0JBQW9CO2dCQUt6QixVQUFVO3NCQURqQixXQUFXO3VCQUFDLGlCQUFpQjtnQkFLdEIsV0FBVztzQkFEbEIsV0FBVzt1QkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBOZXN0ZWRMaW5rRGlyZWN0aXZlIH0gZnJvbSAnLi4vbmVzdGVkLWxpbmsvbmVzdGVkLWxpbmsuZGlyZWN0aXZlJztcbmltcG9ydCB7IE5lc3RlZExpc3RLZXlib2FyZFNlcnZpY2UgfSBmcm9tICcuLi9uZXN0ZWQtbGlzdC1rZXlib2FyZC5zZXJ2aWNlJztcbmltcG9ydCB7IE5lc3RlZExpc3RDb250ZW50RGlyZWN0aXZlIH0gZnJvbSAnLi4vbmVzdGVkLWNvbnRlbnQvbmVzdGVkLWxpc3QtY29udGVudC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTmVzdGVkTGlzdFN0YXRlU2VydmljZSB9IGZyb20gJy4uL25lc3RlZC1saXN0LXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTmVzdGVkSXRlbUludGVyZmFjZSB9IGZyb20gJy4vbmVzdGVkLWl0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7IE5lc3RlZEl0ZW1TZXJ2aWNlIH0gZnJvbSAnLi9uZXN0ZWQtaXRlbS5zZXJ2aWNlJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3NoYXJlZCc7XG5cbmxldCBzaWRlTmF2aWdhdGlvbkl0ZW1VbmlxdWVJZCA9IDA7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2ZkTmVzdGVkSXRlbV0sIFtmZC1uZXN0ZWQtbGlzdC1pdGVtXScsXG4gICAgcHJvdmlkZXJzOiBbTmVzdGVkSXRlbVNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIE5lc3RlZEl0ZW1EaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBOZXN0ZWRJdGVtSW50ZXJmYWNlLCBPbkRlc3Ryb3kge1xuICAgIC8qKiBXaGV0aGVyIGl0ZW0gc2hvdWxkIGJlIGV4cGFuZGVkICovXG4gICAgQElucHV0KCkgc2V0IGV4cGFuZGVkKGV4cGFuZGVkOiBib29sZWFuKSB7XG4gICAgICAgIGlmIChleHBhbmRlZCAhPT0gdGhpcy5fZXhwYW5kZWQpIHtcbiAgICAgICAgICAgIHRoaXMucHJvcGFnYXRlT3BlbkNoYW5nZShleHBhbmRlZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBleHBhbmRlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2V4cGFuZGVkO1xuICAgIH1cblxuICAgIC8qKiBFdmVudCB0aHJvd24sIHdoZW4gZXhwYW5kZWQgc3RhdGUgaXMgY2hhbmdlZCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IGV4cGFuZGVkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICAvKiogRXZlbnQgdGhyb3duLCB3aGVuIGFueSBrZXlib2FyZCBldmVudCBpcyBkaXNwYXRjaGVkIG9uIHRoaXMsIG9yIGxpbmsgZWxlbWVudCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IGtleWJvYXJkVHJpZ2dlcmVkOiBFdmVudEVtaXR0ZXI8S2V5Ym9hcmRFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEtleWJvYXJkRXZlbnQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmQtbmVzdGVkLWxpc3RfX2l0ZW0nKVxuICAgIGZkTmVzdGVkTGlzdEl0ZW1DbGFzcyA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogUmVmZXJlbmNlIHRvIHRoZSBsaW5rIGRpcmVjdGl2ZSwgdG8gYWxsb3cgbWFuaXB1bGF0aW5nIHRoZSBwcm9wZXJ0aWVzIG9mIHRoaXMgZWxlbWVudC5cbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKE5lc3RlZExpbmtEaXJlY3RpdmUpXG4gICAgbGlua0l0ZW06IE5lc3RlZExpbmtEaXJlY3RpdmU7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogTW9zdGx5IHVzZWQsIHdoZW4gdGhpcyBpdGVtIGhhcyBsaXN0XG4gICAgICogUmVmZXJlbmNlIHRvIHRoZSBjb250ZW50IGRpcmVjdGl2ZSwgdG8gYWxsb3cgbWFuaXB1bGF0aW5nIHRoZSBwcm9wZXJ0aWVzIG9mIHRoaXMgZWxlbWVudC5cbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKE5lc3RlZExpc3RDb250ZW50RGlyZWN0aXZlKVxuICAgIGNvbnRlbnRJdGVtOiBOZXN0ZWRMaXN0Q29udGVudERpcmVjdGl2ZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtbGV2ZWwnKVxuICAgIF9hcmlhTGV2ZWw6IE51bGxhYmxlPG51bWJlcj4gPSBudWxsO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIudGl0bGUnKVxuICAgIF90aXRsZTogc3RyaW5nO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIucm9sZScpXG4gICAgcHJpdmF0ZSBfcm9sZTogc3RyaW5nO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9leHBhbmRlZCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1leHBhbmRlZCcpXG4gICAgcHJpdmF0ZSBfYXJpYUV4cGFuZGVkOiBOdWxsYWJsZTxib29sZWFuPiA9IG51bGw7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLXNlbGVjdGVkJylcbiAgICBwcml2YXRlIF9hcmlhU2VsZWN0ZWQ6IE51bGxhYmxlPGJvb2xlYW4+ID0gbnVsbDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtZGlzYWJsZWQnKVxuICAgIHByaXZhdGUgX2FyaWFEaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1sYWJlbCcpXG4gICAgcHJpdmF0ZSBfYXJpYUxhYmVsOiBzdHJpbmc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWhpZGRlbicpXG4gICAgcHJpdmF0ZSBfYXJpYUhpZGRlbiA9IHRydWU7XG5cbiAgICAvKiogQW4gUnhKUyBTdWJqZWN0IHRoYXQgd2lsbCBraWxsIHRoZSBkYXRhIHN0cmVhbSB1cG9uIGNvbXBvbmVudOKAmXMgZGVzdHJ1Y3Rpb24gKGZvciB1bnN1YnNjcmliaW5nKSAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9vbkRlc3Ryb3kkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBVbmlxdWUgZWxlbWVudCBJRCAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRJZDogc3RyaW5nID0gJ2ZkTmVzdGVkSXRlbScgKyBzaWRlTmF2aWdhdGlvbkl0ZW1VbmlxdWVJZCsrO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfaXRlbVNlcnZpY2U6IE5lc3RlZEl0ZW1TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9rZXlib2FyZFNlcnZpY2U6IE5lc3RlZExpc3RLZXlib2FyZFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX3N0YXRlU2VydmljZTogTmVzdGVkTGlzdFN0YXRlU2VydmljZVxuICAgICkge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zZXRVcFN1YnNjcmlwdGlvbnMoKTtcbiAgICAgICAgdGhpcy5fcHJvcGFnYXRlSGFzQ2hpbGRyZW5Qcm9wZXJ0eSgpO1xuICAgICAgICB0aGlzLl9wYXNzSXRlbVJlZmVyZW5jZXMoKTtcbiAgICAgICAgLyoqIFByb3BhZ2F0ZSBpbml0aWFsIG9wZW4gc3RhdGUgdG8gY2hpbGRyZW4gKi9cbiAgICAgICAgdGhpcy5wcm9wYWdhdGVPcGVuQ2hhbmdlKHRoaXMuX2V4cGFuZGVkKTtcblxuICAgICAgICBpZiAodGhpcy5saW5rSXRlbSkge1xuICAgICAgICAgICAgdGhpcy5fYXJpYVNlbGVjdGVkID0gdGhpcy5saW5rSXRlbS5zZWxlY3RlZDtcbiAgICAgICAgICAgIHRoaXMuX2FyaWFEaXNhYmxlZCA9ICF0aGlzLl9zdGF0ZVNlcnZpY2Uuc2VsZWN0YWJsZSAmJiAhdGhpcy5saW5rSXRlbS5zZWxlY3RlZDtcbiAgICAgICAgICAgIHRoaXMuX3RpdGxlID0gdGhpcy5saW5rSXRlbS5nZXRUaXRsZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fb25EZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuX29uRGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICAvKiogQ2hlY2sgaWYgdGhlIGl0ZW0gZWxlbWVudCBoYXMgYW55IGNoaWxkICovXG4gICAgZ2V0IGhhc0NoaWxkcmVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLl9pdGVtU2VydmljZT8ubGlzdDtcbiAgICB9XG5cbiAgICAvKiogR2V0IGFsbCBvZiB0aGUgY2hpbGRyZW4gaXRlbSBlbGVtZW50cyAqL1xuICAgIGdldCBhbGxDaGlsZHJlbkl0ZW1zKCk6IE5lc3RlZEl0ZW1JbnRlcmZhY2VbXSB7XG4gICAgICAgIGlmICh0aGlzLl9pdGVtU2VydmljZT8ubGlzdCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2l0ZW1TZXJ2aWNlLmxpc3QubmVzdGVkSXRlbXMudG9BcnJheSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIC8qKiBNZXRob2QgdGhhdCBleHBhbmQgdGhlIGl0ZW0gYW5kIHByb3BhZ2F0ZSBpdCB0byBjaGlsZHJlbiAqL1xuICAgIHRyaWdnZXJPcGVuKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZXhwYW5kZWQpIHtcbiAgICAgICAgICAgIC8qKiBQcm9wYWdhdGUgaW5pdGlhbCBvcGVuIHN0YXRlIHRvIGNoaWxkcmVuICovXG4gICAgICAgICAgICB0aGlzLnByb3BhZ2F0ZU9wZW5DaGFuZ2UodHJ1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogTWV0aG9kIHRoYXQgY2xvc2UgdGhlIGl0ZW0gYW5kIHByb3BhZ2F0ZSBpdCB0byBjaGlsZHJlbiAqL1xuICAgIHRyaWdnZXJDbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZXhwYW5kZWQpIHtcbiAgICAgICAgICAgIC8qKiBQcm9wYWdhdGUgaW5pdGlhbCBvcGVuIHN0YXRlIHRvIGNoaWxkcmVuICovXG4gICAgICAgICAgICB0aGlzLnByb3BhZ2F0ZU9wZW5DaGFuZ2UoZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIE1ldGhvZCB0aGF0IHRvZ2dsZSB0aGUgaXRlbSBhbmQgcHJvcGFnYXRlIGl0IHRvIGNoaWxkcmVuICovXG4gICAgdG9nZ2xlKCk6IHZvaWQge1xuICAgICAgICAvKiogUHJvcGFnYXRlIGluaXRpYWwgb3BlbiBzdGF0ZSB0byBjaGlsZHJlbiAqL1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZU9wZW5DaGFuZ2UoIXRoaXMuX2V4cGFuZGVkKTtcbiAgICB9XG5cbiAgICAvKiogTWV0aG9kIHRoYXQgZGlzcGF0Y2hlcyBgY2xpY2tgIGV2ZW50IG9uIGxpbmsgaXRlbSovXG4gICAgY2xpY2soKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRlbnRJdGVtKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRlbnRJdGVtLmNsaWNrKCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5saW5rSXRlbSkge1xuICAgICAgICAgICAgdGhpcy5saW5rSXRlbS5jbGljaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIE1ldGhvZCB0aGF0IGZvY3VzZXMgbGluayBpdGVtKi9cbiAgICBmb2N1cygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY29udGVudEl0ZW0pIHtcbiAgICAgICAgICAgIHRoaXMuY29udGVudEl0ZW0uZm9jdXMoKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmxpbmtJdGVtKSB7XG4gICAgICAgICAgICB0aGlzLmxpbmtJdGVtLmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogTWV0aG9kIHRoYXQgcHJvdmlkZXMgaW5mb3JtYXRpb24gaWYgZWxlbWVudCwgb3IgY2hpbGRyZW4gb2YgdGhpcyBlbGVtZW50IGhhcyBwYXNzZWQgaWQgKi9cbiAgICBjb250YWluc0lkKGlkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMuX2VsZW1lbnRJZCA9PT0gaWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX2l0ZW1TZXJ2aWNlLmxpc3QpIHtcbiAgICAgICAgICAgIHJldHVybiAhIXRoaXMuX2l0ZW1TZXJ2aWNlLmxpc3QubmVzdGVkSXRlbXMuZmluZCgoaXRlbSkgPT4gaXRlbS5jb250YWluc0lkKGlkKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFByb3BhZ2F0ZSBvcGVuIHN0YXRlIHRvIGFsbCBvZiB0aGUgY2hpbGRyZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIHByb3BhZ2F0ZU9wZW5DaGFuZ2Uob3BlbjogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLl9leHBhbmRlZCA9IG9wZW47XG5cbiAgICAgICAgaWYgKHRoaXMuaGFzQ2hpbGRyZW4pIHtcbiAgICAgICAgICAgIHRoaXMuX2FyaWFFeHBhbmRlZCA9IHRoaXMuX2V4cGFuZGVkO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFByb3BhZ2F0ZSB0byBjaGlsZCBjb250ZW50IGRpcmVjdGl2ZSwgd2hpY2ggY29udGFpbnMgaWNvbiBhbmQgbGlua1xuICAgICAgICAgKi9cbiAgICAgICAgaWYgKHRoaXMuY29udGVudEl0ZW0pIHtcbiAgICAgICAgICAgIHRoaXMuY29udGVudEl0ZW0uY2hhbmdlRXhwYW5kZWRTdGF0ZShvcGVuKTtcbiAgICAgICAgICAgIHRoaXMuY29udGVudEl0ZW0uYXJpYUV4cGFuZGVkID0gdGhpcy5fZXhwYW5kZWQ7XG4gICAgICAgIH1cblxuICAgICAgICAvKiogUHJvcGFnYXRlIGhpZGRlbiBmbGFnIHRvIGxpc3QgY29tcG9uZW50LCB0aGF0IGlzIHBhc3NlZCBmcm9tIGNoaWxkICovXG4gICAgICAgIGlmICh0aGlzLl9pdGVtU2VydmljZS5saXN0KSB7XG4gICAgICAgICAgICB0aGlzLl9pdGVtU2VydmljZS5saXN0LmhpZGRlbiA9ICFvcGVuO1xuICAgICAgICAgICAgdGhpcy5faXRlbVNlcnZpY2UubGlzdC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvKiogUHJvcGFnYXRlIG9wZW4gZmxhZyB0byBwb3BvdmVyIGxpc3QgY29tcG9uZW50LCB0aGF0IGlzIHBhc3NlZCBmcm9tIGNoaWxkICovXG4gICAgICAgIGlmICh0aGlzLl9pdGVtU2VydmljZS5wb3BvdmVyKSB7XG4gICAgICAgICAgICB0aGlzLl9pdGVtU2VydmljZS5wb3BvdmVyLm9wZW4gPSBvcGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIElmIHRoZXJlIGFyZSBhbnkgbGlzdCBiZWxvd1xuICAgICAgICAgKiBUcmlnZ2VyIGV2ZW50IHRvIHByb3ZpZGUga2V5Ym9hcmQgc3VwcG9ydCB0byBuZXcgbGlzdCBvZiBvcGVuZWQgaXRlbSBlbGVtZW50LlxuICAgICAgICAgKiAqL1xuICAgICAgICBpZiAodGhpcy5fc2hvdWxkUmVmcmVzaEtleWJvYXJkU2VydmljZSgpKSB7XG4gICAgICAgICAgICB0aGlzLl9rZXlib2FyZFNlcnZpY2UucmVmcmVzaCQubmV4dCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5leHBhbmRlZENoYW5nZS5lbWl0KG9wZW4pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2hvdWxkUmVmcmVzaEtleWJvYXJkU2VydmljZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhKHRoaXMuX2l0ZW1TZXJ2aWNlLnBvcG92ZXIgfHwgdGhpcy5faXRlbVNlcnZpY2UubGlzdCB8fCB0aGlzLmNvbnRlbnRJdGVtKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NldFVwU3Vic2NyaXB0aW9ucygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX3N0YXRlU2VydmljZS5jb25kZW5zZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX3JvbGUgPSAnbWVudWl0ZW1yYWRpbyc7XG4gICAgICAgIH1cblxuICAgICAgICAvKiogU3Vic2NyaWJlIHRvIG1vdXNlIGNsaWNrIGV2ZW50LCB0aHJvd24gYnkgbGluayBpdGVtICovXG4gICAgICAgIHRoaXMuX2l0ZW1TZXJ2aWNlLnRvZ2dsZS5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMudG9nZ2xlKCkpO1xuXG4gICAgICAgIC8qKiBTdWJzY3JpYmUgdG8gbW91c2UgY2xpY2sgZXZlbnQsIHRocm93biBieSBsaW5rIGl0ZW0gKi9cbiAgICAgICAgdGhpcy5faXRlbVNlcnZpY2UuY2xpY2tcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fc3RhdGVTZXJ2aWNlLm9uU2VsZWN0ZWQubmV4dCh0aGlzLl9lbGVtZW50SWQpKTtcblxuICAgICAgICAvKiogU3Vic2NyaWJlIHRvIGtleWJvYXJkIGV2ZW50IGFuZCB0aHJvdyBpdCBmYXJ0aGVyICovXG4gICAgICAgIHRoaXMuX2l0ZW1TZXJ2aWNlLmtleURvd25cbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGtleWJvYXJkRXZlbnQpID0+IHRoaXMua2V5Ym9hcmRUcmlnZ2VyZWQuZW1pdChrZXlib2FyZEV2ZW50KSk7XG5cbiAgICAgICAgLyoqIFN1YnNjcmliZSB0byBzZWxlY3RlZCBzdGF0ZSBjaGFuZ2UsIGl0J3Mgbm90IHRyaWdnZXJlZCwgd2hlbiBzZWxlY3RhYmxlIGZsYWcgaXMgZGlzYWJsZWQqL1xuICAgICAgICB0aGlzLl9zdGF0ZVNlcnZpY2Uub25TZWxlY3RlZFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpLFxuICAgICAgICAgICAgICAgIGZpbHRlcigoKSA9PiB0aGlzLl9zdGF0ZVNlcnZpY2Uuc2VsZWN0YWJsZSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGlkKSA9PiB0aGlzLl9zZWxlY3RlZENoYW5nZShpZCkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcHJvcGFnYXRlSGFzQ2hpbGRyZW5Qcm9wZXJ0eSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY29udGVudEl0ZW0gJiYgdGhpcy5oYXNDaGlsZHJlbikge1xuICAgICAgICAgICAgdGhpcy5fYXJpYUV4cGFuZGVkID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmNvbnRlbnRJdGVtLmhhc0NoaWxkcmVuID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuY29udGVudEl0ZW0uY2hhbmdlRGV0UmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBQYXNzIHRoaXMgZWxlbWVudCB0byBwb3BvdmVyIGNoaWxkIGl0ZW0sIHRvIGFsbG93IGNvbnRyb2wgYGV4cGFuZGVkYCB2YWx1ZSAqL1xuICAgIHByaXZhdGUgX3Bhc3NJdGVtUmVmZXJlbmNlcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2l0ZW1TZXJ2aWNlLnBvcG92ZXIpIHtcbiAgICAgICAgICAgIHRoaXMuX2l0ZW1TZXJ2aWNlLnBvcG92ZXIucGFyZW50SXRlbUVsZW1lbnQgPSB0aGlzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIENoYW5nZSBvZiBzZWxlY3RlZCBzdGF0ZSBvZiBjb250ZW50IG9yIGxpbmssIGlmIHRoZXJlIGlzIGFueSBjaGlsZHJlbiB3aXRoIEkgKi9cbiAgICBwcml2YXRlIF9zZWxlY3RlZENoYW5nZShpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5jb250YWluc0lkKGlkKTtcbiAgICAgICAgdGhpcy5fYXJpYVNlbGVjdGVkID0gc2VsZWN0ZWQ7XG5cbiAgICAgICAgaWYgKHRoaXMuY29udGVudEl0ZW0pIHtcbiAgICAgICAgICAgIHRoaXMuY29udGVudEl0ZW0uY2hhbmdlU2VsZWN0ZWQoc2VsZWN0ZWQpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubGlua0l0ZW0pIHtcbiAgICAgICAgICAgIHRoaXMubGlua0l0ZW0uY2hhbmdlU2VsZWN0ZWQoc2VsZWN0ZWQpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -16,10 +16,10 @@ export class NestedLinkDirective {
16
16
  this.selectedChange = new EventEmitter();
17
17
  /** @hidden */
18
18
  this.fdNestedListItemClass = true;
19
- /**
20
- * @hidden
21
- */
19
+ /** @hidden */
22
20
  this.tabIndex = 0;
21
+ /** @hidden */
22
+ this.role = 'treeitem';
23
23
  }
24
24
  /** Handler for keyboard events */
25
25
  onKeyDown(event) {
@@ -55,7 +55,7 @@ export class NestedLinkDirective {
55
55
  }
56
56
  }
57
57
  NestedLinkDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: NestedLinkDirective, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.NestedItemService }], target: i0.ɵɵFactoryTarget.Directive });
58
- NestedLinkDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.4", type: NestedLinkDirective, selector: "[fdNestedLink], [fd-nested-list-link]", inputs: { onClickCallback: "onClickCallback", selected: "selected" }, outputs: { selectedChange: "selectedChange" }, host: { listeners: { "keydown": "onKeyDown($event)", "click": "onClick($event)", "focus": "onFocus()" }, properties: { "class.is-selected": "this.selected", "class.fd-nested-list__link": "this.fdNestedListItemClass", "attr.tabindex": "this.tabIndex" } }, queries: [{ propertyName: "title", first: true, predicate: NestedListTitleDirective, descendants: true }], ngImport: i0 });
58
+ NestedLinkDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.4", type: NestedLinkDirective, selector: "[fdNestedLink], [fd-nested-list-link]", inputs: { onClickCallback: "onClickCallback", selected: "selected", ariaDescribedby: "ariaDescribedby" }, outputs: { selectedChange: "selectedChange" }, host: { listeners: { "keydown": "onKeyDown($event)", "click": "onClick($event)", "focus": "onFocus()" }, properties: { "class.is-selected": "this.selected", "attr.aria-label": "this._ariaLabel", "attr.aria-describedby": "this.ariaDescribedby", "class.fd-nested-list__link": "this.fdNestedListItemClass", "attr.tabindex": "this.tabIndex", "attr.role": "this.role" } }, queries: [{ propertyName: "title", first: true, predicate: NestedListTitleDirective, descendants: true }], ngImport: i0 });
59
59
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: NestedLinkDirective, decorators: [{
60
60
  type: Directive,
61
61
  args: [{
@@ -68,6 +68,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
68
68
  }, {
69
69
  type: HostBinding,
70
70
  args: ['class.is-selected']
71
+ }], _ariaLabel: [{
72
+ type: HostBinding,
73
+ args: ['attr.aria-label']
74
+ }], ariaDescribedby: [{
75
+ type: Input
76
+ }, {
77
+ type: HostBinding,
78
+ args: ['attr.aria-describedby']
71
79
  }], selectedChange: [{
72
80
  type: Output
73
81
  }], fdNestedListItemClass: [{
@@ -76,6 +84,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
76
84
  }], tabIndex: [{
77
85
  type: HostBinding,
78
86
  args: ['attr.tabindex']
87
+ }], role: [{
88
+ type: HostBinding,
89
+ args: ['attr.role']
79
90
  }], title: [{
80
91
  type: ContentChild,
81
92
  args: [NestedListTitleDirective]
@@ -89,4 +100,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
89
100
  type: HostListener,
90
101
  args: ['focus']
91
102
  }] } });
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdGVkLWxpbmsuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvbmVzdGVkLWxpc3QvbmVzdGVkLWxpbmsvbmVzdGVkLWxpbmsuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsWUFBWSxFQUNaLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7OztBQUt2RSxNQUFNLE9BQU8sbUJBQW1CO0lBK0I1QixjQUFjO0lBQ2QsWUFDVyxZQUErQixFQUM5QixTQUFvQixFQUNwQixXQUF1QixFQUN2QixZQUErQjtRQUhoQyxpQkFBWSxHQUFaLFlBQVksQ0FBbUI7UUFDOUIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUN2QixpQkFBWSxHQUFaLFlBQVksQ0FBbUI7UUEvQjNDLHNDQUFzQztRQUd0QyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWpCLG1EQUFtRDtRQUVuRCxtQkFBYyxHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO1FBRXBFLGNBQWM7UUFFZCwwQkFBcUIsR0FBRyxJQUFJLENBQUM7UUFFN0I7O1dBRUc7UUFFSCxhQUFRLEdBQUcsQ0FBQyxDQUFDO0lBZVYsQ0FBQztJQUVKLGtDQUFrQztJQUVsQyxTQUFTLENBQUMsS0FBb0I7UUFDMUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCwrQkFBK0I7SUFFL0IsT0FBTztRQUNILElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQy9CLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN0QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDMUI7SUFDTCxDQUFDO0lBRUQsK0JBQStCO0lBRS9CLE9BQU87UUFDSCxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsOENBQThDO0lBQzlDLGNBQWMsQ0FBQyxRQUFpQjtRQUM1QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsZ0NBQWdDO0lBQ2hDLEtBQUs7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRUQsZ0RBQWdEO0lBQ2hELEtBQUs7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRUQscURBQXFEO0lBQ3JELFFBQVE7UUFDSixPQUFPLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNuRCxDQUFDOztnSEEvRVEsbUJBQW1CO29HQUFuQixtQkFBbUIsb2VBNEJkLHdCQUF3QjsyRkE1QjdCLG1CQUFtQjtrQkFIL0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsdUNBQXVDO2lCQUNwRDt5TEFJRyxlQUFlO3NCQURkLEtBQUs7Z0JBTU4sUUFBUTtzQkFGUCxLQUFLOztzQkFDTCxXQUFXO3VCQUFDLG1CQUFtQjtnQkFLaEMsY0FBYztzQkFEYixNQUFNO2dCQUtQLHFCQUFxQjtzQkFEcEIsV0FBVzt1QkFBQyw0QkFBNEI7Z0JBT3pDLFFBQVE7c0JBRFAsV0FBVzt1QkFBQyxlQUFlO2dCQVE1QixLQUFLO3NCQURKLFlBQVk7dUJBQUMsd0JBQXdCO2dCQWF0QyxTQUFTO3NCQURSLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQU9uQyxPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVVqQyxPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29udGVudENoaWxkLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIFJlbmRlcmVyMlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5lc3RlZExpc3RUaXRsZURpcmVjdGl2ZSB9IGZyb20gJy4uL25lc3RlZC1saXN0LWRpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgTmVzdGVkSXRlbVNlcnZpY2UgfSBmcm9tICcuLi9uZXN0ZWQtaXRlbS9uZXN0ZWQtaXRlbS5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZmROZXN0ZWRMaW5rXSwgW2ZkLW5lc3RlZC1saXN0LWxpbmtdJ1xufSlcbmV4cG9ydCBjbGFzcyBOZXN0ZWRMaW5rRGlyZWN0aXZlIHtcbiAgICAvKiogRnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgb24gY2xpY2sgZXZlbnQgZGlzcGF0Y2ggb24gdGhpcyBlbGVtZW50LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgb25DbGlja0NhbGxiYWNrOiAoKSA9PiB2b2lkO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhpcyBlbGVtZW50IGlzIHNlbGVjdGVkKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaXMtc2VsZWN0ZWQnKVxuICAgIHNlbGVjdGVkID0gZmFsc2U7XG5cbiAgICAvKiogRXZlbnQgdGhyb3duLCB3aGVuIHNlbGVjdGVkIHN0YXRlIGlzIGNoYW5nZWQgKi9cbiAgICBAT3V0cHV0KClcbiAgICBzZWxlY3RlZENoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkLW5lc3RlZC1saXN0X19saW5rJylcbiAgICBmZE5lc3RlZExpc3RJdGVtQ2xhc3MgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci50YWJpbmRleCcpXG4gICAgdGFiSW5kZXggPSAwO1xuXG4gICAgLyoqXG4gICAgICogIEBoaWRkZW5cbiAgICAgKiAgUmVmZXJlbmNlIHRvIHRpdGxlIGVsZW1lbnQsIGl0IGlzIHVzZWQsIHRvIGdldCB0aXRsZSBmb3IgY29uZGVuc2VkIG1vZGUuXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZChOZXN0ZWRMaXN0VGl0bGVEaXJlY3RpdmUpXG4gICAgdGl0bGU6IE5lc3RlZExpc3RUaXRsZURpcmVjdGl2ZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBjaGFuZ2VEZXRSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIF9pdGVtU2VydmljZTogTmVzdGVkSXRlbVNlcnZpY2VcbiAgICApIHt9XG5cbiAgICAvKiogSGFuZGxlciBmb3Iga2V5Ym9hcmQgZXZlbnRzICovXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gICAgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2l0ZW1TZXJ2aWNlLmtleURvd24ubmV4dChldmVudCk7XG4gICAgfVxuXG4gICAgLyoqIEhhbmRsZXIgZm9yIG1vdXNlIGV2ZW50cyAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgICBvbkNsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pdGVtU2VydmljZS5jbGljay5uZXh0KCk7XG4gICAgICAgIGlmICh0aGlzLm9uQ2xpY2tDYWxsYmFjaykge1xuICAgICAgICAgICAgdGhpcy5vbkNsaWNrQ2FsbGJhY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBIYW5kbGVyIGZvciBmb2N1cyBldmVudHMgKi9cbiAgICBASG9zdExpc3RlbmVyKCdmb2N1cycpXG4gICAgb25Gb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faXRlbVNlcnZpY2UuZm9jdXMubmV4dCgpO1xuICAgIH1cblxuICAgIC8qKiBNZXRob2QgdG8gdHJpZ2dlciBzZWxlY3RlZCBzdGF0ZSBjaGFuZ2UgKi9cbiAgICBjaGFuZ2VTZWxlY3RlZChzZWxlY3RlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGVkID0gc2VsZWN0ZWQ7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDaGFuZ2UuZW1pdChzZWxlY3RlZCk7XG4gICAgfVxuXG4gICAgLyoqIFNldCBmb2N1cyBvbiB0aGUgZWxlbWVudC4gKi9cbiAgICBmb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgLyoqIERpc3BhdGNoZXMgdGhlIGNsaWNrIGV2ZW50IG9uIHRoZSBlbGVtZW50ICovXG4gICAgY2xpY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIHRoZSB0aXRsZSB2YWx1ZSBvZiB0aGUgdGl0bGUgZGlyZWN0aXZlICovXG4gICAgZ2V0VGl0bGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGl0bGUgJiYgdGhpcy50aXRsZS5nZXRJbm5lclRleHQoKTtcbiAgICB9XG59XG4iXX0=
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdGVkLWxpbmsuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvbmVzdGVkLWxpc3QvbmVzdGVkLWxpbmsvbmVzdGVkLWxpbmsuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsWUFBWSxFQUNaLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7OztBQU12RSxNQUFNLE9BQU8sbUJBQW1CO0lBMEM1QixjQUFjO0lBQ2QsWUFDVyxZQUErQixFQUM5QixTQUFvQixFQUNwQixXQUF1QixFQUN2QixZQUErQjtRQUhoQyxpQkFBWSxHQUFaLFlBQVksQ0FBbUI7UUFDOUIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUN2QixpQkFBWSxHQUFaLFlBQVksQ0FBbUI7UUExQzNDLHNDQUFzQztRQUd0QyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBV2pCLG1EQUFtRDtRQUVuRCxtQkFBYyxHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO1FBRXBFLGNBQWM7UUFFZCwwQkFBcUIsR0FBRyxJQUFJLENBQUM7UUFFN0IsY0FBYztRQUVkLGFBQVEsR0FBRyxDQUFDLENBQUM7UUFFYixjQUFjO1FBRWQsU0FBSSxHQUFHLFVBQVUsQ0FBQztJQWVmLENBQUM7SUFFSixrQ0FBa0M7SUFFbEMsU0FBUyxDQUFDLEtBQW9CO1FBQzFCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsK0JBQStCO0lBRS9CLE9BQU87UUFDSCxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMvQixJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQzFCO0lBQ0wsQ0FBQztJQUVELCtCQUErQjtJQUUvQixPQUFPO1FBQ0gsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELDhDQUE4QztJQUM5QyxjQUFjLENBQUMsUUFBaUI7UUFDNUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELGdDQUFnQztJQUNoQyxLQUFLO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVELGdEQUFnRDtJQUNoRCxLQUFLO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVELHFEQUFxRDtJQUNyRCxRQUFRO1FBQ0osT0FBTyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDbkQsQ0FBQzs7Z0hBMUZRLG1CQUFtQjtvR0FBbkIsbUJBQW1CLHluQkF1Q2Qsd0JBQXdCOzJGQXZDN0IsbUJBQW1CO2tCQUgvQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx1Q0FBdUM7aUJBQ3BEO3lMQUlHLGVBQWU7c0JBRGQsS0FBSztnQkFNTixRQUFRO3NCQUZQLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsbUJBQW1CO2dCQUtoQyxVQUFVO3NCQURULFdBQVc7dUJBQUMsaUJBQWlCO2dCQU05QixlQUFlO3NCQUZkLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsdUJBQXVCO2dCQUtwQyxjQUFjO3NCQURiLE1BQU07Z0JBS1AscUJBQXFCO3NCQURwQixXQUFXO3VCQUFDLDRCQUE0QjtnQkFLekMsUUFBUTtzQkFEUCxXQUFXO3VCQUFDLGVBQWU7Z0JBSzVCLElBQUk7c0JBREgsV0FBVzt1QkFBQyxXQUFXO2dCQVF4QixLQUFLO3NCQURKLFlBQVk7dUJBQUMsd0JBQXdCO2dCQWF0QyxTQUFTO3NCQURSLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQU9uQyxPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVVqQyxPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29udGVudENoaWxkLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIFJlbmRlcmVyMlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5lc3RlZExpc3RUaXRsZURpcmVjdGl2ZSB9IGZyb20gJy4uL25lc3RlZC1saXN0LWRpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgTmVzdGVkSXRlbVNlcnZpY2UgfSBmcm9tICcuLi9uZXN0ZWQtaXRlbS9uZXN0ZWQtaXRlbS5zZXJ2aWNlJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3NoYXJlZCc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2ZkTmVzdGVkTGlua10sIFtmZC1uZXN0ZWQtbGlzdC1saW5rXSdcbn0pXG5leHBvcnQgY2xhc3MgTmVzdGVkTGlua0RpcmVjdGl2ZSB7XG4gICAgLyoqIEZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIG9uIGNsaWNrIGV2ZW50IGRpc3BhdGNoIG9uIHRoaXMgZWxlbWVudC4gKi9cbiAgICBASW5wdXQoKVxuICAgIG9uQ2xpY2tDYWxsYmFjazogKCkgPT4gdm9pZDtcblxuICAgIC8qKiBXaGV0aGVyIHRoaXMgZWxlbWVudCBpcyBzZWxlY3RlZCovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlzLXNlbGVjdGVkJylcbiAgICBzZWxlY3RlZCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1sYWJlbCcpXG4gICAgX2FyaWFMYWJlbDogc3RyaW5nO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWRlc2NyaWJlZGJ5JylcbiAgICBhcmlhRGVzY3JpYmVkYnk6IE51bGxhYmxlPHN0cmluZyB8IG51bWJlcj47XG5cbiAgICAvKiogRXZlbnQgdGhyb3duLCB3aGVuIHNlbGVjdGVkIHN0YXRlIGlzIGNoYW5nZWQgKi9cbiAgICBAT3V0cHV0KClcbiAgICBzZWxlY3RlZENoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkLW5lc3RlZC1saXN0X19saW5rJylcbiAgICBmZE5lc3RlZExpc3RJdGVtQ2xhc3MgPSB0cnVlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIudGFiaW5kZXgnKVxuICAgIHRhYkluZGV4ID0gMDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKVxuICAgIHJvbGUgPSAndHJlZWl0ZW0nO1xuXG4gICAgLyoqXG4gICAgICogIEBoaWRkZW5cbiAgICAgKiAgUmVmZXJlbmNlIHRvIHRpdGxlIGVsZW1lbnQsIGl0IGlzIHVzZWQsIHRvIGdldCB0aXRsZSBmb3IgY29uZGVuc2VkIG1vZGUuXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZChOZXN0ZWRMaXN0VGl0bGVEaXJlY3RpdmUpXG4gICAgdGl0bGU6IE5lc3RlZExpc3RUaXRsZURpcmVjdGl2ZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBjaGFuZ2VEZXRSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIF9pdGVtU2VydmljZTogTmVzdGVkSXRlbVNlcnZpY2VcbiAgICApIHt9XG5cbiAgICAvKiogSGFuZGxlciBmb3Iga2V5Ym9hcmQgZXZlbnRzICovXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gICAgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2l0ZW1TZXJ2aWNlLmtleURvd24ubmV4dChldmVudCk7XG4gICAgfVxuXG4gICAgLyoqIEhhbmRsZXIgZm9yIG1vdXNlIGV2ZW50cyAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgICBvbkNsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pdGVtU2VydmljZS5jbGljay5uZXh0KCk7XG4gICAgICAgIGlmICh0aGlzLm9uQ2xpY2tDYWxsYmFjaykge1xuICAgICAgICAgICAgdGhpcy5vbkNsaWNrQ2FsbGJhY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBIYW5kbGVyIGZvciBmb2N1cyBldmVudHMgKi9cbiAgICBASG9zdExpc3RlbmVyKCdmb2N1cycpXG4gICAgb25Gb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faXRlbVNlcnZpY2UuZm9jdXMubmV4dCgpO1xuICAgIH1cblxuICAgIC8qKiBNZXRob2QgdG8gdHJpZ2dlciBzZWxlY3RlZCBzdGF0ZSBjaGFuZ2UgKi9cbiAgICBjaGFuZ2VTZWxlY3RlZChzZWxlY3RlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGVkID0gc2VsZWN0ZWQ7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDaGFuZ2UuZW1pdChzZWxlY3RlZCk7XG4gICAgfVxuXG4gICAgLyoqIFNldCBmb2N1cyBvbiB0aGUgZWxlbWVudC4gKi9cbiAgICBmb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgLyoqIERpc3BhdGNoZXMgdGhlIGNsaWNrIGV2ZW50IG9uIHRoZSBlbGVtZW50ICovXG4gICAgY2xpY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIHRoZSB0aXRsZSB2YWx1ZSBvZiB0aGUgdGl0bGUgZGlyZWN0aXZlICovXG4gICAgZ2V0VGl0bGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGl0bGUgJiYgdGhpcy50aXRsZS5nZXRJbm5lclRleHQoKTtcbiAgICB9XG59XG4iXX0=