@skyux/tiles 7.4.2 → 7.6.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 (21) hide show
  1. package/documentation.json +15 -15
  2. package/esm2020/lib/modules/tiles/tile/tile.component.mjs +4 -4
  3. package/esm2020/lib/modules/tiles/tile-dashboard/tile-dashboard-message-type.mjs +2 -2
  4. package/esm2020/lib/modules/tiles/tile-dashboard/tile-dashboard.component.mjs +2 -2
  5. package/esm2020/lib/modules/tiles/tile-dashboard/tile-dashboard.service.mjs +3 -3
  6. package/esm2020/lib/modules/tiles/tile-dashboard-column/tile-dashboard-column.component.mjs +4 -4
  7. package/esm2020/lib/modules/tiles/tile-dashboard-config/tile-dashboard-config-layout-tile.mjs +1 -1
  8. package/esm2020/lib/modules/tiles/tile-dashboard-config/tile-dashboard-config-reorder-data.mjs +1 -1
  9. package/esm2020/lib/modules/tiles/tile-dashboard-config/tile-dashboard-config-tile.mjs +1 -1
  10. package/fesm2015/skyux-tiles.mjs +10 -11
  11. package/fesm2015/skyux-tiles.mjs.map +1 -1
  12. package/fesm2020/skyux-tiles.mjs +10 -10
  13. package/fesm2020/skyux-tiles.mjs.map +1 -1
  14. package/lib/modules/tiles/tile/tile.component.d.ts +4 -4
  15. package/lib/modules/tiles/tile-dashboard/tile-dashboard-message-type.d.ts +1 -1
  16. package/lib/modules/tiles/tile-dashboard/tile-dashboard.component.d.ts +2 -2
  17. package/lib/modules/tiles/tile-dashboard-column/tile-dashboard-column.component.d.ts +2 -2
  18. package/lib/modules/tiles/tile-dashboard-config/tile-dashboard-config-layout-tile.d.ts +2 -2
  19. package/lib/modules/tiles/tile-dashboard-config/tile-dashboard-config-reorder-data.d.ts +3 -3
  20. package/lib/modules/tiles/tile-dashboard-config/tile-dashboard-config-tile.d.ts +3 -3
  21. package/package.json +6 -6
@@ -36,7 +36,7 @@
36
36
  "kindString": "Enumeration",
37
37
  "flags": {},
38
38
  "comment": {
39
- "shortText": "Specifies the type of message to send to the tile dashboard component."
39
+ "shortText": "The type of message to send to the tile dashboard component."
40
40
  },
41
41
  "children": [
42
42
  {
@@ -1048,7 +1048,7 @@
1048
1048
  "isPublic": true
1049
1049
  },
1050
1050
  "comment": {
1051
- "shortText": "Indicates whether to display a help button in the tile header. To display the\nbutton, you must also listen for the `helpClick` event.",
1051
+ "shortText": "Whether to display a help button in the tile header. To display the\nbutton, you must also listen for the `helpClick` event.",
1052
1052
  "tags": [
1053
1053
  {
1054
1054
  "tag": "default",
@@ -1090,7 +1090,7 @@
1090
1090
  "isPublic": true
1091
1091
  },
1092
1092
  "comment": {
1093
- "shortText": "Indicates whether to display a settings button in the tile header. To display the\nbutton, you must also listen for the `settingsClick` event.",
1093
+ "shortText": "Whether to display a settings button in the tile header. To display the\nbutton, you must also listen for the `settingsClick` event.",
1094
1094
  "tags": [
1095
1095
  {
1096
1096
  "tag": "default",
@@ -1132,7 +1132,7 @@
1132
1132
  "isPublic": true
1133
1133
  },
1134
1134
  "comment": {
1135
- "shortText": "Specifies a human-readable name for the tile that is available for multiple purposes, such as accessibility and instrumentation. For example, the component uses the name to construct ARIA labels for tile controls to [support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility)."
1135
+ "shortText": "The human-readable name for the tile that is available for multiple purposes, such as accessibility and instrumentation. For example, the component uses the name to construct ARIA labels for tile controls to [support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility)."
1136
1136
  },
1137
1137
  "decorators": [
1138
1138
  {
@@ -1295,7 +1295,7 @@
1295
1295
  "kindString": "Set signature",
1296
1296
  "flags": {},
1297
1297
  "comment": {
1298
- "shortText": "Indicates whether the tile is in a collapsed state.",
1298
+ "shortText": "Whether the tile is in a collapsed state.",
1299
1299
  "tags": [
1300
1300
  {
1301
1301
  "tag": "default",
@@ -1959,7 +1959,7 @@
1959
1959
  "isPublic": true
1960
1960
  },
1961
1961
  "comment": {
1962
- "shortText": "Provides an observable to send commands to the tile dashboard. The commands should respect the\n`SkyTileDashboardMessage` type."
1962
+ "shortText": "The observable to send commands to the tile dashboard. The commands must respect the\n`SkyTileDashboardMessage` type."
1963
1963
  },
1964
1964
  "decorators": [
1965
1965
  {
@@ -2024,7 +2024,7 @@
2024
2024
  "isPublic": true
2025
2025
  },
2026
2026
  "comment": {
2027
- "shortText": "Specifies a unique key for the UI Config Service to retrieve stored settings\nfrom a database. The UI Config Service saves configuration settings for users\nto preserve the layout and collapsed state of tile dashboards. The UI Config Service relies on `id` values from the `config` property to maintain user settings. For more information\nabout the UI Config Service, see the\n[sticky settings documentation](https://developer.blackbaud.com/skyux/learn/get-started/sticky-settings)."
2027
+ "shortText": "The unique key for the UI Config Service to retrieve stored settings\nfrom a database. The UI Config Service saves configuration settings for users\nto preserve the layout and collapsed state of tile dashboards. The UI Config Service relies on `id` values from the `config` property to maintain user settings. For more information\nabout the UI Config Service, see the\n[sticky settings documentation](https://developer.blackbaud.com/skyux/learn/get-started/sticky-settings)."
2028
2028
  },
2029
2029
  "decorators": [
2030
2030
  {
@@ -2568,7 +2568,7 @@
2568
2568
  "kindString": "Property",
2569
2569
  "flags": {},
2570
2570
  "comment": {
2571
- "shortText": "Specifies the ID of a tile to display in the dashboard."
2571
+ "shortText": "The ID of a tile to display in the dashboard."
2572
2572
  },
2573
2573
  "sources": [
2574
2574
  {
@@ -2589,7 +2589,7 @@
2589
2589
  "kindString": "Property",
2590
2590
  "flags": {},
2591
2591
  "comment": {
2592
- "shortText": "Indicates whether the tile is in a collapsed state."
2592
+ "shortText": "Whether the tile is in a collapsed state."
2593
2593
  },
2594
2594
  "sources": [
2595
2595
  {
@@ -2636,7 +2636,7 @@
2636
2636
  "kindString": "Property",
2637
2637
  "flags": {},
2638
2638
  "comment": {
2639
- "shortText": "Specifies the column for the tile."
2639
+ "shortText": "The column for the tile."
2640
2640
  },
2641
2641
  "sources": [
2642
2642
  {
@@ -2657,7 +2657,7 @@
2657
2657
  "kindString": "Property",
2658
2658
  "flags": {},
2659
2659
  "comment": {
2660
- "shortText": "Specifies the position of the tile within the column."
2660
+ "shortText": "The position of the tile within the column."
2661
2661
  },
2662
2662
  "sources": [
2663
2663
  {
@@ -2678,7 +2678,7 @@
2678
2678
  "kindString": "Property",
2679
2679
  "flags": {},
2680
2680
  "comment": {
2681
- "shortText": "Specifies the description of the tile."
2681
+ "shortText": "The description of the tile."
2682
2682
  },
2683
2683
  "sources": [
2684
2684
  {
@@ -2726,7 +2726,7 @@
2726
2726
  "kindString": "Property",
2727
2727
  "flags": {},
2728
2728
  "comment": {
2729
- "shortText": "Specifies the class type of the tile component."
2729
+ "shortText": "The class type of the tile component."
2730
2730
  },
2731
2731
  "sources": [
2732
2732
  {
@@ -2747,7 +2747,7 @@
2747
2747
  "kindString": "Property",
2748
2748
  "flags": {},
2749
2749
  "comment": {
2750
- "shortText": "Specifies the ID of the tile."
2750
+ "shortText": "The ID of the tile."
2751
2751
  },
2752
2752
  "sources": [
2753
2753
  {
@@ -2770,7 +2770,7 @@
2770
2770
  "isOptional": true
2771
2771
  },
2772
2772
  "comment": {
2773
- "shortText": "Specifies an array of data providers that can be passed to the tile."
2773
+ "shortText": "The array of data providers that can be passed to the tile."
2774
2774
  },
2775
2775
  "sources": [
2776
2776
  {
@@ -19,13 +19,13 @@ export class SkyTileComponent {
19
19
  this.elementRef = elementRef;
20
20
  _SkyTileComponent_instances.add(this);
21
21
  /**
22
- * Indicates whether to display a settings button in the tile header. To display the
22
+ * Whether to display a settings button in the tile header. To display the
23
23
  * button, you must also listen for the `settingsClick` event.
24
24
  * @default true
25
25
  */
26
26
  this.showSettings = true;
27
27
  /**
28
- * Indicates whether to display a help button in the tile header. To display the
28
+ * Whether to display a help button in the tile header. To display the
29
29
  * button, you must also listen for the `helpClick` event.
30
30
  * @default true
31
31
  */
@@ -75,7 +75,7 @@ export class SkyTileComponent {
75
75
  return __classPrivateFieldGet(this, _SkyTileComponent__isCollapsed, "f");
76
76
  }
77
77
  /**
78
- * Indicates whether the tile is in a collapsed state.
78
+ * Whether the tile is in a collapsed state.
79
79
  * @default false
80
80
  */
81
81
  set isCollapsed(value) {
@@ -162,4 +162,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.11", ngImpo
162
162
  static: false,
163
163
  }]
164
164
  }] } });
165
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL2xpYi9tb2R1bGVzL3RpbGVzL3RpbGUvdGlsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL2xpYi9tb2R1bGVzL3RpbGVzL3RpbGUvdGlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBRUwsUUFBUSxFQUNSLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFdEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7O0FBSTNDOztHQUVHO0FBT0gsTUFBTSxPQUFPLGdCQUFnQjtJQXlGM0IsWUFDUyxVQUFzQixFQUM3QixjQUFpQyxFQUNyQixnQkFBMEM7UUFGL0MsZUFBVSxHQUFWLFVBQVUsQ0FBWTs7UUF6Ri9COzs7O1dBSUc7UUFFSSxpQkFBWSxHQUFHLElBQUksQ0FBQztRQUUzQjs7OztXQUlHO1FBRUksYUFBUSxHQUFHLElBQUksQ0FBQztRQVF2Qjs7O1dBR0c7UUFFSSxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFMUM7OztXQUdHO1FBRUksc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUV2RDs7O1dBR0c7UUFFSSxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQTRCL0Isd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBY25DLG1EQUFtQztRQUNu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RSxLQUFLO3FCQUNkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgc2t5QW5pbWF0aW9uU2xpZGUgfSBmcm9tICdAc2t5dXgvYW5pbWF0aW9ucyc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5VGlsZURhc2hib2FyZFNlcnZpY2UgfSBmcm9tICcuLi90aWxlLWRhc2hib2FyZC90aWxlLWRhc2hib2FyZC5zZXJ2aWNlJztcblxuLyoqXG4gKiBQcm92aWRlcyBhIGNvbW1vbiBsb29rLWFuZC1mZWVsIGZvciB0YWIgY29udGVudC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LXRpbGUnLFxuICBzdHlsZVVybHM6IFsnLi90aWxlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi90aWxlLmNvbXBvbmVudC5odG1sJyxcbiAgYW5pbWF0aW9uczogW3NreUFuaW1hdGlvblNsaWRlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5VGlsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byBkaXNwbGF5IGEgc2V0dGluZ3MgYnV0dG9uIGluIHRoZSB0aWxlIGhlYWRlci4gVG8gZGlzcGxheSB0aGVcbiAgICogYnV0dG9uLCB5b3UgbXVzdCBhbHNvIGxpc3RlbiBmb3IgdGhlIGBzZXR0aW5nc0NsaWNrYCBldmVudC5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNob3dTZXR0aW5ncyA9IHRydWU7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRvIGRpc3BsYXkgYSBoZWxwIGJ1dHRvbiBpbiB0aGUgdGlsZSBoZWFkZXIuIFRvIGRpc3BsYXkgdGhlXG4gICAqIGJ1dHRvbiwgeW91IG11c3QgYWxzbyBsaXN0ZW4gZm9yIHRoZSBgaGVscENsaWNrYCBldmVudC5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNob3dIZWxwID0gdHJ1ZTtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIGEgaHVtYW4tcmVhZGFibGUgbmFtZSBmb3IgdGhlIHRpbGUgdGhhdCBpcyBhdmFpbGFibGUgZm9yIG11bHRpcGxlIHB1cnBvc2VzLCBzdWNoIGFzIGFjY2Vzc2liaWxpdHkgYW5kIGluc3RydW1lbnRhdGlvbi4gRm9yIGV4YW1wbGUsIHRoZSBjb21wb25lbnQgdXNlcyB0aGUgbmFtZSB0byBjb25zdHJ1Y3QgQVJJQSBsYWJlbHMgZm9yIHRpbGUgY29udHJvbHMgdG8gW3N1cHBvcnQgYWNjZXNzaWJpbGl0eV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9sZWFybi9hY2Nlc3NpYmlsaXR5KS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0aWxlTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHVzZXJzIHNlbGVjdCB0aGUgc2V0dGluZ3MgYnV0dG9uIGluIHRoZSB0aWxlIGhlYWRlci4gVGhlIHNldHRpbmdzXG4gICAqIGJ1dHRvbiBvbmx5IGFwcGVhcnMgd2hlbiB0aGUgYHNob3dTZXR0aW5nc2AgcHJvcGVydHkgaXMgc2V0IHRvIGB0cnVlYC5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgc2V0dGluZ3NDbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgdGlsZSdzIGNvbGxhcHNlZCBzdGF0ZSBjaGFuZ2VzLiBSZXR1cm5zIGB0cnVlYCB3aGVuIHRoZSB0aWxlXG4gICAqIGNvbGxhcHNlcyBhbmQgYGZhbHNlYCB3aGVuIGl0IGV4cGFuZHMuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGlzQ29sbGFwc2VkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHVzZXJzIHNlbGVjdCB0aGUgaGVscCBidXR0b24gaW4gdGhlIHRpbGUgaGVhZGVyLiBUaGUgaGVscFxuICAgKiBidXR0b24gb25seSBhcHBlYXJzIHdoZW4gdGhlIGBzaG93SGVscGAgcHJvcGVydHkgaXMgc2V0IHRvIGB0cnVlYC5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgaGVscENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHB1YmxpYyBnZXQgaXNDb2xsYXBzZWQoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuI2Rhc2hib2FyZFNlcnZpY2UpIHtcbiAgICAgIGNvbnN0IGNvbmZpZ0NvbGxhcHNlZFN0YXRlID0gdGhpcy4jZGFzaGJvYXJkU2VydmljZS50aWxlSXNDb2xsYXBzZWQodGhpcyk7XG4gICAgICB0aGlzLiNfaXNDb2xsYXBzZWQgPSBjb25maWdDb2xsYXBzZWRTdGF0ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy4jX2lzQ29sbGFwc2VkO1xuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSB0aWxlIGlzIGluIGEgY29sbGFwc2VkIHN0YXRlLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBpc0NvbGxhcHNlZCh2YWx1ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19pc0NvbGxhcHNlZCA9ICEhdmFsdWU7XG5cbiAgICBpZiAodGhpcy4jZGFzaGJvYXJkU2VydmljZSkge1xuICAgICAgdGhpcy4jZGFzaGJvYXJkU2VydmljZS5zZXRUaWxlQ29sbGFwc2VkKHRoaXMsIHRoaXMuI19pc0NvbGxhcHNlZCk7XG4gICAgfVxuXG4gICAgdGhpcy5pc0NvbGxhcHNlZENoYW5nZS5lbWl0KHRoaXMuI19pc0NvbGxhcHNlZCk7XG4gIH1cblxuICBwdWJsaWMgYXJpYURlc2NyaWJlZEJ5OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGlzSW5EYXNoYm9hcmRDb2x1bW4gPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKCdncmFiSGFuZGxlJywge1xuICAgIHJlYWQ6IEVsZW1lbnRSZWYsXG4gICAgc3RhdGljOiBmYWxzZSxcbiAgfSlcbiAgcHVibGljIGdyYWJIYW5kbGU6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgQFZpZXdDaGlsZCgndGl0bGVDb250YWluZXInLCB7XG4gICAgcmVhZDogRWxlbWVudFJlZixcbiAgICBzdGF0aWM6IGZhbHNlLFxuICB9KVxuICBwdWJsaWMgdGl0bGU6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgI2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZjtcbiAgI2Rhc2hib2FyZFNlcnZpY2U6IFNreVRpbGVEYXNoYm9hcmRTZXJ2aWNlIHwgdW5kZWZpbmVkO1xuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICNfaXNDb2xsYXBzZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQE9wdGlvbmFsKCkgZGFzaGJvYXJkU2VydmljZT86IFNreVRpbGVEYXNoYm9hcmRTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yID0gY2hhbmdlRGV0ZWN0b3I7XG4gICAgdGhpcy4jZGFzaGJvYXJkU2VydmljZSA9IGRhc2hib2FyZFNlcnZpY2U7XG4gICAgdGhpcy5pc0luRGFzaGJvYXJkQ29sdW1uID0gISF0aGlzLiNkYXNoYm9hcmRTZXJ2aWNlO1xuXG4gICAgaWYgKHRoaXMuI2Rhc2hib2FyZFNlcnZpY2UpIHtcbiAgICAgIHRoaXMuYXJpYURlc2NyaWJlZEJ5ID0gYCR7XG4gICAgICAgIHRoaXMuI2Rhc2hib2FyZFNlcnZpY2UuYmFnSWRcbiAgICAgIH0tbW92ZS1pbnN0cnVjdGlvbnNgO1xuXG4gICAgICAvKipcbiAgICAgICAqIFRoaXMgc3Vic2NyaXB0aW9uIGVuc3VyZXMgdGhhdCBpZiBhbnkgdmFsdWVzIHdoaWNoIGNvbWUgaW4gZnJvbSB0aGUgZGFzaGJvYXJkIHNlcnZpY2UgYXJlXG4gICAgICAgKiB1cGRhdGVkIHRoYXQgdGhlIGNvbXBvbmVudCB3aWxsIHVwZGF0ZSBpZiB0aGUgdGlsZSdzIHBhcmVudCBjb21wb25lbnQgdXRpbGl6ZXMgT25QdXNoXG4gICAgICAgKiBjaGFuZ2UgZGV0ZWN0aW9uLlxuICAgICAgICovXG4gICAgICB0aGlzLiNkYXNoYm9hcmRTZXJ2aWNlLmNvbmZpZ0NoYW5nZVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldHRpbmdzQnV0dG9uQ2xpY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldHRpbmdzQ2xpY2suZW1pdCh1bmRlZmluZWQpO1xuICB9XG5cbiAgcHVibGljIGhlbHBCdXR0b25DbGlja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuaGVscENsaWNrLmVtaXQodW5kZWZpbmVkKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGFzU2V0dGluZ3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3NDbGljay5vYnNlcnZlcnMubGVuZ3RoID4gMCAmJiB0aGlzLnNob3dTZXR0aW5ncztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGFzSGVscCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oZWxwQ2xpY2sub2JzZXJ2ZXJzLmxlbmd0aCA+IDAgJiYgdGhpcy5zaG93SGVscDtcbiAgfVxuXG4gIHB1YmxpYyB0aXRsZUNsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMuaXNDb2xsYXBzZWQgPSAhdGhpcy5pc0NvbGxhcHNlZDtcbiAgfVxuXG4gIHB1YmxpYyBjaGV2cm9uRGlyZWN0aW9uQ2hhbmdlKGRpcmVjdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5pc0NvbGxhcHNlZCA9IGRpcmVjdGlvbiA9PT0gJ2Rvd24nO1xuICB9XG5cbiAgcHVibGljIG1vdmVUaWxlKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy4jZGFzaGJvYXJkU2VydmljZSkge1xuICAgICAgY29uc3QgZGlyZWN0aW9uID0gZXZlbnQua2V5LnRvTG93ZXJDYXNlKCkucmVwbGFjZSgnYXJyb3cnLCAnJyk7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKFxuICAgICAgICBkaXJlY3Rpb24gPT09ICd1cCcgfHxcbiAgICAgICAgZGlyZWN0aW9uID09PSAnZG93bicgfHxcbiAgICAgICAgZGlyZWN0aW9uID09PSAnbGVmdCcgfHxcbiAgICAgICAgZGlyZWN0aW9uID09PSAncmlnaHQnXG4gICAgICApIHtcbiAgICAgICAgdGhpcy4jZGFzaGJvYXJkU2VydmljZS5tb3ZlVGlsZU9uS2V5RG93bihcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIGRpcmVjdGlvbixcbiAgICAgICAgICB0aGlzLnRpdGxlXG4gICAgICAgICAgICA/IHRoaXMudGl0bGUubmF0aXZlRWxlbWVudC5pbm5lclRleHRcbiAgICAgICAgICAgIDogLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgICAgICAgICAgdW5kZWZpbmVkXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuI2ZvY3VzSGFuZGxlKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI2ZvY3VzSGFuZGxlKCk6IHZvaWQge1xuICAgIHRoaXMuZ3JhYkhhbmRsZT8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICB9XG59XG4iLCI8c2VjdGlvblxuICBjbGFzcz1cInNreS10aWxlXCJcbiAgW25nQ2xhc3NdPVwie1xuICAgICdza3ktdGlsZS1jb2xsYXBzZWQnOiBpc0NvbGxhcHNlZFxuICB9XCJcbiAgW3NreVRoZW1lQ2xhc3NdPVwie1xuICAgICdza3ktYm94IHNreS1lbGV2YXRpb24tMS1ib3JkZXJlZCBza3ktcGFkZGluZy1ldmVuLXhsJzogJ21vZGVybidcbiAgfVwiXG4+XG4gIDxoZWFkZXIgY2xhc3M9XCJza3ktdGlsZS1oZWFkZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwic2t5LXRpbGUtaGVhZGVyLWNvbnRlbnRcIiAoY2xpY2spPVwidGl0bGVDbGljaygpXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic2t5LXRpbGUtaGVhZGVyLXRpdGxlXCIgI3RpdGxlQ29udGFpbmVyPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJza3ktdGlsZS10aXRsZVwiPjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInNreS10aWxlLXN1bW1hcnlcIlxuICAgICAgICBbc2t5VGhlbWVDbGFzc109XCJ7XG4gICAgICAgICAgJ3NreS1mb250LWRpc3BsYXktMyc6ICdtb2Rlcm4nLFxuICAgICAgICAgICdza3ktaGVhZGxpbmUnOiAnZGVmYXVsdCdcbiAgICAgICAgfVwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS10aWxlLXN1bW1hcnlcIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwic2t5LXRpbGUtaGVhZGVyLWNvbHVtbi10b29sc1wiPlxuICAgICAgPGRpdiBjbGFzcz1cInNreS10aWxlLXRvb2xzXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKnNreVRoZW1lSWY9XCInZGVmYXVsdCdcIj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cImhhc0hlbHBcIlxuICAgICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS10aWxlLXRvb2xzLWNvbnRyb2wgc2t5LXRpbGUtaGVscFwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAgIHRpbGVOYW1lXG4gICAgICAgICAgICAgICAgPyAoJ3NreXV4X3RpbGVfaGVscCcgfCBza3lMaWJSZXNvdXJjZXM6IHRpbGVOYW1lKVxuICAgICAgICAgICAgICAgIDogKCdza3l1eF90aWxlX2hlbHBfZGVmYXVsdCcgfCBza3lMaWJSZXNvdXJjZXMpXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW3NreVRoZW1lQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAnc2t5LWJ0bi1pY29uLWJvcmRlcmxlc3MnOiAnbW9kZXJuJ1xuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiaGVscEJ1dHRvbkNsaWNrZWQoKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNreS1pY29uIGljb249XCJxdWVzdGlvbi1jaXJjbGVcIj48L3NreS1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPHNreS1jaGV2cm9uXG4gICAgICAgICAgW2FyaWFDb250cm9sc109XCJ0aWxlQ29udGVudC5pZFwiXG4gICAgICAgICAgW2FyaWFMYWJlbF09XCJcbiAgICAgICAgICAgIHRpbGVOYW1lXG4gICAgICAgICAgICAgID8gKCdza3l1eF90aWxlX2V4cGFuZCcgfCBza3lMaWJSZXNvdXJjZXM6IHRpbGVOYW1lKVxuICAgICAgICAgICAgICA6ICgnc2t5dXhfdGlsZV9leHBhbmRfZGVmYXVsdCcgfCBza3lMaWJSZXNvdXJjZXMpXG4gICAgICAgICAgXCJcbiAgICAgICAgICBbZGlyZWN0aW9uXT1cImlzQ29sbGFwc2VkID8gJ2Rvd24nIDogJ3VwJ1wiXG4gICAgICAgICAgW3NreVRoZW1lQ2xhc3NdPVwie1xuICAgICAgICAgICAgJ3NreS10aWxlLXRvb2xzLWNvbnRyb2wnOiAnZGVmYXVsdCcsXG4gICAgICAgICAgICAnc2t5LW1hcmdpbi1pbmxpbmUtZGVmYXVsdCc6ICdtb2Rlcm4nXG4gICAgICAgICAgfVwiXG4gICAgICAgICAgKGRpcmVjdGlvbkNoYW5nZSk9XCJjaGV2cm9uRGlyZWN0aW9uQ2hhbmdlKCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgIDwvc2t5LWNoZXZyb24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAqbmdJZj1cImhhc1NldHRpbmdzXCJcbiAgICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LXRpbGUtc2V0dGluZ3NcIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICB0aWxlTmFtZVxuICAgICAgICAgICAgICA/ICgnc2t5dXhfdGlsZV9zZXR0aW5ncycgfCBza3lMaWJSZXNvdXJjZXM6IHRpbGVOYW1lKVxuICAgICAgICAgICAgICA6ICgnc2t5dXhfdGlsZV9zZXR0aW5nc19kZWZhdWx0JyB8IHNreUxpYlJlc291cmNlcylcbiAgICAgICAgICBcIlxuICAgICAgICAgIFtza3lUaGVtZUNsYXNzXT1cIntcbiAgICAgICAgICAgICdza3ktdGlsZS10b29scy1jb250cm9sJzogJ2RlZmF1bHQnLFxuICAgICAgICAgICAgJ3NreS1idG4taWNvbi1ib3JkZXJsZXNzIHNreS1tYXJnaW4taW5saW5lLWRlZmF1bHQnOiAnbW9kZXJuJ1xuICAgICAgICAgIH1cIlxuICAgICAgICAgIChjbGljayk9XCJzZXR0aW5nc0J1dHRvbkNsaWNrZWQoKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c2t5LWljb24gKnNreVRoZW1lSWY9XCInZGVmYXVsdCdcIiBpY29uPVwiY29nXCI+PC9za3ktaWNvbj5cbiAgICAgICAgICA8c2t5LWljb25cbiAgICAgICAgICAgICpza3lUaGVtZUlmPVwiJ21vZGVybidcIlxuICAgICAgICAgICAgaWNvbj1cImNvZy1saW5lXCJcbiAgICAgICAgICAgIGljb25UeXBlPVwic2t5dXhcIlxuICAgICAgICAgID48L3NreS1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwiaXNJbkRhc2hib2FyZENvbHVtblwiXG4gICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS10aWxlLWdyYWItaGFuZGxlXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgdGlsZU5hbWVcbiAgICAgICAgICAgICAgPyAoJ3NreXV4X3RpbGVfbW92ZScgfCBza3lMaWJSZXNvdXJjZXM6IHRpbGVOYW1lKVxuICAgICAgICAgICAgICA6ICgnc2t5dXhfdGlsZV9tb3ZlX2RlZmF1bHQnIHwgc2t5TGliUmVzb3VyY2VzKVxuICAgICAgICAgIFwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJhcmlhRGVzY3JpYmVkQnlcIlxuICAgICAgICAgIFtza3lUaGVtZUNsYXNzXT1cIntcbiAgICAgICAgICAgICdza3ktdGlsZS10b29scy1jb250cm9sJzogJ2RlZmF1bHQnLFxuICAgICAgICAgICAgJ3NreS1idG4taWNvbi1ib3JkZXJsZXNzJzogJ21vZGVybidcbiAgICAgICAgICB9XCJcbiAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAoa2V5ZG93bik9XCJtb3ZlVGlsZSgkZXZlbnQpXCJcbiAgICAgICAgICAjZ3JhYkhhbmRsZVxuICAgICAgICA+XG4gICAgICAgICAgPHNreS1pY29uICpza3lUaGVtZUlmPVwiJ2RlZmF1bHQnXCIgaWNvbj1cInRoXCI+PC9za3ktaWNvbj5cbiAgICAgICAgICA8c2t5LWljb25cbiAgICAgICAgICAgICpza3lUaGVtZUlmPVwiJ21vZGVybidcIlxuICAgICAgICAgICAgaWNvbj1cInRpbGUtZHJhZ1wiXG4gICAgICAgICAgICBpY29uVHlwZT1cInNreXV4XCJcbiAgICAgICAgICA+PC9za3ktaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9oZWFkZXI+XG4gIDxkaXZcbiAgICBjbGFzcz1cInNreS10aWxlLWNvbnRlbnRcIlxuICAgIHJvbGU9XCJyZWdpb25cIlxuICAgIHNreUlkXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0aWxlTmFtZVwiXG4gICAgW0Bza3lBbmltYXRpb25TbGlkZV09XCJpc0NvbGxhcHNlZCA/ICd1cCcgOiAnZG93bidcIlxuICAgICN0aWxlQ29udGVudD1cInNreUlkXCJcbiAgPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS10aWxlLWNvbnRlbnRcIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9zZWN0aW9uPlxuIl19
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL2xpYi9tb2R1bGVzL3RpbGVzL3RpbGUvdGlsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL2xpYi9tb2R1bGVzL3RpbGVzL3RpbGUvdGlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBRUwsUUFBUSxFQUNSLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFdEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7O0FBSTNDOztHQUVHO0FBT0gsTUFBTSxPQUFPLGdCQUFnQjtJQXlGM0IsWUFDUyxVQUFzQixFQUM3QixjQUFpQyxFQUNyQixnQkFBMEM7UUFGL0MsZUFBVSxHQUFWLFVBQVUsQ0FBWTs7UUF6Ri9COzs7O1dBSUc7UUFFSSxpQkFBWSxHQUFHLElBQUksQ0FBQztRQUUzQjs7OztXQUlHO1FBRUksYUFBUSxHQUFHLElBQUksQ0FBQztRQVF2Qjs7O1dBR0c7UUFFSSxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFMUM7OztXQUdHO1FBRUksc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUV2RDs7O1dBR0c7UUFFSSxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQTRCL0Isd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBY25DLG1EQUFtQztRQUNu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RSxLQUFLO3FCQUNkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgc2t5QW5pbWF0aW9uU2xpZGUgfSBmcm9tICdAc2t5dXgvYW5pbWF0aW9ucyc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5VGlsZURhc2hib2FyZFNlcnZpY2UgfSBmcm9tICcuLi90aWxlLWRhc2hib2FyZC90aWxlLWRhc2hib2FyZC5zZXJ2aWNlJztcblxuLyoqXG4gKiBQcm92aWRlcyBhIGNvbW1vbiBsb29rLWFuZC1mZWVsIGZvciB0YWIgY29udGVudC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LXRpbGUnLFxuICBzdHlsZVVybHM6IFsnLi90aWxlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi90aWxlLmNvbXBvbmVudC5odG1sJyxcbiAgYW5pbWF0aW9uczogW3NreUFuaW1hdGlvblNsaWRlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5VGlsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGRpc3BsYXkgYSBzZXR0aW5ncyBidXR0b24gaW4gdGhlIHRpbGUgaGVhZGVyLiBUbyBkaXNwbGF5IHRoZVxuICAgKiBidXR0b24sIHlvdSBtdXN0IGFsc28gbGlzdGVuIGZvciB0aGUgYHNldHRpbmdzQ2xpY2tgIGV2ZW50LlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvd1NldHRpbmdzID0gdHJ1ZTtcblxuICAvKipcbiAgICogV2hldGhlciB0byBkaXNwbGF5IGEgaGVscCBidXR0b24gaW4gdGhlIHRpbGUgaGVhZGVyLiBUbyBkaXNwbGF5IHRoZVxuICAgKiBidXR0b24sIHlvdSBtdXN0IGFsc28gbGlzdGVuIGZvciB0aGUgYGhlbHBDbGlja2AgZXZlbnQuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93SGVscCA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFRoZSBodW1hbi1yZWFkYWJsZSBuYW1lIGZvciB0aGUgdGlsZSB0aGF0IGlzIGF2YWlsYWJsZSBmb3IgbXVsdGlwbGUgcHVycG9zZXMsIHN1Y2ggYXMgYWNjZXNzaWJpbGl0eSBhbmQgaW5zdHJ1bWVudGF0aW9uLiBGb3IgZXhhbXBsZSwgdGhlIGNvbXBvbmVudCB1c2VzIHRoZSBuYW1lIHRvIGNvbnN0cnVjdCBBUklBIGxhYmVscyBmb3IgdGlsZSBjb250cm9scyB0byBbc3VwcG9ydCBhY2Nlc3NpYmlsaXR5XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2xlYXJuL2FjY2Vzc2liaWxpdHkpLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHRpbGVOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdXNlcnMgc2VsZWN0IHRoZSBzZXR0aW5ncyBidXR0b24gaW4gdGhlIHRpbGUgaGVhZGVyLiBUaGUgc2V0dGluZ3NcbiAgICogYnV0dG9uIG9ubHkgYXBwZWFycyB3aGVuIHRoZSBgc2hvd1NldHRpbmdzYCBwcm9wZXJ0eSBpcyBzZXQgdG8gYHRydWVgLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBzZXR0aW5nc0NsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSB0aWxlJ3MgY29sbGFwc2VkIHN0YXRlIGNoYW5nZXMuIFJldHVybnMgYHRydWVgIHdoZW4gdGhlIHRpbGVcbiAgICogY29sbGFwc2VzIGFuZCBgZmFsc2VgIHdoZW4gaXQgZXhwYW5kcy5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgaXNDb2xsYXBzZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdXNlcnMgc2VsZWN0IHRoZSBoZWxwIGJ1dHRvbiBpbiB0aGUgdGlsZSBoZWFkZXIuIFRoZSBoZWxwXG4gICAqIGJ1dHRvbiBvbmx5IGFwcGVhcnMgd2hlbiB0aGUgYHNob3dIZWxwYCBwcm9wZXJ0eSBpcyBzZXQgdG8gYHRydWVgLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBoZWxwQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHVibGljIGdldCBpc0NvbGxhcHNlZCgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy4jZGFzaGJvYXJkU2VydmljZSkge1xuICAgICAgY29uc3QgY29uZmlnQ29sbGFwc2VkU3RhdGUgPSB0aGlzLiNkYXNoYm9hcmRTZXJ2aWNlLnRpbGVJc0NvbGxhcHNlZCh0aGlzKTtcbiAgICAgIHRoaXMuI19pc0NvbGxhcHNlZCA9IGNvbmZpZ0NvbGxhcHNlZFN0YXRlO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLiNfaXNDb2xsYXBzZWQ7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgdGlsZSBpcyBpbiBhIGNvbGxhcHNlZCBzdGF0ZS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgaXNDb2xsYXBzZWQodmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfaXNDb2xsYXBzZWQgPSAhIXZhbHVlO1xuXG4gICAgaWYgKHRoaXMuI2Rhc2hib2FyZFNlcnZpY2UpIHtcbiAgICAgIHRoaXMuI2Rhc2hib2FyZFNlcnZpY2Uuc2V0VGlsZUNvbGxhcHNlZCh0aGlzLCB0aGlzLiNfaXNDb2xsYXBzZWQpO1xuICAgIH1cblxuICAgIHRoaXMuaXNDb2xsYXBzZWRDaGFuZ2UuZW1pdCh0aGlzLiNfaXNDb2xsYXBzZWQpO1xuICB9XG5cbiAgcHVibGljIGFyaWFEZXNjcmliZWRCeTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBpc0luRGFzaGJvYXJkQ29sdW1uID0gZmFsc2U7XG5cbiAgQFZpZXdDaGlsZCgnZ3JhYkhhbmRsZScsIHtcbiAgICByZWFkOiBFbGVtZW50UmVmLFxuICAgIHN0YXRpYzogZmFsc2UsXG4gIH0pXG4gIHB1YmxpYyBncmFiSGFuZGxlOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIEBWaWV3Q2hpbGQoJ3RpdGxlQ29udGFpbmVyJywge1xuICAgIHJlYWQ6IEVsZW1lbnRSZWYsXG4gICAgc3RhdGljOiBmYWxzZSxcbiAgfSlcbiAgcHVibGljIHRpdGxlOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gICNjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWY7XG4gICNkYXNoYm9hcmRTZXJ2aWNlOiBTa3lUaWxlRGFzaGJvYXJkU2VydmljZSB8IHVuZGVmaW5lZDtcbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAjX2lzQ29sbGFwc2VkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIEBPcHRpb25hbCgpIGRhc2hib2FyZFNlcnZpY2U/OiBTa3lUaWxlRGFzaGJvYXJkU2VydmljZVxuICApIHtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3RvciA9IGNoYW5nZURldGVjdG9yO1xuICAgIHRoaXMuI2Rhc2hib2FyZFNlcnZpY2UgPSBkYXNoYm9hcmRTZXJ2aWNlO1xuICAgIHRoaXMuaXNJbkRhc2hib2FyZENvbHVtbiA9ICEhdGhpcy4jZGFzaGJvYXJkU2VydmljZTtcblxuICAgIGlmICh0aGlzLiNkYXNoYm9hcmRTZXJ2aWNlKSB7XG4gICAgICB0aGlzLmFyaWFEZXNjcmliZWRCeSA9IGAke1xuICAgICAgICB0aGlzLiNkYXNoYm9hcmRTZXJ2aWNlLmJhZ0lkXG4gICAgICB9LW1vdmUtaW5zdHJ1Y3Rpb25zYDtcblxuICAgICAgLyoqXG4gICAgICAgKiBUaGlzIHN1YnNjcmlwdGlvbiBlbnN1cmVzIHRoYXQgaWYgYW55IHZhbHVlcyB3aGljaCBjb21lIGluIGZyb20gdGhlIGRhc2hib2FyZCBzZXJ2aWNlIGFyZVxuICAgICAgICogdXBkYXRlZCB0aGF0IHRoZSBjb21wb25lbnQgd2lsbCB1cGRhdGUgaWYgdGhlIHRpbGUncyBwYXJlbnQgY29tcG9uZW50IHV0aWxpemVzIE9uUHVzaFxuICAgICAgICogY2hhbmdlIGRldGVjdGlvbi5cbiAgICAgICAqL1xuICAgICAgdGhpcy4jZGFzaGJvYXJkU2VydmljZS5jb25maWdDaGFuZ2VcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXR0aW5nc0J1dHRvbkNsaWNrZWQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXR0aW5nc0NsaWNrLmVtaXQodW5kZWZpbmVkKTtcbiAgfVxuXG4gIHB1YmxpYyBoZWxwQnV0dG9uQ2xpY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmhlbHBDbGljay5lbWl0KHVuZGVmaW5lZCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc1NldHRpbmdzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNldHRpbmdzQ2xpY2sub2JzZXJ2ZXJzLmxlbmd0aCA+IDAgJiYgdGhpcy5zaG93U2V0dGluZ3M7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc0hlbHAoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGVscENsaWNrLm9ic2VydmVycy5sZW5ndGggPiAwICYmIHRoaXMuc2hvd0hlbHA7XG4gIH1cblxuICBwdWJsaWMgdGl0bGVDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLmlzQ29sbGFwc2VkID0gIXRoaXMuaXNDb2xsYXBzZWQ7XG4gIH1cblxuICBwdWJsaWMgY2hldnJvbkRpcmVjdGlvbkNoYW5nZShkaXJlY3Rpb246IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuaXNDb2xsYXBzZWQgPSBkaXJlY3Rpb24gPT09ICdkb3duJztcbiAgfVxuXG4gIHB1YmxpYyBtb3ZlVGlsZShldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMuI2Rhc2hib2FyZFNlcnZpY2UpIHtcbiAgICAgIGNvbnN0IGRpcmVjdGlvbiA9IGV2ZW50LmtleS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoJ2Fycm93JywgJycpO1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIGlmIChcbiAgICAgICAgZGlyZWN0aW9uID09PSAndXAnIHx8XG4gICAgICAgIGRpcmVjdGlvbiA9PT0gJ2Rvd24nIHx8XG4gICAgICAgIGRpcmVjdGlvbiA9PT0gJ2xlZnQnIHx8XG4gICAgICAgIGRpcmVjdGlvbiA9PT0gJ3JpZ2h0J1xuICAgICAgKSB7XG4gICAgICAgIHRoaXMuI2Rhc2hib2FyZFNlcnZpY2UubW92ZVRpbGVPbktleURvd24oXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICBkaXJlY3Rpb24sXG4gICAgICAgICAgdGhpcy50aXRsZVxuICAgICAgICAgICAgPyB0aGlzLnRpdGxlLm5hdGl2ZUVsZW1lbnQuaW5uZXJUZXh0XG4gICAgICAgICAgICA6IC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICAgICAgICAgIHVuZGVmaW5lZFxuICAgICAgICApO1xuICAgICAgICB0aGlzLiNmb2N1c0hhbmRsZSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNmb2N1c0hhbmRsZSgpOiB2b2lkIHtcbiAgICB0aGlzLmdyYWJIYW5kbGU/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxufVxuIiwiPHNlY3Rpb25cbiAgY2xhc3M9XCJza3ktdGlsZVwiXG4gIFtuZ0NsYXNzXT1cIntcbiAgICAnc2t5LXRpbGUtY29sbGFwc2VkJzogaXNDb2xsYXBzZWRcbiAgfVwiXG4gIFtza3lUaGVtZUNsYXNzXT1cIntcbiAgICAnc2t5LWJveCBza3ktZWxldmF0aW9uLTEtYm9yZGVyZWQgc2t5LXBhZGRpbmctZXZlbi14bCc6ICdtb2Rlcm4nXG4gIH1cIlxuPlxuICA8aGVhZGVyIGNsYXNzPVwic2t5LXRpbGUtaGVhZGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cInNreS10aWxlLWhlYWRlci1jb250ZW50XCIgKGNsaWNrKT1cInRpdGxlQ2xpY2soKVwiPlxuICAgICAgPGRpdiBjbGFzcz1cInNreS10aWxlLWhlYWRlci10aXRsZVwiICN0aXRsZUNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2t5LXRpbGUtdGl0bGVcIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJza3ktdGlsZS1zdW1tYXJ5XCJcbiAgICAgICAgW3NreVRoZW1lQ2xhc3NdPVwie1xuICAgICAgICAgICdza3ktZm9udC1kaXNwbGF5LTMnOiAnbW9kZXJuJyxcbiAgICAgICAgICAnc2t5LWhlYWRsaW5lJzogJ2RlZmF1bHQnXG4gICAgICAgIH1cIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJza3ktdGlsZS1zdW1tYXJ5XCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInNreS10aWxlLWhlYWRlci1jb2x1bW4tdG9vbHNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJza3ktdGlsZS10b29sc1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpza3lUaGVtZUlmPVwiJ2RlZmF1bHQnXCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCJoYXNIZWxwXCJcbiAgICAgICAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktdGlsZS10b29scy1jb250cm9sIHNreS10aWxlLWhlbHBcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgICB0aWxlTmFtZVxuICAgICAgICAgICAgICAgID8gKCdza3l1eF90aWxlX2hlbHAnIHwgc2t5TGliUmVzb3VyY2VzOiB0aWxlTmFtZSlcbiAgICAgICAgICAgICAgICA6ICgnc2t5dXhfdGlsZV9oZWxwX2RlZmF1bHQnIHwgc2t5TGliUmVzb3VyY2VzKVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFtza3lUaGVtZUNsYXNzXT1cIntcbiAgICAgICAgICAgICAgJ3NreS1idG4taWNvbi1ib3JkZXJsZXNzJzogJ21vZGVybidcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImhlbHBCdXR0b25DbGlja2VkKClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxza3ktaWNvbiBpY29uPVwicXVlc3Rpb24tY2lyY2xlXCI+PC9za3ktaWNvbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxza3ktY2hldnJvblxuICAgICAgICAgIFthcmlhQ29udHJvbHNdPVwidGlsZUNvbnRlbnQuaWRcIlxuICAgICAgICAgIFthcmlhTGFiZWxdPVwiXG4gICAgICAgICAgICB0aWxlTmFtZVxuICAgICAgICAgICAgICA/ICgnc2t5dXhfdGlsZV9leHBhbmQnIHwgc2t5TGliUmVzb3VyY2VzOiB0aWxlTmFtZSlcbiAgICAgICAgICAgICAgOiAoJ3NreXV4X3RpbGVfZXhwYW5kX2RlZmF1bHQnIHwgc2t5TGliUmVzb3VyY2VzKVxuICAgICAgICAgIFwiXG4gICAgICAgICAgW2RpcmVjdGlvbl09XCJpc0NvbGxhcHNlZCA/ICdkb3duJyA6ICd1cCdcIlxuICAgICAgICAgIFtza3lUaGVtZUNsYXNzXT1cIntcbiAgICAgICAgICAgICdza3ktdGlsZS10b29scy1jb250cm9sJzogJ2RlZmF1bHQnLFxuICAgICAgICAgICAgJ3NreS1tYXJnaW4taW5saW5lLWRlZmF1bHQnOiAnbW9kZXJuJ1xuICAgICAgICAgIH1cIlxuICAgICAgICAgIChkaXJlY3Rpb25DaGFuZ2UpPVwiY2hldnJvbkRpcmVjdGlvbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICA8L3NreS1jaGV2cm9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgKm5nSWY9XCJoYXNTZXR0aW5nc1wiXG4gICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS10aWxlLXNldHRpbmdzXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgdGlsZU5hbWVcbiAgICAgICAgICAgICAgPyAoJ3NreXV4X3RpbGVfc2V0dGluZ3MnIHwgc2t5TGliUmVzb3VyY2VzOiB0aWxlTmFtZSlcbiAgICAgICAgICAgICAgOiAoJ3NreXV4X3RpbGVfc2V0dGluZ3NfZGVmYXVsdCcgfCBza3lMaWJSZXNvdXJjZXMpXG4gICAgICAgICAgXCJcbiAgICAgICAgICBbc2t5VGhlbWVDbGFzc109XCJ7XG4gICAgICAgICAgICAnc2t5LXRpbGUtdG9vbHMtY29udHJvbCc6ICdkZWZhdWx0JyxcbiAgICAgICAgICAgICdza3ktYnRuLWljb24tYm9yZGVybGVzcyBza3ktbWFyZ2luLWlubGluZS1kZWZhdWx0JzogJ21vZGVybidcbiAgICAgICAgICB9XCJcbiAgICAgICAgICAoY2xpY2spPVwic2V0dGluZ3NCdXR0b25DbGlja2VkKClcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNreS1pY29uICpza3lUaGVtZUlmPVwiJ2RlZmF1bHQnXCIgaWNvbj1cImNvZ1wiPjwvc2t5LWljb24+XG4gICAgICAgICAgPHNreS1pY29uXG4gICAgICAgICAgICAqc2t5VGhlbWVJZj1cIidtb2Rlcm4nXCJcbiAgICAgICAgICAgIGljb249XCJjb2ctbGluZVwiXG4gICAgICAgICAgICBpY29uVHlwZT1cInNreXV4XCJcbiAgICAgICAgICA+PC9za3ktaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAqbmdJZj1cImlzSW5EYXNoYm9hcmRDb2x1bW5cIlxuICAgICAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktdGlsZS1ncmFiLWhhbmRsZVwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgIHRpbGVOYW1lXG4gICAgICAgICAgICAgID8gKCdza3l1eF90aWxlX21vdmUnIHwgc2t5TGliUmVzb3VyY2VzOiB0aWxlTmFtZSlcbiAgICAgICAgICAgICAgOiAoJ3NreXV4X3RpbGVfbW92ZV9kZWZhdWx0JyB8IHNreUxpYlJlc291cmNlcylcbiAgICAgICAgICBcIlxuICAgICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiYXJpYURlc2NyaWJlZEJ5XCJcbiAgICAgICAgICBbc2t5VGhlbWVDbGFzc109XCJ7XG4gICAgICAgICAgICAnc2t5LXRpbGUtdG9vbHMtY29udHJvbCc6ICdkZWZhdWx0JyxcbiAgICAgICAgICAgICdza3ktYnRuLWljb24tYm9yZGVybGVzcyc6ICdtb2Rlcm4nXG4gICAgICAgICAgfVwiXG4gICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgKGtleWRvd24pPVwibW92ZVRpbGUoJGV2ZW50KVwiXG4gICAgICAgICAgI2dyYWJIYW5kbGVcbiAgICAgICAgPlxuICAgICAgICAgIDxza3ktaWNvbiAqc2t5VGhlbWVJZj1cIidkZWZhdWx0J1wiIGljb249XCJ0aFwiPjwvc2t5LWljb24+XG4gICAgICAgICAgPHNreS1pY29uXG4gICAgICAgICAgICAqc2t5VGhlbWVJZj1cIidtb2Rlcm4nXCJcbiAgICAgICAgICAgIGljb249XCJ0aWxlLWRyYWdcIlxuICAgICAgICAgICAgaWNvblR5cGU9XCJza3l1eFwiXG4gICAgICAgICAgPjwvc2t5LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvaGVhZGVyPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJza3ktdGlsZS1jb250ZW50XCJcbiAgICByb2xlPVwicmVnaW9uXCJcbiAgICBza3lJZFxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidGlsZU5hbWVcIlxuICAgIFtAc2t5QW5pbWF0aW9uU2xpZGVdPVwiaXNDb2xsYXBzZWQgPyAndXAnIDogJ2Rvd24nXCJcbiAgICAjdGlsZUNvbnRlbnQ9XCJza3lJZFwiXG4gID5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJza3ktdGlsZS1jb250ZW50XCI+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbjwvc2VjdGlvbj5cbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Specifies the type of message to send to the tile dashboard component.
2
+ * The type of message to send to the tile dashboard component.
3
3
  */
4
4
  export var SkyTileDashboardMessageType;
5
5
  (function (SkyTileDashboardMessageType) {
@@ -12,4 +12,4 @@ export var SkyTileDashboardMessageType;
12
12
  */
13
13
  SkyTileDashboardMessageType[SkyTileDashboardMessageType["CollapseAll"] = 1] = "CollapseAll";
14
14
  })(SkyTileDashboardMessageType || (SkyTileDashboardMessageType = {}));
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1kYXNoYm9hcmQtbWVzc2FnZS10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RpbGVzL3NyYy9saWIvbW9kdWxlcy90aWxlcy90aWxlLWRhc2hib2FyZC90aWxlLWRhc2hib2FyZC1tZXNzYWdlLXR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBWSwyQkFVWDtBQVZELFdBQVksMkJBQTJCO0lBQ3JDOztPQUVHO0lBQ0gsdUZBQWEsQ0FBQTtJQUViOztPQUVHO0lBQ0gsMkZBQWUsQ0FBQTtBQUNqQixDQUFDLEVBVlcsMkJBQTJCLEtBQTNCLDJCQUEyQixRQVV0QyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU3BlY2lmaWVzIHRoZSB0eXBlIG9mIG1lc3NhZ2UgdG8gc2VuZCB0byB0aGUgdGlsZSBkYXNoYm9hcmQgY29tcG9uZW50LlxuICovXG5leHBvcnQgZW51bSBTa3lUaWxlRGFzaGJvYXJkTWVzc2FnZVR5cGUge1xuICAvKipcbiAgICogRXhwYW5kcyBhbGwgdGlsZXMgd2l0aGluIHRoZSB0aWxlIGRhc2hib2FyZC5cbiAgICovXG4gIEV4cGFuZEFsbCA9IDAsXG5cbiAgLyoqXG4gICAqIENvbGxhcHNlcyBhbGwgdGlsZXMgd2l0aGluIHRoZSB0aWxlIGRhc2hib2FyZC5cbiAgICovXG4gIENvbGxhcHNlQWxsID0gMSxcbn1cbiJdfQ==
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1kYXNoYm9hcmQtbWVzc2FnZS10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RpbGVzL3NyYy9saWIvbW9kdWxlcy90aWxlcy90aWxlLWRhc2hib2FyZC90aWxlLWRhc2hib2FyZC1tZXNzYWdlLXR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBWSwyQkFVWDtBQVZELFdBQVksMkJBQTJCO0lBQ3JDOztPQUVHO0lBQ0gsdUZBQWEsQ0FBQTtJQUViOztPQUVHO0lBQ0gsMkZBQWUsQ0FBQTtBQUNqQixDQUFDLEVBVlcsMkJBQTJCLEtBQTNCLDJCQUEyQixRQVV0QyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIHR5cGUgb2YgbWVzc2FnZSB0byBzZW5kIHRvIHRoZSB0aWxlIGRhc2hib2FyZCBjb21wb25lbnQuXG4gKi9cbmV4cG9ydCBlbnVtIFNreVRpbGVEYXNoYm9hcmRNZXNzYWdlVHlwZSB7XG4gIC8qKlxuICAgKiBFeHBhbmRzIGFsbCB0aWxlcyB3aXRoaW4gdGhlIHRpbGUgZGFzaGJvYXJkLlxuICAgKi9cbiAgRXhwYW5kQWxsID0gMCxcblxuICAvKipcbiAgICogQ29sbGFwc2VzIGFsbCB0aWxlcyB3aXRoaW4gdGhlIHRpbGUgZGFzaGJvYXJkLlxuICAgKi9cbiAgQ29sbGFwc2VBbGwgPSAxLFxufVxuIl19
@@ -20,7 +20,7 @@ export class SkyTileDashboardComponent {
20
20
  constructor(dashboardService, mediaQueryService, resourcesService) {
21
21
  _SkyTileDashboardComponent_instances.add(this);
22
22
  /**
23
- * Provides an observable to send commands to the tile dashboard. The commands should respect the
23
+ * The observable to send commands to the tile dashboard. The commands must respect the
24
24
  * `SkyTileDashboardMessage` type.
25
25
  */
26
26
  this.messageStream = new Subject();
@@ -133,4 +133,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.11", ngImpo
133
133
  static: false,
134
134
  }]
135
135
  }] } });
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1kYXNoYm9hcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RpbGVzL3NyYy9saWIvbW9kdWxlcy90aWxlcy90aWxlLWRhc2hib2FyZC90aWxlLWRhc2hib2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL2xpYi9tb2R1bGVzL3RpbGVzL3RpbGUtZGFzaGJvYXJkL3RpbGUtZGFzaGJvYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLFFBQVEsRUFDUixNQUFNLEVBRU4sU0FBUyxFQUNULFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsbUJBQW1CLEVBQXdCLE1BQU0sYUFBYSxDQUFDO0FBR3hFLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUkzRyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7OztBQUVuRTs7R0FFRztBQU9ILE1BQU0sT0FBTyx5QkFBeUI7SUFnRXBDLFlBQ0UsZ0JBQXlDLEVBQ3pDLGlCQUF1QyxFQUMzQixnQkFBeUM7O1FBakR2RDs7O1dBR0c7UUFFSSxrQkFBYSxHQUFHLElBQUksT0FBTyxFQUEyQixDQUFDO1FBWTlEOzs7O1dBSUc7UUFFSSxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUEwQixDQUFDO1FB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WUFDMUMsdUJBQUEsSUFBSSxtREFBa0IsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNsRCxNQUFNO0tBQ1Q7QUFDSCxDQUFDO3VIQTVKVSx5QkFBeUI7MkdBQXpCLHlCQUF5QixrTEFGekIsQ0FBQyx1QkFBdUIsQ0FBQyxtSEFpRDVCLCtCQUErQiwwQ0FKekIsK0JBQStCLGdEQzdFL0MsZ3RCQXNCQTs0RkRZYSx5QkFBeUI7a0JBTnJDLFNBQVM7K0JBQ0Usb0JBQW9CLGFBR25CLENBQUMsdUJBQXVCLENBQUM7OzBCQXFFakMsUUFBUTs0Q0E3REEsTUFBTTtzQkFEaEIsS0FBSztnQkFrQkMsYUFBYTtzQkFEbkIsS0FBSztnQkFXQyxXQUFXO3NCQURqQixLQUFLO2dCQVNDLFlBQVk7c0JBRGxCLE1BQU07Z0JBSUEsT0FBTztzQkFEYixZQUFZO3VCQUFDLCtCQUErQjtnQkFPdEMsWUFBWTtzQkFKbEIsU0FBUzt1QkFBQyxjQUFjLEVBQUU7d0JBQ3pCLElBQUksRUFBRSwrQkFBK0I7d0JBQ3JDLE1BQU0sRUFBRSxLQUFLO3FCQUNkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVmlld0NoaWxkLFxuICBWaWV3Q2hpbGRyZW4sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5TWVkaWFCcmVha3BvaW50cywgU2t5TWVkaWFRdWVyeVNlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreVRpbGVEYXNoYm9hcmRDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuLi90aWxlLWRhc2hib2FyZC1jb2x1bW4vdGlsZS1kYXNoYm9hcmQtY29sdW1uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnIH0gZnJvbSAnLi4vdGlsZS1kYXNoYm9hcmQtY29uZmlnL3RpbGUtZGFzaGJvYXJkLWNvbmZpZyc7XG5cbmltcG9ydCB7IFNreVRpbGVEYXNoYm9hcmRNZXNzYWdlIH0gZnJvbSAnLi90aWxlLWRhc2hib2FyZC1tZXNzYWdlJztcbmltcG9ydCB7IFNreVRpbGVEYXNoYm9hcmRNZXNzYWdlVHlwZSB9IGZyb20gJy4vdGlsZS1kYXNoYm9hcmQtbWVzc2FnZS10eXBlJztcbmltcG9ydCB7IFNreVRpbGVEYXNoYm9hcmRTZXJ2aWNlIH0gZnJvbSAnLi90aWxlLWRhc2hib2FyZC5zZXJ2aWNlJztcblxuLyoqXG4gKiBTcGVjaWZpZXMgYSBjb250YWluZXIgdG8gZ3JvdXAgbXVsdGlwbGUgdGlsZXMuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS10aWxlLWRhc2hib2FyZCcsXG4gIHN0eWxlVXJsczogWycuL3RpbGUtZGFzaGJvYXJkLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi90aWxlLWRhc2hib2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW1NreVRpbGVEYXNoYm9hcmRTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5VGlsZURhc2hib2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBQb3B1bGF0ZXMgdGhlIHRpbGUgZGFzaGJvYXJkIGJhc2VkIG9uIHRoZSBgU2t5VGlsZURhc2hib2FyZENvbmZpZ2Agb2JqZWN0LlxuICAgKiBAcmVxdWlyZWRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY29uZmlnKHZhbHVlOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHZhbHVlICYmICF0aGlzLiNjb25maWdTZXQpIHtcbiAgICAgIHRoaXMuI19jb25maWcgPSB2YWx1ZTtcbiAgICAgIHRoaXMuI2NvbmZpZ1NldCA9IHRydWU7XG4gICAgICB0aGlzLiNjaGVja1JlYWR5KCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBjb25maWcoKTogU2t5VGlsZURhc2hib2FyZENvbmZpZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI19jb25maWc7XG4gIH1cblxuICAvKipcbiAgICogUHJvdmlkZXMgYW4gb2JzZXJ2YWJsZSB0byBzZW5kIGNvbW1hbmRzIHRvIHRoZSB0aWxlIGRhc2hib2FyZC4gVGhlIGNvbW1hbmRzIHNob3VsZCByZXNwZWN0IHRoZVxuICAgKiBgU2t5VGlsZURhc2hib2FyZE1lc3NhZ2VgIHR5cGUuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgbWVzc2FnZVN0cmVhbSA9IG5ldyBTdWJqZWN0PFNreVRpbGVEYXNoYm9hcmRNZXNzYWdlPigpO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgYSB1bmlxdWUga2V5IGZvciB0aGUgVUkgQ29uZmlnIFNlcnZpY2UgdG8gcmV0cmlldmUgc3RvcmVkIHNldHRpbmdzXG4gICAqIGZyb20gYSBkYXRhYmFzZS4gVGhlIFVJIENvbmZpZyBTZXJ2aWNlIHNhdmVzIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgZm9yIHVzZXJzXG4gICAqIHRvIHByZXNlcnZlIHRoZSBsYXlvdXQgYW5kIGNvbGxhcHNlZCBzdGF0ZSBvZiB0aWxlIGRhc2hib2FyZHMuIFRoZSBVSSBDb25maWcgU2VydmljZSByZWxpZXMgb24gYGlkYCB2YWx1ZXMgZnJvbSB0aGUgYGNvbmZpZ2AgcHJvcGVydHkgdG8gbWFpbnRhaW4gdXNlciBzZXR0aW5ncy4gRm9yIG1vcmUgaW5mb3JtYXRpb25cbiAgICogYWJvdXQgdGhlIFVJIENvbmZpZyBTZXJ2aWNlLCBzZWUgdGhlXG4gICAqIFtzdGlja3kgc2V0dGluZ3MgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9sZWFybi9nZXQtc3RhcnRlZC9zdGlja3ktc2V0dGluZ3MpLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldHRpbmdzS2V5OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIHRpbGUgZGFzaGJvYXJkIGNoYW5nZXMgc3RhdGUgYW5kIGVtaXRzIGEgU2t5VGlsZURhc2hib2FyZENvbmZpZ1xuICAgKiBvYmplY3QuIFRoaXMgb2NjdXJzIHdoZW4gdGlsZXMgY29sbGFwc2Ugb3IgZXhwYW5kIGFuZCB3aGVuIHVzZXJzIGRyYWcgYW5kIGRyb3BcbiAgICogdGlsZXMgdG8gcmVhcnJhbmdlIHRoZW0uXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGNvbmZpZ0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2t5VGlsZURhc2hib2FyZENvbmZpZz4oKTtcblxuICBAVmlld0NoaWxkcmVuKFNreVRpbGVEYXNoYm9hcmRDb2x1bW5Db21wb25lbnQpXG4gIHB1YmxpYyBjb2x1bW5zOiBRdWVyeUxpc3Q8U2t5VGlsZURhc2hib2FyZENvbHVtbkNvbXBvbmVudD4gfCB1bmRlZmluZWQ7XG5cbiAgQFZpZXdDaGlsZCgnc2luZ2xlQ29sdW1uJywge1xuICAgIHJlYWQ6IFNreVRpbGVEYXNoYm9hcmRDb2x1bW5Db21wb25lbnQsXG4gICAgc3RhdGljOiBmYWxzZSxcbiAgfSlcbiAgcHVibGljIHNpbmdsZUNvbHVtbjogU2t5VGlsZURhc2hib2FyZENvbHVtbkNvbXBvbmVudCB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgdGlsZU1vdmVkUmVwb3J0ID0gJyc7XG5cbiAgcHVibGljIG1vdmVJbnN0cnVjdGlvbnNJZDogc3RyaW5nO1xuXG4gICNjb25maWdTZXQgPSBmYWxzZTtcbiAgI2Rhc2hib2FyZFNlcnZpY2U6IFNreVRpbGVEYXNoYm9hcmRTZXJ2aWNlO1xuICAjbWVkaWFRdWVyeVNlcnZpY2U6IFNreU1lZGlhUXVlcnlTZXJ2aWNlO1xuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICNyZXNvdXJjZXNTZXJ2aWNlOiBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlIHwgdW5kZWZpbmVkO1xuICAjdmlld1JlYWR5ID0gZmFsc2U7XG4gICNfY29uZmlnOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGRhc2hib2FyZFNlcnZpY2U6IFNreVRpbGVEYXNoYm9hcmRTZXJ2aWNlLFxuICAgIG1lZGlhUXVlcnlTZXJ2aWNlOiBTa3lNZWRpYVF1ZXJ5U2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSByZXNvdXJjZXNTZXJ2aWNlPzogU2t5TGliUmVzb3VyY2VzU2VydmljZVxuICApIHtcbiAgICB0aGlzLiNkYXNoYm9hcmRTZXJ2aWNlID0gZGFzaGJvYXJkU2VydmljZTtcbiAgICB0aGlzLiNtZWRpYVF1ZXJ5U2VydmljZSA9IG1lZGlhUXVlcnlTZXJ2aWNlO1xuICAgIHRoaXMuI3Jlc291cmNlc1NlcnZpY2UgPSByZXNvdXJjZXNTZXJ2aWNlO1xuICAgIHRoaXMubW92ZUluc3RydWN0aW9uc0lkID1cbiAgICAgIHRoaXMuI2Rhc2hib2FyZFNlcnZpY2UuYmFnSWQgKyAnLW1vdmUtaW5zdHJ1Y3Rpb25zJztcblxuICAgIHRoaXMuI2Rhc2hib2FyZFNlcnZpY2UuY29uZmlnQ2hhbmdlLnN1YnNjcmliZShcbiAgICAgIChjb25maWc6IFNreVRpbGVEYXNoYm9hcmRDb25maWcpID0+IHtcbiAgICAgICAgdGhpcy5jb25maWdDaGFuZ2UuZW1pdChjb25maWcpO1xuXG4gICAgICAgIC8vIFVwZGF0ZSBhcmlhIGxpdmUgcmVnaW9uIHdpdGggdGlsZSBkcmFnIGluZm9cbiAgICAgICAgaWYgKGNvbmZpZy5tb3ZlZFRpbGUgJiYgdGhpcy4jcmVzb3VyY2VzU2VydmljZSkge1xuICAgICAgICAgIGxldCBtZXNzYWdlT2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuI21lZGlhUXVlcnlTZXJ2aWNlLmN1cnJlbnQgPT09IFNreU1lZGlhQnJlYWtwb2ludHMueHMgfHxcbiAgICAgICAgICAgIHRoaXMuI21lZGlhUXVlcnlTZXJ2aWNlLmN1cnJlbnQgPT09IFNreU1lZGlhQnJlYWtwb2ludHMuc21cbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIG1lc3NhZ2VPYnNlcnZhYmxlID0gdGhpcy4jcmVzb3VyY2VzU2VydmljZS5nZXRTdHJpbmcoXG4gICAgICAgICAgICAgICdza3l1eF90aWxlX21vdmVkX2Fzc2lzdGl2ZV90ZXh0JyxcbiAgICAgICAgICAgICAgY29uZmlnLm1vdmVkVGlsZS50aWxlRGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgICcxJyxcbiAgICAgICAgICAgICAgJzEnLFxuICAgICAgICAgICAgICBjb25maWcubW92ZWRUaWxlLnBvc2l0aW9uLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgIGNvbmZpZy5sYXlvdXQuc2luZ2xlQ29sdW1uLnRpbGVzLmxlbmd0aC50b1N0cmluZygpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBtZXNzYWdlT2JzZXJ2YWJsZSA9IHRoaXMuI3Jlc291cmNlc1NlcnZpY2UuZ2V0U3RyaW5nKFxuICAgICAgICAgICAgICAnc2t5dXhfdGlsZV9tb3ZlZF9hc3Npc3RpdmVfdGV4dCcsXG4gICAgICAgICAgICAgIGNvbmZpZy5tb3ZlZFRpbGUudGlsZURlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICBjb25maWcubW92ZWRUaWxlLmNvbHVtbi50b1N0cmluZygpLFxuICAgICAgICAgICAgICBjb25maWcubGF5b3V0Lm11bHRpQ29sdW1uLmxlbmd0aC50b1N0cmluZygpLFxuICAgICAgICAgICAgICBjb25maWcubW92ZWRUaWxlLnBvc2l0aW9uLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgIGNvbmZpZy5sYXlvdXQubXVsdGlDb2x1bW5bXG4gICAgICAgICAgICAgICAgY29uZmlnLm1vdmVkVGlsZS5jb2x1bW4gLSAxXG4gICAgICAgICAgICAgIF0udGlsZXMubGVuZ3RoLnRvU3RyaW5nKClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIG1lc3NhZ2VPYnNlcnZhYmxlLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKChtZXNzYWdlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIHRoaXMudGlsZU1vdmVkUmVwb3J0ID0gbWVzc2FnZTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMubWVzc2FnZVN0cmVhbVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgobWVzc2FnZTogU2t5VGlsZURhc2hib2FyZE1lc3NhZ2UpID0+IHtcbiAgICAgICAgdGhpcy4jaGFuZGxlSW5jb21pbmdNZXNzYWdlcyhtZXNzYWdlKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy4jdmlld1JlYWR5ID0gdHJ1ZTtcbiAgICB0aGlzLiNjaGVja1JlYWR5KCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI2Rhc2hib2FyZFNlcnZpY2UuZGVzdHJveSgpO1xuICB9XG5cbiAgI2NoZWNrUmVhZHkoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuI3ZpZXdSZWFkeSAmJiB0aGlzLmNvbmZpZykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZyAmJiB0aGlzLmNvbHVtbnMgJiYgdGhpcy5zaW5nbGVDb2x1bW4pIHtcbiAgICAgICAgICB0aGlzLiNkYXNoYm9hcmRTZXJ2aWNlLmluaXQoXG4gICAgICAgICAgICB0aGlzLmNvbmZpZyxcbiAgICAgICAgICAgIHRoaXMuY29sdW1ucyxcbiAgICAgICAgICAgIHRoaXMuc2luZ2xlQ29sdW1uLFxuICAgICAgICAgICAgdGhpcy5zZXR0aW5nc0tleVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0sIDApO1xuICAgIH1cbiAgfVxuXG4gICNoYW5kbGVJbmNvbWluZ01lc3NhZ2VzKG1lc3NhZ2U6IFNreVRpbGVEYXNoYm9hcmRNZXNzYWdlKTogdm9pZCB7XG4gICAgc3dpdGNoIChtZXNzYWdlLnR5cGUpIHtcbiAgICAgIGNhc2UgU2t5VGlsZURhc2hib2FyZE1lc3NhZ2VUeXBlLkV4cGFuZEFsbDpcbiAgICAgICAgdGhpcy4jZGFzaGJvYXJkU2VydmljZS5zZXRBbGxUaWxlc0NvbGxhcHNlZChmYWxzZSk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFNreVRpbGVEYXNoYm9hcmRNZXNzYWdlVHlwZS5Db2xsYXBzZUFsbDpcbiAgICAgICAgdGhpcy4jZGFzaGJvYXJkU2VydmljZS5zZXRBbGxUaWxlc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiY29uZmlnXCI+XG4gIDxzcGFuIGFyaWEtbGl2ZT1cImFzc2VydGl2ZVwiIGNsYXNzPVwic2t5LWFzc2lzdGl2ZS10ZXh0XCI+XG4gICAge3sgdGlsZU1vdmVkUmVwb3J0IH19XG4gIDwvc3Bhbj5cbiAgPHNreS10aWxlLWRhc2hib2FyZC1jb2x1bW5cbiAgICAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbmZpZy5sYXlvdXQubXVsdGlDb2x1bW5cIlxuICAgIGNsYXNzPVwic2t5LXRpbGUtZGFzaGJvYXJkLWxheW91dC1tdWx0aVwiXG4gICAgW25nU3R5bGVdPVwie1xuICAgICAgJ2ZsZXgtYmFzaXMnOiAxMDAgLyBjb25maWcubGF5b3V0Lm11bHRpQ29sdW1uLmxlbmd0aCArICclJ1xuICAgIH1cIlxuICA+XG4gIDwvc2t5LXRpbGUtZGFzaGJvYXJkLWNvbHVtbj5cbiAgPHNreS10aWxlLWRhc2hib2FyZC1jb2x1bW5cbiAgICBjbGFzcz1cInNreS10aWxlLWRhc2hib2FyZC1sYXlvdXQtc2luZ2xlXCJcbiAgICAjc2luZ2xlQ29sdW1uXG4gID5cbiAgPC9za3ktdGlsZS1kYXNoYm9hcmQtY29sdW1uPlxuICA8c3BhbiBjbGFzcz1cInNreS1zY3JlZW4tcmVhZGVyLW9ubHlcIiBbaWRdPVwibW92ZUluc3RydWN0aW9uc0lkXCI+e3tcbiAgICAnc2t5dXhfdGlsZV9tb3ZlX2luc3RydWN0aW9ucycgfCBza3lMaWJSZXNvdXJjZXNcbiAgfX08L3NwYW4+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvbmctY29udGFpbmVyPlxuIl19
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1kYXNoYm9hcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RpbGVzL3NyYy9saWIvbW9kdWxlcy90aWxlcy90aWxlLWRhc2hib2FyZC90aWxlLWRhc2hib2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL2xpYi9tb2R1bGVzL3RpbGVzL3RpbGUtZGFzaGJvYXJkL3RpbGUtZGFzaGJvYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLFFBQVEsRUFDUixNQUFNLEVBRU4sU0FBUyxFQUNULFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsbUJBQW1CLEVBQXdCLE1BQU0sYUFBYSxDQUFDO0FBR3hFLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUkzRyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7OztBQUVuRTs7R0FFRztBQU9ILE1BQU0sT0FBTyx5QkFBeUI7SUFnRXBDLFlBQ0UsZ0JBQXlDLEVBQ3pDLGlCQUF1QyxFQUMzQixnQkFBeUM7O1FBakR2RDs7O1dBR0c7UUFFSSxrQkFBYSxHQUFHLElBQUksT0FBTyxFQUEyQixDQUFDO1FBWTlEOzs7O1dBSUc7UUFFSSxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUEwQixDQUFDO1FB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WUFDMUMsdUJBQUEsSUFBSSxtREFBa0IsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNsRCxNQUFNO0tBQ1Q7QUFDSCxDQUFDO3VIQTVKVSx5QkFBeUI7MkdBQXpCLHlCQUF5QixrTEFGekIsQ0FBQyx1QkFBdUIsQ0FBQyxtSEFpRDVCLCtCQUErQiwwQ0FKekIsK0JBQStCLGdEQzdFL0MsZ3RCQXNCQTs0RkRZYSx5QkFBeUI7a0JBTnJDLFNBQVM7K0JBQ0Usb0JBQW9CLGFBR25CLENBQUMsdUJBQXVCLENBQUM7OzBCQXFFakMsUUFBUTs0Q0E3REEsTUFBTTtzQkFEaEIsS0FBSztnQkFrQkMsYUFBYTtzQkFEbkIsS0FBSztnQkFXQyxXQUFXO3NCQURqQixLQUFLO2dCQVNDLFlBQVk7c0JBRGxCLE1BQU07Z0JBSUEsT0FBTztzQkFEYixZQUFZO3VCQUFDLCtCQUErQjtnQkFPdEMsWUFBWTtzQkFKbEIsU0FBUzt1QkFBQyxjQUFjLEVBQUU7d0JBQ3pCLElBQUksRUFBRSwrQkFBK0I7d0JBQ3JDLE1BQU0sRUFBRSxLQUFLO3FCQUNkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVmlld0NoaWxkLFxuICBWaWV3Q2hpbGRyZW4sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5TWVkaWFCcmVha3BvaW50cywgU2t5TWVkaWFRdWVyeVNlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreVRpbGVEYXNoYm9hcmRDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuLi90aWxlLWRhc2hib2FyZC1jb2x1bW4vdGlsZS1kYXNoYm9hcmQtY29sdW1uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnIH0gZnJvbSAnLi4vdGlsZS1kYXNoYm9hcmQtY29uZmlnL3RpbGUtZGFzaGJvYXJkLWNvbmZpZyc7XG5cbmltcG9ydCB7IFNreVRpbGVEYXNoYm9hcmRNZXNzYWdlIH0gZnJvbSAnLi90aWxlLWRhc2hib2FyZC1tZXNzYWdlJztcbmltcG9ydCB7IFNreVRpbGVEYXNoYm9hcmRNZXNzYWdlVHlwZSB9IGZyb20gJy4vdGlsZS1kYXNoYm9hcmQtbWVzc2FnZS10eXBlJztcbmltcG9ydCB7IFNreVRpbGVEYXNoYm9hcmRTZXJ2aWNlIH0gZnJvbSAnLi90aWxlLWRhc2hib2FyZC5zZXJ2aWNlJztcblxuLyoqXG4gKiBTcGVjaWZpZXMgYSBjb250YWluZXIgdG8gZ3JvdXAgbXVsdGlwbGUgdGlsZXMuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS10aWxlLWRhc2hib2FyZCcsXG4gIHN0eWxlVXJsczogWycuL3RpbGUtZGFzaGJvYXJkLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi90aWxlLWRhc2hib2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW1NreVRpbGVEYXNoYm9hcmRTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5VGlsZURhc2hib2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBQb3B1bGF0ZXMgdGhlIHRpbGUgZGFzaGJvYXJkIGJhc2VkIG9uIHRoZSBgU2t5VGlsZURhc2hib2FyZENvbmZpZ2Agb2JqZWN0LlxuICAgKiBAcmVxdWlyZWRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY29uZmlnKHZhbHVlOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHZhbHVlICYmICF0aGlzLiNjb25maWdTZXQpIHtcbiAgICAgIHRoaXMuI19jb25maWcgPSB2YWx1ZTtcbiAgICAgIHRoaXMuI2NvbmZpZ1NldCA9IHRydWU7XG4gICAgICB0aGlzLiNjaGVja1JlYWR5KCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBjb25maWcoKTogU2t5VGlsZURhc2hib2FyZENvbmZpZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI19jb25maWc7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG9ic2VydmFibGUgdG8gc2VuZCBjb21tYW5kcyB0byB0aGUgdGlsZSBkYXNoYm9hcmQuIFRoZSBjb21tYW5kcyBtdXN0IHJlc3BlY3QgdGhlXG4gICAqIGBTa3lUaWxlRGFzaGJvYXJkTWVzc2FnZWAgdHlwZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtZXNzYWdlU3RyZWFtID0gbmV3IFN1YmplY3Q8U2t5VGlsZURhc2hib2FyZE1lc3NhZ2U+KCk7XG5cbiAgLyoqXG4gICAqIFRoZSB1bmlxdWUga2V5IGZvciB0aGUgVUkgQ29uZmlnIFNlcnZpY2UgdG8gcmV0cmlldmUgc3RvcmVkIHNldHRpbmdzXG4gICAqIGZyb20gYSBkYXRhYmFzZS4gVGhlIFVJIENvbmZpZyBTZXJ2aWNlIHNhdmVzIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgZm9yIHVzZXJzXG4gICAqIHRvIHByZXNlcnZlIHRoZSBsYXlvdXQgYW5kIGNvbGxhcHNlZCBzdGF0ZSBvZiB0aWxlIGRhc2hib2FyZHMuIFRoZSBVSSBDb25maWcgU2VydmljZSByZWxpZXMgb24gYGlkYCB2YWx1ZXMgZnJvbSB0aGUgYGNvbmZpZ2AgcHJvcGVydHkgdG8gbWFpbnRhaW4gdXNlciBzZXR0aW5ncy4gRm9yIG1vcmUgaW5mb3JtYXRpb25cbiAgICogYWJvdXQgdGhlIFVJIENvbmZpZyBTZXJ2aWNlLCBzZWUgdGhlXG4gICAqIFtzdGlja3kgc2V0dGluZ3MgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9sZWFybi9nZXQtc3RhcnRlZC9zdGlja3ktc2V0dGluZ3MpLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldHRpbmdzS2V5OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIHRpbGUgZGFzaGJvYXJkIGNoYW5nZXMgc3RhdGUgYW5kIGVtaXRzIGEgU2t5VGlsZURhc2hib2FyZENvbmZpZ1xuICAgKiBvYmplY3QuIFRoaXMgb2NjdXJzIHdoZW4gdGlsZXMgY29sbGFwc2Ugb3IgZXhwYW5kIGFuZCB3aGVuIHVzZXJzIGRyYWcgYW5kIGRyb3BcbiAgICogdGlsZXMgdG8gcmVhcnJhbmdlIHRoZW0uXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGNvbmZpZ0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2t5VGlsZURhc2hib2FyZENvbmZpZz4oKTtcblxuICBAVmlld0NoaWxkcmVuKFNreVRpbGVEYXNoYm9hcmRDb2x1bW5Db21wb25lbnQpXG4gIHB1YmxpYyBjb2x1bW5zOiBRdWVyeUxpc3Q8U2t5VGlsZURhc2hib2FyZENvbHVtbkNvbXBvbmVudD4gfCB1bmRlZmluZWQ7XG5cbiAgQFZpZXdDaGlsZCgnc2luZ2xlQ29sdW1uJywge1xuICAgIHJlYWQ6IFNreVRpbGVEYXNoYm9hcmRDb2x1bW5Db21wb25lbnQsXG4gICAgc3RhdGljOiBmYWxzZSxcbiAgfSlcbiAgcHVibGljIHNpbmdsZUNvbHVtbjogU2t5VGlsZURhc2hib2FyZENvbHVtbkNvbXBvbmVudCB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgdGlsZU1vdmVkUmVwb3J0ID0gJyc7XG5cbiAgcHVibGljIG1vdmVJbnN0cnVjdGlvbnNJZDogc3RyaW5nO1xuXG4gICNjb25maWdTZXQgPSBmYWxzZTtcbiAgI2Rhc2hib2FyZFNlcnZpY2U6IFNreVRpbGVEYXNoYm9hcmRTZXJ2aWNlO1xuICAjbWVkaWFRdWVyeVNlcnZpY2U6IFNreU1lZGlhUXVlcnlTZXJ2aWNlO1xuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICNyZXNvdXJjZXNTZXJ2aWNlOiBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlIHwgdW5kZWZpbmVkO1xuICAjdmlld1JlYWR5ID0gZmFsc2U7XG4gICNfY29uZmlnOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGRhc2hib2FyZFNlcnZpY2U6IFNreVRpbGVEYXNoYm9hcmRTZXJ2aWNlLFxuICAgIG1lZGlhUXVlcnlTZXJ2aWNlOiBTa3lNZWRpYVF1ZXJ5U2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSByZXNvdXJjZXNTZXJ2aWNlPzogU2t5TGliUmVzb3VyY2VzU2VydmljZVxuICApIHtcbiAgICB0aGlzLiNkYXNoYm9hcmRTZXJ2aWNlID0gZGFzaGJvYXJkU2VydmljZTtcbiAgICB0aGlzLiNtZWRpYVF1ZXJ5U2VydmljZSA9IG1lZGlhUXVlcnlTZXJ2aWNlO1xuICAgIHRoaXMuI3Jlc291cmNlc1NlcnZpY2UgPSByZXNvdXJjZXNTZXJ2aWNlO1xuICAgIHRoaXMubW92ZUluc3RydWN0aW9uc0lkID1cbiAgICAgIHRoaXMuI2Rhc2hib2FyZFNlcnZpY2UuYmFnSWQgKyAnLW1vdmUtaW5zdHJ1Y3Rpb25zJztcblxuICAgIHRoaXMuI2Rhc2hib2FyZFNlcnZpY2UuY29uZmlnQ2hhbmdlLnN1YnNjcmliZShcbiAgICAgIChjb25maWc6IFNreVRpbGVEYXNoYm9hcmRDb25maWcpID0+IHtcbiAgICAgICAgdGhpcy5jb25maWdDaGFuZ2UuZW1pdChjb25maWcpO1xuXG4gICAgICAgIC8vIFVwZGF0ZSBhcmlhIGxpdmUgcmVnaW9uIHdpdGggdGlsZSBkcmFnIGluZm9cbiAgICAgICAgaWYgKGNvbmZpZy5tb3ZlZFRpbGUgJiYgdGhpcy4jcmVzb3VyY2VzU2VydmljZSkge1xuICAgICAgICAgIGxldCBtZXNzYWdlT2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuI21lZGlhUXVlcnlTZXJ2aWNlLmN1cnJlbnQgPT09IFNreU1lZGlhQnJlYWtwb2ludHMueHMgfHxcbiAgICAgICAgICAgIHRoaXMuI21lZGlhUXVlcnlTZXJ2aWNlLmN1cnJlbnQgPT09IFNreU1lZGlhQnJlYWtwb2ludHMuc21cbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIG1lc3NhZ2VPYnNlcnZhYmxlID0gdGhpcy4jcmVzb3VyY2VzU2VydmljZS5nZXRTdHJpbmcoXG4gICAgICAgICAgICAgICdza3l1eF90aWxlX21vdmVkX2Fzc2lzdGl2ZV90ZXh0JyxcbiAgICAgICAgICAgICAgY29uZmlnLm1vdmVkVGlsZS50aWxlRGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgICcxJyxcbiAgICAgICAgICAgICAgJzEnLFxuICAgICAgICAgICAgICBjb25maWcubW92ZWRUaWxlLnBvc2l0aW9uLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgIGNvbmZpZy5sYXlvdXQuc2luZ2xlQ29sdW1uLnRpbGVzLmxlbmd0aC50b1N0cmluZygpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBtZXNzYWdlT2JzZXJ2YWJsZSA9IHRoaXMuI3Jlc291cmNlc1NlcnZpY2UuZ2V0U3RyaW5nKFxuICAgICAgICAgICAgICAnc2t5dXhfdGlsZV9tb3ZlZF9hc3Npc3RpdmVfdGV4dCcsXG4gICAgICAgICAgICAgIGNvbmZpZy5tb3ZlZFRpbGUudGlsZURlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICBjb25maWcubW92ZWRUaWxlLmNvbHVtbi50b1N0cmluZygpLFxuICAgICAgICAgICAgICBjb25maWcubGF5b3V0Lm11bHRpQ29sdW1uLmxlbmd0aC50b1N0cmluZygpLFxuICAgICAgICAgICAgICBjb25maWcubW92ZWRUaWxlLnBvc2l0aW9uLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgIGNvbmZpZy5sYXlvdXQubXVsdGlDb2x1bW5bXG4gICAgICAgICAgICAgICAgY29uZmlnLm1vdmVkVGlsZS5jb2x1bW4gLSAxXG4gICAgICAgICAgICAgIF0udGlsZXMubGVuZ3RoLnRvU3RyaW5nKClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIG1lc3NhZ2VPYnNlcnZhYmxlLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKChtZXNzYWdlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIHRoaXMudGlsZU1vdmVkUmVwb3J0ID0gbWVzc2FnZTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMubWVzc2FnZVN0cmVhbVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgobWVzc2FnZTogU2t5VGlsZURhc2hib2FyZE1lc3NhZ2UpID0+IHtcbiAgICAgICAgdGhpcy4jaGFuZGxlSW5jb21pbmdNZXNzYWdlcyhtZXNzYWdlKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy4jdmlld1JlYWR5ID0gdHJ1ZTtcbiAgICB0aGlzLiNjaGVja1JlYWR5KCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI2Rhc2hib2FyZFNlcnZpY2UuZGVzdHJveSgpO1xuICB9XG5cbiAgI2NoZWNrUmVhZHkoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuI3ZpZXdSZWFkeSAmJiB0aGlzLmNvbmZpZykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZyAmJiB0aGlzLmNvbHVtbnMgJiYgdGhpcy5zaW5nbGVDb2x1bW4pIHtcbiAgICAgICAgICB0aGlzLiNkYXNoYm9hcmRTZXJ2aWNlLmluaXQoXG4gICAgICAgICAgICB0aGlzLmNvbmZpZyxcbiAgICAgICAgICAgIHRoaXMuY29sdW1ucyxcbiAgICAgICAgICAgIHRoaXMuc2luZ2xlQ29sdW1uLFxuICAgICAgICAgICAgdGhpcy5zZXR0aW5nc0tleVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0sIDApO1xuICAgIH1cbiAgfVxuXG4gICNoYW5kbGVJbmNvbWluZ01lc3NhZ2VzKG1lc3NhZ2U6IFNreVRpbGVEYXNoYm9hcmRNZXNzYWdlKTogdm9pZCB7XG4gICAgc3dpdGNoIChtZXNzYWdlLnR5cGUpIHtcbiAgICAgIGNhc2UgU2t5VGlsZURhc2hib2FyZE1lc3NhZ2VUeXBlLkV4cGFuZEFsbDpcbiAgICAgICAgdGhpcy4jZGFzaGJvYXJkU2VydmljZS5zZXRBbGxUaWxlc0NvbGxhcHNlZChmYWxzZSk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFNreVRpbGVEYXNoYm9hcmRNZXNzYWdlVHlwZS5Db2xsYXBzZUFsbDpcbiAgICAgICAgdGhpcy4jZGFzaGJvYXJkU2VydmljZS5zZXRBbGxUaWxlc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiY29uZmlnXCI+XG4gIDxzcGFuIGFyaWEtbGl2ZT1cImFzc2VydGl2ZVwiIGNsYXNzPVwic2t5LWFzc2lzdGl2ZS10ZXh0XCI+XG4gICAge3sgdGlsZU1vdmVkUmVwb3J0IH19XG4gIDwvc3Bhbj5cbiAgPHNreS10aWxlLWRhc2hib2FyZC1jb2x1bW5cbiAgICAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbmZpZy5sYXlvdXQubXVsdGlDb2x1bW5cIlxuICAgIGNsYXNzPVwic2t5LXRpbGUtZGFzaGJvYXJkLWxheW91dC1tdWx0aVwiXG4gICAgW25nU3R5bGVdPVwie1xuICAgICAgJ2ZsZXgtYmFzaXMnOiAxMDAgLyBjb25maWcubGF5b3V0Lm11bHRpQ29sdW1uLmxlbmd0aCArICclJ1xuICAgIH1cIlxuICA+XG4gIDwvc2t5LXRpbGUtZGFzaGJvYXJkLWNvbHVtbj5cbiAgPHNreS10aWxlLWRhc2hib2FyZC1jb2x1bW5cbiAgICBjbGFzcz1cInNreS10aWxlLWRhc2hib2FyZC1sYXlvdXQtc2luZ2xlXCJcbiAgICAjc2luZ2xlQ29sdW1uXG4gID5cbiAgPC9za3ktdGlsZS1kYXNoYm9hcmQtY29sdW1uPlxuICA8c3BhbiBjbGFzcz1cInNreS1zY3JlZW4tcmVhZGVyLW9ubHlcIiBbaWRdPVwibW92ZUluc3RydWN0aW9uc0lkXCI+e3tcbiAgICAnc2t5dXhfdGlsZV9tb3ZlX2luc3RydWN0aW9ucycgfCBza3lMaWJSZXNvdXJjZXNcbiAgfX08L3NwYW4+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvbmctY29udGFpbmVyPlxuIl19