@colijnit/sharedcomponents 1.0.70 → 254.1.2
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.
- package/3rdpartylicenses.txt +205 -0
- package/bundles/colijnit-sharedcomponents.umd.js +609 -153
- package/bundles/colijnit-sharedcomponents.umd.js.map +1 -1
- package/colijnit-sharedcomponents.d.ts +2 -0
- package/colijnit-sharedcomponents.metadata.json +1 -1
- package/esm2015/colijnit-sharedcomponents.js +3 -1
- package/esm2015/lib/businessobject/co-document-right.bo.js +1 -1
- package/esm2015/lib/components/activity-overview-component/component-activity-overview.component.js +8 -7
- package/esm2015/lib/components/activity-overview-component/components/base-activity-overview.component.js +15 -21
- package/esm2015/lib/components/image-display/image-display.component.js +7 -7
- package/esm2015/lib/components/modify-task-form/components/base-activity-summary.component.js +8 -10
- package/esm2015/lib/components/modify-task-form/components/creation-summary-block/creation-summary-block.component.js +2 -2
- package/esm2015/lib/components/modify-task-form/components/executive-summary-block/executive-summary-block.component.js +5 -5
- package/esm2015/lib/components/modify-task-form/components/notification-summary-block/notification-summary-block.component.js +2 -2
- package/esm2015/lib/components/modify-task-form/components/status-summary-block/status-summary-block.component.js +7 -4
- package/esm2015/lib/components/modify-task-form/components/task-details/task-details.component.js +7 -4
- package/esm2015/lib/components/modify-task-form/modify-task-form.component.js +39 -13
- package/esm2015/lib/components/modify-task-form/modify-task-form.module.js +10 -3
- package/esm2015/lib/components/open-activity-list/component-activity-list.component.js +42 -57
- package/esm2015/lib/components/open-activity-list/components/base-open-activity-list.component.js +5 -3
- package/esm2015/lib/components/simple-tags/simple-tags.component.js +5 -147
- package/esm2015/lib/components/simple-tags/simple-tags.module.js +4 -2
- package/esm2015/lib/components/simple-tags-form/simple-tags-form.component.js +196 -0
- package/esm2015/lib/components/simple-tags-form/simple-tags-form.module.js +26 -0
- package/esm2015/lib/components/task-modifyer/task-modifier.component.js +9 -9
- package/esm2015/lib/components/workflow-info-tiles/components/workflow-info-tile.component.js +45 -0
- package/esm2015/lib/components/workflow-info-tiles/components/workflow-info-tile.module.js +22 -0
- package/esm2015/lib/components/workflow-info-tiles/workflow-info-tiles.component.js +55 -0
- package/esm2015/lib/components/workflow-info-tiles/workflow-info-tiles.module.js +22 -0
- package/esm2015/lib/interface/operation-callback-simple-function.js +1 -1
- package/esm2015/lib/service/shared-connector.service.js +93 -1
- package/esm2015/lib/service/shared.service.js +44 -1
- package/esm2015/public-api.js +5 -1
- package/fesm2015/colijnit-sharedcomponents.js +571 -224
- package/fesm2015/colijnit-sharedcomponents.js.map +1 -1
- package/index.html +2 -2
- package/lib/components/activity-overview-component/component-activity-overview.component.d.ts +3 -1
- package/lib/components/activity-overview-component/components/base-activity-overview.component.d.ts +3 -8
- package/lib/components/modify-task-form/components/base-activity-summary.component.d.ts +3 -4
- package/lib/components/modify-task-form/components/executive-summary-block/executive-summary-block.component.d.ts +2 -2
- package/lib/components/modify-task-form/components/status-summary-block/status-summary-block.component.d.ts +3 -1
- package/lib/components/modify-task-form/components/task-details/task-details.component.d.ts +3 -1
- package/lib/components/modify-task-form/modify-task-form.component.d.ts +9 -4
- package/lib/components/modify-task-form/style/_layout.scss +4 -0
- package/lib/components/open-activity-list/component-activity-list.component.d.ts +9 -11
- package/lib/components/open-activity-list/components/base-open-activity-list.component.d.ts +2 -0
- package/lib/components/simple-tags/simple-tags.component.d.ts +1 -8
- package/lib/components/simple-tags-form/simple-tags-form.component.d.ts +29 -0
- package/lib/components/simple-tags-form/simple-tags-form.module.d.ts +2 -0
- package/lib/components/simple-tags-form/style/_layout.scss +257 -0
- package/lib/components/simple-tags-form/style/_material-definition.scss +39 -0
- package/lib/components/simple-tags-form/style/_theme.scss +4 -0
- package/lib/components/simple-tags-form/style/material.scss +4 -0
- package/lib/components/task-modifyer/task-modifier.component.d.ts +3 -5
- package/lib/components/workflow-info-tiles/components/style/_layout.scss +49 -0
- package/lib/components/workflow-info-tiles/components/style/_material-definition.scss +0 -0
- package/lib/components/workflow-info-tiles/components/style/_theme.scss +4 -0
- package/lib/components/workflow-info-tiles/components/style/material.scss +4 -0
- package/lib/components/workflow-info-tiles/components/workflow-info-tile.component.d.ts +15 -0
- package/lib/components/workflow-info-tiles/components/workflow-info-tile.module.d.ts +2 -0
- package/lib/components/workflow-info-tiles/style/_layout.scss +16 -0
- package/lib/components/workflow-info-tiles/style/_material-definition.scss +0 -0
- package/lib/components/workflow-info-tiles/style/_theme.scss +4 -0
- package/lib/components/workflow-info-tiles/style/material.scss +4 -0
- package/lib/components/workflow-info-tiles/workflow-info-tiles.component.d.ts +21 -0
- package/lib/components/workflow-info-tiles/workflow-info-tiles.module.d.ts +2 -0
- package/lib/service/shared-connector.service.d.ts +10 -0
- package/lib/service/shared.service.d.ts +12 -0
- package/main.894c3ac9caba556953e2.js +1 -0
- package/package.json +6 -5
- package/public-api.d.ts +4 -0
- package/styles.b92683eab3a233f3fb51.css +1 -0
- package/main.36b466467ac98ce720f9.js +0 -1
- package/styles.6375d1d30814ecba5d0c.css +0 -1
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import { __awaiter, __decorate } from "tslib";
|
|
2
2
|
import { Component, EventEmitter, forwardRef, HostBinding, Input, Output } from "@angular/core";
|
|
3
3
|
import { Activity } from "@colijnit/mainapi/build/model/activity.bo";
|
|
4
|
-
import {
|
|
5
|
-
import { FormMasterService, SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME } from "@colijnit/corecomponents_v12";
|
|
4
|
+
import { FormMasterService, IconCacheService, SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME } from "@colijnit/corecomponents_v12";
|
|
6
5
|
import { TableName } from "@colijnit/mainapi/build/enum/table-name.enum";
|
|
7
6
|
import { BusinessObjectFactory } from "@colijnit/ioneconnector/build/service/business-object-factory";
|
|
8
7
|
import { InputBoolean } from "../../decorator/input-boolean.decorator";
|
|
9
8
|
import { SharedService } from "../../service/shared.service";
|
|
9
|
+
import { TagCategory } from "@colijnit/mainapi/build/enum/tab-category.enum";
|
|
10
10
|
export class ModifyTaskFormComponent {
|
|
11
|
-
constructor(_boFactory, sharedService
|
|
11
|
+
constructor(_boFactory, sharedService, iconCacheService
|
|
12
12
|
//private _mediaMonitor: MediaMonitorService,
|
|
13
13
|
/*private _activityService: ActivityService*/
|
|
14
14
|
) {
|
|
15
15
|
this._boFactory = _boFactory;
|
|
16
16
|
this.sharedService = sharedService;
|
|
17
|
-
this.
|
|
17
|
+
this.iconCacheService = iconCacheService;
|
|
18
18
|
//public readonly TagCategory: typeof TagCategory = TagCategory;
|
|
19
19
|
this.TableNames = TableName;
|
|
20
20
|
this.readonly = false;
|
|
@@ -26,6 +26,7 @@ export class ModifyTaskFormComponent {
|
|
|
26
26
|
this.activities = [];
|
|
27
27
|
this.table = TableName.Tasks;
|
|
28
28
|
this.expandActivities = false;
|
|
29
|
+
this.showTagPopup = false;
|
|
29
30
|
}
|
|
30
31
|
/* @ViewChild(ActivityActivitiesComponent, { static: true })
|
|
31
32
|
public activityActivities: ActivityActivitiesComponent;*/
|
|
@@ -54,6 +55,7 @@ export class ModifyTaskFormComponent {
|
|
|
54
55
|
}
|
|
55
56
|
ngOnInit() {
|
|
56
57
|
this._getActivities();
|
|
58
|
+
this._getTags();
|
|
57
59
|
}
|
|
58
60
|
showContent(menu) {
|
|
59
61
|
this.selectedMenu = menu;
|
|
@@ -91,6 +93,13 @@ export class ModifyTaskFormComponent {
|
|
|
91
93
|
this.expandActivities = true;
|
|
92
94
|
this.showWorkLog.emit();
|
|
93
95
|
}
|
|
96
|
+
handleEditTags() {
|
|
97
|
+
this._getTags();
|
|
98
|
+
this.showTagPopup = true;
|
|
99
|
+
}
|
|
100
|
+
handleSaveTags(tags) {
|
|
101
|
+
this.activity.task.tags = tags;
|
|
102
|
+
}
|
|
94
103
|
_updateTaskObject(activity, prop) {
|
|
95
104
|
const cloneActivity = this._boFactory.makeWithRawBackendData(Activity, activity);
|
|
96
105
|
if (cloneActivity.isNew) {
|
|
@@ -115,6 +124,20 @@ export class ModifyTaskFormComponent {
|
|
|
115
124
|
this.activities = yield this.sharedService.getActivities(this.table, this.key.toString());
|
|
116
125
|
});
|
|
117
126
|
}
|
|
127
|
+
_getTags() {
|
|
128
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
129
|
+
this.allTags = yield this.sharedService.getTagsFullTree(TagCategory.tasks, true);
|
|
130
|
+
/*if (!this.key) {
|
|
131
|
+
return;
|
|
132
|
+
} else {
|
|
133
|
+
this.editingTags = await this.sharedService.getJoinedTags(this.table, this.key.toString());
|
|
134
|
+
}*/ /*if (!this.key) {
|
|
135
|
+
return;
|
|
136
|
+
} else {
|
|
137
|
+
this.editingTags = await this.sharedService.getJoinedTags(this.table, this.key.toString());
|
|
138
|
+
}*/
|
|
139
|
+
});
|
|
140
|
+
}
|
|
118
141
|
}
|
|
119
142
|
ModifyTaskFormComponent.decorators = [
|
|
120
143
|
{ type: Component, args: [{
|
|
@@ -216,15 +239,17 @@ ModifyTaskFormComponent.decorators = [
|
|
|
216
239
|
(activityChange)="activityChange.emit($event)" noBorder
|
|
217
240
|
></co-notification-summary-block>
|
|
218
241
|
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
242
|
+
<div class="edit-tags-wrapper">
|
|
243
|
+
<co-simple-tags-form [tags]="allTags"
|
|
244
|
+
[linkedTags]="activity.task.tags">
|
|
245
|
+
</co-simple-tags-form>
|
|
246
|
+
</div>
|
|
247
|
+
<div class="transaction-tag-wrapper" *ngFor="let tag of activity.task.tags">
|
|
248
|
+
<div class="tag" [textContent]="tag.description"></div>
|
|
249
|
+
</div>
|
|
226
250
|
</div>
|
|
227
251
|
</div>
|
|
252
|
+
|
|
228
253
|
</div>
|
|
229
254
|
`,
|
|
230
255
|
providers: [
|
|
@@ -238,7 +263,8 @@ ModifyTaskFormComponent.decorators = [
|
|
|
238
263
|
];
|
|
239
264
|
ModifyTaskFormComponent.ctorParameters = () => [
|
|
240
265
|
{ type: BusinessObjectFactory },
|
|
241
|
-
{ type: SharedService }
|
|
266
|
+
{ type: SharedService },
|
|
267
|
+
{ type: IconCacheService }
|
|
242
268
|
];
|
|
243
269
|
ModifyTaskFormComponent.propDecorators = {
|
|
244
270
|
activity: [{ type: Input }],
|
|
@@ -255,4 +281,4 @@ ModifyTaskFormComponent.propDecorators = {
|
|
|
255
281
|
__decorate([
|
|
256
282
|
InputBoolean()
|
|
257
283
|
], ModifyTaskFormComponent.prototype, "forceReadonly", null);
|
|
258
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kaWZ5LXRhc2stZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9tb2RpZnktdGFzay1mb3JtL21vZGlmeS10YXNrLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdEcsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxQyxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLDhDQUE4QyxFQUUvQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUd2RSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwrREFBK0QsQ0FBQztBQUNwRyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDckUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBd0gzRCxNQUFNLE9BQU8sdUJBQXVCO0lBaUZsQyxZQUNVLFVBQWlDLEVBQ2pDLGFBQTRCO0lBQ3BDLDZDQUE2QztJQUM3Qyw2Q0FBNkM7O1FBSHJDLGVBQVUsR0FBVixVQUFVLENBQXVCO1FBQ2pDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBakZ0QixTQUFJLEdBQWdCLElBQUksQ0FBQztRQUN6QyxnRUFBZ0U7UUFDaEQsZUFBVSxHQUFxQixTQUFTLENBQUM7UUE0QmxELGFBQVEsR0FBWSxLQUFLLENBQUM7UUFHMUIsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFZOUIsbUJBQWMsR0FBMkIs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LENBQUMsR0FBRyxFQUFFO2dCQUNiLE9BQU87YUFDUjtZQUNELElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUM1RixDQUFDO0tBQUE7OztZQS9RRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtnQkFDL0IsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJHVDtnQkFDRCxTQUFTLEVBQUU7b0JBQ1QsaUJBQWlCO29CQUNqQjt3QkFDRSxPQUFPLEVBQUUsOENBQThDO3dCQUN2RCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHVCQUF1QixDQUFDO3FCQUN2RDtpQkFDRjthQUNGOzs7WUF6SE8scUJBQXFCO1lBRXJCLGFBQWE7Ozt1QkFpSWxCLEtBQUs7d0JBTUwsV0FBVyxTQUFDLDJCQUEyQjtzQ0FhdkMsS0FBSzt1QkFHTCxLQUFLOzJCQUdMLEtBQUs7NEJBR0wsS0FBSztxQkFNTCxXQUFXLFNBQUMsY0FBYzs2QkFHMUIsTUFBTTsyQkFHTixNQUFNOzBCQUdOLE1BQU07O0FBYlA7SUFEQyxZQUFZLEVBQUU7NERBR2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBIb3N0QmluZGluZywgSW5wdXQsIE9uSW5pdCwgT3V0cHV0fSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0FjdGl2aXR5fSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvYWN0aXZpdHkuYm9cIjtcclxuaW1wb3J0IHtJY29ufSBmcm9tIFwiLi4vLi4vZW51bS9pY29uLmVudW1cIjtcclxuaW1wb3J0IHtcclxuICBGb3JtTWFzdGVyU2VydmljZSxcclxuICBTQ1JFRU5fQ09ORklHX0FEQVBURVJfQ09NUE9ORU5UX0lOVEVSRkFDRV9OQU1FLFxyXG4gIFNjcmVlbkNvbmZpZ0FkYXB0ZXJDb21wb25lbnRcclxufSBmcm9tIFwiQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMlwiO1xyXG5pbXBvcnQge1RhYmxlTmFtZX0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL2VudW0vdGFibGUtbmFtZS5lbnVtXCI7XHJcbmltcG9ydCB7Q29Eb2N1bWVudH0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL2NvLWRvY3VtZW50XCI7XHJcbmltcG9ydCB7QWN0aXZpdGllc1Rhc2tDb25maWdOYW1lc30gZnJvbSBcIi4uLy4uL2ludGVyZmFjZS9hY3Rpdml0aWVzLXRhc2stY29uZmlnLW5hbWVzXCI7XHJcbmltcG9ydCB7QnVzaW5lc3NPYmplY3RGYWN0b3J5fSBmcm9tIFwiQGNvbGlqbml0L2lvbmVjb25uZWN0b3IvYnVpbGQvc2VydmljZS9idXNpbmVzcy1vYmplY3QtZmFjdG9yeVwiO1xyXG5pbXBvcnQge0lucHV0Qm9vbGVhbn0gZnJvbSBcIi4uLy4uL2RlY29yYXRvci9pbnB1dC1ib29sZWFuLmRlY29yYXRvclwiO1xyXG5pbXBvcnQge1NoYXJlZFNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL3NoYXJlZC5zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJjby1tb2RpZnktdGFzay1mb3JtXCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtb2RpZnktdGFzay1oZWFkZXItd3JhcHBlclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RpZnktdGFzay1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhlYWRlci1tZW51XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cInNlbGVjdGVkTWVudSA9PT0gJ2NvbnRlbnQtbWVudTEnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbdGV4dENvbnRlbnRdPVwiJ1RBU0tfREVUQUlMUycgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNob3dDb250ZW50KCdjb250ZW50LW1lbnUxJylcIj48L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImhlYWRlci1tZW51XCJcclxuICAgICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwic2VsZWN0ZWRNZW51ID09PSAnY29udGVudC1tZW51MidcIlxyXG4gICAgICAgICAgICAgICAgW3RleHRDb250ZW50XT1cIidUQVNLX0lORk9STUFUSU9OJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93Q29udGVudCgnY29udGVudC1tZW51MicpXCI+PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJoZWFkZXItbWVudVwiXHJcbiAgICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cInNlbGVjdGVkTWVudSA9PT0gJ2NvbnRlbnQtbWVudTMnXCJcclxuICAgICAgICAgICAgICAgIFt0ZXh0Q29udGVudF09XCInUExBTk5JTkcnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInNob3dDb250ZW50KCdjb250ZW50LW1lbnUzJylcIj48L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1tZW51LXdyYXBwZXIgbmFycm93LXNjcm9sbGJhclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LW1lbnVcIiBbaGlkZGVuXT1cInNlbGVjdGVkTWVudSAhPT0gJ2NvbnRlbnQtbWVudTEnXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1yb3ctd3JhcHBlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgPGNvLXRhc2stZGV0YWlscyBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RhYmxlXT1cIlRhYmxlTmFtZXMuVGFza3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2tleV09XCJrZXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhhY3Rpdml0eSldPVwiYWN0aXZpdHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFjdGl2aXR5Q2hhbmdlKT1cImFjdGl2aXR5Q2hhbmdlLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2hvd1dvcmtMb2cpPVwiaGFuZGxlU2hvd1dvcmtMb3coKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub0JvcmRlclxyXG4gICAgICAgICAgICAgID48L2NvLXRhc2stZGV0YWlscz5cclxuICAgICAgICAgICAgICA8Y28taW5wdXQtY2hlY2tib3hcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiaW52b2ljZS1jaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ01BUktFRCcgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJhY3Rpdml0eS50YXNrLmlzSW52b2ljZWRcIj5cclxuICAgICAgICAgICAgICA8L2NvLWlucHV0LWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYXJrZWQtdGltZS13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8Y28taW5wdXQtY2hlY2tib3hcclxuICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwiYWN0aXZpdHkudGFzay53b3JrTWFuZGF0b3J5XCJcclxuICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidUSU1FUkVHSVNUUkFUSU9OX01BTkRBVE9SWScgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgIG5vTW9kdWxlU2VydmljZT5cclxuICAgICAgICAgICAgICAgIDwvY28taW5wdXQtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICA8IS0tIFRPRE8gaW1wbGVtZW50IGJhY2sgbGF0ZXItLT5cclxuICAgICAgICAgICAgICAgIDwhLS0gPGFycm93LWxpbmsgKm5nSWY9XCIhcmVhZG9ubHlcIiBsYWJlbD1cIlJFR0lTVEVSX1RJTUVfSEVSRVwiIChjbGljayk9XCJoYW5kbGVSZWdpc3RlcldvcmsoKVwiPjwvYXJyb3ctbGluaz4tLT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1yaWdodFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpdml0eS1jb250ZW50LWhlYWRlclwiIFt0ZXh0Q29udGVudF09XCInUEVSU09OUycgfCBsb2NhbGl6ZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgIDxjby1leGVjdXRpdmUtc3VtbWFyeS1ibG9ja1xyXG4gICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgIFsoYWN0aXZpdHkpXT1cImFjdGl2aXR5XCJcclxuICAgICAgICAgICAgICAgIChhY3Rpdml0eUNoYW5nZSk9XCJhY3Rpdml0eUNoYW5nZS5lbWl0KCRldmVudClcIiBub0JvcmRlclxyXG4gICAgICAgICAgICAgID48L2NvLWV4ZWN1dGl2ZS1zdW1tYXJ5LWJsb2NrPlxyXG5cclxuICAgICAgICAgICAgICA8IS0tVE9ETyBpbXBsZW1lbnQgbmV3IGZpbGUgdXBsb2FkIGhlcmUtLT5cclxuICAgICAgICAgICAgICA8IS0tIDxhY3Rpdml0eS1hdHRhY2htZW50c1xyXG4gICAgICAgICAgICAgICAgICAgICAgIFsoYWN0aXZpdHkpXT1cImFjdGl2aXR5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtrZXldPVwiYWN0aXZpdHkudGFzay5pZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW25vRm9yY2VJbnB1dF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAoYWN0aXZpdHlDaGFuZ2UpPVwiYWN0aXZpdHlDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBub0JvcmRlclxyXG4gICAgICAgICAgICAgICA+PC9hY3Rpdml0eS1hdHRhY2htZW50cz4tLT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpdml0aWVzLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgPGNvLWFjdGl2aXR5LWxpc3QgW2FjdGl2aXRpZXNdPVwiYWN0aXZpdGllc1wiPlxyXG5cclxuICAgICAgICAgICAgPC9jby1hY3Rpdml0eS1saXN0PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtbWVudVwiIFtoaWRkZW5dPVwic2VsZWN0ZWRNZW51ICE9PSAnY29udGVudC1tZW51MidcIj5cclxuICAgICAgICAgIDxjby1zdGF0dXMtc3VtbWFyeS1ibG9ja1xyXG4gICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICAgICAgICBbKGFjdGl2aXR5KV09XCJhY3Rpdml0eVwiXHJcbiAgICAgICAgICAgIFt0YWJsZV09XCJUYWJsZU5hbWVzLlRhc2tzXCJcclxuICAgICAgICAgICAgW2tleV09XCJrZXlcIlxyXG4gICAgICAgICAgICAoYWN0aXZpdHlDaGFuZ2UpPVwiYWN0aXZpdHlDaGFuZ2UuZW1pdCgkZXZlbnQpXCIgbm9Cb3JkZXJcclxuICAgICAgICAgID48L2NvLXN0YXR1cy1zdW1tYXJ5LWJsb2NrPlxyXG4gICAgICAgICAgPGNvLWNyZWF0aW9uLXN1bW1hcnktYmxvY2tcclxuICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgICAgWyhhY3Rpdml0eSldPVwiYWN0aXZpdHlcIlxyXG4gICAgICAgICAgICAoYWN0aXZpdHlDaGFuZ2UpPVwiYWN0aXZpdHlDaGFuZ2UuZW1pdCgkZXZlbnQpXCIgbm9Cb3JkZXJcclxuICAgICAgICAgID48L2NvLWNyZWF0aW9uLXN1bW1hcnktYmxvY2s+XHJcbiAgICAgICAgICA8IS0tPHBsYW5uaW5nLXN1bW1hcnktYmxvY2tcclxuICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgICAgWyhhY3Rpdml0eSldPVwiYWN0aXZpdHlcIlxyXG4gICAgICAgICAgICAgICAgICAoYWN0aXZpdHlDaGFuZ2UpPVwiYWN0aXZpdHlDaGFuZ2UuZW1pdCgkZXZlbnQpXCIgbm9Cb3JkZXJcclxuICAgICAgICAgID48L3BsYW5uaW5nLXN1bW1hcnktYmxvY2s+LS0+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtbWVudVwiIFtoaWRkZW5dPVwic2VsZWN0ZWRNZW51ICE9PSAnY29udGVudC1tZW51MydcIj5cclxuICAgICAgICAgIDxjby1ub3RpZmljYXRpb24tc3VtbWFyeS1ibG9ja1xyXG4gICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICAgICAgICBbKGFjdGl2aXR5KV09XCJhY3Rpdml0eVwiXHJcbiAgICAgICAgICAgIChhY3Rpdml0eUNoYW5nZSk9XCJhY3Rpdml0eUNoYW5nZS5lbWl0KCRldmVudClcIiBub0JvcmRlclxyXG4gICAgICAgICAgPjwvY28tbm90aWZpY2F0aW9uLXN1bW1hcnktYmxvY2s+XHJcblxyXG4gICAgICAgICAgPCEtLVRPRE8gaW1wbGVtZW50IHRhZ3MgaGVyZS0tPlxyXG4gICAgICAgICAgPCEtLTx0YWdzXHJcbiAgICAgICAgICAgICAgICAgIFsoam9pbmVkVGFncyldPVwiYWN0aXZpdHkudGFzay50YWdzXCJcclxuICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgICAgW3RhZ0NhdGVnb3J5XT1cIlRhZ0NhdGVnb3J5LnRhc2tzXCJcclxuICAgICAgICAgICAgICAgICAgW2NvbGxhcHNlYWJsZV09XCJmYWxzZVwiXHJcbiAgICAgICAgICA+PC90YWdzPi0tPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIGAsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBGb3JtTWFzdGVyU2VydmljZSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogU0NSRUVOX0NPTkZJR19BREFQVEVSX0NPTVBPTkVOVF9JTlRFUkZBQ0VfTkFNRSxcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTW9kaWZ5VGFza0Zvcm1Db21wb25lbnQpXHJcbiAgICB9XHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE1vZGlmeVRhc2tGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBTY3JlZW5Db25maWdBZGFwdGVyQ29tcG9uZW50IHtcclxuXHJcbiAgcHVibGljIHJlYWRvbmx5IEljb246IHR5cGVvZiBJY29uID0gSWNvbjtcclxuICAvL3B1YmxpYyByZWFkb25seSBUYWdDYXRlZ29yeTogdHlwZW9mIFRhZ0NhdGVnb3J5ID0gVGFnQ2F0ZWdvcnk7XHJcbiAgcHVibGljIHJlYWRvbmx5IFRhYmxlTmFtZXM6IHR5cGVvZiBUYWJsZU5hbWUgPSBUYWJsZU5hbWU7XHJcblxyXG4gIC8qIEBWaWV3Q2hpbGQoQWN0aXZpdHlBY3Rpdml0aWVzQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gICBwdWJsaWMgYWN0aXZpdHlBY3Rpdml0aWVzOiBBY3Rpdml0eUFjdGl2aXRpZXNDb21wb25lbnQ7Ki9cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGFjdGl2aXR5KHZhbHVlOiBBY3Rpdml0eSkge1xyXG4gICAgdGhpcy5fYWN0aXZpdHkgPSB2YWx1ZTtcclxuICAgIHRoaXMua2V5ID0gdGhpcy5fYWN0aXZpdHkudGFzay50YXNrSWQgKyBcIlwiO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28tbW9kaWZ5LXRhc2stZm9ybVwiKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgYWN0aXZpdHkoKTogQWN0aXZpdHkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2aXR5O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBoYXNEb2N1bWVudHMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gKHRoaXMuX2FjdGl2aXR5Py50YXNrPy5kb2N1bWVudHM/Lmxlbmd0aCA+IDApO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgYWN0aXZpdHlUYXNrQ29uZmlnTmFtZXM6IEFjdGl2aXRpZXNUYXNrQ29uZmlnTmFtZXM7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHBvcHVwQ29udGV4dDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIEBJbnB1dEJvb2xlYW4oKVxyXG4gIHB1YmxpYyBzZXQgZm9yY2VSZWFkb25seSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5yZWFkb25seSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuaGlkZGVuXCIpXHJcbiAgcHVibGljIGhpZGRlbjogYm9vbGVhbjtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGFjdGl2aXR5Q2hhbmdlOiBFdmVudEVtaXR0ZXI8QWN0aXZpdHk+ID0gbmV3IEV2ZW50RW1pdHRlcjxBY3Rpdml0eT4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHN0YXR1c0NoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgc2hvd1dvcmtMb2c6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgcHVibGljIHNlbGVjdGVkTWVudTogc3RyaW5nID0gJ2NvbnRlbnQtbWVudTEnXHJcbiAgcHVibGljIGFjdGl2aXRpZXM6IEFjdGl2aXR5W10gPSBbXTtcclxuICBwdWJsaWMgdGFibGU6IFRhYmxlTmFtZSA9IFRhYmxlTmFtZS5UYXNrcztcclxuICBwdWJsaWMga2V5OiBzdHJpbmc7XHJcbiAgcHVibGljIGV4cGFuZEFjdGl2aXRpZXM6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHVibGljIG9iamVjdENvbmZpZ05hbWU6IHN0cmluZztcclxuICBwdWJsaWMgcmVxdWlyZWQ6IGJvb2xlYW47XHJcbiAgcHVibGljIG1heExlbmd0aDogbnVtYmVyO1xyXG4gIHB1YmxpYyBkZWNpbWFsczogbnVtYmVyO1xyXG4gIHB1YmxpYyByZWRFcnJvckJhY2tncm91bmQ6IGJvb2xlYW47XHJcblxyXG4gIC8qcHVibGljIGdldCBtb2JpbGUoKTogYm9vbGVhbiB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9tZWRpYU1vbml0b3IuaXNFeHRyYVNtYWxsKCk7XHJcbiAgfSovXHJcblxyXG4gIHByaXZhdGUgX2FjdGl2aXR5OiBBY3Rpdml0eTtcclxuXHJcbiAgcHVibGljIGhhbmRsZUFkZERvY3VtZW50cyhkb2NzOiBDb0RvY3VtZW50W10pOiB2b2lkIHtcclxuICAgIGRvY3MuZm9yRWFjaChkb2MgPT4gdGhpcy5hY3Rpdml0eS50YXNrLmRvY3VtZW50cy5wdXNoKGRvYykpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUFkZERvY3VtZW50KGRvYzogQ29Eb2N1bWVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5hY3Rpdml0eS50YXNrLmRvY3VtZW50cy5wdXNoKGRvYyk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX2JvRmFjdG9yeTogQnVzaW5lc3NPYmplY3RGYWN0b3J5LFxyXG4gICAgcHJpdmF0ZSBzaGFyZWRTZXJ2aWNlOiBTaGFyZWRTZXJ2aWNlXHJcbiAgICAvL3ByaXZhdGUgX21lZGlhTW9uaXRvcjogTWVkaWFNb25pdG9yU2VydmljZSxcclxuICAgIC8qcHJpdmF0ZSBfYWN0aXZpdHlTZXJ2aWNlOiBBY3Rpdml0eVNlcnZpY2UqL1xyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZ2V0QWN0aXZpdGllcygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dDb250ZW50KG1lbnU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZE1lbnUgPSBtZW51O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVJlZ2lzdGVyV29yaygpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAvKmlmICh0aGlzLmFjdGl2aXR5QWN0aXZpdGllcykge1xyXG4gICAgICAgICAgdGhpcy5leHBhbmRBY3Rpdml0aWVzID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuYWN0aXZpdHlBY3Rpdml0aWVzLnNob3dSZWdpc3RlcldvcmtMZWFmKCk7XHJcbiAgICAgIH0qL1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU2F2ZUFjdGl2aXR5KGFjdGl2aXR5OiBBY3Rpdml0eSk6IHZvaWQge1xyXG4gICAgdGhpcy5fdXBkYXRlVGFza09iamVjdChhY3Rpdml0eSwgYWN0aXZpdHkuSXNXb3JrID8gXCJ3b3JrTG9nXCIgOiBcInJlbWFya3NcIik7XHJcbiAgICBjb25zdCBpbmRleDogbnVtYmVyID0gdGhpcy5hY3Rpdml0aWVzLmZpbmRJbmRleCgoc3JjKSA9PiB7XHJcbiAgICAgIHJldHVybiBzcmMuZ2V0SWQoKSA9PT0gYWN0aXZpdHkuZ2V0SWQoKTtcclxuICAgIH0pO1xyXG4gICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgdGhpcy5hY3Rpdml0aWVzW2luZGV4XSA9IGFjdGl2aXR5O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5hY3Rpdml0aWVzLnB1c2goYWN0aXZpdHkpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5hY3Rpdml0aWVzID0gdGhpcy5hY3Rpdml0aWVzLnNsaWNlKDApOyAvLyByZXNldCB2aWV3XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlRGVsZXRlQWN0aXZpdHkoYWN0aXZpdHk6IEFjdGl2aXR5KTogdm9pZCB7XHJcbiAgICBpZiAoYWN0aXZpdHkuSXNXb3JrKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZpdHkudGFzay5kZWxldGVXb3JrTG9nKGFjdGl2aXR5LndvcmspO1xyXG4gICAgfSBlbHNlIGlmIChhY3Rpdml0eS5Jc1JlbWFyaykge1xyXG4gICAgICB0aGlzLmFjdGl2aXR5LnRhc2suZGVsZXRlUmVtYXJrKGFjdGl2aXR5LnJlbWFyayk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU2hvd1dvcmtMb3coKTogdm9pZCB7XHJcbiAgICB0aGlzLmV4cGFuZEFjdGl2aXRpZXMgPSB0cnVlO1xyXG4gICAgdGhpcy5zaG93V29ya0xvZy5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF91cGRhdGVUYXNrT2JqZWN0KGFjdGl2aXR5OiBBY3Rpdml0eSwgcHJvcDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBjbG9uZUFjdGl2aXR5ID0gdGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoQWN0aXZpdHksIGFjdGl2aXR5KTtcclxuICAgIGlmICgoY2xvbmVBY3Rpdml0eSBhcyBBY3Rpdml0eSkuaXNOZXcpIHtcclxuICAgICAgdGhpcy5hY3Rpdml0eS50YXNrW3Byb3BdLnB1c2goYWN0aXZpdHkuZ2V0QmFzZUNvbnRlbnQoKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBpbmRleDogbnVtYmVyID0gdGhpcy5hY3Rpdml0eS50YXNrW3Byb3BdLmZpbmRJbmRleCgoc3JjKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHNyYy5nZXRJZCgpID09PSBhY3Rpdml0eS5nZXRCYXNlQ29udGVudCgpLmdldElkKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICAgIHRoaXMuYWN0aXZpdHkudGFza1twcm9wXVtpbmRleF0gPSBhY3Rpdml0eS5nZXRCYXNlQ29udGVudCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBhY3Rpdml0eS5lZGl0dGluZyA9IGZhbHNlO1xyXG4gICAgYWN0aXZpdHkuaXNOZXcgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgX2dldEFjdGl2aXRpZXMoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoIXRoaXMua2V5KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuYWN0aXZpdGllcyA9IGF3YWl0IHRoaXMuc2hhcmVkU2VydmljZS5nZXRBY3Rpdml0aWVzKHRoaXMudGFibGUsIHRoaXMua2V5LnRvU3RyaW5nKCkpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
|
|
284
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kaWZ5LXRhc2stZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9tb2RpZnktdGFzay1mb3JtL21vZGlmeS10YXNrLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdEcsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQ25FLE9BQU8sRUFDTCxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFDbkMsOENBQThDLEVBRS9DLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBR3ZFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLCtEQUErRCxDQUFDO0FBQ3BHLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBMkgzRSxNQUFNLE9BQU8sdUJBQXVCO0lBbUZsQyxZQUNVLFVBQWlDLEVBQ2pDLGFBQTRCLEVBQzdCLGdCQUFrQztJQUN6Qyw2Q0FBNkM7SUFDN0MsNkNBQTZDOztRQUpyQyxlQUFVLEdBQVYsVUFBVSxDQUF1QjtRQUNqQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM3QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBckYzQyxnRUFBZ0U7UUFDaEQsZUFBVSxHQUFxQixTQUFTLENBQUM7UUE0QmxELGFBQVEsR0FBWSxLQUFLLENBQUM7UUFHMUIsaUJBQVksR0FB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QUVyQixhQUFhO1lBVEEsZ0JBQWdCOzs7dUJBNElsQyxLQUFLO3dCQU1MLFdBQVcsU0FBQywyQkFBMkI7c0NBYXZDLEtBQUs7dUJBR0wsS0FBSzsyQkFHTCxLQUFLOzRCQUdMLEtBQUs7cUJBTUwsV0FBVyxTQUFDLGNBQWM7NkJBRzFCLE1BQU07MkJBR04sTUFBTTswQkFHTixNQUFNOztBQWJQO0lBREMsWUFBWSxFQUFFOzREQUdkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQsIE91dHB1dH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtBY3Rpdml0eX0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL2FjdGl2aXR5LmJvXCI7XHJcbmltcG9ydCB7XHJcbiAgRm9ybU1hc3RlclNlcnZpY2UsIEljb25DYWNoZVNlcnZpY2UsXHJcbiAgU0NSRUVOX0NPTkZJR19BREFQVEVSX0NPTVBPTkVOVF9JTlRFUkZBQ0VfTkFNRSxcclxuICBTY3JlZW5Db25maWdBZGFwdGVyQ29tcG9uZW50XHJcbn0gZnJvbSBcIkBjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTJcIjtcclxuaW1wb3J0IHtUYWJsZU5hbWV9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9lbnVtL3RhYmxlLW5hbWUuZW51bVwiO1xyXG5pbXBvcnQge0NvRG9jdW1lbnR9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9jby1kb2N1bWVudFwiO1xyXG5pbXBvcnQge0FjdGl2aXRpZXNUYXNrQ29uZmlnTmFtZXN9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2UvYWN0aXZpdGllcy10YXNrLWNvbmZpZy1uYW1lc1wiO1xyXG5pbXBvcnQge0J1c2luZXNzT2JqZWN0RmFjdG9yeX0gZnJvbSBcIkBjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL3NlcnZpY2UvYnVzaW5lc3Mtb2JqZWN0LWZhY3RvcnlcIjtcclxuaW1wb3J0IHtJbnB1dEJvb2xlYW59IGZyb20gXCIuLi8uLi9kZWNvcmF0b3IvaW5wdXQtYm9vbGVhbi5kZWNvcmF0b3JcIjtcclxuaW1wb3J0IHtTaGFyZWRTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9zaGFyZWQuc2VydmljZVwiO1xyXG5pbXBvcnQge1RhZ0NhdGVnb3J5fSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvZW51bS90YWItY2F0ZWdvcnkuZW51bVwiO1xyXG5pbXBvcnQge1RhZ1RyZWVJdGVtfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvdGFnLXRyZWUtaXRlbS5ib1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tbW9kaWZ5LXRhc2stZm9ybVwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibW9kaWZ5LXRhc2staGVhZGVyLXdyYXBwZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kaWZ5LXRhc2staGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoZWFkZXItbWVudVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJzZWxlY3RlZE1lbnUgPT09ICdjb250ZW50LW1lbnUxJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3RleHRDb250ZW50XT1cIidUQVNLX0RFVEFJTFMnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93Q29udGVudCgnY29udGVudC1tZW51MScpXCI+PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJoZWFkZXItbWVudVwiXHJcbiAgICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cInNlbGVjdGVkTWVudSA9PT0gJ2NvbnRlbnQtbWVudTInXCJcclxuICAgICAgICAgICAgICAgIFt0ZXh0Q29udGVudF09XCInVEFTS19JTkZPUk1BVElPTicgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd0NvbnRlbnQoJ2NvbnRlbnQtbWVudTInKVwiPjwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGVyLW1lbnVcIlxyXG4gICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJzZWxlY3RlZE1lbnUgPT09ICdjb250ZW50LW1lbnUzJ1wiXHJcbiAgICAgICAgICAgICAgICBbdGV4dENvbnRlbnRdPVwiJ1BMQU5OSU5HJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93Q29udGVudCgnY29udGVudC1tZW51MycpXCI+PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtbWVudS13cmFwcGVyIG5hcnJvdy1zY3JvbGxiYXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1tZW51XCIgW2hpZGRlbl09XCJzZWxlY3RlZE1lbnUgIT09ICdjb250ZW50LW1lbnUxJ1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtcm93LXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtbGVmdFwiPlxyXG4gICAgICAgICAgICAgIDxjby10YXNrLWRldGFpbHMgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0YWJsZV09XCJUYWJsZU5hbWVzLlRhc2tzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrZXldPVwia2V5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoYWN0aXZpdHkpXT1cImFjdGl2aXR5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhY3Rpdml0eUNoYW5nZSk9XCJhY3Rpdml0eUNoYW5nZS5lbWl0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNob3dXb3JrTG9nKT1cImhhbmRsZVNob3dXb3JrTG93KClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9Cb3JkZXJcclxuICAgICAgICAgICAgICA+PC9jby10YXNrLWRldGFpbHM+XHJcbiAgICAgICAgICAgICAgPGNvLWlucHV0LWNoZWNrYm94XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImludm9pY2UtY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIidNQVJLRUQnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgWyhtb2RlbCldPVwiYWN0aXZpdHkudGFzay5pc0ludm9pY2VkXCI+XHJcbiAgICAgICAgICAgICAgPC9jby1pbnB1dC1jaGVja2JveD5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFya2VkLXRpbWUtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgPGNvLWlucHV0LWNoZWNrYm94XHJcbiAgICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cImFjdGl2aXR5LnRhc2sud29ya01hbmRhdG9yeVwiXHJcbiAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInVElNRVJFR0lTVFJBVElPTl9NQU5EQVRPUlknIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICBub01vZHVsZVNlcnZpY2U+XHJcbiAgICAgICAgICAgICAgICA8L2NvLWlucHV0LWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgPCEtLSBUT0RPIGltcGxlbWVudCBiYWNrIGxhdGVyLS0+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxhcnJvdy1saW5rICpuZ0lmPVwiIXJlYWRvbmx5XCIgbGFiZWw9XCJSRUdJU1RFUl9USU1FX0hFUkVcIiAoY2xpY2spPVwiaGFuZGxlUmVnaXN0ZXJXb3JrKClcIj48L2Fycm93LWxpbms+LS0+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtcmlnaHRcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aXZpdHktY29udGVudC1oZWFkZXJcIiBbdGV4dENvbnRlbnRdPVwiJ1BFUlNPTlMnIHwgbG9jYWxpemVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICA8Y28tZXhlY3V0aXZlLXN1bW1hcnktYmxvY2tcclxuICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICBbKGFjdGl2aXR5KV09XCJhY3Rpdml0eVwiXHJcbiAgICAgICAgICAgICAgICAoYWN0aXZpdHlDaGFuZ2UpPVwiYWN0aXZpdHlDaGFuZ2UuZW1pdCgkZXZlbnQpXCIgbm9Cb3JkZXJcclxuICAgICAgICAgICAgICA+PC9jby1leGVjdXRpdmUtc3VtbWFyeS1ibG9jaz5cclxuXHJcbiAgICAgICAgICAgICAgPCEtLVRPRE8gaW1wbGVtZW50IG5ldyBmaWxlIHVwbG9hZCBoZXJlLS0+XHJcbiAgICAgICAgICAgICAgPCEtLSA8YWN0aXZpdHktYXR0YWNobWVudHNcclxuICAgICAgICAgICAgICAgICAgICAgICBbKGFjdGl2aXR5KV09XCJhY3Rpdml0eVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICBba2V5XT1cImFjdGl2aXR5LnRhc2suaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtub0ZvcmNlSW5wdXRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKGFjdGl2aXR5Q2hhbmdlKT1cImFjdGl2aXR5Q2hhbmdlLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgbm9Cb3JkZXJcclxuICAgICAgICAgICAgICAgPjwvYWN0aXZpdHktYXR0YWNobWVudHM+LS0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aXZpdGllcy13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgIDxjby1hY3Rpdml0eS1saXN0IFthY3Rpdml0aWVzXT1cImFjdGl2aXRpZXNcIj5cclxuXHJcbiAgICAgICAgICAgIDwvY28tYWN0aXZpdHktbGlzdD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LW1lbnVcIiBbaGlkZGVuXT1cInNlbGVjdGVkTWVudSAhPT0gJ2NvbnRlbnQtbWVudTInXCI+XHJcbiAgICAgICAgICA8Y28tc3RhdHVzLXN1bW1hcnktYmxvY2tcclxuICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgICAgWyhhY3Rpdml0eSldPVwiYWN0aXZpdHlcIlxyXG4gICAgICAgICAgICBbdGFibGVdPVwiVGFibGVOYW1lcy5UYXNrc1wiXHJcbiAgICAgICAgICAgIFtrZXldPVwia2V5XCJcclxuICAgICAgICAgICAgKGFjdGl2aXR5Q2hhbmdlKT1cImFjdGl2aXR5Q2hhbmdlLmVtaXQoJGV2ZW50KVwiIG5vQm9yZGVyXHJcbiAgICAgICAgICA+PC9jby1zdGF0dXMtc3VtbWFyeS1ibG9jaz5cclxuICAgICAgICAgIDxjby1jcmVhdGlvbi1zdW1tYXJ5LWJsb2NrXHJcbiAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgICAgICAgIFsoYWN0aXZpdHkpXT1cImFjdGl2aXR5XCJcclxuICAgICAgICAgICAgKGFjdGl2aXR5Q2hhbmdlKT1cImFjdGl2aXR5Q2hhbmdlLmVtaXQoJGV2ZW50KVwiIG5vQm9yZGVyXHJcbiAgICAgICAgICA+PC9jby1jcmVhdGlvbi1zdW1tYXJ5LWJsb2NrPlxyXG4gICAgICAgICAgPCEtLTxwbGFubmluZy1zdW1tYXJ5LWJsb2NrXHJcbiAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICAgIFsoYWN0aXZpdHkpXT1cImFjdGl2aXR5XCJcclxuICAgICAgICAgICAgICAgICAgKGFjdGl2aXR5Q2hhbmdlKT1cImFjdGl2aXR5Q2hhbmdlLmVtaXQoJGV2ZW50KVwiIG5vQm9yZGVyXHJcbiAgICAgICAgICA+PC9wbGFubmluZy1zdW1tYXJ5LWJsb2NrPi0tPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LW1lbnVcIiBbaGlkZGVuXT1cInNlbGVjdGVkTWVudSAhPT0gJ2NvbnRlbnQtbWVudTMnXCI+XHJcbiAgICAgICAgICA8Y28tbm90aWZpY2F0aW9uLXN1bW1hcnktYmxvY2tcclxuICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgICAgWyhhY3Rpdml0eSldPVwiYWN0aXZpdHlcIlxyXG4gICAgICAgICAgICAoYWN0aXZpdHlDaGFuZ2UpPVwiYWN0aXZpdHlDaGFuZ2UuZW1pdCgkZXZlbnQpXCIgbm9Cb3JkZXJcclxuICAgICAgICAgID48L2NvLW5vdGlmaWNhdGlvbi1zdW1tYXJ5LWJsb2NrPlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJlZGl0LXRhZ3Mtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICA8Y28tc2ltcGxlLXRhZ3MtZm9ybSBbdGFnc109XCJhbGxUYWdzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtlZFRhZ3NdPVwiYWN0aXZpdHkudGFzay50YWdzXCI+XHJcbiAgICAgICAgICAgIDwvY28tc2ltcGxlLXRhZ3MtZm9ybT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLXRhZy13cmFwcGVyXCIgKm5nRm9yPVwibGV0IHRhZyBvZiBhY3Rpdml0eS50YXNrLnRhZ3NcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhZ1wiIFt0ZXh0Q29udGVudF09XCJ0YWcuZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICA8L2Rpdj5cclxuICBgLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgRm9ybU1hc3RlclNlcnZpY2UsXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IFNDUkVFTl9DT05GSUdfQURBUFRFUl9DT01QT05FTlRfSU5URVJGQUNFX05BTUUsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE1vZGlmeVRhc2tGb3JtQ29tcG9uZW50KVxyXG4gICAgfVxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNb2RpZnlUYXNrRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgU2NyZWVuQ29uZmlnQWRhcHRlckNvbXBvbmVudCB7XHJcbiAgLy9wdWJsaWMgcmVhZG9ubHkgVGFnQ2F0ZWdvcnk6IHR5cGVvZiBUYWdDYXRlZ29yeSA9IFRhZ0NhdGVnb3J5O1xyXG4gIHB1YmxpYyByZWFkb25seSBUYWJsZU5hbWVzOiB0eXBlb2YgVGFibGVOYW1lID0gVGFibGVOYW1lO1xyXG5cclxuICAvKiBAVmlld0NoaWxkKEFjdGl2aXR5QWN0aXZpdGllc0NvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcclxuICAgcHVibGljIGFjdGl2aXR5QWN0aXZpdGllczogQWN0aXZpdHlBY3Rpdml0aWVzQ29tcG9uZW50OyovXHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBhY3Rpdml0eSh2YWx1ZTogQWN0aXZpdHkpIHtcclxuICAgIHRoaXMuX2FjdGl2aXR5ID0gdmFsdWU7XHJcbiAgICB0aGlzLmtleSA9IHRoaXMuX2FjdGl2aXR5LnRhc2sudGFza0lkICsgXCJcIjtcclxuICB9XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLW1vZGlmeS10YXNrLWZvcm1cIilcclxuICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGFjdGl2aXR5KCk6IEFjdGl2aXR5IHtcclxuICAgIHJldHVybiB0aGlzLl9hY3Rpdml0eTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaGFzRG9jdW1lbnRzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICh0aGlzLl9hY3Rpdml0eT8udGFzaz8uZG9jdW1lbnRzPy5sZW5ndGggPiAwKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGFjdGl2aXR5VGFza0NvbmZpZ05hbWVzOiBBY3Rpdml0aWVzVGFza0NvbmZpZ05hbWVzO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyByZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBwb3B1cENvbnRleHQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBASW5wdXRCb29sZWFuKClcclxuICBwdWJsaWMgc2V0IGZvcmNlUmVhZG9ubHkodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMucmVhZG9ubHkgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmhpZGRlblwiKVxyXG4gIHB1YmxpYyBoaWRkZW46IGJvb2xlYW47XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBhY3Rpdml0eUNoYW5nZTogRXZlbnRFbWl0dGVyPEFjdGl2aXR5PiA9IG5ldyBFdmVudEVtaXR0ZXI8QWN0aXZpdHk+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBzdGF0dXNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHNob3dXb3JrTG9nOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIHB1YmxpYyBzZWxlY3RlZE1lbnU6IHN0cmluZyA9ICdjb250ZW50LW1lbnUxJ1xyXG4gIHB1YmxpYyBhY3Rpdml0aWVzOiBBY3Rpdml0eVtdID0gW107XHJcbiAgcHVibGljIHRhYmxlOiBUYWJsZU5hbWUgPSBUYWJsZU5hbWUuVGFza3M7XHJcbiAgcHVibGljIGtleTogc3RyaW5nO1xyXG4gIHB1YmxpYyBleHBhbmRBY3Rpdml0aWVzOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBvYmplY3RDb25maWdOYW1lOiBzdHJpbmc7XHJcbiAgcHVibGljIHJlcXVpcmVkOiBib29sZWFuO1xyXG4gIHB1YmxpYyBtYXhMZW5ndGg6IG51bWJlcjtcclxuICBwdWJsaWMgZGVjaW1hbHM6IG51bWJlcjtcclxuICBwdWJsaWMgcmVkRXJyb3JCYWNrZ3JvdW5kOiBib29sZWFuO1xyXG5cclxuICBwdWJsaWMgc2hvd1RhZ1BvcHVwOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGFsbFRhZ3M6IFRhZ1RyZWVJdGVtW107XHJcbiAgLy9wdWJsaWMgZWRpdGluZ1RhZ3M6IFRhZ1RyZWVJdGVtW10gPSBbXTtcclxuXHJcbiAgLypwdWJsaWMgZ2V0IG1vYmlsZSgpOiBib29sZWFuIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX21lZGlhTW9uaXRvci5pc0V4dHJhU21hbGwoKTtcclxuICB9Ki9cclxuXHJcbiAgcHJpdmF0ZSBfYWN0aXZpdHk6IEFjdGl2aXR5O1xyXG5cclxuICBwdWJsaWMgaGFuZGxlQWRkRG9jdW1lbnRzKGRvY3M6IENvRG9jdW1lbnRbXSk6IHZvaWQge1xyXG4gICAgZG9jcy5mb3JFYWNoKGRvYyA9PiB0aGlzLmFjdGl2aXR5LnRhc2suZG9jdW1lbnRzLnB1c2goZG9jKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlQWRkRG9jdW1lbnQoZG9jOiBDb0RvY3VtZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLmFjdGl2aXR5LnRhc2suZG9jdW1lbnRzLnB1c2goZG9jKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfYm9GYWN0b3J5OiBCdXNpbmVzc09iamVjdEZhY3RvcnksXHJcbiAgICBwcml2YXRlIHNoYXJlZFNlcnZpY2U6IFNoYXJlZFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZVxyXG4gICAgLy9wcml2YXRlIF9tZWRpYU1vbml0b3I6IE1lZGlhTW9uaXRvclNlcnZpY2UsXHJcbiAgICAvKnByaXZhdGUgX2FjdGl2aXR5U2VydmljZTogQWN0aXZpdHlTZXJ2aWNlKi9cclxuICApIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2dldEFjdGl2aXRpZXMoKTtcclxuICAgIHRoaXMuX2dldFRhZ3MoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzaG93Q29udGVudChtZW51OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRNZW51ID0gbWVudTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVSZWdpc3RlcldvcmsoKTogdm9pZCB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgLyppZiAodGhpcy5hY3Rpdml0eUFjdGl2aXRpZXMpIHtcclxuICAgICAgICAgIHRoaXMuZXhwYW5kQWN0aXZpdGllcyA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmFjdGl2aXR5QWN0aXZpdGllcy5zaG93UmVnaXN0ZXJXb3JrTGVhZigpO1xyXG4gICAgICB9Ki9cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVNhdmVBY3Rpdml0eShhY3Rpdml0eTogQWN0aXZpdHkpOiB2b2lkIHtcclxuICAgIHRoaXMuX3VwZGF0ZVRhc2tPYmplY3QoYWN0aXZpdHksIGFjdGl2aXR5LklzV29yayA/IFwid29ya0xvZ1wiIDogXCJyZW1hcmtzXCIpO1xyXG4gICAgY29uc3QgaW5kZXg6IG51bWJlciA9IHRoaXMuYWN0aXZpdGllcy5maW5kSW5kZXgoKHNyYykgPT4ge1xyXG4gICAgICByZXR1cm4gc3JjLmdldElkKCkgPT09IGFjdGl2aXR5LmdldElkKCk7XHJcbiAgICB9KTtcclxuICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZpdGllc1tpbmRleF0gPSBhY3Rpdml0eTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuYWN0aXZpdGllcy5wdXNoKGFjdGl2aXR5KTtcclxuICAgIH1cclxuICAgIHRoaXMuYWN0aXZpdGllcyA9IHRoaXMuYWN0aXZpdGllcy5zbGljZSgwKTsgLy8gcmVzZXQgdmlld1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZURlbGV0ZUFjdGl2aXR5KGFjdGl2aXR5OiBBY3Rpdml0eSk6IHZvaWQge1xyXG4gICAgaWYgKGFjdGl2aXR5LklzV29yaykge1xyXG4gICAgICB0aGlzLmFjdGl2aXR5LnRhc2suZGVsZXRlV29ya0xvZyhhY3Rpdml0eS53b3JrKTtcclxuICAgIH0gZWxzZSBpZiAoYWN0aXZpdHkuSXNSZW1hcmspIHtcclxuICAgICAgdGhpcy5hY3Rpdml0eS50YXNrLmRlbGV0ZVJlbWFyayhhY3Rpdml0eS5yZW1hcmspO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVNob3dXb3JrTG93KCk6IHZvaWQge1xyXG4gICAgdGhpcy5leHBhbmRBY3Rpdml0aWVzID0gdHJ1ZTtcclxuICAgIHRoaXMuc2hvd1dvcmtMb2cuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUVkaXRUYWdzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZ2V0VGFncygpO1xyXG4gICAgdGhpcy5zaG93VGFnUG9wdXAgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVNhdmVUYWdzKHRhZ3M6IFRhZ1RyZWVJdGVtW10pOiB2b2lkIHtcclxuICAgIHRoaXMuYWN0aXZpdHkudGFzay50YWdzID0gdGFncztcclxuICB9XHJcblxyXG5cclxuXHJcbiAgcHJpdmF0ZSBfdXBkYXRlVGFza09iamVjdChhY3Rpdml0eTogQWN0aXZpdHksIHByb3A6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgY2xvbmVBY3Rpdml0eSA9IHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKEFjdGl2aXR5LCBhY3Rpdml0eSk7XHJcbiAgICBpZiAoKGNsb25lQWN0aXZpdHkgYXMgQWN0aXZpdHkpLmlzTmV3KSB7XHJcbiAgICAgIHRoaXMuYWN0aXZpdHkudGFza1twcm9wXS5wdXNoKGFjdGl2aXR5LmdldEJhc2VDb250ZW50KCkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgaW5kZXg6IG51bWJlciA9IHRoaXMuYWN0aXZpdHkudGFza1twcm9wXS5maW5kSW5kZXgoKHNyYykgPT4ge1xyXG4gICAgICAgIHJldHVybiBzcmMuZ2V0SWQoKSA9PT0gYWN0aXZpdHkuZ2V0QmFzZUNvbnRlbnQoKS5nZXRJZCgpO1xyXG4gICAgICB9KTtcclxuICAgICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgICB0aGlzLmFjdGl2aXR5LnRhc2tbcHJvcF1baW5kZXhdID0gYWN0aXZpdHkuZ2V0QmFzZUNvbnRlbnQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgYWN0aXZpdHkuZWRpdHRpbmcgPSBmYWxzZTtcclxuICAgIGFjdGl2aXR5LmlzTmV3ID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF9nZXRBY3Rpdml0aWVzKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKCF0aGlzLmtleSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmFjdGl2aXRpZXMgPSBhd2FpdCB0aGlzLnNoYXJlZFNlcnZpY2UuZ2V0QWN0aXZpdGllcyh0aGlzLnRhYmxlLCB0aGlzLmtleS50b1N0cmluZygpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgX2dldFRhZ3MoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLmFsbFRhZ3MgPSBhd2FpdCB0aGlzLnNoYXJlZFNlcnZpY2UuZ2V0VGFnc0Z1bGxUcmVlKFRhZ0NhdGVnb3J5LnRhc2tzLCB0cnVlKTtcclxuXHJcbiAgICAvKmlmICghdGhpcy5rZXkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5lZGl0aW5nVGFncyA9IGF3YWl0IHRoaXMuc2hhcmVkU2VydmljZS5nZXRKb2luZWRUYWdzKHRoaXMudGFibGUsIHRoaXMua2V5LnRvU3RyaW5nKCkpO1xyXG4gICAgfSovLyppZiAoIXRoaXMua2V5KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZWRpdGluZ1RhZ3MgPSBhd2FpdCB0aGlzLnNoYXJlZFNlcnZpY2UuZ2V0Sm9pbmVkVGFncyh0aGlzLnRhYmxlLCB0aGlzLmtleS50b1N0cmluZygpKTtcclxuICAgIH0qL1xyXG4gIH1cclxuXHJcbn1cclxuIl19
|
|
@@ -2,12 +2,15 @@ import { NgModule } from "@angular/core";
|
|
|
2
2
|
import { ModifyTaskFormComponent } from "./modify-task-form.component";
|
|
3
3
|
import { LocalizationModule } from "../../localization/localization.module";
|
|
4
4
|
import { TaskDetailsModule } from "./components/task-details/task-details.module";
|
|
5
|
-
import { InputCheckboxModule } from "@colijnit/corecomponents_v12";
|
|
5
|
+
import { ButtonModule, InputCheckboxModule } from "@colijnit/corecomponents_v12";
|
|
6
6
|
import { StatusSummaryBlockModule } from "./components/status-summary-block/status-summary-block.module";
|
|
7
7
|
import { CreationSummaryBlockModule } from "./components/creation-summary-block/creation-summary-block.module";
|
|
8
8
|
import { ExecutiveSummaryBlockModule } from "./components/executive-summary-block/executive-summary-block.module";
|
|
9
9
|
import { NotificationSummaryBlockModule } from "./components/notification-summary-block/notification-summary-block.module";
|
|
10
10
|
import { ActivityListModule } from "../activity-list/activity-list.module";
|
|
11
|
+
import { SimpleTagsModule } from "../simple-tags/simple-tags.module";
|
|
12
|
+
import { CommonModule } from "@angular/common";
|
|
13
|
+
import { SimpleTagsFormModule } from "../simple-tags-form/simple-tags-form.module";
|
|
11
14
|
export class ModifyTaskFormModule {
|
|
12
15
|
}
|
|
13
16
|
ModifyTaskFormModule.decorators = [
|
|
@@ -20,7 +23,11 @@ ModifyTaskFormModule.decorators = [
|
|
|
20
23
|
StatusSummaryBlockModule,
|
|
21
24
|
CreationSummaryBlockModule,
|
|
22
25
|
NotificationSummaryBlockModule,
|
|
23
|
-
ActivityListModule
|
|
26
|
+
ActivityListModule,
|
|
27
|
+
SimpleTagsModule,
|
|
28
|
+
ButtonModule,
|
|
29
|
+
CommonModule,
|
|
30
|
+
SimpleTagsFormModule
|
|
24
31
|
],
|
|
25
32
|
declarations: [
|
|
26
33
|
ModifyTaskFormComponent
|
|
@@ -30,4 +37,4 @@ ModifyTaskFormModule.decorators = [
|
|
|
30
37
|
]
|
|
31
38
|
},] }
|
|
32
39
|
];
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kaWZ5LXRhc2stZm9ybS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9tb2RpZnktdGFzay1mb3JtL21vZGlmeS10YXNrLWZvcm0ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDckUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDMUUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDaEYsT0FBTyxFQUFDLFlBQVksRUFBRSxtQkFBbUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQy9FLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLCtEQUErRCxDQUFDO0FBQ3ZHLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLG1FQUFtRSxDQUFDO0FBQzdHLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLHFFQUFxRSxDQUFDO0FBQ2hILE9BQU8sRUFDTCw4QkFBOEIsRUFDL0IsTUFBTSwyRUFBMkUsQ0FBQztBQUNuRixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUF5QmpGLE1BQU0sT0FBTyxvQkFBb0I7OztZQXRCaEMsUUFBUSxTQUFDO2dCQUNOLE9BQU8sRUFBRTtvQkFDTCxrQkFBa0I7b0JBQ2xCLGlCQUFpQjtvQkFDakIsbUJBQW1CO29CQUNuQiwyQkFBMkI7b0JBQzNCLHdCQUF3QjtvQkFDeEIsMEJBQTBCO29CQUMxQiw4QkFBOEI7b0JBQzlCLGtCQUFrQjtvQkFDbEIsZ0JBQWdCO29CQUNoQixZQUFZO29CQUNaLFlBQVk7b0JBQ1osb0JBQW9CO2lCQUN2QjtnQkFDSCxZQUFZLEVBQUU7b0JBQ1osdUJBQXVCO2lCQUN4QjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsdUJBQXVCO2lCQUN4QjthQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtNb2RpZnlUYXNrRm9ybUNvbXBvbmVudH0gZnJvbSBcIi4vbW9kaWZ5LXRhc2stZm9ybS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtMb2NhbGl6YXRpb25Nb2R1bGV9IGZyb20gXCIuLi8uLi9sb2NhbGl6YXRpb24vbG9jYWxpemF0aW9uLm1vZHVsZVwiO1xyXG5pbXBvcnQge1Rhc2tEZXRhaWxzTW9kdWxlfSBmcm9tIFwiLi9jb21wb25lbnRzL3Rhc2stZGV0YWlscy90YXNrLWRldGFpbHMubW9kdWxlXCI7XHJcbmltcG9ydCB7QnV0dG9uTW9kdWxlLCBJbnB1dENoZWNrYm94TW9kdWxlfSBmcm9tIFwiQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMlwiO1xyXG5pbXBvcnQge1N0YXR1c1N1bW1hcnlCbG9ja01vZHVsZX0gZnJvbSBcIi4vY29tcG9uZW50cy9zdGF0dXMtc3VtbWFyeS1ibG9jay9zdGF0dXMtc3VtbWFyeS1ibG9jay5tb2R1bGVcIjtcclxuaW1wb3J0IHtDcmVhdGlvblN1bW1hcnlCbG9ja01vZHVsZX0gZnJvbSBcIi4vY29tcG9uZW50cy9jcmVhdGlvbi1zdW1tYXJ5LWJsb2NrL2NyZWF0aW9uLXN1bW1hcnktYmxvY2subW9kdWxlXCI7XHJcbmltcG9ydCB7RXhlY3V0aXZlU3VtbWFyeUJsb2NrTW9kdWxlfSBmcm9tIFwiLi9jb21wb25lbnRzL2V4ZWN1dGl2ZS1zdW1tYXJ5LWJsb2NrL2V4ZWN1dGl2ZS1zdW1tYXJ5LWJsb2NrLm1vZHVsZVwiO1xyXG5pbXBvcnQge1xyXG4gIE5vdGlmaWNhdGlvblN1bW1hcnlCbG9ja01vZHVsZVxyXG59IGZyb20gXCIuL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uLXN1bW1hcnktYmxvY2svbm90aWZpY2F0aW9uLXN1bW1hcnktYmxvY2subW9kdWxlXCI7XHJcbmltcG9ydCB7QWN0aXZpdHlMaXN0TW9kdWxlfSBmcm9tIFwiLi4vYWN0aXZpdHktbGlzdC9hY3Rpdml0eS1saXN0Lm1vZHVsZVwiO1xyXG5pbXBvcnQge1NpbXBsZVRhZ3NNb2R1bGV9IGZyb20gXCIuLi9zaW1wbGUtdGFncy9zaW1wbGUtdGFncy5tb2R1bGVcIjtcclxuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtTaW1wbGVUYWdzRm9ybU1vZHVsZX0gZnJvbSBcIi4uL3NpbXBsZS10YWdzLWZvcm0vc2ltcGxlLXRhZ3MtZm9ybS5tb2R1bGVcIjtcclxuXHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIExvY2FsaXphdGlvbk1vZHVsZSxcclxuICAgICAgICBUYXNrRGV0YWlsc01vZHVsZSxcclxuICAgICAgICBJbnB1dENoZWNrYm94TW9kdWxlLFxyXG4gICAgICAgIEV4ZWN1dGl2ZVN1bW1hcnlCbG9ja01vZHVsZSxcclxuICAgICAgICBTdGF0dXNTdW1tYXJ5QmxvY2tNb2R1bGUsXHJcbiAgICAgICAgQ3JlYXRpb25TdW1tYXJ5QmxvY2tNb2R1bGUsXHJcbiAgICAgICAgTm90aWZpY2F0aW9uU3VtbWFyeUJsb2NrTW9kdWxlLFxyXG4gICAgICAgIEFjdGl2aXR5TGlzdE1vZHVsZSxcclxuICAgICAgICBTaW1wbGVUYWdzTW9kdWxlLFxyXG4gICAgICAgIEJ1dHRvbk1vZHVsZSxcclxuICAgICAgICBDb21tb25Nb2R1bGUsXHJcbiAgICAgICAgU2ltcGxlVGFnc0Zvcm1Nb2R1bGVcclxuICAgIF0sXHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBNb2RpZnlUYXNrRm9ybUNvbXBvbmVudFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgTW9kaWZ5VGFza0Zvcm1Db21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNb2RpZnlUYXNrRm9ybU1vZHVsZSB7XHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -11,9 +11,11 @@ import { ActivitySortType } from "@colijnit/mainapi/build/enum/activity-sort-typ
|
|
|
11
11
|
import { OperationWithAlwaysSuccessCallback } from "../../interface/operation-callback-simple-function";
|
|
12
12
|
import { PersonalActivityOverviewComponent } from "./components/personal-activity-overview/personal-activity-overview.component";
|
|
13
13
|
import { OperationWithValidationCallback } from "../../interface/operation-callback-function-with-validation";
|
|
14
|
+
import { SharedService } from "../../service/shared.service";
|
|
14
15
|
export class ComponentActivityListComponent extends BaseActivityListComponent {
|
|
15
|
-
constructor() {
|
|
16
|
+
constructor(sharedService) {
|
|
16
17
|
super();
|
|
18
|
+
this.sharedService = sharedService;
|
|
17
19
|
this.tabs = PersonalActivityTabEnum;
|
|
18
20
|
this.icons = Icon;
|
|
19
21
|
this.activityClass = Activity;
|
|
@@ -21,19 +23,12 @@ export class ComponentActivityListComponent extends BaseActivityListComponent {
|
|
|
21
23
|
this.hideTitle = false;
|
|
22
24
|
this.noFreeTasks = false;
|
|
23
25
|
this.componentActivitiesMethod = OperationWithAlwaysSuccessCallback;
|
|
24
|
-
this.fireGenericTriggerOperation = OperationWithValidationCallback;
|
|
25
|
-
this.fireTriggerOperation = OperationWithValidationCallback;
|
|
26
|
-
this.canFireTriggerOperation = OperationWithAlwaysSuccessCallback;
|
|
27
26
|
this.setHasPausedNotificationsForWorkflowProcessOperation = OperationWithValidationCallback;
|
|
28
|
-
this.lockTaskOperation = OperationWithAlwaysSuccessCallback;
|
|
29
|
-
this.deleteActivityOperation = OperationWithAlwaysSuccessCallback;
|
|
30
|
-
this.upsertActivityOperation = OperationWithAlwaysSuccessCallback;
|
|
31
27
|
this.openLinkClick = new EventEmitter();
|
|
32
28
|
this.amountActivityChanged = new EventEmitter();
|
|
33
29
|
this.linkClicked = new EventEmitter();
|
|
34
30
|
this.formCreated = new EventEmitter();
|
|
35
|
-
this.
|
|
36
|
-
this.triggerFired = new EventEmitter();
|
|
31
|
+
this.refreshRequested = new EventEmitter();
|
|
37
32
|
this.showUsergroupActivitiesChanged = new EventEmitter();
|
|
38
33
|
this.activeTab = PersonalActivityTabEnum.TODO;
|
|
39
34
|
/*public activitySortList: boolean[] = [];*/
|
|
@@ -61,24 +56,38 @@ export class ComponentActivityListComponent extends BaseActivityListComponent {
|
|
|
61
56
|
trackByFn(index, vm) {
|
|
62
57
|
return vm.activity.id + '_' + vm.activity.workflow.combinedTriggerIds;
|
|
63
58
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
this.
|
|
68
|
-
this.
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
this.
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
}*/
|
|
59
|
+
ngOnInit() {
|
|
60
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
61
|
+
this.getTheActivities();
|
|
62
|
+
/*this._subs.push(
|
|
63
|
+
this._appEventService.taskCreated.subscribe(() => {
|
|
64
|
+
this.getTheActivities();
|
|
65
|
+
}),
|
|
66
|
+
this._appEventService.taskModified.subscribe(() => {
|
|
67
|
+
this.getTheActivities();
|
|
68
|
+
})
|
|
69
|
+
);*/
|
|
70
|
+
});
|
|
71
|
+
}
|
|
78
72
|
ngOnDestroy() {
|
|
79
|
-
this._subs.forEach(s => s.unsubscribe());
|
|
73
|
+
//this._subs.forEach(s => s.unsubscribe());
|
|
80
74
|
super.ngOnDestroy();
|
|
81
75
|
}
|
|
76
|
+
getActivities() {
|
|
77
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
78
|
+
if (this.table && this.key) {
|
|
79
|
+
const allActivities = yield this.sharedService.getComponentActivitiesWithoutRelationFiltering(this.table, this.key);
|
|
80
|
+
if (allActivities) {
|
|
81
|
+
this.activities = this.noFreeTasks ? allActivities.filter(aa => !aa.task && aa.activityType !== ActivityType.WorkflowTask) :
|
|
82
|
+
allActivities.filter(aa => aa.activityType !== ActivityType.WorkflowTask);
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
this.activities = [];
|
|
86
|
+
}
|
|
87
|
+
this.amountActivityChanged.next(this.activities.length);
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
}
|
|
82
91
|
set activitiesList(allActivities) {
|
|
83
92
|
this._activitiesList = allActivities;
|
|
84
93
|
if (allActivities) {
|
|
@@ -92,18 +101,6 @@ export class ComponentActivityListComponent extends BaseActivityListComponent {
|
|
|
92
101
|
get activitiesList() {
|
|
93
102
|
return this._activitiesList;
|
|
94
103
|
}
|
|
95
|
-
/*public async getActivities(): Promise<void> {
|
|
96
|
-
if (this.table && this.key) {
|
|
97
|
-
const allActivities: Activity[] = await this._activityRepo.getComponentActivities(this.table, this.key);
|
|
98
|
-
if (allActivities) {
|
|
99
|
-
this.activities = this.noFreeTasks ? allActivities.filter(aa => !aa.task && aa.activityType !== ActivityType.WorkflowTask) :
|
|
100
|
-
allActivities.filter(aa => aa.activityType !== ActivityType.WorkflowTask);
|
|
101
|
-
} else {
|
|
102
|
-
this.activities = [];
|
|
103
|
-
}
|
|
104
|
-
this.amountActivityChanged.next(this.activities.length);
|
|
105
|
-
}
|
|
106
|
-
}*/
|
|
107
104
|
getDelegatedActivities() {
|
|
108
105
|
return __awaiter(this, void 0, void 0, function* () {
|
|
109
106
|
// const allActivities: Activity[] = await this._activityRepo.getComponentActivities(this.table, this.key);
|
|
@@ -118,10 +115,12 @@ export class ComponentActivityListComponent extends BaseActivityListComponent {
|
|
|
118
115
|
this.showUsergroupActivitiesChanged.next();
|
|
119
116
|
}
|
|
120
117
|
handleTriggerFired(activity) {
|
|
121
|
-
this.
|
|
118
|
+
this.getTheActivities();
|
|
119
|
+
this.refreshRequested.emit();
|
|
122
120
|
}
|
|
123
121
|
handleGenericTriggerFired(activity) {
|
|
124
|
-
this.
|
|
122
|
+
this.getTheActivities();
|
|
123
|
+
this.refreshRequested.emit();
|
|
125
124
|
}
|
|
126
125
|
handleFormCreation() {
|
|
127
126
|
this.formCreated.next();
|
|
@@ -197,15 +196,9 @@ ComponentActivityListComponent.decorators = [
|
|
|
197
196
|
[(expanded)]="activityListViewModel.expanded">
|
|
198
197
|
<ng-container *ngFor="let activityViewModel of activityListViewModel.activities; trackBy: trackByFn; let index = index">
|
|
199
198
|
<co-component-activity-overview *ngIf="activityViewModel.showing"
|
|
200
|
-
[fireGenericTriggerOperation]="fireGenericTriggerOperation"
|
|
201
|
-
[fireTriggerOperation]="fireTriggerOperation"
|
|
202
|
-
[canFireTriggerOperation]="canFireTriggerOperation"
|
|
203
199
|
[viewModel]="activityViewModel"
|
|
204
200
|
[userRelationId]="relationId"
|
|
205
201
|
[userGroupId]="userGroupId"
|
|
206
|
-
[lockTaskOperation]="lockTaskOperation"
|
|
207
|
-
[deleteActivityOperation]="deleteActivityOperation"
|
|
208
|
-
[upsertActivityOperation]="upsertActivityOperation"
|
|
209
202
|
(activityChange)="handleChangedActivity(index, $event)"
|
|
210
203
|
(activityDeleted)="deleteActivity($event)"
|
|
211
204
|
(genericTriggerFired)="handleGenericTriggerFired($event)"
|
|
@@ -223,9 +216,6 @@ ComponentActivityListComponent.decorators = [
|
|
|
223
216
|
[(expanded)]="activityListViewModel.expanded">
|
|
224
217
|
<ng-container *ngFor="let activityViewModel of activityListViewModel.activities; trackBy: trackByFn; let index = index">
|
|
225
218
|
<co-component-activity-overview *ngIf="activityViewModel.showing"
|
|
226
|
-
[fireGenericTriggerOperation]="fireGenericTriggerOperation"
|
|
227
|
-
[fireTriggerOperation]="fireTriggerOperation"
|
|
228
|
-
[canFireTriggerOperation]="canFireTriggerOperation"
|
|
229
219
|
[viewModel]="activityViewModel"
|
|
230
220
|
[userRelationId]="relationId"
|
|
231
221
|
[userGroupId]="userGroupId"
|
|
@@ -256,7 +246,9 @@ ComponentActivityListComponent.decorators = [
|
|
|
256
246
|
]
|
|
257
247
|
},] }
|
|
258
248
|
];
|
|
259
|
-
ComponentActivityListComponent.ctorParameters = () => [
|
|
249
|
+
ComponentActivityListComponent.ctorParameters = () => [
|
|
250
|
+
{ type: SharedService }
|
|
251
|
+
];
|
|
260
252
|
ComponentActivityListComponent.propDecorators = {
|
|
261
253
|
activityOverviewList: [{ type: ViewChildren, args: [PersonalActivityOverviewComponent,] }],
|
|
262
254
|
showClass: [{ type: HostBinding, args: ["class.co-component-activity-list",] }],
|
|
@@ -268,19 +260,12 @@ ComponentActivityListComponent.propDecorators = {
|
|
|
268
260
|
userGroupId: [{ type: Input }],
|
|
269
261
|
relationId: [{ type: Input }],
|
|
270
262
|
componentActivitiesMethod: [{ type: Input }],
|
|
271
|
-
fireGenericTriggerOperation: [{ type: Input }],
|
|
272
|
-
fireTriggerOperation: [{ type: Input }],
|
|
273
|
-
canFireTriggerOperation: [{ type: Input }],
|
|
274
263
|
setHasPausedNotificationsForWorkflowProcessOperation: [{ type: Input }],
|
|
275
|
-
lockTaskOperation: [{ type: Input }],
|
|
276
|
-
deleteActivityOperation: [{ type: Input }],
|
|
277
|
-
upsertActivityOperation: [{ type: Input }],
|
|
278
264
|
openLinkClick: [{ type: Output }],
|
|
279
265
|
amountActivityChanged: [{ type: Output }],
|
|
280
266
|
linkClicked: [{ type: Output }],
|
|
281
267
|
formCreated: [{ type: Output }],
|
|
282
|
-
|
|
283
|
-
triggerFired: [{ type: Output }],
|
|
268
|
+
refreshRequested: [{ type: Output }],
|
|
284
269
|
showUsergroupActivitiesChanged: [{ type: Output }],
|
|
285
270
|
activitiesList: [{ type: Input }]
|
|
286
271
|
};
|
|
@@ -290,4 +275,4 @@ __decorate([
|
|
|
290
275
|
__decorate([
|
|
291
276
|
InputBoolean()
|
|
292
277
|
], ComponentActivityListComponent.prototype, "noFreeTasks", void 0);
|
|
293
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWFjdGl2aXR5LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvb3Blbi1hY3Rpdml0eS1saXN0L2NvbXBvbmVudC1hY3Rpdml0eS1saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRSxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQztBQUN6RixPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFBRSxXQUFXLEVBQ3pCLEtBQUssRUFFTCxNQUFNLEVBRU4sWUFBWSxFQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxQyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDbkUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBRXJFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUV4RSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSx5REFBeUQsQ0FBQztBQUNoRyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxzREFBc0QsQ0FBQztBQUN0RixPQUFPLEVBRUwsa0NBQWtDLEVBQ25DLE1BQU0sb0RBQW9ELENBQUM7QUFDNUQsT0FBTyxFQUNMLGlDQUFpQyxFQUNsQyxNQUFNLDhFQUE4RSxDQUFDO0FBQ3RGLE9BQU8sRUFFTCwrQkFBK0IsRUFDaEMsTUFBTSw2REFBNkQsQ0FBQztBQW9GckUsTUFBTSxPQUFPLDhCQUErQixTQUFRLHlCQUF5QjtJQWdIM0U7UUFFTSxL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LENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxFQUFDLFNBQVMsRUFBRSxnQ0FBZ0MsRUFBQyxDQUFDLENBQUM7d0JBQ3hFLFVBQVUsQ0FBQyxvQkFBb0IsRUFBRSxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQztxQkFDakUsQ0FBQztpQkFDTDthQUNKOzs7O21DQU9JLFlBQVksU0FBQyxpQ0FBaUM7d0JBRzlDLFdBQVcsU0FBQyxrQ0FBa0M7b0JBSzlDLEtBQUs7a0JBVUwsS0FBSzt3QkFVTCxLQUFLOzBCQUlMLEtBQUs7MEJBSUwsS0FBSzswQkFHTCxLQUFLO3lCQUdMLEtBQUs7d0NBR0wsS0FBSzswQ0FHTCxLQUFLO21DQUdMLEtBQUs7c0NBR0wsS0FBSzttRUFHTCxLQUFLO2dDQUdMLEtBQUs7c0NBR0wsS0FBSztzQ0FHTCxLQUFLOzRCQUdMLE1BQU07b0NBR04sTUFBTTswQkFHTixNQUFNOzBCQUdOLE1BQU07a0NBR04sTUFBTTsyQkFHTixNQUFNOzZDQUdOLE1BQU07NkJBMkNOLEtBQUs7O0FBcEdOO0lBREMsWUFBWSxFQUFFO2lFQUNtQjtBQUlsQztJQURDLFlBQVksRUFBRTttRUFDcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2FuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlcn0gZnJvbSBcIkBhbmd1bGFyL2FuaW1hdGlvbnNcIjtcclxuaW1wb3J0IHtCYXNlQWN0aXZpdHlMaXN0Q29tcG9uZW50fSBmcm9tIFwiLi9jb21wb25lbnRzL2Jhc2Utb3Blbi1hY3Rpdml0eS1saXN0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPdXRwdXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFZpZXdDaGlsZHJlblxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7SWNvbn0gZnJvbSBcIi4uLy4uL2VudW0vaWNvbi5lbnVtXCI7XHJcbmltcG9ydCB7QWN0aXZpdHl9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9hY3Rpdml0eS5ib1wiO1xyXG5pbXBvcnQge0lucHV0Qm9vbGVhbn0gZnJvbSBcIi4uLy4uL2RlY29yYXRvci9pbnB1dC1ib29sZWFuLmRlY29yYXRvclwiO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHtBY3Rpdml0eVR5cGV9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9lbnVtL2FjdGl2aXR5LXR5cGVcIjtcclxuaW1wb3J0IHtBY3Rpdml0eVZpZXdNb2RlbH0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL2FjdGl2aXR5LXZpZXctbW9kZWxcIjtcclxuaW1wb3J0IHtQZXJzb25hbEFjdGl2aXR5VGFiRW51bX0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL2VudW0vcGVyc29uYWwtYWN0aXZpdHktdGFiLmVudW1cIjtcclxuaW1wb3J0IHtBY3Rpdml0eVNvcnRUeXBlfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvZW51bS9hY3Rpdml0eS1zb3J0LXR5cGUuZW51bVwiO1xyXG5pbXBvcnQge1xyXG4gIE9wZXJhdGlvbkNhbGxiYWNrU2ltcGxlRnVuY3Rpb24sXHJcbiAgT3BlcmF0aW9uV2l0aEFsd2F5c1N1Y2Nlc3NDYWxsYmFja1xyXG59IGZyb20gXCIuLi8uLi9pbnRlcmZhY2Uvb3BlcmF0aW9uLWNhbGxiYWNrLXNpbXBsZS1mdW5jdGlvblwiO1xyXG5pbXBvcnQge1xyXG4gIFBlcnNvbmFsQWN0aXZpdHlPdmVydmlld0NvbXBvbmVudFxyXG59IGZyb20gXCIuL2NvbXBvbmVudHMvcGVyc29uYWwtYWN0aXZpdHktb3ZlcnZpZXcvcGVyc29uYWwtYWN0aXZpdHktb3ZlcnZpZXcuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7XHJcbiAgT3BlcmF0aW9uQ2FsbGJhY2tGdW5jdGlvbldpdGhWYWxpZGF0aW9uLFxyXG4gIE9wZXJhdGlvbldpdGhWYWxpZGF0aW9uQ2FsbGJhY2tcclxufSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlL29wZXJhdGlvbi1jYWxsYmFjay1mdW5jdGlvbi13aXRoLXZhbGlkYXRpb25cIjtcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImNvLWNvbXBvbmVudC1hY3Rpdml0eS1saXN0XCIsXHJcbiAgICB0ZW1wbGF0ZTogYFxyXG4gICAgICAgIDxjby1hY3Rpdml0eS1saXN0LWhlYWRlclxyXG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cIidBQ1RJVklUSUVTJ1wiXHJcbiAgICAgICAgICAgICAgICBbdGFibGVdPVwidGFibGVcIlxyXG4gICAgICAgICAgICAgICAgW2tleV09XCJrZXlcIlxyXG4gICAgICAgICAgICAgICAgWyhzaG93VXNlcmdyb3VwQWN0aXZpdGllcyldPVwic2hvd1VzZXJncm91cEFjdGl2aXRpZXNcIlxyXG4gICAgICAgICAgICAgICAgWyhzZWFyY2hUZXh0KV09XCJzZWFyY2hUZXh0XCJcclxuICAgICAgICAgICAgICAgIChwZXJpb2RGaWx0ZXJDbGlja2VkKT1cImRvRmlsdGVyQ2xpY2tlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIChzZWFyY2hUZXh0Q2hhbmdlKT1cImFwcGx5RmlsdGVyKClcIlxyXG4gICAgICAgICAgICAgICAgKHNob3dVc2VyZ3JvdXBBY3Rpdml0aWVzQ2hhbmdlKT1cInNob3dVc2VyZ3JvdXBBY3Rpdml0aWVzQ2hhbmdlKClcIlxyXG4gICAgICAgICAgICAgICAgW3NldEhhc1BhdXNlZE5vdGlmaWNhdGlvbnNGb3JXb3JrZmxvd1Byb2Nlc3NPcGVyYXRpb25dPVwic2V0SGFzUGF1c2VkTm90aWZpY2F0aW9uc0ZvcldvcmtmbG93UHJvY2Vzc09wZXJhdGlvblwiXHJcbiAgICAgICAgPjwvY28tYWN0aXZpdHktbGlzdC1oZWFkZXI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImFjdGl2aXR5LWxpc3QtY29udGVudFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aXZpdHktd3JhcHBlclwiIFtAc2hvd0hpZGVUYWJdPVwiYWN0aXZlVGFiXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aXZpdHktdGFiLWNvbnRlbnQgbWluaS1zY3JvbGxiYXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpdml0eUxpc3RWaWV3TW9kZWwgb2YgcHJpdmF0ZUFjdGl2aXR5TGlzdFZpZXdNb2RlbHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxjby1jb2xsYXBzaWJsZSAqbmdJZj1cImFjdGl2aXR5TGlzdFZpZXdNb2RlbC5zaG93aW5nXCIgI2NvbGxhcHNlYWJsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoZWFkZXJUaXRsZV09XCJhY3Rpdml0eUxpc3RWaWV3TW9kZWwubGFiZWwgKyAnICcgKyBhY3Rpdml0eUxpc3RWaWV3TW9kZWwuYW1vdW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKGV4cGFuZGVkKV09XCJhY3Rpdml0eUxpc3RWaWV3TW9kZWwuZXhwYW5kZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdGl2aXR5Vmlld01vZGVsIG9mIGFjdGl2aXR5TGlzdFZpZXdNb2RlbC5hY3Rpdml0aWVzOyB0cmFja0J5OiB0cmFja0J5Rm47IGxldCBpbmRleCA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28tY29tcG9uZW50LWFjdGl2aXR5LW92ZXJ2aWV3ICpuZ0lmPVwiYWN0aXZpdHlWaWV3TW9kZWwuc2hvd2luZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaXJlR2VuZXJpY1RyaWdnZXJPcGVyYXRpb25dPVwiZmlyZUdlbmVyaWNUcmlnZ2VyT3BlcmF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpcmVUcmlnZ2VyT3BlcmF0aW9uXT1cImZpcmVUcmlnZ2VyT3BlcmF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NhbkZpcmVUcmlnZ2VyT3BlcmF0aW9uXT1cImNhbkZpcmVUcmlnZ2VyT3BlcmF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2aWV3TW9kZWxdPVwiYWN0aXZpdHlWaWV3TW9kZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3VzZXJSZWxhdGlvbklkXT1cInJlbGF0aW9uSWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3VzZXJHcm91cElkXT1cInVzZXJHcm91cElkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsb2NrVGFza09wZXJhdGlvbl09XCJsb2NrVGFza09wZXJhdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGVsZXRlQWN0aXZpdHlPcGVyYXRpb25dPVwiZGVsZXRlQWN0aXZpdHlPcGVyYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Vwc2VydEFjdGl2aXR5T3BlcmF0aW9uXT1cInVwc2VydEFjdGl2aXR5T3BlcmF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhY3Rpdml0eUNoYW5nZSk9XCJoYW5kbGVDaGFuZ2VkQWN0aXZpdHkoaW5kZXgsICRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFjdGl2aXR5RGVsZXRlZCk9XCJkZWxldGVBY3Rpdml0eSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnZW5lcmljVHJpZ2dlckZpcmVkKT1cImhhbmRsZUdlbmVyaWNUcmlnZ2VyRmlyZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJpZ2dlckZpcmVkKT1cImhhbmRsZVRyaWdnZXJGaXJlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5rQ2xpY2tlZCk9XCJsaW5rQ2xpY2tlZC5lbWl0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvcm1DcmVhdGVkKT1cImhhbmRsZUZvcm1DcmVhdGlvbigpXCI+PC9jby1jb21wb25lbnQtYWN0aXZpdHktb3ZlcnZpZXc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICA8L2NvLWNvbGxhcHNpYmxlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aXZpdHktdGFiLWNvbnRlbnQgbWluaS1zY3JvbGxiYXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpdml0eUxpc3RWaWV3TW9kZWwgb2YgcHJpdmF0ZURlbGVnYXRlZEFjdGl2aXR5TGlzdFZpZXdNb2RlbHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWNvbGxhcHNpYmxlICpuZ0lmPVwiYWN0aXZpdHlMaXN0Vmlld01vZGVsLnNob3dpbmdcIiAjY29sbGFwc2VhYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaGVhZGVyVGl0bGVdPVwiYWN0aXZpdHlMaXN0Vmlld01vZGVsLmxhYmVsICsgJyAnICsgYWN0aXZpdHlMaXN0Vmlld01vZGVsLmFtb3VudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKGV4cGFuZGVkKV09XCJhY3Rpdml0eUxpc3RWaWV3TW9kZWwuZXhwYW5kZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdGl2aXR5Vmlld01vZGVsIG9mIGFjdGl2aXR5TGlzdFZpZXdNb2RlbC5hY3Rpdml0aWVzOyB0cmFja0J5OiB0cmFja0J5Rm47IGxldCBpbmRleCA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28tY29tcG9uZW50LWFjdGl2aXR5LW92ZXJ2aWV3ICpuZ0lmPVwiYWN0aXZpdHlWaWV3TW9kZWwuc2hvd2luZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmlyZUdlbmVyaWNUcmlnZ2VyT3BlcmF0aW9uXT1cImZpcmVHZW5lcmljVHJpZ2dlck9wZXJhdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmlyZVRyaWdnZXJPcGVyYXRpb25dPVwiZmlyZVRyaWdnZXJPcGVyYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NhbkZpcmVUcmlnZ2VyT3BlcmF0aW9uXT1cImNhbkZpcmVUcmlnZ2VyT3BlcmF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2aWV3TW9kZWxdPVwiYWN0aXZpdHlWaWV3TW9kZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3VzZXJSZWxhdGlvbklkXT1cInJlbGF0aW9uSWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3VzZXJHcm91cElkXT1cInVzZXJHcm91cElkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhY3Rpdml0eUNoYW5nZSk9XCJoYW5kbGVDaGFuZ2VkQWN0aXZpdHkoaW5kZXgsICRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFjdGl2aXR5RGVsZXRlZCk9XCJkZWxldGVBY3Rpdml0eSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnZW5lcmljVHJpZ2dlckZpcmVkKT1cImhhbmRsZUdlbmVyaWNUcmlnZ2VyRmlyZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJpZ2dlckZpcmVkKT1cImhhbmRsZVRyaWdnZXJGaXJlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5rQ2xpY2tlZCk9XCJsaW5rQ2xpY2tlZC5lbWl0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvcm1DcmVhdGVkKT1cImhhbmRsZUZvcm1DcmVhdGlvbigpXCI+PC9jby1jb21wb25lbnQtYWN0aXZpdHktb3ZlcnZpZXc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9jby1jb2xsYXBzaWJsZT5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIGAsXHJcbiAgICBhbmltYXRpb25zOiBbXHJcbiAgICAgICAgdHJpZ2dlcihcInNob3dIaWRlQ29udGVudFwiLCBbXHJcbiAgICAgICAgICAgIHN0YXRlKFwidm9pZFwiLCBzdHlsZSh7dHJhbnNmb3JtOiBcInNjYWxlWSgwKVwiLCBvcGFjaXR5OiAwfSkpLFxyXG4gICAgICAgICAgICBzdGF0ZShcIipcIiwgc3R5bGUoe3RyYW5zZm9ybTogXCJzY2FsZVkoMSlcIiwgb3BhY2l0eTogMX0pKSxcclxuICAgICAgICAgICAgdHJhbnNpdGlvbihgdm9pZCA8PT4gKmAsIGFuaW1hdGUoXCIyMDBtcyBlYXNlLWluLW91dFwiKSlcclxuICAgICAgICBdKSxcclxuICAgICAgICB0cmlnZ2VyKFwic2hvd0hpZGVUYWJcIiwgW1xyXG4gICAgICAgICAgICBzdGF0ZShcIlRPRE9cIiwgc3R5bGUoe3RyYW5zZm9ybTogXCJ0cmFuc2xhdGVYKDApXCJ9KSksXHJcbiAgICAgICAgICAgIHN0YXRlKFwiREVMRUdBVEVEXCIsIHN0eWxlKHt0cmFuc2Zvcm06IFwidHJhbnNsYXRlWChjYWxjKC0xMDAlIC0gMjBweCkpXCJ9KSksXHJcbiAgICAgICAgICAgIHRyYW5zaXRpb24oYFRPRE8gPD0+IERFTEVHQVRFRGAsIGFuaW1hdGUoXCIyMDBtcyBlYXNlLWluLW91dFwiKSlcclxuICAgICAgICBdKVxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29tcG9uZW50QWN0aXZpdHlMaXN0Q29tcG9uZW50IGV4dGVuZHMgQmFzZUFjdGl2aXR5TGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdGFiczogdHlwZW9mIFBlcnNvbmFsQWN0aXZpdHlUYWJFbnVtID0gUGVyc29uYWxBY3Rpdml0eVRhYkVudW07XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgaWNvbnM6IHR5cGVvZiBJY29uID0gSWNvbjtcclxuICAgIHB1YmxpYyByZWFkb25seSBhY3Rpdml0eUNsYXNzOiB0eXBlb2YgQWN0aXZpdHkgPSBBY3Rpdml0eTtcclxuICAgIHB1YmxpYyByZWFkb25seSBhY3Rpdml0eVNvcnRUeXBlOiB0eXBlb2YgQWN0aXZpdHlTb3J0VHlwZSA9IEFjdGl2aXR5U29ydFR5cGU7XHJcblxyXG4gICAgQFZpZXdDaGlsZHJlbihQZXJzb25hbEFjdGl2aXR5T3ZlcnZpZXdDb21wb25lbnQpXHJcbiAgICBwdWJsaWMgYWN0aXZpdHlPdmVydmlld0xpc3Q6IFF1ZXJ5TGlzdDxQZXJzb25hbEFjdGl2aXR5T3ZlcnZpZXdDb21wb25lbnQ+O1xyXG5cclxuICAgIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLWNvbXBvbmVudC1hY3Rpdml0eS1saXN0XCIpXHJcbiAgICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCB0YWJsZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5fdGFibGUgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmdldFRoZUFjdGl2aXRpZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHRhYmxlKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RhYmxlO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IGtleSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5fa2V5ID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5nZXRUaGVBY3Rpdml0aWVzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBrZXkoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fa2V5O1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBASW5wdXRCb29sZWFuKClcclxuICAgIHB1YmxpYyBoaWRlVGl0bGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgQElucHV0Qm9vbGVhbigpXHJcbiAgICBwdWJsaWMgbm9GcmVlVGFza3M6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGN1c3RvbVRpdGxlOiBzdHJpbmc7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyB1c2VyR3JvdXBJZDogbnVtYmVyO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgcmVsYXRpb25JZDogbnVtYmVyO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgY29tcG9uZW50QWN0aXZpdGllc01ldGhvZDogT3BlcmF0aW9uQ2FsbGJhY2tTaW1wbGVGdW5jdGlvbiA9IE9wZXJhdGlvbldpdGhBbHdheXNTdWNjZXNzQ2FsbGJhY2s7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBmaXJlR2VuZXJpY1RyaWdnZXJPcGVyYXRpb246IE9wZXJhdGlvbkNhbGxiYWNrRnVuY3Rpb25XaXRoVmFsaWRhdGlvbiA9IE9wZXJhdGlvbldpdGhWYWxpZGF0aW9uQ2FsbGJhY2s7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBmaXJlVHJpZ2dlck9wZXJhdGlvbjogT3BlcmF0aW9uQ2FsbGJhY2tGdW5jdGlvbldpdGhWYWxpZGF0aW9uID0gT3BlcmF0aW9uV2l0aFZhbGlkYXRpb25DYWxsYmFjaztcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGNhbkZpcmVUcmlnZ2VyT3BlcmF0aW9uOiBPcGVyYXRpb25DYWxsYmFja1NpbXBsZUZ1bmN0aW9uID0gT3BlcmF0aW9uV2l0aEFsd2F5c1N1Y2Nlc3NDYWxsYmFjaztcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldEhhc1BhdXNlZE5vdGlmaWNhdGlvbnNGb3JXb3JrZmxvd1Byb2Nlc3NPcGVyYXRpb246IE9wZXJhdGlvbkNhbGxiYWNrRnVuY3Rpb25XaXRoVmFsaWRhdGlvbiA9IE9wZXJhdGlvbldpdGhWYWxpZGF0aW9uQ2FsbGJhY2s7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBsb2NrVGFza09wZXJhdGlvbjogT3BlcmF0aW9uQ2FsbGJhY2tTaW1wbGVGdW5jdGlvbiA9IE9wZXJhdGlvbldpdGhBbHdheXNTdWNjZXNzQ2FsbGJhY2s7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBkZWxldGVBY3Rpdml0eU9wZXJhdGlvbjogT3BlcmF0aW9uQ2FsbGJhY2tTaW1wbGVGdW5jdGlvbiA9IE9wZXJhdGlvbldpdGhBbHdheXNTdWNjZXNzQ2FsbGJhY2s7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyB1cHNlcnRBY3Rpdml0eU9wZXJhdGlvbjogT3BlcmF0aW9uQ2FsbGJhY2tTaW1wbGVGdW5jdGlvbiA9IE9wZXJhdGlvbldpdGhBbHdheXNTdWNjZXNzQ2FsbGJhY2s7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgb3BlbkxpbmtDbGljazogRXZlbnRFbWl0dGVyPEFjdGl2aXR5PiA9IG5ldyBFdmVudEVtaXR0ZXI8QWN0aXZpdHk+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgYW1vdW50QWN0aXZpdHlDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIGxpbmtDbGlja2VkOiBFdmVudEVtaXR0ZXI8e21vZHVsZTogc3RyaW5nLCBpZDogc3RyaW5nfT4gPSBuZXcgRXZlbnRFbWl0dGVyPHttb2R1bGU6IHN0cmluZywgaWQ6IHN0cmluZ30+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgZm9ybUNyZWF0ZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyBnZW5lcmljVHJpZ2dlckZpcmVkOiBFdmVudEVtaXR0ZXI8QWN0aXZpdHk+ID0gbmV3IEV2ZW50RW1pdHRlcjxBY3Rpdml0eT4oKTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyB0cmlnZ2VyRmlyZWQ6IEV2ZW50RW1pdHRlcjxBY3Rpdml0eT4gPSBuZXcgRXZlbnRFbWl0dGVyPEFjdGl2aXR5PigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHNob3dVc2VyZ3JvdXBBY3Rpdml0aWVzQ2hhbmdlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAgIHB1YmxpYyBhY3RpdmVUYWI6IFBlcnNvbmFsQWN0aXZpdHlUYWJFbnVtID0gUGVyc29uYWxBY3Rpdml0eVRhYkVudW0uVE9ETztcclxuXHJcbiAgICAvKnB1YmxpYyBhY3Rpdml0eVNvcnRMaXN0OiBib29sZWFuW10gPSBbXTsqL1xyXG5cclxuICAgIHB1YmxpYyBhY3Rpdml0eUxpc3Q6IEFjdGl2aXR5Vmlld01vZGVsW10gPSBbXTtcclxuXHJcbiAgICBwdWJsaWMgdHJhY2tCeUZuKGluZGV4OiBudW1iZXIsIHZtOiBBY3Rpdml0eVZpZXdNb2RlbCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHZtLmFjdGl2aXR5LmlkICsgJ18nICsgdm0uYWN0aXZpdHkud29ya2Zsb3cuY29tYmluZWRUcmlnZ2VySWRzO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3RhYmxlOiBzdHJpbmc7XHJcbiAgICBwcml2YXRlIF9rZXk6IHN0cmluZztcclxuICAgIHByaXZhdGUgX3N1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcbiAgICBwcml2YXRlIF9hY3Rpdml0aWVzTGlzdDogQWN0aXZpdHlbXSA9IFtdO1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vVE9ETyBkbyB3ZSBzdGlsbCBuZWVkIHRoaXM/XHJcbiAgICAvKmFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICAgIHRoaXMuX3N1YnMucHVzaChcclxuICAgICAgICAgICAgdGhpcy5fYXBwRXZlbnRTZXJ2aWNlLnRhc2tDcmVhdGVkLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldFRoZUFjdGl2aXRpZXMoKTtcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIHRoaXMuX2FwcEV2ZW50U2VydmljZS50YXNrTW9kaWZpZWQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0VGhlQWN0aXZpdGllcygpO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgdGhpcy5fYXBwRXZlbnRTZXJ2aWNlLnRyaWdnZXJGaXJlZC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRUaGVBY3Rpdml0aWVzKCk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH0qL1xyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3N1YnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XHJcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcclxuICAgIH1cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IGFjdGl2aXRpZXNMaXN0KGFsbEFjdGl2aXRpZXM6IEFjdGl2aXR5W10pIHtcclxuICAgICAgdGhpcy5fYWN0aXZpdGllc0xpc3QgPSBhbGxBY3Rpdml0aWVzO1xyXG4gICAgICBpZiAoYWxsQWN0aXZpdGllcykge1xyXG4gICAgICAgIHRoaXMuYWN0aXZpdGllcyA9IHRoaXMubm9GcmVlVGFza3MgPyBhbGxBY3Rpdml0aWVzLmZpbHRlcihhYSA9PiAhYWEudGFzayAmJiBhYS5hY3Rpdml0eVR5cGUgIT09IEFjdGl2aXR5VHlwZS5Xb3JrZmxvd1Rhc2spIDpcclxuICAgICAgICAgIGFsbEFjdGl2aXRpZXMuZmlsdGVyKGFhID0+IGFhLmFjdGl2aXR5VHlwZSAhPT0gQWN0aXZpdHlUeXBlLldvcmtmbG93VGFzayk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5hY3Rpdml0aWVzID0gW107XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGFjdGl2aXRpZXNMaXN0KCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5fYWN0aXZpdGllc0xpc3Q7XHJcbiAgICB9XHJcblxyXG4gICAgLypwdWJsaWMgYXN5bmMgZ2V0QWN0aXZpdGllcygpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICBpZiAodGhpcy50YWJsZSAmJiB0aGlzLmtleSkge1xyXG4gICAgICAgICAgICBjb25zdCBhbGxBY3Rpdml0aWVzOiBBY3Rpdml0eVtdID0gYXdhaXQgdGhpcy5fYWN0aXZpdHlSZXBvLmdldENvbXBvbmVudEFjdGl2aXRpZXModGhpcy50YWJsZSwgdGhpcy5rZXkpO1xyXG4gICAgICAgICAgICBpZiAoYWxsQWN0aXZpdGllcykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hY3Rpdml0aWVzID0gdGhpcy5ub0ZyZWVUYXNrcyA/IGFsbEFjdGl2aXRpZXMuZmlsdGVyKGFhID0+ICFhYS50YXNrICYmIGFhLmFjdGl2aXR5VHlwZSAhPT0gQWN0aXZpdHlUeXBlLldvcmtmbG93VGFzaykgOlxyXG4gICAgICAgICAgICAgICAgICAgIGFsbEFjdGl2aXRpZXMuZmlsdGVyKGFhID0+IGFhLmFjdGl2aXR5VHlwZSAhPT0gQWN0aXZpdHlUeXBlLldvcmtmbG93VGFzayk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2aXRpZXMgPSBbXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmFtb3VudEFjdGl2aXR5Q2hhbmdlZC5uZXh0KHRoaXMuYWN0aXZpdGllcy5sZW5ndGgpO1xyXG4gICAgICAgIH1cclxuICAgIH0qL1xyXG5cclxuXHJcblxyXG4gICAgcHVibGljIGFzeW5jIGdldERlbGVnYXRlZEFjdGl2aXRpZXMoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgLy8gY29uc3QgYWxsQWN0aXZpdGllczogQWN0aXZpdHlbXSA9IGF3YWl0IHRoaXMuX2FjdGl2aXR5UmVwby5nZXRDb21wb25lbnRBY3Rpdml0aWVzKHRoaXMudGFibGUsIHRoaXMua2V5KTtcclxuICAgICAgICAvLyB0aGlzLmRlbGVnYXRlZEFjdGl2aXRpZXMgPSBhbGxBY3Rpdml0aWVzID8gYWxsQWN0aXZpdGllcy5maWx0ZXIoYWEgPT4gYWEuYWN0aXZpdHlUeXBlICE9PSBBY3Rpdml0eVR5cGUuV29ya2Zsb3dUYXNrKSA6IFtdO1xyXG4gICAgfVxyXG5cclxuICAgIC8qLy9UT0RPIHRoZXJlIHdlcmUgYWxyZWFkeSB1bnVzZWQgYmVmb3JlIHRoZSBtb3ZlLiBDYW4gdGhleSBnbz9cclxuICAgIHB1YmxpYyBoYW5kbGVPcGVuTGluayhhY3Rpdml0eTogQWN0aXZpdHkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9wZW5MaW5rQ2xpY2submV4dChhY3Rpdml0eSk7XHJcbiAgICB9Ki9cclxuXHJcbiAgICBwdWJsaWMgc2hvd1VzZXJncm91cEFjdGl2aXRpZXNDaGFuZ2UoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zaG93VXNlcmdyb3VwQWN0aXZpdGllc0NoYW5nZWQubmV4dCgpXHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGhhbmRsZVRyaWdnZXJGaXJlZChhY3Rpdml0eTogQWN0aXZpdHkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnRyaWdnZXJGaXJlZC5uZXh0KGFjdGl2aXR5KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGFuZGxlR2VuZXJpY1RyaWdnZXJGaXJlZChhY3Rpdml0eTogQWN0aXZpdHkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmdlbmVyaWNUcmlnZ2VyRmlyZWQubmV4dChhY3Rpdml0eSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGhhbmRsZUZvcm1DcmVhdGlvbigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZvcm1DcmVhdGVkLm5leHQoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGFuZGxlQ2hhbmdlZEFjdGl2aXR5KGlkeDogbnVtYmVyLCBhY3Rpdml0eTogQWN0aXZpdHkpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5hY3Rpdml0aWVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWN0aXZpdGllc1tpZHhdID0gYWN0aXZpdHk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBkZWxldGVBY3Rpdml0eShhY3Rpdml0eTogQWN0aXZpdHkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmFtb3VudEFjdGl2aXR5Q2hhbmdlZC5uZXh0KHRoaXMuYWN0aXZpdGllcy5sZW5ndGggLSAxKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcmVzZXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIucmVzZXQoKTtcclxuICAgICAgICB0aGlzLmFjdGl2aXR5TGlzdCA9IFtdO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBkb0ZpbHRlckNsaWNrZWQoZmlsdGVyOiB7IGZyb206IERhdGUsIHRvOiBEYXRlIH0pOiB2b2lkIHtcclxuICAgICAgICBpZiAoZmlsdGVyLmZyb20gJiYgZmlsdGVyLnRvKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyRnJvbSA9IG5ldyBEYXRlKGZpbHRlci5mcm9tKTtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJGcm9tLnNldEhvdXJzKDApO1xyXG4gICAgICAgICAgICB0aGlzLmZpbHRlckZyb20uc2V0TWludXRlcygwKTtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJGcm9tLnNldFNlY29uZHMoMCk7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyVG8gPSBuZXcgRGF0ZShmaWx0ZXIudG8pO1xyXG4gICAgICAgICAgICB0aGlzLmZpbHRlclRvLnNldEhvdXJzKDApO1xyXG4gICAgICAgICAgICB0aGlzLmZpbHRlclRvLnNldE1pbnV0ZXMoMCk7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyVG8uc2V0U2Vjb25kcygwKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmZpbHRlckZyb20gPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyVG8gPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuYXBwbHlGaWx0ZXIoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb3BlbkZpcnN0VGFzaygpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuYWN0aXZpdGllcykge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHRhc2tzOiBBY3Rpdml0eVtdID0gdGhpcy5hY3Rpdml0aWVzLmZpbHRlcigodmFsdWUgPT4gdmFsdWUuSXNUYXNrKSk7XHJcbiAgICAgICAgaWYgKHRhc2tzICYmIHRhc2tzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgY29uc3QgYWN0aXZpdHlPdmVydmlld3M6IFBlcnNvbmFsQWN0aXZpdHlPdmVydmlld0NvbXBvbmVudFtdID0gdGhpcy5hY3Rpdml0eU92ZXJ2aWV3TGlzdC50b0FycmF5KCk7XHJcbiAgICAgICAgICAgIGlmIChhY3Rpdml0eU92ZXJ2aWV3cyAmJiBhY3Rpdml0eU92ZXJ2aWV3cy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGxlbjogbnVtYmVyID0gYWN0aXZpdHlPdmVydmlld3MubGVuZ3RoO1xyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGFjdGl2aXR5T3ZlcnZpZXdzW2ldLmFjdGl2aXR5LmdldElkKCkgPT09IHRhc2tzWzBdLmdldElkKCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZpdHlPdmVydmlld3NbaV0uc3RhcnRNb2RpZnlpbmdUYXNrKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
278
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWFjdGl2aXR5LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvb3Blbi1hY3Rpdml0eS1saXN0L2NvbXBvbmVudC1hY3Rpdml0eS1saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRSxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQztBQUN6RixPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFBRSxXQUFXLEVBQ3pCLEtBQUssRUFFTCxNQUFNLEVBRU4sWUFBWSxFQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxQyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDbkUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBRXJFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUV4RSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSx5REFBeUQsQ0FBQztBQUNoRyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxzREFBc0QsQ0FBQztBQUN0RixPQUFPLEVBRUwsa0NBQWtDLEVBQ25DLE1BQU0sb0RBQW9ELENBQUM7QUFDNUQsT0FBTyxFQUNMLGlDQUFpQyxFQUNsQyxNQUFNLDhFQUE4RSxDQUFDO0FBQ3RGLE9BQU8sRUFFTCwrQkFBK0IsRUFDaEMsTUFBTSw2REFBNkQsQ0FBQztBQUNyRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUE0RTNE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Q29udGVudCI6WyJpbXBvcnQge2FuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlcn0gZnJvbSBcIkBhbmd1bGFyL2FuaW1hdGlvbnNcIjtcclxuaW1wb3J0IHtCYXNlQWN0aXZpdHlMaXN0Q29tcG9uZW50fSBmcm9tIFwiLi9jb21wb25lbnRzL2Jhc2Utb3Blbi1hY3Rpdml0eS1saXN0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPdXRwdXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFZpZXdDaGlsZHJlblxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7SWNvbn0gZnJvbSBcIi4uLy4uL2VudW0vaWNvbi5lbnVtXCI7XHJcbmltcG9ydCB7QWN0aXZpdHl9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9hY3Rpdml0eS5ib1wiO1xyXG5pbXBvcnQge0lucHV0Qm9vbGVhbn0gZnJvbSBcIi4uLy4uL2RlY29yYXRvci9pbnB1dC1ib29sZWFuLmRlY29yYXRvclwiO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHtBY3Rpdml0eVR5cGV9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9lbnVtL2FjdGl2aXR5LXR5cGVcIjtcclxuaW1wb3J0IHtBY3Rpdml0eVZpZXdNb2RlbH0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL2FjdGl2aXR5LXZpZXctbW9kZWxcIjtcclxuaW1wb3J0IHtQZXJzb25hbEFjdGl2aXR5VGFiRW51bX0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL2VudW0vcGVyc29uYWwtYWN0aXZpdHktdGFiLmVudW1cIjtcclxuaW1wb3J0IHtBY3Rpdml0eVNvcnRUeXBlfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvZW51bS9hY3Rpdml0eS1zb3J0LXR5cGUuZW51bVwiO1xyXG5pbXBvcnQge1xyXG4gIE9wZXJhdGlvbkNhbGxiYWNrU2ltcGxlRnVuY3Rpb24sXHJcbiAgT3BlcmF0aW9uV2l0aEFsd2F5c1N1Y2Nlc3NDYWxsYmFja1xyXG59IGZyb20gXCIuLi8uLi9pbnRlcmZhY2Uvb3BlcmF0aW9uLWNhbGxiYWNrLXNpbXBsZS1mdW5jdGlvblwiO1xyXG5pbXBvcnQge1xyXG4gIFBlcnNvbmFsQWN0aXZpdHlPdmVydmlld0NvbXBvbmVudFxyXG59IGZyb20gXCIuL2NvbXBvbmVudHMvcGVyc29uYWwtYWN0aXZpdHktb3ZlcnZpZXcvcGVyc29uYWwtYWN0aXZpdHktb3ZlcnZpZXcuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7XHJcbiAgT3BlcmF0aW9uQ2FsbGJhY2tGdW5jdGlvbldpdGhWYWxpZGF0aW9uLFxyXG4gIE9wZXJhdGlvbldpdGhWYWxpZGF0aW9uQ2FsbGJhY2tcclxufSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlL29wZXJhdGlvbi1jYWxsYmFjay1mdW5jdGlvbi13aXRoLXZhbGlkYXRpb25cIjtcclxuaW1wb3J0IHtTaGFyZWRTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9zaGFyZWQuc2VydmljZVwiO1xyXG5pbXBvcnQge1RhYmxlTmFtZX0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL2VudW0vdGFibGUtbmFtZS5lbnVtXCI7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJjby1jb21wb25lbnQtYWN0aXZpdHktbGlzdFwiLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgICAgICA8Y28tYWN0aXZpdHktbGlzdC1oZWFkZXJcclxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCInQUNUSVZJVElFUydcIlxyXG4gICAgICAgICAgICAgICAgW3RhYmxlXT1cInRhYmxlXCJcclxuICAgICAgICAgICAgICAgIFtrZXldPVwia2V5XCJcclxuICAgICAgICAgICAgICAgIFsoc2hvd1VzZXJncm91cEFjdGl2aXRpZXMpXT1cInNob3dVc2VyZ3JvdXBBY3Rpdml0aWVzXCJcclxuICAgICAgICAgICAgICAgIFsoc2VhcmNoVGV4dCldPVwic2VhcmNoVGV4dFwiXHJcbiAgICAgICAgICAgICAgICAocGVyaW9kRmlsdGVyQ2xpY2tlZCk9XCJkb0ZpbHRlckNsaWNrZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAoc2VhcmNoVGV4dENoYW5nZSk9XCJhcHBseUZpbHRlcigpXCJcclxuICAgICAgICAgICAgICAgIChzaG93VXNlcmdyb3VwQWN0aXZpdGllc0NoYW5nZSk9XCJzaG93VXNlcmdyb3VwQWN0aXZpdGllc0NoYW5nZSgpXCJcclxuICAgICAgICAgICAgICAgIFtzZXRIYXNQYXVzZWROb3RpZmljYXRpb25zRm9yV29ya2Zsb3dQcm9jZXNzT3BlcmF0aW9uXT1cInNldEhhc1BhdXNlZE5vdGlmaWNhdGlvbnNGb3JXb3JrZmxvd1Byb2Nlc3NPcGVyYXRpb25cIlxyXG4gICAgICAgID48L2NvLWFjdGl2aXR5LWxpc3QtaGVhZGVyPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpdml0eS1saXN0LWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGl2aXR5LXdyYXBwZXJcIiBbQHNob3dIaWRlVGFiXT1cImFjdGl2ZVRhYlwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGl2aXR5LXRhYi1jb250ZW50IG1pbmktc2Nyb2xsYmFyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0aXZpdHlMaXN0Vmlld01vZGVsIG9mIHByaXZhdGVBY3Rpdml0eUxpc3RWaWV3TW9kZWxzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8Y28tY29sbGFwc2libGUgKm5nSWY9XCJhY3Rpdml0eUxpc3RWaWV3TW9kZWwuc2hvd2luZ1wiICNjb2xsYXBzZWFibGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaGVhZGVyVGl0bGVdPVwiYWN0aXZpdHlMaXN0Vmlld01vZGVsLmxhYmVsICsgJyAnICsgYWN0aXZpdHlMaXN0Vmlld01vZGVsLmFtb3VudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhleHBhbmRlZCldPVwiYWN0aXZpdHlMaXN0Vmlld01vZGVsLmV4cGFuZGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpdml0eVZpZXdNb2RlbCBvZiBhY3Rpdml0eUxpc3RWaWV3TW9kZWwuYWN0aXZpdGllczsgdHJhY2tCeTogdHJhY2tCeUZuOyBsZXQgaW5kZXggPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWNvbXBvbmVudC1hY3Rpdml0eS1vdmVydmlldyAqbmdJZj1cImFjdGl2aXR5Vmlld01vZGVsLnNob3dpbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZpZXdNb2RlbF09XCJhY3Rpdml0eVZpZXdNb2RlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdXNlclJlbGF0aW9uSWRdPVwicmVsYXRpb25JZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdXNlckdyb3VwSWRdPVwidXNlckdyb3VwSWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFjdGl2aXR5Q2hhbmdlKT1cImhhbmRsZUNoYW5nZWRBY3Rpdml0eShpbmRleCwgJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYWN0aXZpdHlEZWxldGVkKT1cImRlbGV0ZUFjdGl2aXR5KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdlbmVyaWNUcmlnZ2VyRmlyZWQpPVwiaGFuZGxlR2VuZXJpY1RyaWdnZXJGaXJlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmlnZ2VyRmlyZWQpPVwiaGFuZGxlVHJpZ2dlckZpcmVkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmtDbGlja2VkKT1cImxpbmtDbGlja2VkLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9ybUNyZWF0ZWQpPVwiaGFuZGxlRm9ybUNyZWF0aW9uKClcIj48L2NvLWNvbXBvbmVudC1hY3Rpdml0eS1vdmVydmlldz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgIDwvY28tY29sbGFwc2libGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpdml0eS10YWItY29udGVudCBtaW5pLXNjcm9sbGJhclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdGl2aXR5TGlzdFZpZXdNb2RlbCBvZiBwcml2YXRlRGVsZWdhdGVkQWN0aXZpdHlMaXN0Vmlld01vZGVsc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y28tY29sbGFwc2libGUgKm5nSWY9XCJhY3Rpdml0eUxpc3RWaWV3TW9kZWwuc2hvd2luZ1wiICNjb2xsYXBzZWFibGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoZWFkZXJUaXRsZV09XCJhY3Rpdml0eUxpc3RWaWV3TW9kZWwubGFiZWwgKyAnICcgKyBhY3Rpdml0eUxpc3RWaWV3TW9kZWwuYW1vdW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoZXhwYW5kZWQpXT1cImFjdGl2aXR5TGlzdFZpZXdNb2RlbC5leHBhbmRlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0aXZpdHlWaWV3TW9kZWwgb2YgYWN0aXZpdHlMaXN0Vmlld01vZGVsLmFjdGl2aXRpZXM7IHRyYWNrQnk6IHRyYWNrQnlGbjsgbGV0IGluZGV4ID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1jb21wb25lbnQtYWN0aXZpdHktb3ZlcnZpZXcgKm5nSWY9XCJhY3Rpdml0eVZpZXdNb2RlbC5zaG93aW5nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2aWV3TW9kZWxdPVwiYWN0aXZpdHlWaWV3TW9kZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3VzZXJSZWxhdGlvbklkXT1cInJlbGF0aW9uSWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3VzZXJHcm91cElkXT1cInVzZXJHcm91cElkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhY3Rpdml0eUNoYW5nZSk9XCJoYW5kbGVDaGFuZ2VkQWN0aXZpdHkoaW5kZXgsICRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFjdGl2aXR5RGVsZXRlZCk9XCJkZWxldGVBY3Rpdml0eSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnZW5lcmljVHJpZ2dlckZpcmVkKT1cImhhbmRsZUdlbmVyaWNUcmlnZ2VyRmlyZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJpZ2dlckZpcmVkKT1cImhhbmRsZVRyaWdnZXJGaXJlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5rQ2xpY2tlZCk9XCJsaW5rQ2xpY2tlZC5lbWl0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvcm1DcmVhdGVkKT1cImhhbmRsZUZvcm1DcmVhdGlvbigpXCI+PC9jby1jb21wb25lbnQtYWN0aXZpdHktb3ZlcnZpZXc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9jby1jb2xsYXBzaWJsZT5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIGAsXHJcbiAgICBhbmltYXRpb25zOiBbXHJcbiAgICAgICAgdHJpZ2dlcihcInNob3dIaWRlQ29udGVudFwiLCBbXHJcbiAgICAgICAgICAgIHN0YXRlKFwidm9pZFwiLCBzdHlsZSh7dHJhbnNmb3JtOiBcInNjYWxlWSgwKVwiLCBvcGFjaXR5OiAwfSkpLFxyXG4gICAgICAgICAgICBzdGF0ZShcIipcIiwgc3R5bGUoe3RyYW5zZm9ybTogXCJzY2FsZVkoMSlcIiwgb3BhY2l0eTogMX0pKSxcclxuICAgICAgICAgICAgdHJhbnNpdGlvbihgdm9pZCA8PT4gKmAsIGFuaW1hdGUoXCIyMDBtcyBlYXNlLWluLW91dFwiKSlcclxuICAgICAgICBdKSxcclxuICAgICAgICB0cmlnZ2VyKFwic2hvd0hpZGVUYWJcIiwgW1xyXG4gICAgICAgICAgICBzdGF0ZShcIlRPRE9cIiwgc3R5bGUoe3RyYW5zZm9ybTogXCJ0cmFuc2xhdGVYKDApXCJ9KSksXHJcbiAgICAgICAgICAgIHN0YXRlKFwiREVMRUdBVEVEXCIsIHN0eWxlKHt0cmFuc2Zvcm06IFwidHJhbnNsYXRlWChjYWxjKC0xMDAlIC0gMjBweCkpXCJ9KSksXHJcbiAgICAgICAgICAgIHRyYW5zaXRpb24oYFRPRE8gPD0+IERFTEVHQVRFRGAsIGFuaW1hdGUoXCIyMDBtcyBlYXNlLWluLW91dFwiKSlcclxuICAgICAgICBdKVxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29tcG9uZW50QWN0aXZpdHlMaXN0Q29tcG9uZW50IGV4dGVuZHMgQmFzZUFjdGl2aXR5TGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdGFiczogdHlwZW9mIFBlcnNvbmFsQWN0aXZpdHlUYWJFbnVtID0gUGVyc29uYWxBY3Rpdml0eVRhYkVudW07XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgaWNvbnM6IHR5cGVvZiBJY29uID0gSWNvbjtcclxuICAgIHB1YmxpYyByZWFkb25seSBhY3Rpdml0eUNsYXNzOiB0eXBlb2YgQWN0aXZpdHkgPSBBY3Rpdml0eTtcclxuICAgIHB1YmxpYyByZWFkb25seSBhY3Rpdml0eVNvcnRUeXBlOiB0eXBlb2YgQWN0aXZpdHlTb3J0VHlwZSA9IEFjdGl2aXR5U29ydFR5cGU7XHJcblxyXG4gICAgQFZpZXdDaGlsZHJlbihQZXJzb25hbEFjdGl2aXR5T3ZlcnZpZXdDb21wb25lbnQpXHJcbiAgICBwdWJsaWMgYWN0aXZpdHlPdmVydmlld0xpc3Q6IFF1ZXJ5TGlzdDxQZXJzb25hbEFjdGl2aXR5T3ZlcnZpZXdDb21wb25lbnQ+O1xyXG5cclxuICAgIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLWNvbXBvbmVudC1hY3Rpdml0eS1saXN0XCIpXHJcbiAgICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCB0YWJsZSh2YWx1ZTogVGFibGVOYW1lKSB7XHJcbiAgICAgICAgdGhpcy5fdGFibGUgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmdldFRoZUFjdGl2aXRpZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHRhYmxlKCk6IFRhYmxlTmFtZSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RhYmxlO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IGtleSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5fa2V5ID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5nZXRUaGVBY3Rpdml0aWVzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBrZXkoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fa2V5O1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBASW5wdXRCb29sZWFuKClcclxuICAgIHB1YmxpYyBoaWRlVGl0bGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgQElucHV0Qm9vbGVhbigpXHJcbiAgICBwdWJsaWMgbm9GcmVlVGFza3M6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGN1c3RvbVRpdGxlOiBzdHJpbmc7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyB1c2VyR3JvdXBJZDogbnVtYmVyO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgcmVsYXRpb25JZDogbnVtYmVyO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgY29tcG9uZW50QWN0aXZpdGllc01ldGhvZDogT3BlcmF0aW9uQ2FsbGJhY2tTaW1wbGVGdW5jdGlvbiA9IE9wZXJhdGlvbldpdGhBbHdheXNTdWNjZXNzQ2FsbGJhY2s7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXRIYXNQYXVzZWROb3RpZmljYXRpb25zRm9yV29ya2Zsb3dQcm9jZXNzT3BlcmF0aW9uOiBPcGVyYXRpb25DYWxsYmFja0Z1bmN0aW9uV2l0aFZhbGlkYXRpb24gPSBPcGVyYXRpb25XaXRoVmFsaWRhdGlvbkNhbGxiYWNrO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIG9wZW5MaW5rQ2xpY2s6IEV2ZW50RW1pdHRlcjxBY3Rpdml0eT4gPSBuZXcgRXZlbnRFbWl0dGVyPEFjdGl2aXR5PigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIGFtb3VudEFjdGl2aXR5Q2hhbmdlZDogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyBsaW5rQ2xpY2tlZDogRXZlbnRFbWl0dGVyPHttb2R1bGU6IHN0cmluZywgaWQ6IHN0cmluZ30+ID0gbmV3IEV2ZW50RW1pdHRlcjx7bW9kdWxlOiBzdHJpbmcsIGlkOiBzdHJpbmd9PigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIGZvcm1DcmVhdGVkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgcmVmcmVzaFJlcXVlc3RlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHNob3dVc2VyZ3JvdXBBY3Rpdml0aWVzQ2hhbmdlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAgIHB1YmxpYyBhY3RpdmVUYWI6IFBlcnNvbmFsQWN0aXZpdHlUYWJFbnVtID0gUGVyc29uYWxBY3Rpdml0eVRhYkVudW0uVE9ETztcclxuXHJcbiAgICAvKnB1YmxpYyBhY3Rpdml0eVNvcnRMaXN0OiBib29sZWFuW10gPSBbXTsqL1xyXG5cclxuICAgIHB1YmxpYyBhY3Rpdml0eUxpc3Q6IEFjdGl2aXR5Vmlld01vZGVsW10gPSBbXTtcclxuXHJcbiAgICBwdWJsaWMgdHJhY2tCeUZuKGluZGV4OiBudW1iZXIsIHZtOiBBY3Rpdml0eVZpZXdNb2RlbCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHZtLmFjdGl2aXR5LmlkICsgJ18nICsgdm0uYWN0aXZpdHkud29ya2Zsb3cuY29tYmluZWRUcmlnZ2VySWRzO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3RhYmxlOiBUYWJsZU5hbWU7XHJcbiAgICBwcml2YXRlIF9rZXk6IHN0cmluZztcclxuICAgIHByaXZhdGUgX3N1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcbiAgICBwcml2YXRlIF9hY3Rpdml0aWVzTGlzdDogQWN0aXZpdHlbXSA9IFtdO1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHNoYXJlZFNlcnZpY2U6IFNoYXJlZFNlcnZpY2VcclxuICAgICkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgdGhpcy5nZXRUaGVBY3Rpdml0aWVzKCk7XHJcbiAgICAgICAgLyp0aGlzLl9zdWJzLnB1c2goXHJcbiAgICAgICAgICAgIHRoaXMuX2FwcEV2ZW50U2VydmljZS50YXNrQ3JlYXRlZC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRUaGVBY3Rpdml0aWVzKCk7XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICB0aGlzLl9hcHBFdmVudFNlcnZpY2UudGFza01vZGlmaWVkLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldFRoZUFjdGl2aXRpZXMoKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICApOyovXHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgLy90aGlzLl9zdWJzLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xyXG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGdldEFjdGl2aXRpZXMoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgIGlmICh0aGlzLnRhYmxlICYmIHRoaXMua2V5KSB7XHJcbiAgICAgICAgY29uc3QgYWxsQWN0aXZpdGllczogQWN0aXZpdHlbXSA9IGF3YWl0IHRoaXMuc2hhcmVkU2VydmljZS5nZXRDb21wb25lbnRBY3Rpdml0aWVzV2l0aG91dFJlbGF0aW9uRmlsdGVyaW5nKHRoaXMudGFibGUsIHRoaXMua2V5KTtcclxuICAgICAgICBpZiAoYWxsQWN0aXZpdGllcykge1xyXG4gICAgICAgICAgdGhpcy5hY3Rpdml0aWVzID0gdGhpcy5ub0ZyZWVUYXNrcyA/IGFsbEFjdGl2aXRpZXMuZmlsdGVyKGFhID0+ICFhYS50YXNrICYmIGFhLmFjdGl2aXR5VHlwZSAhPT0gQWN0aXZpdHlUeXBlLldvcmtmbG93VGFzaykgOlxyXG4gICAgICAgICAgICBhbGxBY3Rpdml0aWVzLmZpbHRlcihhYSA9PiBhYS5hY3Rpdml0eVR5cGUgIT09IEFjdGl2aXR5VHlwZS5Xb3JrZmxvd1Rhc2spO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmFjdGl2aXRpZXMgPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5hbW91bnRBY3Rpdml0eUNoYW5nZWQubmV4dCh0aGlzLmFjdGl2aXRpZXMubGVuZ3RoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IGFjdGl2aXRpZXNMaXN0KGFsbEFjdGl2aXRpZXM6IEFjdGl2aXR5W10pIHtcclxuICAgICAgdGhpcy5fYWN0aXZpdGllc0xpc3QgPSBhbGxBY3Rpdml0aWVzO1xyXG4gICAgICBpZiAoYWxsQWN0aXZpdGllcykge1xyXG4gICAgICAgIHRoaXMuYWN0aXZpdGllcyA9IHRoaXMubm9GcmVlVGFza3MgPyBhbGxBY3Rpdml0aWVzLmZpbHRlcihhYSA9PiAhYWEudGFzayAmJiBhYS5hY3Rpdml0eVR5cGUgIT09IEFjdGl2aXR5VHlwZS5Xb3JrZmxvd1Rhc2spIDpcclxuICAgICAgICAgIGFsbEFjdGl2aXRpZXMuZmlsdGVyKGFhID0+IGFhLmFjdGl2aXR5VHlwZSAhPT0gQWN0aXZpdHlUeXBlLldvcmtmbG93VGFzayk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5hY3Rpdml0aWVzID0gW107XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGFjdGl2aXRpZXNMaXN0KCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5fYWN0aXZpdGllc0xpc3Q7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGdldERlbGVnYXRlZEFjdGl2aXRpZXMoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgLy8gY29uc3QgYWxsQWN0aXZpdGllczogQWN0aXZpdHlbXSA9IGF3YWl0IHRoaXMuX2FjdGl2aXR5UmVwby5nZXRDb21wb25lbnRBY3Rpdml0aWVzKHRoaXMudGFibGUsIHRoaXMua2V5KTtcclxuICAgICAgICAvLyB0aGlzLmRlbGVnYXRlZEFjdGl2aXRpZXMgPSBhbGxBY3Rpdml0aWVzID8gYWxsQWN0aXZpdGllcy5maWx0ZXIoYWEgPT4gYWEuYWN0aXZpdHlUeXBlICE9PSBBY3Rpdml0eVR5cGUuV29ya2Zsb3dUYXNrKSA6IFtdO1xyXG4gICAgfVxyXG5cclxuICAgIC8qLy9UT0RPIHRoZXJlIHdlcmUgYWxyZWFkeSB1bnVzZWQgYmVmb3JlIHRoZSBtb3ZlLiBDYW4gdGhleSBnbz9cclxuICAgIHB1YmxpYyBoYW5kbGVPcGVuTGluayhhY3Rpdml0eTogQWN0aXZpdHkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9wZW5MaW5rQ2xpY2submV4dChhY3Rpdml0eSk7XHJcbiAgICB9Ki9cclxuXHJcbiAgICBwdWJsaWMgc2hvd1VzZXJncm91cEFjdGl2aXRpZXNDaGFuZ2UoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zaG93VXNlcmdyb3VwQWN0aXZpdGllc0NoYW5nZWQubmV4dCgpXHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGhhbmRsZVRyaWdnZXJGaXJlZChhY3Rpdml0eTogQWN0aXZpdHkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmdldFRoZUFjdGl2aXRpZXMoKTtcclxuICAgICAgICB0aGlzLnJlZnJlc2hSZXF1ZXN0ZWQuZW1pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBoYW5kbGVHZW5lcmljVHJpZ2dlckZpcmVkKGFjdGl2aXR5OiBBY3Rpdml0eSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZ2V0VGhlQWN0aXZpdGllcygpO1xyXG4gICAgICAgIHRoaXMucmVmcmVzaFJlcXVlc3RlZC5lbWl0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGhhbmRsZUZvcm1DcmVhdGlvbigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZvcm1DcmVhdGVkLm5leHQoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGFuZGxlQ2hhbmdlZEFjdGl2aXR5KGlkeDogbnVtYmVyLCBhY3Rpdml0eTogQWN0aXZpdHkpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5hY3Rpdml0aWVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWN0aXZpdGllc1tpZHhdID0gYWN0aXZpdHk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBkZWxldGVBY3Rpdml0eShhY3Rpdml0eTogQWN0aXZpdHkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmFtb3VudEFjdGl2aXR5Q2hhbmdlZC5uZXh0KHRoaXMuYWN0aXZpdGllcy5sZW5ndGggLSAxKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcmVzZXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIucmVzZXQoKTtcclxuICAgICAgICB0aGlzLmFjdGl2aXR5TGlzdCA9IFtdO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBkb0ZpbHRlckNsaWNrZWQoZmlsdGVyOiB7IGZyb206IERhdGUsIHRvOiBEYXRlIH0pOiB2b2lkIHtcclxuICAgICAgICBpZiAoZmlsdGVyLmZyb20gJiYgZmlsdGVyLnRvKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyRnJvbSA9IG5ldyBEYXRlKGZpbHRlci5mcm9tKTtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJGcm9tLnNldEhvdXJzKDApO1xyXG4gICAgICAgICAgICB0aGlzLmZpbHRlckZyb20uc2V0TWludXRlcygwKTtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJGcm9tLnNldFNlY29uZHMoMCk7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyVG8gPSBuZXcgRGF0ZShmaWx0ZXIudG8pO1xyXG4gICAgICAgICAgICB0aGlzLmZpbHRlclRvLnNldEhvdXJzKDApO1xyXG4gICAgICAgICAgICB0aGlzLmZpbHRlclRvLnNldE1pbnV0ZXMoMCk7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyVG8uc2V0U2Vjb25kcygwKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmZpbHRlckZyb20gPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyVG8gPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuYXBwbHlGaWx0ZXIoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb3BlbkZpcnN0VGFzaygpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuYWN0aXZpdGllcykge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHRhc2tzOiBBY3Rpdml0eVtdID0gdGhpcy5hY3Rpdml0aWVzLmZpbHRlcigodmFsdWUgPT4gdmFsdWUuSXNUYXNrKSk7XHJcbiAgICAgICAgaWYgKHRhc2tzICYmIHRhc2tzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgY29uc3QgYWN0aXZpdHlPdmVydmlld3M6IFBlcnNvbmFsQWN0aXZpdHlPdmVydmlld0NvbXBvbmVudFtdID0gdGhpcy5hY3Rpdml0eU92ZXJ2aWV3TGlzdC50b0FycmF5KCk7XHJcbiAgICAgICAgICAgIGlmIChhY3Rpdml0eU92ZXJ2aWV3cyAmJiBhY3Rpdml0eU92ZXJ2aWV3cy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGxlbjogbnVtYmVyID0gYWN0aXZpdHlPdmVydmlld3MubGVuZ3RoO1xyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGFjdGl2aXR5T3ZlcnZpZXdzW2ldLmFjdGl2aXR5LmdldElkKCkgPT09IHRhc2tzWzBdLmdldElkKCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZpdHlPdmVydmlld3NbaV0uc3RhcnRNb2RpZnlpbmdUYXNrKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
|