@c8y/ngx-components 1021.49.6 → 1021.50.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 (121) hide show
  1. package/LICENSE +1 -1
  2. package/alarms/alarms.component.d.ts +1 -1
  3. package/alarms/alarms.component.d.ts.map +1 -1
  4. package/context-dashboard/context-dashboard.component.d.ts +3 -2
  5. package/context-dashboard/context-dashboard.component.d.ts.map +1 -1
  6. package/core/i18n/pattern-messages.data.d.ts +18 -0
  7. package/core/i18n/pattern-messages.data.d.ts.map +1 -1
  8. package/core/select/typeahead.component.d.ts.map +1 -1
  9. package/esm2022/alarms/alarms-type-filter.component.mjs +3 -3
  10. package/esm2022/alarms/alarms.component.mjs +2 -2
  11. package/esm2022/context-dashboard/context-dashboard.component.mjs +11 -8
  12. package/esm2022/context-dashboard/device-info-dashboard/device-info-dashboard.component.mjs +3 -3
  13. package/esm2022/core/i18n/pattern-messages.data.mjs +19 -1
  14. package/esm2022/core/search/search-input.component.mjs +3 -3
  15. package/esm2022/core/select/typeahead.component.mjs +2 -2
  16. package/esm2022/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/data-fetching.service.mjs +2 -2
  17. package/esm2022/device-list/add-smart-group.component.mjs +3 -3
  18. package/esm2022/operations/bulk-operation-list-item/bulk-operation-list-item.service.mjs +5 -4
  19. package/esm2022/operations/operation-details/operation-details.module.mjs +7 -7
  20. package/esm2022/operations/operations-list/device-control.feature.mjs +20 -0
  21. package/esm2022/operations/operations-list/index.mjs +4 -3
  22. package/esm2022/operations/operations-list/operations-list-item.component.mjs +11 -9
  23. package/esm2022/operations/operations-list/operations-list.component.mjs +15 -10
  24. package/esm2022/operations/operations-list/operations-list.module.mjs +16 -41
  25. package/esm2022/operations/operations-list/operations-list.service.mjs +4 -3
  26. package/esm2022/operations/operations.module.mjs +21 -14
  27. package/esm2022/operations/shared/operations.service.mjs +4 -3
  28. package/esm2022/services/index.mjs +14 -3
  29. package/esm2022/services/service-command-tab/c8y-ngx-components-services-service-command-tab.mjs +5 -0
  30. package/esm2022/services/service-command-tab/index.mjs +3 -0
  31. package/esm2022/services/service-command-tab/service-command-tab.component.mjs +33 -0
  32. package/esm2022/services/service-command-tab/service-command.feature.mjs +14 -0
  33. package/esm2022/services/services-device-tab/index.mjs +9 -3
  34. package/esm2022/services/services-device-tab/services-device-tab.component.mjs +3 -4
  35. package/esm2022/services/services-device-tab/services-device-tab.guard.mjs +2 -2
  36. package/esm2022/services/services-device-tab/services.breadcrumb-factory.mjs +13 -1
  37. package/esm2022/services/services.module.mjs +4 -2
  38. package/esm2022/services/shared/c8y-ngx-components-services-shared.mjs +5 -0
  39. package/esm2022/services/shared/index.mjs +3 -0
  40. package/esm2022/services/shared/service-command.service.mjs +118 -0
  41. package/esm2022/services/shared/services.model.mjs +23 -0
  42. package/fesm2022/c8y-ngx-components-alarms.mjs +3 -3
  43. package/fesm2022/c8y-ngx-components-alarms.mjs.map +1 -1
  44. package/fesm2022/c8y-ngx-components-context-dashboard.mjs +12 -9
  45. package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
  46. package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs +1 -1
  47. package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs.map +1 -1
  48. package/fesm2022/c8y-ngx-components-device-list.mjs +2 -2
  49. package/fesm2022/c8y-ngx-components-device-list.mjs.map +1 -1
  50. package/fesm2022/c8y-ngx-components-operations-bulk-operation-list-item.mjs +3 -2
  51. package/fesm2022/c8y-ngx-components-operations-bulk-operation-list-item.mjs.map +1 -1
  52. package/fesm2022/c8y-ngx-components-operations-operation-details.mjs +5 -5
  53. package/fesm2022/c8y-ngx-components-operations-operation-details.mjs.map +1 -1
  54. package/fesm2022/c8y-ngx-components-operations-operations-list.mjs +57 -52
  55. package/fesm2022/c8y-ngx-components-operations-operations-list.mjs.map +1 -1
  56. package/fesm2022/c8y-ngx-components-operations-shared.mjs +3 -2
  57. package/fesm2022/c8y-ngx-components-operations-shared.mjs.map +1 -1
  58. package/fesm2022/c8y-ngx-components-operations.mjs +42 -35
  59. package/fesm2022/c8y-ngx-components-operations.mjs.map +1 -1
  60. package/fesm2022/c8y-ngx-components-services-service-command-tab.mjs +49 -0
  61. package/fesm2022/c8y-ngx-components-services-service-command-tab.mjs.map +1 -0
  62. package/fesm2022/c8y-ngx-components-services-shared.mjs +145 -0
  63. package/fesm2022/c8y-ngx-components-services-shared.mjs.map +1 -0
  64. package/fesm2022/c8y-ngx-components-services.mjs +20 -113
  65. package/fesm2022/c8y-ngx-components-services.mjs.map +1 -1
  66. package/fesm2022/c8y-ngx-components.mjs +21 -3
  67. package/fesm2022/c8y-ngx-components.mjs.map +1 -1
  68. package/locales/de.po +12 -14
  69. package/locales/es.po +12 -14
  70. package/locales/fr.po +11 -13
  71. package/locales/ja_JP.po +13 -17
  72. package/locales/ko.po +13 -10
  73. package/locales/locales.pot +19 -6
  74. package/locales/nl.po +12 -14
  75. package/locales/pl.po +12 -14
  76. package/locales/pt_BR.po +11 -13
  77. package/locales/zh_CN.po +12 -9
  78. package/locales/zh_TW.po +12 -9
  79. package/operations/bulk-operation-list-item/bulk-operation-list-item.service.d.ts +2 -2
  80. package/operations/bulk-operation-list-item/bulk-operation-list-item.service.d.ts.map +1 -1
  81. package/operations/operation-details/operation-details.module.d.ts +1 -1
  82. package/operations/operations-list/device-control.feature.d.ts +4 -0
  83. package/operations/operations-list/device-control.feature.d.ts.map +1 -0
  84. package/operations/operations-list/index.d.ts +3 -2
  85. package/operations/operations-list/index.d.ts.map +1 -1
  86. package/operations/operations-list/operations-list-item.component.d.ts +1 -1
  87. package/operations/operations-list/operations-list-item.component.d.ts.map +1 -1
  88. package/operations/operations-list/operations-list.component.d.ts +3 -1
  89. package/operations/operations-list/operations-list.component.d.ts.map +1 -1
  90. package/operations/operations-list/operations-list.module.d.ts +3 -9
  91. package/operations/operations-list/operations-list.module.d.ts.map +1 -1
  92. package/operations/operations.module.d.ts +1 -2
  93. package/operations/operations.module.d.ts.map +1 -1
  94. package/package.json +1 -1
  95. package/services/index.d.ts +13 -2
  96. package/services/index.d.ts.map +1 -1
  97. package/services/service-command-tab/c8y-ngx-components-services-service-command-tab.d.ts.map +1 -0
  98. package/services/service-command-tab/index.d.ts +3 -0
  99. package/services/service-command-tab/index.d.ts.map +1 -0
  100. package/services/service-command-tab/service-command-tab.component.d.ts +12 -0
  101. package/services/service-command-tab/service-command-tab.component.d.ts.map +1 -0
  102. package/services/service-command-tab/service-command.feature.d.ts +3 -0
  103. package/services/service-command-tab/service-command.feature.d.ts.map +1 -0
  104. package/services/services-device-tab/index.d.ts +8 -2
  105. package/services/services-device-tab/index.d.ts.map +1 -1
  106. package/services/services-device-tab/services-device-tab.component.d.ts +2 -2
  107. package/services/services-device-tab/services-device-tab.component.d.ts.map +1 -1
  108. package/services/services-device-tab/services.breadcrumb-factory.d.ts.map +1 -1
  109. package/services/services.module.d.ts.map +1 -1
  110. package/services/shared/c8y-ngx-components-services-shared.d.ts.map +1 -0
  111. package/services/shared/index.d.ts +3 -0
  112. package/services/shared/index.d.ts.map +1 -0
  113. package/services/{services-device-tab → shared}/service-command.service.d.ts +10 -7
  114. package/services/shared/service-command.service.d.ts.map +1 -0
  115. package/services/shared/services.model.d.ts +31 -0
  116. package/services/shared/services.model.d.ts.map +1 -0
  117. package/esm2022/services/services-device-tab/service-command.service.mjs +0 -113
  118. package/esm2022/services/services-device-tab/service-device-tab.model.mjs +0 -2
  119. package/services/services-device-tab/service-command.service.d.ts.map +0 -1
  120. package/services/services-device-tab/service-device-tab.model.d.ts +0 -11
  121. package/services/services-device-tab/service-device-tab.model.d.ts.map +0 -1
package/LICENSE CHANGED
@@ -187,7 +187,7 @@
187
187
  same "printed page" as the copyright notice for easier
188
188
  identification within third-party archives.
189
189
 
190
- Copyright 2019 Software AG
190
+ Copyright (c) 2013-present Cumulocity GmbH, Duesseldorf, Germany and/or its affiliates and/or their licensors. Use, reproduction, transfer, publication or disclosure is prohibited except as specifically provided for in your License Agreement with Cumulocity GmbH
191
191
 
192
192
  Licensed under the Apache License, Version 2.0 (the "License");
193
193
  you may not use this file except in compliance with the License.
@@ -2,9 +2,9 @@ import { OnDestroy, OnInit } from '@angular/core';
2
2
  import { ActivatedRoute, Router } from '@angular/router';
3
3
  import { IAlarm, IResultList } from '@c8y/client';
4
4
  import { AlarmWithChildrenRealtimeService, AlertService, ContextRouteService, ModalService } from '@c8y/ngx-components';
5
+ import { AlarmDetails } from '@c8y/ngx-components/alarm-event-selector';
5
6
  import { TranslateService } from '@ngx-translate/core';
6
7
  import { BehaviorSubject } from 'rxjs';
7
- import { AlarmDetails } from '@c8y/ngx-components/alarm-event-selector';
8
8
  import { AlarmsIntervalRefreshComponent } from './alarms-interval-refresh.component';
9
9
  import { AlarmsViewService } from './alarms-view.service';
10
10
  import { AlarmListFormFilters } from './alarms.model';
@@ -1 +1 @@
1
- {"version":3,"file":"alarms.component.d.ts","sourceRoot":"","sources":["../../alarms/alarms.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"alarms.component.d.ts","sourceRoot":"","sources":["../../alarms/alarms.component.ts"],"names":[],"mappings":"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"}
@@ -33,7 +33,7 @@ export declare class ContextDashboardComponent implements OnInit, OnDestroy, Can
33
33
  context: any;
34
34
  setTitle: boolean;
35
35
  defaultWidgets: Widget[];
36
- canCopy: boolean;
36
+ _canCopy: boolean;
37
37
  canDelete: boolean;
38
38
  isLoading: boolean;
39
39
  breadcrumbSettings: BreadcrumbItem;
@@ -54,6 +54,7 @@ export declare class ContextDashboardComponent implements OnInit, OnDestroy, Can
54
54
  title: string;
55
55
  isCopyDisabled: DashboardCopyPermission;
56
56
  isReport: boolean;
57
+ canCopy: boolean;
57
58
  readonly dashboardTypeLabel: "Dashboard for \"{{ dashboardType }}\"";
58
59
  readonly dashboardTypePopover: "\n The layout and configuration of this dashboard is used by all other assets of model type\n <strong>{{ dashboardType }}</strong>. Any changes made to this dashboard instance will be applied to all\n other instances.";
59
60
  private dataSub;
@@ -163,6 +164,6 @@ export declare class ContextDashboardComponent implements OnInit, OnDestroy, Can
163
164
  private extractDefaultDashboardName;
164
165
  private convertStringToHash;
165
166
  static ɵfac: i0.ɵɵFactoryDeclaration<ContextDashboardComponent, never>;
166
- static ɵcmp: i0.ɵɵComponentDeclaration<ContextDashboardComponent, "c8y-context-dashboard", never, { "name": { "alias": "name"; "required": false; }; "childrenClasses": { "alias": "childrenClasses"; "required": false; }; "context": { "alias": "context"; "required": false; }; "setTitle": { "alias": "setTitle"; "required": false; }; "defaultWidgets": { "alias": "defaultWidgets"; "required": false; }; "canCopy": { "alias": "canCopy"; "required": false; }; "canDelete": { "alias": "canDelete"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; }; "breadcrumbSettings": { "alias": "breadcrumbSettings"; "required": false; }; "showContextHelpButton": { "alias": "showContextHelpButton"; "required": false; }; "translateWidgetTitle": { "alias": "translateWidgetTitle"; "required": false; }; "hideAvailability": { "alias": "hideAvailability"; "required": false; }; }, {}, never, never, false, never>;
167
+ static ɵcmp: i0.ɵɵComponentDeclaration<ContextDashboardComponent, "c8y-context-dashboard", never, { "name": { "alias": "name"; "required": false; }; "childrenClasses": { "alias": "childrenClasses"; "required": false; }; "context": { "alias": "context"; "required": false; }; "setTitle": { "alias": "setTitle"; "required": false; }; "defaultWidgets": { "alias": "defaultWidgets"; "required": false; }; "_canCopy": { "alias": "canCopy"; "required": false; }; "canDelete": { "alias": "canDelete"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; }; "breadcrumbSettings": { "alias": "breadcrumbSettings"; "required": false; }; "showContextHelpButton": { "alias": "showContextHelpButton"; "required": false; }; "translateWidgetTitle": { "alias": "translateWidgetTitle"; "required": false; }; "hideAvailability": { "alias": "hideAvailability"; "required": false; }; }, {}, never, never, false, never>;
167
168
  }
168
169
  //# sourceMappingURL=context-dashboard.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context-dashboard.component.d.ts","sourceRoot":"","sources":["../../context-dashboard/context-dashboard.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-dashboard.component.d.ts","sourceRoot":"","sources":["../../context-dashboard/context-dashboard.component.ts"],"names":[],"mappings":"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"}
@@ -732,6 +732,12 @@ export declare const MESSAGES_CORE_I18N: {
732
732
  readonly id: "$1";
733
733
  };
734
734
  };
735
+ readonly '^RESTART (.+?)$': {
736
+ readonly gettext: "RESTART`verb, action` {{service}}";
737
+ readonly placeholders: {
738
+ readonly service: "$1";
739
+ };
740
+ };
735
741
  readonly '^Retrieve configuration snapshot from device (.+?)$': {
736
742
  readonly gettext: "Retrieve configuration snapshot from device {{deviceName}}";
737
743
  readonly placeholders: {
@@ -847,9 +853,21 @@ export declare const MESSAGES_CORE_I18N: {
847
853
  readonly name: "$1";
848
854
  };
849
855
  };
856
+ readonly '^START (.+?)$': {
857
+ readonly gettext: "START`verb, action` {{service}}";
858
+ readonly placeholders: {
859
+ readonly service: "$1";
860
+ };
861
+ };
850
862
  readonly '^Started container$': {
851
863
  readonly gettext: "Container started.";
852
864
  };
865
+ readonly '^STOP (.+?)$': {
866
+ readonly gettext: "STOP`verb, action` {{service}}";
867
+ readonly placeholders: {
868
+ readonly service: "$1";
869
+ };
870
+ };
853
871
  readonly '^Successfully assigned (.+) to (.+)$': {
854
872
  readonly gettext: "\"{{imageName}}\" assigned to \"{{address}}\".";
855
873
  readonly placeholders: {
@@ -1 +1 @@
1
- {"version":3,"file":"pattern-messages.data.d.ts","sourceRoot":"","sources":["../../../core/i18n/pattern-messages.data.ts"],"names":[],"mappings":"AAmCA,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8+DrB,CAAC"}
1
+ {"version":3,"file":"pattern-messages.data.d.ts","sourceRoot":"","sources":["../../../core/i18n/pattern-messages.data.ts"],"names":[],"mappings":"AAmCA,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAggErB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"typeahead.component.d.ts","sourceRoot":"","sources":["../../../core/select/typeahead.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAGb,UAAU,EACV,YAAY,EAIZ,SAAS,EAEV,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,eAAe,EACf,oBAAoB,EAGpB,SAAS,EACV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAG7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;;AAElE,qBAiBa,kBAAmB,YAAW,oBAAoB,EAAE,SAAS,EAAE,aAAa;IA0D3E,OAAO,CAAC,qBAAqB;IAzDM,aAAa,EAAE,UAAU,CAAC;IACrB,kBAAkB,MAAC;IAC7B,QAAQ,EAAE,mBAAmB,CAAC;IACpC,IAAI,EAAE,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAGvE,QAAQ,UAAS;IAGjB,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAG3B,QAAQ,UAAS;IAGjB,gBAAgB,UAAQ;IAGxB,WAAW,EAAE,MAAM,CAAC;IAGpB,eAAe,SAAU;IAGzB,IAAI,SAAgB;IAGpB,IAAI,EAAE,MAAM,CAAwB;IAGpC,SAAS,UAAQ;IAGjB,OAAO,UAAS;IAGhB,SAAS,EAAE,EAAE,GAAG,MAAM,CAAM;IAG5B,QAAQ,EAAE,WAAW,CAEnB;IAGF,kBAAkB,UAAS;IAG3B,QAAQ,uBAA8B;IAGtC,WAAW;cAA4B,MAAM;gBAAU,UAAU;OAAM;IAEvE,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,SAAS,CAAa;IAE9B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgC;gBAEvC,qBAAqB,EAAE,qBAAqB;IAEhE,UAAU,CAAC,KAAK,KAAA;IAgBhB,gBAAgB,CAAC,EAAE,EAAE,GAAG,GAAG,IAAI;IAI/B,iBAAiB,CAAC,EAAE,EAAE,GAAG,GAAG,IAAI;IAIhC,gBAAgB,CAAC,UAAU,EAAE,OAAO;IAIpC,MAAM;IAMN,kBAAkB;IAIlB,OAAO;IAIP;;OAEG;IACH,KAAK;IAIL,WAAW,IAAI,IAAI;IAKnB,eAAe,IAAI,IAAI;IAuCvB,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE;yCAzJ7C,kBAAkB;2CAAlB,kBAAkB;CAyK9B"}
1
+ {"version":3,"file":"typeahead.component.d.ts","sourceRoot":"","sources":["../../../core/select/typeahead.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAGb,UAAU,EACV,YAAY,EAIZ,SAAS,EAEV,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,eAAe,EACf,oBAAoB,EAGpB,SAAS,EACV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAG7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;;AAElE,qBAiBa,kBAAmB,YAAW,oBAAoB,EAAE,SAAS,EAAE,aAAa;IA0D3E,OAAO,CAAC,qBAAqB;IAzDM,aAAa,EAAE,UAAU,CAAC;IACrB,kBAAkB,MAAC;IAC7B,QAAQ,EAAE,mBAAmB,CAAC;IACpC,IAAI,EAAE,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAGvE,QAAQ,UAAS;IAGjB,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAG3B,QAAQ,UAAS;IAGjB,gBAAgB,UAAQ;IAGxB,WAAW,EAAE,MAAM,CAAC;IAGpB,eAAe,SAAU;IAGzB,IAAI,SAAgB;IAGpB,IAAI,EAAE,MAAM,CAAwB;IAGpC,SAAS,UAAQ;IAGjB,OAAO,UAAS;IAGhB,SAAS,EAAE,EAAE,GAAG,MAAM,CAAM;IAG5B,QAAQ,EAAE,WAAW,CAEnB;IAGF,kBAAkB,UAAQ;IAG1B,QAAQ,uBAA8B;IAGtC,WAAW;cAA4B,MAAM;gBAAU,UAAU;OAAM;IAEvE,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,SAAS,CAAa;IAE9B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgC;gBAEvC,qBAAqB,EAAE,qBAAqB;IAEhE,UAAU,CAAC,KAAK,KAAA;IAgBhB,gBAAgB,CAAC,EAAE,EAAE,GAAG,GAAG,IAAI;IAI/B,iBAAiB,CAAC,EAAE,EAAE,GAAG,GAAG,IAAI;IAIhC,gBAAgB,CAAC,UAAU,EAAE,OAAO;IAIpC,MAAM;IAMN,kBAAkB;IAIlB,OAAO;IAIP;;OAEG;IACH,KAAK;IAIL,WAAW,IAAI,IAAI;IAKnB,eAAe,IAAI,IAAI;IAuCvB,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE;yCAzJ7C,kBAAkB;2CAAlB,kBAAkB;CAyK9B"}
@@ -144,11 +144,11 @@ export class AlarmsTypeFilterComponent {
144
144
  return activeFilters.map(filter => filter.filters.type).join(',');
145
145
  }
146
146
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AlarmsTypeFilterComponent, deps: [{ token: i1.AlarmEventSelectorService }, { token: i2.ActivatedRoute }, { token: i2.Router }, { token: i3.ColorService }], target: i0.ɵɵFactoryTarget.Component }); }
147
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: AlarmsTypeFilterComponent, selector: "c8y-alarms-type-filter", inputs: { alarms: "alarms", possibleFilters: "possibleFilters", activeFilters: "activeFilters" }, outputs: { onFilterChanged: "onFilterChanged" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"d-flex a-i-center\">\n <div\n class=\"dropdown\"\n title=\"{{ 'Filter by Alarm types' | translate }}\"\n dropdown\n #filtersDropdown=\"bs-dropdown\"\n [cdkTrapFocus]=\"filtersDropdown.isOpen\"\n (onHidden)=\"resetFilters()\"\n [insideClick]=\"true\"\n >\n <div class=\"input-group fit-w\">\n <div class=\"form-control d-flex a-i-center inner-scroll\">\n <ng-container *ngIf=\"activeFilters.length > 0; else allTypes\">\n <span\n class=\"tag tag--info chip\"\n *ngFor=\"let filter of activeFilters\"\n >\n <button\n class=\"btn btn-xs btn-clean text-10\"\n title=\"{{ 'Remove' | translate }}\"\n type=\"button\"\n (click)=\"$event.stopPropagation(); deselect(filter)\"\n >\n <i c8yIcon=\"times\"></i>\n </button>\n <span\n class=\"circle-icon-wrapper circle-icon-wrapper--small\"\n [ngStyle]=\"{ 'background-color': filter.color }\"\n >\n <i\n class=\"stroked-icon\"\n c8yIcon=\"bell\"\n ></i>\n </span>\n {{ filter.filters.type }}\n </span>\n </ng-container>\n <ng-template #allTypes>\n <span class=\"text-nowrap\">\n {{ 'All alarm types' | translate }}\n </span>\n </ng-template>\n </div>\n <div class=\"input-group-btn input-group-btn--last text-center\">\n <button\n class=\"btn-default btn\"\n [title]=\"'Clear filters' | translate\"\n *ngIf=\"activeFilters.length\"\n (click)=\"deselectAll()\"\n >\n <i c8yIcon=\"times\"></i>\n </button>\n <button\n class=\"btn-default btn btn--caret\"\n [title]=\"'Alarm types' | translate\"\n data-cy=\"c8y-alarm-type-filter\"\n dropdownToggle\n >\n <i class=\"caret\"></i>\n </button>\n </div>\n </div>\n <div\n class=\"dropdown-menu dropdown-menu-action-bar\"\n style=\"max-width: unset; min-width: 250px\"\n *dropdownMenu\n >\n <div class=\"p-16 bg-level-2\">\n <div>\n <p>\n <i\n class=\"text-info m-r-4\"\n [c8yIcon]=\"'info-circle'\"\n ></i>\n <strong tanslate>The list below may not be complete.</strong>\n </p>\n <p tanslate>\n Recent alarms are displayed below. Past alarms might not be shown. Optionally you can\n add a custom alarm.\n </p>\n </div>\n </div>\n <c8y-list-group>\n <div class=\"input-group p-t-16 p-b-16 p-r-32 p-l-32 separator-bottom\">\n <input\n class=\"form-control\"\n placeholder=\"'Custom alarm type' | translate\"\n type=\"text\"\n [(ngModel)]=\"customAlarmTypeInput\"\n (keydown)=\"confirmWithEnter($event)\"\n />\n <div class=\"input-group-btn\">\n <button\n class=\"btn-dot text-primary\"\n [attr.aria-label]=\"'Add custom alarm' | translate\"\n tooltip=\"'Add' | translate\"\n placement=\"top\"\n [delay]=\"500\"\n (click)=\"addCustomAlarmType()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n </button>\n </div>\n </div>\n\n <c8y-li\n class=\"c8y-list__item__collapse--container-small cdk-drag\"\n style=\"cursor: pointer\"\n *ngFor=\"let alarmType of possibleFilters\"\n (click)=\"toggleAlarmType(alarmType)\"\n >\n <c8y-li-checkbox\n class=\"a-s-center m-t-4 p-r-0 p-l-0\"\n [selected]=\"alarmType.__active\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"toggleAlarmType(alarmType); $event.stopPropagation()\"\n ></c8y-li-checkbox>\n <div class=\"d-flex a-i-center p-l-4\">\n <div class=\"c8y-list__item__colorpicker p-t-0 p-b-0 p-l-0\">\n <div class=\"c8y-colorpicker c8y-colorpicker--alarm\">\n <span\n class=\"circle-icon-wrapper\"\n [ngStyle]=\"{ 'background-color': alarmType.color }\"\n >\n <i\n class=\"stroked-icon\"\n [c8yIcon]=\"'bell'\"\n ></i>\n </span>\n </div>\n </div>\n <span class=\"text-truncate text-12 flex-grow\">\n {{ alarmType.label }}\n </span>\n <button\n class=\"btn-dot btn-dot--danger\"\n [attr.aria-label]=\"'Remove' | translate\"\n tooltip=\"'Remove' | translate\"\n placement=\"top\"\n *ngIf=\"alarmType.__target === null\"\n [delay]=\"500\"\n (click)=\"removeCustomAlarm(alarmType); $event.stopPropagation()\"\n >\n <i c8yIcon=\"minus-circle\"></i>\n </button>\n </div>\n </c8y-li>\n <c8y-li *ngIf=\"possibleFilters.length === 0\">\n <c8y-ui-empty-state\n class=\"p-t-8\"\n icon=\"c8y-alarm\"\n [title]=\"'No alarm found' | translate\"\n [subtitle]=\"\n 'There is no alarm to filter. You can still add a custom alarm.' | translate\n \"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n </c8y-li>\n <div class=\"sticky-bottom p-16\">\n <button\n class=\"btn btn-block btn-primary\"\n [disabled]=\"possibleFilters.length === 0\"\n (click)=\"applyFilterChange(); $event.stopPropagation(); filtersDropdown.hide()\"\n translate\n >\n Apply\n </button>\n </div>\n </c8y-list-group>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i4.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: i5.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i5.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i5.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "component", type: i3.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i3.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: i3.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: i3.ListItemCheckboxComponent, selector: "c8y-list-item-checkbox, c8y-li-checkbox", inputs: ["selected", "indeterminate", "disabled", "displayAsSwitch"], outputs: ["onSelect"] }, { kind: "directive", type: i8.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "directive", type: i9.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }] }); }
147
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: AlarmsTypeFilterComponent, selector: "c8y-alarms-type-filter", inputs: { alarms: "alarms", possibleFilters: "possibleFilters", activeFilters: "activeFilters" }, outputs: { onFilterChanged: "onFilterChanged" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"d-flex a-i-center\">\n <div\n class=\"dropdown\"\n title=\"{{ 'Filter by alarm types' | translate }}\"\n dropdown\n #filtersDropdown=\"bs-dropdown\"\n [cdkTrapFocus]=\"filtersDropdown.isOpen\"\n (onHidden)=\"resetFilters()\"\n [insideClick]=\"true\"\n >\n <div class=\"input-group fit-w\">\n <div class=\"form-control d-flex a-i-center inner-scroll\">\n <ng-container *ngIf=\"activeFilters.length > 0; else allTypes\">\n <span\n class=\"tag tag--info chip\"\n *ngFor=\"let filter of activeFilters\"\n >\n <button\n class=\"btn btn-xs btn-clean text-10\"\n title=\"{{ 'Remove' | translate }}\"\n type=\"button\"\n (click)=\"$event.stopPropagation(); deselect(filter)\"\n >\n <i c8yIcon=\"times\"></i>\n </button>\n <span\n class=\"circle-icon-wrapper circle-icon-wrapper--small\"\n [ngStyle]=\"{ 'background-color': filter.color }\"\n >\n <i\n class=\"stroked-icon\"\n c8yIcon=\"bell\"\n ></i>\n </span>\n {{ filter.filters.type }}\n </span>\n </ng-container>\n <ng-template #allTypes>\n <span class=\"text-nowrap\">\n {{ 'All alarm types' | translate }}\n </span>\n </ng-template>\n </div>\n <div class=\"input-group-btn input-group-btn--last text-center\">\n <button\n class=\"btn-default btn\"\n [title]=\"'Clear filters' | translate\"\n *ngIf=\"activeFilters.length\"\n (click)=\"deselectAll()\"\n >\n <i c8yIcon=\"times\"></i>\n </button>\n <button\n class=\"btn-default btn btn--caret\"\n [title]=\"'Alarm types' | translate\"\n data-cy=\"c8y-alarm-type-filter\"\n dropdownToggle\n >\n <i class=\"caret\"></i>\n </button>\n </div>\n </div>\n <div\n class=\"dropdown-menu dropdown-menu-action-bar\"\n style=\"max-width: unset; min-width: 250px\"\n *dropdownMenu\n >\n <div class=\"p-16 bg-level-2\">\n <div>\n <p>\n <i\n class=\"text-info m-r-4\"\n [c8yIcon]=\"'info-circle'\"\n ></i>\n <strong tanslate>The list below may not be complete.</strong>\n </p>\n <p tanslate>\n Recent alarms are displayed below. Past alarms might not be shown. Optionally you can\n add a custom alarm.\n </p>\n </div>\n </div>\n <c8y-list-group>\n <div class=\"input-group p-t-16 p-b-16 p-r-32 p-l-32 separator-bottom\">\n <input\n class=\"form-control\"\n placeholder=\"'Custom alarm type' | translate\"\n type=\"text\"\n [(ngModel)]=\"customAlarmTypeInput\"\n (keydown)=\"confirmWithEnter($event)\"\n />\n <div class=\"input-group-btn\">\n <button\n class=\"btn-dot text-primary\"\n [attr.aria-label]=\"'Add custom alarm' | translate\"\n tooltip=\"'Add' | translate\"\n placement=\"top\"\n [delay]=\"500\"\n (click)=\"addCustomAlarmType()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n </button>\n </div>\n </div>\n\n <c8y-li\n class=\"c8y-list__item__collapse--container-small cdk-drag\"\n style=\"cursor: pointer\"\n *ngFor=\"let alarmType of possibleFilters\"\n (click)=\"toggleAlarmType(alarmType)\"\n >\n <c8y-li-checkbox\n class=\"a-s-center m-t-4 p-r-0 p-l-0\"\n [selected]=\"alarmType.__active\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"toggleAlarmType(alarmType); $event.stopPropagation()\"\n ></c8y-li-checkbox>\n <div class=\"d-flex a-i-center p-l-4\">\n <div class=\"c8y-list__item__colorpicker p-t-0 p-b-0 p-l-0\">\n <div class=\"c8y-colorpicker c8y-colorpicker--alarm\">\n <span\n class=\"circle-icon-wrapper\"\n [ngStyle]=\"{ 'background-color': alarmType.color }\"\n >\n <i\n class=\"stroked-icon\"\n [c8yIcon]=\"'bell'\"\n ></i>\n </span>\n </div>\n </div>\n <span class=\"text-truncate text-12 flex-grow\">\n {{ alarmType.label }}\n </span>\n <button\n class=\"btn-dot btn-dot--danger\"\n [attr.aria-label]=\"'Remove' | translate\"\n tooltip=\"'Remove' | translate\"\n placement=\"top\"\n *ngIf=\"alarmType.__target === null\"\n [delay]=\"500\"\n (click)=\"removeCustomAlarm(alarmType); $event.stopPropagation()\"\n >\n <i c8yIcon=\"minus-circle\"></i>\n </button>\n </div>\n </c8y-li>\n <c8y-li *ngIf=\"possibleFilters.length === 0\">\n <c8y-ui-empty-state\n class=\"p-t-8\"\n icon=\"c8y-alarm\"\n [title]=\"'No alarm found' | translate\"\n [subtitle]=\"\n 'There is no alarm to filter. You can still add a custom alarm.' | translate\n \"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n </c8y-li>\n <div class=\"sticky-bottom p-16\">\n <button\n class=\"btn btn-block btn-primary\"\n [disabled]=\"possibleFilters.length === 0\"\n (click)=\"applyFilterChange(); $event.stopPropagation(); filtersDropdown.hide()\"\n translate\n >\n Apply\n </button>\n </div>\n </c8y-list-group>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i4.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: i5.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i5.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i5.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "component", type: i3.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i3.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: i3.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: i3.ListItemCheckboxComponent, selector: "c8y-list-item-checkbox, c8y-li-checkbox", inputs: ["selected", "indeterminate", "disabled", "displayAsSwitch"], outputs: ["onSelect"] }, { kind: "directive", type: i8.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "directive", type: i9.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }] }); }
148
148
  }
149
149
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AlarmsTypeFilterComponent, decorators: [{
150
150
  type: Component,
151
- args: [{ selector: 'c8y-alarms-type-filter', template: "<div class=\"d-flex a-i-center\">\n <div\n class=\"dropdown\"\n title=\"{{ 'Filter by Alarm types' | translate }}\"\n dropdown\n #filtersDropdown=\"bs-dropdown\"\n [cdkTrapFocus]=\"filtersDropdown.isOpen\"\n (onHidden)=\"resetFilters()\"\n [insideClick]=\"true\"\n >\n <div class=\"input-group fit-w\">\n <div class=\"form-control d-flex a-i-center inner-scroll\">\n <ng-container *ngIf=\"activeFilters.length > 0; else allTypes\">\n <span\n class=\"tag tag--info chip\"\n *ngFor=\"let filter of activeFilters\"\n >\n <button\n class=\"btn btn-xs btn-clean text-10\"\n title=\"{{ 'Remove' | translate }}\"\n type=\"button\"\n (click)=\"$event.stopPropagation(); deselect(filter)\"\n >\n <i c8yIcon=\"times\"></i>\n </button>\n <span\n class=\"circle-icon-wrapper circle-icon-wrapper--small\"\n [ngStyle]=\"{ 'background-color': filter.color }\"\n >\n <i\n class=\"stroked-icon\"\n c8yIcon=\"bell\"\n ></i>\n </span>\n {{ filter.filters.type }}\n </span>\n </ng-container>\n <ng-template #allTypes>\n <span class=\"text-nowrap\">\n {{ 'All alarm types' | translate }}\n </span>\n </ng-template>\n </div>\n <div class=\"input-group-btn input-group-btn--last text-center\">\n <button\n class=\"btn-default btn\"\n [title]=\"'Clear filters' | translate\"\n *ngIf=\"activeFilters.length\"\n (click)=\"deselectAll()\"\n >\n <i c8yIcon=\"times\"></i>\n </button>\n <button\n class=\"btn-default btn btn--caret\"\n [title]=\"'Alarm types' | translate\"\n data-cy=\"c8y-alarm-type-filter\"\n dropdownToggle\n >\n <i class=\"caret\"></i>\n </button>\n </div>\n </div>\n <div\n class=\"dropdown-menu dropdown-menu-action-bar\"\n style=\"max-width: unset; min-width: 250px\"\n *dropdownMenu\n >\n <div class=\"p-16 bg-level-2\">\n <div>\n <p>\n <i\n class=\"text-info m-r-4\"\n [c8yIcon]=\"'info-circle'\"\n ></i>\n <strong tanslate>The list below may not be complete.</strong>\n </p>\n <p tanslate>\n Recent alarms are displayed below. Past alarms might not be shown. Optionally you can\n add a custom alarm.\n </p>\n </div>\n </div>\n <c8y-list-group>\n <div class=\"input-group p-t-16 p-b-16 p-r-32 p-l-32 separator-bottom\">\n <input\n class=\"form-control\"\n placeholder=\"'Custom alarm type' | translate\"\n type=\"text\"\n [(ngModel)]=\"customAlarmTypeInput\"\n (keydown)=\"confirmWithEnter($event)\"\n />\n <div class=\"input-group-btn\">\n <button\n class=\"btn-dot text-primary\"\n [attr.aria-label]=\"'Add custom alarm' | translate\"\n tooltip=\"'Add' | translate\"\n placement=\"top\"\n [delay]=\"500\"\n (click)=\"addCustomAlarmType()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n </button>\n </div>\n </div>\n\n <c8y-li\n class=\"c8y-list__item__collapse--container-small cdk-drag\"\n style=\"cursor: pointer\"\n *ngFor=\"let alarmType of possibleFilters\"\n (click)=\"toggleAlarmType(alarmType)\"\n >\n <c8y-li-checkbox\n class=\"a-s-center m-t-4 p-r-0 p-l-0\"\n [selected]=\"alarmType.__active\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"toggleAlarmType(alarmType); $event.stopPropagation()\"\n ></c8y-li-checkbox>\n <div class=\"d-flex a-i-center p-l-4\">\n <div class=\"c8y-list__item__colorpicker p-t-0 p-b-0 p-l-0\">\n <div class=\"c8y-colorpicker c8y-colorpicker--alarm\">\n <span\n class=\"circle-icon-wrapper\"\n [ngStyle]=\"{ 'background-color': alarmType.color }\"\n >\n <i\n class=\"stroked-icon\"\n [c8yIcon]=\"'bell'\"\n ></i>\n </span>\n </div>\n </div>\n <span class=\"text-truncate text-12 flex-grow\">\n {{ alarmType.label }}\n </span>\n <button\n class=\"btn-dot btn-dot--danger\"\n [attr.aria-label]=\"'Remove' | translate\"\n tooltip=\"'Remove' | translate\"\n placement=\"top\"\n *ngIf=\"alarmType.__target === null\"\n [delay]=\"500\"\n (click)=\"removeCustomAlarm(alarmType); $event.stopPropagation()\"\n >\n <i c8yIcon=\"minus-circle\"></i>\n </button>\n </div>\n </c8y-li>\n <c8y-li *ngIf=\"possibleFilters.length === 0\">\n <c8y-ui-empty-state\n class=\"p-t-8\"\n icon=\"c8y-alarm\"\n [title]=\"'No alarm found' | translate\"\n [subtitle]=\"\n 'There is no alarm to filter. You can still add a custom alarm.' | translate\n \"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n </c8y-li>\n <div class=\"sticky-bottom p-16\">\n <button\n class=\"btn btn-block btn-primary\"\n [disabled]=\"possibleFilters.length === 0\"\n (click)=\"applyFilterChange(); $event.stopPropagation(); filtersDropdown.hide()\"\n translate\n >\n Apply\n </button>\n </div>\n </c8y-list-group>\n </div>\n </div>\n</div>\n" }]
151
+ args: [{ selector: 'c8y-alarms-type-filter', template: "<div class=\"d-flex a-i-center\">\n <div\n class=\"dropdown\"\n title=\"{{ 'Filter by alarm types' | translate }}\"\n dropdown\n #filtersDropdown=\"bs-dropdown\"\n [cdkTrapFocus]=\"filtersDropdown.isOpen\"\n (onHidden)=\"resetFilters()\"\n [insideClick]=\"true\"\n >\n <div class=\"input-group fit-w\">\n <div class=\"form-control d-flex a-i-center inner-scroll\">\n <ng-container *ngIf=\"activeFilters.length > 0; else allTypes\">\n <span\n class=\"tag tag--info chip\"\n *ngFor=\"let filter of activeFilters\"\n >\n <button\n class=\"btn btn-xs btn-clean text-10\"\n title=\"{{ 'Remove' | translate }}\"\n type=\"button\"\n (click)=\"$event.stopPropagation(); deselect(filter)\"\n >\n <i c8yIcon=\"times\"></i>\n </button>\n <span\n class=\"circle-icon-wrapper circle-icon-wrapper--small\"\n [ngStyle]=\"{ 'background-color': filter.color }\"\n >\n <i\n class=\"stroked-icon\"\n c8yIcon=\"bell\"\n ></i>\n </span>\n {{ filter.filters.type }}\n </span>\n </ng-container>\n <ng-template #allTypes>\n <span class=\"text-nowrap\">\n {{ 'All alarm types' | translate }}\n </span>\n </ng-template>\n </div>\n <div class=\"input-group-btn input-group-btn--last text-center\">\n <button\n class=\"btn-default btn\"\n [title]=\"'Clear filters' | translate\"\n *ngIf=\"activeFilters.length\"\n (click)=\"deselectAll()\"\n >\n <i c8yIcon=\"times\"></i>\n </button>\n <button\n class=\"btn-default btn btn--caret\"\n [title]=\"'Alarm types' | translate\"\n data-cy=\"c8y-alarm-type-filter\"\n dropdownToggle\n >\n <i class=\"caret\"></i>\n </button>\n </div>\n </div>\n <div\n class=\"dropdown-menu dropdown-menu-action-bar\"\n style=\"max-width: unset; min-width: 250px\"\n *dropdownMenu\n >\n <div class=\"p-16 bg-level-2\">\n <div>\n <p>\n <i\n class=\"text-info m-r-4\"\n [c8yIcon]=\"'info-circle'\"\n ></i>\n <strong tanslate>The list below may not be complete.</strong>\n </p>\n <p tanslate>\n Recent alarms are displayed below. Past alarms might not be shown. Optionally you can\n add a custom alarm.\n </p>\n </div>\n </div>\n <c8y-list-group>\n <div class=\"input-group p-t-16 p-b-16 p-r-32 p-l-32 separator-bottom\">\n <input\n class=\"form-control\"\n placeholder=\"'Custom alarm type' | translate\"\n type=\"text\"\n [(ngModel)]=\"customAlarmTypeInput\"\n (keydown)=\"confirmWithEnter($event)\"\n />\n <div class=\"input-group-btn\">\n <button\n class=\"btn-dot text-primary\"\n [attr.aria-label]=\"'Add custom alarm' | translate\"\n tooltip=\"'Add' | translate\"\n placement=\"top\"\n [delay]=\"500\"\n (click)=\"addCustomAlarmType()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n </button>\n </div>\n </div>\n\n <c8y-li\n class=\"c8y-list__item__collapse--container-small cdk-drag\"\n style=\"cursor: pointer\"\n *ngFor=\"let alarmType of possibleFilters\"\n (click)=\"toggleAlarmType(alarmType)\"\n >\n <c8y-li-checkbox\n class=\"a-s-center m-t-4 p-r-0 p-l-0\"\n [selected]=\"alarmType.__active\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"toggleAlarmType(alarmType); $event.stopPropagation()\"\n ></c8y-li-checkbox>\n <div class=\"d-flex a-i-center p-l-4\">\n <div class=\"c8y-list__item__colorpicker p-t-0 p-b-0 p-l-0\">\n <div class=\"c8y-colorpicker c8y-colorpicker--alarm\">\n <span\n class=\"circle-icon-wrapper\"\n [ngStyle]=\"{ 'background-color': alarmType.color }\"\n >\n <i\n class=\"stroked-icon\"\n [c8yIcon]=\"'bell'\"\n ></i>\n </span>\n </div>\n </div>\n <span class=\"text-truncate text-12 flex-grow\">\n {{ alarmType.label }}\n </span>\n <button\n class=\"btn-dot btn-dot--danger\"\n [attr.aria-label]=\"'Remove' | translate\"\n tooltip=\"'Remove' | translate\"\n placement=\"top\"\n *ngIf=\"alarmType.__target === null\"\n [delay]=\"500\"\n (click)=\"removeCustomAlarm(alarmType); $event.stopPropagation()\"\n >\n <i c8yIcon=\"minus-circle\"></i>\n </button>\n </div>\n </c8y-li>\n <c8y-li *ngIf=\"possibleFilters.length === 0\">\n <c8y-ui-empty-state\n class=\"p-t-8\"\n icon=\"c8y-alarm\"\n [title]=\"'No alarm found' | translate\"\n [subtitle]=\"\n 'There is no alarm to filter. You can still add a custom alarm.' | translate\n \"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n </c8y-li>\n <div class=\"sticky-bottom p-16\">\n <button\n class=\"btn btn-block btn-primary\"\n [disabled]=\"possibleFilters.length === 0\"\n (click)=\"applyFilterChange(); $event.stopPropagation(); filtersDropdown.hide()\"\n translate\n >\n Apply\n </button>\n </div>\n </c8y-list-group>\n </div>\n </div>\n</div>\n" }]
152
152
  }], ctorParameters: () => [{ type: i1.AlarmEventSelectorService }, { type: i2.ActivatedRoute }, { type: i2.Router }, { type: i3.ColorService }], propDecorators: { alarms: [{
153
153
  type: Input
154
154
  }], possibleFilters: [{
@@ -158,4 +158,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
158
158
  }], onFilterChanged: [{
159
159
  type: Output
160
160
  }] } });
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxhcm1zLXR5cGUtZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2FsYXJtcy9hbGFybXMtdHlwZS1maWx0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vYWxhcm1zL2FsYXJtcy10eXBlLWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxFQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBZ0IseUJBQXlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNuRyxPQUFPLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7O0FBTS9DLE1BQU0sT0FBTyx5QkFBeUI7SUFzQnBDLFlBQ1UseUJBQW9ELEVBQ3BELGNBQThCLEVBQzlCLE1BQWMsRUFDZCxZQUEwQjtRQUgxQiw4QkFBeUIsR0FBekIseUJBQXlCLENBQTJCO1FBQ3BELG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsaUJBQVksR0FBWixZQUFZLENBQWM7UUFyQnBDLG9CQUFlLEdBQW1CLEVBQUUsQ0FBQztRQUdyQyxrQkFBYSxHQUFtQixFQUFFLENBQUM7UUFHbkMsb0JBQWUsR0FBaUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVuRSxxQkFBZ0IsR0FBbUIsRUFBRSxDQUFDO1FBQ3RDLHlCQUFvQixHQUFHLEVBQUUsQ0FBQztRQUVqQixtQkFBYyxHQUFHLFlBQVksQ0FBQztRQUM5Qix1QkFBa0IsR0FBRyxrQkFBa0IsQ0FBQztRQUV6QyxhQUFRLEdB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LENBQUMsR0FBRyxnQ0FBZ0MsRUFBRSxHQUFHLGtDQUFrQyxDQUFDLEVBQzVFLGVBQWUsQ0FDaEIsQ0FBQztRQUNGLElBQUksQ0FBQyxlQUFlLEdBQUcsb0JBQW9CLENBQUM7SUFDOUMsQ0FBQztJQUVPLHVDQUF1QyxDQUM3QyxZQUE0QixFQUM1QixnQkFBZ0IsR0FBRyxFQUFFO1FBRXJCLE1BQU0sS0FBSyxHQUFHLENBQUMsZ0JBQWdCLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xELE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQW1CLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDaEQsR0FBRyxLQUFLO1lBQ1IsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7U0FDN0MsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRU8sY0FBYyxDQUFDLGFBQTZCO1FBQ2xELE9BQU8sYUFBYSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7OEdBakxVLHlCQUF5QjtrR0FBekIseUJBQXlCLHNPQ3BCdEMsKzZMQTRLQTs7MkZEeEphLHlCQUF5QjtrQkFKckMsU0FBUzsrQkFDRSx3QkFBd0I7MktBS2xDLE1BQU07c0JBREwsS0FBSztnQkFJTixlQUFlO3NCQURkLEtBQUs7Z0JBSU4sYUFBYTtzQkFEWixLQUFLO2dCQUlOLGVBQWU7c0JBRGQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJQWxhcm0sIElSZXN1bHRMaXN0IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgQ29sb3JTZXJ2aWNlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBBbGFybURldGFpbHMsIEFsYXJtRXZlbnRTZWxlY3RvclNlcnZpY2UgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2FsYXJtLWV2ZW50LXNlbGVjdG9yJztcbmltcG9ydCB7IG1hcCwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1hbGFybXMtdHlwZS1maWx0ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vYWxhcm1zLXR5cGUtZmlsdGVyLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBbGFybXNUeXBlRmlsdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpXG4gIGFsYXJtczogSVJlc3VsdExpc3Q8SUFsYXJtPjtcblxuICBASW5wdXQoKVxuICBwb3NzaWJsZUZpbHRlcnM6IEFsYXJtRGV0YWlsc1tdID0gW107XG5cbiAgQElucHV0KClcbiAgYWN0aXZlRmlsdGVyczogQWxhcm1EZXRhaWxzW10gPSBbXTtcblxuICBAT3V0cHV0KClcbiAgb25GaWx0ZXJDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8QWxhcm1EZXRhaWxzW10+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGN1c3RvbUFsYXJtVHlwZXM6IEFsYXJtRGV0YWlsc1tdID0gW107XG4gIGN1c3RvbUFsYXJtVHlwZUlucHV0ID0gJyc7XG5cbiAgcmVhZG9ubHkgcXVlcnlQYXJhbU5hbWUgPSAndHlwZUZpbHRlcic7XG4gIHJlYWRvbmx5IFNUT1JBR0VfQUNDRVNTX0tFWSA9ICdjdXN0b21BbGFybVR5cGVzJztcblxuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSBjdXJyZW50UXVlcnlQYXJhbSA9ICcnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYWxhcm1FdmVudFNlbGVjdG9yU2VydmljZTogQWxhcm1FdmVudFNlbGVjdG9yU2VydmljZSxcbiAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgY29sb3JTZXJ2aWNlOiBDb2xvclNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0UXVlcnlQYXJhbWV0ZXJPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBhc3luYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKGNoYW5nZXMuYWxhcm1zICYmIGNoYW5nZXMuYWxhcm1zLmN1cnJlbnRWYWx1ZSAmJiB0aGlzLmFjdGl2ZUZpbHRlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICBhd2FpdCB0aGlzLnNldFBvc3NpYmxlRmlsdGVycygpO1xuICAgICAgdGhpcy5hcHBseUZpbHRlckNoYW5nZSgpO1xuICAgIH1cbiAgfVxuXG4gIHNldFF1ZXJ5UGFyYW1ldGVyT2JzZXJ2YWJsZSgpIHtcbiAgICB0aGlzLmFjdGl2YXRlZFJvdXRlLnF1ZXJ5UGFyYW1zXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHBhcmFtcyA9PiB7XG4gICAgICAgICAgY29uc3QgYWxhcm1zOiBBbGFybURldGFpbHNbXSA9IHRoaXMucG9zc2libGVGaWx0ZXJzO1xuICAgICAgICAgIGNvbnN0IHBvc3NpYmxlRmlsdGVycyA9IHRoaXMuc2V0QWN0aXZlQWxhcm1GaWx0ZXJzRnJvbVF1ZXJ5UGFyYW1ldGVyKFxuICAgICAgICAgICAgYWxhcm1zLFxuICAgICAgICAgICAgcGFyYW1zW3RoaXMucXVlcnlQYXJhbU5hbWVdXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4gcG9zc2libGVGaWx0ZXJzO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChwb3NzaWJsZUZpbHRlcnM6IEFsYXJtRGV0YWlsc1tdKSA9PiB7XG4gICAgICAgIHRoaXMucG9zc2libGVGaWx0ZXJzID0gcG9zc2libGVGaWx0ZXJzO1xuICAgICAgICB0aGlzLmFwcGx5RmlsdGVyQ2hhbmdlKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHRvZ2dsZUFsYXJtVHlwZShhbGFybVR5cGU6IEFsYXJtRGV0YWlscykge1xuICAgIGFsYXJtVHlwZS5fX2FjdGl2ZSA9ICFhbGFybVR5cGUuX19hY3RpdmU7XG4gIH1cblxuICBkZXNlbGVjdCh0eXBlOiBBbGFybURldGFpbHMpIHtcbiAgICBjb25zdCBhbGFybUZpbHRlciA9IHRoaXMucG9zc2libGVGaWx0ZXJzLmZpbmQoXG4gICAgICBhbGFybSA9PiBhbGFybS5maWx0ZXJzLnR5cGUgPT09IHR5cGUuZmlsdGVycy50eXBlXG4gICAgKTtcbiAgICBhbGFybUZpbHRlci5fX2FjdGl2ZSA9IGZhbHNlO1xuICAgIHRoaXMuYXBwbHlGaWx0ZXJDaGFuZ2UoKTtcbiAgfVxuXG4gIGRlc2VsZWN0QWxsKCkge1xuICAgIHRoaXMucG9zc2libGVGaWx0ZXJzID0gdGhpcy5wb3NzaWJsZUZpbHRlcnMubWFwKGFsYXJtID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmFsYXJtLFxuICAgICAgICBfX2FjdGl2ZTogZmFsc2VcbiAgICAgIH07XG4gICAgfSk7XG4gICAgdGhpcy5hcHBseUZpbHRlckNoYW5nZSgpO1xuICB9XG5cbiAgYXBwbHlGaWx0ZXJDaGFuZ2UoKSB7XG4gICAgY29uc3QgYWN0aXZlcyA9IHRoaXMucG9zc2libGVGaWx0ZXJzLmZpbHRlcihcbiAgICAgIChhbGFybUZpbHRlcjogQWxhcm1EZXRhaWxzKSA9PiBhbGFybUZpbHRlci5fX2FjdGl2ZVxuICAgICk7XG4gICAgY29uc3QgbmV3UXVlcnlQYXJhbSA9IHRoaXMuZ2V0UXVlcnlQYXJhbXMoYWN0aXZlcyk7XG4gICAgY29uc3QgaGFzQ2hhbmdlZCA9IG5ld1F1ZXJ5UGFyYW0gIT09IHRoaXMuY3VycmVudFF1ZXJ5UGFyYW07XG4gICAgaWYgKGhhc0NoYW5nZWQpIHtcbiAgICAgIHRoaXMuYWN0aXZlRmlsdGVycyA9IGFjdGl2ZXM7XG4gICAgICB0aGlzLm9uRmlsdGVyQ2hhbmdlZC5lbWl0KHRoaXMuYWN0aXZlRmlsdGVycyk7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXSwge1xuICAgICAgICBxdWVyeVBhcmFtczoge1xuICAgICAgICAgIHR5cGVGaWx0ZXI6IG5ld1F1ZXJ5UGFyYW0gfHwgbnVsbFxuICAgICAgICB9LFxuICAgICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnXG4gICAgICB9KTtcbiAgICAgIHRoaXMuY3VycmVudFF1ZXJ5UGFyYW0gPSBuZXdRdWVyeVBhcmFtO1xuICAgIH1cbiAgfVxuXG4gIHJlc2V0RmlsdGVycygpIHtcbiAgICB0aGlzLnBvc3NpYmxlRmlsdGVycy5mb3JFYWNoKHBvc3NpYmxlRmlsdGVyID0+IHtcbiAgICAgIHBvc3NpYmxlRmlsdGVyLl9fYWN0aXZlID0gdGhpcy5hY3RpdmVGaWx0ZXJzLnNvbWUoXG4gICAgICAgIChhY3RpdmVGaWx0ZXI6IEFsYXJtRGV0YWlscykgPT4gYWN0aXZlRmlsdGVyID09PSBwb3NzaWJsZUZpbHRlclxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlbW92ZUN1c3RvbUFsYXJtKGFsYXJtRGV0YWlsczogQWxhcm1EZXRhaWxzKSB7XG4gICAgdGhpcy5wb3NzaWJsZUZpbHRlcnMgPSB0aGlzLnBvc3NpYmxlRmlsdGVycy5maWx0ZXIoZmlsdGVyID0+IGZpbHRlciAhPT0gYWxhcm1EZXRhaWxzKTtcbiAgICB0aGlzLnN0b3JlQ3VzdG9tQWxhcm1UeXBlcygpO1xuICB9XG5cbiAgY29uZmlybVdpdGhFbnRlcihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgIHRoaXMuYWRkQ3VzdG9tQWxhcm1UeXBlKCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgYWRkQ3VzdG9tQWxhcm1UeXBlKCkge1xuICAgIGlmICghdGhpcy5jdXN0b21BbGFybVR5cGVJbnB1dCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnBvc3NpYmxlRmlsdGVycy51bnNoaWZ0KHtcbiAgICAgIGxhYmVsOiB0aGlzLmN1c3RvbUFsYXJtVHlwZUlucHV0LFxuICAgICAgY29sb3I6IGF3YWl0IHRoaXMuY29sb3JTZXJ2aWNlLmdlbmVyYXRlQ29sb3IodGhpcy5jdXN0b21BbGFybVR5cGVJbnB1dCksXG4gICAgICBmaWx0ZXJzOiB7XG4gICAgICAgIHR5cGU6IHRoaXMuY3VzdG9tQWxhcm1UeXBlSW5wdXRcbiAgICAgIH0sXG4gICAgICB0aW1lbGluZVR5cGU6ICdBTEFSTScsXG4gICAgICBfX2FjdGl2ZTogdHJ1ZSxcbiAgICAgIF9fdGFyZ2V0OiBudWxsXG4gICAgfSk7XG4gICAgdGhpcy5jdXN0b21BbGFybVR5cGVJbnB1dCA9ICcnO1xuICAgIHRoaXMuc3RvcmVDdXN0b21BbGFybVR5cGVzKCk7XG4gIH1cblxuICBwcml2YXRlIHN0b3JlQ3VzdG9tQWxhcm1UeXBlcygpIHtcbiAgICBjb25zdCBjdXN0b21UeXBlcyA9IHRoaXMucG9zc2libGVGaWx0ZXJzLmZpbHRlcigoZmlsdGVyOiBBbGFybURldGFpbHMpID0+ICFmaWx0ZXIuX190YXJnZXQpO1xuICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLlNUT1JBR0VfQUNDRVNTX0tFWSwgSlNPTi5zdHJpbmdpZnkoY3VzdG9tVHlwZXMpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q3VzdG9tQWxhcm1UeXBlRnJvbVN0b3JhZ2UoKSB7XG4gICAgY29uc3QgdHlwZXMgPSB3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5TVE9SQUdFX0FDQ0VTU19LRVkpO1xuICAgIHJldHVybiB0eXBlcyA/IEpTT04ucGFyc2UodHlwZXMpIDogW107XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNldFBvc3NpYmxlRmlsdGVycygpIHtcbiAgICBjb25zdCBxdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAuZ2V0KHRoaXMucXVlcnlQYXJhbU5hbWUpO1xuICAgIGNvbnN0IGFsYXJtVHlwZXNGcm9tQ3VycmVudGx5U2hvd25BbGFybXMgPVxuICAgICAgYXdhaXQgdGhpcy5hbGFybUV2ZW50U2VsZWN0b3JTZXJ2aWNlLmdldFVuaXF1ZUFsYXJtc09ubHkodGhpcy5hbGFybXMuZGF0YSk7XG4gICAgY29uc3QgY3VzdG9tQWxhcm1UeXBlc0Zyb21Mb2NhbFN0b3JhZ2UgPSB0aGlzLmdldEN1c3RvbUFsYXJtVHlwZUZyb21TdG9yYWdlKCk7XG4gICAgY29uc3Qgc2VsZWN0YWJsZUFsYXJtVHlwZXMgPSB0aGlzLnNldEFjdGl2ZUFsYXJtRmlsdGVyc0Zyb21RdWVyeVBhcmFtZXRlcihcbiAgICAgIFsuLi5jdXN0b21BbGFybVR5cGVzRnJvbUxvY2FsU3RvcmFnZSwgLi4uYWxhcm1UeXBlc0Zyb21DdXJyZW50bHlTaG93bkFsYXJtc10sXG4gICAgICBxdWVyeVBhcmFtZXRlcnNcbiAgICApO1xuICAgIHRoaXMucG9zc2libGVGaWx0ZXJzID0gc2VsZWN0YWJsZUFsYXJtVHlwZXM7XG4gIH1cblxuICBwcml2YXRlIHNldEFjdGl2ZUFsYXJtRmlsdGVyc0Zyb21RdWVyeVBhcmFtZXRlcihcbiAgICBhbGFybUZpbHRlcnM6IEFsYXJtRGV0YWlsc1tdLFxuICAgIGZpbHRlclR5cGVzUXVlcnkgPSAnJ1xuICApOiBBbGFybURldGFpbHNbXSB7XG4gICAgY29uc3QgdHlwZXMgPSAoZmlsdGVyVHlwZXNRdWVyeSA/PyAnJykuc3BsaXQoJywnKTtcbiAgICByZXR1cm4gYWxhcm1GaWx0ZXJzLm1hcCgoYWxhcm06IEFsYXJtRGV0YWlscykgPT4gKHtcbiAgICAgIC4uLmFsYXJtLFxuICAgICAgX19hY3RpdmU6IHR5cGVzLmluY2x1ZGVzKGFsYXJtLmZpbHRlcnMudHlwZSlcbiAgICB9KSk7XG4gIH1cblxuICBwcml2YXRlIGdldFF1ZXJ5UGFyYW1zKGFjdGl2ZUZpbHRlcnM6IEFsYXJtRGV0YWlsc1tdKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYWN0aXZlRmlsdGVycy5tYXAoZmlsdGVyID0+IGZpbHRlci5maWx0ZXJzLnR5cGUpLmpvaW4oJywnKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImQtZmxleCBhLWktY2VudGVyXCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cImRyb3Bkb3duXCJcbiAgICB0aXRsZT1cInt7ICdGaWx0ZXIgYnkgQWxhcm0gdHlwZXMnIHwgdHJhbnNsYXRlIH19XCJcbiAgICBkcm9wZG93blxuICAgICNmaWx0ZXJzRHJvcGRvd249XCJicy1kcm9wZG93blwiXG4gICAgW2Nka1RyYXBGb2N1c109XCJmaWx0ZXJzRHJvcGRvd24uaXNPcGVuXCJcbiAgICAob25IaWRkZW4pPVwicmVzZXRGaWx0ZXJzKClcIlxuICAgIFtpbnNpZGVDbGlja109XCJ0cnVlXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCBmaXQtd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY29udHJvbCBkLWZsZXggYS1pLWNlbnRlciBpbm5lci1zY3JvbGxcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjdGl2ZUZpbHRlcnMubGVuZ3RoID4gMDsgZWxzZSBhbGxUeXBlc1wiPlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cInRhZyB0YWctLWluZm8gY2hpcFwiXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgZmlsdGVyIG9mIGFjdGl2ZUZpbHRlcnNcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXhzIGJ0bi1jbGVhbiB0ZXh0LTEwXCJcbiAgICAgICAgICAgICAgdGl0bGU9XCJ7eyAnUmVtb3ZlJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBkZXNlbGVjdChmaWx0ZXIpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGkgYzh5SWNvbj1cInRpbWVzXCI+PC9pPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzcz1cImNpcmNsZS1pY29uLXdyYXBwZXIgY2lyY2xlLWljb24td3JhcHBlci0tc21hbGxcIlxuICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7ICdiYWNrZ3JvdW5kLWNvbG9yJzogZmlsdGVyLmNvbG9yIH1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgIGNsYXNzPVwic3Ryb2tlZC1pY29uXCJcbiAgICAgICAgICAgICAgICBjOHlJY29uPVwiYmVsbFwiXG4gICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICB7eyBmaWx0ZXIuZmlsdGVycy50eXBlIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNhbGxUeXBlcz5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtbm93cmFwXCI+XG4gICAgICAgICAgICB7eyAnQWxsIGFsYXJtIHR5cGVzJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwLWJ0biBpbnB1dC1ncm91cC1idG4tLWxhc3QgdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYnRuLWRlZmF1bHQgYnRuXCJcbiAgICAgICAgICBbdGl0bGVdPVwiJ0NsZWFyIGZpbHRlcnMnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAqbmdJZj1cImFjdGl2ZUZpbHRlcnMubGVuZ3RoXCJcbiAgICAgICAgICAoY2xpY2spPVwiZGVzZWxlY3RBbGwoKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8aSBjOHlJY29uPVwidGltZXNcIj48L2k+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJidG4tZGVmYXVsdCBidG4gYnRuLS1jYXJldFwiXG4gICAgICAgICAgW3RpdGxlXT1cIidBbGFybSB0eXBlcycgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIGRhdGEtY3k9XCJjOHktYWxhcm0tdHlwZS1maWx0ZXJcIlxuICAgICAgICAgIGRyb3Bkb3duVG9nZ2xlXG4gICAgICAgID5cbiAgICAgICAgICA8aSBjbGFzcz1cImNhcmV0XCI+PC9pPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiZHJvcGRvd24tbWVudSBkcm9wZG93bi1tZW51LWFjdGlvbi1iYXJcIlxuICAgICAgc3R5bGU9XCJtYXgtd2lkdGg6IHVuc2V0OyBtaW4td2lkdGg6IDI1MHB4XCJcbiAgICAgICpkcm9wZG93bk1lbnVcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwicC0xNiBiZy1sZXZlbC0yXCI+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPHA+XG4gICAgICAgICAgICA8aVxuICAgICAgICAgICAgICBjbGFzcz1cInRleHQtaW5mbyBtLXItNFwiXG4gICAgICAgICAgICAgIFtjOHlJY29uXT1cIidpbmZvLWNpcmNsZSdcIlxuICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgIDxzdHJvbmcgdGFuc2xhdGU+VGhlIGxpc3QgYmVsb3cgbWF5IG5vdCBiZSBjb21wbGV0ZS48L3N0cm9uZz5cbiAgICAgICAgICA8L3A+XG4gICAgICAgICAgPHAgdGFuc2xhdGU+XG4gICAgICAgICAgICBSZWNlbnQgYWxhcm1zIGFyZSBkaXNwbGF5ZWQgYmVsb3cuIFBhc3QgYWxhcm1zIG1pZ2h0IG5vdCBiZSBzaG93bi4gT3B0aW9uYWxseSB5b3UgY2FuXG4gICAgICAgICAgICBhZGQgYSBjdXN0b20gYWxhcm0uXG4gICAgICAgICAgPC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGM4eS1saXN0LWdyb3VwPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAgcC10LTE2IHAtYi0xNiBwLXItMzIgcC1sLTMyIHNlcGFyYXRvci1ib3R0b21cIj5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiJ0N1c3RvbSBhbGFybSB0eXBlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImN1c3RvbUFsYXJtVHlwZUlucHV0XCJcbiAgICAgICAgICAgIChrZXlkb3duKT1cImNvbmZpcm1XaXRoRW50ZXIoJGV2ZW50KVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAtYnRuXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWRvdCB0ZXh0LXByaW1hcnlcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidBZGQgY3VzdG9tIGFsYXJtJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgIHRvb2x0aXA9XCInQWRkJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cInRvcFwiXG4gICAgICAgICAgICAgIFtkZWxheV09XCI1MDBcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkQ3VzdG9tQWxhcm1UeXBlKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aSBjOHlJY29uPVwicGx1cy1jaXJjbGVcIj48L2k+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGM4eS1saVxuICAgICAgICAgIGNsYXNzPVwiYzh5LWxpc3RfX2l0ZW1fX2NvbGxhcHNlLS1jb250YWluZXItc21hbGwgY2RrLWRyYWdcIlxuICAgICAgICAgIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyXCJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgYWxhcm1UeXBlIG9mIHBvc3NpYmxlRmlsdGVyc1wiXG4gICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUFsYXJtVHlwZShhbGFybVR5cGUpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxjOHktbGktY2hlY2tib3hcbiAgICAgICAgICAgIGNsYXNzPVwiYS1zLWNlbnRlciBtLXQtNCBwLXItMCBwLWwtMFwiXG4gICAgICAgICAgICBbc2VsZWN0ZWRdPVwiYWxhcm1UeXBlLl9fYWN0aXZlXCJcbiAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgKGNoYW5nZSk9XCJ0b2dnbGVBbGFybVR5cGUoYWxhcm1UeXBlKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICA+PC9jOHktbGktY2hlY2tib3g+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhLWktY2VudGVyIHAtbC00XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYzh5LWxpc3RfX2l0ZW1fX2NvbG9ycGlja2VyIHAtdC0wIHAtYi0wIHAtbC0wXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjOHktY29sb3JwaWNrZXIgYzh5LWNvbG9ycGlja2VyLS1hbGFybVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImNpcmNsZS1pY29uLXdyYXBwZXJcIlxuICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyAnYmFja2dyb3VuZC1jb2xvcic6IGFsYXJtVHlwZS5jb2xvciB9XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN0cm9rZWQtaWNvblwiXG4gICAgICAgICAgICAgICAgICAgIFtjOHlJY29uXT1cIidiZWxsJ1wiXG4gICAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC10cnVuY2F0ZSB0ZXh0LTEyIGZsZXgtZ3Jvd1wiPlxuICAgICAgICAgICAgICB7eyBhbGFybVR5cGUubGFiZWwgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJidG4tZG90IGJ0bi1kb3QtLWRhbmdlclwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1JlbW92ZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICB0b29sdGlwPVwiJ1JlbW92ZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJ0b3BcIlxuICAgICAgICAgICAgICAqbmdJZj1cImFsYXJtVHlwZS5fX3RhcmdldCA9PT0gbnVsbFwiXG4gICAgICAgICAgICAgIFtkZWxheV09XCI1MDBcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlQ3VzdG9tQWxhcm0oYWxhcm1UeXBlKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGkgYzh5SWNvbj1cIm1pbnVzLWNpcmNsZVwiPjwvaT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2M4eS1saT5cbiAgICAgICAgPGM4eS1saSAqbmdJZj1cInBvc3NpYmxlRmlsdGVycy5sZW5ndGggPT09IDBcIj5cbiAgICAgICAgICA8Yzh5LXVpLWVtcHR5LXN0YXRlXG4gICAgICAgICAgICBjbGFzcz1cInAtdC04XCJcbiAgICAgICAgICAgIGljb249XCJjOHktYWxhcm1cIlxuICAgICAgICAgICAgW3RpdGxlXT1cIidObyBhbGFybSBmb3VuZCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgW3N1YnRpdGxlXT1cIlxuICAgICAgICAgICAgICAnVGhlcmUgaXMgbm8gYWxhcm0gdG8gZmlsdGVyLiBZb3UgY2FuIHN0aWxsIGFkZCBhIGN1c3RvbSBhbGFybS4nIHwgdHJhbnNsYXRlXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW2hvcml6b250YWxdPVwidHJ1ZVwiXG4gICAgICAgICAgPjwvYzh5LXVpLWVtcHR5LXN0YXRlPlxuICAgICAgICA8L2M4eS1saT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN0aWNreS1ib3R0b20gcC0xNlwiPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1ibG9jayBidG4tcHJpbWFyeVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwicG9zc2libGVGaWx0ZXJzLmxlbmd0aCA9PT0gMFwiXG4gICAgICAgICAgICAoY2xpY2spPVwiYXBwbHlGaWx0ZXJDaGFuZ2UoKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBmaWx0ZXJzRHJvcGRvd24uaGlkZSgpXCJcbiAgICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAgID5cbiAgICAgICAgICAgIEFwcGx5XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9jOHktbGlzdC1ncm91cD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxhcm1zLXR5cGUtZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2FsYXJtcy9hbGFybXMtdHlwZS1maWx0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vYWxhcm1zL2FsYXJtcy10eXBlLWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxFQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBZ0IseUJBQXlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNuRyxPQUFPLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7O0FBTS9DLE1BQU0sT0FBTyx5QkFBeUI7SUFzQnBDLFlBQ1UseUJBQW9ELEVBQ3BELGNBQThCLEVBQzlCLE1BQWMsRUFDZCxZQUEwQjtRQUgxQiw4QkFBeUIsR0FBekIseUJBQXlCLENBQTJCO1FBQ3BELG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsaUJBQVksR0FBWixZQUFZLENBQWM7UUFyQnBDLG9CQUFlLEdBQW1CLEVBQUUsQ0FBQztRQUdyQyxrQkFBYSxHQUFtQixFQUFFLENBQUM7UUFHbkMsb0JBQWUsR0FBaUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVuRSxxQkFBZ0IsR0FBbUIsRUFBRSxDQUFDO1FBQ3RDLHlCQUFvQixHQUFHLEVBQUUsQ0FBQztRQUVqQixtQkFBYyxHQUFHLFlBQVksQ0FBQztRQUM5Qix1QkFBa0IsR0FBRyxrQkFBa0IsQ0FBQztRQUV6QyxhQUFRLEdB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LENBQUMsR0FBRyxnQ0FBZ0MsRUFBRSxHQUFHLGtDQUFrQyxDQUFDLEVBQzVFLGVBQWUsQ0FDaEIsQ0FBQztRQUNGLElBQUksQ0FBQyxlQUFlLEdBQUcsb0JBQW9CLENBQUM7SUFDOUMsQ0FBQztJQUVPLHVDQUF1QyxDQUM3QyxZQUE0QixFQUM1QixnQkFBZ0IsR0FBRyxFQUFFO1FBRXJCLE1BQU0sS0FBSyxHQUFHLENBQUMsZ0JBQWdCLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xELE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQW1CLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDaEQsR0FBRyxLQUFLO1lBQ1IsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7U0FDN0MsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRU8sY0FBYyxDQUFDLGFBQTZCO1FBQ2xELE9BQU8sYUFBYSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7OEdBakxVLHlCQUF5QjtrR0FBekIseUJBQXlCLHNPQ3BCdEMsKzZMQTRLQTs7MkZEeEphLHlCQUF5QjtrQkFKckMsU0FBUzsrQkFDRSx3QkFBd0I7MktBS2xDLE1BQU07c0JBREwsS0FBSztnQkFJTixlQUFlO3NCQURkLEtBQUs7Z0JBSU4sYUFBYTtzQkFEWixLQUFLO2dCQUlOLGVBQWU7c0JBRGQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJQWxhcm0sIElSZXN1bHRMaXN0IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgQ29sb3JTZXJ2aWNlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBBbGFybURldGFpbHMsIEFsYXJtRXZlbnRTZWxlY3RvclNlcnZpY2UgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2FsYXJtLWV2ZW50LXNlbGVjdG9yJztcbmltcG9ydCB7IG1hcCwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1hbGFybXMtdHlwZS1maWx0ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vYWxhcm1zLXR5cGUtZmlsdGVyLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBbGFybXNUeXBlRmlsdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpXG4gIGFsYXJtczogSVJlc3VsdExpc3Q8SUFsYXJtPjtcblxuICBASW5wdXQoKVxuICBwb3NzaWJsZUZpbHRlcnM6IEFsYXJtRGV0YWlsc1tdID0gW107XG5cbiAgQElucHV0KClcbiAgYWN0aXZlRmlsdGVyczogQWxhcm1EZXRhaWxzW10gPSBbXTtcblxuICBAT3V0cHV0KClcbiAgb25GaWx0ZXJDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8QWxhcm1EZXRhaWxzW10+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGN1c3RvbUFsYXJtVHlwZXM6IEFsYXJtRGV0YWlsc1tdID0gW107XG4gIGN1c3RvbUFsYXJtVHlwZUlucHV0ID0gJyc7XG5cbiAgcmVhZG9ubHkgcXVlcnlQYXJhbU5hbWUgPSAndHlwZUZpbHRlcic7XG4gIHJlYWRvbmx5IFNUT1JBR0VfQUNDRVNTX0tFWSA9ICdjdXN0b21BbGFybVR5cGVzJztcblxuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSBjdXJyZW50UXVlcnlQYXJhbSA9ICcnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYWxhcm1FdmVudFNlbGVjdG9yU2VydmljZTogQWxhcm1FdmVudFNlbGVjdG9yU2VydmljZSxcbiAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgY29sb3JTZXJ2aWNlOiBDb2xvclNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0UXVlcnlQYXJhbWV0ZXJPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBhc3luYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKGNoYW5nZXMuYWxhcm1zICYmIGNoYW5nZXMuYWxhcm1zLmN1cnJlbnRWYWx1ZSAmJiB0aGlzLmFjdGl2ZUZpbHRlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICBhd2FpdCB0aGlzLnNldFBvc3NpYmxlRmlsdGVycygpO1xuICAgICAgdGhpcy5hcHBseUZpbHRlckNoYW5nZSgpO1xuICAgIH1cbiAgfVxuXG4gIHNldFF1ZXJ5UGFyYW1ldGVyT2JzZXJ2YWJsZSgpIHtcbiAgICB0aGlzLmFjdGl2YXRlZFJvdXRlLnF1ZXJ5UGFyYW1zXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHBhcmFtcyA9PiB7XG4gICAgICAgICAgY29uc3QgYWxhcm1zOiBBbGFybURldGFpbHNbXSA9IHRoaXMucG9zc2libGVGaWx0ZXJzO1xuICAgICAgICAgIGNvbnN0IHBvc3NpYmxlRmlsdGVycyA9IHRoaXMuc2V0QWN0aXZlQWxhcm1GaWx0ZXJzRnJvbVF1ZXJ5UGFyYW1ldGVyKFxuICAgICAgICAgICAgYWxhcm1zLFxuICAgICAgICAgICAgcGFyYW1zW3RoaXMucXVlcnlQYXJhbU5hbWVdXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4gcG9zc2libGVGaWx0ZXJzO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChwb3NzaWJsZUZpbHRlcnM6IEFsYXJtRGV0YWlsc1tdKSA9PiB7XG4gICAgICAgIHRoaXMucG9zc2libGVGaWx0ZXJzID0gcG9zc2libGVGaWx0ZXJzO1xuICAgICAgICB0aGlzLmFwcGx5RmlsdGVyQ2hhbmdlKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHRvZ2dsZUFsYXJtVHlwZShhbGFybVR5cGU6IEFsYXJtRGV0YWlscykge1xuICAgIGFsYXJtVHlwZS5fX2FjdGl2ZSA9ICFhbGFybVR5cGUuX19hY3RpdmU7XG4gIH1cblxuICBkZXNlbGVjdCh0eXBlOiBBbGFybURldGFpbHMpIHtcbiAgICBjb25zdCBhbGFybUZpbHRlciA9IHRoaXMucG9zc2libGVGaWx0ZXJzLmZpbmQoXG4gICAgICBhbGFybSA9PiBhbGFybS5maWx0ZXJzLnR5cGUgPT09IHR5cGUuZmlsdGVycy50eXBlXG4gICAgKTtcbiAgICBhbGFybUZpbHRlci5fX2FjdGl2ZSA9IGZhbHNlO1xuICAgIHRoaXMuYXBwbHlGaWx0ZXJDaGFuZ2UoKTtcbiAgfVxuXG4gIGRlc2VsZWN0QWxsKCkge1xuICAgIHRoaXMucG9zc2libGVGaWx0ZXJzID0gdGhpcy5wb3NzaWJsZUZpbHRlcnMubWFwKGFsYXJtID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmFsYXJtLFxuICAgICAgICBfX2FjdGl2ZTogZmFsc2VcbiAgICAgIH07XG4gICAgfSk7XG4gICAgdGhpcy5hcHBseUZpbHRlckNoYW5nZSgpO1xuICB9XG5cbiAgYXBwbHlGaWx0ZXJDaGFuZ2UoKSB7XG4gICAgY29uc3QgYWN0aXZlcyA9IHRoaXMucG9zc2libGVGaWx0ZXJzLmZpbHRlcihcbiAgICAgIChhbGFybUZpbHRlcjogQWxhcm1EZXRhaWxzKSA9PiBhbGFybUZpbHRlci5fX2FjdGl2ZVxuICAgICk7XG4gICAgY29uc3QgbmV3UXVlcnlQYXJhbSA9IHRoaXMuZ2V0UXVlcnlQYXJhbXMoYWN0aXZlcyk7XG4gICAgY29uc3QgaGFzQ2hhbmdlZCA9IG5ld1F1ZXJ5UGFyYW0gIT09IHRoaXMuY3VycmVudFF1ZXJ5UGFyYW07XG4gICAgaWYgKGhhc0NoYW5nZWQpIHtcbiAgICAgIHRoaXMuYWN0aXZlRmlsdGVycyA9IGFjdGl2ZXM7XG4gICAgICB0aGlzLm9uRmlsdGVyQ2hhbmdlZC5lbWl0KHRoaXMuYWN0aXZlRmlsdGVycyk7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXSwge1xuICAgICAgICBxdWVyeVBhcmFtczoge1xuICAgICAgICAgIHR5cGVGaWx0ZXI6IG5ld1F1ZXJ5UGFyYW0gfHwgbnVsbFxuICAgICAgICB9LFxuICAgICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnXG4gICAgICB9KTtcbiAgICAgIHRoaXMuY3VycmVudFF1ZXJ5UGFyYW0gPSBuZXdRdWVyeVBhcmFtO1xuICAgIH1cbiAgfVxuXG4gIHJlc2V0RmlsdGVycygpIHtcbiAgICB0aGlzLnBvc3NpYmxlRmlsdGVycy5mb3JFYWNoKHBvc3NpYmxlRmlsdGVyID0+IHtcbiAgICAgIHBvc3NpYmxlRmlsdGVyLl9fYWN0aXZlID0gdGhpcy5hY3RpdmVGaWx0ZXJzLnNvbWUoXG4gICAgICAgIChhY3RpdmVGaWx0ZXI6IEFsYXJtRGV0YWlscykgPT4gYWN0aXZlRmlsdGVyID09PSBwb3NzaWJsZUZpbHRlclxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlbW92ZUN1c3RvbUFsYXJtKGFsYXJtRGV0YWlsczogQWxhcm1EZXRhaWxzKSB7XG4gICAgdGhpcy5wb3NzaWJsZUZpbHRlcnMgPSB0aGlzLnBvc3NpYmxlRmlsdGVycy5maWx0ZXIoZmlsdGVyID0+IGZpbHRlciAhPT0gYWxhcm1EZXRhaWxzKTtcbiAgICB0aGlzLnN0b3JlQ3VzdG9tQWxhcm1UeXBlcygpO1xuICB9XG5cbiAgY29uZmlybVdpdGhFbnRlcihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgIHRoaXMuYWRkQ3VzdG9tQWxhcm1UeXBlKCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgYWRkQ3VzdG9tQWxhcm1UeXBlKCkge1xuICAgIGlmICghdGhpcy5jdXN0b21BbGFybVR5cGVJbnB1dCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnBvc3NpYmxlRmlsdGVycy51bnNoaWZ0KHtcbiAgICAgIGxhYmVsOiB0aGlzLmN1c3RvbUFsYXJtVHlwZUlucHV0LFxuICAgICAgY29sb3I6IGF3YWl0IHRoaXMuY29sb3JTZXJ2aWNlLmdlbmVyYXRlQ29sb3IodGhpcy5jdXN0b21BbGFybVR5cGVJbnB1dCksXG4gICAgICBmaWx0ZXJzOiB7XG4gICAgICAgIHR5cGU6IHRoaXMuY3VzdG9tQWxhcm1UeXBlSW5wdXRcbiAgICAgIH0sXG4gICAgICB0aW1lbGluZVR5cGU6ICdBTEFSTScsXG4gICAgICBfX2FjdGl2ZTogdHJ1ZSxcbiAgICAgIF9fdGFyZ2V0OiBudWxsXG4gICAgfSk7XG4gICAgdGhpcy5jdXN0b21BbGFybVR5cGVJbnB1dCA9ICcnO1xuICAgIHRoaXMuc3RvcmVDdXN0b21BbGFybVR5cGVzKCk7XG4gIH1cblxuICBwcml2YXRlIHN0b3JlQ3VzdG9tQWxhcm1UeXBlcygpIHtcbiAgICBjb25zdCBjdXN0b21UeXBlcyA9IHRoaXMucG9zc2libGVGaWx0ZXJzLmZpbHRlcigoZmlsdGVyOiBBbGFybURldGFpbHMpID0+ICFmaWx0ZXIuX190YXJnZXQpO1xuICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLlNUT1JBR0VfQUNDRVNTX0tFWSwgSlNPTi5zdHJpbmdpZnkoY3VzdG9tVHlwZXMpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q3VzdG9tQWxhcm1UeXBlRnJvbVN0b3JhZ2UoKSB7XG4gICAgY29uc3QgdHlwZXMgPSB3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5TVE9SQUdFX0FDQ0VTU19LRVkpO1xuICAgIHJldHVybiB0eXBlcyA/IEpTT04ucGFyc2UodHlwZXMpIDogW107XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNldFBvc3NpYmxlRmlsdGVycygpIHtcbiAgICBjb25zdCBxdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAuZ2V0KHRoaXMucXVlcnlQYXJhbU5hbWUpO1xuICAgIGNvbnN0IGFsYXJtVHlwZXNGcm9tQ3VycmVudGx5U2hvd25BbGFybXMgPVxuICAgICAgYXdhaXQgdGhpcy5hbGFybUV2ZW50U2VsZWN0b3JTZXJ2aWNlLmdldFVuaXF1ZUFsYXJtc09ubHkodGhpcy5hbGFybXMuZGF0YSk7XG4gICAgY29uc3QgY3VzdG9tQWxhcm1UeXBlc0Zyb21Mb2NhbFN0b3JhZ2UgPSB0aGlzLmdldEN1c3RvbUFsYXJtVHlwZUZyb21TdG9yYWdlKCk7XG4gICAgY29uc3Qgc2VsZWN0YWJsZUFsYXJtVHlwZXMgPSB0aGlzLnNldEFjdGl2ZUFsYXJtRmlsdGVyc0Zyb21RdWVyeVBhcmFtZXRlcihcbiAgICAgIFsuLi5jdXN0b21BbGFybVR5cGVzRnJvbUxvY2FsU3RvcmFnZSwgLi4uYWxhcm1UeXBlc0Zyb21DdXJyZW50bHlTaG93bkFsYXJtc10sXG4gICAgICBxdWVyeVBhcmFtZXRlcnNcbiAgICApO1xuICAgIHRoaXMucG9zc2libGVGaWx0ZXJzID0gc2VsZWN0YWJsZUFsYXJtVHlwZXM7XG4gIH1cblxuICBwcml2YXRlIHNldEFjdGl2ZUFsYXJtRmlsdGVyc0Zyb21RdWVyeVBhcmFtZXRlcihcbiAgICBhbGFybUZpbHRlcnM6IEFsYXJtRGV0YWlsc1tdLFxuICAgIGZpbHRlclR5cGVzUXVlcnkgPSAnJ1xuICApOiBBbGFybURldGFpbHNbXSB7XG4gICAgY29uc3QgdHlwZXMgPSAoZmlsdGVyVHlwZXNRdWVyeSA/PyAnJykuc3BsaXQoJywnKTtcbiAgICByZXR1cm4gYWxhcm1GaWx0ZXJzLm1hcCgoYWxhcm06IEFsYXJtRGV0YWlscykgPT4gKHtcbiAgICAgIC4uLmFsYXJtLFxuICAgICAgX19hY3RpdmU6IHR5cGVzLmluY2x1ZGVzKGFsYXJtLmZpbHRlcnMudHlwZSlcbiAgICB9KSk7XG4gIH1cblxuICBwcml2YXRlIGdldFF1ZXJ5UGFyYW1zKGFjdGl2ZUZpbHRlcnM6IEFsYXJtRGV0YWlsc1tdKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYWN0aXZlRmlsdGVycy5tYXAoZmlsdGVyID0+IGZpbHRlci5maWx0ZXJzLnR5cGUpLmpvaW4oJywnKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImQtZmxleCBhLWktY2VudGVyXCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cImRyb3Bkb3duXCJcbiAgICB0aXRsZT1cInt7ICdGaWx0ZXIgYnkgYWxhcm0gdHlwZXMnIHwgdHJhbnNsYXRlIH19XCJcbiAgICBkcm9wZG93blxuICAgICNmaWx0ZXJzRHJvcGRvd249XCJicy1kcm9wZG93blwiXG4gICAgW2Nka1RyYXBGb2N1c109XCJmaWx0ZXJzRHJvcGRvd24uaXNPcGVuXCJcbiAgICAob25IaWRkZW4pPVwicmVzZXRGaWx0ZXJzKClcIlxuICAgIFtpbnNpZGVDbGlja109XCJ0cnVlXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCBmaXQtd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY29udHJvbCBkLWZsZXggYS1pLWNlbnRlciBpbm5lci1zY3JvbGxcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjdGl2ZUZpbHRlcnMubGVuZ3RoID4gMDsgZWxzZSBhbGxUeXBlc1wiPlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cInRhZyB0YWctLWluZm8gY2hpcFwiXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgZmlsdGVyIG9mIGFjdGl2ZUZpbHRlcnNcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXhzIGJ0bi1jbGVhbiB0ZXh0LTEwXCJcbiAgICAgICAgICAgICAgdGl0bGU9XCJ7eyAnUmVtb3ZlJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBkZXNlbGVjdChmaWx0ZXIpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGkgYzh5SWNvbj1cInRpbWVzXCI+PC9pPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzcz1cImNpcmNsZS1pY29uLXdyYXBwZXIgY2lyY2xlLWljb24td3JhcHBlci0tc21hbGxcIlxuICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7ICdiYWNrZ3JvdW5kLWNvbG9yJzogZmlsdGVyLmNvbG9yIH1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgIGNsYXNzPVwic3Ryb2tlZC1pY29uXCJcbiAgICAgICAgICAgICAgICBjOHlJY29uPVwiYmVsbFwiXG4gICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICB7eyBmaWx0ZXIuZmlsdGVycy50eXBlIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNhbGxUeXBlcz5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtbm93cmFwXCI+XG4gICAgICAgICAgICB7eyAnQWxsIGFsYXJtIHR5cGVzJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwLWJ0biBpbnB1dC1ncm91cC1idG4tLWxhc3QgdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYnRuLWRlZmF1bHQgYnRuXCJcbiAgICAgICAgICBbdGl0bGVdPVwiJ0NsZWFyIGZpbHRlcnMnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAqbmdJZj1cImFjdGl2ZUZpbHRlcnMubGVuZ3RoXCJcbiAgICAgICAgICAoY2xpY2spPVwiZGVzZWxlY3RBbGwoKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8aSBjOHlJY29uPVwidGltZXNcIj48L2k+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJidG4tZGVmYXVsdCBidG4gYnRuLS1jYXJldFwiXG4gICAgICAgICAgW3RpdGxlXT1cIidBbGFybSB0eXBlcycgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIGRhdGEtY3k9XCJjOHktYWxhcm0tdHlwZS1maWx0ZXJcIlxuICAgICAgICAgIGRyb3Bkb3duVG9nZ2xlXG4gICAgICAgID5cbiAgICAgICAgICA8aSBjbGFzcz1cImNhcmV0XCI+PC9pPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiZHJvcGRvd24tbWVudSBkcm9wZG93bi1tZW51LWFjdGlvbi1iYXJcIlxuICAgICAgc3R5bGU9XCJtYXgtd2lkdGg6IHVuc2V0OyBtaW4td2lkdGg6IDI1MHB4XCJcbiAgICAgICpkcm9wZG93bk1lbnVcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwicC0xNiBiZy1sZXZlbC0yXCI+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPHA+XG4gICAgICAgICAgICA8aVxuICAgICAgICAgICAgICBjbGFzcz1cInRleHQtaW5mbyBtLXItNFwiXG4gICAgICAgICAgICAgIFtjOHlJY29uXT1cIidpbmZvLWNpcmNsZSdcIlxuICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgIDxzdHJvbmcgdGFuc2xhdGU+VGhlIGxpc3QgYmVsb3cgbWF5IG5vdCBiZSBjb21wbGV0ZS48L3N0cm9uZz5cbiAgICAgICAgICA8L3A+XG4gICAgICAgICAgPHAgdGFuc2xhdGU+XG4gICAgICAgICAgICBSZWNlbnQgYWxhcm1zIGFyZSBkaXNwbGF5ZWQgYmVsb3cuIFBhc3QgYWxhcm1zIG1pZ2h0IG5vdCBiZSBzaG93bi4gT3B0aW9uYWxseSB5b3UgY2FuXG4gICAgICAgICAgICBhZGQgYSBjdXN0b20gYWxhcm0uXG4gICAgICAgICAgPC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGM4eS1saXN0LWdyb3VwPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAgcC10LTE2IHAtYi0xNiBwLXItMzIgcC1sLTMyIHNlcGFyYXRvci1ib3R0b21cIj5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiJ0N1c3RvbSBhbGFybSB0eXBlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImN1c3RvbUFsYXJtVHlwZUlucHV0XCJcbiAgICAgICAgICAgIChrZXlkb3duKT1cImNvbmZpcm1XaXRoRW50ZXIoJGV2ZW50KVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAtYnRuXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWRvdCB0ZXh0LXByaW1hcnlcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidBZGQgY3VzdG9tIGFsYXJtJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgIHRvb2x0aXA9XCInQWRkJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cInRvcFwiXG4gICAgICAgICAgICAgIFtkZWxheV09XCI1MDBcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkQ3VzdG9tQWxhcm1UeXBlKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aSBjOHlJY29uPVwicGx1cy1jaXJjbGVcIj48L2k+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGM4eS1saVxuICAgICAgICAgIGNsYXNzPVwiYzh5LWxpc3RfX2l0ZW1fX2NvbGxhcHNlLS1jb250YWluZXItc21hbGwgY2RrLWRyYWdcIlxuICAgICAgICAgIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyXCJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgYWxhcm1UeXBlIG9mIHBvc3NpYmxlRmlsdGVyc1wiXG4gICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUFsYXJtVHlwZShhbGFybVR5cGUpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxjOHktbGktY2hlY2tib3hcbiAgICAgICAgICAgIGNsYXNzPVwiYS1zLWNlbnRlciBtLXQtNCBwLXItMCBwLWwtMFwiXG4gICAgICAgICAgICBbc2VsZWN0ZWRdPVwiYWxhcm1UeXBlLl9fYWN0aXZlXCJcbiAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgKGNoYW5nZSk9XCJ0b2dnbGVBbGFybVR5cGUoYWxhcm1UeXBlKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICA+PC9jOHktbGktY2hlY2tib3g+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhLWktY2VudGVyIHAtbC00XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYzh5LWxpc3RfX2l0ZW1fX2NvbG9ycGlja2VyIHAtdC0wIHAtYi0wIHAtbC0wXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjOHktY29sb3JwaWNrZXIgYzh5LWNvbG9ycGlja2VyLS1hbGFybVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImNpcmNsZS1pY29uLXdyYXBwZXJcIlxuICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyAnYmFja2dyb3VuZC1jb2xvcic6IGFsYXJtVHlwZS5jb2xvciB9XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN0cm9rZWQtaWNvblwiXG4gICAgICAgICAgICAgICAgICAgIFtjOHlJY29uXT1cIidiZWxsJ1wiXG4gICAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC10cnVuY2F0ZSB0ZXh0LTEyIGZsZXgtZ3Jvd1wiPlxuICAgICAgICAgICAgICB7eyBhbGFybVR5cGUubGFiZWwgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJidG4tZG90IGJ0bi1kb3QtLWRhbmdlclwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1JlbW92ZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICB0b29sdGlwPVwiJ1JlbW92ZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJ0b3BcIlxuICAgICAgICAgICAgICAqbmdJZj1cImFsYXJtVHlwZS5fX3RhcmdldCA9PT0gbnVsbFwiXG4gICAgICAgICAgICAgIFtkZWxheV09XCI1MDBcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlQ3VzdG9tQWxhcm0oYWxhcm1UeXBlKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGkgYzh5SWNvbj1cIm1pbnVzLWNpcmNsZVwiPjwvaT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2M4eS1saT5cbiAgICAgICAgPGM4eS1saSAqbmdJZj1cInBvc3NpYmxlRmlsdGVycy5sZW5ndGggPT09IDBcIj5cbiAgICAgICAgICA8Yzh5LXVpLWVtcHR5LXN0YXRlXG4gICAgICAgICAgICBjbGFzcz1cInAtdC04XCJcbiAgICAgICAgICAgIGljb249XCJjOHktYWxhcm1cIlxuICAgICAgICAgICAgW3RpdGxlXT1cIidObyBhbGFybSBmb3VuZCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgW3N1YnRpdGxlXT1cIlxuICAgICAgICAgICAgICAnVGhlcmUgaXMgbm8gYWxhcm0gdG8gZmlsdGVyLiBZb3UgY2FuIHN0aWxsIGFkZCBhIGN1c3RvbSBhbGFybS4nIHwgdHJhbnNsYXRlXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW2hvcml6b250YWxdPVwidHJ1ZVwiXG4gICAgICAgICAgPjwvYzh5LXVpLWVtcHR5LXN0YXRlPlxuICAgICAgICA8L2M4eS1saT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN0aWNreS1ib3R0b20gcC0xNlwiPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1ibG9jayBidG4tcHJpbWFyeVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwicG9zc2libGVGaWx0ZXJzLmxlbmd0aCA9PT0gMFwiXG4gICAgICAgICAgICAoY2xpY2spPVwiYXBwbHlGaWx0ZXJDaGFuZ2UoKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBmaWx0ZXJzRHJvcGRvd24uaGlkZSgpXCJcbiAgICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAgID5cbiAgICAgICAgICAgIEFwcGx5XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9jOHktbGlzdC1ncm91cD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -180,7 +180,7 @@ export class AlarmsComponent {
180
180
  return;
181
181
  }
182
182
  const { context, contextData } = routeContext;
183
- if ([ViewContext.Device, ViewContext.Group, ViewContext.Simulators].includes(context)) {
183
+ if ([ViewContext.Device, ViewContext.Group, ViewContext.Service, ViewContext.Simulators].includes(context)) {
184
184
  this.contextSourceId = contextData?.id;
185
185
  }
186
186
  }
@@ -194,4 +194,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
194
194
  type: ViewChild,
195
195
  args: [AlarmsIntervalRefreshComponent]
196
196
  }] } });
197
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxhcm1zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2FsYXJtcy9hbGFybXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vYWxhcm1zL2FsYXJtcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBSUwsZUFBZSxFQUdoQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQ0wsZ0NBQWdDLEVBQ2hDLFlBQVksRUFDWixtQkFBbUIsRUFFbkIsWUFBWSxFQUNaLFdBQVcsRUFDWCxPQUFPLEVBQ1IsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLHlCQUF5QixFQUMxQixNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7O0FBT3hCLE1BQU0sT0FBTyxlQUFlO0lBMEIxQixZQUNTLGNBQThCLEVBQzdCLGlCQUFvQyxFQUNwQyxnQ0FBa0UsRUFDbEUsWUFBMEIsRUFDMUIsbUJBQXdDLEVBQ3hDLFlBQTBCLEVBQzFCLGdCQUFrQyxFQUNsQyxNQUFjO1FBUGYsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzdCLHNCQUFp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YyxDQUFDLENBQUM7UUFDbEYsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ2xCLE9BQU87UUFDVCxDQUFDO1FBQ0QsTUFBTSxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsR0FBRyxZQUFZLENBQUM7UUFDOUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDdEYsSUFBSSxDQUFDLGVBQWUsR0FBRyxXQUFXLEVBQUUsRUFBRSxDQUFDO1FBQ3pDLENBQUM7SUFDSCxDQUFDOzhHQXZOVSxlQUFlO2tHQUFmLGVBQWUscUNBRmYsQ0FBQyxnQ0FBZ0MsQ0FBQyx5RkFPbEMsOEJBQThCLGdEQ3pDM0MsbW5IQStIQTs7MkZEM0ZhLGVBQWU7a0JBTDNCLFNBQVM7K0JBQ0UsWUFBWSxhQUVYLENBQUMsZ0NBQWdDLENBQUM7OFNBUTdDLDZCQUE2QjtzQkFENUIsU0FBUzt1QkFBQyw4QkFBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtcbiAgQWxhcm1RdWVyeUZpbHRlcixcbiAgSUFsYXJtLFxuICBJUmVzdWx0TGlzdCxcbiAgU0VWRVJJVFlfTEFCRUxTLFxuICBTZXZlcml0eUZpbHRlcixcbiAgU2V2ZXJpdHlUeXBlXG59IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7XG4gIEFsYXJtV2l0aENoaWxkcmVuUmVhbHRpbWVTZXJ2aWNlLFxuICBBbGVydFNlcnZpY2UsXG4gIENvbnRleHRSb3V0ZVNlcnZpY2UsXG4gIERhdGVUaW1lQ29udGV4dCxcbiAgTW9kYWxTZXJ2aWNlLFxuICBWaWV3Q29udGV4dCxcbiAgZ2V0dGV4dFxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwsIHRocm90dGxlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFsYXJtRGV0YWlscyB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvYWxhcm0tZXZlbnQtc2VsZWN0b3InO1xuaW1wb3J0IHsgQWxhcm1zSW50ZXJ2YWxSZWZyZXNoQ29tcG9uZW50IH0gZnJvbSAnLi9hbGFybXMtaW50ZXJ2YWwtcmVmcmVzaC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWxhcm1zVmlld1NlcnZpY2UgfSBmcm9tICcuL2FsYXJtcy12aWV3LnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgQWxhcm1MaXN0Rm9ybUZpbHRlcnMsXG4gIERFRkFVTFRfU0VWRVJJVFlfVkFMVUVTLFxuICBUSFJPVFRMRV9SRUFMVElNRV9SRUZSRVNIXG59IGZyb20gJy4vYWxhcm1zLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWFsYXJtcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9hbGFybXMuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtBbGFybVdpdGhDaGlsZHJlblJlYWx0aW1lU2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgQWxhcm1zQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICByZWFkb25seSBORVdfUkVBTFRJTUVfQUxBUk1fTUVTU0FHRSA9IHRoaXMuYWxhcm1zVmlld1NlcnZpY2UuUkVBTFRJTUVfVVBEQVRFX0FMQVJNU19NRVNTQUdFO1xuICByZWFkb25seSBUSVRMRSA9IGdldHRleHQoJ0FsYXJtcycpO1xuICByZWFkb25seSBSRUZSRVNIX0xBQkVMID0gZ2V0dGV4dCgnUmVmcmVzaCcpO1xuXG4gIEBWaWV3Q2hpbGQoQWxhcm1zSW50ZXJ2YWxSZWZyZXNoQ29tcG9uZW50KVxuICBhbGFybUludGVydmFsUmVmcmVzaENvbXBvbmVudDogQWxhcm1zSW50ZXJ2YWxSZWZyZXNoQ29tcG9uZW50O1xuICBhbGFybXMkOiBCZWhhdmlvclN1YmplY3Q8SVJlc3VsdExpc3Q8SUFsYXJtPj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElSZXN1bHRMaXN0PElBbGFybT4+KG51bGwpO1xuICBjb250ZXh0U291cmNlSWQ6IG51bWJlciB8IHN0cmluZyB8IG51bGw7XG4gIC8qKiByZXNwb25zaWJsZSBmb3Igc2hvd2luZyBlaXRoZXIgcmVhbHRpbWUgYnV0dG9uIG9yIGludGVydmFscywgYmFzZWQgb24gJ3JlZnJlc2hUeXBlJyBrZXkgaW4gT3B0aW9uc1NlcnZpY2UgKi9cbiAgaXNJbnRlcnZhbFJlZnJlc2g6IGJvb2xlYW47XG4gIGlzTG9hZGluZyQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBpc1JlYWx0aW1lQWN0aXZlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWx0aW1lSWNvblRpdGxlOiBzdHJpbmc7XG4gIHNob3VsZFNob3dJbnRlcnZhbFRvZ2dsZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuICBpc1JlYWx0aW1lVG9nZ2xlT24gPSB0cnVlO1xuICB0eXBlRmlsdGVyczogQWxhcm1EZXRhaWxzW10gPSBbXTtcbiAgaXNEaXNhYmxlZCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgZGVzdHJveSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIHNlbGVjdGVkU2V2ZXJpdGllcyA9IE9iamVjdC5rZXlzKFNFVkVSSVRZX0xBQkVMUykgYXMgU2V2ZXJpdHlUeXBlW107XG4gIHByaXZhdGUgc2V2ZXJpdHlPcHRpb25zOiBTZXZlcml0eUZpbHRlciA9IERFRkFVTFRfU0VWRVJJVFlfVkFMVUVTO1xuICBwcml2YXRlIHNob3dDbGVhcmVkID0gZmFsc2U7XG4gIHByaXZhdGUgcmVhZG9ubHkgV0FJVF9USU1FX0FWT0lEX01VTFRJUExFX1JFUVVFU1RfQllfUEFSQU1fQ0hBTkdFID0gMTAwO1xuICBwcml2YXRlIHNlbGVjdGVkRGF0ZXM6IERhdGVUaW1lQ29udGV4dDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgYWxhcm1zVmlld1NlcnZpY2U6IEFsYXJtc1ZpZXdTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxhcm1XaXRoQ2hpbGRyZW5SZWFsdGltZVNlcnZpY2U6IEFsYXJtV2l0aENoaWxkcmVuUmVhbHRpbWVTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb250ZXh0Um91dGVTZXJ2aWNlOiBDb250ZXh0Um91dGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBNb2RhbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcbiAgKSB7XG4gICAgdGhpcy5pc0ludGVydmFsUmVmcmVzaCA9IHRoaXMuYWxhcm1zVmlld1NlcnZpY2UuaXNJbnRlcnZhbFJlZnJlc2goKTtcbiAgICB0aGlzLmluaXRpYWxpemVDb250ZXh0U291cmNlSWQoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGNvbnN0IGlzSW5EZXRhaWxWaWV3ID0gISF0aGlzLmFjdGl2YXRlZFJvdXRlLmNoaWxkcmVuWzBdPy5zbmFwc2hvdC5wYXJhbXMuaWQ7XG4gICAgaWYgKGlzSW5EZXRhaWxWaWV3KSB7XG4gICAgICB0aGlzLmNoYW5nZUludGVydmFsKGZhbHNlKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuaXNJbnRlcnZhbFJlZnJlc2gpIHtcbiAgICAgIHRoaXMuaGFuZGxlTGVnYWN5UmVhbHRpbWUoKTtcbiAgICB9XG5cbiAgICB0aGlzLmFsYXJtc1ZpZXdTZXJ2aWNlLnJlbG9hZEFsYXJtc0xpc3QkXG4gICAgICAucGlwZShcbiAgICAgICAgZGVib3VuY2VUaW1lKHRoaXMuV0FJVF9USU1FX0FWT0lEX01VTFRJUExFX1JFUVVFU1RfQllfUEFSQU1fQ0hBTkdFKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy51cGRhdGVBbGFybXMoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgYXBwbHlUeXBlRmlsdGVycyh0eXBlRmlsdGVyczogQWxhcm1EZXRhaWxzW10pOiB2b2lkIHtcbiAgICB0aGlzLnR5cGVGaWx0ZXJzID0gdHlwZUZpbHRlcnM7XG4gICAgdGhpcy5hbGFybXNWaWV3U2VydmljZS5yZWxvYWRBbGFybXNMaXN0JC5uZXh0KCk7XG4gICAgdGhpcy5pc1JlYWx0aW1lQWN0aXZlLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgYXBwbHlGb3JtRmlsdGVycyh7IHNldmVyaXR5T3B0aW9ucywgc2hvd0NsZWFyZWQsIHNlbGVjdGVkRGF0ZXMgfTogQWxhcm1MaXN0Rm9ybUZpbHRlcnMpOiB2b2lkIHtcbiAgICB0aGlzLnNldmVyaXR5T3B0aW9ucyA9IHNldmVyaXR5T3B0aW9ucztcbiAgICB0aGlzLnNob3dDbGVhcmVkID0gc2hvd0NsZWFyZWQ7XG4gICAgdGhpcy5zZWxlY3RlZERhdGVzID0gc2VsZWN0ZWREYXRlcztcbiAgICB0aGlzLnNlbGVjdGVkU2V2ZXJpdGllcyA9IHRoaXMuYWxhcm1zVmlld1NlcnZpY2UudXBkYXRlU2VsZWN0ZWRTZXZlcml0aWVzKHRoaXMuc2V2ZXJpdHlPcHRpb25zKTtcbiAgICB0aGlzLmFsYXJtc1ZpZXdTZXJ2aWNlLnJlbG9hZEFsYXJtc0xpc3QkLm5leHQoKTtcbiAgICB0aGlzLmlzUmVhbHRpbWVBY3RpdmUubmV4dChmYWxzZSk7XG4gIH1cblxuICBhc3luYyBhcHBseURhdGVGaWx0ZXIoc2VsZWN0ZWREYXRlczogW0RhdGUsIERhdGVdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5hbGFybXMkLm5leHQoYXdhaXQgdGhpcy5hbGFybXNWaWV3U2VydmljZS5yZXRyaWV2ZUFsYXJtc0J5RGF0ZShzZWxlY3RlZERhdGVzKSk7XG4gICAgdGhpcy5pc1JlYWx0aW1lQWN0aXZlLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgYXN5bmMgY2xlYXJBbGwoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHRyYW5zbGF0ZWRCb2R5ID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgIGdldHRleHQoJ0RvIHlvdSByZWFsbHkgd2FudCB0byBjbGVhciBhbGwgYWxhcm1zIG9mIHNlbGVjdGVkIHNldmVyaXRpZXM/JylcbiAgICAgICk7XG4gICAgICBhd2FpdCB0aGlzLm1vZGFsU2VydmljZS5jb25maXJtKFxuICAgICAgICBnZXR0ZXh0KCdDb25maXJtIGNsZWFyaW5nIGFsYXJtcz8nKSxcbiAgICAgICAgdHJhbnNsYXRlZEJvZHksXG4gICAgICAgICdkYW5nZXInLFxuICAgICAgICB7XG4gICAgICAgICAgb2s6IGdldHRleHQoJ0NvbmZpcm0nKSxcbiAgICAgICAgICBjYW5jZWw6IGdldHRleHQoJ0NhbmNlbCcpXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBtb2RhbCBjYW5jZWxlZFxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGF3YWl0IHRoaXMuY2xlYXJBbGFybXMoKTtcbiAgfVxuXG4gIHJlZnJlc2goKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVBbGFybXMoKTtcbiAgICB0aGlzLmlzUmVhbHRpbWVBY3RpdmUubmV4dChmYWxzZSk7XG4gIH1cblxuICBjaGFuZ2VJbnRlcnZhbCh2YWx1ZSA9IHRydWUpOiB2b2lkIHtcbiAgICB0aGlzLnNob3VsZFNob3dJbnRlcnZhbFRvZ2dsZSQubmV4dCh2YWx1ZSk7XG4gIH1cblxuICB0b2dnbGVSZWFsdGltZVN0YXRlKCk6IHZvaWQge1xuICAgIHRoaXMuaXNSZWFsdGltZVRvZ2dsZU9uID0gIXRoaXMuaXNSZWFsdGltZVRvZ2dsZU9uO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVMZWdhY3lSZWFsdGltZSgpIHtcbiAgICB0aGlzLnJlYWx0aW1lSWNvblRpdGxlID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZ2V0dGV4dCgnUmVhbHRpbWUgYWN0aXZlJykpO1xuICAgIHRoaXMuc3Vic2NyaWJlVG9SZWFsdGltZVVwZGF0ZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY2xlYXJBbGFybXMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuYWxhcm1zVmlld1NlcnZpY2UuY2xlYXJBbGxBY3RpdmVBbGFybXMoXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRTZXZlcml0aWVzLFxuICAgICAgICB0aGlzLmNvbnRleHRTb3VyY2VJZFxuICAgICAgKTtcblxuICAgICAgaWYgKHJlc3VsdC5yZXNvbHZlZEltbWVkaWF0ZWx5KSB7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnN1Y2Nlc3ModGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZ2V0dGV4dCgnQWxhcm1zIGNsZWFyZWQuJykpKTtcbiAgICAgICAgdGhpcy5iYWNrVG9Sb290Um91dGUoKTtcbiAgICAgICAgdGhpcy5yZWZyZXNoKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5zdWNjZXNzKFxuICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGdldHRleHQoJ0FsYXJtcyBhcmUgYmVpbmcgY2xlYXJlZCBpbiBiYWNrZ3JvdW5kLicpKVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRTZXJ2ZXJGYWlsdXJlKGVycm9yKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGJhY2tUb1Jvb3RSb3V0ZSgpOiB2b2lkIHtcbiAgICBjb25zdCBjb250ZXh0RGF0YSA9IHRoaXMuY29udGV4dFJvdXRlU2VydmljZS5nZXRDb250ZXh0RGF0YSh0aGlzLmFjdGl2YXRlZFJvdXRlKTtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZSh0aGlzLmFsYXJtc1ZpZXdTZXJ2aWNlLmdldFJvdXRlck5hdmlnYXRpb25BcnJheShjb250ZXh0RGF0YSksIHtcbiAgICAgIHF1ZXJ5UGFyYW1zSGFuZGxpbmc6ICdtZXJnZSdcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0QWxhcm1zKCk6IFByb21pc2U8SVJlc3VsdExpc3Q8SUFsYXJtPj4ge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLmlzTG9hZGluZyQubmV4dCh0cnVlKTtcblxuICAgICAgY29uc3QgYWRkaXRpb25hbEZpbHRlcjogUGFydGlhbDxBbGFybVF1ZXJ5RmlsdGVyPiA9IHt9O1xuXG4gICAgICBpZiAodGhpcy5jb250ZXh0U291cmNlSWQpIHtcbiAgICAgICAgKGFkZGl0aW9uYWxGaWx0ZXIuc291cmNlID0gdGhpcy5jb250ZXh0U291cmNlSWQpLFxuICAgICAgICAgIChhZGRpdGlvbmFsRmlsdGVyLndpdGhTb3VyY2VBc3NldHMgPSB0cnVlKSxcbiAgICAgICAgICAoYWRkaXRpb25hbEZpbHRlci53aXRoU291cmNlRGV2aWNlcyA9IHRydWUpO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy50eXBlRmlsdGVycy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGFkZGl0aW9uYWxGaWx0ZXIudHlwZSA9IHRoaXMudHlwZUZpbHRlcnMubWFwKCh7IGZpbHRlcnMgfSkgPT4gZmlsdGVycy50eXBlKS5qb2luKCcsJyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFsYXJtc1ZpZXdTZXJ2aWNlLnJldHJpZXZlRmlsdGVyZWRBbGFybXMoXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRTZXZlcml0aWVzLFxuICAgICAgICB0aGlzLnNob3dDbGVhcmVkLFxuICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZXMsXG4gICAgICAgIGFkZGl0aW9uYWxGaWx0ZXJcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGlmIChlcnJvcj8ucmVzPy5zdGF0dXMgPT09IDQwMykge1xuICAgICAgICB0aGlzLmlzRGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRTZXJ2ZXJGYWlsdXJlKGVycm9yKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5pc0xvYWRpbmckLm5leHQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdXBkYXRlQWxhcm1zKCkge1xuICAgIHRoaXMuYWxhcm1zJC5uZXh0KGF3YWl0IHRoaXMuZ2V0QWxhcm1zKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdWJzY3JpYmVUb1JlYWx0aW1lVXBkYXRlcygpOiB2b2lkIHtcbiAgICB0aGlzLmFsYXJtV2l0aENoaWxkcmVuUmVhbHRpbWVTZXJ2aWNlXG4gICAgICAub25BbGwkKHRoaXMuY29udGV4dFNvdXJjZUlkKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgdGhyb3R0bGVUaW1lKFRIUk9UVExFX1JFQUxUSU1FX1JFRlJFU0gsIHVuZGVmaW5lZCwgeyB0cmFpbGluZzogdHJ1ZSB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmlzUmVhbHRpbWVUb2dnbGVPbikge1xuICAgICAgICAgIHRoaXMucmVmcmVzaCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuaXNSZWFsdGltZUFjdGl2ZS5uZXh0KHRydWUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUNvbnRleHRTb3VyY2VJZCgpOiB2b2lkIHtcbiAgICBjb25zdCByb3V0ZUNvbnRleHQgPSB0aGlzLmNvbnRleHRSb3V0ZVNlcnZpY2UuZ2V0Q29udGV4dERhdGEodGhpcy5hY3RpdmF0ZWRSb3V0ZSk7XG4gICAgaWYgKCFyb3V0ZUNvbnRleHQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgeyBjb250ZXh0LCBjb250ZXh0RGF0YSB9ID0gcm91dGVDb250ZXh0O1xuICAgIGlmIChbVmlld0NvbnRleHQuRGV2aWNlLCBWaWV3Q29udGV4dC5Hcm91cCwgVmlld0NvbnRleHQuU2ltdWxhdG9yc10uaW5jbHVkZXMoY29udGV4dCkpIHtcbiAgICAgIHRoaXMuY29udGV4dFNvdXJjZUlkID0gY29udGV4dERhdGE/LmlkO1xuICAgIH1cbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIihhY3RpdmF0ZWRSb3V0ZS5kYXRhIHwgYXN5bmMpPy50aXRsZVwiPlxuICA8Yzh5LXRpdGxlPnt7IFRJVExFIHwgdHJhbnNsYXRlIH19PC9jOHktdGl0bGU+XG48L25nLWNvbnRhaW5lcj5cblxuPGM4eS1hY3Rpb24tYmFyLWl0ZW1cbiAgW3BsYWNlbWVudF09XCInbGVmdCdcIlxuICBpdGVtQ2xhc3M9XCJuYXZiYXItZm9ybSBtaW4td2lkdGgtZml0XCJcbj5cbiAgPGM4eS1hbGFybXMtZmlsdGVyXG4gICAgY2xhc3M9XCJkLWJsb2NrIGZpdC13XCJcbiAgICBbY29udGV4dFNvdXJjZUlkXT1cImNvbnRleHRTb3VyY2VJZFwiXG4gICAgKG9uRmlsdGVyQXBwbGllZCk9XCJhcHBseUZvcm1GaWx0ZXJzKCRldmVudClcIlxuICA+PC9jOHktYWxhcm1zLWZpbHRlcj5cbjwvYzh5LWFjdGlvbi1iYXItaXRlbT5cblxuPGM4eS1hY3Rpb24tYmFyLWl0ZW1cbiAgW3BsYWNlbWVudF09XCInbGVmdCdcIlxuICBpdGVtQ2xhc3M9XCJuYXZiYXItZm9ybSBtaW4td2lkdGgtZml0XCJcbj5cbiAgPGM4eS1hbGFybXMtZGF0ZS1maWx0ZXIgKGRhdGVGaWx0ZXJDaGFuZ2UpPVwiYXBwbHlGb3JtRmlsdGVycygkZXZlbnQpXCI+PC9jOHktYWxhcm1zLWRhdGUtZmlsdGVyPlxuPC9jOHktYWN0aW9uLWJhci1pdGVtPlxuXG48Yzh5LWFjdGlvbi1iYXItaXRlbVxuICBbcGxhY2VtZW50XT1cIidsZWZ0J1wiXG4gIGl0ZW1DbGFzcz1cIm5hdmJhci1mb3JtXCJcbj5cbiAgPGM4eS1hbGFybXMtdHlwZS1maWx0ZXJcbiAgICBjbGFzcz1cImQtYmxvY2sgZml0LXdcIlxuICAgIFthbGFybXNdPVwiYWxhcm1zJCB8IGFzeW5jXCJcbiAgICAob25GaWx0ZXJDaGFuZ2VkKT1cImFwcGx5VHlwZUZpbHRlcnMoJGV2ZW50KVwiXG4gID48L2M4eS1hbGFybXMtdHlwZS1maWx0ZXI+XG48L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG5cbjxjOHktYWN0aW9uLWJhci1pdGVtXG4gIFtwbGFjZW1lbnRdPVwiJ3JpZ2h0J1wiXG4gIFtwcmlvcml0eV09XCIwXCJcbj5cbiAgPGJ1dHRvblxuICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rXCJcbiAgICBbdGl0bGVdPVwiJ0NsZWFyIGFsbCBhbGFybXMnIHwgdHJhbnNsYXRlXCJcbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAoY2xpY2spPVwiY2xlYXJBbGwoKVwiXG4gICAgZGF0YS1jeT1cImM4eS1hbGFybXMtdmlldy0tY2xlYXItYWxsLWJ1dHRvblwiXG4gID5cbiAgICA8aSBjOHlJY29uPVwiYzh5LWFsZXJ0LWlkbGVcIj48L2k+XG4gICAge3sgJ0NsZWFyIGFsbGBhbGFybXNgJyB8IHRyYW5zbGF0ZSB9fVxuICA8L2J1dHRvbj5cbjwvYzh5LWFjdGlvbi1iYXItaXRlbT5cblxuPCEtLVJlYWx0aW1lIGJ1dHRvbi0tPlxuPG5nLXRlbXBsYXRlICNyZWFsdGltZVJlZnJlc2g+XG4gIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cC1idG5cIj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBidG4tc21cIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInUmVmcmVzaCcgfCB0cmFuc2xhdGVcIlxuICAgICAgW3Rvb2x0aXBdPVwiXG4gICAgICAgIChpc1JlYWx0aW1lQWN0aXZlIHwgYXN5bmMpXG4gICAgICAgICAgPyAoTkVXX1JFQUxUSU1FX0FMQVJNX01FU1NBR0UgfCB0cmFuc2xhdGUpXG4gICAgICAgICAgOiAoUkVGUkVTSF9MQUJFTCB8IHRyYW5zbGF0ZSlcbiAgICAgIFwiXG4gICAgICBwbGFjZW1lbnQ9XCJsZWZ0XCJcbiAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBbYWRhcHRpdmVQb3NpdGlvbl09XCJmYWxzZVwiXG4gICAgICBbZGVsYXldPVwiNTAwXCJcbiAgICAgIFtkaXNhYmxlZF09XCJpc0xvYWRpbmckIHwgYXN5bmNcIlxuICAgICAgKGNsaWNrKT1cInJlZnJlc2goKVwiXG4gICAgPlxuICAgICAgPHNwYW5cbiAgICAgICAgY2xhc3M9XCJ0YWcgdGFnLS1pbmZvIG0tci04XCJcbiAgICAgICAgKm5nSWY9XCJpc1JlYWx0aW1lQWN0aXZlIHwgYXN5bmNcIlxuICAgICAgPlxuICAgICAgICB7eyAnTmV3IGFsYXJtcycgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxpXG4gICAgICAgIGM4eUljb249XCJyZWZyZXNoXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnaWNvbi1zcGluJzogaXNMb2FkaW5nJCB8IGFzeW5jIH1cIlxuICAgICAgPjwvaT5cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cImM4eS1yZWFsdGltZSBidG4gYnRuLWRlZmF1bHQgYnRuLXNtXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicmVhbHRpbWVJY29uVGl0bGVcIlxuICAgICAgW3Rvb2x0aXBdPVwicmVhbHRpbWVJY29uVGl0bGVcIlxuICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgZGF0YS1jeT1cImM4eS1hbGFybXMtLXJlYWx0aW1lLWJ1dHRvblwiXG4gICAgICBbY29udGFpbmVyXT1cIidib2R5J1wiXG4gICAgICAoY2xpY2spPVwidG9nZ2xlUmVhbHRpbWVTdGF0ZSgpXCJcbiAgICA+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cImM4eS1wdWxzZSBtLTBcIlxuICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgYWN0aXZlOiBpc1JlYWx0aW1lVG9nZ2xlT24sXG4gICAgICAgICAgaW5hY3RpdmU6ICFpc1JlYWx0aW1lVG9nZ2xlT25cbiAgICAgICAgfVwiXG4gICAgICA+PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxjOHktaGVscFxuICBzcmM9XCIvZG9jcy9kZXZpY2UtbWFuYWdlbWVudC1hcHBsaWNhdGlvbi9tb25pdG9yaW5nLWFuZC1jb250cm9sbGluZy1kZXZpY2VzLyN3b3JraW5nLXdpdGgtYWxhcm1zXCJcbj48L2M4eS1oZWxwPlxuXG48ZGl2IGNsYXNzPVwiY2FyZCBjb250ZW50LWZ1bGxwYWdlIHNwbGl0LXZpZXctLTUtNyBncmlkX19yb3ctLTFcIj5cbiAgPGM4eS1hbGFybXMtbGlzdFxuICAgIGNsYXNzPVwiZC1jb250ZW50c1wiXG4gICAgW2lzSW5pdGlhbExvYWRpbmddPVwiaXNMb2FkaW5nJCB8IGFzeW5jXCJcbiAgICBbYWxhcm1zXT1cImFsYXJtcyQgfCBhc3luY1wiXG4gICAgW3R5cGVGaWx0ZXJzXT1cInR5cGVGaWx0ZXJzXCJcbiAgICAob25TY3JvbGxpbmdTdGF0ZUNoYW5nZSk9XCJjaGFuZ2VJbnRlcnZhbCghJGV2ZW50KVwiXG4gICAgKG9uU2VsZWN0ZWRBbGFybSk9XCJjaGFuZ2VJbnRlcnZhbChmYWxzZSlcIlxuICAgIFtzcGxpdFZpZXddPVwidHJ1ZVwiXG4gICAgW2hhc1Blcm1pc3Npb25zXT1cIiFpc0Rpc2FibGVkXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0ludGVydmFsUmVmcmVzaDsgZWxzZSByZWFsdGltZVJlZnJlc2hcIj5cbiAgICAgIDxjOHktYWxhcm1zLWludGVydmFsLXJlZnJlc2hcbiAgICAgICAgW2FsYXJtc0xpc3RMb2FkaW5nJF09XCJpc0xvYWRpbmckXCJcbiAgICAgICAgW2lzSW50ZXJ2YWxUb2dnbGVFbmFibGVkXT1cInNob3VsZFNob3dJbnRlcnZhbFRvZ2dsZSQgfCBhc3luY1wiXG4gICAgICAgIChvbkNvdW50ZG93bkVuZGVkKT1cInJlZnJlc2goKVwiXG4gICAgICAgIFtpc0Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIlxuICAgICAgPjwvYzh5LWFsYXJtcy1pbnRlcnZhbC1yZWZyZXNoPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2M4eS1hbGFybXMtbGlzdD5cblxuICA8cm91dGVyLW91dGxldCBjbGFzcz1cImQtY29udGVudHNcIj48L3JvdXRlci1vdXRsZXQ+XG48L2Rpdj5cbiJdfQ==
197
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxhcm1zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2FsYXJtcy9hbGFybXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vYWxhcm1zL2FsYXJtcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBSUwsZUFBZSxFQUdoQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQ0wsZ0NBQWdDLEVBQ2hDLFlBQVksRUFDWixtQkFBbUIsRUFFbkIsWUFBWSxFQUNaLFdBQVcsRUFDWCxPQUFPLEVBQ1IsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLHlCQUF5QixFQUMxQixNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7O0FBT3hCLE1BQU0sT0FBTyxlQUFlO0lBMEIxQixZQUNTLGNBQThCLEVBQzdCLGlCQUFvQyxFQUNwQyxnQ0FBa0UsRUFDbEUsWUFBMEIsRUFDMUIsbUJBQXdDLEVBQ3hDLFlBQTBCLEVBQzFCLGdCQUFrQyxFQUNsQyxNQUFjO1FBUGYsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzdCLHNCQUFp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YyxDQUFDLENBQUM7UUFDbEYsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ2xCLE9BQU87UUFDVCxDQUFDO1FBQ0QsTUFBTSxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsR0FBRyxZQUFZLENBQUM7UUFDOUMsSUFDRSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLENBQzNGLE9BQU8sQ0FDUixFQUNELENBQUM7WUFDRCxJQUFJLENBQUMsZUFBZSxHQUFHLFdBQVcsRUFBRSxFQUFFLENBQUM7UUFDekMsQ0FBQztJQUNILENBQUM7OEdBM05VLGVBQWU7a0dBQWYsZUFBZSxxQ0FGZixDQUFDLGdDQUFnQyxDQUFDLHlGQU9sQyw4QkFBOEIsZ0RDekMzQyxtbkhBK0hBOzsyRkQzRmEsZUFBZTtrQkFMM0IsU0FBUzsrQkFDRSxZQUFZLGFBRVgsQ0FBQyxnQ0FBZ0MsQ0FBQzs4U0FRN0MsNkJBQTZCO3NCQUQ1QixTQUFTO3VCQUFDLDhCQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBBbGFybVF1ZXJ5RmlsdGVyLFxuICBJQWxhcm0sXG4gIElSZXN1bHRMaXN0LFxuICBTRVZFUklUWV9MQUJFTFMsXG4gIFNldmVyaXR5RmlsdGVyLFxuICBTZXZlcml0eVR5cGVcbn0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHtcbiAgQWxhcm1XaXRoQ2hpbGRyZW5SZWFsdGltZVNlcnZpY2UsXG4gIEFsZXJ0U2VydmljZSxcbiAgQ29udGV4dFJvdXRlU2VydmljZSxcbiAgRGF0ZVRpbWVDb250ZXh0LFxuICBNb2RhbFNlcnZpY2UsXG4gIFZpZXdDb250ZXh0LFxuICBnZXR0ZXh0XG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgQWxhcm1EZXRhaWxzIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9hbGFybS1ldmVudC1zZWxlY3Rvcic7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsLCB0aHJvdHRsZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBbGFybXNJbnRlcnZhbFJlZnJlc2hDb21wb25lbnQgfSBmcm9tICcuL2FsYXJtcy1pbnRlcnZhbC1yZWZyZXNoLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBbGFybXNWaWV3U2VydmljZSB9IGZyb20gJy4vYWxhcm1zLXZpZXcuc2VydmljZSc7XG5pbXBvcnQge1xuICBBbGFybUxpc3RGb3JtRmlsdGVycyxcbiAgREVGQVVMVF9TRVZFUklUWV9WQUxVRVMsXG4gIFRIUk9UVExFX1JFQUxUSU1FX1JFRlJFU0hcbn0gZnJvbSAnLi9hbGFybXMubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktYWxhcm1zJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FsYXJtcy5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW0FsYXJtV2l0aENoaWxkcmVuUmVhbHRpbWVTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBBbGFybXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHJlYWRvbmx5IE5FV19SRUFMVElNRV9BTEFSTV9NRVNTQUdFID0gdGhpcy5hbGFybXNWaWV3U2VydmljZS5SRUFMVElNRV9VUERBVEVfQUxBUk1TX01FU1NBR0U7XG4gIHJlYWRvbmx5IFRJVExFID0gZ2V0dGV4dCgnQWxhcm1zJyk7XG4gIHJlYWRvbmx5IFJFRlJFU0hfTEFCRUwgPSBnZXR0ZXh0KCdSZWZyZXNoJyk7XG5cbiAgQFZpZXdDaGlsZChBbGFybXNJbnRlcnZhbFJlZnJlc2hDb21wb25lbnQpXG4gIGFsYXJtSW50ZXJ2YWxSZWZyZXNoQ29tcG9uZW50OiBBbGFybXNJbnRlcnZhbFJlZnJlc2hDb21wb25lbnQ7XG4gIGFsYXJtcyQ6IEJlaGF2aW9yU3ViamVjdDxJUmVzdWx0TGlzdDxJQWxhcm0+PiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SVJlc3VsdExpc3Q8SUFsYXJtPj4obnVsbCk7XG4gIGNvbnRleHRTb3VyY2VJZDogbnVtYmVyIHwgc3RyaW5nIHwgbnVsbDtcbiAgLyoqIHJlc3BvbnNpYmxlIGZvciBzaG93aW5nIGVpdGhlciByZWFsdGltZSBidXR0b24gb3IgaW50ZXJ2YWxzLCBiYXNlZCBvbiAncmVmcmVzaFR5cGUnIGtleSBpbiBPcHRpb25zU2VydmljZSAqL1xuICBpc0ludGVydmFsUmVmcmVzaDogYm9vbGVhbjtcbiAgaXNMb2FkaW5nJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIGlzUmVhbHRpbWVBY3RpdmUgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhbHRpbWVJY29uVGl0bGU6IHN0cmluZztcbiAgc2hvdWxkU2hvd0ludGVydmFsVG9nZ2xlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG4gIGlzUmVhbHRpbWVUb2dnbGVPbiA9IHRydWU7XG4gIHR5cGVGaWx0ZXJzOiBBbGFybURldGFpbHNbXSA9IFtdO1xuICBpc0Rpc2FibGVkID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgc2VsZWN0ZWRTZXZlcml0aWVzID0gT2JqZWN0LmtleXMoU0VWRVJJVFlfTEFCRUxTKSBhcyBTZXZlcml0eVR5cGVbXTtcbiAgcHJpdmF0ZSBzZXZlcml0eU9wdGlvbnM6IFNldmVyaXR5RmlsdGVyID0gREVGQVVMVF9TRVZFUklUWV9WQUxVRVM7XG4gIHByaXZhdGUgc2hvd0NsZWFyZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSByZWFkb25seSBXQUlUX1RJTUVfQVZPSURfTVVMVElQTEVfUkVRVUVTVF9CWV9QQVJBTV9DSEFOR0UgPSAxMDA7XG4gIHByaXZhdGUgc2VsZWN0ZWREYXRlczogRGF0ZVRpbWVDb250ZXh0O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBhbGFybXNWaWV3U2VydmljZTogQWxhcm1zVmlld1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGFybVdpdGhDaGlsZHJlblJlYWx0aW1lU2VydmljZTogQWxhcm1XaXRoQ2hpbGRyZW5SZWFsdGltZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcbiAgICBwcml2YXRlIGNvbnRleHRSb3V0ZVNlcnZpY2U6IENvbnRleHRSb3V0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxuICApIHtcbiAgICB0aGlzLmlzSW50ZXJ2YWxSZWZyZXNoID0gdGhpcy5hbGFybXNWaWV3U2VydmljZS5pc0ludGVydmFsUmVmcmVzaCgpO1xuICAgIHRoaXMuaW5pdGlhbGl6ZUNvbnRleHRTb3VyY2VJZCgpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgY29uc3QgaXNJbkRldGFpbFZpZXcgPSAhIXRoaXMuYWN0aXZhdGVkUm91dGUuY2hpbGRyZW5bMF0/LnNuYXBzaG90LnBhcmFtcy5pZDtcbiAgICBpZiAoaXNJbkRldGFpbFZpZXcpIHtcbiAgICAgIHRoaXMuY2hhbmdlSW50ZXJ2YWwoZmFsc2UpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5pc0ludGVydmFsUmVmcmVzaCkge1xuICAgICAgdGhpcy5oYW5kbGVMZWdhY3lSZWFsdGltZSgpO1xuICAgIH1cblxuICAgIHRoaXMuYWxhcm1zVmlld1NlcnZpY2UucmVsb2FkQWxhcm1zTGlzdCRcbiAgICAgIC5waXBlKFxuICAgICAgICBkZWJvdW5jZVRpbWUodGhpcy5XQUlUX1RJTUVfQVZPSURfTVVMVElQTEVfUkVRVUVTVF9CWV9QQVJBTV9DSEFOR0UpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnVwZGF0ZUFsYXJtcygpO1xuICAgICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBhcHBseVR5cGVGaWx0ZXJzKHR5cGVGaWx0ZXJzOiBBbGFybURldGFpbHNbXSk6IHZvaWQge1xuICAgIHRoaXMudHlwZUZpbHRlcnMgPSB0eXBlRmlsdGVycztcbiAgICB0aGlzLmFsYXJtc1ZpZXdTZXJ2aWNlLnJlbG9hZEFsYXJtc0xpc3QkLm5leHQoKTtcbiAgICB0aGlzLmlzUmVhbHRpbWVBY3RpdmUubmV4dChmYWxzZSk7XG4gIH1cblxuICBhcHBseUZvcm1GaWx0ZXJzKHsgc2V2ZXJpdHlPcHRpb25zLCBzaG93Q2xlYXJlZCwgc2VsZWN0ZWREYXRlcyB9OiBBbGFybUxpc3RGb3JtRmlsdGVycyk6IHZvaWQge1xuICAgIHRoaXMuc2V2ZXJpdHlPcHRpb25zID0gc2V2ZXJpdHlPcHRpb25zO1xuICAgIHRoaXMuc2hvd0NsZWFyZWQgPSBzaG93Q2xlYXJlZDtcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZXMgPSBzZWxlY3RlZERhdGVzO1xuICAgIHRoaXMuc2VsZWN0ZWRTZXZlcml0aWVzID0gdGhpcy5hbGFybXNWaWV3U2VydmljZS51cGRhdGVTZWxlY3RlZFNldmVyaXRpZXModGhpcy5zZXZlcml0eU9wdGlvbnMpO1xuICAgIHRoaXMuYWxhcm1zVmlld1NlcnZpY2UucmVsb2FkQWxhcm1zTGlzdCQubmV4dCgpO1xuICAgIHRoaXMuaXNSZWFsdGltZUFjdGl2ZS5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIGFzeW5jIGFwcGx5RGF0ZUZpbHRlcihzZWxlY3RlZERhdGVzOiBbRGF0ZSwgRGF0ZV0pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmFsYXJtcyQubmV4dChhd2FpdCB0aGlzLmFsYXJtc1ZpZXdTZXJ2aWNlLnJldHJpZXZlQWxhcm1zQnlEYXRlKHNlbGVjdGVkRGF0ZXMpKTtcbiAgICB0aGlzLmlzUmVhbHRpbWVBY3RpdmUubmV4dChmYWxzZSk7XG4gIH1cblxuICBhc3luYyBjbGVhckFsbCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgdHJhbnNsYXRlZEJvZHkgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgZ2V0dGV4dCgnRG8geW91IHJlYWxseSB3YW50IHRvIGNsZWFyIGFsbCBhbGFybXMgb2Ygc2VsZWN0ZWQgc2V2ZXJpdGllcz8nKVxuICAgICAgKTtcbiAgICAgIGF3YWl0IHRoaXMubW9kYWxTZXJ2aWNlLmNvbmZpcm0oXG4gICAgICAgIGdldHRleHQoJ0NvbmZpcm0gY2xlYXJpbmcgYWxhcm1zPycpLFxuICAgICAgICB0cmFuc2xhdGVkQm9keSxcbiAgICAgICAgJ2RhbmdlcicsXG4gICAgICAgIHtcbiAgICAgICAgICBvazogZ2V0dGV4dCgnQ29uZmlybScpLFxuICAgICAgICAgIGNhbmNlbDogZ2V0dGV4dCgnQ2FuY2VsJylcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIG1vZGFsIGNhbmNlbGVkXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5jbGVhckFsYXJtcygpO1xuICB9XG5cbiAgcmVmcmVzaCgpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZUFsYXJtcygpO1xuICAgIHRoaXMuaXNSZWFsdGltZUFjdGl2ZS5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIGNoYW5nZUludGVydmFsKHZhbHVlID0gdHJ1ZSk6IHZvaWQge1xuICAgIHRoaXMuc2hvdWxkU2hvd0ludGVydmFsVG9nZ2xlJC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIHRvZ2dsZVJlYWx0aW1lU3RhdGUoKTogdm9pZCB7XG4gICAgdGhpcy5pc1JlYWx0aW1lVG9nZ2xlT24gPSAhdGhpcy5pc1JlYWx0aW1lVG9nZ2xlT247XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUxlZ2FjeVJlYWx0aW1lKCkge1xuICAgIHRoaXMucmVhbHRpbWVJY29uVGl0bGUgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChnZXR0ZXh0KCdSZWFsdGltZSBhY3RpdmUnKSk7XG4gICAgdGhpcy5zdWJzY3JpYmVUb1JlYWx0aW1lVXBkYXRlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjbGVhckFsYXJtcygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5hbGFybXNWaWV3U2VydmljZS5jbGVhckFsbEFjdGl2ZUFsYXJtcyhcbiAgICAgICAgdGhpcy5zZWxlY3RlZFNldmVyaXRpZXMsXG4gICAgICAgIHRoaXMuY29udGV4dFNvdXJjZUlkXG4gICAgICApO1xuXG4gICAgICBpZiAocmVzdWx0LnJlc29sdmVkSW1tZWRpYXRlbHkpIHtcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc3VjY2Vzcyh0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChnZXR0ZXh0KCdBbGFybXMgY2xlYXJlZC4nKSkpO1xuICAgICAgICB0aGlzLmJhY2tUb1Jvb3RSb3V0ZSgpO1xuICAgICAgICB0aGlzLnJlZnJlc2goKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnN1Y2Nlc3MoXG4gICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZ2V0dGV4dCgnQWxhcm1zIGFyZSBiZWluZyBjbGVhcmVkIGluIGJhY2tncm91bmQuJykpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZFNlcnZlckZhaWx1cmUoZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYmFja1RvUm9vdFJvdXRlKCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRleHREYXRhID0gdGhpcy5jb250ZXh0Um91dGVTZXJ2aWNlLmdldENvbnRleHREYXRhKHRoaXMuYWN0aXZhdGVkUm91dGUpO1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKHRoaXMuYWxhcm1zVmlld1NlcnZpY2UuZ2V0Um91dGVyTmF2aWdhdGlvbkFycmF5KGNvbnRleHREYXRhKSwge1xuICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJ1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRBbGFybXMoKTogUHJvbWlzZTxJUmVzdWx0TGlzdDxJQWxhcm0+PiB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nJC5uZXh0KHRydWUpO1xuXG4gICAgICBjb25zdCBhZGRpdGlvbmFsRmlsdGVyOiBQYXJ0aWFsPEFsYXJtUXVlcnlGaWx0ZXI+ID0ge307XG5cbiAgICAgIGlmICh0aGlzLmNvbnRleHRTb3VyY2VJZCkge1xuICAgICAgICAoYWRkaXRpb25hbEZpbHRlci5zb3VyY2UgPSB0aGlzLmNvbnRleHRTb3VyY2VJZCksXG4gICAgICAgICAgKGFkZGl0aW9uYWxGaWx0ZXIud2l0aFNvdXJjZUFzc2V0cyA9IHRydWUpLFxuICAgICAgICAgIChhZGRpdGlvbmFsRmlsdGVyLndpdGhTb3VyY2VEZXZpY2VzID0gdHJ1ZSk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLnR5cGVGaWx0ZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgYWRkaXRpb25hbEZpbHRlci50eXBlID0gdGhpcy50eXBlRmlsdGVycy5tYXAoKHsgZmlsdGVycyB9KSA9PiBmaWx0ZXJzLnR5cGUpLmpvaW4oJywnKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWxhcm1zVmlld1NlcnZpY2UucmV0cmlldmVGaWx0ZXJlZEFsYXJtcyhcbiAgICAgICAgdGhpcy5zZWxlY3RlZFNldmVyaXRpZXMsXG4gICAgICAgIHRoaXMuc2hvd0NsZWFyZWQsXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlcyxcbiAgICAgICAgYWRkaXRpb25hbEZpbHRlclxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaWYgKGVycm9yPy5yZXM/LnN0YXR1cyA9PT0gNDAzKSB7XG4gICAgICAgIHRoaXMuaXNEaXNhYmxlZCA9IHRydWU7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZFNlcnZlckZhaWx1cmUoZXJyb3IpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmlzTG9hZGluZyQubmV4dChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB1cGRhdGVBbGFybXMoKSB7XG4gICAgdGhpcy5hbGFybXMkLm5leHQoYXdhaXQgdGhpcy5nZXRBbGFybXMoKSk7XG4gIH1cblxuICBwcml2YXRlIHN1YnNjcmliZVRvUmVhbHRpbWVVcGRhdGVzKCk6IHZvaWQge1xuICAgIHRoaXMuYWxhcm1XaXRoQ2hpbGRyZW5SZWFsdGltZVNlcnZpY2VcbiAgICAgIC5vbkFsbCQodGhpcy5jb250ZXh0U291cmNlSWQpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgICB0aHJvdHRsZVRpbWUoVEhST1RUTEVfUkVBTFRJTUVfUkVGUkVTSCwgdW5kZWZpbmVkLCB7IHRyYWlsaW5nOiB0cnVlIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuaXNSZWFsdGltZVRvZ2dsZU9uKSB7XG4gICAgICAgICAgdGhpcy5yZWZyZXNoKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5pc1JlYWx0aW1lQWN0aXZlLm5leHQodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplQ29udGV4dFNvdXJjZUlkKCk6IHZvaWQge1xuICAgIGNvbnN0IHJvdXRlQ29udGV4dCA9IHRoaXMuY29udGV4dFJvdXRlU2VydmljZS5nZXRDb250ZXh0RGF0YSh0aGlzLmFjdGl2YXRlZFJvdXRlKTtcbiAgICBpZiAoIXJvdXRlQ29udGV4dCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB7IGNvbnRleHQsIGNvbnRleHREYXRhIH0gPSByb3V0ZUNvbnRleHQ7XG4gICAgaWYgKFxuICAgICAgW1ZpZXdDb250ZXh0LkRldmljZSwgVmlld0NvbnRleHQuR3JvdXAsIFZpZXdDb250ZXh0LlNlcnZpY2UsIFZpZXdDb250ZXh0LlNpbXVsYXRvcnNdLmluY2x1ZGVzKFxuICAgICAgICBjb250ZXh0XG4gICAgICApXG4gICAgKSB7XG4gICAgICB0aGlzLmNvbnRleHRTb3VyY2VJZCA9IGNvbnRleHREYXRhPy5pZDtcbiAgICB9XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCIoYWN0aXZhdGVkUm91dGUuZGF0YSB8IGFzeW5jKT8udGl0bGVcIj5cbiAgPGM4eS10aXRsZT57eyBUSVRMRSB8IHRyYW5zbGF0ZSB9fTwvYzh5LXRpdGxlPlxuPC9uZy1jb250YWluZXI+XG5cbjxjOHktYWN0aW9uLWJhci1pdGVtXG4gIFtwbGFjZW1lbnRdPVwiJ2xlZnQnXCJcbiAgaXRlbUNsYXNzPVwibmF2YmFyLWZvcm0gbWluLXdpZHRoLWZpdFwiXG4+XG4gIDxjOHktYWxhcm1zLWZpbHRlclxuICAgIGNsYXNzPVwiZC1ibG9jayBmaXQtd1wiXG4gICAgW2NvbnRleHRTb3VyY2VJZF09XCJjb250ZXh0U291cmNlSWRcIlxuICAgIChvbkZpbHRlckFwcGxpZWQpPVwiYXBwbHlGb3JtRmlsdGVycygkZXZlbnQpXCJcbiAgPjwvYzh5LWFsYXJtcy1maWx0ZXI+XG48L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG5cbjxjOHktYWN0aW9uLWJhci1pdGVtXG4gIFtwbGFjZW1lbnRdPVwiJ2xlZnQnXCJcbiAgaXRlbUNsYXNzPVwibmF2YmFyLWZvcm0gbWluLXdpZHRoLWZpdFwiXG4+XG4gIDxjOHktYWxhcm1zLWRhdGUtZmlsdGVyIChkYXRlRmlsdGVyQ2hhbmdlKT1cImFwcGx5Rm9ybUZpbHRlcnMoJGV2ZW50KVwiPjwvYzh5LWFsYXJtcy1kYXRlLWZpbHRlcj5cbjwvYzh5LWFjdGlvbi1iYXItaXRlbT5cblxuPGM4eS1hY3Rpb24tYmFyLWl0ZW1cbiAgW3BsYWNlbWVudF09XCInbGVmdCdcIlxuICBpdGVtQ2xhc3M9XCJuYXZiYXItZm9ybVwiXG4+XG4gIDxjOHktYWxhcm1zLXR5cGUtZmlsdGVyXG4gICAgY2xhc3M9XCJkLWJsb2NrIGZpdC13XCJcbiAgICBbYWxhcm1zXT1cImFsYXJtcyQgfCBhc3luY1wiXG4gICAgKG9uRmlsdGVyQ2hhbmdlZCk9XCJhcHBseVR5cGVGaWx0ZXJzKCRldmVudClcIlxuICA+PC9jOHktYWxhcm1zLXR5cGUtZmlsdGVyPlxuPC9jOHktYWN0aW9uLWJhci1pdGVtPlxuXG48Yzh5LWFjdGlvbi1iYXItaXRlbVxuICBbcGxhY2VtZW50XT1cIidyaWdodCdcIlxuICBbcHJpb3JpdHldPVwiMFwiXG4+XG4gIDxidXR0b25cbiAgICBjbGFzcz1cImJ0biBidG4tbGlua1wiXG4gICAgW3RpdGxlXT1cIidDbGVhciBhbGwgYWxhcm1zJyB8IHRyYW5zbGF0ZVwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgKGNsaWNrKT1cImNsZWFyQWxsKClcIlxuICAgIGRhdGEtY3k9XCJjOHktYWxhcm1zLXZpZXctLWNsZWFyLWFsbC1idXR0b25cIlxuICA+XG4gICAgPGkgYzh5SWNvbj1cImM4eS1hbGVydC1pZGxlXCI+PC9pPlxuICAgIHt7ICdDbGVhciBhbGxgYWxhcm1zYCcgfCB0cmFuc2xhdGUgfX1cbiAgPC9idXR0b24+XG48L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG5cbjwhLS1SZWFsdGltZSBidXR0b24tLT5cbjxuZy10ZW1wbGF0ZSAjcmVhbHRpbWVSZWZyZXNoPlxuICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAtYnRuXCI+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgYnRuLXNtXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1JlZnJlc2gnIHwgdHJhbnNsYXRlXCJcbiAgICAgIFt0b29sdGlwXT1cIlxuICAgICAgICAoaXNSZWFsdGltZUFjdGl2ZSB8IGFzeW5jKVxuICAgICAgICAgID8gKE5FV19SRUFMVElNRV9BTEFSTV9NRVNTQUdFIHwgdHJhbnNsYXRlKVxuICAgICAgICAgIDogKFJFRlJFU0hfTEFCRUwgfCB0cmFuc2xhdGUpXG4gICAgICBcIlxuICAgICAgcGxhY2VtZW50PVwibGVmdFwiXG4gICAgICBjb250YWluZXI9XCJib2R5XCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgW2FkYXB0aXZlUG9zaXRpb25dPVwiZmFsc2VcIlxuICAgICAgW2RlbGF5XT1cIjUwMFwiXG4gICAgICBbZGlzYWJsZWRdPVwiaXNMb2FkaW5nJCB8IGFzeW5jXCJcbiAgICAgIChjbGljayk9XCJyZWZyZXNoKClcIlxuICAgID5cbiAgICAgIDxzcGFuXG4gICAgICAgIGNsYXNzPVwidGFnIHRhZy0taW5mbyBtLXItOFwiXG4gICAgICAgICpuZ0lmPVwiaXNSZWFsdGltZUFjdGl2ZSB8IGFzeW5jXCJcbiAgICAgID5cbiAgICAgICAge3sgJ05ldyBhbGFybXMnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L3NwYW4+XG4gICAgICA8aVxuICAgICAgICBjOHlJY29uPVwicmVmcmVzaFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgJ2ljb24tc3Bpbic6IGlzTG9hZGluZyQgfCBhc3luYyB9XCJcbiAgICAgID48L2k+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJjOHktcmVhbHRpbWUgYnRuIGJ0bi1kZWZhdWx0IGJ0bi1zbVwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInJlYWx0aW1lSWNvblRpdGxlXCJcbiAgICAgIFt0b29sdGlwXT1cInJlYWx0aW1lSWNvblRpdGxlXCJcbiAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGRhdGEtY3k9XCJjOHktYWxhcm1zLS1yZWFsdGltZS1idXR0b25cIlxuICAgICAgW2NvbnRhaW5lcl09XCInYm9keSdcIlxuICAgICAgKGNsaWNrKT1cInRvZ2dsZVJlYWx0aW1lU3RhdGUoKVwiXG4gICAgPlxuICAgICAgPHNwYW5cbiAgICAgICAgY2xhc3M9XCJjOHktcHVsc2UgbS0wXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgIGFjdGl2ZTogaXNSZWFsdGltZVRvZ2dsZU9uLFxuICAgICAgICAgIGluYWN0aXZlOiAhaXNSZWFsdGltZVRvZ2dsZU9uXG4gICAgICAgIH1cIlxuICAgICAgPjwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48Yzh5LWhlbHBcbiAgc3JjPVwiL2RvY3MvZGV2aWNlLW1hbmFnZW1lbnQtYXBwbGljYXRpb24vbW9uaXRvcmluZy1hbmQtY29udHJvbGxpbmctZGV2aWNlcy8jd29ya2luZy13aXRoLWFsYXJtc1wiXG4+PC9jOHktaGVscD5cblxuPGRpdiBjbGFzcz1cImNhcmQgY29udGVudC1mdWxscGFnZSBzcGxpdC12aWV3LS01LTcgZ3JpZF9fcm93LS0xXCI+XG4gIDxjOHktYWxhcm1zLWxpc3RcbiAgICBjbGFzcz1cImQtY29udGVudHNcIlxuICAgIFtpc0luaXRpYWxMb2FkaW5nXT1cImlzTG9hZGluZyQgfCBhc3luY1wiXG4gICAgW2FsYXJtc109XCJhbGFybXMkIHwgYXN5bmNcIlxuICAgIFt0eXBlRmlsdGVyc109XCJ0eXBlRmlsdGVyc1wiXG4gICAgKG9uU2Nyb2xsaW5nU3RhdGVDaGFuZ2UpPVwiY2hhbmdlSW50ZXJ2YWwoISRldmVudClcIlxuICAgIChvblNlbGVjdGVkQWxhcm0pPVwiY2hhbmdlSW50ZXJ2YWwoZmFsc2UpXCJcbiAgICBbc3BsaXRWaWV3XT1cInRydWVcIlxuICAgIFtoYXNQZXJtaXNzaW9uc109XCIhaXNEaXNhYmxlZFwiXG4gID5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNJbnRlcnZhbFJlZnJlc2g7IGVsc2UgcmVhbHRpbWVSZWZyZXNoXCI+XG4gICAgICA8Yzh5LWFsYXJtcy1pbnRlcnZhbC1yZWZyZXNoXG4gICAgICAgIFthbGFybXNMaXN0TG9hZGluZyRdPVwiaXNMb2FkaW5nJFwiXG4gICAgICAgIFtpc0ludGVydmFsVG9nZ2xlRW5hYmxlZF09XCJzaG91bGRTaG93SW50ZXJ2YWxUb2dnbGUkIHwgYXN5bmNcIlxuICAgICAgICAob25Db3VudGRvd25FbmRlZCk9XCJyZWZyZXNoKClcIlxuICAgICAgICBbaXNEaXNhYmxlZF09XCJpc0Rpc2FibGVkXCJcbiAgICAgID48L2M4eS1hbGFybXMtaW50ZXJ2YWwtcmVmcmVzaD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9jOHktYWxhcm1zLWxpc3Q+XG5cbiAgPHJvdXRlci1vdXRsZXQgY2xhc3M9XCJkLWNvbnRlbnRzXCI+PC9yb3V0ZXItb3V0bGV0PlxuPC9kaXY+XG4iXX0=