@smartbit4all/ng-client 3.3.152 → 3.3.153
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/esm2020/lib/smart-client/smart-component-api-client.mjs +8 -1
- package/esm2020/lib/view-context/api/model/componentModel.mjs +1 -1
- package/esm2020/lib/view-context/api/model/models.mjs +5 -1
- package/esm2020/lib/view-context/api/model/serverRequestExecutionStat.mjs +2 -0
- package/esm2020/lib/view-context/api/model/serverRequestTrack.mjs +2 -0
- package/esm2020/lib/view-context/api/model/serverRequestType.mjs +24 -0
- package/esm2020/lib/view-context/api/model/statisticRecord.mjs +13 -0
- package/esm2020/lib/view-context/api/model/uiAction.mjs +1 -1
- package/esm2020/lib/view-context/api/model/uiActionRequest.mjs +1 -1
- package/esm2020/lib/view-context/api/model/valueSet.mjs +1 -1
- package/esm2020/lib/view-context/api/model/view.mjs +1 -1
- package/esm2020/lib/view-context/api/model/viewContext.mjs +1 -1
- package/esm2020/lib/view-context/api/model/viewContextChange.mjs +1 -1
- package/fesm2015/smartbit4all-ng-client.mjs +34 -3
- package/fesm2015/smartbit4all-ng-client.mjs.map +1 -1
- package/fesm2020/smartbit4all-ng-client.mjs +44 -1
- package/fesm2020/smartbit4all-ng-client.mjs.map +1 -1
- package/lib/view-context/api/model/componentModel.d.ts +1 -0
- package/lib/view-context/api/model/models.d.ts +4 -0
- package/lib/view-context/api/model/serverRequestExecutionStat.d.ts +40 -0
- package/lib/view-context/api/model/serverRequestTrack.d.ts +60 -0
- package/lib/view-context/api/model/serverRequestType.d.ts +22 -0
- package/lib/view-context/api/model/statisticRecord.d.ts +36 -0
- package/lib/view-context/api/model/view.d.ts +1 -0
- package/lib/view-context/api/model/viewContext.d.ts +2 -0
- package/package.json +1 -1
- package/smartbit4all-ng-client-3.3.153.tgz +0 -0
- package/smartbit4all-ng-client-3.3.152.tgz +0 -0
|
@@ -208,6 +208,13 @@ export class SmartComponentApiClient {
|
|
|
208
208
|
}
|
|
209
209
|
initComponentByModel() {
|
|
210
210
|
SmartStyleUtility.applyStyle(this.model?.style, this.element, this.renderer);
|
|
211
|
+
if (this.model?.parentStyle) {
|
|
212
|
+
let element = this.element?.nativeElement;
|
|
213
|
+
if (element && element.parentNode) {
|
|
214
|
+
element = element.parentNode;
|
|
215
|
+
SmartStyleUtility.applyStyle(this.model?.style, element, this.renderer);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
211
218
|
this.initData();
|
|
212
219
|
this.initActions();
|
|
213
220
|
if (this.useQueryLists) {
|
|
@@ -682,4 +689,4 @@ export class SmartComponentApiClient {
|
|
|
682
689
|
this.model.constraints = changes[changeKey];
|
|
683
690
|
}
|
|
684
691
|
}
|
|
685
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtY29tcG9uZW50LWFwaS1jbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1jbGllbnQvc21hcnQtY29tcG9uZW50LWFwaS1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsT0FBTyxFQUFFLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pFLE9BQU8sRUFJTCxjQUFjLEVBR2QsdUJBQXVCLEVBR3ZCLHlCQUF5QixFQUd6QixlQUFlLEdBSWhCLE1BQU0sMEJBQTBCLENBQUM7QUFFbEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBMEIsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRixPQUFPLEVBS0wsZUFBZSxHQUNoQixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFFTCwyQkFBMkIsR0FDNUIsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUVoRixNQUFNLE9BQWdCLHVCQUF1QjtJQTBHM0MsWUFDWSxNQUFnQixFQUNoQixJQUF5QyxFQUN6QyxRQUFpQixFQUNqQixjQUF1QixFQUN2QixPQUFvQixFQUNwQixRQUFvQjtRQUxwQixXQUFNLEdBQU4sTUFBTSxDQUFVO1FBQ2hCLFNBQUksR0FBSixJQUFJLENBQXFDO1FBQ3pDLGFBQVEsR0FBUixRQUFRLENBQVM7UUFDakIsbUJBQWMsR0FBZCxjQUFjLENBQVM7UUFDdkIsWUFBTyxHQUFQLE9BQU8sQ0FBYTtRQUNwQixhQUFRLEdBQVIsUUFBUSxDQUFZ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O0lBQzNELENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxPQUErQixFQUFFLFNBQWlCO1FBQzNFLElBQUksQ0FBQyxLQUFNLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVPLHNCQUFzQixDQUFDLE9BQStCLEVBQUUsU0FBaUI7UUFDL0UsSUFBSSxDQUFDLEtBQU0sQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7Q0FHRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgRWxlbWVudFJlZixcclxuICBJbmplY3QsXHJcbiAgSW5qZWN0b3IsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFJlbmRlcmVyMixcclxuICBSZW5kZXJlclN0eWxlRmxhZ3MyLFxyXG4gIFZpZXdDaGlsZHJlbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU21hcnR0cmVlR2VuZXJpY1NlcnZpY2UgfSBmcm9tICcuLi9zbWFydC10cmVlL3Byb2plY3RzJztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnRNb2RlbCxcclxuICBDb21wb25lbnRNb2RlbENoYW5nZSxcclxuICBEYXRhQ2hhbmdlLFxyXG4gIERhdGFDaGFuZ2VLaW5kLFxyXG4gIEV4ZWN1dGVVaUFjdGlvbk9wdGlvbnMsXHJcbiAgU21hcnRUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gIFNtYXJ0Vmlld0NvbnRleHRTZXJ2aWNlLFxyXG4gIFVpQWN0aW9uLFxyXG4gIFVpQWN0aW9uQWRkaXRpb25hbFBhcmFtcyxcclxuICBVaUFjdGlvbkRlc2NyaXB0b3JTZXJ2aWNlLFxyXG4gIFVpQWN0aW9uTW9kZWwsXHJcbiAgVWlBY3Rpb25SZXF1ZXN0LFxyXG4gIFVpQWN0aW9uU2VydmljZSxcclxuICBVaUFjdGlvblNwZWNpZmljRGVtYW5kUmVzcG9uc2UsXHJcbiAgVWlBY3Rpb25Ub29sYmFyQ29tcG9uZW50LFxyXG4gIFVzZVVpQWN0aW9uMixcclxufSBmcm9tICcuLi92aWV3LWNvbnRleHQvcHJvamVjdHMnO1xyXG5pbXBvcnQgeyBTbWFydEF1dGhlbnRpY2F0aW9uU2VydmljZUludGVyZmFjZSB9IGZyb20gJy4vc21hcnQtYXV0aGVudGljYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFNtYXJ0U3ViamVjdCB9IGZyb20gJy4uL3NtYXJ0LXN1YmplY3QvcHJvamVjdHMnO1xyXG5pbXBvcnQgeyBHcmlkT3B0aW9ucywgU21hcnRHcmlkLCBTbWFydEdyaWRDb21wb25lbnQgfSBmcm9tICcuLi9zbWFydC1ncmlkL3Byb2plY3RzJztcclxuaW1wb3J0IHtcclxuICBTbWFydEZvcm0sXHJcbiAgU21hcnRGb3JtSW52YWxpZEZpZWxkcyxcclxuICBTbWFydGZvcm1Db21wb25lbnQsXHJcbiAgU29waGlzdGljYXRlZFZhbHVlQ2hhbmdlLFxyXG4gIFZhbHVlQ2hhbmdlTW9kZSxcclxufSBmcm9tICcuLi9zbWFydC1mb3JtL3Byb2plY3RzJztcclxuaW1wb3J0IHtcclxuICBTbWFydENvbXBvbmVudExheW91dENvbXBvbmVudCxcclxuICBTbWFydENvbXBvbmVudExheW91dFV0aWxpdHksXHJcbn0gZnJvbSAnLi4vc21hcnQtY29tcG9uZW50LWxheW91dC9wcm9qZWN0cyc7XHJcbmltcG9ydCB7IFNtYXJ0RmlsdGVyRWRpdG9yU2VydmljZSB9IGZyb20gJy4uL3NtYXJ0LWZpbHRlci1lZGl0b3IvcHJvamVjdCc7XHJcbmltcG9ydCB7IFNtYXJ0U3R5bGVVdGlsaXR5IH0gZnJvbSAnLi4vdmlldy1jb250ZXh0L3V0aWxpdHkvc21hcnQtc3R5bGUtdXRpbGl0eSc7XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU21hcnRDb21wb25lbnRBcGlDbGllbnQ8VD4gaW1wbGVtZW50cyBVc2VVaUFjdGlvbjIge1xyXG4gIHByb3RlY3RlZCBfZGVzdHJveSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBwcml2YXRlIGRldGVjdENoYW5nZTogU21hcnRTdWJqZWN0PENvbXBvbmVudE1vZGVsQ2hhbmdlPiA9IG5ldyBTbWFydFN1YmplY3QodGhpcy5fZGVzdHJveSQpO1xyXG5cclxuICBwcml2YXRlIF91dWlkPzogc3RyaW5nO1xyXG5cclxuICBwcml2YXRlIHV1aWRPZlBhZ2VIYXNCZWVuQ2hhbmdlZFN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgcHJpdmF0ZSBfbmdBZnRlclZpZXdJbml0UGVyZm9ybWVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGdldCB1dWlkKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5fdXVpZDtcclxuICB9XHJcbiAgc2V0IHV1aWQodXVpZDogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XHJcbiAgICBpZiAodGhpcy5fdXVpZCA9PT0gdXVpZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBsZXQgZmlyc3RVdWlkOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLnV1aWQpIHtcclxuICAgICAgdGhpcy52aWV3Q29udGV4dC51bmZvbGxvdyh0aGlzLnV1aWQpO1xyXG4gICAgICBmaXJzdFV1aWQgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIHRoaXMuX3V1aWQgPSB1dWlkO1xyXG4gICAgaWYgKHV1aWQpIHtcclxuICAgICAgdGhpcy5nZXRXaWRnZXRzKCkuZm9yRWFjaCgocmVmLCBrZXkpID0+IHtcclxuICAgICAgICBpZiAocmVmIGluc3RhbmNlb2YgU21hcnRHcmlkQ29tcG9uZW50KSB7XHJcbiAgICAgICAgICByZWYudXVpZCA9IHV1aWQ7XHJcbiAgICAgICAgfSBlbHNlIGlmIChyZWYgaW5zdGFuY2VvZiBTbWFydEZpbHRlckVkaXRvclNlcnZpY2UpIHtcclxuICAgICAgICAgIHJlZi5jb25maWcudXVpZCA9IHV1aWQ7XHJcbiAgICAgICAgfSBlbHNlIGlmICghcmVmICYmICFmaXJzdFV1aWQpIHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYFByb3ZpZGVkIHJlZmVyZW5jZSBmb3IgJHtrZXl9IGlzIHVuZGVmaW5lZCBvbiB1dWlkIGNoYW5nZS5gKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBpZiAoIXRoaXMudXVpZE9mUGFnZUhhc0JlZW5DaGFuZ2VkU3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgICAgdGhpcy51dWlkT2ZQYWdlSGFzQmVlbkNoYW5nZWRTdWJzY3JpcHRpb24gPSB0aGlzLnZpZXdDb250ZXh0LnV1aWRPZlBhZ2VIYXNCZWVuQ2hhbmdlZFxyXG4gICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcclxuICAgICAgICAgIC5zdWJzY3JpYmUoKHBhZ2VOYW1lKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChwYWdlTmFtZSA9PT0gdGhpcy5wYWdlTmFtZSEpIHtcclxuICAgICAgICAgICAgICB0aGlzLnJ1bigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy52aWV3Q29udGV4dC5mb2xsb3codGhpcy5fdXVpZCEsIHRoaXMuZGV0ZWN0Q2hhbmdlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX21vZGVsOiBDb21wb25lbnRNb2RlbCB8IHVuZGVmaW5lZDtcclxuXHJcbiAgZ2V0IG1vZGVsKCk6IENvbXBvbmVudE1vZGVsIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLl9tb2RlbDtcclxuICB9XHJcbiAgc2V0IG1vZGVsKG1vZGVsOiBDb21wb25lbnRNb2RlbCB8IHVuZGVmaW5lZCkge1xyXG4gICAgdGhpcy5fbW9kZWwgPSBtb2RlbDtcclxuXHJcbiAgICB0aGlzLmluaXRDb21wb25lbnRCeU1vZGVsKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9kYXRhPzogVDtcclxuXHJcbiAgZ2V0IGRhdGEoKTogVCB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGF0YTtcclxuICB9XHJcbiAgc2V0IGRhdGEobW9kZWw6IFQgfCB1bmRlZmluZWQpIHtcclxuICAgIHRoaXMuX2RhdGEgPSBtb2RlbDtcclxuICAgIHRoaXMuZGF0YUNoYW5nZWQubmV4dCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHVpQWN0aW9uTW9kZWxzOiBVaUFjdGlvbk1vZGVsW10gPSBbXTtcclxuXHJcbiAgcHVibGljIGRhdGFDaGFuZ2VkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFNtYXJ0U3ViamVjdCh0aGlzLl9kZXN0cm95JCk7XHJcblxyXG4gIC8vIEdyaWRcclxuICBzbWFydEdyaWQ/OiBTbWFydEdyaWQ7XHJcblxyXG4gIC8vIFNlcnZpY2VzXHJcbiAgcHJvdGVjdGVkIHZpZXdDb250ZXh0OiBTbWFydFZpZXdDb250ZXh0U2VydmljZTtcclxuICBwcm90ZWN0ZWQgdWlBY3Rpb25TZXJ2aWNlOiBVaUFjdGlvblNlcnZpY2U7XHJcbiAgcHJvdGVjdGVkIHVpQWN0aW9uRGVzY3JpcHRvclNlcnZpY2U6IFVpQWN0aW9uRGVzY3JpcHRvclNlcnZpY2U7XHJcbiAgcHJvdGVjdGVkIHRyYW5zbGF0ZT86IFNtYXJ0VHJhbnNsYXRlU2VydmljZTtcclxuXHJcbiAgLy8gVHJlZVxyXG4gIHByaXZhdGUgX3NtYXJ0VHJlZVNlcnZpY2U/OiBTbWFydHRyZWVHZW5lcmljU2VydmljZTtcclxuXHJcbiAgcHVibGljIGdldCBzbWFydFRyZWVTZXJ2aWNlKCk6IFNtYXJ0dHJlZUdlbmVyaWNTZXJ2aWNlIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLl9zbWFydFRyZWVTZXJ2aWNlO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IHNtYXJ0VHJlZVNlcnZpY2Uoc21hcnRUcmVlU2VydmljZTogU21hcnR0cmVlR2VuZXJpY1NlcnZpY2UgfCB1bmRlZmluZWQpIHtcclxuICAgIGlmICh0aGlzLl9zbWFydFRyZWVTZXJ2aWNlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhyb3cgRXJyb3IoJ1RoZSBkZWZhdWx0IHRyZWUgaGFzIGFscmVhZHkgc2V0IHVwIScpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fc21hcnRUcmVlU2VydmljZSA9IHNtYXJ0VHJlZVNlcnZpY2U7XHJcbiAgfVxyXG5cclxuICAvLyBDb250YWluZWQgV2lkZ2V0c1xyXG4gIHdpZGdldHM6IE1hcDxzdHJpbmcsIFNtYXJ0R3JpZENvbXBvbmVudCB8IFNtYXJ0dHJlZUdlbmVyaWNTZXJ2aWNlIHwgdW5kZWZpbmVkPiA9IG5ldyBNYXAoKTtcclxuXHJcbiAgZm9ybVdpZGdldHM6IE1hcDxzdHJpbmcsIFNtYXJ0Zm9ybUNvbXBvbmVudCB8IHVuZGVmaW5lZD4gPSBuZXcgTWFwKCk7XHJcblxyXG4gIHVzZVF1ZXJ5TGlzdHM6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgc2VuZE1vZGVsT25XaWRnZXRBY3Rpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgZGF0YUNoYW5nZUtleXM6IHN0cmluZ1tdID0gW107XHJcbiAgcHJvdGVjdGVkIGRhdGFDaGFuZ2VBY3Rpb25IYW5kbGVycyA9IG5ldyBNYXA8U21hcnRmb3JtQ29tcG9uZW50LCBTdWJzY3JpcHRpb24+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJvdGVjdGVkIGluamVjdDogSW5qZWN0b3IsXHJcbiAgICBwcm90ZWN0ZWQgYXV0aDogU21hcnRBdXRoZW50aWNhdGlvblNlcnZpY2VJbnRlcmZhY2UsXHJcbiAgICBwcm90ZWN0ZWQgcGFnZU5hbWU/OiBzdHJpbmcsXHJcbiAgICBwcm90ZWN0ZWQgX2NvbXBvbmVudE5hbWU/OiBzdHJpbmcsXHJcbiAgICBwcm90ZWN0ZWQgZWxlbWVudD86IEVsZW1lbnRSZWYsXHJcbiAgICBwcm90ZWN0ZWQgcmVuZGVyZXI/OiBSZW5kZXJlcjJcclxuICApIHtcclxuICAgIC8vIGNoZWNrIGFuZCBjYWxjdWxhdGUgcGFnZU5hbWVcclxuICAgIGlmICghdGhpcy5wYWdlTmFtZSAmJiAhdGhpcy5fY29tcG9uZW50TmFtZSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3BhZ2VOYW1lIG9yIGNvbXBvbmVudE5hbWUgbXVzdCBiZSBzcGVjaWZpZWQhJyk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy52aWV3Q29udGV4dCA9IGluamVjdC5nZXQoU21hcnRWaWV3Q29udGV4dFNlcnZpY2UpO1xyXG4gICAgaWYgKHRoaXMuX2NvbXBvbmVudE5hbWUpIHtcclxuICAgICAgbGV0IHBhZ2VOYW1lRm9yQ29tcG9uZW50ID0gdGhpcy52aWV3Q29udGV4dC5nZXRQYWdlTmFtZU9mQ29tcG9uZW50KHRoaXMuX2NvbXBvbmVudE5hbWUpO1xyXG4gICAgICBpZiAoIXRoaXMucGFnZU5hbWUpIHtcclxuICAgICAgICB0aGlzLnBhZ2VOYW1lID0gcGFnZU5hbWVGb3JDb21wb25lbnQ7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5wYWdlTmFtZSAhPT0gcGFnZU5hbWVGb3JDb21wb25lbnQpIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgICBgcGFnZU5hbWUgKCR7cGFnZU5hbWV9KSBhbmQgY29tcG9uZW50TmFtZSAoJHtfY29tcG9uZW50TmFtZX0pIGRvZXNuJ3QgbWF0Y2ghYFxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIGZyb20gdGhpcyBwb2ludCB3ZSBoYXZlIHRoaXMucGFnZU5hbWVcclxuICAgIHRoaXMuZGV0ZWN0Q2hhbmdlLnN1YnNjcmliZSgoY2hhbmdlOiBDb21wb25lbnRNb2RlbENoYW5nZSkgPT4ge1xyXG4gICAgICB0aGlzLmhhbmRsZUNoYW5nZXMoY2hhbmdlKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMudWlBY3Rpb25TZXJ2aWNlID0gaW5qZWN0LmdldChVaUFjdGlvblNlcnZpY2UpO1xyXG4gICAgdGhpcy51aUFjdGlvbkRlc2NyaXB0b3JTZXJ2aWNlID0gaW5qZWN0LmdldChVaUFjdGlvbkRlc2NyaXB0b3JTZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIF9uZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMucnVuKCk7XHJcbiAgfVxyXG4gIF9uZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMudmlld0NvbnRleHQudW5mb2xsb3codGhpcy51dWlkISk7XHJcbiAgICB0aGlzLndpZGdldHMuY2xlYXIoKTtcclxuXHJcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgX25nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnVzZVF1ZXJ5TGlzdHMpIHtcclxuICAgICAgaWYgKCF0aGlzLmdldFNtYXJ0Q29tcG9uZW50TGF5b3V0c1FMKCkpIHtcclxuICAgICAgICBjb25zb2xlLndhcm4oJ1NtYXJ0Q29tcG9uZW50TGF5b3V0c1FMIG5vdCBhdmFpbGFibGUhJyk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5oYW5kbGVRdWVyeUxpc3QodGhpcy5nZXRTbWFydENvbXBvbmVudExheW91dHNRTCgpISwgKGNvbXApID0+IHtcclxuICAgICAgICAgIGlmIChjb21wLnNtYXJ0Q29tcG9uZW50TGF5b3V0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdEFjdGlvbnMoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICh0aGlzLnV1aWQgJiYgdGhpcy51dWlkICE9PSBjb21wLnV1aWQpIGNvbXAudXVpZCA9IHRoaXMudXVpZDtcclxuICAgICAgICAgIFNtYXJ0Q29tcG9uZW50TGF5b3V0VXRpbGl0eS5nZXRHcmlkcyhjb21wKS5mb3JFYWNoKChncmlkKSA9PlxyXG4gICAgICAgICAgICB0aGlzLnNldHVwR3JpZFNlcnZpY2VzKGdyaWQpXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8vIGZvciBoYW5kbGluZyBlbWJlZGRlZCBmb3Jtc1xyXG4gICAgICAgIHRoaXMuaGFuZGxlUXVlcnlMaXN0KHRoaXMuZ2V0U21hcnRDb21wb25lbnRMYXlvdXRzUUwoKSEsIChmb3JtKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmhhbmRsZURhdGFDaGFuZ2VTdWJzY3JpcHRpb25zKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCF0aGlzLmdldFNtYXJ0Rm9ybXNRTCgpKSB7XHJcbiAgICAgICAgY29uc29sZS53YXJuKCdnZXRTbWFydEZvcm1zUUwgbm90IGF2YWlsYWJsZSEnKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmhhbmRsZVF1ZXJ5TGlzdCh0aGlzLmdldFNtYXJ0Rm9ybXNRTCgpISwgKGZvcm0pID0+IHtcclxuICAgICAgICAgIHRoaXMuaGFuZGxlRGF0YUNoYW5nZVN1YnNjcmlwdGlvbnMoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoIXRoaXMuZ2V0U21hcnRHcmlkc1FMKCkpIHtcclxuICAgICAgICBjb25zb2xlLndhcm4oJ1NtYXJ0R3JpZHNRTCBub3QgYXZhaWxhYmxlIScpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuaGFuZGxlUXVlcnlMaXN0KHRoaXMuZ2V0U21hcnRHcmlkc1FMKCkhLCAoZ3JpZCkgPT4ge1xyXG4gICAgICAgICAgaWYgKGdyaWQpIHtcclxuICAgICAgICAgICAgaWYgKGdyaWQuc21hcnRHcmlkKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZXR1cEdyaWRTZXJ2aWNlcyhncmlkKTtcclxuICAgICAgICAgICAgICBncmlkLnNldHVwVG9vbGJhcigpO1xyXG4gICAgICAgICAgICAgIGlmIChncmlkLnRvb2xiYXIpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaW5pdEFjdGlvbnMoKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHRoaXMudXVpZCAmJiB0aGlzLnV1aWQgIT09IGdyaWQudXVpZCkgZ3JpZC51dWlkID0gdGhpcy51dWlkO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldHVwR3JpZFNlcnZpY2VzKGdyaWQ6IFNtYXJ0R3JpZENvbXBvbmVudCkge1xyXG4gICAgaWYgKGdyaWQuc21hcnRHcmlkKSB7XHJcbiAgICAgIGlmICghZ3JpZC5zbWFydEdyaWQudWlBY3Rpb25TZXJ2aWNlKSB7XHJcbiAgICAgICAgZ3JpZC5zbWFydEdyaWQudWlBY3Rpb25TZXJ2aWNlID0gdGhpcy51aUFjdGlvblNlcnZpY2U7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCFncmlkLnNtYXJ0R3JpZC51aUFjdGlvbkRlc2NyaXB0b3JTZXJ2aWNlKSB7XHJcbiAgICAgICAgZ3JpZC5zbWFydEdyaWQudWlBY3Rpb25EZXNjcmlwdG9yU2VydmljZSA9IHRoaXMudWlBY3Rpb25EZXNjcmlwdG9yU2VydmljZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoIWdyaWQuc21hcnRHcmlkLnNlcnZpY2VUb1VzZSkge1xyXG4gICAgICAgIGdyaWQuc21hcnRHcmlkLnNlcnZpY2VUb1VzZSA9IHRoaXM7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCFncmlkLnNtYXJ0R3JpZC52aWV3Q29udGV4dFNlcnZpY2UpIHtcclxuICAgICAgICBncmlkLnNtYXJ0R3JpZC52aWV3Q29udGV4dFNlcnZpY2UgPSB0aGlzLnZpZXdDb250ZXh0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgaGFuZGxlUXVlcnlMaXN0U2ltcGxlPFQ+KHFsOiBRdWVyeUxpc3Q8VD4sIGhhbmRsZXI6ICgpID0+IHZvaWQpIHtcclxuICAgIGhhbmRsZXIoKTtcclxuICAgIHFsLmNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4gaGFuZGxlcigpKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBoYW5kbGVRdWVyeUxpc3Q8VD4ocWw6IFF1ZXJ5TGlzdDxUPiwgaGFuZGxlcjogKGVsOiBUKSA9PiB2b2lkKSB7XHJcbiAgICBxbC5mb3JFYWNoKChlbCkgPT4gaGFuZGxlcihlbCkpO1xyXG4gICAgcWwuY2hhbmdlc1xyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChsaXN0KSA9PiAobGlzdCBhcyBRdWVyeUxpc3Q8VD4pLmZvckVhY2goKGVsKSA9PiBoYW5kbGVyKGVsKSkpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGFic3RyYWN0IGdldFNtYXJ0Rm9ybXNRTCgpOiBRdWVyeUxpc3Q8U21hcnRmb3JtQ29tcG9uZW50PiB8IHVuZGVmaW5lZDtcclxuXHJcbiAgcHJvdGVjdGVkIGFic3RyYWN0IGdldFNtYXJ0R3JpZHNRTCgpOiBRdWVyeUxpc3Q8U21hcnRHcmlkQ29tcG9uZW50PiB8IHVuZGVmaW5lZDtcclxuXHJcbiAgcHJvdGVjdGVkIGFic3RyYWN0IGdldFNtYXJ0VHJlZXNRTCgpOiBRdWVyeUxpc3Q8U21hcnR0cmVlR2VuZXJpY1NlcnZpY2U+IHwgdW5kZWZpbmVkO1xyXG5cclxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0U21hcnRGaWx0ZXJTZXJ2aWNlc1FMKCk6IFF1ZXJ5TGlzdDxTbWFydEZpbHRlckVkaXRvclNlcnZpY2U+IHwgdW5kZWZpbmVkO1xyXG5cclxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0U21hcnRVaUFjdGlvblRvb2xiYXJzUUwoKTogUXVlcnlMaXN0PFVpQWN0aW9uVG9vbGJhckNvbXBvbmVudD4gfCB1bmRlZmluZWQ7XHJcblxyXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBnZXRTbWFydENvbXBvbmVudExheW91dHNRTCgpOlxyXG4gICAgfCBRdWVyeUxpc3Q8U21hcnRDb21wb25lbnRMYXlvdXRDb21wb25lbnQ+XHJcbiAgICB8IHVuZGVmaW5lZDtcclxuXHJcbiAgcHJvdGVjdGVkIGdldFdpZGdldHMoKTogTWFwPFxyXG4gICAgc3RyaW5nLFxyXG4gICAgU21hcnRHcmlkQ29tcG9uZW50IHwgU21hcnR0cmVlR2VuZXJpY1NlcnZpY2UgfCBTbWFydEZpbHRlckVkaXRvclNlcnZpY2UgfCB1bmRlZmluZWRcclxuICA+IHtcclxuICAgIGlmICh0aGlzLnVzZVF1ZXJ5TGlzdHMpIHtcclxuICAgICAgbGV0IHdpZGdldHM6IE1hcDxcclxuICAgICAgICBzdHJpbmcsXHJcbiAgICAgICAgU21hcnRHcmlkQ29tcG9uZW50IHwgU21hcnR0cmVlR2VuZXJpY1NlcnZpY2UgfCBTbWFydEZpbHRlckVkaXRvclNlcnZpY2UgfCB1bmRlZmluZWRcclxuICAgICAgPiA9IG5ldyBNYXAoKTtcclxuICAgICAgdGhpcy5nZXRBbGxTbWFydEdyaWRDb21wb25lbnRzKClcclxuICAgICAgICAuZmlsdGVyKChncmlkKSA9PiAoZ3JpZD8uc21hcnRHcmlkPy5ncmlkSWRlbnRpZmllciA/IHRydWUgOiBmYWxzZSkpXHJcbiAgICAgICAgLmZvckVhY2goKGdyaWQpID0+IHdpZGdldHMuc2V0KGdyaWQuc21hcnRHcmlkIS5ncmlkSWRlbnRpZmllciwgZ3JpZCkpO1xyXG4gICAgICB0aGlzLmdldEFsbFNtYXJ0VHJlZUNvbXBvbmVudHMoKVxyXG4gICAgICAgIC5maWx0ZXIoKHRyZWUpID0+ICh0cmVlPy5zbWFydFRyZWVNb2RlbD8uaWRlbnRpZmllciA/IHRydWUgOiBmYWxzZSkpXHJcbiAgICAgICAgLmZvckVhY2goKHRyZWUpID0+IHdpZGdldHMuc2V0KHRyZWUhLnNtYXJ0VHJlZU1vZGVsIS5pZGVudGlmaWVyISwgdHJlZSkpO1xyXG4gICAgICB0aGlzLmdldEFsbFNtYXJ0RmlsdGVyRWRpdG9yU2VydmljZXMoKVxyXG4gICAgICAgIC5maWx0ZXIoKGZpbHRlcikgPT4gKGZpbHRlci5jb25maWcuaWRlbnRpZmllciA/IHRydWUgOiBmYWxzZSkpXHJcbiAgICAgICAgLmZvckVhY2goKGZpbHRlcikgPT4gd2lkZ2V0cy5zZXQoZmlsdGVyLmNvbmZpZy5pZGVudGlmaWVyLCBmaWx0ZXIpKTtcclxuICAgICAgcmV0dXJuIHdpZGdldHM7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy53aWRnZXRzO1xyXG4gIH1cclxuXHJcbiAgaW5pdENvbXBvbmVudEJ5TW9kZWwoKTogdm9pZCB7XHJcbiAgICBTbWFydFN0eWxlVXRpbGl0eS5hcHBseVN0eWxlKHRoaXMubW9kZWw/LnN0eWxlLCB0aGlzLmVsZW1lbnQsIHRoaXMucmVuZGVyZXIpO1xyXG4gICAgdGhpcy5pbml0RGF0YSgpO1xyXG4gICAgdGhpcy5pbml0QWN0aW9ucygpO1xyXG5cclxuICAgIGlmICh0aGlzLnVzZVF1ZXJ5TGlzdHMpIHtcclxuICAgICAgdGhpcy5nZXRBbGxTbWFydEZvcm1Db21wb25lbnRzKCk/LmZvckVhY2goKGZvcm0pID0+IHtcclxuICAgICAgICBpZiAoZm9ybS5zbWFydEZvcm0pIHtcclxuICAgICAgICAgIGZvcm0uc21hcnRGb3JtLmNvbXBvbmVudE1vZGVsID0gdGhpcy5tb2RlbDtcclxuICAgICAgICAgIC8vIHVzZXMgZGF0YSwgdmFsdWVTZXRzLCBjb25zdHJhaW50c1xyXG4gICAgICAgICAgZm9ybS5jb25zdHJ1Y3RGb3JtKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIC8vIFRPRE86IGxheW91dCwgd2lkZ2V0c1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGdldEFsbFNtYXJ0Rm9ybUNvbXBvbmVudHMoKTogU21hcnRmb3JtQ29tcG9uZW50W10ge1xyXG4gICAgbGV0IGZvcm1zOiBTbWFydGZvcm1Db21wb25lbnRbXSA9IHRoaXMuZ2V0U21hcnRGb3Jtc1FMKCk/LnRvQXJyYXkoKSA/PyBbXTtcclxuICAgIHRoaXMuZ2V0U21hcnRDb21wb25lbnRMYXlvdXRzUUwoKT8uZm9yRWFjaCgoY29tcCkgPT4ge1xyXG4gICAgICBmb3Jtcy5wdXNoKC4uLlNtYXJ0Q29tcG9uZW50TGF5b3V0VXRpbGl0eS5nZXRGb3Jtcyhjb21wKSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBmb3JtcztcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBnZXRBbGxTbWFydEdyaWRDb21wb25lbnRzKCk6IFNtYXJ0R3JpZENvbXBvbmVudFtdIHtcclxuICAgIGxldCBncmlkczogU21hcnRHcmlkQ29tcG9uZW50W10gPSB0aGlzLmdldFNtYXJ0R3JpZHNRTCgpPy50b0FycmF5KCkgPz8gW107XHJcbiAgICB0aGlzLmdldFNtYXJ0Q29tcG9uZW50TGF5b3V0c1FMKCk/LmZvckVhY2goKGNvbXApID0+IHtcclxuICAgICAgZ3JpZHMucHVzaCguLi5TbWFydENvbXBvbmVudExheW91dFV0aWxpdHkuZ2V0R3JpZHMoY29tcCkpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gZ3JpZHM7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgZ2V0QWxsU21hcnRUcmVlQ29tcG9uZW50cygpOiBTbWFydHRyZWVHZW5lcmljU2VydmljZVtdIHtcclxuICAgIGxldCB0cmVlczogU21hcnR0cmVlR2VuZXJpY1NlcnZpY2VbXSA9IHRoaXMuZ2V0U21hcnRUcmVlc1FMKCk/LnRvQXJyYXkoKSA/PyBbXTtcclxuICAgIHRoaXMuZ2V0U21hcnRDb21wb25lbnRMYXlvdXRzUUwoKT8uZm9yRWFjaCgoY29tcCkgPT4ge1xyXG4gICAgICB0cmVlcy5wdXNoKC4uLlNtYXJ0Q29tcG9uZW50TGF5b3V0VXRpbGl0eS5nZXRUcmVlcyhjb21wKSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB0cmVlcztcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBnZXRBbGxTbWFydEZpbHRlckVkaXRvclNlcnZpY2VzKCk6IFNtYXJ0RmlsdGVyRWRpdG9yU2VydmljZVtdIHtcclxuICAgIGxldCBmaWx0ZXJzOiBTbWFydEZpbHRlckVkaXRvclNlcnZpY2VbXSA9IHRoaXMuZ2V0U21hcnRGaWx0ZXJTZXJ2aWNlc1FMKCk/LnRvQXJyYXkoKSA/PyBbXTtcclxuICAgIHJldHVybiBmaWx0ZXJzO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGdldEFsbFNtYXJ0VWlBY3Rpb25Ub29sYmFycygpOiBVaUFjdGlvblRvb2xiYXJDb21wb25lbnRbXSB7XHJcbiAgICBsZXQgdG9vbGJhcnM6IFVpQWN0aW9uVG9vbGJhckNvbXBvbmVudFtdID0gdGhpcy5nZXRTbWFydFVpQWN0aW9uVG9vbGJhcnNRTCgpPy50b0FycmF5KCkgPz8gW107XHJcbiAgICB0aGlzLmdldEFsbFNtYXJ0R3JpZENvbXBvbmVudHMoKT8uZm9yRWFjaCgoZ3JpZCkgPT4ge1xyXG4gICAgICBpZiAoZ3JpZC50b29sYmFyKSB7XHJcbiAgICAgICAgdG9vbGJhcnMucHVzaChncmlkLnRvb2xiYXIpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZ2V0U21hcnRDb21wb25lbnRMYXlvdXRzUUwoKT8uZm9yRWFjaCgoY29tcCkgPT4ge1xyXG4gICAgICB0b29sYmFycy5wdXNoKC4uLlNtYXJ0Q29tcG9uZW50TGF5b3V0VXRpbGl0eS5nZXRUb29sYmFycyhjb21wKSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZ2V0QWxsU21hcnRGb3JtQ29tcG9uZW50cygpXHJcbiAgICAgID8uZmxhdE1hcCgoZm9ybSkgPT4gZm9ybS5nZXRUb29sYmFycygpKVxyXG4gICAgICAuZmlsdGVyKCh0b29sYmFyKSA9PiB0b29sYmFyICE9PSB1bmRlZmluZWQgfHwgdG9vbGJhciAhPT0gbnVsbClcclxuICAgICAgLmZvckVhY2goKHRvb2xiYXIpID0+IHRvb2xiYXJzLnB1c2godG9vbGJhciBhcyBVaUFjdGlvblRvb2xiYXJDb21wb25lbnQpKTtcclxuXHJcbiAgICByZXR1cm4gdG9vbGJhcnM7XHJcbiAgfVxyXG5cclxuICBpbml0RGF0YSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm1vZGVsPy5kYXRhKSB7XHJcbiAgICAgIHRoaXMuZGF0YSA9IHRoaXMubW9kZWw/LmRhdGEgYXMgYW55O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW5pdEFjdGlvbnMoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5tb2RlbD8uYWN0aW9ucykge1xyXG4gICAgICBsZXQgdWlBY3Rpb25Nb2RlbHMgPSB0aGlzLm1vZGVsPy5hY3Rpb25zLm1hcCgodWlBY3Rpb246IFVpQWN0aW9uKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIHNlcnZpY2VUb1VzZTogdGhpcyxcclxuICAgICAgICAgIHVpQWN0aW9uLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pO1xyXG4gICAgICBsZXQgdG9vbGJhcnMgPSB0aGlzLmdldEFsbFNtYXJ0VWlBY3Rpb25Ub29sYmFycygpLmZpbHRlcigodG9vbGJhcikgPT4gdG9vbGJhci5pZCk7XHJcbiAgICAgIGxldCB0b29sYmFyTW9kZWxzID0gbmV3IE1hcDxzdHJpbmcsIFVpQWN0aW9uTW9kZWxbXT4oKTtcclxuICAgICAgdG9vbGJhcnMuZm9yRWFjaCgodG9vbGJhcikgPT4ge1xyXG4gICAgICAgIHRvb2xiYXJNb2RlbHMuc2V0KHRvb2xiYXIuaWQhLCBbXSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICBsZXQgZ2xvYmFsVWlBY3Rpb25Nb2RlbHM6IFVpQWN0aW9uTW9kZWxbXSA9IFtdO1xyXG4gICAgICB1aUFjdGlvbk1vZGVscy5mb3JFYWNoKChhY3Rpb24pID0+IHtcclxuICAgICAgICBsZXQgYWN0aW9uTW9kZWw6IFVpQWN0aW9uTW9kZWxbXSB8IHVuZGVmaW5lZCA9IGdsb2JhbFVpQWN0aW9uTW9kZWxzO1xyXG4gICAgICAgIGxldCB0b29sYmFySWQgPSBhY3Rpb24udWlBY3Rpb24udG9vbGJhcjtcclxuICAgICAgICBpZiAodG9vbGJhcklkICYmIHRvb2xiYXJNb2RlbHMuaGFzKHRvb2xiYXJJZCkpIHtcclxuICAgICAgICAgIGFjdGlvbk1vZGVsID0gdG9vbGJhck1vZGVscy5nZXQodG9vbGJhcklkKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCFhY3Rpb25Nb2RlbCkge1xyXG4gICAgICAgICAgYWN0aW9uTW9kZWwgPSBnbG9iYWxVaUFjdGlvbk1vZGVscztcclxuICAgICAgICB9XHJcbiAgICAgICAgYWN0aW9uTW9kZWwucHVzaChhY3Rpb24pO1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy51aUFjdGlvbk1vZGVscyA9IGdsb2JhbFVpQWN0aW9uTW9kZWxzO1xyXG5cclxuICAgICAgUHJvbWlzZS5hbGwoXHJcbiAgICAgICAgdG9vbGJhcnMubWFwKCh0b29sYmFyKSA9PiB7XHJcbiAgICAgICAgICB0b29sYmFyLnVpQWN0aW9uTW9kZWxzID0gdG9vbGJhck1vZGVscy5nZXQodG9vbGJhci5pZCEpO1xyXG4gICAgICAgICAgcmV0dXJuIHRvb2xiYXIuc2V0VXAoKTtcclxuICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgLy8gY29udGludWUgY29kZSBoZXJlIGlmIG5lZWRlZFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcignQW4gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHRvb2xiYXIgc2V0dXA6JywgZXJyb3IpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcnVuKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuYXV0aC5iZmZBcGlzSGF2ZUJlZW5TZXRVcCkge1xyXG4gICAgICB0aGlzLmxvYWQoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuYXV0aC5oZWFkZXJzVXBkYXRlZC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9hZCgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFzeW5jIGxvYWQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLnV1aWQgPSB0aGlzLnZpZXdDb250ZXh0LmdldFV1aWRPZlBhZ2UodGhpcy5wYWdlTmFtZSEpO1xyXG4gICAgLy8gdGhpcy5tb2RlbCA9IGF3YWl0IHRoaXMudmlld0NvbnRleHQubG9hZCh0aGlzLnV1aWQpO1xyXG4gICAgYXdhaXQgdGhpcy52aWV3Q29udGV4dC5sb2FkMih0aGlzLnV1aWQpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgZXhlY3V0ZVVpQWN0aW9uKHVpQWN0aW9uOiBVaUFjdGlvbiwgb3B0aW9ucz86IEV4ZWN1dGVVaUFjdGlvbk9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMudWlBY3Rpb25TZXJ2aWNlLnVpQWN0aW9uTW9kZWwgPSB7XHJcbiAgICAgIHNlcnZpY2VUb1VzZTogdGhpcyxcclxuICAgICAgdWlBY3Rpb246IHVpQWN0aW9uLFxyXG4gICAgfTtcclxuICAgIHRoaXMudWlBY3Rpb25TZXJ2aWNlLmV4ZWN1dGUodWlBY3Rpb24sIG9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgYWRkRGF0YUNoYW5nZUFjdGlvbkhhbmRsZXIoa2V5OiBzdHJpbmcpIHtcclxuICAgIGlmICghdGhpcy5kYXRhQ2hhbmdlS2V5cy5pbmNsdWRlcyhrZXkpKSB7XHJcbiAgICAgIHRoaXMuZGF0YUNoYW5nZUtleXMucHVzaChrZXkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlRGF0YUNoYW5nZUFjdGlvbkhhbmRsZXIoa2V5OiBzdHJpbmcpIHtcclxuICAgIGxldCBpZHggPSB0aGlzLmRhdGFDaGFuZ2VLZXlzLmluZGV4T2Yoa2V5KTtcclxuICAgIGlmIChpZHggPj0gMCkge1xyXG4gICAgICB0aGlzLmRhdGFDaGFuZ2VLZXlzLnNwbGljZShpZHgsIDEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGRhdGFDaGFuZ2VBY3Rpb25IYW5kbGVyKGV2ZW50OiBTb3BoaXN0aWNhdGVkVmFsdWVDaGFuZ2UpIHtcclxuICAgIGlmICh0aGlzLmRhdGFDaGFuZ2VLZXlzLmluY2x1ZGVzKGV2ZW50LmtleSkpIHtcclxuICAgICAgdGhpcy5leGVjdXRlVWlBY3Rpb24oe1xyXG4gICAgICAgIGNvZGU6IGV2ZW50LmtleSxcclxuICAgICAgICBtb2RlbDogdHJ1ZSxcclxuICAgICAgICBwYXJhbXM6IHtcclxuICAgICAgICAgIGl0ZW06IGV2ZW50LnZhbHVlLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGhhbmRsZURhdGFDaGFuZ2VTdWJzY3JpcHRpb25zKCkge1xyXG4gICAgaWYgKHRoaXMudXNlUXVlcnlMaXN0cykge1xyXG4gICAgICBsZXQgZm9ybXMgPSB0aGlzLmdldEFsbFNtYXJ0Rm9ybUNvbXBvbmVudHMoKTtcclxuICAgICAgLy8gYWRkIGVsZW1lbnRzIHRvIGRhdGFDaGFuZ2VLZXlzXHJcbiAgICAgIGZvcm1zLmZvckVhY2goKGZvcm0pID0+IHtcclxuICAgICAgICBmb3JtLnNtYXJ0Rm9ybT8ud2lkZ2V0cy5mb3JFYWNoKCh3aWRnZXQpID0+IHtcclxuICAgICAgICAgIGlmICh3aWRnZXQua2V5KSB7XHJcbiAgICAgICAgICAgIGlmICh3aWRnZXQudmFsdWVDaGFuZ2VNb2RlID09PSBWYWx1ZUNoYW5nZU1vZGUuSU1NRURJQVRFX0FDVElPTikge1xyXG4gICAgICAgICAgICAgIHRoaXMuYWRkRGF0YUNoYW5nZUFjdGlvbkhhbmRsZXIod2lkZ2V0LmtleSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5yZW1vdmVEYXRhQ2hhbmdlQWN0aW9uSGFuZGxlcih3aWRnZXQua2V5KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgICAgLy8gc3Vic2NyaWJlIHRvIG5ldyBmb3Jtc1xyXG4gICAgICBmb3Jtcy5mb3JFYWNoKChjb21wb25lbnQpID0+IHtcclxuICAgICAgICBpZiAoIXRoaXMuZGF0YUNoYW5nZUFjdGlvbkhhbmRsZXJzLmhhcyhjb21wb25lbnQpKSB7XHJcbiAgICAgICAgICBsZXQgc3VicyA9IGNvbXBvbmVudC5zb3BoaXN0aWNhdGVkVmFsdWVDaGFuZ2VcclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHRoaXMuZGF0YUNoYW5nZUFjdGlvbkhhbmRsZXIoZXZlbnQpKTtcclxuICAgICAgICAgIHRoaXMuZGF0YUNoYW5nZUFjdGlvbkhhbmRsZXJzLnNldChjb21wb25lbnQsIHN1YnMpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICAvLyB1bnN1YnNjcmliZSBmcm9tIHJlbW92ZWQgZm9ybXNcclxuICAgICAgdGhpcy5kYXRhQ2hhbmdlQWN0aW9uSGFuZGxlcnMuZm9yRWFjaCgoc3VicywgZm9ybSkgPT4ge1xyXG4gICAgICAgIGlmICghZm9ybXMuZmluZCgoYykgPT4gYyA9PT0gZm9ybSkpIHtcclxuICAgICAgICAgIHN1YnMudW5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgIHRoaXMuZGF0YUNoYW5nZUFjdGlvbkhhbmRsZXJzLmRlbGV0ZShmb3JtKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0SW52YWxpZEZpZWxkcygpOiBTbWFydEZvcm1JbnZhbGlkRmllbGRzIHtcclxuICAgIGxldCBhZ2dyZWdhdGVkSW52YWxpZEZpZWxkczogU21hcnRGb3JtSW52YWxpZEZpZWxkcyA9IHtcclxuICAgICAgaW52YWxpZEZpZWxkS2V5czogW10sXHJcbiAgICAgIGludmFsaWRGaWVsZE5hbWVzOiBbXSxcclxuICAgIH07XHJcblxyXG4gICAgaWYgKHRoaXMudXNlUXVlcnlMaXN0cykge1xyXG4gICAgICB0aGlzLmdldEFsbFNtYXJ0Rm9ybUNvbXBvbmVudHMoKT8uZm9yRWFjaCgoZm9ybSkgPT5cclxuICAgICAgICB0aGlzLnZhbGlkYXRlRm9ybShmb3JtLCBhZ2dyZWdhdGVkSW52YWxpZEZpZWxkcylcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZm9ybVdpZGdldHM/LmZvckVhY2goKGZvcm0pID0+IHRoaXMudmFsaWRhdGVGb3JtKGZvcm0sIGFnZ3JlZ2F0ZWRJbnZhbGlkRmllbGRzKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGFnZ3JlZ2F0ZWRJbnZhbGlkRmllbGRzO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHZhbGlkYXRlRm9ybShcclxuICAgIGZvcm06IFNtYXJ0Zm9ybUNvbXBvbmVudCB8IHVuZGVmaW5lZCxcclxuICAgIGFnZ3JlZ2F0ZWRJbnZhbGlkRmllbGRzOiBTbWFydEZvcm1JbnZhbGlkRmllbGRzXHJcbiAgKSB7XHJcbiAgICBsZXQgaW52YWxpZEZpZWxkc09mRm9ybSA9IGZvcm0/LmdldEludmFsaWRGaWVsZHMoKTtcclxuICAgIGlmIChpbnZhbGlkRmllbGRzT2ZGb3JtKSB7XHJcbiAgICAgIGludmFsaWRGaWVsZHNPZkZvcm0uaW52YWxpZEZpZWxkS2V5cy5mb3JFYWNoKChrZXkpID0+XHJcbiAgICAgICAgYWdncmVnYXRlZEludmFsaWRGaWVsZHMuaW52YWxpZEZpZWxkS2V5cy5wdXNoKGtleSlcclxuICAgICAgKTtcclxuICAgICAgaW52YWxpZEZpZWxkc09mRm9ybS5pbnZhbGlkRmllbGROYW1lcy5mb3JFYWNoKChrZXkpID0+XHJcbiAgICAgICAgYWdncmVnYXRlZEludmFsaWRGaWVsZHMuaW52YWxpZEZpZWxkTmFtZXMucHVzaChrZXkpXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyNyZWdpb24gVXNlVWlBY3Rpb25cclxuICBnZXRBZGRpdGlvbmFsUGFyYW1zKHVpQWN0aW9uOiBVaUFjdGlvbik6IFVpQWN0aW9uQWRkaXRpb25hbFBhcmFtcyB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBmb3JUZXh0QXJlYTogJycsXHJcbiAgICAgIGZvclRleHRGaWVsZDogJycsXHJcbiAgICB9O1xyXG4gIH1cclxuICBnZXRNb2RlbCgpIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGE7XHJcbiAgfVxyXG5cclxuICBzdWJtaXRGb3JtKHZhbGlkYXRlOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1Ym1pdEZvcm1zKHZhbGlkYXRlKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIHBlcmZvcm1VaUFjdGlvblJlcXVlc3QoXHJcbiAgICB1aUFjdGlvblJlcXVlc3Q6IFVpQWN0aW9uUmVxdWVzdCxcclxuICAgIHdpZGdldElkPzogc3RyaW5nLFxyXG4gICAgbm9kZUlkPzogc3RyaW5nXHJcbiAgKTogUHJvbWlzZTxhbnk+IHtcclxuICAgIGlmICh1aUFjdGlvblJlcXVlc3QucGFyYW1zWydfZmlsZXMnXSkge1xyXG4gICAgICBjb25zdCBwYXJhbSA9IHVpQWN0aW9uUmVxdWVzdC5wYXJhbXNbJ3BhcmFtJ107XHJcbiAgICAgIGNvbnN0IGZpbGVzID0gdWlBY3Rpb25SZXF1ZXN0LnBhcmFtc1snX2ZpbGVzJ107XHJcbiAgICAgIGNvbnN0IGlzTXVsdGlwbGUgPSB1aUFjdGlvblJlcXVlc3QucGFyYW1zWydpc011bHRpcGxlJ107XHJcbiAgICAgIGRlbGV0ZSB1aUFjdGlvblJlcXVlc3QucGFyYW1zWydwYXJhbSddO1xyXG4gICAgICBkZWxldGUgdWlBY3Rpb25SZXF1ZXN0LnBhcmFtc1snX2ZpbGVzJ107XHJcbiAgICAgIGRlbGV0ZSB1aUFjdGlvblJlcXVlc3QucGFyYW1zWydpc011bHRpcGxlJ107XHJcblxyXG4gICAgICAvLyBhd2FpdCB0aGlzLnNlbmRNb2RlbFRvU2VydmVyKCk7XHJcbiAgICAgIGlmICghaXNNdWx0aXBsZSkge1xyXG4gICAgICAgIGF3YWl0IHRoaXMudmlld0NvbnRleHQucGVyZm9ybVVwbG9hZEFjdGlvbih0aGlzLnV1aWQhLCB1aUFjdGlvblJlcXVlc3QsIHBhcmFtLCBmaWxlc1swXSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy52aWV3Q29udGV4dC5wZXJmb3JtVXBsb2FkTXVsdGlwbGVBY3Rpb24oXHJcbiAgICAgICAgICB0aGlzLnV1aWQhLFxyXG4gICAgICAgICAgdWlBY3Rpb25SZXF1ZXN0LFxyXG4gICAgICAgICAgcGFyYW0sXHJcbiAgICAgICAgICBmaWxlc1xyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAod2lkZ2V0SWQgJiYgbm9kZUlkKSB7XHJcbiAgICAgIC8vIGF3YWl0IHRoaXMuc2VuZE1vZGVsVG9TZXJ2ZXIoKTtcclxuICAgICAgdGhpcy5hZGRNb2RlbFRvV2lkZ2V0QWN0aW9uKHVpQWN0aW9uUmVxdWVzdCk7XHJcbiAgICAgIGF3YWl0IHRoaXMudmlld0NvbnRleHQucGVyZm9ybVdpZGdldEFjdGlvbih0aGlzLnV1aWQhLCB3aWRnZXRJZCwgbm9kZUlkLCB1aUFjdGlvblJlcXVlc3QpO1xyXG4gICAgfSBlbHNlIGlmICh3aWRnZXRJZCkge1xyXG4gICAgICAvLyBhd2FpdCB0aGlzLnNlbmRNb2RlbFRvU2VydmVyKCk7XHJcbiAgICAgIHRoaXMuYWRkTW9kZWxUb1dpZGdldEFjdGlvbih1aUFjdGlvblJlcXVlc3QpO1xyXG4gICAgICBhd2FpdCB0aGlzLnZpZXdDb250ZXh0LnBlcmZvcm1XaWRnZXRNYWluQWN0aW9uKHRoaXMudXVpZCEsIHdpZGdldElkLCB1aUFjdGlvblJlcXVlc3QpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgYXdhaXQgdGhpcy52aWV3Q29udGV4dC5wZXJmb3JtQWN0aW9uKHRoaXMudXVpZCEsIHVpQWN0aW9uUmVxdWVzdCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgYWRkTW9kZWxUb1dpZGdldEFjdGlvbih1aUFjdGlvblJlcXVlc3Q6IFVpQWN0aW9uUmVxdWVzdCkge1xyXG4gICAgaWYgKHRoaXMuc2VuZE1vZGVsT25XaWRnZXRBY3Rpb24pIHtcclxuICAgICAgdGhpcy5zdWJtaXRGb3JtKGZhbHNlKTtcclxuICAgICAgLy8gbWltaWMgQ29tcG9uZW50TW9kZWxcclxuICAgICAgdWlBY3Rpb25SZXF1ZXN0LnBhcmFtc1snY2xpZW50UGFnZU1vZGVsJ10gPSB7IGRhdGE6IHRoaXMuZ2V0TW9kZWwoKSB9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gcHJpdmF0ZSBhc3luYyBzZW5kTW9kZWxUb1NlcnZlcigpIHtcclxuICAvLyAgIHRoaXMuc3VibWl0Rm9ybXMoZmFsc2UpO1xyXG4gIC8vICAgbGV0IGRhdGFDaGFuZ2UgPSB7XHJcbiAgLy8gICAgIGtpbmQ6IERhdGFDaGFuZ2VLaW5kLldpZGdldCxcclxuICAvLyAgICAgc291cmNlOiAnJyxcclxuICAvLyAgICAgdmFsdWVzOiBbWycnLCB0aGlzLmdldE1vZGVsKCldXSxcclxuICAvLyAgIH07XHJcbiAgLy8gICBhd2FpdCB0aGlzLnZpZXdDb250ZXh0LmRhdGFDaGFuZ2VkKHRoaXMudXVpZCEsIGRhdGFDaGFuZ2UpO1xyXG4gIC8vIH1cclxuXHJcbiAgaGFuZGxlU3BlY2lmaWNEZW1hbmRzQXN5bmNocm9ub3VzbHkoXHJcbiAgICB1aUFjdGlvbjogVWlBY3Rpb24sXHJcbiAgICB1aUFjdGlvblJlcXVlc3Q6IFVpQWN0aW9uUmVxdWVzdFxyXG4gICk6IFByb21pc2U8VWlBY3Rpb25TcGVjaWZpY0RlbWFuZFJlc3BvbnNlPiB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2hhbmRsZVNwZWNpZmljRGVtYW5kc0FzeW5jaHJvbm91c2x5IG1ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XHJcbiAgfVxyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuICAvKipcclxuICAgKiBTdWJtaXRzIGFsbCB0aGUgcmVnaXN0ZXJlZCBmb3JtcyBpbiB0aGUgU21hcnRDb21wb25lbnRcclxuICAgKi9cclxuICBwdWJsaWMgc3VibWl0Rm9ybXModmFsaWRhdGU6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnVzZVF1ZXJ5TGlzdHMpIHtcclxuICAgICAgdGhpcy5nZXRBbGxTbWFydEZvcm1Db21wb25lbnRzKCk/LmZvckVhY2goKGZvcm0pID0+IHtcclxuICAgICAgICBmb3JtPy5zdWJtaXRGb3JtKHZhbGlkYXRlKTtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZvcm1XaWRnZXRzPy5mb3JFYWNoKChmb3JtKSA9PiB7XHJcbiAgICAgICAgZm9ybT8uc3VibWl0Rm9ybSh2YWxpZGF0ZSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZEdyaWQoXHJcbiAgICBzbWFydEdyaWQ6IFNtYXJ0R3JpZCxcclxuICAgIG9wdGlvbnM6IEdyaWRPcHRpb25zLFxyXG4gICAgdXNlQXNEZWZhdWx0R3JpZD86IGJvb2xlYW4sXHJcbiAgICBjb21wb25lbnRSZWZlcmVuY2U/OiBTbWFydEdyaWRDb21wb25lbnRcclxuICApOiBTbWFydEdyaWQge1xyXG4gICAgc21hcnRHcmlkLm9wdGlvbnMgPSBvcHRpb25zO1xyXG4gICAgc21hcnRHcmlkLnVpQWN0aW9uU2VydmljZSA9IHRoaXMudWlBY3Rpb25TZXJ2aWNlO1xyXG4gICAgc21hcnRHcmlkLnVpQWN0aW9uRGVzY3JpcHRvclNlcnZpY2UgPSB0aGlzLnVpQWN0aW9uRGVzY3JpcHRvclNlcnZpY2U7XHJcbiAgICBzbWFydEdyaWQuc2VydmljZVRvVXNlID0gdGhpcztcclxuICAgIHNtYXJ0R3JpZC52aWV3Q29udGV4dFNlcnZpY2UgPSB0aGlzLnZpZXdDb250ZXh0O1xyXG5cclxuICAgIGlmICghdGhpcy51c2VRdWVyeUxpc3RzKSB7XHJcbiAgICAgIHRoaXMud2lkZ2V0cy5zZXQoc21hcnRHcmlkLmdyaWRJZGVudGlmaWVyLCBjb21wb25lbnRSZWZlcmVuY2UpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc29sZS53YXJuKGBBZGRlZCBzbWFydEdyaWQgd2hlbiB1c2VRdWVyeUxpc3RzID09PSB0cnVlICgke3NtYXJ0R3JpZC5ncmlkSWRlbnRpZmllcn0pYCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHVzZUFzRGVmYXVsdEdyaWQpIHtcclxuICAgICAgdGhpcy5zbWFydEdyaWQgPSBzbWFydEdyaWQ7XHJcbiAgICAgIHJldHVybiB0aGlzLnNtYXJ0R3JpZDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gc21hcnRHcmlkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZEZvcm0oXHJcbiAgICBzbWFydEZvcm1JZDogc3RyaW5nLFxyXG4gICAgc21hcnRGb3JtOiBTbWFydEZvcm0sXHJcbiAgICBjb21wb25lbnRSZWZlcmVuY2U/OiBTbWFydGZvcm1Db21wb25lbnRcclxuICApOiBTbWFydEZvcm0ge1xyXG4gICAgaWYgKCF0aGlzLnVzZVF1ZXJ5TGlzdHMpIHtcclxuICAgICAgdGhpcy5mb3JtV2lkZ2V0cy5zZXQoc21hcnRGb3JtSWQsIGNvbXBvbmVudFJlZmVyZW5jZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zb2xlLndhcm4oYEFkZGVkIHNtYXJ0Rm9ybSB3aGVuIHVzZVF1ZXJ5TGlzdHMgPT09IHRydWUgKCR7c21hcnRGb3JtSWR9KWApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGlmICh0aGlzLnNlbmREYXRhQ2hhbmdlcyAmJiBjb21wb25lbnRSZWZlcmVuY2UpIHtcclxuICAgIC8vICAgc21hcnRGb3JtLnVzZU9uVmFsdWVDaGFuZ2VFdmVudCA9IHRydWU7XHJcblxyXG4gICAgLy8gICBjb21wb25lbnRSZWZlcmVuY2Uuc29waGlzdGljYXRlZFZhbHVlQ2hhbmdlXHJcbiAgICAvLyAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcclxuICAgIC8vICAgICAuc3Vic2NyaWJlKCh2YWx1ZUNoYW5nZTogU29waGlzdGljYXRlZFZhbHVlQ2hhbmdlKSA9PiB7XHJcbiAgICAvLyAgICAgICB0aGlzLmhhbmRsZVZhbHVlQ2hhbmdlcyh2YWx1ZUNoYW5nZSk7XHJcbiAgICAvLyAgICAgfSk7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgcmV0dXJuIHNtYXJ0Rm9ybTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRVcERlZmF1bHRUcmVlKHRyZWVJZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnNtYXJ0VHJlZVNlcnZpY2UgPSB0aGlzLmNyZWF0ZVRyZWVTZXJ2aWNlKHRyZWVJZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY3JlYXRlVHJlZVNlcnZpY2UodHJlZUlkOiBzdHJpbmcpOiBTbWFydHRyZWVHZW5lcmljU2VydmljZSB7XHJcbiAgICBjb25zdCB0cmVlU2VydmljZSA9IG5ldyBTbWFydHRyZWVHZW5lcmljU2VydmljZSh0aGlzLmluamVjdCwgdGhpcy5wYWdlTmFtZSEsIHRyZWVJZCk7XHJcbiAgICBpZiAoIXRoaXMudXNlUXVlcnlMaXN0cykge1xyXG4gICAgICB0aGlzLndpZGdldHMuc2V0KHRyZWVJZCwgdHJlZVNlcnZpY2UpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc29sZS53YXJuKGBBZGRlZCBzbWFydFRyZWUgd2hlbiB1c2VRdWVyeUxpc3RzID09PSB0cnVlICgke3RyZWVJZH0pYCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRyZWVTZXJ2aWNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZEZpbGVVcGxvYWRlcihcclxuICAgIHVpQWN0aW9uQ29kZTogc3RyaW5nLFxyXG4gICAgZmlsZUZvcm1hdHM/OiBzdHJpbmdbXSxcclxuICAgIG1heFNpemVNYj86IG51bWJlcixcclxuICAgIGlzTXVsdGlwbGU/OiBib29sZWFuXHJcbiAgKTogU21hcnRDb21wb25lbnRGaWxlVXBsb2FkZXIge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdWlBY3Rpb25Db2RlLFxyXG4gICAgICBzbWFydENvbXBvbmVudDogdGhpcyxcclxuICAgICAgZmlsZUZvcm1hdHMsXHJcbiAgICAgIGlzTXVsdGlwbGUsXHJcbiAgICAgIG1heFNpemVNYixcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAvLyAjcmVnaW9uIGhhbmRsZSBjaGFuZ2VzXHJcbiAgcHJpdmF0ZSBoYW5kbGVWYWx1ZUNoYW5nZXModmFsdWVDaGFuZ2U6IFNvcGhpc3RpY2F0ZWRWYWx1ZUNoYW5nZSk6IHZvaWQge1xyXG4gICAgbGV0IGRhdGFDaGFuZ2U6IERhdGFDaGFuZ2U7XHJcbiAgICBpZiAodmFsdWVDaGFuZ2Uua2V5LmluY2x1ZGVzKCcuJykpIHtcclxuICAgICAgY29uc3Qgc291cmNlID0gdmFsdWVDaGFuZ2Uua2V5LnNwbGl0KCcuJylbMF07XHJcbiAgICAgIGNvbnN0IHZhbHVlS2V5ID0gdmFsdWVDaGFuZ2Uua2V5LnNwbGl0KCcuJylbMV07XHJcbiAgICAgIGRhdGFDaGFuZ2UgPSB7XHJcbiAgICAgICAga2luZDogdmFsdWVDaGFuZ2Uua2luZCA9PT0gJ2Jhc2ljJyA/IERhdGFDaGFuZ2VLaW5kLldJREdFVCA6IERhdGFDaGFuZ2VLaW5kLlNFTEVDVElPTixcclxuICAgICAgICBzb3VyY2UsXHJcbiAgICAgICAgdmFsdWVzOiBbW3ZhbHVlS2V5LCB2YWx1ZUNoYW5nZS52YWx1ZV1dLFxyXG4gICAgICB9O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGF0YUNoYW5nZSA9IHtcclxuICAgICAgICBraW5kOiB2YWx1ZUNoYW5nZS5raW5kID09PSAnYmFzaWMnID8gRGF0YUNoYW5nZUtpbmQuV0lER0VUIDogRGF0YUNoYW5nZUtpbmQuU0VMRUNUSU9OLFxyXG4gICAgICAgIHNvdXJjZTogdmFsdWVDaGFuZ2Uua2V5LFxyXG4gICAgICAgIHZhbHVlczogW1t2YWx1ZUNoYW5nZS5rZXksIHZhbHVlQ2hhbmdlLnZhbHVlXV0sXHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy52aWV3Q29udGV4dC5kYXRhQ2hhbmdlZCh0aGlzLnV1aWQhLCBkYXRhQ2hhbmdlKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBoYW5kbGVDaGFuZ2VzKGNoYW5nZTogQ29tcG9uZW50TW9kZWxDaGFuZ2UpOiB2b2lkIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGlmIChjaGFuZ2UuY2hhbmdlZFdpZGdldHMpIHtcclxuICAgICAgICB0aGlzLmhhbmRsZUNoYW5nZVdpZGdldHMoY2hhbmdlLmNoYW5nZWRXaWRnZXRzKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgbGV0IGRhdGFDaGFuZ2VIYXNCZWVuTmV4dGVkID0gZmFsc2U7XHJcbiAgICAgIGlmIChjaGFuZ2UuY2hhbmdlcykge1xyXG4gICAgICAgIGNvbnN0IGNoYW5nZXMgPSBjaGFuZ2UuY2hhbmdlcztcclxuICAgICAgICBPYmplY3Qua2V5cyhjaGFuZ2VzKS5tYXAoKGNoYW5nZUtleTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICBpZiAoY2hhbmdlS2V5LnN0YXJ0c1dpdGgoJ2RhdGEuJykpIHtcclxuICAgICAgICAgICAgdGhpcy5oYW5kbGVEYXRhQ2hhbmdlKGNoYW5nZXMsIGNoYW5nZUtleSk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKGNoYW5nZUtleS5zdGFydHNXaXRoKCdsYXlvdXRzLicpICYmIHRoaXMubW9kZWw/LmxheW91dHMpIHtcclxuICAgICAgICAgICAgdGhpcy5oYW5kbGVMYXlvdXRDaGFuZ2UoY2hhbmdlcywgY2hhbmdlS2V5KTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAoY2hhbmdlS2V5LnN0YXJ0c1dpdGgoJ2NvbXBvbmVudExheW91dHMuJykgJiYgdGhpcy5tb2RlbD8ubGF5b3V0cykge1xyXG4gICAgICAgICAgICB0aGlzLmhhbmRsZUNvbXBvbmVudExheW91dENoYW5nZShjaGFuZ2VzLCBjaGFuZ2VLZXkpO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChjaGFuZ2VLZXkuc3RhcnRzV2l0aCgndmFsdWVTZXRzLicpICYmIHRoaXMubW9kZWw/LnZhbHVlU2V0cykge1xyXG4gICAgICAgICAgICB0aGlzLmhhbmRsZVZhbHVlU2V0Q2hhbmdlKGNoYW5nZXMsIGNoYW5nZUtleSk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKGNoYW5nZUtleSA9PT0gJ2FjdGlvbnMnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlQWN0aW9uQ2hhbmdlKGNoYW5nZXMsIGNoYW5nZUtleSk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKGNoYW5nZUtleSA9PT0gJ2NvbnN0cmFpbnRzJykge1xyXG4gICAgICAgICAgICB0aGlzLmhhbmRsZUNvbnN0cmFpbnRDaGFuZ2UoY2hhbmdlcywgY2hhbmdlS2V5KTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAoY2hhbmdlS2V5ID09PSAnJykge1xyXG4gICAgICAgICAgICB0aGlzLm1vZGVsID0gY2hhbmdlc1snJ10gYXMgQ29tcG9uZW50TW9kZWw7XHJcbiAgICAgICAgICAgIGRhdGFDaGFuZ2VIYXNCZWVuTmV4dGVkID0gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaWYgKCFkYXRhQ2hhbmdlSGFzQmVlbk5leHRlZCkge1xyXG4gICAgICAgICAgdGhpcy5kYXRhQ2hhbmdlZC5uZXh0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcclxuICAgICAgdGhpcy5tb2RlbCA9IGNoYW5nZS52YWx1ZSBhcyBDb21wb25lbnRNb2RlbDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIWNoYW5nZS5jaGFuZ2VkV2lkZ2V0cyAmJiAhY2hhbmdlLmNoYW5nZXMgJiYgY2hhbmdlLnZhbHVlKSB7XHJcbiAgICAgIHRoaXMubW9kZWwgPSBjaGFuZ2UudmFsdWUgYXMgQ29tcG9uZW50TW9kZWw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZUNoYW5nZVdpZGdldHMoY2hhbmdlZFdpZGdldHM6IHN0cmluZ1tdKTogdm9pZCB7XHJcbiAgICBsZXQgd2lkZ2V0cyA9IHRoaXMuZ2V0V2lkZ2V0cygpO1xyXG4gICAgY2hhbmdlZFdpZGdldHMuZm9yRWFjaCgoa2V5OiBzdHJpbmcpID0+IHtcclxuICAgICAgY29uc3QgcmVmZXJlbmNlID0gd2lkZ2V0cy5nZXQoa2V5KTtcclxuXHJcbiAgICAgIGlmIChyZWZlcmVuY2UgaW5zdGFuY2VvZiBTbWFydEdyaWRDb21wb25lbnQpIHtcclxuICAgICAgICB0aGlzLnNldHVwR3JpZFNlcnZpY2VzKHJlZmVyZW5jZSk7XHJcbiAgICAgICAgcmVmZXJlbmNlLnJlZnJlc2goKTtcclxuICAgICAgfSBlbHNlIGlmIChyZWZlcmVuY2UgaW5zdGFuY2VvZiBTbWFydHRyZWVHZW5lcmljU2VydmljZSkge1xyXG4gICAgICAgIHJlZmVyZW5jZS5pbml0aWFsaXplKCk7XHJcbiAgICAgIH0gZWxzZSBpZiAocmVmZXJlbmNlIGluc3RhbmNlb2YgU21hcnRGaWx0ZXJFZGl0b3JTZXJ2aWNlKSB7XHJcbiAgICAgICAgcmVmZXJlbmNlLmxvYWQoKTtcclxuICAgICAgfSBlbHNlIGlmIChyZWZlcmVuY2UgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYFByb3ZpZGVkIHJlZmVyZW5jZSBmb3IgJHtrZXl9IGlzIHVuZGVmaW5lZC5gKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFZhbHVlRGVlcGx5KG1vZGVsOiBhbnksIGtleTogc3RyaW5nLCB2YWx1ZTogYW55KSB7XHJcbiAgICBsZXQgc3BsaXR0ZWRLZXlzID0ga2V5LnNwbGl0KCcuJyk7XHJcblxyXG4gICAgbGV0IGRlZXBNb2RlbDogYW55W10gPSBbbW9kZWxdO1xyXG4gICAgbGV0IHRlbXBNb2RlbDogYW55O1xyXG5cclxuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBzcGxpdHRlZEtleXMubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgIHRlbXBNb2RlbCA9IGRlZXBNb2RlbFtpbmRleF07XHJcblxyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdHlwZW9mIHRlbXBNb2RlbFtzcGxpdHRlZEtleXNbaW5kZXhdXSAhPT0gJ3N0cmluZycgJiZcclxuICAgICAgICB0eXBlb2YgdGVtcE1vZGVsW3NwbGl0dGVkS2V5c1tpbmRleF1dICE9PSAnYm9vbGVhbicgJiZcclxuICAgICAgICB0eXBlb2YgdGVtcE1vZGVsW3NwbGl0dGVkS2V5c1tpbmRleF1dICE9PSAnbnVtYmVyJyAmJlxyXG4gICAgICAgIHRlbXBNb2RlbFtzcGxpdHRlZEtleXNbaW5kZXhdXSAhPT0gdW5kZWZpbmVkXHJcbiAgICAgICkge1xyXG4gICAgICAgIGRlZXBNb2RlbC5wdXNoKHRlbXBNb2RlbFtzcGxpdHRlZEtleXNbaW5kZXhdXSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChpbmRleCA9PT0gc3BsaXR0ZWRLZXlzLmxlbmd0aCAtIDEpIHtcclxuICAgICAgICBsZXQgb2xkVmFsdWUgPSB0ZW1wTW9kZWxbc3BsaXR0ZWRLZXlzW2luZGV4XV07XHJcbiAgICAgICAgLy8gaWYgKHZhbHVlID09PSAnJyAmJiAob2xkVmFsdWUgPT09IG51bGwgfHwgb2xkVmFsdWUgPT09IHVuZGVmaW5lZCkgdGhlbiBkb24ndCBjaGFuZ2UgdmFsdWUuXHJcbiAgICAgICAgaWYgKHZhbHVlICE9PSAnJyB8fCAob2xkVmFsdWUgIT09IG51bGwgJiYgb2xkVmFsdWUgIT09IHVuZGVmaW5lZCkpIHtcclxuICAgICAgICAgIHRlbXBNb2RlbFtzcGxpdHRlZEtleXNbaW5kZXhdXSA9IHZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYW5kbGVEYXRhQ2hhbmdlKGNoYW5nZXM6IHsgW2tleTogc3RyaW5nXTogYW55IH0sIGNoYW5nZUtleTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldFZhbHVlRGVlcGx5KHRoaXMubW9kZWwsIGNoYW5nZUtleSwgY2hhbmdlc1tjaGFuZ2VLZXldKTtcclxuXHJcbiAgICBpZiAodGhpcy51c2VRdWVyeUxpc3RzKSB7XHJcbiAgICAgIHRoaXMuZ2V0QWxsU21hcnRGb3JtQ29tcG9uZW50cygpPy5mb3JFYWNoKChmb3JtKSA9PiBmb3JtLnJlZnJlc2goKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZvcm1XaWRnZXRzLmZvckVhY2goKGZvcm1Db21wb25lbnQ6IFNtYXJ0Zm9ybUNvbXBvbmVudCB8IHVuZGVmaW5lZCwga2V5OiBzdHJpbmcpID0+IHtcclxuICAgICAgICBpZiAoZm9ybUNvbXBvbmVudCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGBQcm92aWRlZCBmb3JtIHJlZmVyZW5jZSBmb3IgJHtrZXl9IGlzIHVuZGVmaW5lZC5gKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgZm9ybUNvbXBvbmVudC5yZWZyZXNoKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlTGF5b3V0Q2hhbmdlKGNoYW5nZXM6IHsgW2tleTogc3RyaW5nXTogYW55IH0sIGNoYW5nZUtleTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBsZXQgbGF5b3V0S2V5ID0gY2hhbmdlS2V5LnNwbGl0KCcuJylbMV07XHJcbiAgICB0aGlzLm1vZGVsIS5sYXlvdXRzW2xheW91dEtleV0gPSBjaGFuZ2VzW2NoYW5nZUtleV07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZUNvbXBvbmVudExheW91dENoYW5nZShjaGFuZ2VzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9LCBjaGFuZ2VLZXk6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgbGV0IGxheW91dEtleSA9IGNoYW5nZUtleS5zcGxpdCgnLicpWzFdO1xyXG4gICAgbGV0IGNvbXBvbmVudExheW91dHM6IHsgW2tleTogc3RyaW5nXTogT2JqZWN0IH0gPSB0aGlzLm1vZGVsIS5jb21wb25lbnRMYXlvdXRzIGFzIHtcclxuICAgICAgW2tleTogc3RyaW5nXTogT2JqZWN0O1xyXG4gICAgfTtcclxuICAgIGNvbXBvbmVudExheW91dHNbbGF5b3V0S2V5XSA9IGNoYW5nZXNbY2hhbmdlS2V5XTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlVmFsdWVTZXRDaGFuZ2UoY2hhbmdlczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSwgY2hhbmdlS2V5OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGxldCB2YWx1ZVNldEtleSA9IGNoYW5nZUtleS5zcGxpdCgnLicpWzFdO1xyXG4gICAgdGhpcy5tb2RlbCEudmFsdWVTZXRzIVt2YWx1ZVNldEtleV0gPSBjaGFuZ2VzW2NoYW5nZUtleV07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZUFjdGlvbkNoYW5nZShjaGFuZ2VzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9LCBjaGFuZ2VLZXk6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5tb2RlbCEuYWN0aW9ucyA9IGNoYW5nZXNbY2hhbmdlS2V5XTtcclxuICAgIHRoaXMuaW5pdEFjdGlvbnMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlQ29uc3RyYWludENoYW5nZShjaGFuZ2VzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9LCBjaGFuZ2VLZXk6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5tb2RlbCEuY29uc3RyYWludHMgPSBjaGFuZ2VzW2NoYW5nZUtleV07XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRDb21wb25lbnRGaWxlVXBsb2FkZXIge1xyXG4gIHVpQWN0aW9uQ29kZTogc3RyaW5nO1xyXG4gIG1heFNpemVNYj86IG51bWJlcjtcclxuICBmaWxlRm9ybWF0cz86IHN0cmluZ1tdO1xyXG4gIGlzTXVsdGlwbGU/OiBib29sZWFuO1xyXG4gIHNtYXJ0Q29tcG9uZW50OiBTbWFydENvbXBvbmVudEFwaUNsaWVudDxhbnk+O1xyXG59XHJcbiJdfQ==
|
|
692
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtY29tcG9uZW50LWFwaS1jbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1jbGllbnQvc21hcnQtY29tcG9uZW50LWFwaS1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsT0FBTyxFQUFFLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pFLE9BQU8sRUFJTCxjQUFjLEVBR2QsdUJBQXVCLEVBR3ZCLHlCQUF5QixFQUd6QixlQUFlLEdBSWhCLE1BQU0sMEJBQTBCLENBQUM7QUFFbEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBMEIsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRixPQUFPLEVBS0wsZUFBZSxHQUNoQixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFFTCwyQkFBMkIsR0FDNUIsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUVoRixNQUFNLE9BQWdCLHVCQUF1QjtJQTBHM0MsWUFDWSxNQUFnQixFQUNoQixJQUF5QyxFQUN6QyxRQUFpQixFQUNqQixjQUF1QixFQUN2QixPQUFvQixFQUNwQixRQUFvQjtRQUxwQixXQUFNLEdBQU4sTUFBTSxDQUFVO1FBQ2hCLFNBQUksR0FBSixJQUFJLENBQXFDO1FBQ3pDLGFBQVEsR0FBUixRQUFRLENBQVM7UUFDakIsbUJBQWMsR0FBZCxjQUFjLENBQVM7UUFDdkIsWUFBTyxHQUFQLE9BQU8sQ0FBYTtRQUNwQixhQUFRLEdBQVIsUUFBUSxDQUFZ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QUFDLEtBQU0sQ0FBQyxnQkFFN0QsQ0FBQztRQUNGLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRU8sb0JBQW9CLENBQUMsT0FBK0IsRUFBRSxTQUFpQjtRQUM3RSxJQUFJLFdBQVcsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxLQUFNLENBQUMsU0FBVSxDQUFDLFdBQVcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRU8sa0JBQWtCLENBQUMsT0FBK0IsRUFBRSxTQUFpQjtRQUMzRSxJQUFJLENBQUMsS0FBTSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxPQUErQixFQUFFLFNBQWlCO1FBQy9FLElBQUksQ0FBQyxLQUFNLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvQyxDQUFDO0NBR0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEVsZW1lbnRSZWYsXHJcbiAgSW5qZWN0LFxyXG4gIEluamVjdG9yLFxyXG4gIFF1ZXJ5TGlzdCxcclxuICBSZW5kZXJlcjIsXHJcbiAgUmVuZGVyZXJTdHlsZUZsYWdzMixcclxuICBWaWV3Q2hpbGRyZW4sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFNtYXJ0dHJlZUdlbmVyaWNTZXJ2aWNlIH0gZnJvbSAnLi4vc21hcnQtdHJlZS9wcm9qZWN0cyc7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50TW9kZWwsXHJcbiAgQ29tcG9uZW50TW9kZWxDaGFuZ2UsXHJcbiAgRGF0YUNoYW5nZSxcclxuICBEYXRhQ2hhbmdlS2luZCxcclxuICBFeGVjdXRlVWlBY3Rpb25PcHRpb25zLFxyXG4gIFNtYXJ0VHJhbnNsYXRlU2VydmljZSxcclxuICBTbWFydFZpZXdDb250ZXh0U2VydmljZSxcclxuICBVaUFjdGlvbixcclxuICBVaUFjdGlvbkFkZGl0aW9uYWxQYXJhbXMsXHJcbiAgVWlBY3Rpb25EZXNjcmlwdG9yU2VydmljZSxcclxuICBVaUFjdGlvbk1vZGVsLFxyXG4gIFVpQWN0aW9uUmVxdWVzdCxcclxuICBVaUFjdGlvblNlcnZpY2UsXHJcbiAgVWlBY3Rpb25TcGVjaWZpY0RlbWFuZFJlc3BvbnNlLFxyXG4gIFVpQWN0aW9uVG9vbGJhckNvbXBvbmVudCxcclxuICBVc2VVaUFjdGlvbjIsXHJcbn0gZnJvbSAnLi4vdmlldy1jb250ZXh0L3Byb2plY3RzJztcclxuaW1wb3J0IHsgU21hcnRBdXRoZW50aWNhdGlvblNlcnZpY2VJbnRlcmZhY2UgfSBmcm9tICcuL3NtYXJ0LWF1dGhlbnRpY2F0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTbWFydFN1YmplY3QgfSBmcm9tICcuLi9zbWFydC1zdWJqZWN0L3Byb2plY3RzJztcclxuaW1wb3J0IHsgR3JpZE9wdGlvbnMsIFNtYXJ0R3JpZCwgU21hcnRHcmlkQ29tcG9uZW50IH0gZnJvbSAnLi4vc21hcnQtZ3JpZC9wcm9qZWN0cyc7XHJcbmltcG9ydCB7XHJcbiAgU21hcnRGb3JtLFxyXG4gIFNtYXJ0Rm9ybUludmFsaWRGaWVsZHMsXHJcbiAgU21hcnRmb3JtQ29tcG9uZW50LFxyXG4gIFNvcGhpc3RpY2F0ZWRWYWx1ZUNoYW5nZSxcclxuICBWYWx1ZUNoYW5nZU1vZGUsXHJcbn0gZnJvbSAnLi4vc21hcnQtZm9ybS9wcm9qZWN0cyc7XHJcbmltcG9ydCB7XHJcbiAgU21hcnRDb21wb25lbnRMYXlvdXRDb21wb25lbnQsXHJcbiAgU21hcnRDb21wb25lbnRMYXlvdXRVdGlsaXR5LFxyXG59IGZyb20gJy4uL3NtYXJ0LWNvbXBvbmVudC1sYXlvdXQvcHJvamVjdHMnO1xyXG5pbXBvcnQgeyBTbWFydEZpbHRlckVkaXRvclNlcnZpY2UgfSBmcm9tICcuLi9zbWFydC1maWx0ZXItZWRpdG9yL3Byb2plY3QnO1xyXG5pbXBvcnQgeyBTbWFydFN0eWxlVXRpbGl0eSB9IGZyb20gJy4uL3ZpZXctY29udGV4dC91dGlsaXR5L3NtYXJ0LXN0eWxlLXV0aWxpdHknO1xyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNtYXJ0Q29tcG9uZW50QXBpQ2xpZW50PFQ+IGltcGxlbWVudHMgVXNlVWlBY3Rpb24yIHtcclxuICBwcm90ZWN0ZWQgX2Rlc3Ryb3kkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgcHJpdmF0ZSBkZXRlY3RDaGFuZ2U6IFNtYXJ0U3ViamVjdDxDb21wb25lbnRNb2RlbENoYW5nZT4gPSBuZXcgU21hcnRTdWJqZWN0KHRoaXMuX2Rlc3Ryb3kkKTtcclxuXHJcbiAgcHJpdmF0ZSBfdXVpZD86IHN0cmluZztcclxuXHJcbiAgcHJpdmF0ZSB1dWlkT2ZQYWdlSGFzQmVlbkNoYW5nZWRTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XHJcblxyXG4gIHByaXZhdGUgX25nQWZ0ZXJWaWV3SW5pdFBlcmZvcm1lZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBnZXQgdXVpZCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuX3V1aWQ7XHJcbiAgfVxyXG4gIHNldCB1dWlkKHV1aWQ6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xyXG4gICAgaWYgKHRoaXMuX3V1aWQgPT09IHV1aWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgbGV0IGZpcnN0VXVpZDogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBpZiAodGhpcy51dWlkKSB7XHJcbiAgICAgIHRoaXMudmlld0NvbnRleHQudW5mb2xsb3codGhpcy51dWlkKTtcclxuICAgICAgZmlyc3RVdWlkID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICB0aGlzLl91dWlkID0gdXVpZDtcclxuICAgIGlmICh1dWlkKSB7XHJcbiAgICAgIHRoaXMuZ2V0V2lkZ2V0cygpLmZvckVhY2goKHJlZiwga2V5KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlZiBpbnN0YW5jZW9mIFNtYXJ0R3JpZENvbXBvbmVudCkge1xyXG4gICAgICAgICAgcmVmLnV1aWQgPSB1dWlkO1xyXG4gICAgICAgIH0gZWxzZSBpZiAocmVmIGluc3RhbmNlb2YgU21hcnRGaWx0ZXJFZGl0b3JTZXJ2aWNlKSB7XHJcbiAgICAgICAgICByZWYuY29uZmlnLnV1aWQgPSB1dWlkO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoIXJlZiAmJiAhZmlyc3RVdWlkKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGBQcm92aWRlZCByZWZlcmVuY2UgZm9yICR7a2V5fSBpcyB1bmRlZmluZWQgb24gdXVpZCBjaGFuZ2UuYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgaWYgKCF0aGlzLnV1aWRPZlBhZ2VIYXNCZWVuQ2hhbmdlZFN1YnNjcmlwdGlvbikge1xyXG4gICAgICAgIHRoaXMudXVpZE9mUGFnZUhhc0JlZW5DaGFuZ2VkU3Vic2NyaXB0aW9uID0gdGhpcy52aWV3Q29udGV4dC51dWlkT2ZQYWdlSGFzQmVlbkNoYW5nZWRcclxuICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKChwYWdlTmFtZSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAocGFnZU5hbWUgPT09IHRoaXMucGFnZU5hbWUhKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5ydW4oKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMudmlld0NvbnRleHQuZm9sbG93KHRoaXMuX3V1aWQhLCB0aGlzLmRldGVjdENoYW5nZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9tb2RlbDogQ29tcG9uZW50TW9kZWwgfCB1bmRlZmluZWQ7XHJcblxyXG4gIGdldCBtb2RlbCgpOiBDb21wb25lbnRNb2RlbCB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5fbW9kZWw7XHJcbiAgfVxyXG4gIHNldCBtb2RlbChtb2RlbDogQ29tcG9uZW50TW9kZWwgfCB1bmRlZmluZWQpIHtcclxuICAgIHRoaXMuX21vZGVsID0gbW9kZWw7XHJcblxyXG4gICAgdGhpcy5pbml0Q29tcG9uZW50QnlNb2RlbCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZGF0YT86IFQ7XHJcblxyXG4gIGdldCBkYXRhKCk6IFQgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RhdGE7XHJcbiAgfVxyXG4gIHNldCBkYXRhKG1vZGVsOiBUIHwgdW5kZWZpbmVkKSB7XHJcbiAgICB0aGlzLl9kYXRhID0gbW9kZWw7XHJcbiAgICB0aGlzLmRhdGFDaGFuZ2VkLm5leHQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB1aUFjdGlvbk1vZGVsczogVWlBY3Rpb25Nb2RlbFtdID0gW107XHJcblxyXG4gIHB1YmxpYyBkYXRhQ2hhbmdlZDogU3ViamVjdDx2b2lkPiA9IG5ldyBTbWFydFN1YmplY3QodGhpcy5fZGVzdHJveSQpO1xyXG5cclxuICAvLyBHcmlkXHJcbiAgc21hcnRHcmlkPzogU21hcnRHcmlkO1xyXG5cclxuICAvLyBTZXJ2aWNlc1xyXG4gIHByb3RlY3RlZCB2aWV3Q29udGV4dDogU21hcnRWaWV3Q29udGV4dFNlcnZpY2U7XHJcbiAgcHJvdGVjdGVkIHVpQWN0aW9uU2VydmljZTogVWlBY3Rpb25TZXJ2aWNlO1xyXG4gIHByb3RlY3RlZCB1aUFjdGlvbkRlc2NyaXB0b3JTZXJ2aWNlOiBVaUFjdGlvbkRlc2NyaXB0b3JTZXJ2aWNlO1xyXG4gIHByb3RlY3RlZCB0cmFuc2xhdGU/OiBTbWFydFRyYW5zbGF0ZVNlcnZpY2U7XHJcblxyXG4gIC8vIFRyZWVcclxuICBwcml2YXRlIF9zbWFydFRyZWVTZXJ2aWNlPzogU21hcnR0cmVlR2VuZXJpY1NlcnZpY2U7XHJcblxyXG4gIHB1YmxpYyBnZXQgc21hcnRUcmVlU2VydmljZSgpOiBTbWFydHRyZWVHZW5lcmljU2VydmljZSB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5fc21hcnRUcmVlU2VydmljZTtcclxuICB9XHJcbiAgcHVibGljIHNldCBzbWFydFRyZWVTZXJ2aWNlKHNtYXJ0VHJlZVNlcnZpY2U6IFNtYXJ0dHJlZUdlbmVyaWNTZXJ2aWNlIHwgdW5kZWZpbmVkKSB7XHJcbiAgICBpZiAodGhpcy5fc21hcnRUcmVlU2VydmljZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRocm93IEVycm9yKCdUaGUgZGVmYXVsdCB0cmVlIGhhcyBhbHJlYWR5IHNldCB1cCEnKTtcclxuICAgIH1cclxuICAgIHRoaXMuX3NtYXJ0VHJlZVNlcnZpY2UgPSBzbWFydFRyZWVTZXJ2aWNlO1xyXG4gIH1cclxuXHJcbiAgLy8gQ29udGFpbmVkIFdpZGdldHNcclxuICB3aWRnZXRzOiBNYXA8c3RyaW5nLCBTbWFydEdyaWRDb21wb25lbnQgfCBTbWFydHRyZWVHZW5lcmljU2VydmljZSB8IHVuZGVmaW5lZD4gPSBuZXcgTWFwKCk7XHJcblxyXG4gIGZvcm1XaWRnZXRzOiBNYXA8c3RyaW5nLCBTbWFydGZvcm1Db21wb25lbnQgfCB1bmRlZmluZWQ+ID0gbmV3IE1hcCgpO1xyXG5cclxuICB1c2VRdWVyeUxpc3RzOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHNlbmRNb2RlbE9uV2lkZ2V0QWN0aW9uOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGRhdGFDaGFuZ2VLZXlzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIHByb3RlY3RlZCBkYXRhQ2hhbmdlQWN0aW9uSGFuZGxlcnMgPSBuZXcgTWFwPFNtYXJ0Zm9ybUNvbXBvbmVudCwgU3Vic2NyaXB0aW9uPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByb3RlY3RlZCBpbmplY3Q6IEluamVjdG9yLFxyXG4gICAgcHJvdGVjdGVkIGF1dGg6IFNtYXJ0QXV0aGVudGljYXRpb25TZXJ2aWNlSW50ZXJmYWNlLFxyXG4gICAgcHJvdGVjdGVkIHBhZ2VOYW1lPzogc3RyaW5nLFxyXG4gICAgcHJvdGVjdGVkIF9jb21wb25lbnROYW1lPzogc3RyaW5nLFxyXG4gICAgcHJvdGVjdGVkIGVsZW1lbnQ/OiBFbGVtZW50UmVmLFxyXG4gICAgcHJvdGVjdGVkIHJlbmRlcmVyPzogUmVuZGVyZXIyXHJcbiAgKSB7XHJcbiAgICAvLyBjaGVjayBhbmQgY2FsY3VsYXRlIHBhZ2VOYW1lXHJcbiAgICBpZiAoIXRoaXMucGFnZU5hbWUgJiYgIXRoaXMuX2NvbXBvbmVudE5hbWUpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdwYWdlTmFtZSBvciBjb21wb25lbnROYW1lIG11c3QgYmUgc3BlY2lmaWVkIScpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudmlld0NvbnRleHQgPSBpbmplY3QuZ2V0KFNtYXJ0Vmlld0NvbnRleHRTZXJ2aWNlKTtcclxuICAgIGlmICh0aGlzLl9jb21wb25lbnROYW1lKSB7XHJcbiAgICAgIGxldCBwYWdlTmFtZUZvckNvbXBvbmVudCA9IHRoaXMudmlld0NvbnRleHQuZ2V0UGFnZU5hbWVPZkNvbXBvbmVudCh0aGlzLl9jb21wb25lbnROYW1lKTtcclxuICAgICAgaWYgKCF0aGlzLnBhZ2VOYW1lKSB7XHJcbiAgICAgICAgdGhpcy5wYWdlTmFtZSA9IHBhZ2VOYW1lRm9yQ29tcG9uZW50O1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMucGFnZU5hbWUgIT09IHBhZ2VOYW1lRm9yQ29tcG9uZW50KSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgICAgYHBhZ2VOYW1lICgke3BhZ2VOYW1lfSkgYW5kIGNvbXBvbmVudE5hbWUgKCR7X2NvbXBvbmVudE5hbWV9KSBkb2Vzbid0IG1hdGNoIWBcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyBmcm9tIHRoaXMgcG9pbnQgd2UgaGF2ZSB0aGlzLnBhZ2VOYW1lXHJcbiAgICB0aGlzLmRldGVjdENoYW5nZS5zdWJzY3JpYmUoKGNoYW5nZTogQ29tcG9uZW50TW9kZWxDaGFuZ2UpID0+IHtcclxuICAgICAgdGhpcy5oYW5kbGVDaGFuZ2VzKGNoYW5nZSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnVpQWN0aW9uU2VydmljZSA9IGluamVjdC5nZXQoVWlBY3Rpb25TZXJ2aWNlKTtcclxuICAgIHRoaXMudWlBY3Rpb25EZXNjcmlwdG9yU2VydmljZSA9IGluamVjdC5nZXQoVWlBY3Rpb25EZXNjcmlwdG9yU2VydmljZSk7XHJcbiAgfVxyXG5cclxuICBfbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnJ1bigpO1xyXG4gIH1cclxuICBfbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnZpZXdDb250ZXh0LnVuZm9sbG93KHRoaXMudXVpZCEpO1xyXG4gICAgdGhpcy53aWRnZXRzLmNsZWFyKCk7XHJcblxyXG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xyXG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIF9uZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy51c2VRdWVyeUxpc3RzKSB7XHJcbiAgICAgIGlmICghdGhpcy5nZXRTbWFydENvbXBvbmVudExheW91dHNRTCgpKSB7XHJcbiAgICAgICAgY29uc29sZS53YXJuKCdTbWFydENvbXBvbmVudExheW91dHNRTCBub3QgYXZhaWxhYmxlIScpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuaGFuZGxlUXVlcnlMaXN0KHRoaXMuZ2V0U21hcnRDb21wb25lbnRMYXlvdXRzUUwoKSEsIChjb21wKSA9PiB7XHJcbiAgICAgICAgICBpZiAoY29tcC5zbWFydENvbXBvbmVudExheW91dCkge1xyXG4gICAgICAgICAgICB0aGlzLmluaXRBY3Rpb25zKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAodGhpcy51dWlkICYmIHRoaXMudXVpZCAhPT0gY29tcC51dWlkKSBjb21wLnV1aWQgPSB0aGlzLnV1aWQ7XHJcbiAgICAgICAgICBTbWFydENvbXBvbmVudExheW91dFV0aWxpdHkuZ2V0R3JpZHMoY29tcCkuZm9yRWFjaCgoZ3JpZCkgPT5cclxuICAgICAgICAgICAgdGhpcy5zZXR1cEdyaWRTZXJ2aWNlcyhncmlkKVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICAvLyBmb3IgaGFuZGxpbmcgZW1iZWRkZWQgZm9ybXNcclxuICAgICAgICB0aGlzLmhhbmRsZVF1ZXJ5TGlzdCh0aGlzLmdldFNtYXJ0Q29tcG9uZW50TGF5b3V0c1FMKCkhLCAoZm9ybSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5oYW5kbGVEYXRhQ2hhbmdlU3Vic2NyaXB0aW9ucygpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghdGhpcy5nZXRTbWFydEZvcm1zUUwoKSkge1xyXG4gICAgICAgIGNvbnNvbGUud2FybignZ2V0U21hcnRGb3Jtc1FMIG5vdCBhdmFpbGFibGUhJyk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5oYW5kbGVRdWVyeUxpc3QodGhpcy5nZXRTbWFydEZvcm1zUUwoKSEsIChmb3JtKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmhhbmRsZURhdGFDaGFuZ2VTdWJzY3JpcHRpb25zKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCF0aGlzLmdldFNtYXJ0R3JpZHNRTCgpKSB7XHJcbiAgICAgICAgY29uc29sZS53YXJuKCdTbWFydEdyaWRzUUwgbm90IGF2YWlsYWJsZSEnKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmhhbmRsZVF1ZXJ5TGlzdCh0aGlzLmdldFNtYXJ0R3JpZHNRTCgpISwgKGdyaWQpID0+IHtcclxuICAgICAgICAgIGlmIChncmlkKSB7XHJcbiAgICAgICAgICAgIGlmIChncmlkLnNtYXJ0R3JpZCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2V0dXBHcmlkU2VydmljZXMoZ3JpZCk7XHJcbiAgICAgICAgICAgICAgZ3JpZC5zZXR1cFRvb2xiYXIoKTtcclxuICAgICAgICAgICAgICBpZiAoZ3JpZC50b29sYmFyKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmluaXRBY3Rpb25zKCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnV1aWQgJiYgdGhpcy51dWlkICE9PSBncmlkLnV1aWQpIGdyaWQudXVpZCA9IHRoaXMudXVpZDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXR1cEdyaWRTZXJ2aWNlcyhncmlkOiBTbWFydEdyaWRDb21wb25lbnQpIHtcclxuICAgIGlmIChncmlkLnNtYXJ0R3JpZCkge1xyXG4gICAgICBpZiAoIWdyaWQuc21hcnRHcmlkLnVpQWN0aW9uU2VydmljZSkge1xyXG4gICAgICAgIGdyaWQuc21hcnRHcmlkLnVpQWN0aW9uU2VydmljZSA9IHRoaXMudWlBY3Rpb25TZXJ2aWNlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghZ3JpZC5zbWFydEdyaWQudWlBY3Rpb25EZXNjcmlwdG9yU2VydmljZSkge1xyXG4gICAgICAgIGdyaWQuc21hcnRHcmlkLnVpQWN0aW9uRGVzY3JpcHRvclNlcnZpY2UgPSB0aGlzLnVpQWN0aW9uRGVzY3JpcHRvclNlcnZpY2U7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCFncmlkLnNtYXJ0R3JpZC5zZXJ2aWNlVG9Vc2UpIHtcclxuICAgICAgICBncmlkLnNtYXJ0R3JpZC5zZXJ2aWNlVG9Vc2UgPSB0aGlzO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghZ3JpZC5zbWFydEdyaWQudmlld0NvbnRleHRTZXJ2aWNlKSB7XHJcbiAgICAgICAgZ3JpZC5zbWFydEdyaWQudmlld0NvbnRleHRTZXJ2aWNlID0gdGhpcy52aWV3Q29udGV4dDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGhhbmRsZVF1ZXJ5TGlzdFNpbXBsZTxUPihxbDogUXVlcnlMaXN0PFQ+LCBoYW5kbGVyOiAoKSA9PiB2b2lkKSB7XHJcbiAgICBoYW5kbGVyKCk7XHJcbiAgICBxbC5jaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IGhhbmRsZXIoKSk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgaGFuZGxlUXVlcnlMaXN0PFQ+KHFsOiBRdWVyeUxpc3Q8VD4sIGhhbmRsZXI6IChlbDogVCkgPT4gdm9pZCkge1xyXG4gICAgcWwuZm9yRWFjaCgoZWwpID0+IGhhbmRsZXIoZWwpKTtcclxuICAgIHFsLmNoYW5nZXNcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSgobGlzdCkgPT4gKGxpc3QgYXMgUXVlcnlMaXN0PFQ+KS5mb3JFYWNoKChlbCkgPT4gaGFuZGxlcihlbCkpKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBnZXRTbWFydEZvcm1zUUwoKTogUXVlcnlMaXN0PFNtYXJ0Zm9ybUNvbXBvbmVudD4gfCB1bmRlZmluZWQ7XHJcblxyXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBnZXRTbWFydEdyaWRzUUwoKTogUXVlcnlMaXN0PFNtYXJ0R3JpZENvbXBvbmVudD4gfCB1bmRlZmluZWQ7XHJcblxyXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBnZXRTbWFydFRyZWVzUUwoKTogUXVlcnlMaXN0PFNtYXJ0dHJlZUdlbmVyaWNTZXJ2aWNlPiB8IHVuZGVmaW5lZDtcclxuXHJcbiAgcHJvdGVjdGVkIGFic3RyYWN0IGdldFNtYXJ0RmlsdGVyU2VydmljZXNRTCgpOiBRdWVyeUxpc3Q8U21hcnRGaWx0ZXJFZGl0b3JTZXJ2aWNlPiB8IHVuZGVmaW5lZDtcclxuXHJcbiAgcHJvdGVjdGVkIGFic3RyYWN0IGdldFNtYXJ0VWlBY3Rpb25Ub29sYmFyc1FMKCk6IFF1ZXJ5TGlzdDxVaUFjdGlvblRvb2xiYXJDb21wb25lbnQ+IHwgdW5kZWZpbmVkO1xyXG5cclxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0U21hcnRDb21wb25lbnRMYXlvdXRzUUwoKTpcclxuICAgIHwgUXVlcnlMaXN0PFNtYXJ0Q29tcG9uZW50TGF5b3V0Q29tcG9uZW50PlxyXG4gICAgfCB1bmRlZmluZWQ7XHJcblxyXG4gIHByb3RlY3RlZCBnZXRXaWRnZXRzKCk6IE1hcDxcclxuICAgIHN0cmluZyxcclxuICAgIFNtYXJ0R3JpZENvbXBvbmVudCB8IFNtYXJ0dHJlZUdlbmVyaWNTZXJ2aWNlIHwgU21hcnRGaWx0ZXJFZGl0b3JTZXJ2aWNlIHwgdW5kZWZpbmVkXHJcbiAgPiB7XHJcbiAgICBpZiAodGhpcy51c2VRdWVyeUxpc3RzKSB7XHJcbiAgICAgIGxldCB3aWRnZXRzOiBNYXA8XHJcbiAgICAgICAgc3RyaW5nLFxyXG4gICAgICAgIFNtYXJ0R3JpZENvbXBvbmVudCB8IFNtYXJ0dHJlZUdlbmVyaWNTZXJ2aWNlIHwgU21hcnRGaWx0ZXJFZGl0b3JTZXJ2aWNlIHwgdW5kZWZpbmVkXHJcbiAgICAgID4gPSBuZXcgTWFwKCk7XHJcbiAgICAgIHRoaXMuZ2V0QWxsU21hcnRHcmlkQ29tcG9uZW50cygpXHJcbiAgICAgICAgLmZpbHRlcigoZ3JpZCkgPT4gKGdyaWQ/LnNtYXJ0R3JpZD8uZ3JpZElkZW50aWZpZXIgPyB0cnVlIDogZmFsc2UpKVxyXG4gICAgICAgIC5mb3JFYWNoKChncmlkKSA9PiB3aWRnZXRzLnNldChncmlkLnNtYXJ0R3JpZCEuZ3JpZElkZW50aWZpZXIsIGdyaWQpKTtcclxuICAgICAgdGhpcy5nZXRBbGxTbWFydFRyZWVDb21wb25lbnRzKClcclxuICAgICAgICAuZmlsdGVyKCh0cmVlKSA9PiAodHJlZT8uc21hcnRUcmVlTW9kZWw/LmlkZW50aWZpZXIgPyB0cnVlIDogZmFsc2UpKVxyXG4gICAgICAgIC5mb3JFYWNoKCh0cmVlKSA9PiB3aWRnZXRzLnNldCh0cmVlIS5zbWFydFRyZWVNb2RlbCEuaWRlbnRpZmllciEsIHRyZWUpKTtcclxuICAgICAgdGhpcy5nZXRBbGxTbWFydEZpbHRlckVkaXRvclNlcnZpY2VzKClcclxuICAgICAgICAuZmlsdGVyKChmaWx0ZXIpID0+IChmaWx0ZXIuY29uZmlnLmlkZW50aWZpZXIgPyB0cnVlIDogZmFsc2UpKVxyXG4gICAgICAgIC5mb3JFYWNoKChmaWx0ZXIpID0+IHdpZGdldHMuc2V0KGZpbHRlci5jb25maWcuaWRlbnRpZmllciwgZmlsdGVyKSk7XHJcbiAgICAgIHJldHVybiB3aWRnZXRzO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMud2lkZ2V0cztcclxuICB9XHJcblxyXG4gIGluaXRDb21wb25lbnRCeU1vZGVsKCk6IHZvaWQge1xyXG4gICAgU21hcnRTdHlsZVV0aWxpdHkuYXBwbHlTdHlsZSh0aGlzLm1vZGVsPy5zdHlsZSwgdGhpcy5lbGVtZW50LCB0aGlzLnJlbmRlcmVyKTtcclxuICAgIGlmICh0aGlzLm1vZGVsPy5wYXJlbnRTdHlsZSkge1xyXG4gICAgICBsZXQgZWxlbWVudCA9IHRoaXMuZWxlbWVudD8ubmF0aXZlRWxlbWVudDtcclxuICAgICAgaWYgKGVsZW1lbnQgJiYgZWxlbWVudC5wYXJlbnROb2RlKSB7XHJcbiAgICAgICAgZWxlbWVudCA9IGVsZW1lbnQucGFyZW50Tm9kZTtcclxuICAgICAgICBTbWFydFN0eWxlVXRpbGl0eS5hcHBseVN0eWxlKHRoaXMubW9kZWw/LnN0eWxlLCBlbGVtZW50LCB0aGlzLnJlbmRlcmVyKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5pbml0RGF0YSgpO1xyXG4gICAgdGhpcy5pbml0QWN0aW9ucygpO1xyXG5cclxuICAgIGlmICh0aGlzLnVzZVF1ZXJ5TGlzdHMpIHtcclxuICAgICAgdGhpcy5nZXRBbGxTbWFydEZvcm1Db21wb25lbnRzKCk/LmZvckVhY2goKGZvcm0pID0+IHtcclxuICAgICAgICBpZiAoZm9ybS5zbWFydEZvcm0pIHtcclxuICAgICAgICAgIGZvcm0uc21hcnRGb3JtLmNvbXBvbmVudE1vZGVsID0gdGhpcy5tb2RlbDtcclxuICAgICAgICAgIC8vIHVzZXMgZGF0YSwgdmFsdWVTZXRzLCBjb25zdHJhaW50c1xyXG4gICAgICAgICAgZm9ybS5jb25zdHJ1Y3RGb3JtKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIC8vIFRPRE86IGxheW91dCwgd2lkZ2V0c1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGdldEFsbFNtYXJ0Rm9ybUNvbXBvbmVudHMoKTogU21hcnRmb3JtQ29tcG9uZW50W10ge1xyXG4gICAgbGV0IGZvcm1zOiBTbWFydGZvcm1Db21wb25lbnRbXSA9IHRoaXMuZ2V0U21hcnRGb3Jtc1FMKCk/LnRvQXJyYXkoKSA/PyBbXTtcclxuICAgIHRoaXMuZ2V0U21hcnRDb21wb25lbnRMYXlvdXRzUUwoKT8uZm9yRWFjaCgoY29tcCkgPT4ge1xyXG4gICAgICBmb3Jtcy5wdXNoKC4uLlNtYXJ0Q29tcG9uZW50TGF5b3V0VXRpbGl0eS5nZXRGb3Jtcyhjb21wKSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBmb3JtcztcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBnZXRBbGxTbWFydEdyaWRDb21wb25lbnRzKCk6IFNtYXJ0R3JpZENvbXBvbmVudFtdIHtcclxuICAgIGxldCBncmlkczogU21hcnRHcmlkQ29tcG9uZW50W10gPSB0aGlzLmdldFNtYXJ0R3JpZHNRTCgpPy50b0FycmF5KCkgPz8gW107XHJcbiAgICB0aGlzLmdldFNtYXJ0Q29tcG9uZW50TGF5b3V0c1FMKCk/LmZvckVhY2goKGNvbXApID0+IHtcclxuICAgICAgZ3JpZHMucHVzaCguLi5TbWFydENvbXBvbmVudExheW91dFV0aWxpdHkuZ2V0R3JpZHMoY29tcCkpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gZ3JpZHM7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgZ2V0QWxsU21hcnRUcmVlQ29tcG9uZW50cygpOiBTbWFydHRyZWVHZW5lcmljU2VydmljZVtdIHtcclxuICAgIGxldCB0cmVlczogU21hcnR0cmVlR2VuZXJpY1NlcnZpY2VbXSA9IHRoaXMuZ2V0U21hcnRUcmVlc1FMKCk/LnRvQXJyYXkoKSA/PyBbXTtcclxuICAgIHRoaXMuZ2V0U21hcnRDb21wb25lbnRMYXlvdXRzUUwoKT8uZm9yRWFjaCgoY29tcCkgPT4ge1xyXG4gICAgICB0cmVlcy5wdXNoKC4uLlNtYXJ0Q29tcG9uZW50TGF5b3V0VXRpbGl0eS5nZXRUcmVlcyhjb21wKSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB0cmVlcztcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBnZXRBbGxTbWFydEZpbHRlckVkaXRvclNlcnZpY2VzKCk6IFNtYXJ0RmlsdGVyRWRpdG9yU2VydmljZVtdIHtcclxuICAgIGxldCBmaWx0ZXJzOiBTbWFydEZpbHRlckVkaXRvclNlcnZpY2VbXSA9IHRoaXMuZ2V0U21hcnRGaWx0ZXJTZXJ2aWNlc1FMKCk/LnRvQXJyYXkoKSA/PyBbXTtcclxuICAgIHJldHVybiBmaWx0ZXJzO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGdldEFsbFNtYXJ0VWlBY3Rpb25Ub29sYmFycygpOiBVaUFjdGlvblRvb2xiYXJDb21wb25lbnRbXSB7XHJcbiAgICBsZXQgdG9vbGJhcnM6IFVpQWN0aW9uVG9vbGJhckNvbXBvbmVudFtdID0gdGhpcy5nZXRTbWFydFVpQWN0aW9uVG9vbGJhcnNRTCgpPy50b0FycmF5KCkgPz8gW107XHJcbiAgICB0aGlzLmdldEFsbFNtYXJ0R3JpZENvbXBvbmVudHMoKT8uZm9yRWFjaCgoZ3JpZCkgPT4ge1xyXG4gICAgICBpZiAoZ3JpZC50b29sYmFyKSB7XHJcbiAgICAgICAgdG9vbGJhcnMucHVzaChncmlkLnRvb2xiYXIpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZ2V0U21hcnRDb21wb25lbnRMYXlvdXRzUUwoKT8uZm9yRWFjaCgoY29tcCkgPT4ge1xyXG4gICAgICB0b29sYmFycy5wdXNoKC4uLlNtYXJ0Q29tcG9uZW50TGF5b3V0VXRpbGl0eS5nZXRUb29sYmFycyhjb21wKSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZ2V0QWxsU21hcnRGb3JtQ29tcG9uZW50cygpXHJcbiAgICAgID8uZmxhdE1hcCgoZm9ybSkgPT4gZm9ybS5nZXRUb29sYmFycygpKVxyXG4gICAgICAuZmlsdGVyKCh0b29sYmFyKSA9PiB0b29sYmFyICE9PSB1bmRlZmluZWQgfHwgdG9vbGJhciAhPT0gbnVsbClcclxuICAgICAgLmZvckVhY2goKHRvb2xiYXIpID0+IHRvb2xiYXJzLnB1c2godG9vbGJhciBhcyBVaUFjdGlvblRvb2xiYXJDb21wb25lbnQpKTtcclxuXHJcbiAgICByZXR1cm4gdG9vbGJhcnM7XHJcbiAgfVxyXG5cclxuICBpbml0RGF0YSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm1vZGVsPy5kYXRhKSB7XHJcbiAgICAgIHRoaXMuZGF0YSA9IHRoaXMubW9kZWw/LmRhdGEgYXMgYW55O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW5pdEFjdGlvbnMoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5tb2RlbD8uYWN0aW9ucykge1xyXG4gICAgICBsZXQgdWlBY3Rpb25Nb2RlbHMgPSB0aGlzLm1vZGVsPy5hY3Rpb25zLm1hcCgodWlBY3Rpb246IFVpQWN0aW9uKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIHNlcnZpY2VUb1VzZTogdGhpcyxcclxuICAgICAgICAgIHVpQWN0aW9uLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pO1xyXG4gICAgICBsZXQgdG9vbGJhcnMgPSB0aGlzLmdldEFsbFNtYXJ0VWlBY3Rpb25Ub29sYmFycygpLmZpbHRlcigodG9vbGJhcikgPT4gdG9vbGJhci5pZCk7XHJcbiAgICAgIGxldCB0b29sYmFyTW9kZWxzID0gbmV3IE1hcDxzdHJpbmcsIFVpQWN0aW9uTW9kZWxbXT4oKTtcclxuICAgICAgdG9vbGJhcnMuZm9yRWFjaCgodG9vbGJhcikgPT4ge1xyXG4gICAgICAgIHRvb2xiYXJNb2RlbHMuc2V0KHRvb2xiYXIuaWQhLCBbXSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICBsZXQgZ2xvYmFsVWlBY3Rpb25Nb2RlbHM6IFVpQWN0aW9uTW9kZWxbXSA9IFtdO1xyXG4gICAgICB1aUFjdGlvbk1vZGVscy5mb3JFYWNoKChhY3Rpb24pID0+IHtcclxuICAgICAgICBsZXQgYWN0aW9uTW9kZWw6IFVpQWN0aW9uTW9kZWxbXSB8IHVuZGVmaW5lZCA9IGdsb2JhbFVpQWN0aW9uTW9kZWxzO1xyXG4gICAgICAgIGxldCB0b29sYmFySWQgPSBhY3Rpb24udWlBY3Rpb24udG9vbGJhcjtcclxuICAgICAgICBpZiAodG9vbGJhcklkICYmIHRvb2xiYXJNb2RlbHMuaGFzKHRvb2xiYXJJZCkpIHtcclxuICAgICAgICAgIGFjdGlvbk1vZGVsID0gdG9vbGJhck1vZGVscy5nZXQodG9vbGJhcklkKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCFhY3Rpb25Nb2RlbCkge1xyXG4gICAgICAgICAgYWN0aW9uTW9kZWwgPSBnbG9iYWxVaUFjdGlvbk1vZGVscztcclxuICAgICAgICB9XHJcbiAgICAgICAgYWN0aW9uTW9kZWwucHVzaChhY3Rpb24pO1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy51aUFjdGlvbk1vZGVscyA9IGdsb2JhbFVpQWN0aW9uTW9kZWxzO1xyXG5cclxuICAgICAgUHJvbWlzZS5hbGwoXHJcbiAgICAgICAgdG9vbGJhcnMubWFwKCh0b29sYmFyKSA9PiB7XHJcbiAgICAgICAgICB0b29sYmFyLnVpQWN0aW9uTW9kZWxzID0gdG9vbGJhck1vZGVscy5nZXQodG9vbGJhci5pZCEpO1xyXG4gICAgICAgICAgcmV0dXJuIHRvb2xiYXIuc2V0VXAoKTtcclxuICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgLy8gY29udGludWUgY29kZSBoZXJlIGlmIG5lZWRlZFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcignQW4gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHRvb2xiYXIgc2V0dXA6JywgZXJyb3IpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcnVuKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuYXV0aC5iZmZBcGlzSGF2ZUJlZW5TZXRVcCkge1xyXG4gICAgICB0aGlzLmxvYWQoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuYXV0aC5oZWFkZXJzVXBkYXRlZC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9hZCgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFzeW5jIGxvYWQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLnV1aWQgPSB0aGlzLnZpZXdDb250ZXh0LmdldFV1aWRPZlBhZ2UodGhpcy5wYWdlTmFtZSEpO1xyXG4gICAgLy8gdGhpcy5tb2RlbCA9IGF3YWl0IHRoaXMudmlld0NvbnRleHQubG9hZCh0aGlzLnV1aWQpO1xyXG4gICAgYXdhaXQgdGhpcy52aWV3Q29udGV4dC5sb2FkMih0aGlzLnV1aWQpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgZXhlY3V0ZVVpQWN0aW9uKHVpQWN0aW9uOiBVaUFjdGlvbiwgb3B0aW9ucz86IEV4ZWN1dGVVaUFjdGlvbk9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMudWlBY3Rpb25TZXJ2aWNlLnVpQWN0aW9uTW9kZWwgPSB7XHJcbiAgICAgIHNlcnZpY2VUb1VzZTogdGhpcyxcclxuICAgICAgdWlBY3Rpb246IHVpQWN0aW9uLFxyXG4gICAgfTtcclxuICAgIHRoaXMudWlBY3Rpb25TZXJ2aWNlLmV4ZWN1dGUodWlBY3Rpb24sIG9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgYWRkRGF0YUNoYW5nZUFjdGlvbkhhbmRsZXIoa2V5OiBzdHJpbmcpIHtcclxuICAgIGlmICghdGhpcy5kYXRhQ2hhbmdlS2V5cy5pbmNsdWRlcyhrZXkpKSB7XHJcbiAgICAgIHRoaXMuZGF0YUNoYW5nZUtleXMucHVzaChrZXkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlRGF0YUNoYW5nZUFjdGlvbkhhbmRsZXIoa2V5OiBzdHJpbmcpIHtcclxuICAgIGxldCBpZHggPSB0aGlzLmRhdGFDaGFuZ2VLZXlzLmluZGV4T2Yoa2V5KTtcclxuICAgIGlmIChpZHggPj0gMCkge1xyXG4gICAgICB0aGlzLmRhdGFDaGFuZ2VLZXlzLnNwbGljZShpZHgsIDEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGRhdGFDaGFuZ2VBY3Rpb25IYW5kbGVyKGV2ZW50OiBTb3BoaXN0aWNhdGVkVmFsdWVDaGFuZ2UpIHtcclxuICAgIGlmICh0aGlzLmRhdGFDaGFuZ2VLZXlzLmluY2x1ZGVzKGV2ZW50LmtleSkpIHtcclxuICAgICAgdGhpcy5leGVjdXRlVWlBY3Rpb24oe1xyXG4gICAgICAgIGNvZGU6IGV2ZW50LmtleSxcclxuICAgICAgICBtb2RlbDogdHJ1ZSxcclxuICAgICAgICBwYXJhbXM6IHtcclxuICAgICAgICAgIGl0ZW06IGV2ZW50LnZhbHVlLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGhhbmRsZURhdGFDaGFuZ2VTdWJzY3JpcHRpb25zKCkge1xyXG4gICAgaWYgKHRoaXMudXNlUXVlcnlMaXN0cykge1xyXG4gICAgICBsZXQgZm9ybXMgPSB0aGlzLmdldEFsbFNtYXJ0Rm9ybUNvbXBvbmVudHMoKTtcclxuICAgICAgLy8gYWRkIGVsZW1lbnRzIHRvIGRhdGFDaGFuZ2VLZXlzXHJcbiAgICAgIGZvcm1zLmZvckVhY2goKGZvcm0pID0+IHtcclxuICAgICAgICBmb3JtLnNtYXJ0Rm9ybT8ud2lkZ2V0cy5mb3JFYWNoKCh3aWRnZXQpID0+IHtcclxuICAgICAgICAgIGlmICh3aWRnZXQua2V5KSB7XHJcbiAgICAgICAgICAgIGlmICh3aWRnZXQudmFsdWVDaGFuZ2VNb2RlID09PSBWYWx1ZUNoYW5nZU1vZGUuSU1NRURJQVRFX0FDVElPTikge1xyXG4gICAgICAgICAgICAgIHRoaXMuYWRkRGF0YUNoYW5nZUFjdGlvbkhhbmRsZXIod2lkZ2V0LmtleSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5yZW1vdmVEYXRhQ2hhbmdlQWN0aW9uSGFuZGxlcih3aWRnZXQua2V5KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgICAgLy8gc3Vic2NyaWJlIHRvIG5ldyBmb3Jtc1xyXG4gICAgICBmb3Jtcy5mb3JFYWNoKChjb21wb25lbnQpID0+IHtcclxuICAgICAgICBpZiAoIXRoaXMuZGF0YUNoYW5nZUFjdGlvbkhhbmRsZXJzLmhhcyhjb21wb25lbnQpKSB7XHJcbiAgICAgICAgICBsZXQgc3VicyA9IGNvbXBvbmVudC5zb3BoaXN0aWNhdGVkVmFsdWVDaGFuZ2VcclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHRoaXMuZGF0YUNoYW5nZUFjdGlvbkhhbmRsZXIoZXZlbnQpKTtcclxuICAgICAgICAgIHRoaXMuZGF0YUNoYW5nZUFjdGlvbkhhbmRsZXJzLnNldChjb21wb25lbnQsIHN1YnMpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICAvLyB1bnN1YnNjcmliZSBmcm9tIHJlbW92ZWQgZm9ybXNcclxuICAgICAgdGhpcy5kYXRhQ2hhbmdlQWN0aW9uSGFuZGxlcnMuZm9yRWFjaCgoc3VicywgZm9ybSkgPT4ge1xyXG4gICAgICAgIGlmICghZm9ybXMuZmluZCgoYykgPT4gYyA9PT0gZm9ybSkpIHtcclxuICAgICAgICAgIHN1YnMudW5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgIHRoaXMuZGF0YUNoYW5nZUFjdGlvbkhhbmRsZXJzLmRlbGV0ZShmb3JtKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0SW52YWxpZEZpZWxkcygpOiBTbWFydEZvcm1JbnZhbGlkRmllbGRzIHtcclxuICAgIGxldCBhZ2dyZWdhdGVkSW52YWxpZEZpZWxkczogU21hcnRGb3JtSW52YWxpZEZpZWxkcyA9IHtcclxuICAgICAgaW52YWxpZEZpZWxkS2V5czogW10sXHJcbiAgICAgIGludmFsaWRGaWVsZE5hbWVzOiBbXSxcclxuICAgIH07XHJcblxyXG4gICAgaWYgKHRoaXMudXNlUXVlcnlMaXN0cykge1xyXG4gICAgICB0aGlzLmdldEFsbFNtYXJ0Rm9ybUNvbXBvbmVudHMoKT8uZm9yRWFjaCgoZm9ybSkgPT5cclxuICAgICAgICB0aGlzLnZhbGlkYXRlRm9ybShmb3JtLCBhZ2dyZWdhdGVkSW52YWxpZEZpZWxkcylcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZm9ybVdpZGdldHM/LmZvckVhY2goKGZvcm0pID0+IHRoaXMudmFsaWRhdGVGb3JtKGZvcm0sIGFnZ3JlZ2F0ZWRJbnZhbGlkRmllbGRzKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGFnZ3JlZ2F0ZWRJbnZhbGlkRmllbGRzO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHZhbGlkYXRlRm9ybShcclxuICAgIGZvcm06IFNtYXJ0Zm9ybUNvbXBvbmVudCB8IHVuZGVmaW5lZCxcclxuICAgIGFnZ3JlZ2F0ZWRJbnZhbGlkRmllbGRzOiBTbWFydEZvcm1JbnZhbGlkRmllbGRzXHJcbiAgKSB7XHJcbiAgICBsZXQgaW52YWxpZEZpZWxkc09mRm9ybSA9IGZvcm0/LmdldEludmFsaWRGaWVsZHMoKTtcclxuICAgIGlmIChpbnZhbGlkRmllbGRzT2ZGb3JtKSB7XHJcbiAgICAgIGludmFsaWRGaWVsZHNPZkZvcm0uaW52YWxpZEZpZWxkS2V5cy5mb3JFYWNoKChrZXkpID0+XHJcbiAgICAgICAgYWdncmVnYXRlZEludmFsaWRGaWVsZHMuaW52YWxpZEZpZWxkS2V5cy5wdXNoKGtleSlcclxuICAgICAgKTtcclxuICAgICAgaW52YWxpZEZpZWxkc09mRm9ybS5pbnZhbGlkRmllbGROYW1lcy5mb3JFYWNoKChrZXkpID0+XHJcbiAgICAgICAgYWdncmVnYXRlZEludmFsaWRGaWVsZHMuaW52YWxpZEZpZWxkTmFtZXMucHVzaChrZXkpXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyNyZWdpb24gVXNlVWlBY3Rpb25cclxuICBnZXRBZGRpdGlvbmFsUGFyYW1zKHVpQWN0aW9uOiBVaUFjdGlvbik6IFVpQWN0aW9uQWRkaXRpb25hbFBhcmFtcyB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBmb3JUZXh0QXJlYTogJycsXHJcbiAgICAgIGZvclRleHRGaWVsZDogJycsXHJcbiAgICB9O1xyXG4gIH1cclxuICBnZXRNb2RlbCgpIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGE7XHJcbiAgfVxyXG5cclxuICBzdWJtaXRGb3JtKHZhbGlkYXRlOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1Ym1pdEZvcm1zKHZhbGlkYXRlKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIHBlcmZvcm1VaUFjdGlvblJlcXVlc3QoXHJcbiAgICB1aUFjdGlvblJlcXVlc3Q6IFVpQWN0aW9uUmVxdWVzdCxcclxuICAgIHdpZGdldElkPzogc3RyaW5nLFxyXG4gICAgbm9kZUlkPzogc3RyaW5nXHJcbiAgKTogUHJvbWlzZTxhbnk+IHtcclxuICAgIGlmICh1aUFjdGlvblJlcXVlc3QucGFyYW1zWydfZmlsZXMnXSkge1xyXG4gICAgICBjb25zdCBwYXJhbSA9IHVpQWN0aW9uUmVxdWVzdC5wYXJhbXNbJ3BhcmFtJ107XHJcbiAgICAgIGNvbnN0IGZpbGVzID0gdWlBY3Rpb25SZXF1ZXN0LnBhcmFtc1snX2ZpbGVzJ107XHJcbiAgICAgIGNvbnN0IGlzTXVsdGlwbGUgPSB1aUFjdGlvblJlcXVlc3QucGFyYW1zWydpc011bHRpcGxlJ107XHJcbiAgICAgIGRlbGV0ZSB1aUFjdGlvblJlcXVlc3QucGFyYW1zWydwYXJhbSddO1xyXG4gICAgICBkZWxldGUgdWlBY3Rpb25SZXF1ZXN0LnBhcmFtc1snX2ZpbGVzJ107XHJcbiAgICAgIGRlbGV0ZSB1aUFjdGlvblJlcXVlc3QucGFyYW1zWydpc011bHRpcGxlJ107XHJcblxyXG4gICAgICAvLyBhd2FpdCB0aGlzLnNlbmRNb2RlbFRvU2VydmVyKCk7XHJcbiAgICAgIGlmICghaXNNdWx0aXBsZSkge1xyXG4gICAgICAgIGF3YWl0IHRoaXMudmlld0NvbnRleHQucGVyZm9ybVVwbG9hZEFjdGlvbih0aGlzLnV1aWQhLCB1aUFjdGlvblJlcXVlc3QsIHBhcmFtLCBmaWxlc1swXSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy52aWV3Q29udGV4dC5wZXJmb3JtVXBsb2FkTXVsdGlwbGVBY3Rpb24oXHJcbiAgICAgICAgICB0aGlzLnV1aWQhLFxyXG4gICAgICAgICAgdWlBY3Rpb25SZXF1ZXN0LFxyXG4gICAgICAgICAgcGFyYW0sXHJcbiAgICAgICAgICBmaWxlc1xyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAod2lkZ2V0SWQgJiYgbm9kZUlkKSB7XHJcbiAgICAgIC8vIGF3YWl0IHRoaXMuc2VuZE1vZGVsVG9TZXJ2ZXIoKTtcclxuICAgICAgdGhpcy5hZGRNb2RlbFRvV2lkZ2V0QWN0aW9uKHVpQWN0aW9uUmVxdWVzdCk7XHJcbiAgICAgIGF3YWl0IHRoaXMudmlld0NvbnRleHQucGVyZm9ybVdpZGdldEFjdGlvbih0aGlzLnV1aWQhLCB3aWRnZXRJZCwgbm9kZUlkLCB1aUFjdGlvblJlcXVlc3QpO1xyXG4gICAgfSBlbHNlIGlmICh3aWRnZXRJZCkge1xyXG4gICAgICAvLyBhd2FpdCB0aGlzLnNlbmRNb2RlbFRvU2VydmVyKCk7XHJcbiAgICAgIHRoaXMuYWRkTW9kZWxUb1dpZGdldEFjdGlvbih1aUFjdGlvblJlcXVlc3QpO1xyXG4gICAgICBhd2FpdCB0aGlzLnZpZXdDb250ZXh0LnBlcmZvcm1XaWRnZXRNYWluQWN0aW9uKHRoaXMudXVpZCEsIHdpZGdldElkLCB1aUFjdGlvblJlcXVlc3QpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgYXdhaXQgdGhpcy52aWV3Q29udGV4dC5wZXJmb3JtQWN0aW9uKHRoaXMudXVpZCEsIHVpQWN0aW9uUmVxdWVzdCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgYWRkTW9kZWxUb1dpZGdldEFjdGlvbih1aUFjdGlvblJlcXVlc3Q6IFVpQWN0aW9uUmVxdWVzdCkge1xyXG4gICAgaWYgKHRoaXMuc2VuZE1vZGVsT25XaWRnZXRBY3Rpb24pIHtcclxuICAgICAgdGhpcy5zdWJtaXRGb3JtKGZhbHNlKTtcclxuICAgICAgLy8gbWltaWMgQ29tcG9uZW50TW9kZWxcclxuICAgICAgdWlBY3Rpb25SZXF1ZXN0LnBhcmFtc1snY2xpZW50UGFnZU1vZGVsJ10gPSB7IGRhdGE6IHRoaXMuZ2V0TW9kZWwoKSB9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gcHJpdmF0ZSBhc3luYyBzZW5kTW9kZWxUb1NlcnZlcigpIHtcclxuICAvLyAgIHRoaXMuc3VibWl0Rm9ybXMoZmFsc2UpO1xyXG4gIC8vICAgbGV0IGRhdGFDaGFuZ2UgPSB7XHJcbiAgLy8gICAgIGtpbmQ6IERhdGFDaGFuZ2VLaW5kLldpZGdldCxcclxuICAvLyAgICAgc291cmNlOiAnJyxcclxuICAvLyAgICAgdmFsdWVzOiBbWycnLCB0aGlzLmdldE1vZGVsKCldXSxcclxuICAvLyAgIH07XHJcbiAgLy8gICBhd2FpdCB0aGlzLnZpZXdDb250ZXh0LmRhdGFDaGFuZ2VkKHRoaXMudXVpZCEsIGRhdGFDaGFuZ2UpO1xyXG4gIC8vIH1cclxuXHJcbiAgaGFuZGxlU3BlY2lmaWNEZW1hbmRzQXN5bmNocm9ub3VzbHkoXHJcbiAgICB1aUFjdGlvbjogVWlBY3Rpb24sXHJcbiAgICB1aUFjdGlvblJlcXVlc3Q6IFVpQWN0aW9uUmVxdWVzdFxyXG4gICk6IFByb21pc2U8VWlBY3Rpb25TcGVjaWZpY0RlbWFuZFJlc3BvbnNlPiB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2hhbmRsZVNwZWNpZmljRGVtYW5kc0FzeW5jaHJvbm91c2x5IG1ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XHJcbiAgfVxyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuICAvKipcclxuICAgKiBTdWJtaXRzIGFsbCB0aGUgcmVnaXN0ZXJlZCBmb3JtcyBpbiB0aGUgU21hcnRDb21wb25lbnRcclxuICAgKi9cclxuICBwdWJsaWMgc3VibWl0Rm9ybXModmFsaWRhdGU6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnVzZVF1ZXJ5TGlzdHMpIHtcclxuICAgICAgdGhpcy5nZXRBbGxTbWFydEZvcm1Db21wb25lbnRzKCk/LmZvckVhY2goKGZvcm0pID0+IHtcclxuICAgICAgICBmb3JtPy5zdWJtaXRGb3JtKHZhbGlkYXRlKTtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZvcm1XaWRnZXRzPy5mb3JFYWNoKChmb3JtKSA9PiB7XHJcbiAgICAgICAgZm9ybT8uc3VibWl0Rm9ybSh2YWxpZGF0ZSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZEdyaWQoXHJcbiAgICBzbWFydEdyaWQ6IFNtYXJ0R3JpZCxcclxuICAgIG9wdGlvbnM6IEdyaWRPcHRpb25zLFxyXG4gICAgdXNlQXNEZWZhdWx0R3JpZD86IGJvb2xlYW4sXHJcbiAgICBjb21wb25lbnRSZWZlcmVuY2U/OiBTbWFydEdyaWRDb21wb25lbnRcclxuICApOiBTbWFydEdyaWQge1xyXG4gICAgc21hcnRHcmlkLm9wdGlvbnMgPSBvcHRpb25zO1xyXG4gICAgc21hcnRHcmlkLnVpQWN0aW9uU2VydmljZSA9IHRoaXMudWlBY3Rpb25TZXJ2aWNlO1xyXG4gICAgc21hcnRHcmlkLnVpQWN0aW9uRGVzY3JpcHRvclNlcnZpY2UgPSB0aGlzLnVpQWN0aW9uRGVzY3JpcHRvclNlcnZpY2U7XHJcbiAgICBzbWFydEdyaWQuc2VydmljZVRvVXNlID0gdGhpcztcclxuICAgIHNtYXJ0R3JpZC52aWV3Q29udGV4dFNlcnZpY2UgPSB0aGlzLnZpZXdDb250ZXh0O1xyXG5cclxuICAgIGlmICghdGhpcy51c2VRdWVyeUxpc3RzKSB7XHJcbiAgICAgIHRoaXMud2lkZ2V0cy5zZXQoc21hcnRHcmlkLmdyaWRJZGVudGlmaWVyLCBjb21wb25lbnRSZWZlcmVuY2UpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc29sZS53YXJuKGBBZGRlZCBzbWFydEdyaWQgd2hlbiB1c2VRdWVyeUxpc3RzID09PSB0cnVlICgke3NtYXJ0R3JpZC5ncmlkSWRlbnRpZmllcn0pYCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHVzZUFzRGVmYXVsdEdyaWQpIHtcclxuICAgICAgdGhpcy5zbWFydEdyaWQgPSBzbWFydEdyaWQ7XHJcbiAgICAgIHJldHVybiB0aGlzLnNtYXJ0R3JpZDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gc21hcnRHcmlkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZEZvcm0oXHJcbiAgICBzbWFydEZvcm1JZDogc3RyaW5nLFxyXG4gICAgc21hcnRGb3JtOiBTbWFydEZvcm0sXHJcbiAgICBjb21wb25lbnRSZWZlcmVuY2U/OiBTbWFydGZvcm1Db21wb25lbnRcclxuICApOiBTbWFydEZvcm0ge1xyXG4gICAgaWYgKCF0aGlzLnVzZVF1ZXJ5TGlzdHMpIHtcclxuICAgICAgdGhpcy5mb3JtV2lkZ2V0cy5zZXQoc21hcnRGb3JtSWQsIGNvbXBvbmVudFJlZmVyZW5jZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zb2xlLndhcm4oYEFkZGVkIHNtYXJ0Rm9ybSB3aGVuIHVzZVF1ZXJ5TGlzdHMgPT09IHRydWUgKCR7c21hcnRGb3JtSWR9KWApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGlmICh0aGlzLnNlbmREYXRhQ2hhbmdlcyAmJiBjb21wb25lbnRSZWZlcmVuY2UpIHtcclxuICAgIC8vICAgc21hcnRGb3JtLnVzZU9uVmFsdWVDaGFuZ2VFdmVudCA9IHRydWU7XHJcblxyXG4gICAgLy8gICBjb21wb25lbnRSZWZlcmVuY2Uuc29waGlzdGljYXRlZFZhbHVlQ2hhbmdlXHJcbiAgICAvLyAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcclxuICAgIC8vICAgICAuc3Vic2NyaWJlKCh2YWx1ZUNoYW5nZTogU29waGlzdGljYXRlZFZhbHVlQ2hhbmdlKSA9PiB7XHJcbiAgICAvLyAgICAgICB0aGlzLmhhbmRsZVZhbHVlQ2hhbmdlcyh2YWx1ZUNoYW5nZSk7XHJcbiAgICAvLyAgICAgfSk7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgcmV0dXJuIHNtYXJ0Rm9ybTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRVcERlZmF1bHRUcmVlKHRyZWVJZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnNtYXJ0VHJlZVNlcnZpY2UgPSB0aGlzLmNyZWF0ZVRyZWVTZXJ2aWNlKHRyZWVJZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY3JlYXRlVHJlZVNlcnZpY2UodHJlZUlkOiBzdHJpbmcpOiBTbWFydHRyZWVHZW5lcmljU2VydmljZSB7XHJcbiAgICBjb25zdCB0cmVlU2VydmljZSA9IG5ldyBTbWFydHRyZWVHZW5lcmljU2VydmljZSh0aGlzLmluamVjdCwgdGhpcy5wYWdlTmFtZSEsIHRyZWVJZCk7XHJcbiAgICBpZiAoIXRoaXMudXNlUXVlcnlMaXN0cykge1xyXG4gICAgICB0aGlzLndpZGdldHMuc2V0KHRyZWVJZCwgdHJlZVNlcnZpY2UpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc29sZS53YXJuKGBBZGRlZCBzbWFydFRyZWUgd2hlbiB1c2VRdWVyeUxpc3RzID09PSB0cnVlICgke3RyZWVJZH0pYCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRyZWVTZXJ2aWNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZEZpbGVVcGxvYWRlcihcclxuICAgIHVpQWN0aW9uQ29kZTogc3RyaW5nLFxyXG4gICAgZmlsZUZvcm1hdHM/OiBzdHJpbmdbXSxcclxuICAgIG1heFNpemVNYj86IG51bWJlcixcclxuICAgIGlzTXVsdGlwbGU/OiBib29sZWFuXHJcbiAgKTogU21hcnRDb21wb25lbnRGaWxlVXBsb2FkZXIge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdWlBY3Rpb25Db2RlLFxyXG4gICAgICBzbWFydENvbXBvbmVudDogdGhpcyxcclxuICAgICAgZmlsZUZvcm1hdHMsXHJcbiAgICAgIGlzTXVsdGlwbGUsXHJcbiAgICAgIG1heFNpemVNYixcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAvLyAjcmVnaW9uIGhhbmRsZSBjaGFuZ2VzXHJcbiAgcHJpdmF0ZSBoYW5kbGVWYWx1ZUNoYW5nZXModmFsdWVDaGFuZ2U6IFNvcGhpc3RpY2F0ZWRWYWx1ZUNoYW5nZSk6IHZvaWQge1xyXG4gICAgbGV0IGRhdGFDaGFuZ2U6IERhdGFDaGFuZ2U7XHJcbiAgICBpZiAodmFsdWVDaGFuZ2Uua2V5LmluY2x1ZGVzKCcuJykpIHtcclxuICAgICAgY29uc3Qgc291cmNlID0gdmFsdWVDaGFuZ2Uua2V5LnNwbGl0KCcuJylbMF07XHJcbiAgICAgIGNvbnN0IHZhbHVlS2V5ID0gdmFsdWVDaGFuZ2Uua2V5LnNwbGl0KCcuJylbMV07XHJcbiAgICAgIGRhdGFDaGFuZ2UgPSB7XHJcbiAgICAgICAga2luZDogdmFsdWVDaGFuZ2Uua2luZCA9PT0gJ2Jhc2ljJyA/IERhdGFDaGFuZ2VLaW5kLldJREdFVCA6IERhdGFDaGFuZ2VLaW5kLlNFTEVDVElPTixcclxuICAgICAgICBzb3VyY2UsXHJcbiAgICAgICAgdmFsdWVzOiBbW3ZhbHVlS2V5LCB2YWx1ZUNoYW5nZS52YWx1ZV1dLFxyXG4gICAgICB9O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGF0YUNoYW5nZSA9IHtcclxuICAgICAgICBraW5kOiB2YWx1ZUNoYW5nZS5raW5kID09PSAnYmFzaWMnID8gRGF0YUNoYW5nZUtpbmQuV0lER0VUIDogRGF0YUNoYW5nZUtpbmQuU0VMRUNUSU9OLFxyXG4gICAgICAgIHNvdXJjZTogdmFsdWVDaGFuZ2Uua2V5LFxyXG4gICAgICAgIHZhbHVlczogW1t2YWx1ZUNoYW5nZS5rZXksIHZhbHVlQ2hhbmdlLnZhbHVlXV0sXHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy52aWV3Q29udGV4dC5kYXRhQ2hhbmdlZCh0aGlzLnV1aWQhLCBkYXRhQ2hhbmdlKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBoYW5kbGVDaGFuZ2VzKGNoYW5nZTogQ29tcG9uZW50TW9kZWxDaGFuZ2UpOiB2b2lkIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGlmIChjaGFuZ2UuY2hhbmdlZFdpZGdldHMpIHtcclxuICAgICAgICB0aGlzLmhhbmRsZUNoYW5nZVdpZGdldHMoY2hhbmdlLmNoYW5nZWRXaWRnZXRzKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgbGV0IGRhdGFDaGFuZ2VIYXNCZWVuTmV4dGVkID0gZmFsc2U7XHJcbiAgICAgIGlmIChjaGFuZ2UuY2hhbmdlcykge1xyXG4gICAgICAgIGNvbnN0IGNoYW5nZXMgPSBjaGFuZ2UuY2hhbmdlcztcclxuICAgICAgICBPYmplY3Qua2V5cyhjaGFuZ2VzKS5tYXAoKGNoYW5nZUtleTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICBpZiAoY2hhbmdlS2V5LnN0YXJ0c1dpdGgoJ2RhdGEuJykpIHtcclxuICAgICAgICAgICAgdGhpcy5oYW5kbGVEYXRhQ2hhbmdlKGNoYW5nZXMsIGNoYW5nZUtleSk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKGNoYW5nZUtleS5zdGFydHNXaXRoKCdsYXlvdXRzLicpICYmIHRoaXMubW9kZWw/LmxheW91dHMpIHtcclxuICAgICAgICAgICAgdGhpcy5oYW5kbGVMYXlvdXRDaGFuZ2UoY2hhbmdlcywgY2hhbmdlS2V5KTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAoY2hhbmdlS2V5LnN0YXJ0c1dpdGgoJ2NvbXBvbmVudExheW91dHMuJykgJiYgdGhpcy5tb2RlbD8ubGF5b3V0cykge1xyXG4gICAgICAgICAgICB0aGlzLmhhbmRsZUNvbXBvbmVudExheW91dENoYW5nZShjaGFuZ2VzLCBjaGFuZ2VLZXkpO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChjaGFuZ2VLZXkuc3RhcnRzV2l0aCgndmFsdWVTZXRzLicpICYmIHRoaXMubW9kZWw/LnZhbHVlU2V0cykge1xyXG4gICAgICAgICAgICB0aGlzLmhhbmRsZVZhbHVlU2V0Q2hhbmdlKGNoYW5nZXMsIGNoYW5nZUtleSk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKGNoYW5nZUtleSA9PT0gJ2FjdGlvbnMnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlQWN0aW9uQ2hhbmdlKGNoYW5nZXMsIGNoYW5nZUtleSk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKGNoYW5nZUtleSA9PT0gJ2NvbnN0cmFpbnRzJykge1xyXG4gICAgICAgICAgICB0aGlzLmhhbmRsZUNvbnN0cmFpbnRDaGFuZ2UoY2hhbmdlcywgY2hhbmdlS2V5KTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAoY2hhbmdlS2V5ID09PSAnJykge1xyXG4gICAgICAgICAgICB0aGlzLm1vZGVsID0gY2hhbmdlc1snJ10gYXMgQ29tcG9uZW50TW9kZWw7XHJcbiAgICAgICAgICAgIGRhdGFDaGFuZ2VIYXNCZWVuTmV4dGVkID0gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaWYgKCFkYXRhQ2hhbmdlSGFzQmVlbk5leHRlZCkge1xyXG4gICAgICAgICAgdGhpcy5kYXRhQ2hhbmdlZC5uZXh0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcclxuICAgICAgdGhpcy5tb2RlbCA9IGNoYW5nZS52YWx1ZSBhcyBDb21wb25lbnRNb2RlbDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIWNoYW5nZS5jaGFuZ2VkV2lkZ2V0cyAmJiAhY2hhbmdlLmNoYW5nZXMgJiYgY2hhbmdlLnZhbHVlKSB7XHJcbiAgICAgIHRoaXMubW9kZWwgPSBjaGFuZ2UudmFsdWUgYXMgQ29tcG9uZW50TW9kZWw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZUNoYW5nZVdpZGdldHMoY2hhbmdlZFdpZGdldHM6IHN0cmluZ1tdKTogdm9pZCB7XHJcbiAgICBsZXQgd2lkZ2V0cyA9IHRoaXMuZ2V0V2lkZ2V0cygpO1xyXG4gICAgY2hhbmdlZFdpZGdldHMuZm9yRWFjaCgoa2V5OiBzdHJpbmcpID0+IHtcclxuICAgICAgY29uc3QgcmVmZXJlbmNlID0gd2lkZ2V0cy5nZXQoa2V5KTtcclxuXHJcbiAgICAgIGlmIChyZWZlcmVuY2UgaW5zdGFuY2VvZiBTbWFydEdyaWRDb21wb25lbnQpIHtcclxuICAgICAgICB0aGlzLnNldHVwR3JpZFNlcnZpY2VzKHJlZmVyZW5jZSk7XHJcbiAgICAgICAgcmVmZXJlbmNlLnJlZnJlc2goKTtcclxuICAgICAgfSBlbHNlIGlmIChyZWZlcmVuY2UgaW5zdGFuY2VvZiBTbWFydHRyZWVHZW5lcmljU2VydmljZSkge1xyXG4gICAgICAgIHJlZmVyZW5jZS5pbml0aWFsaXplKCk7XHJcbiAgICAgIH0gZWxzZSBpZiAocmVmZXJlbmNlIGluc3RhbmNlb2YgU21hcnRGaWx0ZXJFZGl0b3JTZXJ2aWNlKSB7XHJcbiAgICAgICAgcmVmZXJlbmNlLmxvYWQoKTtcclxuICAgICAgfSBlbHNlIGlmIChyZWZlcmVuY2UgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYFByb3ZpZGVkIHJlZmVyZW5jZSBmb3IgJHtrZXl9IGlzIHVuZGVmaW5lZC5gKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFZhbHVlRGVlcGx5KG1vZGVsOiBhbnksIGtleTogc3RyaW5nLCB2YWx1ZTogYW55KSB7XHJcbiAgICBsZXQgc3BsaXR0ZWRLZXlzID0ga2V5LnNwbGl0KCcuJyk7XHJcblxyXG4gICAgbGV0IGRlZXBNb2RlbDogYW55W10gPSBbbW9kZWxdO1xyXG4gICAgbGV0IHRlbXBNb2RlbDogYW55O1xyXG5cclxuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBzcGxpdHRlZEtleXMubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgIHRlbXBNb2RlbCA9IGRlZXBNb2RlbFtpbmRleF07XHJcblxyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdHlwZW9mIHRlbXBNb2RlbFtzcGxpdHRlZEtleXNbaW5kZXhdXSAhPT0gJ3N0cmluZycgJiZcclxuICAgICAgICB0eXBlb2YgdGVtcE1vZGVsW3NwbGl0dGVkS2V5c1tpbmRleF1dICE9PSAnYm9vbGVhbicgJiZcclxuICAgICAgICB0eXBlb2YgdGVtcE1vZGVsW3NwbGl0dGVkS2V5c1tpbmRleF1dICE9PSAnbnVtYmVyJyAmJlxyXG4gICAgICAgIHRlbXBNb2RlbFtzcGxpdHRlZEtleXNbaW5kZXhdXSAhPT0gdW5kZWZpbmVkXHJcbiAgICAgICkge1xyXG4gICAgICAgIGRlZXBNb2RlbC5wdXNoKHRlbXBNb2RlbFtzcGxpdHRlZEtleXNbaW5kZXhdXSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChpbmRleCA9PT0gc3BsaXR0ZWRLZXlzLmxlbmd0aCAtIDEpIHtcclxuICAgICAgICBsZXQgb2xkVmFsdWUgPSB0ZW1wTW9kZWxbc3BsaXR0ZWRLZXlzW2luZGV4XV07XHJcbiAgICAgICAgLy8gaWYgKHZhbHVlID09PSAnJyAmJiAob2xkVmFsdWUgPT09IG51bGwgfHwgb2xkVmFsdWUgPT09IHVuZGVmaW5lZCkgdGhlbiBkb24ndCBjaGFuZ2UgdmFsdWUuXHJcbiAgICAgICAgaWYgKHZhbHVlICE9PSAnJyB8fCAob2xkVmFsdWUgIT09IG51bGwgJiYgb2xkVmFsdWUgIT09IHVuZGVmaW5lZCkpIHtcclxuICAgICAgICAgIHRlbXBNb2RlbFtzcGxpdHRlZEtleXNbaW5kZXhdXSA9IHZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYW5kbGVEYXRhQ2hhbmdlKGNoYW5nZXM6IHsgW2tleTogc3RyaW5nXTogYW55IH0sIGNoYW5nZUtleTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldFZhbHVlRGVlcGx5KHRoaXMubW9kZWwsIGNoYW5nZUtleSwgY2hhbmdlc1tjaGFuZ2VLZXldKTtcclxuXHJcbiAgICBpZiAodGhpcy51c2VRdWVyeUxpc3RzKSB7XHJcbiAgICAgIHRoaXMuZ2V0QWxsU21hcnRGb3JtQ29tcG9uZW50cygpPy5mb3JFYWNoKChmb3JtKSA9PiBmb3JtLnJlZnJlc2goKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZvcm1XaWRnZXRzLmZvckVhY2goKGZvcm1Db21wb25lbnQ6IFNtYXJ0Zm9ybUNvbXBvbmVudCB8IHVuZGVmaW5lZCwga2V5OiBzdHJpbmcpID0+IHtcclxuICAgICAgICBpZiAoZm9ybUNvbXBvbmVudCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGBQcm92aWRlZCBmb3JtIHJlZmVyZW5jZSBmb3IgJHtrZXl9IGlzIHVuZGVmaW5lZC5gKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgZm9ybUNvbXBvbmVudC5yZWZyZXNoKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlTGF5b3V0Q2hhbmdlKGNoYW5nZXM6IHsgW2tleTogc3RyaW5nXTogYW55IH0sIGNoYW5nZUtleTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBsZXQgbGF5b3V0S2V5ID0gY2hhbmdlS2V5LnNwbGl0KCcuJylbMV07XHJcbiAgICB0aGlzLm1vZGVsIS5sYXlvdXRzW2xheW91dEtleV0gPSBjaGFuZ2VzW2NoYW5nZUtleV07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZUNvbXBvbmVudExheW91dENoYW5nZShjaGFuZ2VzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9LCBjaGFuZ2VLZXk6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgbGV0IGxheW91dEtleSA9IGNoYW5nZUtleS5zcGxpdCgnLicpWzFdO1xyXG4gICAgbGV0IGNvbXBvbmVudExheW91dHM6IHsgW2tleTogc3RyaW5nXTogT2JqZWN0IH0gPSB0aGlzLm1vZGVsIS5jb21wb25lbnRMYXlvdXRzIGFzIHtcclxuICAgICAgW2tleTogc3RyaW5nXTogT2JqZWN0O1xyXG4gICAgfTtcclxuICAgIGNvbXBvbmVudExheW91dHNbbGF5b3V0S2V5XSA9IGNoYW5nZXNbY2hhbmdlS2V5XTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlVmFsdWVTZXRDaGFuZ2UoY2hhbmdlczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSwgY2hhbmdlS2V5OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGxldCB2YWx1ZVNldEtleSA9IGNoYW5nZUtleS5zcGxpdCgnLicpWzFdO1xyXG4gICAgdGhpcy5tb2RlbCEudmFsdWVTZXRzIVt2YWx1ZVNldEtleV0gPSBjaGFuZ2VzW2NoYW5nZUtleV07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZUFjdGlvbkNoYW5nZShjaGFuZ2VzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9LCBjaGFuZ2VLZXk6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5tb2RlbCEuYWN0aW9ucyA9IGNoYW5nZXNbY2hhbmdlS2V5XTtcclxuICAgIHRoaXMuaW5pdEFjdGlvbnMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlQ29uc3RyYWludENoYW5nZShjaGFuZ2VzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9LCBjaGFuZ2VLZXk6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5tb2RlbCEuY29uc3RyYWludHMgPSBjaGFuZ2VzW2NoYW5nZUtleV07XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRDb21wb25lbnRGaWxlVXBsb2FkZXIge1xyXG4gIHVpQWN0aW9uQ29kZTogc3RyaW5nO1xyXG4gIG1heFNpemVNYj86IG51bWJlcjtcclxuICBmaWxlRm9ybWF0cz86IHN0cmluZ1tdO1xyXG4gIGlzTXVsdGlwbGU/OiBib29sZWFuO1xyXG4gIHNtYXJ0Q29tcG9uZW50OiBTbWFydENvbXBvbmVudEFwaUNsaWVudDxhbnk+O1xyXG59XHJcbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50TW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvYXBpL21vZGVsL2NvbXBvbmVudE1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFZpZXcgQVBJXG4gKiBWaWV3IEFQSVxuICpcbiAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjAuMFxuICogQ29udGFjdDogaW5mb0BpdDRhbGwuaHVcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpLlxuICogaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoXG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKi9cbmltcG9ydCB7IFNtYXJ0TGF5b3V0RGVmaW5pdGlvbiB9IGZyb20gJy4uLy4uLy4uL3NtYXJ0LWZvcm0vYXBpJztcbmltcG9ydCB7IENvbXBvbmVudENvbnN0cmFpbnQgfSBmcm9tICcuL2NvbXBvbmVudENvbnN0cmFpbnQnO1xuaW1wb3J0IHsgU21hcnRDb21wb25lbnRMYXlvdXREZWZpbml0aW9uIH0gZnJvbSAnLi4vLi4vLi4vc21hcnQtY29tcG9uZW50LWxheW91dC9hcGknO1xuaW1wb3J0IHsgU3R5bGUgfSBmcm9tICcuL3N0eWxlJztcbmltcG9ydCB7IFVpQWN0aW9uIH0gZnJvbSAnLi91aUFjdGlvbic7XG5pbXBvcnQgeyBWYWx1ZVNldCB9IGZyb20gJy4vdmFsdWVTZXQnO1xuXG5cbi8qKlxuICogTW9kZWwgb2YgYSBVSSBjb21wb25lbnQuIENvbnRhaW5zIGFsbCBpbmZvcm1hdGlvbiBpbiBvbmUgb2JqZWN0LCB3aGljaCBhcmUgbmVlZGVkICB0byByZW5kZXIgYSBmdWxseSBmdW5jdGlvbmluIGNvbXBvbmVudC4gXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9uZW50TW9kZWwgeyBcbiAgICB1dWlkOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGRhdGE/OiBvYmplY3Q7XG4gICAgY29uc3RyYWludHM6IEFycmF5PENvbXBvbmVudENvbnN0cmFpbnQ+O1xuICAgIGxheW91dHM6IHsgW2tleTogc3RyaW5nXTogU21hcnRMYXlvdXREZWZpbml0aW9uOyB9O1xuICAgIGNvbXBvbmVudExheW91dHM/OiB7IFtrZXk6IHN0cmluZ106IFNtYXJ0Q29tcG9uZW50TGF5b3V0RGVmaW5pdGlvbjsgfTtcbiAgICBhY3Rpb25zOiBBcnJheTxVaUFjdGlvbj47XG4gICAgdmFsdWVTZXRzPzogeyBba2V5OiBzdHJpbmddOiBWYWx1ZVNldDsgfTtcbiAgICAvKipcbiAgICAgKiBMaXN0IG9mIHdpZGdldHMgKHdpZGdldElkcykuXG4gICAgICovXG4gICAgd2lkZ2V0cz86IEFycmF5PHN0cmluZz47XG4gICAgc3R5bGU/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50TW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvYXBpL21vZGVsL2NvbXBvbmVudE1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFZpZXcgQVBJXG4gKiBWaWV3IEFQSVxuICpcbiAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjAuMFxuICogQ29udGFjdDogaW5mb0BpdDRhbGwuaHVcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpLlxuICogaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoXG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKi9cbmltcG9ydCB7IFNtYXJ0TGF5b3V0RGVmaW5pdGlvbiB9IGZyb20gJy4uLy4uLy4uL3NtYXJ0LWZvcm0vYXBpJztcbmltcG9ydCB7IENvbXBvbmVudENvbnN0cmFpbnQgfSBmcm9tICcuL2NvbXBvbmVudENvbnN0cmFpbnQnO1xuaW1wb3J0IHsgU21hcnRDb21wb25lbnRMYXlvdXREZWZpbml0aW9uIH0gZnJvbSAnLi4vLi4vLi4vc21hcnQtY29tcG9uZW50LWxheW91dC9hcGknO1xuaW1wb3J0IHsgU3R5bGUgfSBmcm9tICcuL3N0eWxlJztcbmltcG9ydCB7IFVpQWN0aW9uIH0gZnJvbSAnLi91aUFjdGlvbic7XG5pbXBvcnQgeyBWYWx1ZVNldCB9IGZyb20gJy4vdmFsdWVTZXQnO1xuXG5cbi8qKlxuICogTW9kZWwgb2YgYSBVSSBjb21wb25lbnQuIENvbnRhaW5zIGFsbCBpbmZvcm1hdGlvbiBpbiBvbmUgb2JqZWN0LCB3aGljaCBhcmUgbmVlZGVkICB0byByZW5kZXIgYSBmdWxseSBmdW5jdGlvbmluIGNvbXBvbmVudC4gXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9uZW50TW9kZWwgeyBcbiAgICB1dWlkOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGRhdGE/OiBvYmplY3Q7XG4gICAgY29uc3RyYWludHM6IEFycmF5PENvbXBvbmVudENvbnN0cmFpbnQ+O1xuICAgIGxheW91dHM6IHsgW2tleTogc3RyaW5nXTogU21hcnRMYXlvdXREZWZpbml0aW9uOyB9O1xuICAgIGNvbXBvbmVudExheW91dHM/OiB7IFtrZXk6IHN0cmluZ106IFNtYXJ0Q29tcG9uZW50TGF5b3V0RGVmaW5pdGlvbjsgfTtcbiAgICBhY3Rpb25zOiBBcnJheTxVaUFjdGlvbj47XG4gICAgdmFsdWVTZXRzPzogeyBba2V5OiBzdHJpbmddOiBWYWx1ZVNldDsgfTtcbiAgICAvKipcbiAgICAgKiBMaXN0IG9mIHdpZGdldHMgKHdpZGdldElkcykuXG4gICAgICovXG4gICAgd2lkZ2V0cz86IEFycmF5PHN0cmluZz47XG4gICAgc3R5bGU/OiBTdHlsZTtcbiAgICBwYXJlbnRTdHlsZT86IFN0eWxlO1xufVxuXG4iXX0=
|
|
@@ -16,7 +16,11 @@ export * from './messageResult';
|
|
|
16
16
|
export * from './messageTextType';
|
|
17
17
|
export * from './messageType';
|
|
18
18
|
export * from './openPendingData';
|
|
19
|
+
export * from './serverRequestExecutionStat';
|
|
20
|
+
export * from './serverRequestTrack';
|
|
21
|
+
export * from './serverRequestType';
|
|
19
22
|
export * from './smartLinkData';
|
|
23
|
+
export * from './statisticRecord';
|
|
20
24
|
export * from './style';
|
|
21
25
|
export * from './uiAction';
|
|
22
26
|
export * from './uiActionButtonDescriptor';
|
|
@@ -43,4 +47,4 @@ export * from './viewEventHandler';
|
|
|
43
47
|
export * from './viewState';
|
|
44
48
|
export * from './viewStateUpdate';
|
|
45
49
|
export * from './viewType';
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvdmlldy1jb250ZXh0L2FwaS9tb2RlbC9tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Nsb3NlUmVzdWx0JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50Q29uc3RyYWludCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudE1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50TW9kZWxDaGFuZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhQ2hhbmdlJztcbmV4cG9ydCAqIGZyb20gJy4vZGF0YUNoYW5nZUV2ZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZGF0YUNoYW5nZUtpbmQnO1xuZXhwb3J0ICogZnJvbSAnLi9kb3dubG9hZGVkRmlsZSc7XG5leHBvcnQgKiBmcm9tICcuL2ljb25Qb3NpdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2ltYWdlUmVzb3VyY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saW5rJztcbmV4cG9ydCAqIGZyb20gJy4vbWVzc2FnZURhdGEnO1xuZXhwb3J0ICogZnJvbSAnLi9tZXNzYWdlT3B0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbWVzc2FnZU9wdGlvblR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9tZXNzYWdlUmVzdWx0JztcbmV4cG9ydCAqIGZyb20gJy4vbWVzc2FnZVRleHRUeXBlJztcbmV4cG9ydCAqIGZyb20gJy4vbWVzc2FnZVR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9vcGVuUGVuZGluZ0RhdGEnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2ZXJSZXF1ZXN0RXhlY3V0aW9uU3RhdCc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZlclJlcXVlc3RUcmFjayc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZlclJlcXVlc3RUeXBlJztcbmV4cG9ydCAqIGZyb20gJy4vc21hcnRMaW5rRGF0YSc7XG5leHBvcnQgKiBmcm9tICcuL3N0YXRpc3RpY1JlY29yZCc7XG5leHBvcnQgKiBmcm9tICcuL3N0eWxlJztcbmV4cG9ydCAqIGZyb20gJy4vdWlBY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi91aUFjdGlvbkJ1dHRvbkRlc2NyaXB0b3InO1xuZXhwb3J0ICogZnJvbSAnLi91aUFjdGlvbkJ1dHRvblR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi91aUFjdGlvbkNvbnN0cmFpbnQnO1xuZXhwb3J0ICogZnJvbSAnLi91aUFjdGlvbkRlc2NyaXB0b3InO1xuZXhwb3J0ICogZnJvbSAnLi91aUFjdGlvbkRpYWxvZ0Rlc2NyaXB0b3InO1xuZXhwb3J0ICogZnJvbSAnLi91aUFjdGlvbkZlZWRiYWNrVHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3VpQWN0aW9uSW5wdXRUeXBlJztcbmV4cG9ydCAqIGZyb20gJy4vdWlBY3Rpb25SZXF1ZXN0JztcbmV4cG9ydCAqIGZyb20gJy4vdWlBY3Rpb25Ub29sdGlwJztcbmV4cG9ydCAqIGZyb20gJy4vdWlBY3Rpb25VcGxvYWREZXNjcmlwdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vdXBsb2FkZWRGaWxlJztcbmV4cG9ydCAqIGZyb20gJy4vdmFsdWVTZXQnO1xuZXhwb3J0ICogZnJvbSAnLi92aWV3JztcbmV4cG9ydCAqIGZyb20gJy4vdmlld0FwaUVycm9yJztcbmV4cG9ydCAqIGZyb20gJy4vdmlld0NvbnN0cmFpbnQnO1xuZXhwb3J0ICogZnJvbSAnLi92aWV3Q29udGV4dCc7XG5leHBvcnQgKiBmcm9tICcuL3ZpZXdDb250ZXh0Q2hhbmdlJztcbmV4cG9ydCAqIGZyb20gJy4vdmlld0NvbnRleHREYXRhJztcbmV4cG9ydCAqIGZyb20gJy4vdmlld0NvbnRleHRVcGRhdGUnO1xuZXhwb3J0ICogZnJvbSAnLi92aWV3RGF0YSc7XG5leHBvcnQgKiBmcm9tICcuL3ZpZXdFdmVudEhhbmRsZXInO1xuZXhwb3J0ICogZnJvbSAnLi92aWV3U3RhdGUnO1xuZXhwb3J0ICogZnJvbSAnLi92aWV3U3RhdGVVcGRhdGUnO1xuZXhwb3J0ICogZnJvbSAnLi92aWV3VHlwZSc7XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyUmVxdWVzdEV4ZWN1dGlvblN0YXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvYXBpL21vZGVsL3NlcnZlclJlcXVlc3RFeGVjdXRpb25TdGF0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFZpZXcgQVBJXG4gKiBWaWV3IEFQSVxuICpcbiAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjAuMFxuICogQ29udGFjdDogaW5mb0BpdDRhbGwuaHVcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpLlxuICogaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoXG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKi9cbmltcG9ydCB7IFNlcnZlclJlcXVlc3RUeXBlIH0gZnJvbSAnLi9zZXJ2ZXJSZXF1ZXN0VHlwZSc7XG5pbXBvcnQgeyBTdGF0aXN0aWNSZWNvcmQgfSBmcm9tICcuL3N0YXRpc3RpY1JlY29yZCc7XG5cblxuLyoqXG4gKiBUaGUgc2VydmVyIHJlcXVlc3QgZXhlY3V0aW9uIHN0YXRpc3RpYyBpcyBhbiBvYmplY3QgZm9yIHRoZSBhY3R1YXRvciBpbmZyYXN0cnVjdHVyZS4gSXQgaXMgaW5pdGlhdGVkIGZvciBldmVyeSB2aWV3LXdpZGdldC1hY3Rpb24gYW5kIGNvbnRhaW5zIHRoZSBtaW5pbXVtLCBhdmVyYWdlIGFuZCBtYXhpbXVtIGV4ZWN1dGlvbiB0aW1lcy4gSXQgY29sbGVjdHMgZnJvbSB0aGUgc2VydmVyIHN0YXJ0LiBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXJ2ZXJSZXF1ZXN0RXhlY3V0aW9uU3RhdCB7IFxuICAgIC8qKlxuICAgICAqIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBzdGF0aXN0aWNhbCBlbnRyeS4gVGhlIHZpZXcgLSB3aWRnZXQgLSBhY3Rpb24gZm9ybWF0LlxuICAgICAqL1xuICAgIGlkPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIFRoZSBuYW1lIG9mIHRoZSB2aWV3IHRoZSByZXF1ZXN0IGlzIHBlcmZvcm1lZCBvbi5cbiAgICAgKi9cbiAgICB2aWV3TmFtZT86IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBUaGUgaWRlbnRpZmllciBvZiB0aGUgd2lkZ2V0IGlmIGl0IGlzIGEgd2lkZ2V0IGFjdGlvbiBwZXJmb3JtLlxuICAgICAqL1xuICAgIHdpZGdldElkPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhY3Rpb24gcGVyZm9ybWVkLlxuICAgICAqL1xuICAgIGFjdGlvbkNvZGU/OiBzdHJpbmc7XG4gICAgZnVsbFN0YXQ/OiBTdGF0aXN0aWNSZWNvcmQ7XG4gICAgd3JpdGVDb3VudD86IFN0YXRpc3RpY1JlY29yZDtcbiAgICB3cml0ZVN0YXQ/OiBTdGF0aXN0aWNSZWNvcmQ7XG4gICAgcmVhZENvdW50PzogU3RhdGlzdGljUmVjb3JkO1xuICAgIHJlYWRTdGF0PzogU3RhdGlzdGljUmVjb3JkO1xuICAgIHR5cGU/OiBTZXJ2ZXJSZXF1ZXN0VHlwZTtcbn1cblxuXG5cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyUmVxdWVzdFRyYWNrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvdmlldy1jb250ZXh0L2FwaS9tb2RlbC9zZXJ2ZXJSZXF1ZXN0VHJhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVmlldyBBUElcbiAqIFZpZXcgQVBJXG4gKlxuICogVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuMC4wXG4gKiBDb250YWN0OiBpbmZvQGl0NGFsbC5odVxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgT3BlbkFQSSBHZW5lcmF0b3IgKGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaCkuXG4gKiBodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2hcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqL1xuaW1wb3J0IHsgU2VydmVyUmVxdWVzdFR5cGUgfSBmcm9tICcuL3NlcnZlclJlcXVlc3RUeXBlJztcbmltcG9ydCB7IFVpQWN0aW9uUmVxdWVzdCB9IGZyb20gJy4vdWlBY3Rpb25SZXF1ZXN0JztcblxuXG4vKipcbiAqIFRoZSBzZXJ2ZXIgcmVxdWVzdCB0cmFjayBpcyBhbiBvYmplY3QgZW5jYXBzdWxhdGVzIHRoZSBVaVJlcXVlc3QgYW5kIG90aGVyIHBhcmFtZXRlcnMgb2YgdGhlIHBlcmZvcm0gYWN0aW9ucy4gSXQgc3RhbmRzIGZvciBub3JtYWwgYW5kIHdpZGdldCBhY3Rpb25zIGFsc28uIFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZlclJlcXVlc3RUcmFjayB7IFxuICAgIC8qKlxuICAgICAqIFRoZSBuYW1lIG9mIHRoZSB2aWV3IHRoZSByZXF1ZXN0IGlzIHBlcmZvcm1lZCBvbi5cbiAgICAgKi9cbiAgICB2aWV3TmFtZTogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIFRoZSBVVUlEIG9mIHRoZSB2aWV3IHRoZSByZXF1ZXN0IGlzIHBlcmZvcm1lZCBvbi5cbiAgICAgKi9cbiAgICB2aWV3VXVpZDogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIFRoZSBpZGVudGlmaWVyIG9mIHRoZSB3aWRnZXQgaWYgaXQgaXMgYSB3aWRnZXQgYWN0aW9uIHBlcmZvcm0uXG4gICAgICovXG4gICAgd2lkZ2V0SWQ/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogVGhlIGlkZW50aWZpZXIgb2YgdGhlIHdpZGdldCBub2RlIGlmIGl0IGlzIGEgd2lkZ2V0IGFjdGlvbiBwZXJmb3JtLlxuICAgICAqL1xuICAgIG5vZGVJZD86IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBUaGUgc3RhcnQgb2YgdGhlIHNlcnZpY2UuXG4gICAgICovXG4gICAgc3RhcnRUaW1lOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogVGhlIGVuZCBvZiB0aGUgc2VydmljZS5cbiAgICAgKi9cbiAgICBlbmRUaW1lPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIFRoZSBudW1iZXIgb2YgZXhlY3V0ZWQgcmVhZHMuXG4gICAgICovXG4gICAgcmVhZENvdW50PzogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIFRoZSBzdW1tYXJpemVkIGV4ZWN1dGlvbiB0aW1lIG9mIHRoZSByZWFkcy5cbiAgICAgKi9cbiAgICByZWFkVGltZT86IG51bWJlcjtcbiAgICAvKipcbiAgICAgKiBUaGUgbnVtYmVyIG9mIGV4ZWN1dGVkIHdyaXRlcy5cbiAgICAgKi9cbiAgICB3cml0ZUNvdW50PzogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIFRoZSBzdW1tYXJpemVkIGV4ZWN1dGlvbiB0aW1lIG9mIHRoZSB3cml0ZXMuXG4gICAgICovXG4gICAgd3JpdGVUaW1lPzogbnVtYmVyO1xuICAgIHJlcXVlc3Q6IFVpQWN0aW9uUmVxdWVzdDtcbiAgICB0eXBlOiBTZXJ2ZXJSZXF1ZXN0VHlwZTtcbn1cblxuXG5cbiJdfQ==
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* View API
|
|
3
|
+
* View API
|
|
4
|
+
*
|
|
5
|
+
* The version of the OpenAPI document: 1.0.0
|
|
6
|
+
* Contact: info@it4all.hu
|
|
7
|
+
*
|
|
8
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
9
|
+
* https://openapi-generator.tech
|
|
10
|
+
* Do not edit the class manually.
|
|
11
|
+
*/
|
|
12
|
+
export var ServerRequestType;
|
|
13
|
+
(function (ServerRequestType) {
|
|
14
|
+
ServerRequestType["ACTION"] = "ACTION";
|
|
15
|
+
ServerRequestType["WIDGET_ACTION"] = "WIDGET_ACTION";
|
|
16
|
+
ServerRequestType["CREATE_VIEW_CONTEXT"] = "CREATE_VIEW_CONTEXT";
|
|
17
|
+
ServerRequestType["UPDATE_VIEW_CONTEXT"] = "UPDATE_VIEW_CONTEXT";
|
|
18
|
+
ServerRequestType["GET_VIEW_CONTEXT"] = "GET_VIEW_CONTEXT";
|
|
19
|
+
ServerRequestType["HANDLE_MESSAGE_RESULT"] = "HANDLE_MESSAGE_RESULT";
|
|
20
|
+
ServerRequestType["SHOW_SMARTLINK"] = "SHOW_SMARTLINK";
|
|
21
|
+
ServerRequestType["DOWNLOAD"] = "DOWNLOAD";
|
|
22
|
+
ServerRequestType["GET_COMPONENT_MODEL"] = "GET_COMPONENT_MODEL";
|
|
23
|
+
})(ServerRequestType || (ServerRequestType = {}));
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyUmVxdWVzdFR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvYXBpL21vZGVsL3NlcnZlclJlcXVlc3RUeXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7O0dBVUc7QUFHSCxNQUFNLENBQU4sSUFBWSxpQkFVWDtBQVZELFdBQVksaUJBQWlCO0lBQ3pCLHNDQUFpQixDQUFBO0lBQ2pCLG9EQUErQixDQUFBO0lBQy9CLGdFQUEyQyxDQUFBO0lBQzNDLGdFQUEyQyxDQUFBO0lBQzNDLDBEQUFxQyxDQUFBO0lBQ3JDLG9FQUErQyxDQUFBO0lBQy9DLHNEQUFpQyxDQUFBO0lBQ2pDLDBDQUFxQixDQUFBO0lBQ3JCLGdFQUEyQyxDQUFBO0FBQy9DLENBQUMsRUFWVyxpQkFBaUIsS0FBakIsaUJBQWlCLFFBVTVCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBWaWV3IEFQSVxuICogVmlldyBBUElcbiAqXG4gKiBUaGUgdmVyc2lvbiBvZiB0aGUgT3BlbkFQSSBkb2N1bWVudDogMS4wLjBcbiAqIENvbnRhY3Q6IGluZm9AaXQ0YWxsLmh1XG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvciAoaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoKS5cbiAqIGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICovXG5cblxuZXhwb3J0IGVudW0gU2VydmVyUmVxdWVzdFR5cGUge1xuICAgIEFDVElPTiA9ICdBQ1RJT04nLFxuICAgIFdJREdFVF9BQ1RJT04gPSAnV0lER0VUX0FDVElPTicsXG4gICAgQ1JFQVRFX1ZJRVdfQ09OVEVYVCA9ICdDUkVBVEVfVklFV19DT05URVhUJyxcbiAgICBVUERBVEVfVklFV19DT05URVhUID0gJ1VQREFURV9WSUVXX0NPTlRFWFQnLFxuICAgIEdFVF9WSUVXX0NPTlRFWFQgPSAnR0VUX1ZJRVdfQ09OVEVYVCcsXG4gICAgSEFORExFX01FU1NBR0VfUkVTVUxUID0gJ0hBTkRMRV9NRVNTQUdFX1JFU1VMVCcsXG4gICAgU0hPV19TTUFSVExJTksgPSAnU0hPV19TTUFSVExJTksnLFxuICAgIERPV05MT0FEID0gJ0RPV05MT0FEJyxcbiAgICBHRVRfQ09NUE9ORU5UX01PREVMID0gJ0dFVF9DT01QT05FTlRfTU9ERUwnXG59XG5cbiJdfQ==
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* View API
|
|
3
|
+
* View API
|
|
4
|
+
*
|
|
5
|
+
* The version of the OpenAPI document: 1.0.0
|
|
6
|
+
* Contact: info@it4all.hu
|
|
7
|
+
*
|
|
8
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
9
|
+
* https://openapi-generator.tech
|
|
10
|
+
* Do not edit the class manually.
|
|
11
|
+
*/
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGlzdGljUmVjb3JkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvdmlldy1jb250ZXh0L2FwaS9tb2RlbC9zdGF0aXN0aWNSZWNvcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7R0FVRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVmlldyBBUElcbiAqIFZpZXcgQVBJXG4gKlxuICogVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuMC4wXG4gKiBDb250YWN0OiBpbmZvQGl0NGFsbC5odVxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgT3BlbkFQSSBHZW5lcmF0b3IgKGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaCkuXG4gKiBodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2hcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqL1xuXG5cbi8qKlxuICogVGhlIGdlbmVyaWMgZXhlY3V0aW9uIHN0YXRpc3RpYyBpcyBhbiBvYmplY3QgZm9yIHRoZSBhY3R1YXRvciBpbmZyYXN0cnVjdHVyZS4gSXQgY291bGQgYmUgaW5pdGlhdGVkIGZvciBtYW55IHB1cnBvc2VzIGFuZCBjb250YWlucyB0aGUgY291bnQsIHRoZSBtaW5pbXVtLCBhdmVyYWdlIGFuZCBtYXhpbXVtIGV4ZWN1dGlvbiB0aW1lcy4gXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RhdGlzdGljUmVjb3JkIHsgXG4gICAgLyoqXG4gICAgICogVGhlIG1pbmltdW0gZXhlY3V0aW9uIHRpbWUgb2YgdGhlIGdpdmVuIGFjdGlvbiBpbiBtaWxsaXNlYy5cbiAgICAgKi9cbiAgICBtaW4/OiBudW1iZXI7XG4gICAgLyoqXG4gICAgICogVGhlIGF2ZXJhZ2UgZXhlY3V0aW9uIHRpbWUgb2YgdGhlIGdpdmVuIGFjdGlvbiBpbiBtaWxsaXNlYy5cbiAgICAgKi9cbiAgICBhdmc/OiBudW1iZXI7XG4gICAgLyoqXG4gICAgICogVGhlIGF2ZXJhZ2UgZXhlY3V0aW9uIHRpbWUgb2YgdGhlIGdpdmVuIGFjdGlvbiBpbiBtaWxsaXNlYy5cbiAgICAgKi9cbiAgICBtYXg/OiBudW1iZXI7XG4gICAgLyoqXG4gICAgICogVGhlIG51bWJlciBvZiBleGVjdXRlZCByZXF1ZXN0cy5cbiAgICAgKi9cbiAgICBjb3VudGVyPzogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIFRoZSBzdW1tYXJpemVkIGV4ZWN1dGlvbiB0aW1lIG9mIHRoZSByZXF1ZXN0LlxuICAgICAqL1xuICAgIHN1bT86IG51bWJlcjtcbn1cblxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWlBY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvYXBpL21vZGVsL3VpQWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFZpZXcgQVBJXG4gKiBWaWV3IEFQSVxuICpcbiAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjAuMFxuICogQ29udGFjdDogaW5mb0BpdDRhbGwuaHVcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpLlxuICogaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoXG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKi9cbmltcG9ydCB7IFVpQWN0aW9uSW5wdXRUeXBlIH0gZnJvbSAnLi91aUFjdGlvbklucHV0VHlwZSc7XG5pbXBvcnQgeyBVaUFjdGlvbkRlc2NyaXB0b3IgfSBmcm9tICcuL3VpQWN0aW9uRGVzY3JpcHRvcic7XG5cblxuZXhwb3J0IGludGVyZmFjZSBVaUFjdGlvbiB7IFxuICAgIGNvZGU/OiBzdHJpbmc7XG4gICAgcGF0aD86IHN0cmluZztcbiAgICBpZGVudGlmaWVyPzogc3RyaW5nO1xuICAgIGlucHV0VHlwZT86IFVpQWN0aW9uSW5wdXRUeXBlO1xuICAgIGlucHV0MlR5cGU/OiBVaUFjdGlvbklucHV0VHlwZTtcbiAgICAvKipcbiAgICAgKiBJZiB0cnVlLCBVaUFjdGlvbiB3aWxsIHN1Ym1pdCB0aGUgZm9ybSAoY2F1c2luZyB2YWxpZGF0aW9uKSBhbmQgc2VuZHMgbW9kZWwgaW4gVWlBY3Rpb25SZXF1ZXN0LlxuICAgICAqL1xuICAgIHN1Ym1pdD86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogSWYgdHJ1ZSwgVWlBY3Rpb24gd2lsbCBOT1Qgc3VibWl0IHRoZSBmb3JtIGFuZCBzZW5kcyBtb2RlbCBXSVRIT1VUIFZBTElEQVRJT04gaW4gVWlBY3Rpb25SZXF1ZXN0LlxuICAgICAqL1xuICAgIG1vZGVsPzogYm9vbGVhbjtcbiAgICBjb25maXJtPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBBZGRpdGlvbmFsIHBhcmFtZXRlcnMgZm9yIGV4ZWN1dGluZyB0aGUgVUkgYWN0aW9uLiBcbiAgICAgKi9cbiAgICBwYXJhbXM/OiB7IFtrZXk6IHN0cmluZ106IGFueTsgfTtcbiAgICBkZXNjcmlwdG9yPzogVWlBY3Rpb25EZXNjcmlwdG9yO1xuICAgIC8qKlxuICAgICAqIFRoZSBzdWIgYWN0aW9uIGFyZSBzZXQgaWYgYW5kIG9ubHkgaWYgdGhpcyBhY3Rpb24gaXMgYSBzdWIgbWVudS4gVGhlIHN1YiBhY3Rpb25zIGNhbiBiZSBudWxsLlxuICAgICAqL1xuICAgIHN1YkFjdGlvbnM/OiBBcnJheTxVaUFjdGlvbj47XG4gICAgLyoqXG4gICAgICogVGhlIGlkIG9mIHRvb2xiYXIgd2hpY2ggdGhpcyBVaUFjdGlvbiBzaG91bGQgYmUgcGxhY2VkIG9uLlxuICAgICAqL1xuICAgIHRvb2xiYXI/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGlzIGFjdGlvbiBzaG91bGQgYXBwZWFyIGRpc2FibGVkIG9yIG5vdC5cbiAgICAgKi9cbiAgICBkaXNhYmxlZD86IGJvb2xlYW47XG59XG5cblxuXG4iXX0=
|
|
@@ -10,4 +10,4 @@
|
|
|
10
10
|
* Do not edit the class manually.
|
|
11
11
|
*/
|
|
12
12
|
export {};
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWlBY3Rpb25SZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvdmlldy1jb250ZXh0L2FwaS9tb2RlbC91aUFjdGlvblJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7R0FVRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVmlldyBBUElcbiAqIFZpZXcgQVBJXG4gKlxuICogVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuMC4wXG4gKiBDb250YWN0OiBpbmZvQGl0NGFsbC5odVxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgT3BlbkFQSSBHZW5lcmF0b3IgKGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaCkuXG4gKiBodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2hcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqL1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgVWlBY3Rpb25SZXF1ZXN0IHsgXG4gICAgLyoqXG4gICAgICogQ29kZSBvZiB0aGUgZXhlY3V0ZWQgVUkgYWN0aW9uLlxuICAgICAqL1xuICAgIGNvZGU6IHN0cmluZztcbiAgICBwYXRoPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIElkZW50aWZpZXIgb2YgVUkgZWxlbWVudCwgb3IgVUkgYWN0aW9uLCB3aGVyZSBhY3Rpb24gaXMgcGVyZm9ybWVkIChmb3IgZXhhbXBsZSB0cmVlTm9kZVxcJ3MgLyAgbGlzdEl0ZW1cXCdzIGlkZW50aWZpZXIsIGV0Yy4pLiBPcHRpb25hbC4gXG4gICAgICovXG4gICAgaWRlbnRpZmllcj86IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBBZGRpdGlvbmFsIHBhcmFtZXRlcnMgZm9yIGV4ZWN1dGluZyB0aGUgVUkgYWN0aW9uLiBcbiAgICAgKi9cbiAgICBwYXJhbXM6IHsgW2tleTogc3RyaW5nXTogYW55OyB9O1xufVxuXG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWVTZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvYXBpL21vZGVsL3ZhbHVlU2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFZpZXcgQVBJXG4gKiBWaWV3IEFQSVxuICpcbiAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjAuMFxuICogQ29udGFjdDogaW5mb0BpdDRhbGwuaHVcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpLlxuICogaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoXG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKi9cbmltcG9ydCB7IFZhbHVlU2V0RGF0YSB9IGZyb20gJy4uLy4uL3ZhbHVlLWFwaSc7XG5cblxuLyoqXG4gKiBBbiBpbnN0YW5jZSBvZiBhIFZhbHVlU2V0RGF0YSB0aWVkIHRvZ2V0aGVyIHdpdGggYSBsb2dpY2FsIHRpbWVzdGFtcCAoY291bnRlcikuIEl0IGNhbiBiZSB1c2VkICBhcyBhIHJlcXVlc3QgaXRlbSwgd2l0aG91dCBzcGVjaWZ5aW5nIHZhbHVlU2V0RGF0YSwgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmFsdWVTZXQgeyBcbiAgICB2YWx1ZVNldE5hbWU/OiBzdHJpbmc7XG4gICAgdmFsdWVTZXREYXRhPzogVmFsdWVTZXREYXRhO1xuICAgIHRpbWVzdGFtcD86IG51bWJlcjtcbn1cblxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3ZpZXctY29udGV4dC9hcGkvbW9kZWwvdmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBWaWV3IEFQSVxuICogVmlldyBBUElcbiAqXG4gKiBUaGUgdmVyc2lvbiBvZiB0aGUgT3BlbkFQSSBkb2N1bWVudDogMS4wLjBcbiAqIENvbnRhY3Q6IGluZm9AaXQ0YWxsLmh1XG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvciAoaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoKS5cbiAqIGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICovXG5pbXBvcnQgeyBWaWV3RXZlbnRIYW5kbGVyIH0gZnJvbSAnLi92aWV3RXZlbnRIYW5kbGVyJztcbmltcG9ydCB7IFNtYXJ0TGF5b3V0RGVmaW5pdGlvbiB9IGZyb20gJy4uLy4uLy4uL3NtYXJ0LWZvcm0vYXBpJztcbmltcG9ydCB7IFNtYXJ0Q29tcG9uZW50TGF5b3V0RGVmaW5pdGlvbiB9IGZyb20gJy4uLy4uLy4uL3NtYXJ0LWNvbXBvbmVudC1sYXlvdXQvYXBpJztcbmltcG9ydCB7IFN0eWxlIH0gZnJvbSAnLi9zdHlsZSc7XG5pbXBvcnQgeyBWaWV3U3RhdGUgfSBmcm9tICcuL3ZpZXdTdGF0ZSc7XG5pbXBvcnQgeyBVaUFjdGlvbiB9IGZyb20gJy4vdWlBY3Rpb24nO1xuaW1wb3J0IHsgVmFsdWVTZXQgfSBmcm9tICcuL3ZhbHVlU2V0JztcbmltcG9ydCB7IFZpZXdUeXBlIH0gZnJvbSAnLi92aWV3VHlwZSc7XG5pbXBvcnQgeyBWaWV3Q29uc3RyYWludCB9IGZyb20gJy4vdmlld0NvbnN0cmFpbnQnO1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgVmlldyB7IFxuICAgIC8qKlxuICAgICAqIFVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBWaWV3LlxuICAgICAqL1xuICAgIHV1aWQ6IHN0cmluZztcbiAgICB2aWV3TmFtZTogc3RyaW5nO1xuICAgIG9iamVjdFVyaT86IHN0cmluZztcbiAgICBicmFuY2hVcmk/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogVGhlIGluY29taW5nIHBhcmFtZXRlcnMgb2YgdGhlIHZpZXcuIElmIHdlIHJlc3RhcnQgdGhlIGdpdmVuIHZpZXcgd2l0aCB0aGUgc2FtZSBtb2RlbCB0aGVuIHRoaXMgcGFyYW1ldGVycyByZW1haW4uXG4gICAgICovXG4gICAgcGFyYW1ldGVyczogeyBba2V5OiBzdHJpbmddOiBhbnk7IH07XG4gICAgLyoqXG4gICAgICogVGhlIHZhcmlhYmxlIHRvIHN0b3JlIHdoaWxlIHRoZSBwYWdlIGlzIG9wZW5lZC4gSXQgd2lsbCBiZSBjbGVhcmVkIGlmIHdlIG9wZW4gaXQgYWdhaW4uXG4gICAgICovXG4gICAgdmFyaWFibGVzOiB7IFtrZXk6IHN0cmluZ106IGFueTsgfTtcbiAgICBzdGF0ZTogVmlld1N0YXRlO1xuICAgIHR5cGU6IFZpZXdUeXBlO1xuICAgIGNvbnRhaW5lclV1aWQ/OiBzdHJpbmc7XG4gICAgbW9kZWw/OiBvYmplY3Q7XG4gICAgY29uc3RyYWludD86IFZpZXdDb25zdHJhaW50O1xuICAgIGNsb3NlZENoaWxkcmVuVmlld3M6IEFycmF5PFZpZXc+O1xuICAgIGRvd25sb2FkYWJsZUl0ZW1zOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZzsgfTtcbiAgICBhY3Rpb25zOiBBcnJheTxVaUFjdGlvbj47XG4gICAgZXZlbnRIYW5kbGVyczogQXJyYXk8Vmlld0V2ZW50SGFuZGxlcj47XG4gICAgd2lkZ2V0TW9kZWxzOiB7IFtrZXk6IHN0cmluZ106IG9iamVjdDsgfTtcbiAgICB3aWRnZXRTZXJ2ZXJNb2RlbHM6IHsgW2tleTogc3RyaW5nXTogb2JqZWN0OyB9O1xuICAgIHZhbHVlU2V0czogeyBba2V5OiBzdHJpbmddOiBWYWx1ZVNldDsgfTtcbiAgICBrZWVwTW9kZWxPbkltcGxpY2l0Q2xvc2U/OiBib29sZWFuO1xuICAgIGNhbGxiYWNrczogeyBba2V5OiBzdHJpbmddOiBvYmplY3Q7IH07XG4gICAgLyoqXG4gICAgICogVGhlIGxheW91dHMgZGVmaW5lZCBpbiB0aGUgdmlldy4gVGhpcyBuYW1lZCBsYXlvdXRzIGNhbiBiZSB1c2VkIGJ5IHRoZSBVSSB0byByZW5kZXJcbiAgICAgKi9cbiAgICBsYXlvdXRzOiB7IFtrZXk6IHN0cmluZ106IFNtYXJ0TGF5b3V0RGVmaW5pdGlvbjsgfTtcbiAgICAvKipcbiAgICAgKiBUaGUgY29tcG9uZW50cyBsYXlvdXRzIGRlZmluZWQgaW4gdGhlIHZpZXcuIFRoaXMgbmFtZWQgbGF5b3V0cyBjYW4gYmUgdXNlZCBieSB0aGUgVUkgdG8gcmVuZGVyXG4gICAgICovXG4gICAgY29tcG9uZW50TGF5b3V0czogeyBba2V5OiBzdHJpbmddOiBTbWFydENvbXBvbmVudExheW91dERlZmluaXRpb247IH07XG4gICAgc3R5bGU/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3ZpZXctY29udGV4dC9hcGkvbW9kZWwvdmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBWaWV3IEFQSVxuICogVmlldyBBUElcbiAqXG4gKiBUaGUgdmVyc2lvbiBvZiB0aGUgT3BlbkFQSSBkb2N1bWVudDogMS4wLjBcbiAqIENvbnRhY3Q6IGluZm9AaXQ0YWxsLmh1XG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvciAoaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoKS5cbiAqIGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICovXG5pbXBvcnQgeyBWaWV3RXZlbnRIYW5kbGVyIH0gZnJvbSAnLi92aWV3RXZlbnRIYW5kbGVyJztcbmltcG9ydCB7IFNtYXJ0TGF5b3V0RGVmaW5pdGlvbiB9IGZyb20gJy4uLy4uLy4uL3NtYXJ0LWZvcm0vYXBpJztcbmltcG9ydCB7IFNtYXJ0Q29tcG9uZW50TGF5b3V0RGVmaW5pdGlvbiB9IGZyb20gJy4uLy4uLy4uL3NtYXJ0LWNvbXBvbmVudC1sYXlvdXQvYXBpJztcbmltcG9ydCB7IFN0eWxlIH0gZnJvbSAnLi9zdHlsZSc7XG5pbXBvcnQgeyBWaWV3U3RhdGUgfSBmcm9tICcuL3ZpZXdTdGF0ZSc7XG5pbXBvcnQgeyBVaUFjdGlvbiB9IGZyb20gJy4vdWlBY3Rpb24nO1xuaW1wb3J0IHsgVmFsdWVTZXQgfSBmcm9tICcuL3ZhbHVlU2V0JztcbmltcG9ydCB7IFZpZXdUeXBlIH0gZnJvbSAnLi92aWV3VHlwZSc7XG5pbXBvcnQgeyBWaWV3Q29uc3RyYWludCB9IGZyb20gJy4vdmlld0NvbnN0cmFpbnQnO1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgVmlldyB7IFxuICAgIC8qKlxuICAgICAqIFVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBWaWV3LlxuICAgICAqL1xuICAgIHV1aWQ6IHN0cmluZztcbiAgICB2aWV3TmFtZTogc3RyaW5nO1xuICAgIG9iamVjdFVyaT86IHN0cmluZztcbiAgICBicmFuY2hVcmk/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogVGhlIGluY29taW5nIHBhcmFtZXRlcnMgb2YgdGhlIHZpZXcuIElmIHdlIHJlc3RhcnQgdGhlIGdpdmVuIHZpZXcgd2l0aCB0aGUgc2FtZSBtb2RlbCB0aGVuIHRoaXMgcGFyYW1ldGVycyByZW1haW4uXG4gICAgICovXG4gICAgcGFyYW1ldGVyczogeyBba2V5OiBzdHJpbmddOiBhbnk7IH07XG4gICAgLyoqXG4gICAgICogVGhlIHZhcmlhYmxlIHRvIHN0b3JlIHdoaWxlIHRoZSBwYWdlIGlzIG9wZW5lZC4gSXQgd2lsbCBiZSBjbGVhcmVkIGlmIHdlIG9wZW4gaXQgYWdhaW4uXG4gICAgICovXG4gICAgdmFyaWFibGVzOiB7IFtrZXk6IHN0cmluZ106IGFueTsgfTtcbiAgICBzdGF0ZTogVmlld1N0YXRlO1xuICAgIHR5cGU6IFZpZXdUeXBlO1xuICAgIGNvbnRhaW5lclV1aWQ/OiBzdHJpbmc7XG4gICAgbW9kZWw/OiBvYmplY3Q7XG4gICAgY29uc3RyYWludD86IFZpZXdDb25zdHJhaW50O1xuICAgIGNsb3NlZENoaWxkcmVuVmlld3M6IEFycmF5PFZpZXc+O1xuICAgIGRvd25sb2FkYWJsZUl0ZW1zOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZzsgfTtcbiAgICBhY3Rpb25zOiBBcnJheTxVaUFjdGlvbj47XG4gICAgZXZlbnRIYW5kbGVyczogQXJyYXk8Vmlld0V2ZW50SGFuZGxlcj47XG4gICAgd2lkZ2V0TW9kZWxzOiB7IFtrZXk6IHN0cmluZ106IG9iamVjdDsgfTtcbiAgICB3aWRnZXRTZXJ2ZXJNb2RlbHM6IHsgW2tleTogc3RyaW5nXTogb2JqZWN0OyB9O1xuICAgIHZhbHVlU2V0czogeyBba2V5OiBzdHJpbmddOiBWYWx1ZVNldDsgfTtcbiAgICBrZWVwTW9kZWxPbkltcGxpY2l0Q2xvc2U/OiBib29sZWFuO1xuICAgIGNhbGxiYWNrczogeyBba2V5OiBzdHJpbmddOiBvYmplY3Q7IH07XG4gICAgLyoqXG4gICAgICogVGhlIGxheW91dHMgZGVmaW5lZCBpbiB0aGUgdmlldy4gVGhpcyBuYW1lZCBsYXlvdXRzIGNhbiBiZSB1c2VkIGJ5IHRoZSBVSSB0byByZW5kZXJcbiAgICAgKi9cbiAgICBsYXlvdXRzOiB7IFtrZXk6IHN0cmluZ106IFNtYXJ0TGF5b3V0RGVmaW5pdGlvbjsgfTtcbiAgICAvKipcbiAgICAgKiBUaGUgY29tcG9uZW50cyBsYXlvdXRzIGRlZmluZWQgaW4gdGhlIHZpZXcuIFRoaXMgbmFtZWQgbGF5b3V0cyBjYW4gYmUgdXNlZCBieSB0aGUgVUkgdG8gcmVuZGVyXG4gICAgICovXG4gICAgY29tcG9uZW50TGF5b3V0czogeyBba2V5OiBzdHJpbmddOiBTbWFydENvbXBvbmVudExheW91dERlZmluaXRpb247IH07XG4gICAgc3R5bGU/OiBTdHlsZTtcbiAgICBwYXJlbnRTdHlsZT86IFN0eWxlO1xufVxuXG5cblxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld0NvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvYXBpL21vZGVsL3ZpZXdDb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFZpZXcgQVBJXG4gKiBWaWV3IEFQSVxuICpcbiAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjAuMFxuICogQ29udGFjdDogaW5mb0BpdDRhbGwuaHVcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpLlxuICogaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoXG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKi9cbmltcG9ydCB7IFNlcnZlclJlcXVlc3RUcmFjayB9IGZyb20gJy4vc2VydmVyUmVxdWVzdFRyYWNrJztcbmltcG9ydCB7IERvd25sb2FkZWRGaWxlIH0gZnJvbSAnLi9kb3dubG9hZGVkRmlsZSc7XG5pbXBvcnQgeyBPcGVuUGVuZGluZ0RhdGEgfSBmcm9tICcuL29wZW5QZW5kaW5nRGF0YSc7XG5pbXBvcnQgeyBWaWV3IH0gZnJvbSAnLi92aWV3JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICcuL2xpbmsnO1xuXG5cbi8qKlxuICogVGhlIHNhbWUgc2Vzc2lvbiBjYW4gYmUgdmFsaWQgLyB1c2VkIGluIG11bHRpcGxlIFVJcywgdGhpcyBvYmplY3QgcmVwcmVzZW50cyBhIFVJLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZpZXdDb250ZXh0IHsgXG4gICAgdXJpOiBzdHJpbmc7XG4gICAgdXVpZD86IHN0cmluZztcbiAgICB2aWV3czogQXJyYXk8Vmlldz47XG4gICAgbGlua3M6IEFycmF5PExpbms+O1xuICAgIGRvd25sb2FkczogQXJyYXk8RG93bmxvYWRlZEZpbGU+O1xuICAgIG9wZW5QZW5kaW5nRGF0YT86IE9wZW5QZW5kaW5nRGF0YTtcbiAgICBjdXJyZW50UmVxdWVzdD86IFNlcnZlclJlcXVlc3RUcmFjaztcbn1cblxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld0NvbnRleHRDaGFuZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvYXBpL21vZGVsL3ZpZXdDb250ZXh0Q2hhbmdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFZpZXcgQVBJXG4gKiBWaWV3IEFQSVxuICpcbiAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjAuMFxuICogQ29udGFjdDogaW5mb0BpdDRhbGwuaHVcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpLlxuICogaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoXG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKi9cbmltcG9ydCB7IENvbXBvbmVudE1vZGVsQ2hhbmdlIH0gZnJvbSAnLi9jb21wb25lbnRNb2RlbENoYW5nZSc7XG5pbXBvcnQgeyBWaWV3Q29udGV4dERhdGEgfSBmcm9tICcuL3ZpZXdDb250ZXh0RGF0YSc7XG5cblxuLyoqXG4gKiBUaGUgc2FtZSBzZXNzaW9uIGNhbiBiZSB2YWxpZCAvIHVzZWQgaW4gbXVsdGlwbGUgVUlzLCB0aGlzIG9iamVjdCByZXByZXNlbnRzIGEgVUkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmlld0NvbnRleHRDaGFuZ2UgeyBcbiAgICB2aWV3Q29udGV4dDogVmlld0NvbnRleHREYXRhO1xuICAgIGNoYW5nZXM6IEFycmF5PENvbXBvbmVudE1vZGVsQ2hhbmdlPjtcbiAgICAvKipcbiAgICAgKiBJZiB0aGUgc2VydmVyIGNhbGwgaXMgd3JhcHBlZCBpbnNpZGUgdGhpcyBWaWV3Q29udGV4dENoYW5nZSwgdGhlbiB0aGlzIGZpZWxkIHdpbGwgY29udGFpbiB0aGUgcmVzdWx0IG9mIHRoZSBvcmlnaW5hbCBjYWxsLiBcbiAgICAgKi9cbiAgICByZXN1bHQ/OiBvYmplY3Q7XG59XG5cbiJdfQ==
|