mmhglobal-dynamicform 1.3.12 → 1.3.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/README.md +8 -4
  2. package/esm2020/lib/directives/elementcontainer.directive.mjs +4 -4
  3. package/esm2020/lib/directives/fieldelement.directive.mjs +4 -4
  4. package/esm2020/lib/directives/scrollbar.theme.directive.mjs +4 -4
  5. package/esm2020/lib/mmhglobal-dynamicform.module.mjs +5 -5
  6. package/esm2020/lib/services/main.service.mjs +4 -4
  7. package/esm2020/lib/services/zcomponent.debug.service.mjs +4 -4
  8. package/esm2020/lib/services/zcomponent.service.mjs +4 -4
  9. package/esm2020/lib/uiactionbutton/uiactionbutton.component.mjs +4 -4
  10. package/esm2020/lib/uiappmenucontent/uiappmenucontent.component.mjs +4 -4
  11. package/esm2020/lib/uicontainer/uicontainer.component.mjs +4 -4
  12. package/esm2020/lib/uicontent/uicontent.component.mjs +4 -4
  13. package/esm2020/lib/uiheader/uiheader.component.mjs +4 -4
  14. package/esm2020/lib/uimenubutton/uimenubutton.component.mjs +4 -4
  15. package/esm2020/lib/uimenucontent/uimenucontent.component.mjs +4 -4
  16. package/esm2020/lib/uipage/uipage.component.mjs +4 -4
  17. package/esm2020/lib/uivalidationmessage/uivalidationmessage.component.mjs +4 -4
  18. package/esm2020/lib/zbullet/zbullet.component.mjs +4 -4
  19. package/esm2020/lib/zbuttons/zbuttons.component.mjs +4 -4
  20. package/esm2020/lib/zcard/zcard.component.mjs +4 -4
  21. package/esm2020/lib/zchart/zchart.component.mjs +4 -4
  22. package/esm2020/lib/zcheckbox/zcheckbox.component.mjs +4 -4
  23. package/esm2020/lib/zchip/zchip.component.mjs +4 -4
  24. package/esm2020/lib/zcodeeditor/zcodeeditor.component.mjs +4 -4
  25. package/esm2020/lib/zcodeeditor/zcodeeditor.pipe.mjs +4 -4
  26. package/esm2020/lib/zdaterange/zdaterange.component.mjs +4 -4
  27. package/esm2020/lib/zdatetime/dateParser.pipe.mjs +4 -4
  28. package/esm2020/lib/zdatetime/zdatetime.component.mjs +4 -4
  29. package/esm2020/lib/zdiv/zdiv.component.mjs +4 -4
  30. package/esm2020/lib/zdiv/zdiv.pipe.mjs +4 -4
  31. package/esm2020/lib/zform/zform.component.mjs +4 -4
  32. package/esm2020/lib/zformcontrol/zformcontrol.component.mjs +4 -4
  33. package/esm2020/lib/zgauge/zgauge.component.mjs +4 -4
  34. package/esm2020/lib/zgrid/date-range-cell-filter.component.mjs +4 -4
  35. package/esm2020/lib/zgrid/zgrid.binding.directive.mjs +4 -4
  36. package/esm2020/lib/zgrid/zgrid.component.mjs +4 -4
  37. package/esm2020/lib/zgrid/zgrid.popup.anchor-target.directive.mjs +4 -4
  38. package/esm2020/lib/zimg/zimg.component.mjs +4 -4
  39. package/esm2020/lib/zkcard/zkcard.component.mjs +4 -4
  40. package/esm2020/lib/zlabel/zlabel.component.mjs +4 -4
  41. package/esm2020/lib/zmfb/zmfb.component.mjs +4 -4
  42. package/esm2020/lib/zmodal/zmodal-mobile.component.mjs +4 -4
  43. package/esm2020/lib/zmodal/zmodal.component.mjs +4 -4
  44. package/esm2020/lib/znumeric/znumeric.component.mjs +4 -4
  45. package/esm2020/lib/zpostselectinput/zpostselectinput.component.mjs +4 -4
  46. package/esm2020/lib/zquerybuilder/zquerybuilder.component.mjs +4 -4
  47. package/esm2020/lib/zreport/zreport.component.mjs +21 -19
  48. package/esm2020/lib/zscheduler/zscheduler.component.mjs +4 -4
  49. package/esm2020/lib/zscheduler/zscheduler.toolbar.component.mjs +4 -4
  50. package/esm2020/lib/zselectmultiple/zselectmultiple.component.mjs +4 -4
  51. package/esm2020/lib/zselectmultiple/zselectmultiple.directive.mjs +4 -4
  52. package/esm2020/lib/ztab/ztab.component.mjs +4 -4
  53. package/esm2020/lib/ztab/ztab.pipe.mjs +4 -4
  54. package/esm2020/lib/ztext/ztext.component.mjs +4 -4
  55. package/esm2020/lib/ztextarea/ztextarea.component.mjs +4 -4
  56. package/esm2020/lib/ztexteditor/ztexteditor.component.mjs +4 -4
  57. package/esm2020/lib/ztree/ztree.component.mjs +4 -4
  58. package/esm2020/lib/ztreelist/ztreelist.component.mjs +4 -4
  59. package/esm2020/lib/ztrendcard/ztrendcard.component.mjs +4 -4
  60. package/esm2020/lib/zudf/zudf.component.mjs +4 -4
  61. package/esm2020/lib/zunknown/zunknown.component.mjs +4 -4
  62. package/esm2020/lib/zupload/zupload.component.mjs +4 -4
  63. package/esm2020/lib/zworkflowbuttons/zworkflowbuttons.component.mjs +4 -4
  64. package/fesm2015/mmhglobal-dynamicform.mjs +204 -202
  65. package/fesm2015/mmhglobal-dynamicform.mjs.map +1 -1
  66. package/fesm2020/mmhglobal-dynamicform.mjs +204 -202
  67. package/fesm2020/mmhglobal-dynamicform.mjs.map +1 -1
  68. package/package.json +1 -1
@@ -51,15 +51,16 @@ export class ZreportComponent {
51
51
  //if (this.data['hideTogglePrintPreview']) { $("[data-command*='telerik_ReportViewer_togglePrintPreview']").parent().hide(); }
52
52
  //if (this.data['hideExport']) { $("[data-command*='telerik_ReportViewer_export']").parent().hide(); }
53
53
  //if (this.data['hidePrint']) { $("[data-command*='telerik_ReportViewer_print']").parent().hide(); }
54
- //if (this.data['hideToggleDocumentMap']) { $("[data-command*='telerik_ReportViewer_toggleDocumentMap']").parent().hide(); }
55
- //if (this.data['hideToggleParametersArea']) { $("[data-command*='telerik_ReportViewer_toggleParametersArea']").parent().hide(); }
54
+ $("[data-command*='telerik_ReportViewer_toggleDocumentMap']").parent().hide();
55
+ $("[data-command*='telerik_ReportViewer_toggleParametersArea']").parent().hide();
56
56
  //if (this.data['hideZoomIn']) { $("[data-command*='telerik_ReportViewer_zoomIn']").parent().hide(); }
57
57
  //if (this.data['hideZoomOut']) { $("[data-command*='telerik_ReportViewer_zoomOut']").parent().hide(); }
58
58
  //if (this.data['hideToggleZoomMode']) { $("[data-command*='telerik_ReportViewer_toggleZoomMode']").parent().hide(); }
59
- //if (this.data['hideToggleSearchDialog']) { $("[data-command*='telerik_ReportViewer_toggleSearchDialog']").parent().hide(); }
59
+ $("[data-command*='telerik_ReportViewer_toggleSearchDialog']").parent().hide();
60
60
  }
61
61
  onPageReady(e, args) {
62
- this.resizeViewer(e, args);
62
+ // doesnt seem to work in angular 13
63
+ //this.resizeViewer(e, args);
63
64
  }
64
65
  onResize() {
65
66
  console.log("Report resized.");
@@ -82,17 +83,18 @@ export class ZreportComponent {
82
83
  this.resourceURL = rs['url'];
83
84
  this.viewer.setReportSource(rs);
84
85
  this.viewer.refreshReport();
85
- this.viewer['height'](10);
86
- var documentMapSplitter = $(".trv-document-map-splitter").data("kendoSplitter");
87
- documentMapSplitter.resize(true);
88
- var parameterSplitter = $(".trv-parameters-splitter").data("kendoSplitter");
89
- parameterSplitter.resize(true);
90
- if (this.data['AutoResize']) {
91
- this.paramToResizeReportViewer = true;
92
- }
93
- else {
94
- this.paramToResizeReportViewer = false;
95
- }
86
+ //if (this.viewer['height']) {
87
+ // this.viewer['height'](10);
88
+ //}
89
+ //var documentMapSplitter = $(".trv-document-map-splitter").data("kendoSplitter");
90
+ //documentMapSplitter.resize(true);
91
+ //var parameterSplitter = $(".trv-parameters-splitter").data("kendoSplitter");
92
+ //parameterSplitter.resize(true);
93
+ //if (this.data['AutoResize']) {
94
+ // this.paramToResizeReportViewer = true;
95
+ //} else {
96
+ // this.paramToResizeReportViewer = false;
97
+ //}
96
98
  }
97
99
  getFontAwesome(iconName) {
98
100
  return ZComponentHelper.getFontAwesome(iconName);
@@ -114,9 +116,9 @@ export class ZreportComponent {
114
116
  }
115
117
  }
116
118
  }
117
- ZreportComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: ZreportComponent, deps: [{ token: i1.ResourceApiService }], target: i0.ɵɵFactoryTarget.Component });
118
- ZreportComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: ZreportComponent, selector: "app-zreport", inputs: { data: "data", group: "group" }, host: { listeners: { "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "viewer", first: true, predicate: ["reportViewer1"], descendants: true }], ngImport: i0, template: "<div width=\"100%\" height=\"800px\">\r\n <!--<ion-button class=\"button-container\"\r\n fill=\"outline\"\r\n color=\"dark\"\r\n size=\"small\"\r\n strong=\"false\"\r\n [hidden]=\"false\"\r\n [disabled]=\"false\"\r\n (click)=\"ReportViewer.refreshReport()\">\r\n <div style=\"padding-right: 5px;\"></div>\r\n <span class=\"ion-text-capitalize\">Refresh</span>\r\n </ion-button>\r\n\r\n <ion-button class=\"button-container\"\r\n fill=\"outline\"\r\n color=\"dark\"\r\n size=\"small\"\r\n strong=\"false\"\r\n [hidden]=\"false\"\r\n [disabled]=\"false\"\r\n (click)=\"ReportViewer.commands.print.exec()\">\r\n <fa-icon [icon]=\"getFontAwesome('print')\"></fa-icon>\r\n <div style=\"padding-right: 5px;\"></div>\r\n <span class=\"ion-text-capitalize\">Print</span>\r\n </ion-button>-->\r\n \r\n <tr-viewer #reportViewer1\r\n [containerStyle]=\"viewerContainerStyle\"\r\n [serviceUrl]=\"resourceURL\"\r\n [reportSource]=\"ReportSource\"\r\n [viewMode]=\"'INTERACTIVE'\"\r\n [scaleMode]=\"'SPECIFIC'\"\r\n [scale]=\"1.0\"\r\n [enableAccessibility]=\"false\"\r\n [ready]=\"ready\"\r\n [viewerToolTipOpening]=\"viewerToolTipOpening\"\r\n [exportBegin]=\"exportBeginHandler\"\r\n [exportEnd]=\"exportEndHandler\"\r\n [pageReady]=\"onPageReady\"\r\n [renderingEnd]=\"onRenderingEnd\">\r\n </tr-viewer>\r\n</div>\r\n", styles: ["#reportViewer1{height:200px}#reportViewer1 .k-splitter .k-scrollable{overflow:hidden}.k-pdf-export,.k-pdf-export *{font-family:Arial Unicode MS}\n"], components: [{ type: i2.TelerikReportViewerComponent, selector: "tr-viewer", inputs: ["id", "serviceUrl", "reportServer", "templateUrl", "initialPageAreaImageUrl", "reportSource", "sendEmail", "parameters", "scale", "scaleMode", "viewMode", "pageMode", "persistSession", "parameterEditors", "authenticationToken", "printMode", "selector", "disabledButtonClass", "checkedButtonClass", "enableAccessibility", "searchMetadataOnDemand", "parametersAreaVisible", "documentMapVisible", "ready", "error", "parametersAreaPosition", "documentMapAreaPosition", "exportBegin", "exportEnd", "sendEmailBegin", "sendEmailEnd", "pageReady", "printBegin", "printEnd", "renderingBegin", "renderingEnd", "updateUi", "interactiveActionExecuting", "interactiveActionEnter", "interactiveActionLeave", "viewerToolTipOpening", "containerStyle"] }] });
119
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: ZreportComponent, decorators: [{
119
+ ZreportComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ZreportComponent, deps: [{ token: i1.ResourceApiService }], target: i0.ɵɵFactoryTarget.Component });
120
+ ZreportComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ZreportComponent, selector: "app-zreport", inputs: { data: "data", group: "group" }, host: { listeners: { "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "viewer", first: true, predicate: ["reportViewer1"], descendants: true }], ngImport: i0, template: "<div width=\"100%\" height=\"800px\">\r\n <!--<ion-button class=\"button-container\"\r\n fill=\"outline\"\r\n color=\"dark\"\r\n size=\"small\"\r\n strong=\"false\"\r\n [hidden]=\"false\"\r\n [disabled]=\"false\"\r\n (click)=\"ReportViewer.refreshReport()\">\r\n <div style=\"padding-right: 5px;\"></div>\r\n <span class=\"ion-text-capitalize\">Refresh</span>\r\n </ion-button>\r\n\r\n <ion-button class=\"button-container\"\r\n fill=\"outline\"\r\n color=\"dark\"\r\n size=\"small\"\r\n strong=\"false\"\r\n [hidden]=\"false\"\r\n [disabled]=\"false\"\r\n (click)=\"ReportViewer.commands.print.exec()\">\r\n <fa-icon [icon]=\"getFontAwesome('print')\"></fa-icon>\r\n <div style=\"padding-right: 5px;\"></div>\r\n <span class=\"ion-text-capitalize\">Print</span>\r\n </ion-button>-->\r\n \r\n <tr-viewer #reportViewer1\r\n [containerStyle]=\"viewerContainerStyle\"\r\n [serviceUrl]=\"resourceURL\"\r\n [reportSource]=\"ReportSource\"\r\n [viewMode]=\"'INTERACTIVE'\"\r\n [scaleMode]=\"'SPECIFIC'\"\r\n [scale]=\"1.0\"\r\n [enableAccessibility]=\"false\"\r\n [ready]=\"ready\"\r\n [viewerToolTipOpening]=\"viewerToolTipOpening\"\r\n [exportBegin]=\"exportBeginHandler\"\r\n [exportEnd]=\"exportEndHandler\"\r\n [pageReady]=\"onPageReady\"\r\n [renderingEnd]=\"onRenderingEnd\">\r\n </tr-viewer>\r\n</div>\r\n", styles: ["#reportViewer1{height:200px}#reportViewer1 .k-splitter .k-scrollable{overflow:hidden}.k-pdf-export,.k-pdf-export *{font-family:Arial Unicode MS}\n"], components: [{ type: i2.TelerikReportViewerComponent, selector: "tr-viewer", inputs: ["keepClientAlive", "id", "serviceUrl", "reportServer", "templateUrl", "initialPageAreaImageUrl", "reportSource", "sendEmail", "parameters", "scale", "scaleMode", "viewMode", "pageMode", "persistSession", "parameterEditors", "authenticationToken", "printMode", "selector", "disabledButtonClass", "checkedButtonClass", "enableAccessibility", "searchMetadataOnDemand", "parametersAreaVisible", "documentMapVisible", "ready", "error", "parametersAreaPosition", "documentMapAreaPosition", "exportBegin", "exportEnd", "sendEmailBegin", "sendEmailEnd", "pageReady", "printBegin", "printEnd", "renderingBegin", "renderingEnd", "updateUi", "interactiveActionExecuting", "interactiveActionEnter", "interactiveActionLeave", "viewerToolTipOpening", "containerStyle"] }] });
121
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ZreportComponent, decorators: [{
120
122
  type: Component,
121
123
  args: [{ selector: "app-zreport", template: "<div width=\"100%\" height=\"800px\">\r\n <!--<ion-button class=\"button-container\"\r\n fill=\"outline\"\r\n color=\"dark\"\r\n size=\"small\"\r\n strong=\"false\"\r\n [hidden]=\"false\"\r\n [disabled]=\"false\"\r\n (click)=\"ReportViewer.refreshReport()\">\r\n <div style=\"padding-right: 5px;\"></div>\r\n <span class=\"ion-text-capitalize\">Refresh</span>\r\n </ion-button>\r\n\r\n <ion-button class=\"button-container\"\r\n fill=\"outline\"\r\n color=\"dark\"\r\n size=\"small\"\r\n strong=\"false\"\r\n [hidden]=\"false\"\r\n [disabled]=\"false\"\r\n (click)=\"ReportViewer.commands.print.exec()\">\r\n <fa-icon [icon]=\"getFontAwesome('print')\"></fa-icon>\r\n <div style=\"padding-right: 5px;\"></div>\r\n <span class=\"ion-text-capitalize\">Print</span>\r\n </ion-button>-->\r\n \r\n <tr-viewer #reportViewer1\r\n [containerStyle]=\"viewerContainerStyle\"\r\n [serviceUrl]=\"resourceURL\"\r\n [reportSource]=\"ReportSource\"\r\n [viewMode]=\"'INTERACTIVE'\"\r\n [scaleMode]=\"'SPECIFIC'\"\r\n [scale]=\"1.0\"\r\n [enableAccessibility]=\"false\"\r\n [ready]=\"ready\"\r\n [viewerToolTipOpening]=\"viewerToolTipOpening\"\r\n [exportBegin]=\"exportBeginHandler\"\r\n [exportEnd]=\"exportEndHandler\"\r\n [pageReady]=\"onPageReady\"\r\n [renderingEnd]=\"onRenderingEnd\">\r\n </tr-viewer>\r\n</div>\r\n", styles: ["#reportViewer1{height:200px}#reportViewer1 .k-splitter .k-scrollable{overflow:hidden}.k-pdf-export,.k-pdf-export *{font-family:Arial Unicode MS}\n"] }]
122
124
  }], ctorParameters: function () { return [{ type: i1.ResourceApiService }]; }, propDecorators: { viewer: [{
@@ -130,4 +132,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImpor
130
132
  type: HostListener,
131
133
  args: ['window:resize', ['$event']]
132
134
  }] } });
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoienJlcG9ydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbWhnbG9iYWwtZHluYW1pY2Zvcm0vc3JjL2xpYi96cmVwb3J0L3pyZXBvcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvenJlcG9ydC96cmVwb3J0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFVLFNBQVMsRUFBRSxLQUFLLEVBQXFCLFlBQVksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFPcEgsMkNBQTJDO0FBQzNDLE9BQU8sRUFDK0Isb0JBQW9CLEVBQUUsZ0JBQWdCLEVBQzNFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFZekIsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQixZQUNVLGtCQUFzQztRQUF0Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBUWhELHdCQUFtQixHQUFHLElBQUksb0JBQW9CLEVBQUUsQ0FBQztRQUVqRCxVQUFLLEdBQUcsZUFBZSxDQUFDO1FBQ3hCLHlCQUFvQixHQUFHO1lBQ3JCLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLEtBQUssRUFBRSxNQUFNO1lBQ2IsTUFBTSxFQUFFLE9BQU87WUFDZixDQUFDLGFBQWEsQ0FBQyxFQUFFLGVBQWU7U0FDakMsQ0FBQztRQUVGLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ25CLGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIsOEJBQXlCLEdBQUcsS0FBSyxDQUFDO0lBbkJsQyxDQUFDO0lBcUJELFFBQVE7UUFDTixnQkFBZ0IsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMs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LGVBQWUsQ0FBQyxDQUFDO2dCQUM5RSxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDaEM7U0FDRjtJQUNILENBQUM7OzZHQTVJVSxnQkFBZ0I7aUdBQWhCLGdCQUFnQixvUUN2QjdCLG9vREEwQ0E7MkZEbkJhLGdCQUFnQjtrQkFONUIsU0FBUzsrQkFDRSxhQUFhO3lHQVd3QixNQUFNO3NCQUFwRCxTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ3BDLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBa0VOLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKiBBbmd1bGFyICoqKioqKioqKiovXHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiwgSG9zdExpc3RlbmVyLCBBZnRlclZpZXdJbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8qKioqKioqKioqIElvbmljICoqKioqKioqKiovXHJcblxyXG4vKioqKioqKioqKiBQbHVnaW4gKioqKioqKioqKi9cclxuaW1wb3J0IHsgVGVsZXJpa1JlcG9ydFZpZXdlckNvbXBvbmVudCB9IGZyb20gXCJAcHJvZ3Jlc3MvdGVsZXJpay1hbmd1bGFyLXJlcG9ydC12aWV3ZXJcIjtcclxuXHJcbi8qKioqKioqKioqIENvbXBvbmVudCAmIFNlcnZpY2UgKioqKioqKioqKi9cclxuaW1wb3J0IHtcclxuICBSZXNvdXJjZUFwaVNlcnZpY2UsIFpGaWVsZCwgWkdyb3VwLCBaQ29tcG9uZW50UHJvcGVydGllcywgWkNvbXBvbmVudEhlbHBlclxyXG59IGZyb20gXCJtbWhnbG9iYWwtemNvcmVcIjtcclxuXHJcblxyXG4vLyBpbXBvcnQgKiBhcyAkIGZyb20gJ2pxdWVyeSc7XHJcbmRlY2xhcmUgdmFyICQ6IGFueTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImFwcC16cmVwb3J0XCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi96cmVwb3J0LmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL3pyZXBvcnQuY29tcG9uZW50LnNjc3NcIl0sXHJcbiAgLy9lbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBacmVwb3J0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVzb3VyY2VBcGlTZXJ2aWNlOiBSZXNvdXJjZUFwaVNlcnZpY2VcclxuICApIHtcclxuICB9XHJcbiAgIFxyXG4gIEBWaWV3Q2hpbGQoJ3JlcG9ydFZpZXdlcjEnLCB7IHN0YXRpYzogZmFsc2UgfSkgdmlld2VyOiBUZWxlcmlrUmVwb3J0Vmlld2VyQ29tcG9uZW50O1xyXG4gIEBJbnB1dCgpIGRhdGE6IFpGaWVsZDtcclxuICBASW5wdXQoKSBncm91cDogWkdyb3VwO1xyXG5cclxuICBjb21wb25lbnRQcm9wZXJ0aWVzID0gbmV3IFpDb21wb25lbnRQcm9wZXJ0aWVzKCk7XHJcblxyXG4gIHRpdGxlID0gXCJSZXBvcnQgVmlld2VyXCI7XHJcbiAgdmlld2VyQ29udGFpbmVyU3R5bGUgPSB7XHJcbiAgICBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLFxyXG4gICAgd2lkdGg6IFwiMTAwJVwiLFxyXG4gICAgaGVpZ2h0OiBcIjgwMHB4XCIsXHJcbiAgICBbJ2ZvbnQtZmFtaWx5J106ICdtcyBzYW5zIHNlcmlmJ1xyXG4gIH07XHJcblxyXG4gIHJlc291cmNlVVJMID0gbnVsbDtcclxuICBSZXBvcnRTb3VyY2UgPSBudWxsO1xyXG4gIGlzVmlzaWJsZSA9IHRydWU7XHJcbiAgcGFyYW1Ub1Jlc2l6ZVJlcG9ydFZpZXdlciA9IGZhbHNlO1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIFpDb21wb25lbnRIZWxwZXIuc2V0Q29tcG9uZW50UHJvcGVydGllcyh0aGlzKTtcclxuICAgIFpDb21wb25lbnRIZWxwZXIucmVnaXN0ZXJDb21wb25lbnQodGhpcyk7XHJcblxyXG4gICAgdGhpcy5yZXNvdXJjZVVSTCA9IHRoaXMucmVzb3VyY2VBcGlTZXJ2aWNlLmdldFVSTCh0aGlzLmRhdGEuUmVzb3VyY2VVUkwpO1xyXG5cclxuICAgIGlmICghdGhpcy5yZXNvdXJjZVVSTCkge1xyXG4gICAgICBjb25zb2xlLmxvZyhcInJlc291cmNlVVJMIGlzIGVtcHR5LlwiKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoISF0aGlzLmRhdGEuSXNBdXRvR2VuZXJhdGVSZXBvcnQpIHtcclxuICAgICAgdGhpcy5SZXBvcnRTb3VyY2UgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgdGhpcy5kYXRhLlJlcG9ydFNvdXJjZSk7XHJcbiAgICB9IFxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgLy8gTG9jYWxpemF0aW9uLlxyXG4gICAgY29uc3QgbGFuZ3VhZ2UgPSBuYXZpZ2F0b3IubGFuZ3VhZ2U7XHJcbiAgICBsZXQgcmVzb3VyY2VzID0gJ0xvYWRpbmcuLi4nOyAvLyBEZWZhdWx0LlxyXG5cclxuICAgIHRoaXMudmlld2VyLnZpZXdlck9iamVjdC5zdHJpbmdSZXNvdXJjZXMgPSBPYmplY3QuYXNzaWduKHRoaXMudmlld2VyLnZpZXdlck9iamVjdC5zdHJpbmdSZXNvdXJjZXMsIHJlc291cmNlcyk7XHJcbiAgfVxyXG5cclxuICByZWFkeSgpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiUmVwb3J0IHJlYWR5LlwiKTtcclxuICAgIC8vaWYgKHRoaXMuZGF0YVsnaGlkZUhpc3RvcnlCYWNrJ10pIHsgJChcIltkYXRhLWNvbW1hbmQqPSd0ZWxlcmlrX1JlcG9ydFZpZXdlcl9oaXN0b3J5QmFjayddXCIpLnBhcmVudCgpLmhpZGUoKTsgfVxyXG4gICAgLy9pZiAodGhpcy5kYXRhWydoaWRlSGlzdG9yeUZvcndhcmQnXSkgeyAkKFwiW2RhdGEtY29tbWFuZCo9J3RlbGVyaWtfUmVwb3J0Vmlld2VyX2hpc3RvcnlGb3J3YXJkJ11cIikucGFyZW50KCkuaGlkZSgpOyB9XHJcbiAgICAvL2lmICh0aGlzLmRhdGFbJ2hpZGVSZWZyZXNoJ10pIHsgJChcIltkYXRhLWNvbW1hbmQqPSd0ZWxlcmlrX1JlcG9ydFZpZXdlcl9yZWZyZXNoJ11cIikucGFyZW50KCkuaGlkZSgpOyB9XHJcbiAgICAvL2lmICh0aGlzLmRhdGFbJ2hpZGVTdG9wUmVuZGVyaW5nJ10pIHsgJChcIltkYXRhLWNvbW1hbmQqPSd0ZWxlcmlrX1JlcG9ydFZpZXdlcl9zdG9wUmVuZGVyaW5nJ11cIikucGFyZW50KCkuaGlkZSgpOyB9XHJcbiAgICAvL2lmICh0aGlzLmRhdGFbJ2hpZGVHb1RvRmlyc3RQYWdlJ10pIHsgJChcIltkYXRhLWNvbW1hbmQqPSd0ZWxlcmlrX1JlcG9ydFZpZXdlcl9nb1RvRmlyc3RQYWdlJ11cIikucGFyZW50KCkuaGlkZSgpOyB9XHJcbiAgICAvL2lmICh0aGlzLmRhdGFbJ2hpZGVHb1RvUHJldlBhZ2UnXSkgeyAkKFwiW2RhdGEtY29tbWFuZCo9J3RlbGVyaWtfUmVwb3J0Vmlld2VyX2dvVG9QcmV2UGFnZSddXCIpLnBhcmVudCgpLmhpZGUoKTsgfVxyXG4gICAgLy9pZiAodGhpcy5kYXRhWydoaWRlR29Ub05leHRQYWdlJ10pIHsgJChcIltkYXRhLWNvbW1hbmQqPSd0ZWxlcmlrX1JlcG9ydFZpZXdlcl9nb1RvTmV4dFBhZ2UnXVwiKS5wYXJlbnQoKS5oaWRlKCk7IH1cclxuICAgIC8vaWYgKHRoaXMuZGF0YVsnaGlkZUdvVG9MYXN0UGFnZSddKSB7ICQoXCJbZGF0YS1jb21tYW5kKj0ndGVsZXJpa19SZXBvcnRWaWV3ZXJfZ29Ub0xhc3RQYWdlJ11cIikucGFyZW50KCkuaGlkZSgpOyB9XHJcbiAgICAvL2lmICh0aGlzLmRhdGFbJ2hpZGVUb2dnbGVQcmludFByZXZpZXcnXSkgeyAkKFwiW2RhdGEtY29tbWFuZCo9J3RlbGVyaWtfUmVwb3J0Vmlld2VyX3RvZ2dsZVByaW50UHJldmlldyddXCIpLnBhcmVudCgpLmhpZGUoKTsgfVxyXG4gICAgLy9pZiAodGhpcy5kYXRhWydoaWRlRXhwb3J0J10pIHsgJChcIltkYXRhLWNvbW1hbmQqPSd0ZWxlcmlrX1JlcG9ydFZpZXdlcl9leHBvcnQnXVwiKS5wYXJlbnQoKS5oaWRlKCk7IH1cclxuICAgIC8vaWYgKHRoaXMuZGF0YVsnaGlkZVByaW50J10pIHsgJChcIltkYXRhLWNvbW1hbmQqPSd0ZWxlcmlrX1JlcG9ydFZpZXdlcl9wcmludCddXCIpLnBhcmVudCgpLmhpZGUoKTsgfVxyXG4gICAgLy9pZiAodGhpcy5kYXRhWydoaWRlVG9nZ2xlRG9jdW1lbnRNYXAnXSkgeyAkKFwiW2RhdGEtY29tbWFuZCo9J3RlbGVyaWtfUmVwb3J0Vmlld2VyX3RvZ2dsZURvY3VtZW50TWFwJ11cIikucGFyZW50KCkuaGlkZSgpOyB9XHJcbiAgICAvL2lmICh0aGlzLmRhdGFbJ2hpZGVUb2dnbGVQYXJhbWV0ZXJzQXJlYSddKSB7ICQoXCJbZGF0YS1jb21tYW5kKj0ndGVsZXJpa19SZXBvcnRWaWV3ZXJfdG9nZ2xlUGFyYW1ldGVyc0FyZWEnXVwiKS5wYXJlbnQoKS5oaWRlKCk7IH1cclxuICAgIC8vaWYgKHRoaXMuZGF0YVsnaGlkZVpvb21JbiddKSB7ICQoXCJbZGF0YS1jb21tYW5kKj0ndGVsZXJpa19SZXBvcnRWaWV3ZXJfem9vbUluJ11cIikucGFyZW50KCkuaGlkZSgpOyB9XHJcbiAgICAvL2lmICh0aGlzLmRhdGFbJ2hpZGVab29tT3V0J10pIHsgJChcIltkYXRhLWNvbW1hbmQqPSd0ZWxlcmlrX1JlcG9ydFZpZXdlcl96b29tT3V0J11cIikucGFyZW50KCkuaGlkZSgpOyB9XHJcbiAgICAvL2lmICh0aGlzLmRhdGFbJ2hpZGVUb2dnbGVab29tTW9kZSddKSB7ICQoXCJbZGF0YS1jb21tYW5kKj0ndGVsZXJpa19SZXBvcnRWaWV3ZXJfdG9nZ2xlWm9vbU1vZGUnXVwiKS5wYXJlbnQoKS5oaWRlKCk7IH1cclxuICAgIC8vaWYgKHRoaXMuZGF0YVsnaGlkZVRvZ2dsZVNlYXJjaERpYWxvZyddKSB7ICQoXCJbZGF0YS1jb21tYW5kKj0ndGVsZXJpa19SZXBvcnRWaWV3ZXJfdG9nZ2xlU2VhcmNoRGlhbG9nJ11cIikucGFyZW50KCkuaGlkZSgpOyB9XHJcbiAgfVxyXG5cclxuICBvblBhZ2VSZWFkeShlOiBhbnksIGFyZ3M6IGFueSkge1xyXG4gICAgdGhpcy5yZXNpemVWaWV3ZXIoZSwgYXJncyk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcclxuICBvblJlc2l6ZSgpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiUmVwb3J0IHJlc2l6ZWQuXCIpO1xyXG4gIH1cclxuXHJcbiAgdmlld2VyVG9vbFRpcE9wZW5pbmcoZTogYW55LCBhcmdzOiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKCd2aWV3ZXJUb29sVGlwT3BlbmluZyAnICsgYXJncy50b29sVGlwLnRleHQpO1xyXG4gIH1cclxuXHJcbiAgZXhwb3J0QmVnaW5IYW5kbGVyKGU6IGFueSwgYXJnczogYW55KSB7XHJcbiAgICBjb25zb2xlLmxvZyhcIkV4cG9ydCBiZWdpbi5cIik7XHJcbiAgfVxyXG5cclxuICBleHBvcnRFbmRIYW5kbGVyKGU6IGFueSwgYXJnczogYW55KSB7XHJcbiAgICBjb25zb2xlLmxvZyhcIkV4cG9ydCBlbmQuXCIpO1xyXG4gIH1cclxuICAgXHJcbiAgb25SZW5kZXJpbmdFbmQoZTogYW55LCBhcmdzOiBhbnkpOiB2b2lkIHtcclxuICAgIC8vIE9jY3VycyBhZnRlciByZW5kZXJpbmcgdGhlIHJlcG9ydC5cclxuICAgIGNvbnNvbGUubG9nKFwiUmVuZGVyaW5nIGVuZGVkLlwiKTtcclxuICB9IFxyXG5cclxuICBwdWJsaWMgZ2VuZXJhdGVSZXBvcnQoKSB7XHJcbiAgICBjb25zdCBycyA9IHRoaXMuZ3JvdXBbXCJSZXBvcnRTb3VyY2VcIl07XHJcbiAgICB0aGlzLnJlc291cmNlVVJMID0gcnNbJ3VybCddO1xyXG4gICAgdGhpcy52aWV3ZXIuc2V0UmVwb3J0U291cmNlKHJzKTtcclxuICAgIHRoaXMudmlld2VyLnJlZnJlc2hSZXBvcnQoKTtcclxuICAgICBcclxuICAgICBcclxuICAgICAgdGhpcy52aWV3ZXJbJ2hlaWdodCddKDEwKTtcclxuICAgICAgdmFyIGRvY3VtZW50TWFwU3BsaXR0ZXIgPSAkKFwiLnRydi1kb2N1bWVudC1tYXAtc3BsaXR0ZXJcIikuZGF0YShcImtlbmRvU3BsaXR0ZXJcIik7XHJcbiAgICAgIGRvY3VtZW50TWFwU3BsaXR0ZXIucmVzaXplKHRydWUpO1xyXG5cclxuICAgICAgdmFyIHBhcmFtZXRlclNwbGl0dGVyID0gJChcIi50cnYtcGFyYW1ldGVycy1zcGxpdHRlclwiKS5kYXRhKFwia2VuZG9TcGxpdHRlclwiKTtcclxuICAgICAgcGFyYW1ldGVyU3BsaXR0ZXIucmVzaXplKHRydWUpO1xyXG4gIFxyXG5cclxuXHJcblxyXG4gICAgaWYgKHRoaXMuZGF0YVsnQXV0b1Jlc2l6ZSddKSB7XHJcbiAgICAgIHRoaXMucGFyYW1Ub1Jlc2l6ZVJlcG9ydFZpZXdlciA9IHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnBhcmFtVG9SZXNpemVSZXBvcnRWaWV3ZXIgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldEZvbnRBd2Vzb21lKGljb25OYW1lOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiBaQ29tcG9uZW50SGVscGVyLmdldEZvbnRBd2Vzb21lKGljb25OYW1lKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVzaXplVmlld2VyKGU/OiBhbnksIGFyZ3M/OiBhbnkpIHtcclxuICAgIC8vY29uc29sZS5sb2coXCJQYWdlIHJlYWR5LlwiKTtcclxuICAgIGlmICh0aGlzLnBhcmFtVG9SZXNpemVSZXBvcnRWaWV3ZXIpIHtcclxuICAgICAgLy9jdXJyZW50bHkgZG9lc24ndCBzZWVtIHRvIHdvcmsuIFxyXG4gICAgICBjb25zdCBwYWdlSGVpZ2h0ID0gJChcIi50cnYtcGFnZXMtYXJlYSAudHJ2LXBhZ2Utd3JhcHBlclwiKS5oZWlnaHQoKSArICQoXCIudHJ2LW5hdlwiKS5vdXRlckhlaWdodCgpICsgMjsgLy8gQ2FsY3VsYXRlIHRoZSByZXBvcnQgcGFnZSBoZWlnaHRcclxuICAgICAgY29uc3Qgdmlld2VyID0gJChcIiNyZXBvcnRWaWV3ZXIxXCIpO1xyXG4gICAgICBjb25zdCB2aWV3ZXJIZWlnaHQgPSB2aWV3ZXIuaGVpZ2h0KCk7XHJcblxyXG4gICAgICBpZiAodmlld2VySGVpZ2h0ICE9PSBwYWdlSGVpZ2h0KSB7XHJcbiAgICAgICAgdmlld2VyLmhlaWdodChwYWdlSGVpZ2h0KTtcclxuICAgICAgICBjb25zdCBkb2N1bWVudE1hcFNwbGl0dGVyID0gJChcIi50cnYtZG9jdW1lbnQtbWFwLXNwbGl0dGVyXCIpLmRhdGEoXCJrZW5kb1NwbGl0dGVyXCIpO1xyXG4gICAgICAgIGRvY3VtZW50TWFwU3BsaXR0ZXIucmVzaXplKHRydWUpO1xyXG5cclxuICAgICAgICBjb25zdCBwYXJhbWV0ZXJTcGxpdHRlciA9ICQoXCIudHJ2LXBhcmFtZXRlcnMtc3BsaXR0ZXJcIikuZGF0YShcImtlbmRvU3BsaXR0ZXJcIik7XHJcbiAgICAgICAgcGFyYW1ldGVyU3BsaXR0ZXIucmVzaXplKHRydWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiODAwcHhcIj5cclxuICA8IS0tPGlvbi1idXR0b24gY2xhc3M9XCJidXR0b24tY29udGFpbmVyXCJcclxuICAgICAgICAgICAgICBmaWxsPVwib3V0bGluZVwiXHJcbiAgICAgICAgICAgICAgY29sb3I9XCJkYXJrXCJcclxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICAgICAgICAgIHN0cm9uZz1cImZhbHNlXCJcclxuICAgICAgICAgICAgICBbaGlkZGVuXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJSZXBvcnRWaWV3ZXIucmVmcmVzaFJlcG9ydCgpXCI+XHJcbiAgICA8ZGl2IHN0eWxlPVwicGFkZGluZy1yaWdodDogNXB4O1wiPjwvZGl2PlxyXG4gICAgPHNwYW4gY2xhc3M9XCJpb24tdGV4dC1jYXBpdGFsaXplXCI+UmVmcmVzaDwvc3Bhbj5cclxuICA8L2lvbi1idXR0b24+XHJcblxyXG4gIDxpb24tYnV0dG9uIGNsYXNzPVwiYnV0dG9uLWNvbnRhaW5lclwiXHJcbiAgICAgICAgICAgICAgZmlsbD1cIm91dGxpbmVcIlxyXG4gICAgICAgICAgICAgIGNvbG9yPVwiZGFya1wiXHJcbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgICBzdHJvbmc9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgW2hpZGRlbl09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiUmVwb3J0Vmlld2VyLmNvbW1hbmRzLnByaW50LmV4ZWMoKVwiPlxyXG4gICAgPGZhLWljb24gW2ljb25dPVwiZ2V0Rm9udEF3ZXNvbWUoJ3ByaW50JylcIj48L2ZhLWljb24+XHJcbiAgICA8ZGl2IHN0eWxlPVwicGFkZGluZy1yaWdodDogNXB4O1wiPjwvZGl2PlxyXG4gICAgPHNwYW4gY2xhc3M9XCJpb24tdGV4dC1jYXBpdGFsaXplXCI+UHJpbnQ8L3NwYW4+XHJcbiAgPC9pb24tYnV0dG9uPi0tPlxyXG4gXHJcbiAgPHRyLXZpZXdlciAjcmVwb3J0Vmlld2VyMVxyXG4gICAgICAgICAgICAgW2NvbnRhaW5lclN0eWxlXT1cInZpZXdlckNvbnRhaW5lclN0eWxlXCJcclxuICAgICAgICAgICAgIFtzZXJ2aWNlVXJsXT1cInJlc291cmNlVVJMXCJcclxuICAgICAgICAgICAgIFtyZXBvcnRTb3VyY2VdPVwiUmVwb3J0U291cmNlXCJcclxuICAgICAgICAgICAgIFt2aWV3TW9kZV09XCInSU5URVJBQ1RJVkUnXCJcclxuICAgICAgICAgICAgIFtzY2FsZU1vZGVdPVwiJ1NQRUNJRklDJ1wiXHJcbiAgICAgICAgICAgICBbc2NhbGVdPVwiMS4wXCJcclxuICAgICAgICAgICAgIFtlbmFibGVBY2Nlc3NpYmlsaXR5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgIFtyZWFkeV09XCJyZWFkeVwiXHJcbiAgICAgICAgICAgICBbdmlld2VyVG9vbFRpcE9wZW5pbmddPVwidmlld2VyVG9vbFRpcE9wZW5pbmdcIlxyXG4gICAgICAgICAgICAgW2V4cG9ydEJlZ2luXT1cImV4cG9ydEJlZ2luSGFuZGxlclwiXHJcbiAgICAgICAgICAgICBbZXhwb3J0RW5kXT1cImV4cG9ydEVuZEhhbmRsZXJcIlxyXG4gICAgICAgICAgICAgW3BhZ2VSZWFkeV09XCJvblBhZ2VSZWFkeVwiXHJcbiAgICAgICAgICAgICBbcmVuZGVyaW5nRW5kXT1cIm9uUmVuZGVyaW5nRW5kXCI+XHJcbiAgPC90ci12aWV3ZXI+XHJcbjwvZGl2PlxyXG4iXX0=
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoienJlcG9ydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbWhnbG9iYWwtZHluYW1pY2Zvcm0vc3JjL2xpYi96cmVwb3J0L3pyZXBvcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvenJlcG9ydC96cmVwb3J0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFVLFNBQVMsRUFBRSxLQUFLLEVBQXFCLFlBQVksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFPcEgsMkNBQTJDO0FBQzNDLE9BQU8sRUFDK0Isb0JBQW9CLEVBQUUsZ0JBQWdCLEVBQzNFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFZekIsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQixZQUNVLGtCQUFzQztRQUF0Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBUWhELHdCQUFtQixHQUFHLElBQUksb0JBQW9CLEVBQUUsQ0FBQztRQUVqRCxVQUFLLEdBQUcsZUFBZSxDQUFDO1FBQ3hCLHlCQUFvQixHQUFHO1lBQ3JCLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLEtBQUssRUFBRSxNQUFNO1lBQ2IsTUFBTSxFQUFFLE9BQU87WUFDZixDQUFDLGFBQWEsQ0FBQyxFQUFFLGVBQWU7U0FDakMsQ0FBQztRQUVGLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ25CLGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIsOEJBQXlCLEdBQUcsS0FBSyxDQUFDO0lBbkJsQyxDQUFDO0lBcUJELFFBQVE7UUFDTixnQkFBZ0IsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV6QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUV6RSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNyQixPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQUM7U0FDdEM7UUFFRCxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQ3BDLElBQUksQ0FBQyxZQUFZLEdBQUcsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQzNGO0lBQ0gsQ0FBQztJQUVELGVBQWU7UUFDYixnQkFBZ0I7UUFDaEIsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQztRQUNwQyxJQUFJLFNBQVMsR0FBRyxZQUFZLENBQUMsQ0FBQyxXQUFXO1FBRXpDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNoSCxDQUFDO0lBRUQsS0FBSztRQUNILE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDN0IsZ0hBQWdIO1FBQ2hILHNIQUFzSDtRQUN0SCx3R0FBd0c7UUFDeEcsb0hBQW9IO1FBQ3BILG9IQUFvSDtRQUNwSCxrSEFBa0g7UUFDbEgsa0hBQWtIO1FBQ2xILGtIQUFrSDtRQUNsSCw4SEFBOEg7UUFDOUgsc0dBQXNHO1FBQ3RHLG9HQUFvRztRQUNwRyxDQUFDLENBQUMsMERBQTBELENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM5RSxDQUFDLENBQUMsNkRBQTZELENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNqRixzR0FBc0c7UUFDdEcsd0dBQXdHO1FBQ3hHLHNIQUFzSDtRQUN0SCxDQUFDLENBQUMsMkRBQTJELENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNqRixDQUFDO0lBRUQsV0FBVyxDQUFDLENBQU0sRUFBRSxJQUFTO1FBQzNCLG9DQUFvQztRQUNwQyw2QkFBNkI7SUFDL0IsQ0FBQztJQUdELFFBQVE7UUFDTixPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELG9CQUFvQixDQUFDLENBQU0sRUFBRSxJQUFTO1FBQ3BDLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsQ0FBTSxFQUFFLElBQVM7UUFDbEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsQ0FBTSxFQUFFLElBQVM7UUFDaEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsY0FBYyxDQUFDLENBQU0sRUFBRSxJQUFTO1FBQzlCLHFDQUFxQztRQUNyQyxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVNLGNBQWM7UUFDbkIsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRzVCLDhCQUE4QjtRQUM5Qiw4QkFBOEI7UUFDOUIsR0FBRztRQUVILGtGQUFrRjtRQUNsRixtQ0FBbUM7UUFFbkMsOEVBQThFO1FBQzlFLGlDQUFpQztRQUdqQyxnQ0FBZ0M7UUFDaEMsMENBQTBDO1FBQzFDLFVBQVU7UUFDViwyQ0FBMkM7UUFDM0MsR0FBRztJQUNMLENBQUM7SUFFRCxjQUFjLENBQUMsUUFBZ0I7UUFDN0IsT0FBTyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVPLFlBQVksQ0FBQyxDQUFPLEVBQUUsSUFBVTtRQUN0Qyw2QkFBNkI7UUFDN0IsSUFBSSxJQUFJLENBQUMseUJBQXlCLEVBQUU7WUFDbEMsa0NBQWtDO1lBQ2xDLE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxtQ0FBbUM7WUFDekksTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDbkMsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBRXJDLElBQUksWUFBWSxLQUFLLFVBQVUsRUFBRTtnQkFDL0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDMUIsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7Z0JBQ2xGLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFFakMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7Z0JBQzlFLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNoQztTQUNGO0lBQ0gsQ0FBQzs7OEdBOUlVLGdCQUFnQjtrR0FBaEIsZ0JBQWdCLG9RQ3ZCN0Isb29EQTBDQTs0RkRuQmEsZ0JBQWdCO2tCQU41QixTQUFTOytCQUNFLGFBQWE7eUdBV3dCLE1BQU07c0JBQXBELFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDcEMsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFtRU4sUUFBUTtzQkFEUCxZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqIEFuZ3VsYXIgKioqKioqKioqKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBIb3N0TGlzdGVuZXIsIEFmdGVyVmlld0luaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLyoqKioqKioqKiogSW9uaWMgKioqKioqKioqKi9cclxuXHJcbi8qKioqKioqKioqIFBsdWdpbiAqKioqKioqKioqLyBcclxuaW1wb3J0IHsgVGVsZXJpa1JlcG9ydFZpZXdlckNvbXBvbmVudCB9IGZyb20gXCJAcHJvZ3Jlc3MvdGVsZXJpay1hbmd1bGFyLXJlcG9ydC12aWV3ZXJcIjtcclxuXHJcbi8qKioqKioqKioqIENvbXBvbmVudCAmIFNlcnZpY2UgKioqKioqKioqKi9cclxuaW1wb3J0IHtcclxuICBSZXNvdXJjZUFwaVNlcnZpY2UsIFpGaWVsZCwgWkdyb3VwLCBaQ29tcG9uZW50UHJvcGVydGllcywgWkNvbXBvbmVudEhlbHBlclxyXG59IGZyb20gXCJtbWhnbG9iYWwtemNvcmVcIjtcclxuXHJcblxyXG4vLyBpbXBvcnQgKiBhcyAkIGZyb20gJ2pxdWVyeSc7XHJcbmRlY2xhcmUgdmFyICQ6IGFueTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImFwcC16cmVwb3J0XCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi96cmVwb3J0LmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL3pyZXBvcnQuY29tcG9uZW50LnNjc3NcIl0sXHJcbiAgLy9lbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBacmVwb3J0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVzb3VyY2VBcGlTZXJ2aWNlOiBSZXNvdXJjZUFwaVNlcnZpY2VcclxuICApIHtcclxuICB9XHJcbiAgIFxyXG4gIEBWaWV3Q2hpbGQoJ3JlcG9ydFZpZXdlcjEnLCB7IHN0YXRpYzogZmFsc2UgfSkgdmlld2VyOiBUZWxlcmlrUmVwb3J0Vmlld2VyQ29tcG9uZW50O1xyXG4gIEBJbnB1dCgpIGRhdGE6IFpGaWVsZDtcclxuICBASW5wdXQoKSBncm91cDogWkdyb3VwO1xyXG5cclxuICBjb21wb25lbnRQcm9wZXJ0aWVzID0gbmV3IFpDb21wb25lbnRQcm9wZXJ0aWVzKCk7XHJcblxyXG4gIHRpdGxlID0gXCJSZXBvcnQgVmlld2VyXCI7XHJcbiAgdmlld2VyQ29udGFpbmVyU3R5bGUgPSB7XHJcbiAgICBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLFxyXG4gICAgd2lkdGg6IFwiMTAwJVwiLFxyXG4gICAgaGVpZ2h0OiBcIjgwMHB4XCIsXHJcbiAgICBbJ2ZvbnQtZmFtaWx5J106ICdtcyBzYW5zIHNlcmlmJ1xyXG4gIH07XHJcblxyXG4gIHJlc291cmNlVVJMID0gbnVsbDtcclxuICBSZXBvcnRTb3VyY2UgPSBudWxsO1xyXG4gIGlzVmlzaWJsZSA9IHRydWU7XHJcbiAgcGFyYW1Ub1Jlc2l6ZVJlcG9ydFZpZXdlciA9IGZhbHNlO1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIFpDb21wb25lbnRIZWxwZXIuc2V0Q29tcG9uZW50UHJvcGVydGllcyh0aGlzKTtcclxuICAgIFpDb21wb25lbnRIZWxwZXIucmVnaXN0ZXJDb21wb25lbnQodGhpcyk7XHJcblxyXG4gICAgdGhpcy5yZXNvdXJjZVVSTCA9IHRoaXMucmVzb3VyY2VBcGlTZXJ2aWNlLmdldFVSTCh0aGlzLmRhdGEuUmVzb3VyY2VVUkwpO1xyXG5cclxuICAgIGlmICghdGhpcy5yZXNvdXJjZVVSTCkge1xyXG4gICAgICBjb25zb2xlLmxvZyhcInJlc291cmNlVVJMIGlzIGVtcHR5LlwiKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoISF0aGlzLmRhdGEuSXNBdXRvR2VuZXJhdGVSZXBvcnQpIHtcclxuICAgICAgdGhpcy5SZXBvcnRTb3VyY2UgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgdGhpcy5kYXRhLlJlcG9ydFNvdXJjZSk7XHJcbiAgICB9IFxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgLy8gTG9jYWxpemF0aW9uLlxyXG4gICAgY29uc3QgbGFuZ3VhZ2UgPSBuYXZpZ2F0b3IubGFuZ3VhZ2U7XHJcbiAgICBsZXQgcmVzb3VyY2VzID0gJ0xvYWRpbmcuLi4nOyAvLyBEZWZhdWx0LlxyXG5cclxuICAgIHRoaXMudmlld2VyLnZpZXdlck9iamVjdC5zdHJpbmdSZXNvdXJjZXMgPSBPYmplY3QuYXNzaWduKHRoaXMudmlld2VyLnZpZXdlck9iamVjdC5zdHJpbmdSZXNvdXJjZXMsIHJlc291cmNlcyk7XHJcbiAgfVxyXG5cclxuICByZWFkeSgpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiUmVwb3J0IHJlYWR5LlwiKTtcclxuICAgIC8vaWYgKHRoaXMuZGF0YVsnaGlkZUhpc3RvcnlCYWNrJ10pIHsgJChcIltkYXRhLWNvbW1hbmQqPSd0ZWxlcmlrX1JlcG9ydFZpZXdlcl9oaXN0b3J5QmFjayddXCIpLnBhcmVudCgpLmhpZGUoKTsgfVxyXG4gICAgLy9pZiAodGhpcy5kYXRhWydoaWRlSGlzdG9yeUZvcndhcmQnXSkgeyAkKFwiW2RhdGEtY29tbWFuZCo9J3RlbGVyaWtfUmVwb3J0Vmlld2VyX2hpc3RvcnlGb3J3YXJkJ11cIikucGFyZW50KCkuaGlkZSgpOyB9XHJcbiAgICAvL2lmICh0aGlzLmRhdGFbJ2hpZGVSZWZyZXNoJ10pIHsgJChcIltkYXRhLWNvbW1hbmQqPSd0ZWxlcmlrX1JlcG9ydFZpZXdlcl9yZWZyZXNoJ11cIikucGFyZW50KCkuaGlkZSgpOyB9XHJcbiAgICAvL2lmICh0aGlzLmRhdGFbJ2hpZGVTdG9wUmVuZGVyaW5nJ10pIHsgJChcIltkYXRhLWNvbW1hbmQqPSd0ZWxlcmlrX1JlcG9ydFZpZXdlcl9zdG9wUmVuZGVyaW5nJ11cIikucGFyZW50KCkuaGlkZSgpOyB9XHJcbiAgICAvL2lmICh0aGlzLmRhdGFbJ2hpZGVHb1RvRmlyc3RQYWdlJ10pIHsgJChcIltkYXRhLWNvbW1hbmQqPSd0ZWxlcmlrX1JlcG9ydFZpZXdlcl9nb1RvRmlyc3RQYWdlJ11cIikucGFyZW50KCkuaGlkZSgpOyB9XHJcbiAgICAvL2lmICh0aGlzLmRhdGFbJ2hpZGVHb1RvUHJldlBhZ2UnXSkgeyAkKFwiW2RhdGEtY29tbWFuZCo9J3RlbGVyaWtfUmVwb3J0Vmlld2VyX2dvVG9QcmV2UGFnZSddXCIpLnBhcmVudCgpLmhpZGUoKTsgfVxyXG4gICAgLy9pZiAodGhpcy5kYXRhWydoaWRlR29Ub05leHRQYWdlJ10pIHsgJChcIltkYXRhLWNvbW1hbmQqPSd0ZWxlcmlrX1JlcG9ydFZpZXdlcl9nb1RvTmV4dFBhZ2UnXVwiKS5wYXJlbnQoKS5oaWRlKCk7IH1cclxuICAgIC8vaWYgKHRoaXMuZGF0YVsnaGlkZUdvVG9MYXN0UGFnZSddKSB7ICQoXCJbZGF0YS1jb21tYW5kKj0ndGVsZXJpa19SZXBvcnRWaWV3ZXJfZ29Ub0xhc3RQYWdlJ11cIikucGFyZW50KCkuaGlkZSgpOyB9XHJcbiAgICAvL2lmICh0aGlzLmRhdGFbJ2hpZGVUb2dnbGVQcmludFByZXZpZXcnXSkgeyAkKFwiW2RhdGEtY29tbWFuZCo9J3RlbGVyaWtfUmVwb3J0Vmlld2VyX3RvZ2dsZVByaW50UHJldmlldyddXCIpLnBhcmVudCgpLmhpZGUoKTsgfVxyXG4gICAgLy9pZiAodGhpcy5kYXRhWydoaWRlRXhwb3J0J10pIHsgJChcIltkYXRhLWNvbW1hbmQqPSd0ZWxlcmlrX1JlcG9ydFZpZXdlcl9leHBvcnQnXVwiKS5wYXJlbnQoKS5oaWRlKCk7IH1cclxuICAgIC8vaWYgKHRoaXMuZGF0YVsnaGlkZVByaW50J10pIHsgJChcIltkYXRhLWNvbW1hbmQqPSd0ZWxlcmlrX1JlcG9ydFZpZXdlcl9wcmludCddXCIpLnBhcmVudCgpLmhpZGUoKTsgfVxyXG4gICAgJChcIltkYXRhLWNvbW1hbmQqPSd0ZWxlcmlrX1JlcG9ydFZpZXdlcl90b2dnbGVEb2N1bWVudE1hcCddXCIpLnBhcmVudCgpLmhpZGUoKTtcclxuICAgICQoXCJbZGF0YS1jb21tYW5kKj0ndGVsZXJpa19SZXBvcnRWaWV3ZXJfdG9nZ2xlUGFyYW1ldGVyc0FyZWEnXVwiKS5wYXJlbnQoKS5oaWRlKCk7XHJcbiAgICAvL2lmICh0aGlzLmRhdGFbJ2hpZGVab29tSW4nXSkgeyAkKFwiW2RhdGEtY29tbWFuZCo9J3RlbGVyaWtfUmVwb3J0Vmlld2VyX3pvb21JbiddXCIpLnBhcmVudCgpLmhpZGUoKTsgfVxyXG4gICAgLy9pZiAodGhpcy5kYXRhWydoaWRlWm9vbU91dCddKSB7ICQoXCJbZGF0YS1jb21tYW5kKj0ndGVsZXJpa19SZXBvcnRWaWV3ZXJfem9vbU91dCddXCIpLnBhcmVudCgpLmhpZGUoKTsgfVxyXG4gICAgLy9pZiAodGhpcy5kYXRhWydoaWRlVG9nZ2xlWm9vbU1vZGUnXSkgeyAkKFwiW2RhdGEtY29tbWFuZCo9J3RlbGVyaWtfUmVwb3J0Vmlld2VyX3RvZ2dsZVpvb21Nb2RlJ11cIikucGFyZW50KCkuaGlkZSgpOyB9XHJcbiAgICAkKFwiW2RhdGEtY29tbWFuZCo9J3RlbGVyaWtfUmVwb3J0Vmlld2VyX3RvZ2dsZVNlYXJjaERpYWxvZyddXCIpLnBhcmVudCgpLmhpZGUoKTtcclxuICB9XHJcblxyXG4gIG9uUGFnZVJlYWR5KGU6IGFueSwgYXJnczogYW55KSB7XHJcbiAgICAvLyBkb2VzbnQgc2VlbSB0byB3b3JrIGluIGFuZ3VsYXIgMTNcclxuICAgIC8vdGhpcy5yZXNpemVWaWV3ZXIoZSwgYXJncyk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcclxuICBvblJlc2l6ZSgpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiUmVwb3J0IHJlc2l6ZWQuXCIpO1xyXG4gIH1cclxuXHJcbiAgdmlld2VyVG9vbFRpcE9wZW5pbmcoZTogYW55LCBhcmdzOiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKCd2aWV3ZXJUb29sVGlwT3BlbmluZyAnICsgYXJncy50b29sVGlwLnRleHQpO1xyXG4gIH1cclxuXHJcbiAgZXhwb3J0QmVnaW5IYW5kbGVyKGU6IGFueSwgYXJnczogYW55KSB7XHJcbiAgICBjb25zb2xlLmxvZyhcIkV4cG9ydCBiZWdpbi5cIik7XHJcbiAgfVxyXG5cclxuICBleHBvcnRFbmRIYW5kbGVyKGU6IGFueSwgYXJnczogYW55KSB7XHJcbiAgICBjb25zb2xlLmxvZyhcIkV4cG9ydCBlbmQuXCIpO1xyXG4gIH1cclxuICAgXHJcbiAgb25SZW5kZXJpbmdFbmQoZTogYW55LCBhcmdzOiBhbnkpOiB2b2lkIHtcclxuICAgIC8vIE9jY3VycyBhZnRlciByZW5kZXJpbmcgdGhlIHJlcG9ydC5cclxuICAgIGNvbnNvbGUubG9nKFwiUmVuZGVyaW5nIGVuZGVkLlwiKTtcclxuICB9IFxyXG5cclxuICBwdWJsaWMgZ2VuZXJhdGVSZXBvcnQoKSB7XHJcbiAgICBjb25zdCBycyA9IHRoaXMuZ3JvdXBbXCJSZXBvcnRTb3VyY2VcIl07XHJcbiAgICB0aGlzLnJlc291cmNlVVJMID0gcnNbJ3VybCddO1xyXG4gICAgdGhpcy52aWV3ZXIuc2V0UmVwb3J0U291cmNlKHJzKTtcclxuICAgIHRoaXMudmlld2VyLnJlZnJlc2hSZXBvcnQoKTtcclxuXHJcblxyXG4gICAgLy9pZiAodGhpcy52aWV3ZXJbJ2hlaWdodCddKSB7XHJcbiAgICAvLyAgdGhpcy52aWV3ZXJbJ2hlaWdodCddKDEwKTtcclxuICAgIC8vfVxyXG5cclxuICAgIC8vdmFyIGRvY3VtZW50TWFwU3BsaXR0ZXIgPSAkKFwiLnRydi1kb2N1bWVudC1tYXAtc3BsaXR0ZXJcIikuZGF0YShcImtlbmRvU3BsaXR0ZXJcIik7XHJcbiAgICAvL2RvY3VtZW50TWFwU3BsaXR0ZXIucmVzaXplKHRydWUpO1xyXG5cclxuICAgIC8vdmFyIHBhcmFtZXRlclNwbGl0dGVyID0gJChcIi50cnYtcGFyYW1ldGVycy1zcGxpdHRlclwiKS5kYXRhKFwia2VuZG9TcGxpdHRlclwiKTtcclxuICAgIC8vcGFyYW1ldGVyU3BsaXR0ZXIucmVzaXplKHRydWUpO1xyXG4gICAgXHJcblxyXG4gICAgLy9pZiAodGhpcy5kYXRhWydBdXRvUmVzaXplJ10pIHtcclxuICAgIC8vICB0aGlzLnBhcmFtVG9SZXNpemVSZXBvcnRWaWV3ZXIgPSB0cnVlO1xyXG4gICAgLy99IGVsc2Uge1xyXG4gICAgLy8gIHRoaXMucGFyYW1Ub1Jlc2l6ZVJlcG9ydFZpZXdlciA9IGZhbHNlO1xyXG4gICAgLy99XHJcbiAgfVxyXG5cclxuICBnZXRGb250QXdlc29tZShpY29uTmFtZTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gWkNvbXBvbmVudEhlbHBlci5nZXRGb250QXdlc29tZShpY29uTmFtZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlc2l6ZVZpZXdlcihlPzogYW55LCBhcmdzPzogYW55KSB7XHJcbiAgICAvL2NvbnNvbGUubG9nKFwiUGFnZSByZWFkeS5cIik7XHJcbiAgICBpZiAodGhpcy5wYXJhbVRvUmVzaXplUmVwb3J0Vmlld2VyKSB7XHJcbiAgICAgIC8vY3VycmVudGx5IGRvZXNuJ3Qgc2VlbSB0byB3b3JrLiBcclxuICAgICAgY29uc3QgcGFnZUhlaWdodCA9ICQoXCIudHJ2LXBhZ2VzLWFyZWEgLnRydi1wYWdlLXdyYXBwZXJcIikuaGVpZ2h0KCkgKyAkKFwiLnRydi1uYXZcIikub3V0ZXJIZWlnaHQoKSArIDI7IC8vIENhbGN1bGF0ZSB0aGUgcmVwb3J0IHBhZ2UgaGVpZ2h0XHJcbiAgICAgIGNvbnN0IHZpZXdlciA9ICQoXCIjcmVwb3J0Vmlld2VyMVwiKTtcclxuICAgICAgY29uc3Qgdmlld2VySGVpZ2h0ID0gdmlld2VyLmhlaWdodCgpO1xyXG5cclxuICAgICAgaWYgKHZpZXdlckhlaWdodCAhPT0gcGFnZUhlaWdodCkge1xyXG4gICAgICAgIHZpZXdlci5oZWlnaHQocGFnZUhlaWdodCk7XHJcbiAgICAgICAgY29uc3QgZG9jdW1lbnRNYXBTcGxpdHRlciA9ICQoXCIudHJ2LWRvY3VtZW50LW1hcC1zcGxpdHRlclwiKS5kYXRhKFwia2VuZG9TcGxpdHRlclwiKTtcclxuICAgICAgICBkb2N1bWVudE1hcFNwbGl0dGVyLnJlc2l6ZSh0cnVlKTtcclxuXHJcbiAgICAgICAgY29uc3QgcGFyYW1ldGVyU3BsaXR0ZXIgPSAkKFwiLnRydi1wYXJhbWV0ZXJzLXNwbGl0dGVyXCIpLmRhdGEoXCJrZW5kb1NwbGl0dGVyXCIpO1xyXG4gICAgICAgIHBhcmFtZXRlclNwbGl0dGVyLnJlc2l6ZSh0cnVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IHdpZHRoPVwiMTAwJVwiIGhlaWdodD1cIjgwMHB4XCI+XHJcbiAgPCEtLTxpb24tYnV0dG9uIGNsYXNzPVwiYnV0dG9uLWNvbnRhaW5lclwiXHJcbiAgICAgICAgICAgICAgZmlsbD1cIm91dGxpbmVcIlxyXG4gICAgICAgICAgICAgIGNvbG9yPVwiZGFya1wiXHJcbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgICBzdHJvbmc9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgW2hpZGRlbl09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiUmVwb3J0Vmlld2VyLnJlZnJlc2hSZXBvcnQoKVwiPlxyXG4gICAgPGRpdiBzdHlsZT1cInBhZGRpbmctcmlnaHQ6IDVweDtcIj48L2Rpdj5cclxuICAgIDxzcGFuIGNsYXNzPVwiaW9uLXRleHQtY2FwaXRhbGl6ZVwiPlJlZnJlc2g8L3NwYW4+XHJcbiAgPC9pb24tYnV0dG9uPlxyXG5cclxuICA8aW9uLWJ1dHRvbiBjbGFzcz1cImJ1dHRvbi1jb250YWluZXJcIlxyXG4gICAgICAgICAgICAgIGZpbGw9XCJvdXRsaW5lXCJcclxuICAgICAgICAgICAgICBjb2xvcj1cImRhcmtcIlxyXG4gICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXHJcbiAgICAgICAgICAgICAgc3Ryb25nPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgIFtoaWRkZW5dPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIlJlcG9ydFZpZXdlci5jb21tYW5kcy5wcmludC5leGVjKClcIj5cclxuICAgIDxmYS1pY29uIFtpY29uXT1cImdldEZvbnRBd2Vzb21lKCdwcmludCcpXCI+PC9mYS1pY29uPlxyXG4gICAgPGRpdiBzdHlsZT1cInBhZGRpbmctcmlnaHQ6IDVweDtcIj48L2Rpdj5cclxuICAgIDxzcGFuIGNsYXNzPVwiaW9uLXRleHQtY2FwaXRhbGl6ZVwiPlByaW50PC9zcGFuPlxyXG4gIDwvaW9uLWJ1dHRvbj4tLT5cclxuIFxyXG4gIDx0ci12aWV3ZXIgI3JlcG9ydFZpZXdlcjFcclxuICAgICAgICAgICAgIFtjb250YWluZXJTdHlsZV09XCJ2aWV3ZXJDb250YWluZXJTdHlsZVwiXHJcbiAgICAgICAgICAgICBbc2VydmljZVVybF09XCJyZXNvdXJjZVVSTFwiXHJcbiAgICAgICAgICAgICBbcmVwb3J0U291cmNlXT1cIlJlcG9ydFNvdXJjZVwiXHJcbiAgICAgICAgICAgICBbdmlld01vZGVdPVwiJ0lOVEVSQUNUSVZFJ1wiXHJcbiAgICAgICAgICAgICBbc2NhbGVNb2RlXT1cIidTUEVDSUZJQydcIlxyXG4gICAgICAgICAgICAgW3NjYWxlXT1cIjEuMFwiXHJcbiAgICAgICAgICAgICBbZW5hYmxlQWNjZXNzaWJpbGl0eV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICBbcmVhZHldPVwicmVhZHlcIlxyXG4gICAgICAgICAgICAgW3ZpZXdlclRvb2xUaXBPcGVuaW5nXT1cInZpZXdlclRvb2xUaXBPcGVuaW5nXCJcclxuICAgICAgICAgICAgIFtleHBvcnRCZWdpbl09XCJleHBvcnRCZWdpbkhhbmRsZXJcIlxyXG4gICAgICAgICAgICAgW2V4cG9ydEVuZF09XCJleHBvcnRFbmRIYW5kbGVyXCJcclxuICAgICAgICAgICAgIFtwYWdlUmVhZHldPVwib25QYWdlUmVhZHlcIlxyXG4gICAgICAgICAgICAgW3JlbmRlcmluZ0VuZF09XCJvblJlbmRlcmluZ0VuZFwiPlxyXG4gIDwvdHItdmlld2VyPlxyXG48L2Rpdj5cclxuIl19
@@ -250,9 +250,9 @@ export class ZschedulerComponent {
250
250
  }
251
251
  }
252
252
  }
253
- ZschedulerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: ZschedulerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.StorageSessionService }, { token: i1.AuthService }], target: i0.ɵɵFactoryTarget.Component });
254
- ZschedulerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: ZschedulerComponent, selector: "app-zscheduler", inputs: { data: "data", group: "group", form: "form", ngStyle: "ngStyle" }, ngImport: i0, template: "<ion-item [formGroup]=\"form\" *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\">\r\n <ion-label [attr.for]=\"data.Value\" *ngIf=\"data.ShowLabel\" position=\"stacked\">\r\n {{data.Label}} <ion-text *ngIf=\"(!!componentProperties.isRequiredField ? group[componentProperties.isRequiredField] : componentProperties.isRequired)\" color=\"danger\">*</ion-text>\r\n </ion-label>\r\n <kendo-scheduler *ngIf=\"!isLoading\" [kendoSchedulerBinding]=\"events\" [selectedDate]=\"selectedDate\" (dateChange)=\"onDateChange($event)\"\r\n [selectedViewIndex]=\"selectedViewIndex\" [eventStyles]=\"getEventStyles\" [slotClass]=\"getSlotClass\" \r\n (slotDblClick)=\"onSlotDblClick($event)\" (eventDblClick)=\"onEventDblClick($event)\" scrollTime=\"08:00\"\r\n [style.height]=\"(!!data.Height ? [data.Height] : '600px')\">\r\n <!-- [style.font-size]=\"(!!data.FontSize ? [data.FontSize] : '12px')\"> -->\r\n \r\n <!--Note: line-height same with [eventHeight]-->\r\n <ng-template kendoSchedulerEventTemplate let-event>\r\n <span style=\"margin-left: -5px;line-height: 25px;\">{{ event.title }}</span>\r\n </ng-template>\r\n\r\n <ng-template kendoSchedulerToolbarTemplate let-selectedDate=\"selectedDate\">\r\n <zschedulertoolbar [local]=\"local\" [selectedDate]=\"selectedDate\">\r\n </zschedulertoolbar>\r\n <ul kendoSchedulerToolbarViewSelector></ul>\r\n </ng-template>\r\n\r\n <ng-template kendoSchedulerAllDaySlotTemplate let-date=\"date\">\r\n <strong>{{ date | kendoDate: 'dd-MMM-yyyy' }}</strong>\r\n </ng-template>\r\n <ng-template kendoSchedulerDateHeaderTemplate let-date=\"date\">\r\n <strong>{{ date | kendoDate: \"ccc\" }}</strong>\r\n </ng-template>\r\n\r\n \r\n <!-- <kendo-scheduler-day-view startTime=\"08:00\">\r\n </kendo-scheduler-day-view>\r\n\r\n <kendo-scheduler-week-view startTime=\"08:00\">\r\n </kendo-scheduler-week-view> -->\r\n\r\n <kendo-scheduler-day-view>\r\n </kendo-scheduler-day-view>\r\n\r\n <kendo-scheduler-week-view>\r\n </kendo-scheduler-week-view>\r\n\r\n <kendo-scheduler-month-view [eventHeight]=\"25\"> \r\n </kendo-scheduler-month-view>\r\n\r\n <!-- <kendo-scheduler-timeline-view>\r\n </kendo-scheduler-timeline-view> -->\r\n\r\n <kendo-scheduler-agenda-view>\r\n </kendo-scheduler-agenda-view>\r\n </kendo-scheduler>\r\n\r\n</ion-item>", styles: ["ion-item{--padding-start: 0px;--inner-padding-end: 0px}\n"], components: [{ type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { type: i2.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { type: i3.SchedulerComponent, selector: "kendo-scheduler", inputs: ["editable", "selectable", "eventHeight", "columnWidth", "startTime", "endTime", "workDayStart", "workDayEnd", "slotDuration", "slotDivisions", "slotFill", "scrollTime", "currentTimeMarker", "highlightOngoingEvents", "isSlotSelected", "selectedViewIndex", "weekStart", "timezone", "events", "selectedDate", "modelFields", "min", "max", "showWorkHours", "workWeekStart", "workWeekEnd", "group", "resources", "loading", "slotClass", "eventClass", "eventStyles"], outputs: ["selectedViewIndexChange", "navigate", "dateChange", "slotClick", "slotDblClick", "create", "eventClick", "eventDblClick", "eventKeydown", "cancel", "save", "remove", "resizeStart", "resize", "resizeEnd", "dragStart", "drag", "dragEnd", "slotDragStart", "slotDrag", "slotDragEnd", "pdfExport"] }, { type: i4.ZSchedulerToolBarComponent, selector: "zschedulertoolbar", inputs: ["local", "selectedDate"] }, { type: i3.ToolbarViewSelectorComponent, selector: "[kendoSchedulerToolbarViewSelector]" }, { type: i3.DayViewComponent, selector: "kendo-scheduler-day-view", inputs: ["selectedDateFormat", "selectedShortDateFormat"] }, { type: i3.WeekViewComponent, selector: "kendo-scheduler-week-view", inputs: ["selectedDateFormat", "selectedShortDateFormat"] }, { type: i3.MonthViewComponent, selector: "kendo-scheduler-month-view", inputs: ["selectedDateFormat", "selectedShortDateFormat", "eventHeight"] }, { type: i3.AgendaViewComponent, selector: "kendo-scheduler-agenda-view", inputs: ["selectedDateFormat", "selectedShortDateFormat", "numberOfDays"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i3.ShortcutsDirective, selector: "kendo-scheduler" }, { type: i3.DataBindingDirective, selector: "[kendoSchedulerBinding]", inputs: ["kendoSchedulerBinding"] }, { type: i3.EventTemplateDirective, selector: "[kendoSchedulerEventTemplate]" }, { type: i3.ToolbarTemplateDirective, selector: "[kendoSchedulerToolbarTemplate]" }, { type: i3.AllDaySlotTemplateDirective, selector: "[kendoSchedulerAllDaySlotTemplate]" }, { type: i3.DateHeaderTemplateDirective, selector: "[kendoSchedulerDateHeaderTemplate]" }], pipes: { "kendoDate": i7.DatePipe } });
255
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: ZschedulerComponent, decorators: [{
253
+ ZschedulerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ZschedulerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.StorageSessionService }, { token: i1.AuthService }], target: i0.ɵɵFactoryTarget.Component });
254
+ ZschedulerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ZschedulerComponent, selector: "app-zscheduler", inputs: { data: "data", group: "group", form: "form", ngStyle: "ngStyle" }, ngImport: i0, template: "<ion-item [formGroup]=\"form\" *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\">\r\n <ion-label [attr.for]=\"data.Value\" *ngIf=\"data.ShowLabel\" position=\"stacked\">\r\n {{data.Label}} <ion-text *ngIf=\"(!!componentProperties.isRequiredField ? group[componentProperties.isRequiredField] : componentProperties.isRequired)\" color=\"danger\">*</ion-text>\r\n </ion-label>\r\n <kendo-scheduler *ngIf=\"!isLoading\" [kendoSchedulerBinding]=\"events\" [selectedDate]=\"selectedDate\" (dateChange)=\"onDateChange($event)\"\r\n [selectedViewIndex]=\"selectedViewIndex\" [eventStyles]=\"getEventStyles\" [slotClass]=\"getSlotClass\" \r\n (slotDblClick)=\"onSlotDblClick($event)\" (eventDblClick)=\"onEventDblClick($event)\" scrollTime=\"08:00\"\r\n [style.height]=\"(!!data.Height ? [data.Height] : '600px')\">\r\n <!-- [style.font-size]=\"(!!data.FontSize ? [data.FontSize] : '12px')\"> -->\r\n \r\n <!--Note: line-height same with [eventHeight]-->\r\n <ng-template kendoSchedulerEventTemplate let-event>\r\n <span style=\"margin-left: -5px;line-height: 25px;\">{{ event.title }}</span>\r\n </ng-template>\r\n\r\n <ng-template kendoSchedulerToolbarTemplate let-selectedDate=\"selectedDate\">\r\n <zschedulertoolbar [local]=\"local\" [selectedDate]=\"selectedDate\">\r\n </zschedulertoolbar>\r\n <ul kendoSchedulerToolbarViewSelector></ul>\r\n </ng-template>\r\n\r\n <ng-template kendoSchedulerAllDaySlotTemplate let-date=\"date\">\r\n <strong>{{ date | kendoDate: 'dd-MMM-yyyy' }}</strong>\r\n </ng-template>\r\n <ng-template kendoSchedulerDateHeaderTemplate let-date=\"date\">\r\n <strong>{{ date | kendoDate: \"ccc\" }}</strong>\r\n </ng-template>\r\n\r\n \r\n <!-- <kendo-scheduler-day-view startTime=\"08:00\">\r\n </kendo-scheduler-day-view>\r\n\r\n <kendo-scheduler-week-view startTime=\"08:00\">\r\n </kendo-scheduler-week-view> -->\r\n\r\n <kendo-scheduler-day-view>\r\n </kendo-scheduler-day-view>\r\n\r\n <kendo-scheduler-week-view>\r\n </kendo-scheduler-week-view>\r\n\r\n <kendo-scheduler-month-view [eventHeight]=\"25\"> \r\n </kendo-scheduler-month-view>\r\n\r\n <!-- <kendo-scheduler-timeline-view>\r\n </kendo-scheduler-timeline-view> -->\r\n\r\n <kendo-scheduler-agenda-view>\r\n </kendo-scheduler-agenda-view>\r\n </kendo-scheduler>\r\n\r\n</ion-item>", styles: ["ion-item{--padding-start: 0px;--inner-padding-end: 0px}\n"], components: [{ type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { type: i2.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { type: i3.SchedulerComponent, selector: "kendo-scheduler", inputs: ["editable", "selectable", "eventHeight", "columnWidth", "startTime", "endTime", "workDayStart", "workDayEnd", "slotDuration", "slotDivisions", "slotFill", "scrollTime", "currentTimeMarker", "highlightOngoingEvents", "isSlotSelected", "selectedViewIndex", "weekStart", "timezone", "events", "selectedDate", "modelFields", "min", "max", "showWorkHours", "workWeekStart", "workWeekEnd", "group", "resources", "loading", "slotClass", "eventClass", "eventStyles"], outputs: ["selectedViewIndexChange", "navigate", "dateChange", "slotClick", "slotDblClick", "create", "eventClick", "eventDblClick", "eventKeydown", "cancel", "save", "remove", "resizeStart", "resize", "resizeEnd", "dragStart", "drag", "dragEnd", "slotDragStart", "slotDrag", "slotDragEnd", "pdfExport"] }, { type: i4.ZSchedulerToolBarComponent, selector: "zschedulertoolbar", inputs: ["local", "selectedDate"] }, { type: i3.ToolbarViewSelectorComponent, selector: "[kendoSchedulerToolbarViewSelector]" }, { type: i3.DayViewComponent, selector: "kendo-scheduler-day-view", inputs: ["selectedDateFormat", "selectedShortDateFormat"] }, { type: i3.WeekViewComponent, selector: "kendo-scheduler-week-view", inputs: ["selectedDateFormat", "selectedShortDateFormat"] }, { type: i3.MonthViewComponent, selector: "kendo-scheduler-month-view", inputs: ["selectedDateFormat", "selectedShortDateFormat", "eventHeight"] }, { type: i3.AgendaViewComponent, selector: "kendo-scheduler-agenda-view", inputs: ["selectedDateFormat", "selectedShortDateFormat", "numberOfDays"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i3.ShortcutsDirective, selector: "kendo-scheduler" }, { type: i3.DataBindingDirective, selector: "[kendoSchedulerBinding]", inputs: ["kendoSchedulerBinding"] }, { type: i3.EventTemplateDirective, selector: "[kendoSchedulerEventTemplate]" }, { type: i3.ToolbarTemplateDirective, selector: "[kendoSchedulerToolbarTemplate]" }, { type: i3.AllDaySlotTemplateDirective, selector: "[kendoSchedulerAllDaySlotTemplate]" }, { type: i3.DateHeaderTemplateDirective, selector: "[kendoSchedulerDateHeaderTemplate]" }], pipes: { "kendoDate": i7.DatePipe } });
255
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ZschedulerComponent, decorators: [{
256
256
  type: Component,
257
257
  args: [{ selector: "app-zscheduler", template: "<ion-item [formGroup]=\"form\" *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\">\r\n <ion-label [attr.for]=\"data.Value\" *ngIf=\"data.ShowLabel\" position=\"stacked\">\r\n {{data.Label}} <ion-text *ngIf=\"(!!componentProperties.isRequiredField ? group[componentProperties.isRequiredField] : componentProperties.isRequired)\" color=\"danger\">*</ion-text>\r\n </ion-label>\r\n <kendo-scheduler *ngIf=\"!isLoading\" [kendoSchedulerBinding]=\"events\" [selectedDate]=\"selectedDate\" (dateChange)=\"onDateChange($event)\"\r\n [selectedViewIndex]=\"selectedViewIndex\" [eventStyles]=\"getEventStyles\" [slotClass]=\"getSlotClass\" \r\n (slotDblClick)=\"onSlotDblClick($event)\" (eventDblClick)=\"onEventDblClick($event)\" scrollTime=\"08:00\"\r\n [style.height]=\"(!!data.Height ? [data.Height] : '600px')\">\r\n <!-- [style.font-size]=\"(!!data.FontSize ? [data.FontSize] : '12px')\"> -->\r\n \r\n <!--Note: line-height same with [eventHeight]-->\r\n <ng-template kendoSchedulerEventTemplate let-event>\r\n <span style=\"margin-left: -5px;line-height: 25px;\">{{ event.title }}</span>\r\n </ng-template>\r\n\r\n <ng-template kendoSchedulerToolbarTemplate let-selectedDate=\"selectedDate\">\r\n <zschedulertoolbar [local]=\"local\" [selectedDate]=\"selectedDate\">\r\n </zschedulertoolbar>\r\n <ul kendoSchedulerToolbarViewSelector></ul>\r\n </ng-template>\r\n\r\n <ng-template kendoSchedulerAllDaySlotTemplate let-date=\"date\">\r\n <strong>{{ date | kendoDate: 'dd-MMM-yyyy' }}</strong>\r\n </ng-template>\r\n <ng-template kendoSchedulerDateHeaderTemplate let-date=\"date\">\r\n <strong>{{ date | kendoDate: \"ccc\" }}</strong>\r\n </ng-template>\r\n\r\n \r\n <!-- <kendo-scheduler-day-view startTime=\"08:00\">\r\n </kendo-scheduler-day-view>\r\n\r\n <kendo-scheduler-week-view startTime=\"08:00\">\r\n </kendo-scheduler-week-view> -->\r\n\r\n <kendo-scheduler-day-view>\r\n </kendo-scheduler-day-view>\r\n\r\n <kendo-scheduler-week-view>\r\n </kendo-scheduler-week-view>\r\n\r\n <kendo-scheduler-month-view [eventHeight]=\"25\"> \r\n </kendo-scheduler-month-view>\r\n\r\n <!-- <kendo-scheduler-timeline-view>\r\n </kendo-scheduler-timeline-view> -->\r\n\r\n <kendo-scheduler-agenda-view>\r\n </kendo-scheduler-agenda-view>\r\n </kendo-scheduler>\r\n\r\n</ion-item>", styles: ["ion-item{--padding-start: 0px;--inner-padding-end: 0px}\n"] }]
258
258
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.StorageSessionService }, { type: i1.AuthService }]; }, propDecorators: { data: [{
@@ -264,4 +264,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImpor
264
264
  }], ngStyle: [{
265
265
  type: Input
266
266
  }] } });
267
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoienNjaGVkdWxlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbWhnbG9iYWwtZHluYW1pY2Zvcm0vc3JjL2xpYi96c2NoZWR1bGVyL3pzY2hlZHVsZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvenNjaGVkdWxlci96c2NoZWR1bGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFvQyxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQ08sZ0JBQWdCLEVBQ1osb0JBQW9CLEVBQ3JDLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBUXZELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7O0FBTzdDLE1BQU0sT0FBTyxtQkFBbUI7SUFrQjlCLHdDQUF3QztJQUN4QyxjQUFjO0lBQ2Qsd0JBQXdCO0lBQ3hCLGdDQUFnQztJQUNoQyx1Q0FBdUM7SUFDdkMsdUJBQXVCO0lBQ3ZCLG1CQUFtQjtJQUNuQixtQ0FBbUM7SUFDbkMsNkJBQTZCO0lBQzdCLHlDQUF5QztJQUN6QyxxQ0FBcUM7SUFDckMsbURBQW1EO0lBQ25ELEtBQUs7SUFFTCxZQUNVLGNBQWlDLEVBQ2pDLGNBQXFDLEVBQ3JDLFdBQXdCO1FBRnhCLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUNqQyxtQkFBYyxHQUFkLGNBQWMsQ0FBdUI7UUFDckMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUE1QmxDLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIsV0FBTSxHQUFVLEVBQUUsQ0FBQztR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b250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIEFmdGVyVmlld0luaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1xyXG4gIFpDb21wb25lbnQsIFpDb21wb25lbnRIZWxwZXIsIFpDb21wb25lbnRPdXRwdXRFdmVudCxcclxuICBaR3JvdXAsIFpGaWVsZCwgWkNvbXBvbmVudFByb3BlcnRpZXMsIFN0b3JhZ2VTZXNzaW9uU2VydmljZSwgQXV0aFNlcnZpY2VcclxufSBmcm9tIFwibW1oZ2xvYmFsLXpjb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQge1xyXG4gIERhdGVDaGFuZ2VFdmVudCxcclxuICBTbG90Q2xpY2tFdmVudCxcclxuICBFdmVudENsaWNrRXZlbnQsXHJcbiAgRXZlbnRTdHlsZUFyZ3MsXHJcbiAgU2xvdENsYXNzQXJnc1xyXG59IGZyb20gXCJAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1zY2hlZHVsZXJcIjtcclxuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVsYXksIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJhcHAtenNjaGVkdWxlclwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4venNjaGVkdWxlci5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi96c2NoZWR1bGVyLmNvbXBvbmVudC5zY3NzXCJdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBac2NoZWR1bGVyQ29tcG9uZW50IGltcGxlbWVudHMgWkNvbXBvbmVudCwgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuICBASW5wdXQoKSBkYXRhOiBaRmllbGQ7XHJcbiAgQElucHV0KCkgZ3JvdXA6IFpHcm91cDtcclxuICBASW5wdXQoKSBmb3JtOiBGb3JtR3JvdXA7XHJcbiAgQElucHV0KCkgbmdTdHlsZTogeyBba2xhc3M6IHN0cmluZ106IGFueTsgfVxyXG5cclxuXHJcbiAgaXNMb2FkaW5nID0gdHJ1ZTtcclxuICBldmVudHM6IGFueVtdID0gW107XHJcbiAgc2VsZWN0ZWREYXRlID0gbmV3IERhdGUoKTtcclxuICBsb2NhbCA9IHtcclxuICAgIGluUHJvZ3Jlc3M6IGZhbHNlLFxyXG4gICAgY3RybFNjb3BlOiBudWxsXHJcbiAgfTtcclxuICAvLyBzZWxlY3RlZERhdGU6IERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gIHNlbGVjdGVkVmlld0luZGV4ID0gMztcclxuICBjb21wb25lbnRQcm9wZXJ0aWVzID0gbmV3IFpDb21wb25lbnRQcm9wZXJ0aWVzKCk7XHJcblxyXG4gIC8vIGV2ZW50RmllbGRzOiBTY2hlZHVsZXJNb2RlbEZpZWxkcyA9IHtcclxuICAvLyAgIGlkOiBcIklkXCIsXHJcbiAgLy8gICB0aXRsZTogXCJPYmplY3RpdmVcIixcclxuICAvLyAgIGRlc2NyaXB0aW9uOiBcIkRlc2NyaXB0aW9uXCIsXHJcbiAgLy8gICAvLyBzdGFydFRpbWV6b25lOiAnU3RhcnRUaW1lem9uZScsXHJcbiAgLy8gICBzdGFydDogXCJEYXRlX1VUQ1wiLFxyXG4gIC8vICAgZW5kOiBcIkVuZF9VVENcIlxyXG4gIC8vICAgLy8gZW5kVGltZXpvbmU6ICdFbmRUaW1lem9uZScsXHJcbiAgLy8gICAvLyBpc0FsbERheTogJ0lzQWxsRGF5JyxcclxuICAvLyAgIC8vIHJlY3VycmVuY2VSdWxlOiAnUmVjdXJyZW5jZVJ1bGUnLFxyXG4gIC8vICAgLy8gcmVjdXJyZW5jZUlkOiAnUmVjdXJyZW5jZUlEJyxcclxuICAvLyAgIC8vIHJlY3VycmVuY2VFeGNlcHRpb25zOiAnUmVjdXJyZW5jZUV4Y2VwdGlvbidcclxuICAvLyB9O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2VcclxuICApIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgWkNvbXBvbmVudEhlbHBlci5zZXRDb21wb25lbnRQcm9wZXJ0aWVzKHRoaXMpO1xyXG4gICAgWkNvbXBvbmVudEhlbHBlci5yZWdpc3RlckNvbXBvbmVudCh0aGlzKTtcclxuICAgIHRoaXMubG9jYWwuY3RybFNjb3BlID0gdGhpcy5ncm91cC5jdHJsU2NvcGU7XHJcbiAgICAvL3RoaXMuc2VsZWN0ZWRWaWV3SW5kZXggPSB0aGlzLmRhdGEuU2VsZWN0ZWRWaWV3SW5kZXggfHwgdGhpcy5zZWxlY3RlZFZpZXdJbmRleDtcclxuICAgIC8vXHJcbiAgICBpZiAodGhpcy5kYXRhWydTYXZlRmlsdGVyJ10pIHtcclxuICAgICAgdGhpcy5zZXRTY2hlZHVsZXJTZXNzaW9uS2V5KHRoaXMuZ3JvdXApO1xyXG4gICAgICB0aGlzLmdldFNjaGVkdWxlclNlc3Npb25GaWx0ZXIodGhpcy5ncm91cCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmdldEl0ZW1zKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICAvL3RoaXMuc2VsZWN0ZWRWaWV3SW5kZXggPSB0aGlzLmRhdGEuU2VsZWN0ZWRWaWV3SW5kZXggfHwgdGhpcy5zZWxlY3RlZFZpZXdJbmRleDtcclxuICB9XHJcblxyXG4gIGdldEV2ZW50U3R5bGVzID0gKGFyZ3M6IEV2ZW50U3R5bGVBcmdzKSA9PiB7XHJcblxyXG4gICAgaWYoYXJncyAmJiBhcmdzLmV2ZW50ICYmIGFyZ3MuZXZlbnQuZGF0YUl0ZW0pXHJcbiAgICB7XHJcbiAgICAgIGNvbnN0IEJHQ29sb3I9YXJncy5ldmVudC5kYXRhSXRlbVtcImJhY2tncm91bmRDb2xvclwiXTtcclxuICAgICAgY29uc3QgQm9yZGVyQ29sb3I9YXJncy5ldmVudC5kYXRhSXRlbVtcImJvcmRlckNvbG9yXCJdO1xyXG5cclxuICAgIGlmIChCR0NvbG9yICYmIEJvcmRlckNvbG9yKSBcclxuICAgIHsgcmV0dXJuIHsgYmFja2dyb3VuZENvbG9yOiBCR0NvbG9yLCBib3JkZXJjb2xvcjogQm9yZGVyQ29sb3IsIGNvbG9yOiBcIndoaXRlXCIgfTsgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHJldHVybiB7IGJhY2tncm91bmRDb2xvcjogXCIjZmY3YzczXCIsIGJvcmRlcmNvbG9yOiBcIiNmZjdjNzNcIiAsIGNvbG9yOiBcIndoaXRlXCIgfTtcclxuICAgIH1cclxuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0U2xvdENsYXNzID0gKGFyZ3M6IFNsb3RDbGFzc0FyZ3MpID0+IHtcclxuICAgIGNvbnN0IGhvdXIgPSBhcmdzLnN0YXJ0LmdldEhvdXJzKCk7XHJcbiAgICBhcmdzLnJlc291cmNlcyA9IHRoaXMuZXZlbnRzXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBhcmdzXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgZ2V0SXRlbXMoKSB7XHJcbiAgICAvLyBpZiAodGhpcy5pc0xvYWRpbmcpIHtcclxuICAgIC8vICAgIHJldHVybiBbXTtcclxuICAgIC8vICB9XHJcbiAgICAvLyBkZWJ1Z2dlcjtcclxuICAgIGNvbnN0IHYgPSB0aGlzLmRhdGEuVmFsdWU7XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2KSkge1xyXG4gICAgICByZXR1cm4gdjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGV2YWxWYWx1ZSA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBFdmFsVmFsdWUuY2FsbCh0aGlzLCB2KTtcclxuICAgICAgLy8gZGVidWdnZXI7XHJcbiAgICAgIGlmIChldmFsVmFsdWUpIHtcclxuICAgICAgICB0aGlzLmV2ZW50cyA9IGV2YWxWYWx1ZTtcclxuICAgICAgICBpZiAodGhpcy5ldmVudHMpIHtcclxuICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnNvbGUud2FybihcIkludmFsaWQgZmllbGQuVmFsdWUgc2V0dGluZyBcIiwgdGhpcy5kYXRhLlZhbHVlKTtcclxuICAgICAgICByZXR1cm4gW107XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uRGF0ZUNoYW5nZShhcmdzOiBEYXRlQ2hhbmdlRXZlbnQpOiB2b2lkIHtcclxuXHJcbiAgICAvLyB0aGlzLmV2ZW50cyA9IGdlbmVyYXRlRXZlbnRzKGFyZ3MuZGF0ZVJhbmdlLnN0YXJ0LCA3KTtcclxuXHJcbiAgICBpZiAodGhpcy5sb2NhbC5pblByb2dyZXNzKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvL1NldCBzZXNzaW9uIHZhbHVlc1xyXG4gICAgdGhpcy5ncm91cFtcInNlbGVjdGVkRGF0ZVwiXSA9IGFyZ3Muc2VsZWN0ZWREYXRlO1xyXG5cclxuICAgIGNvbnNvbGUubG9nKFwienNjaGVkdWxlIGNvbXBvbmVudCBkYXRlLWNoYW5nZSBzZWxlY3Rpb246IFwiLCBhcmdzLmRhdGVSYW5nZSk7XHJcbiAgICAgLy8gdGhpcy5sb2NhbC5zZWxlY3RlZERhdGUgPSBhcmdzLmRhdGVSYW5nZS5zdGFydDtcclxuICAgIHRoaXMuZ3JvdXAuc3ViamVjdC5uZXh0KHtcclxuICAgIHR5cGU6IFwienNjaGVkdWxlci1vbkRhdGVDaGFuZ2VcIixcclxuICAgIHRhcmdldDogdGhpcy5kYXRhLkNhbGVuZGFyT3B0aW9ucyArIFwiLmRhdGVDbGlja1wiLFxyXG4gICAgZXZlbnQ6IGFyZ3MuZGF0ZVJhbmdlXHJcbiAgICB9IGFzIFpDb21wb25lbnRPdXRwdXRFdmVudCk7XHJcbiAgICAvLyBXZSdyZSBzZXR0aW5nIHRoZSBldmVudHMgYWZ0ZXIgdGhlIGN1cnJlbnQgY2hhbmdlIGRldGVjdGlvbiBjeWNsZVxyXG4gICAgLy8gaGFzIGNvbXBsZXRlZCwgaGVuY2Ugd2UgbmVlZCB0byB0cmlnZ2VyIGEgbmV3IG9uZS5cclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuICB9XHJcblxyXG4gIG9uU2xvdERibENsaWNrKHsgc2VuZGVyLCBzdGFydCwgZW5kLCBpc0FsbERheSB9OiBTbG90Q2xpY2tFdmVudCk6IHZvaWQge1xyXG4gICAgY29uc29sZS5sb2coXHJcbiAgICAgIFwienNjaGVkdWxlciBjb21wb25lbnQgc2xvdC1kb3VibGUtY2xpY2s6IFwiLFxyXG4gICAgICBzZW5kZXIsXHJcbiAgICAgIHN0YXJ0LFxyXG4gICAgICBlbmQsXHJcbiAgICAgIGlzQWxsRGF5XHJcbiAgICApO1xyXG5cclxuICAgIGlmIChcclxuICAgICAgc2VuZGVyLnNlbGVjdGVkVmlldy5uYW1lID09PSBcIm1vbnRoXCIgfHxcclxuICAgICAgc2VuZGVyLnNlbGVjdGVkVmlldy5uYW1lID09PSBcIndlZWtcIlxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMubG9jYWwuaW5Qcm9ncmVzcyA9IHRydWU7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRWaWV3SW5kZXggPSAzO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IHN0YXJ0O1xyXG4gICAgICBvZihbXSkucGlwZSh0YWtlKDEpLCBkZWxheSgxMDAwKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMubG9jYWwuaW5Qcm9ncmVzcyA9IGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyB0aGlzLmdyb3VwLnN1YmplY3QubmV4dCh7XHJcbiAgICAvLyAgIFR5cGU6IFwienNjaGVkdWxlci1vblNsb3REYmxDbGlja1wiLFxyXG4gICAgLy8gICBUYXJnZXQ6IHRoaXMuZGF0YS5DYWxlbmRhck9wdGlvbnMgKyAnc2VsZWN0JyxcclxuICAgIC8vICAgZXZlbnQ6IHsgc2VuZGVyLCBzdGFydCwgZW5kLCBpc0FsbERheSB9XHJcbiAgICAvLyB9KTtcclxuICAgIC8vIHRoaXMuY2xvc2VFZGl0b3Ioc2VuZGVyKTtcclxuICAgIC8vIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAvLyAgICAgJ1N0YXJ0JzogW3N0YXJ0LCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgIC8vICAgICAnRW5kJzogW2VuZCwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAvLyAgICAgJ1N0YXJ0VGltZXpvbmUnOiBuZXcgRm9ybUNvbnRyb2woKSxcclxuICAgIC8vICAgICAnRW5kVGltZXpvbmUnOiBuZXcgRm9ybUNvbnRyb2woKSxcclxuICAgIC8vICAgICAnSXNBbGxEYXknOiBpc0FsbERheSxcclxuICAgIC8vICAgICAnVGl0bGUnOiBuZXcgRm9ybUNvbnRyb2woJycpLFxyXG4gICAgLy8gICAgICdEZXNjcmlwdGlvbic6IG5ldyBGb3JtQ29udHJvbCgnJyksXHJcbiAgICAvLyAgICAgJ1JlY3VycmVuY2VSdWxlJzogbmV3IEZvcm1Db250cm9sKCksXHJcbiAgICAvLyAgICAgJ1JlY3VycmVuY2VJRCc6IG5ldyBGb3JtQ29udHJvbCgpXHJcbiAgICAvLyB9KTtcclxuICAgIC8vIHNlbmRlci5hZGRFdmVudCh0aGlzLmZvcm1Hcm91cCk7XHJcbiAgfVxyXG5cclxuICBvbkV2ZW50RGJsQ2xpY2soeyBzZW5kZXIsIGV2ZW50IH06IEV2ZW50Q2xpY2tFdmVudCk6IHZvaWQge1xyXG4gICAgY29uc29sZS5sb2coXCJ6c2NoZWR1bGVyIGNvbXBvbmVudCBldmVudC1kb3VibGUtY2xpY2s6IFwiLCBzZW5kZXIsIGV2ZW50KTtcclxuXHJcbiAgICAvLyB0aGlzLmdyb3VwLnN1YmplY3QubmV4dCh7XHJcbiAgICAvLyAgIHR5cGU6IFwienNjaGVkdWxlci1vbkV2ZW50RGJsQ2xpY2tcIiArIFwiLmV2ZW50Q2xpY2tcIixcclxuICAgIC8vICAgdGFyZ2V0OiB0aGlzLmRhdGEuQ2FsZW5kYXJPcHRpb25zLFxyXG4gICAgLy8gICBldmVudDogeyBzZW5kZXIsIGV2ZW50IH1cclxuICAgIC8vIH0gYXMgWkNvbXBvbmVudE91dHB1dEV2ZW50KTtcclxuXHJcbiAgICAvLyB0aGlzLmNsb3NlRWRpdG9yKHNlbmRlcik7XHJcbiAgICAvLyBsZXQgZGF0YUl0ZW0gPSBldmVudC5kYXRhSXRlbTtcclxuICAgIC8vIGlmICh0aGlzLmVkaXRTZXJ2aWNlLmlzUmVjdXJyaW5nKGRhdGFJdGVtKSkge1xyXG4gICAgLy8gICAgIHNlbmRlci5vcGVuUmVjdXJyaW5nQ29uZmlybWF0aW9uRGlhbG9nKENydWRPcGVyYXRpb24uRWRpdClcclxuICAgIC8vICAgICAgICAgLy8gVGhlIHJlc3VsdCB3aWxsIGJlIHVuZGVmaW5lZCBpZiB0aGUgZGlhbG9nIHdhcyBjbG9zZWQuXHJcbiAgICAvLyAgICAgICAgIC5waXBlKGZpbHRlcihlZGl0TW9kZSA9PiBlZGl0TW9kZSAhPT0gdW5kZWZpbmVkKSlcclxuICAgIC8vICAgICAgICAgLnN1YnNjcmliZSgoZWRpdE1vZGU6IEVkaXRNb2RlKSA9PiB7XHJcbiAgICAvLyAgICAgICAgICAgICBpZiAoZWRpdE1vZGUgPT09IEVkaXRNb2RlLlNlcmllcykge1xyXG4gICAgLy8gICAgICAgICAgICAgICAgIGRhdGFJdGVtID0gdGhpcy5lZGl0U2VydmljZS5maW5kUmVjdXJyZW5jZU1hc3RlcihkYXRhSXRlbSk7XHJcbiAgICAvLyAgICAgICAgICAgICB9XHJcbiAgICAvLyAgICAgICAgICAgICB0aGlzLmZvcm1Hcm91cCA9IHRoaXMuY3JlYXRlRm9ybUdyb3VwKGRhdGFJdGVtKTtcclxuICAgIC8vICAgICAgICAgICAgIHNlbmRlci5lZGl0RXZlbnQoZGF0YUl0ZW0sIHsgZ3JvdXA6IHRoaXMuZm9ybUdyb3VwLCBtb2RlOiBlZGl0TW9kZSB9KTtcclxuICAgIC8vICAgICAgICAgfSk7XHJcbiAgICAvLyB9IGVsc2Uge1xyXG4gICAgLy8gICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5jcmVhdGVGb3JtR3JvdXAoZGF0YUl0ZW0pO1xyXG4gICAgLy8gICAgIHNlbmRlci5lZGl0RXZlbnQoZGF0YUl0ZW0sIHsgZ3JvdXA6IHRoaXMuZm9ybUdyb3VwIH0pO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIGlmICh0aGlzLmRhdGEuT25JdGVtQ2xpY2spIHtcclxuXHJcbiAgICAgIC8vUmVzdG9yZSBzZXNzaW9uXHJcbiAgICAgIHRoaXMuYmVmb3JlU2NoZWR1bGVyR2V0RGF0YSh0aGlzLmdyb3VwKTtcclxuICAgICAgdGhpcy5zZXRTY2hlZHVsZXJTZXNzaW9uRmlsdGVyKHRoaXMuZ3JvdXApO1xyXG5cclxuICAgICAgY29uc3QgZnVuYyA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBFdmFsVmFsdWUuY2FsbCh0aGlzLCB0aGlzLmRhdGEuT25JdGVtQ2xpY2spO1xyXG4gICAgICBpZiAodHlwZW9mIGZ1bmMgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICBjb25zdCBjYWxsRnVuYyA9IGZ1bmMuYmluZCh0aGlzLmdyb3VwLmN0cmxTY29wZSk7XHJcbiAgICAgICAgY2FsbEZ1bmMoZXZlbnQpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcblxyXG4gIH1cclxuICBcclxuICBwdWJsaWMgc2V0RGF0YSA9IChnRGF0YTogYW55KSA9PiB7XHJcbiAgICB0aGlzLnNlbGVjdGVkVmlld0luZGV4ID0gZ0RhdGEgfHwgdGhpcy5zZWxlY3RlZFZpZXdJbmRleDtcclxuICAgIC8vcmVzZXQgZGF0YVxyXG4gICAgdGhpcy5nZXRJdGVtcygpO1xyXG5cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRFbmFibGUgPSAoc3RhdHVzOiBib29sZWFuKSA9PiB7XHJcbiAgICB0aGlzLmNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seSA9ICFzdGF0dXM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0VmlzaWJsZSA9IChzdGF0dXM6IGJvb2xlYW4pID0+IHtcclxuICAgIHRoaXMuY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGUgPSBzdGF0dXM7XHJcbiAgICB0aGlzLmRhdGEuVmlzaWJsZSA9IHN0YXR1cztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRSZXF1aXJlID0gKHN0YXR1czogYm9vbGVhbikgPT4ge1xyXG4gICAgdGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVxdWlyZWQgPSBzdGF0dXM7XHJcbiAgICBaQ29tcG9uZW50SGVscGVyLmNoYW5nZVZhbGlkYXRvcihzdGF0dXMsIHRoaXMuZ3JvdXAsIHRoaXMuZGF0YS5WYWx1ZSwgdGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLCBWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICB9XHJcblxyXG5cclxuICBwdWJsaWMgc2V0U2NoZWR1bGVyU2Vzc2lvbktleShncm91cDogWkdyb3VwKSB7XHJcblxyXG4gICAgaWYgKGdyb3VwW1wiU2NoZWR1bGVyU3RvcmFnZUtleVwiXSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgZ3JvdXBbXCJTY2hlZHVsZXJTdG9yYWdlS2V5XCJdID0gJ3pncmlkXycgKyBncm91cC5yZXNvdXJjZVVSTCArICdfJyArIHRoaXMuZGF0YS5WYWx1ZSArICc6OicgKyB0aGlzLmF1dGhTZXJ2aWNlLmUxVG9rZW4udXNlck5hbWU7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIGJlZm9yZVNjaGVkdWxlckdldERhdGEoZ3JvdXA6IFpHcm91cCkge1xyXG4gICAgY29uc29sZS53YXJuKFwiYmVmb3JlRGF0ZVJhbmdlQmluZGluZyB0cmlnZ2VyZWRcIik7XHJcbiAgICBpZiAoIWdyb3VwLmJlZm9yZVNjaGVkdWxlckdldERhdGEpIHtcclxuICAgICAgY29uc29sZS53YXJuKFwiZ3JvdXAuYmVmb3JlRGF0ZVJhbmdlQmluZGluZyBpcyB1bmRlZmluZWRcIik7XHJcbiAgICAgIHJldHVybiBvZih0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZ3JvdXAuYmVmb3JlU2NoZWR1bGVyR2V0RGF0YShncm91cCk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBzZXRTY2hlZHVsZXJTZXNzaW9uRmlsdGVyKGdyb3VwOiBaR3JvdXApIHtcclxuXHJcbiAgICBpZiAoIWdyb3VwW1wiU2NoZWR1bGVyU3RvcmFnZUtleVwiXSkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIGNvbnN0IFN0b3JhZ2VLZXkgPSBncm91cFtcIlNjaGVkdWxlclN0b3JhZ2VLZXlcIl07XHJcblxyXG4gICAgbGV0IGxzdEZpbHRlcjogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xyXG5cclxuICAgIGlmIChncm91cCAmJiB0aGlzLnN0b3JhZ2VTZXJ2aWNlICYmIHRoaXMuZGF0YVsnU2F2ZUZpbHRlciddKSB7XHJcblxyXG4gICAgICAvL2xpc3Qgb2YgZGF0YSBmb3IgU3RhdGVGaWx0ZXIgYW5kIEZpbHRlclBhcmFtc1xyXG4gICAgICBsc3RGaWx0ZXIgPSB7XHJcbiAgICAgICAgXCJTZWxlY3RlZERhdGVcIjogSlNPTi5zdHJpbmdpZnkoZ3JvdXBbXCJzZWxlY3RlZERhdGVcIl0pXHJcbiAgICAgIH1cclxuICAgICAgLy9jcmVhdGUgc2Vzc2lvbiBzdG9yYWdlIFxyXG4gICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldChTdG9yYWdlS2V5LCBKU09OLnN0cmluZ2lmeShsc3RGaWx0ZXIpKTtcclxuXHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgYXN5bmMgZ2V0U2NoZWR1bGVyU2Vzc2lvbkZpbHRlcihncm91cDogWkdyb3VwKSB7XHJcblxyXG4gICAgaWYgKCFncm91cFtcIlNjaGVkdWxlclN0b3JhZ2VLZXlcIl0pIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBjb25zdCBTdG9yYWdlS2V5ID0gZ3JvdXBbXCJTY2hlZHVsZXJTdG9yYWdlS2V5XCJdO1xyXG5cclxuICAgIGlmICh0aGlzLnN0b3JhZ2VTZXJ2aWNlKSB7XHJcbiAgICAgIGF3YWl0IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0KFN0b3JhZ2VLZXkpXHJcbiAgICAgICAgLnRoZW4oZGF0YSA9PiB7XHJcbiAgICAgICAgICBpZiAoIWRhdGEgfHwgIWRhdGEudmFsdWUgfHwgZGF0YS52YWx1ZSA9PT0gXCJudWxsXCIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gSlNPTi5wYXJzZShkYXRhLnZhbHVlKTtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSBuZXcgRGF0ZShKU09OLnBhcnNlKHJlc3VsdFtcIlNlbGVjdGVkRGF0ZVwiXSkpO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIGRhdGE7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHsgcmV0dXJuIG51bGw7IH1cclxuXHJcbiAgfVxyXG5cclxufVxyXG4iLCI8aW9uLWl0ZW0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgKm5nSWY9XCIoISFjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZUZpZWxkID8gZ3JvdXBbY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGVGaWVsZF0gOiBjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZSlcIj5cclxuICA8aW9uLWxhYmVsIFthdHRyLmZvcl09XCJkYXRhLlZhbHVlXCIgKm5nSWY9XCJkYXRhLlNob3dMYWJlbFwiIHBvc2l0aW9uPVwic3RhY2tlZFwiPlxyXG4gICAge3tkYXRhLkxhYmVsfX0gPGlvbi10ZXh0ICpuZ0lmPVwiKCEhY29tcG9uZW50UHJvcGVydGllcy5pc1JlcXVpcmVkRmllbGQgPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVxdWlyZWRGaWVsZF0gOiBjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVxdWlyZWQpXCIgY29sb3I9XCJkYW5nZXJcIj4qPC9pb24tdGV4dD5cclxuICA8L2lvbi1sYWJlbD5cclxuICA8a2VuZG8tc2NoZWR1bGVyICpuZ0lmPVwiIWlzTG9hZGluZ1wiIFtrZW5kb1NjaGVkdWxlckJpbmRpbmddPVwiZXZlbnRzXCIgW3NlbGVjdGVkRGF0ZV09XCJzZWxlY3RlZERhdGVcIiAoZGF0ZUNoYW5nZSk9XCJvbkRhdGVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICBbc2VsZWN0ZWRWaWV3SW5kZXhdPVwic2VsZWN0ZWRWaWV3SW5kZXhcIiBbZXZlbnRTdHlsZXNdPVwiZ2V0RXZlbnRTdHlsZXNcIiBbc2xvdENsYXNzXT1cImdldFNsb3RDbGFzc1wiIFxyXG4gICAgKHNsb3REYmxDbGljayk9XCJvblNsb3REYmxDbGljaygkZXZlbnQpXCIgKGV2ZW50RGJsQ2xpY2spPVwib25FdmVudERibENsaWNrKCRldmVudClcIiBzY3JvbGxUaW1lPVwiMDg6MDBcIlxyXG4gICAgW3N0eWxlLmhlaWdodF09XCIoISFkYXRhLkhlaWdodCA/IFtkYXRhLkhlaWdodF0gOiAnNjAwcHgnKVwiPlxyXG4gICAgIDwhLS0gW3N0eWxlLmZvbnQtc2l6ZV09XCIoISFkYXRhLkZvbnRTaXplID8gW2RhdGEuRm9udFNpemVdIDogJzEycHgnKVwiPiAtLT5cclxuICAgICBcclxuICAgICA8IS0tTm90ZTogbGluZS1oZWlnaHQgc2FtZSB3aXRoIFtldmVudEhlaWdodF0tLT5cclxuICAgIDxuZy10ZW1wbGF0ZSBrZW5kb1NjaGVkdWxlckV2ZW50VGVtcGxhdGUgbGV0LWV2ZW50PlxyXG4gICAgICA8c3BhbiBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAtNXB4O2xpbmUtaGVpZ2h0OiAyNXB4O1wiPnt7IGV2ZW50LnRpdGxlIH19PC9zcGFuPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUga2VuZG9TY2hlZHVsZXJUb29sYmFyVGVtcGxhdGUgbGV0LXNlbGVjdGVkRGF0ZT1cInNlbGVjdGVkRGF0ZVwiPlxyXG4gICAgICA8enNjaGVkdWxlcnRvb2xiYXIgW2xvY2FsXT1cImxvY2FsXCIgW3NlbGVjdGVkRGF0ZV09XCJzZWxlY3RlZERhdGVcIj5cclxuICAgICAgPC96c2NoZWR1bGVydG9vbGJhcj5cclxuICAgICAgPHVsIGtlbmRvU2NoZWR1bGVyVG9vbGJhclZpZXdTZWxlY3Rvcj48L3VsPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUga2VuZG9TY2hlZHVsZXJBbGxEYXlTbG90VGVtcGxhdGUgbGV0LWRhdGU9XCJkYXRlXCI+XHJcbiAgICAgIDxzdHJvbmc+e3sgZGF0ZSB8IGtlbmRvRGF0ZTogJ2RkLU1NTS15eXl5JyB9fTwvc3Ryb25nPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDxuZy10ZW1wbGF0ZSBrZW5kb1NjaGVkdWxlckRhdGVIZWFkZXJUZW1wbGF0ZSBsZXQtZGF0ZT1cImRhdGVcIj5cclxuICAgICAgPHN0cm9uZz57eyBkYXRlIHwga2VuZG9EYXRlOiBcImNjY1wiIH19PC9zdHJvbmc+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICBcclxuICAgIDwhLS0gPGtlbmRvLXNjaGVkdWxlci1kYXktdmlldyBzdGFydFRpbWU9XCIwODowMFwiPlxyXG4gICAgPC9rZW5kby1zY2hlZHVsZXItZGF5LXZpZXc+XHJcblxyXG4gICAgPGtlbmRvLXNjaGVkdWxlci13ZWVrLXZpZXcgc3RhcnRUaW1lPVwiMDg6MDBcIj5cclxuICAgIDwva2VuZG8tc2NoZWR1bGVyLXdlZWstdmlldz4gLS0+XHJcblxyXG4gICAgPGtlbmRvLXNjaGVkdWxlci1kYXktdmlldz5cclxuICAgIDwva2VuZG8tc2NoZWR1bGVyLWRheS12aWV3PlxyXG5cclxuICAgIDxrZW5kby1zY2hlZHVsZXItd2Vlay12aWV3PlxyXG4gICAgPC9rZW5kby1zY2hlZHVsZXItd2Vlay12aWV3PlxyXG5cclxuICAgIDxrZW5kby1zY2hlZHVsZXItbW9udGgtdmlldyBbZXZlbnRIZWlnaHRdPVwiMjVcIj4gXHJcbiAgICA8L2tlbmRvLXNjaGVkdWxlci1tb250aC12aWV3PlxyXG5cclxuICAgIDwhLS0gPGtlbmRvLXNjaGVkdWxlci10aW1lbGluZS12aWV3PlxyXG4gICAgPC9rZW5kby1zY2hlZHVsZXItdGltZWxpbmUtdmlldz4gLS0+XHJcblxyXG4gICAgPGtlbmRvLXNjaGVkdWxlci1hZ2VuZGEtdmlldz5cclxuICAgIDwva2VuZG8tc2NoZWR1bGVyLWFnZW5kYS12aWV3PlxyXG4gIDwva2VuZG8tc2NoZWR1bGVyPlxyXG5cclxuPC9pb24taXRlbT4iXX0=
267
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoienNjaGVkdWxlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbWhnbG9iYWwtZHluYW1pY2Zvcm0vc3JjL2xpYi96c2NoZWR1bGVyL3pzY2hlZHVsZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvenNjaGVkdWxlci96c2NoZWR1bGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFvQyxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQ08sZ0JBQWdCLEVBQ1osb0JBQW9CLEVBQ3JDLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBUXZELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7O0FBTzdDLE1BQU0sT0FBTyxtQkFBbUI7SUFrQjlCLHdDQUF3QztJQUN4QyxjQUFjO0lBQ2Qsd0JBQXdCO0lBQ3hCLGdDQUFnQztJQUNoQyx1Q0FBdUM7SUFDdkMsdUJBQXVCO0lBQ3ZCLG1CQUFtQjtJQUNuQixtQ0FBbUM7SUFDbkMsNkJBQTZCO0lBQzdCLHlDQUF5QztJQUN6QyxxQ0FBcUM7SUFDckMsbURBQW1EO0lBQ25ELEtBQUs7SUFFTCxZQUNVLGNBQWlDLEVBQ2pDLGNBQXFDLEVBQ3JDLFdBQXdCO1FBRnhCLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUNqQyxtQkFBYyxHQUFkLGNBQWMsQ0FBdUI7UUFDckMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUE1QmxDLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIsV0FBTSxHQUFVLEVBQUUsQ0FBQztR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b250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIEFmdGVyVmlld0luaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1xyXG4gIFpDb21wb25lbnQsIFpDb21wb25lbnRIZWxwZXIsIFpDb21wb25lbnRPdXRwdXRFdmVudCxcclxuICBaR3JvdXAsIFpGaWVsZCwgWkNvbXBvbmVudFByb3BlcnRpZXMsIFN0b3JhZ2VTZXNzaW9uU2VydmljZSwgQXV0aFNlcnZpY2VcclxufSBmcm9tIFwibW1oZ2xvYmFsLXpjb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQge1xyXG4gIERhdGVDaGFuZ2VFdmVudCxcclxuICBTbG90Q2xpY2tFdmVudCxcclxuICBFdmVudENsaWNrRXZlbnQsXHJcbiAgRXZlbnRTdHlsZUFyZ3MsXHJcbiAgU2xvdENsYXNzQXJnc1xyXG59IGZyb20gXCJAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1zY2hlZHVsZXJcIjtcclxuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVsYXksIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJhcHAtenNjaGVkdWxlclwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4venNjaGVkdWxlci5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi96c2NoZWR1bGVyLmNvbXBvbmVudC5zY3NzXCJdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBac2NoZWR1bGVyQ29tcG9uZW50IGltcGxlbWVudHMgWkNvbXBvbmVudCwgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuICBASW5wdXQoKSBkYXRhOiBaRmllbGQ7XHJcbiAgQElucHV0KCkgZ3JvdXA6IFpHcm91cDtcclxuICBASW5wdXQoKSBmb3JtOiBGb3JtR3JvdXA7XHJcbiAgQElucHV0KCkgbmdTdHlsZTogeyBba2xhc3M6IHN0cmluZ106IGFueTsgfVxyXG5cclxuXHJcbiAgaXNMb2FkaW5nID0gdHJ1ZTtcclxuICBldmVudHM6IGFueVtdID0gW107XHJcbiAgc2VsZWN0ZWREYXRlID0gbmV3IERhdGUoKTtcclxuICBsb2NhbCA9IHtcclxuICAgIGluUHJvZ3Jlc3M6IGZhbHNlLFxyXG4gICAgY3RybFNjb3BlOiBudWxsXHJcbiAgfTtcclxuICAvLyBzZWxlY3RlZERhdGU6IERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gIHNlbGVjdGVkVmlld0luZGV4ID0gMztcclxuICBjb21wb25lbnRQcm9wZXJ0aWVzID0gbmV3IFpDb21wb25lbnRQcm9wZXJ0aWVzKCk7XHJcblxyXG4gIC8vIGV2ZW50RmllbGRzOiBTY2hlZHVsZXJNb2RlbEZpZWxkcyA9IHtcclxuICAvLyAgIGlkOiBcIklkXCIsXHJcbiAgLy8gICB0aXRsZTogXCJPYmplY3RpdmVcIixcclxuICAvLyAgIGRlc2NyaXB0aW9uOiBcIkRlc2NyaXB0aW9uXCIsXHJcbiAgLy8gICAvLyBzdGFydFRpbWV6b25lOiAnU3RhcnRUaW1lem9uZScsXHJcbiAgLy8gICBzdGFydDogXCJEYXRlX1VUQ1wiLFxyXG4gIC8vICAgZW5kOiBcIkVuZF9VVENcIlxyXG4gIC8vICAgLy8gZW5kVGltZXpvbmU6ICdFbmRUaW1lem9uZScsXHJcbiAgLy8gICAvLyBpc0FsbERheTogJ0lzQWxsRGF5JyxcclxuICAvLyAgIC8vIHJlY3VycmVuY2VSdWxlOiAnUmVjdXJyZW5jZVJ1bGUnLFxyXG4gIC8vICAgLy8gcmVjdXJyZW5jZUlkOiAnUmVjdXJyZW5jZUlEJyxcclxuICAvLyAgIC8vIHJlY3VycmVuY2VFeGNlcHRpb25zOiAnUmVjdXJyZW5jZUV4Y2VwdGlvbidcclxuICAvLyB9O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2VcclxuICApIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgWkNvbXBvbmVudEhlbHBlci5zZXRDb21wb25lbnRQcm9wZXJ0aWVzKHRoaXMpO1xyXG4gICAgWkNvbXBvbmVudEhlbHBlci5yZWdpc3RlckNvbXBvbmVudCh0aGlzKTtcclxuICAgIHRoaXMubG9jYWwuY3RybFNjb3BlID0gdGhpcy5ncm91cC5jdHJsU2NvcGU7XHJcbiAgICAvL3RoaXMuc2VsZWN0ZWRWaWV3SW5kZXggPSB0aGlzLmRhdGEuU2VsZWN0ZWRWaWV3SW5kZXggfHwgdGhpcy5zZWxlY3RlZFZpZXdJbmRleDtcclxuICAgIC8vXHJcbiAgICBpZiAodGhpcy5kYXRhWydTYXZlRmlsdGVyJ10pIHtcclxuICAgICAgdGhpcy5zZXRTY2hlZHVsZXJTZXNzaW9uS2V5KHRoaXMuZ3JvdXApO1xyXG4gICAgICB0aGlzLmdldFNjaGVkdWxlclNlc3Npb25GaWx0ZXIodGhpcy5ncm91cCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmdldEl0ZW1zKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICAvL3RoaXMuc2VsZWN0ZWRWaWV3SW5kZXggPSB0aGlzLmRhdGEuU2VsZWN0ZWRWaWV3SW5kZXggfHwgdGhpcy5zZWxlY3RlZFZpZXdJbmRleDtcclxuICB9XHJcblxyXG4gIGdldEV2ZW50U3R5bGVzID0gKGFyZ3M6IEV2ZW50U3R5bGVBcmdzKSA9PiB7XHJcblxyXG4gICAgaWYoYXJncyAmJiBhcmdzLmV2ZW50ICYmIGFyZ3MuZXZlbnQuZGF0YUl0ZW0pXHJcbiAgICB7XHJcbiAgICAgIGNvbnN0IEJHQ29sb3I9YXJncy5ldmVudC5kYXRhSXRlbVtcImJhY2tncm91bmRDb2xvclwiXTtcclxuICAgICAgY29uc3QgQm9yZGVyQ29sb3I9YXJncy5ldmVudC5kYXRhSXRlbVtcImJvcmRlckNvbG9yXCJdO1xyXG5cclxuICAgIGlmIChCR0NvbG9yICYmIEJvcmRlckNvbG9yKSBcclxuICAgIHsgcmV0dXJuIHsgYmFja2dyb3VuZENvbG9yOiBCR0NvbG9yLCBib3JkZXJjb2xvcjogQm9yZGVyQ29sb3IsIGNvbG9yOiBcIndoaXRlXCIgfTsgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHJldHVybiB7IGJhY2tncm91bmRDb2xvcjogXCIjZmY3YzczXCIsIGJvcmRlcmNvbG9yOiBcIiNmZjdjNzNcIiAsIGNvbG9yOiBcIndoaXRlXCIgfTtcclxuICAgIH1cclxuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0U2xvdENsYXNzID0gKGFyZ3M6IFNsb3RDbGFzc0FyZ3MpID0+IHtcclxuICAgIGNvbnN0IGhvdXIgPSBhcmdzLnN0YXJ0LmdldEhvdXJzKCk7XHJcbiAgICBhcmdzLnJlc291cmNlcyA9IHRoaXMuZXZlbnRzXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBhcmdzXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgZ2V0SXRlbXMoKSB7XHJcbiAgICAvLyBpZiAodGhpcy5pc0xvYWRpbmcpIHtcclxuICAgIC8vICAgIHJldHVybiBbXTtcclxuICAgIC8vICB9XHJcbiAgICAvLyBkZWJ1Z2dlcjtcclxuICAgIGNvbnN0IHYgPSB0aGlzLmRhdGEuVmFsdWU7XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2KSkge1xyXG4gICAgICByZXR1cm4gdjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGV2YWxWYWx1ZSA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBFdmFsVmFsdWUuY2FsbCh0aGlzLCB2KTtcclxuICAgICAgLy8gZGVidWdnZXI7XHJcbiAgICAgIGlmIChldmFsVmFsdWUpIHtcclxuICAgICAgICB0aGlzLmV2ZW50cyA9IGV2YWxWYWx1ZTtcclxuICAgICAgICBpZiAodGhpcy5ldmVudHMpIHtcclxuICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnNvbGUud2FybihcIkludmFsaWQgZmllbGQuVmFsdWUgc2V0dGluZyBcIiwgdGhpcy5kYXRhLlZhbHVlKTtcclxuICAgICAgICByZXR1cm4gW107XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uRGF0ZUNoYW5nZShhcmdzOiBEYXRlQ2hhbmdlRXZlbnQpOiB2b2lkIHtcclxuXHJcbiAgICAvLyB0aGlzLmV2ZW50cyA9IGdlbmVyYXRlRXZlbnRzKGFyZ3MuZGF0ZVJhbmdlLnN0YXJ0LCA3KTtcclxuXHJcbiAgICBpZiAodGhpcy5sb2NhbC5pblByb2dyZXNzKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvL1NldCBzZXNzaW9uIHZhbHVlc1xyXG4gICAgdGhpcy5ncm91cFtcInNlbGVjdGVkRGF0ZVwiXSA9IGFyZ3Muc2VsZWN0ZWREYXRlO1xyXG5cclxuICAgIGNvbnNvbGUubG9nKFwienNjaGVkdWxlIGNvbXBvbmVudCBkYXRlLWNoYW5nZSBzZWxlY3Rpb246IFwiLCBhcmdzLmRhdGVSYW5nZSk7XHJcbiAgICAgLy8gdGhpcy5sb2NhbC5zZWxlY3RlZERhdGUgPSBhcmdzLmRhdGVSYW5nZS5zdGFydDtcclxuICAgIHRoaXMuZ3JvdXAuc3ViamVjdC5uZXh0KHtcclxuICAgIHR5cGU6IFwienNjaGVkdWxlci1vbkRhdGVDaGFuZ2VcIixcclxuICAgIHRhcmdldDogdGhpcy5kYXRhLkNhbGVuZGFyT3B0aW9ucyArIFwiLmRhdGVDbGlja1wiLFxyXG4gICAgZXZlbnQ6IGFyZ3MuZGF0ZVJhbmdlXHJcbiAgICB9IGFzIFpDb21wb25lbnRPdXRwdXRFdmVudCk7XHJcbiAgICAvLyBXZSdyZSBzZXR0aW5nIHRoZSBldmVudHMgYWZ0ZXIgdGhlIGN1cnJlbnQgY2hhbmdlIGRldGVjdGlvbiBjeWNsZVxyXG4gICAgLy8gaGFzIGNvbXBsZXRlZCwgaGVuY2Ugd2UgbmVlZCB0byB0cmlnZ2VyIGEgbmV3IG9uZS5cclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuICB9XHJcblxyXG4gIG9uU2xvdERibENsaWNrKHsgc2VuZGVyLCBzdGFydCwgZW5kLCBpc0FsbERheSB9OiBTbG90Q2xpY2tFdmVudCk6IHZvaWQge1xyXG4gICAgY29uc29sZS5sb2coXHJcbiAgICAgIFwienNjaGVkdWxlciBjb21wb25lbnQgc2xvdC1kb3VibGUtY2xpY2s6IFwiLFxyXG4gICAgICBzZW5kZXIsXHJcbiAgICAgIHN0YXJ0LFxyXG4gICAgICBlbmQsXHJcbiAgICAgIGlzQWxsRGF5XHJcbiAgICApO1xyXG5cclxuICAgIGlmIChcclxuICAgICAgc2VuZGVyLnNlbGVjdGVkVmlldy5uYW1lID09PSBcIm1vbnRoXCIgfHxcclxuICAgICAgc2VuZGVyLnNlbGVjdGVkVmlldy5uYW1lID09PSBcIndlZWtcIlxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMubG9jYWwuaW5Qcm9ncmVzcyA9IHRydWU7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRWaWV3SW5kZXggPSAzO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IHN0YXJ0O1xyXG4gICAgICBvZihbXSkucGlwZSh0YWtlKDEpLCBkZWxheSgxMDAwKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMubG9jYWwuaW5Qcm9ncmVzcyA9IGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyB0aGlzLmdyb3VwLnN1YmplY3QubmV4dCh7XHJcbiAgICAvLyAgIFR5cGU6IFwienNjaGVkdWxlci1vblNsb3REYmxDbGlja1wiLFxyXG4gICAgLy8gICBUYXJnZXQ6IHRoaXMuZGF0YS5DYWxlbmRhck9wdGlvbnMgKyAnc2VsZWN0JyxcclxuICAgIC8vICAgZXZlbnQ6IHsgc2VuZGVyLCBzdGFydCwgZW5kLCBpc0FsbERheSB9XHJcbiAgICAvLyB9KTtcclxuICAgIC8vIHRoaXMuY2xvc2VFZGl0b3Ioc2VuZGVyKTtcclxuICAgIC8vIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAvLyAgICAgJ1N0YXJ0JzogW3N0YXJ0LCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgIC8vICAgICAnRW5kJzogW2VuZCwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAvLyAgICAgJ1N0YXJ0VGltZXpvbmUnOiBuZXcgRm9ybUNvbnRyb2woKSxcclxuICAgIC8vICAgICAnRW5kVGltZXpvbmUnOiBuZXcgRm9ybUNvbnRyb2woKSxcclxuICAgIC8vICAgICAnSXNBbGxEYXknOiBpc0FsbERheSxcclxuICAgIC8vICAgICAnVGl0bGUnOiBuZXcgRm9ybUNvbnRyb2woJycpLFxyXG4gICAgLy8gICAgICdEZXNjcmlwdGlvbic6IG5ldyBGb3JtQ29udHJvbCgnJyksXHJcbiAgICAvLyAgICAgJ1JlY3VycmVuY2VSdWxlJzogbmV3IEZvcm1Db250cm9sKCksXHJcbiAgICAvLyAgICAgJ1JlY3VycmVuY2VJRCc6IG5ldyBGb3JtQ29udHJvbCgpXHJcbiAgICAvLyB9KTtcclxuICAgIC8vIHNlbmRlci5hZGRFdmVudCh0aGlzLmZvcm1Hcm91cCk7XHJcbiAgfVxyXG5cclxuICBvbkV2ZW50RGJsQ2xpY2soeyBzZW5kZXIsIGV2ZW50IH06IEV2ZW50Q2xpY2tFdmVudCk6IHZvaWQge1xyXG4gICAgY29uc29sZS5sb2coXCJ6c2NoZWR1bGVyIGNvbXBvbmVudCBldmVudC1kb3VibGUtY2xpY2s6IFwiLCBzZW5kZXIsIGV2ZW50KTtcclxuXHJcbiAgICAvLyB0aGlzLmdyb3VwLnN1YmplY3QubmV4dCh7XHJcbiAgICAvLyAgIHR5cGU6IFwienNjaGVkdWxlci1vbkV2ZW50RGJsQ2xpY2tcIiArIFwiLmV2ZW50Q2xpY2tcIixcclxuICAgIC8vICAgdGFyZ2V0OiB0aGlzLmRhdGEuQ2FsZW5kYXJPcHRpb25zLFxyXG4gICAgLy8gICBldmVudDogeyBzZW5kZXIsIGV2ZW50IH1cclxuICAgIC8vIH0gYXMgWkNvbXBvbmVudE91dHB1dEV2ZW50KTtcclxuXHJcbiAgICAvLyB0aGlzLmNsb3NlRWRpdG9yKHNlbmRlcik7XHJcbiAgICAvLyBsZXQgZGF0YUl0ZW0gPSBldmVudC5kYXRhSXRlbTtcclxuICAgIC8vIGlmICh0aGlzLmVkaXRTZXJ2aWNlLmlzUmVjdXJyaW5nKGRhdGFJdGVtKSkge1xyXG4gICAgLy8gICAgIHNlbmRlci5vcGVuUmVjdXJyaW5nQ29uZmlybWF0aW9uRGlhbG9nKENydWRPcGVyYXRpb24uRWRpdClcclxuICAgIC8vICAgICAgICAgLy8gVGhlIHJlc3VsdCB3aWxsIGJlIHVuZGVmaW5lZCBpZiB0aGUgZGlhbG9nIHdhcyBjbG9zZWQuXHJcbiAgICAvLyAgICAgICAgIC5waXBlKGZpbHRlcihlZGl0TW9kZSA9PiBlZGl0TW9kZSAhPT0gdW5kZWZpbmVkKSlcclxuICAgIC8vICAgICAgICAgLnN1YnNjcmliZSgoZWRpdE1vZGU6IEVkaXRNb2RlKSA9PiB7XHJcbiAgICAvLyAgICAgICAgICAgICBpZiAoZWRpdE1vZGUgPT09IEVkaXRNb2RlLlNlcmllcykge1xyXG4gICAgLy8gICAgICAgICAgICAgICAgIGRhdGFJdGVtID0gdGhpcy5lZGl0U2VydmljZS5maW5kUmVjdXJyZW5jZU1hc3RlcihkYXRhSXRlbSk7XHJcbiAgICAvLyAgICAgICAgICAgICB9XHJcbiAgICAvLyAgICAgICAgICAgICB0aGlzLmZvcm1Hcm91cCA9IHRoaXMuY3JlYXRlRm9ybUdyb3VwKGRhdGFJdGVtKTtcclxuICAgIC8vICAgICAgICAgICAgIHNlbmRlci5lZGl0RXZlbnQoZGF0YUl0ZW0sIHsgZ3JvdXA6IHRoaXMuZm9ybUdyb3VwLCBtb2RlOiBlZGl0TW9kZSB9KTtcclxuICAgIC8vICAgICAgICAgfSk7XHJcbiAgICAvLyB9IGVsc2Uge1xyXG4gICAgLy8gICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5jcmVhdGVGb3JtR3JvdXAoZGF0YUl0ZW0pO1xyXG4gICAgLy8gICAgIHNlbmRlci5lZGl0RXZlbnQoZGF0YUl0ZW0sIHsgZ3JvdXA6IHRoaXMuZm9ybUdyb3VwIH0pO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIGlmICh0aGlzLmRhdGEuT25JdGVtQ2xpY2spIHtcclxuXHJcbiAgICAgIC8vUmVzdG9yZSBzZXNzaW9uXHJcbiAgICAgIHRoaXMuYmVmb3JlU2NoZWR1bGVyR2V0RGF0YSh0aGlzLmdyb3VwKTtcclxuICAgICAgdGhpcy5zZXRTY2hlZHVsZXJTZXNzaW9uRmlsdGVyKHRoaXMuZ3JvdXApO1xyXG5cclxuICAgICAgY29uc3QgZnVuYyA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBFdmFsVmFsdWUuY2FsbCh0aGlzLCB0aGlzLmRhdGEuT25JdGVtQ2xpY2spO1xyXG4gICAgICBpZiAodHlwZW9mIGZ1bmMgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICBjb25zdCBjYWxsRnVuYyA9IGZ1bmMuYmluZCh0aGlzLmdyb3VwLmN0cmxTY29wZSk7XHJcbiAgICAgICAgY2FsbEZ1bmMoZXZlbnQpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcblxyXG4gIH1cclxuICBcclxuICBwdWJsaWMgc2V0RGF0YSA9IChnRGF0YTogYW55KSA9PiB7XHJcbiAgICB0aGlzLnNlbGVjdGVkVmlld0luZGV4ID0gZ0RhdGEgfHwgdGhpcy5zZWxlY3RlZFZpZXdJbmRleDtcclxuICAgIC8vcmVzZXQgZGF0YVxyXG4gICAgdGhpcy5nZXRJdGVtcygpO1xyXG5cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRFbmFibGUgPSAoc3RhdHVzOiBib29sZWFuKSA9PiB7XHJcbiAgICB0aGlzLmNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seSA9ICFzdGF0dXM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0VmlzaWJsZSA9IChzdGF0dXM6IGJvb2xlYW4pID0+IHtcclxuICAgIHRoaXMuY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGUgPSBzdGF0dXM7XHJcbiAgICB0aGlzLmRhdGEuVmlzaWJsZSA9IHN0YXR1cztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRSZXF1aXJlID0gKHN0YXR1czogYm9vbGVhbikgPT4ge1xyXG4gICAgdGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVxdWlyZWQgPSBzdGF0dXM7XHJcbiAgICBaQ29tcG9uZW50SGVscGVyLmNoYW5nZVZhbGlkYXRvcihzdGF0dXMsIHRoaXMuZ3JvdXAsIHRoaXMuZGF0YS5WYWx1ZSwgdGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLCBWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICB9XHJcblxyXG5cclxuICBwdWJsaWMgc2V0U2NoZWR1bGVyU2Vzc2lvbktleShncm91cDogWkdyb3VwKSB7XHJcblxyXG4gICAgaWYgKGdyb3VwW1wiU2NoZWR1bGVyU3RvcmFnZUtleVwiXSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgZ3JvdXBbXCJTY2hlZHVsZXJTdG9yYWdlS2V5XCJdID0gJ3pncmlkXycgKyBncm91cC5yZXNvdXJjZVVSTCArICdfJyArIHRoaXMuZGF0YS5WYWx1ZSArICc6OicgKyB0aGlzLmF1dGhTZXJ2aWNlLmUxVG9rZW4udXNlck5hbWU7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIGJlZm9yZVNjaGVkdWxlckdldERhdGEoZ3JvdXA6IFpHcm91cCkge1xyXG4gICAgY29uc29sZS53YXJuKFwiYmVmb3JlRGF0ZVJhbmdlQmluZGluZyB0cmlnZ2VyZWRcIik7XHJcbiAgICBpZiAoIWdyb3VwLmJlZm9yZVNjaGVkdWxlckdldERhdGEpIHtcclxuICAgICAgY29uc29sZS53YXJuKFwiZ3JvdXAuYmVmb3JlRGF0ZVJhbmdlQmluZGluZyBpcyB1bmRlZmluZWRcIik7XHJcbiAgICAgIHJldHVybiBvZih0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZ3JvdXAuYmVmb3JlU2NoZWR1bGVyR2V0RGF0YShncm91cCk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBzZXRTY2hlZHVsZXJTZXNzaW9uRmlsdGVyKGdyb3VwOiBaR3JvdXApIHtcclxuXHJcbiAgICBpZiAoIWdyb3VwW1wiU2NoZWR1bGVyU3RvcmFnZUtleVwiXSkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIGNvbnN0IFN0b3JhZ2VLZXkgPSBncm91cFtcIlNjaGVkdWxlclN0b3JhZ2VLZXlcIl07XHJcblxyXG4gICAgbGV0IGxzdEZpbHRlcjogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xyXG5cclxuICAgIGlmIChncm91cCAmJiB0aGlzLnN0b3JhZ2VTZXJ2aWNlICYmIHRoaXMuZGF0YVsnU2F2ZUZpbHRlciddKSB7XHJcblxyXG4gICAgICAvL2xpc3Qgb2YgZGF0YSBmb3IgU3RhdGVGaWx0ZXIgYW5kIEZpbHRlclBhcmFtc1xyXG4gICAgICBsc3RGaWx0ZXIgPSB7XHJcbiAgICAgICAgXCJTZWxlY3RlZERhdGVcIjogSlNPTi5zdHJpbmdpZnkoZ3JvdXBbXCJzZWxlY3RlZERhdGVcIl0pXHJcbiAgICAgIH1cclxuICAgICAgLy9jcmVhdGUgc2Vzc2lvbiBzdG9yYWdlIFxyXG4gICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldChTdG9yYWdlS2V5LCBKU09OLnN0cmluZ2lmeShsc3RGaWx0ZXIpKTtcclxuXHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgYXN5bmMgZ2V0U2NoZWR1bGVyU2Vzc2lvbkZpbHRlcihncm91cDogWkdyb3VwKSB7XHJcblxyXG4gICAgaWYgKCFncm91cFtcIlNjaGVkdWxlclN0b3JhZ2VLZXlcIl0pIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBjb25zdCBTdG9yYWdlS2V5ID0gZ3JvdXBbXCJTY2hlZHVsZXJTdG9yYWdlS2V5XCJdO1xyXG5cclxuICAgIGlmICh0aGlzLnN0b3JhZ2VTZXJ2aWNlKSB7XHJcbiAgICAgIGF3YWl0IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0KFN0b3JhZ2VLZXkpXHJcbiAgICAgICAgLnRoZW4oZGF0YSA9PiB7XHJcbiAgICAgICAgICBpZiAoIWRhdGEgfHwgIWRhdGEudmFsdWUgfHwgZGF0YS52YWx1ZSA9PT0gXCJudWxsXCIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gSlNPTi5wYXJzZShkYXRhLnZhbHVlKTtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSBuZXcgRGF0ZShKU09OLnBhcnNlKHJlc3VsdFtcIlNlbGVjdGVkRGF0ZVwiXSkpO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIGRhdGE7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHsgcmV0dXJuIG51bGw7IH1cclxuXHJcbiAgfVxyXG5cclxufVxyXG4iLCI8aW9uLWl0ZW0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgKm5nSWY9XCIoISFjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZUZpZWxkID8gZ3JvdXBbY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGVGaWVsZF0gOiBjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZSlcIj5cclxuICA8aW9uLWxhYmVsIFthdHRyLmZvcl09XCJkYXRhLlZhbHVlXCIgKm5nSWY9XCJkYXRhLlNob3dMYWJlbFwiIHBvc2l0aW9uPVwic3RhY2tlZFwiPlxyXG4gICAge3tkYXRhLkxhYmVsfX0gPGlvbi10ZXh0ICpuZ0lmPVwiKCEhY29tcG9uZW50UHJvcGVydGllcy5pc1JlcXVpcmVkRmllbGQgPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVxdWlyZWRGaWVsZF0gOiBjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVxdWlyZWQpXCIgY29sb3I9XCJkYW5nZXJcIj4qPC9pb24tdGV4dD5cclxuICA8L2lvbi1sYWJlbD5cclxuICA8a2VuZG8tc2NoZWR1bGVyICpuZ0lmPVwiIWlzTG9hZGluZ1wiIFtrZW5kb1NjaGVkdWxlckJpbmRpbmddPVwiZXZlbnRzXCIgW3NlbGVjdGVkRGF0ZV09XCJzZWxlY3RlZERhdGVcIiAoZGF0ZUNoYW5nZSk9XCJvbkRhdGVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICBbc2VsZWN0ZWRWaWV3SW5kZXhdPVwic2VsZWN0ZWRWaWV3SW5kZXhcIiBbZXZlbnRTdHlsZXNdPVwiZ2V0RXZlbnRTdHlsZXNcIiBbc2xvdENsYXNzXT1cImdldFNsb3RDbGFzc1wiIFxyXG4gICAgKHNsb3REYmxDbGljayk9XCJvblNsb3REYmxDbGljaygkZXZlbnQpXCIgKGV2ZW50RGJsQ2xpY2spPVwib25FdmVudERibENsaWNrKCRldmVudClcIiBzY3JvbGxUaW1lPVwiMDg6MDBcIlxyXG4gICAgW3N0eWxlLmhlaWdodF09XCIoISFkYXRhLkhlaWdodCA/IFtkYXRhLkhlaWdodF0gOiAnNjAwcHgnKVwiPlxyXG4gICAgIDwhLS0gW3N0eWxlLmZvbnQtc2l6ZV09XCIoISFkYXRhLkZvbnRTaXplID8gW2RhdGEuRm9udFNpemVdIDogJzEycHgnKVwiPiAtLT5cclxuICAgICBcclxuICAgICA8IS0tTm90ZTogbGluZS1oZWlnaHQgc2FtZSB3aXRoIFtldmVudEhlaWdodF0tLT5cclxuICAgIDxuZy10ZW1wbGF0ZSBrZW5kb1NjaGVkdWxlckV2ZW50VGVtcGxhdGUgbGV0LWV2ZW50PlxyXG4gICAgICA8c3BhbiBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAtNXB4O2xpbmUtaGVpZ2h0OiAyNXB4O1wiPnt7IGV2ZW50LnRpdGxlIH19PC9zcGFuPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUga2VuZG9TY2hlZHVsZXJUb29sYmFyVGVtcGxhdGUgbGV0LXNlbGVjdGVkRGF0ZT1cInNlbGVjdGVkRGF0ZVwiPlxyXG4gICAgICA8enNjaGVkdWxlcnRvb2xiYXIgW2xvY2FsXT1cImxvY2FsXCIgW3NlbGVjdGVkRGF0ZV09XCJzZWxlY3RlZERhdGVcIj5cclxuICAgICAgPC96c2NoZWR1bGVydG9vbGJhcj5cclxuICAgICAgPHVsIGtlbmRvU2NoZWR1bGVyVG9vbGJhclZpZXdTZWxlY3Rvcj48L3VsPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUga2VuZG9TY2hlZHVsZXJBbGxEYXlTbG90VGVtcGxhdGUgbGV0LWRhdGU9XCJkYXRlXCI+XHJcbiAgICAgIDxzdHJvbmc+e3sgZGF0ZSB8IGtlbmRvRGF0ZTogJ2RkLU1NTS15eXl5JyB9fTwvc3Ryb25nPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDxuZy10ZW1wbGF0ZSBrZW5kb1NjaGVkdWxlckRhdGVIZWFkZXJUZW1wbGF0ZSBsZXQtZGF0ZT1cImRhdGVcIj5cclxuICAgICAgPHN0cm9uZz57eyBkYXRlIHwga2VuZG9EYXRlOiBcImNjY1wiIH19PC9zdHJvbmc+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICBcclxuICAgIDwhLS0gPGtlbmRvLXNjaGVkdWxlci1kYXktdmlldyBzdGFydFRpbWU9XCIwODowMFwiPlxyXG4gICAgPC9rZW5kby1zY2hlZHVsZXItZGF5LXZpZXc+XHJcblxyXG4gICAgPGtlbmRvLXNjaGVkdWxlci13ZWVrLXZpZXcgc3RhcnRUaW1lPVwiMDg6MDBcIj5cclxuICAgIDwva2VuZG8tc2NoZWR1bGVyLXdlZWstdmlldz4gLS0+XHJcblxyXG4gICAgPGtlbmRvLXNjaGVkdWxlci1kYXktdmlldz5cclxuICAgIDwva2VuZG8tc2NoZWR1bGVyLWRheS12aWV3PlxyXG5cclxuICAgIDxrZW5kby1zY2hlZHVsZXItd2Vlay12aWV3PlxyXG4gICAgPC9rZW5kby1zY2hlZHVsZXItd2Vlay12aWV3PlxyXG5cclxuICAgIDxrZW5kby1zY2hlZHVsZXItbW9udGgtdmlldyBbZXZlbnRIZWlnaHRdPVwiMjVcIj4gXHJcbiAgICA8L2tlbmRvLXNjaGVkdWxlci1tb250aC12aWV3PlxyXG5cclxuICAgIDwhLS0gPGtlbmRvLXNjaGVkdWxlci10aW1lbGluZS12aWV3PlxyXG4gICAgPC9rZW5kby1zY2hlZHVsZXItdGltZWxpbmUtdmlldz4gLS0+XHJcblxyXG4gICAgPGtlbmRvLXNjaGVkdWxlci1hZ2VuZGEtdmlldz5cclxuICAgIDwva2VuZG8tc2NoZWR1bGVyLWFnZW5kYS12aWV3PlxyXG4gIDwva2VuZG8tc2NoZWR1bGVyPlxyXG5cclxuPC9pb24taXRlbT4iXX0=
@@ -69,8 +69,8 @@ export class ZSchedulerToolBarComponent {
69
69
  }
70
70
  }
71
71
  }
72
- ZSchedulerToolBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: ZSchedulerToolBarComponent, deps: [{ token: i1.ToolbarService }], target: i0.ɵɵFactoryTarget.Component });
73
- ZSchedulerToolBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: ZSchedulerToolBarComponent, selector: "zschedulertoolbar", inputs: { local: "local", selectedDate: "selectedDate" }, host: { listeners: { "keydown": "keydown($event)", "document:click": "documentClick($event)" } }, ngImport: i0, template: `
72
+ ZSchedulerToolBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ZSchedulerToolBarComponent, deps: [{ token: i1.ToolbarService }], target: i0.ɵɵFactoryTarget.Component });
73
+ ZSchedulerToolBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ZSchedulerToolBarComponent, selector: "zschedulertoolbar", inputs: { local: "local", selectedDate: "selectedDate" }, host: { listeners: { "keydown": "keydown($event)", "document:click": "documentClick($event)" } }, ngImport: i0, template: `
74
74
  <div class="k-scheduler-navigation">
75
75
  <button class="k-nav-today" (click)="today()">
76
76
  Today
@@ -102,7 +102,7 @@ ZSchedulerToolBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
102
102
  ></kendo-calendar>
103
103
  </kendo-popup>
104
104
  `, isInline: true, styles: [":host{margin:5px 0}\n"], components: [{ type: i2.PopupComponent, selector: "kendo-popup", inputs: ["animate", "anchorAlign", "collision", "popupAlign", "copyAnchorStyles", "positionMode", "offset", "anchor", "popupClass", "margin"], outputs: ["anchorViewportLeave", "close", "open", "positionChange"], exportAs: ["kendo-popup"] }, { type: i3.CalendarComponent, selector: "kendo-calendar", inputs: ["id", "rangeValidation", "selection", "disabled", "tabindex", "navigation", "activeView", "bottomView", "topView", "animateNavigation", "weekNumber", "focusedDate", "min", "max", "value", "tabIndex", "disabledDates", "type", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "navigationItemTemplate"], outputs: ["activeViewChange", "navigate", "activeViewDateChange", "valueChange"], exportAs: ["kendo-calendar"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "kendoDate": i5.DatePipe } });
105
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: ZSchedulerToolBarComponent, decorators: [{
105
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ZSchedulerToolBarComponent, decorators: [{
106
106
  type: Component,
107
107
  args: [{ selector: "zschedulertoolbar", template: `
108
108
  <div class="k-scheduler-navigation">
@@ -147,4 +147,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImpor
147
147
  type: HostListener,
148
148
  args: ["document:click", ["$event"]]
149
149
  }] } });
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoienNjaGVkdWxlci50b29sYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21taGdsb2JhbC1keW5hbWljZm9ybS9zcmMvbGliL3pzY2hlZHVsZXIvenNjaGVkdWxlci50b29sYmFyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9ELDZCQUE2QjtBQUU3Qiw4QkFBOEI7QUFDOUIsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQixPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0FBRzdDLDJDQUEyQztBQXVDM0MsTUFBTSxPQUFPLDBCQUEwQjtJQUtyQyxZQUFtQixjQUE4QjtRQUE5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFKeEMsVUFBSyxHQUFRLEVBQUUsQ0FBQztRQUV6QixpQkFBWSxHQUFHLEtBQUssQ0FBQztJQUUrQixDQUFDO0lBRTlDLEtBQUs7UUFDVixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQztZQUMzQixJQUFJLEVBQUUsT0FBTztTQUNkLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxJQUFJLENBQUMsS0FBVTtRQUNwQixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQztZQUMzQixJQUFJLEVBQUUsTUFBTTtTQUNiLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxJQUFJLENBQUMsS0FBVTtRQUNwQixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQztZQUMzQixJQUFJLEVBQUUsTUFBTTtTQUNiLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxLQUFVO1FBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQztZQUMzQixJQUFJLEVBQUUsYUFBYTtZQUNuQixJQUFJLEVBQUUsS0FBSztTQUNaLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixFQUFFLENBQUMsRUFBRSxDQUFDO2FBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDMUIsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsY0FBYyxDQUFDLE1BQWdCO1FBQzdCLElBQUksTUFBTSxLQUFLLEtBQUssRUFBRTtZQUNwQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztZQUMxQixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztJQUN6QyxDQUFDO0lBR00sT0FBTyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLEVBQUUsSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLElBQUksRUFBRTtZQUN0RCxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzVCO0lBQ0gsQ0FBQztJQUdNLGFBQWEsQ0FBQyxLQUFVO1FBQzdCLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEtBQUssZUFBZSxFQUFFO1lBQzlDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUN2QjthQUFNO1lBQ0wsSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLElBQUksRUFBRTtnQkFDOUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUM1QjtTQUNGO0lBQ0gsQ0FBQzs7dUhBakVVLDBCQUEwQjsyR0FBMUIsMEJBQTBCLHFOQWxDM0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQlQ7MkZBR1UsMEJBQTBCO2tCQXBDdEMsU0FBUzsrQkFDRSxtQkFBbUIsWUFDbkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQlQ7cUdBSVEsS0FBSztzQkFBYixLQUFLO2dCQUNVLFlBQVk7c0JBQTNCLEtBQUs7Z0JBZ0RDLE9BQU87c0JBRGIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBUTVCLGFBQWE7c0JBRG5CLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKiBBbmd1bGFyICoqKioqKioqKiovXHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIEhvc3RMaXN0ZW5lciB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG4vKioqKioqKioqKiBJb25pYyAqKioqKioqKioqL1xyXG5cclxuLyoqKioqKioqKiogUGx1Z2luICoqKioqKioqKiovXHJcbmltcG9ydCB7IG9mIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgZGVsYXksIHRha2UgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgVG9vbGJhclNlcnZpY2UgfSBmcm9tIFwiQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItc2NoZWR1bGVyXCI7XHJcblxyXG4vKioqKioqKioqKiBDb21wb25lbnQgJiBTZXJ2aWNlICoqKioqKioqKiovXHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwienNjaGVkdWxlcnRvb2xiYXJcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiBjbGFzcz1cImstc2NoZWR1bGVyLW5hdmlnYXRpb25cIj5cclxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImstbmF2LXRvZGF5XCIgKGNsaWNrKT1cInRvZGF5KClcIj5cclxuICAgICAgICBUb2RheVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImstbmF2LXByZXZcIiAoY2xpY2spPVwicHJldigkZXZlbnQpXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJrLWljb24gay1pLWFycm93LTYwLWxlZnRcIj48L3NwYW4+XHJcbiAgICAgIDwvYnV0dG9uPiAmbmJzcDtcclxuICAgICAgPHNwYW4+XHJcbiAgICAgICAgPGEgY2xhc3M9XCJrLW5hdi1jdXJyZW50XCIgI2FuY2hvclxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz1cImstaWNvbiBrLWktY2FsZW5kYXJcIj48L3NwYW4+IC0tPlxyXG4gICAgICAgICAge3sgc2VsZWN0ZWREYXRlIHwga2VuZG9EYXRlOiBcImRkLU1NTS15eXl5XCIgfX1cclxuICAgICAgICA8L2E+XHJcbiAgICAgIDwvc3Bhbj4gJm5ic3A7XHJcbiAgICAgIDxidXR0b24gY2xhc3M9XCJrLW5hdi1uZXh0XCIgKGNsaWNrKT1cIm5leHQoJGV2ZW50KVwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiay1pY29uIGstaS1hcnJvdy02MC1yaWdodFwiPjwvc3Bhbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxrZW5kby1wb3B1cFxyXG4gICAgICAgIHN0eWxlPVwibWFyZ2luOjE1cHggMHB4IDBweCAwcHg7XCJcclxuICAgICAgW2FuY2hvcl09XCJhbmNob3JcIlxyXG4gICAgICAoYW5jaG9yVmlld3BvcnRMZWF2ZSk9XCJzaG93Q2FsZW5kYXIgPSBmYWxzZVwiXHJcbiAgICAgICpuZ0lmPVwic2hvd0NhbGVuZGFyXCJcclxuICAgID5cclxuICAgICAgICA8a2VuZG8tY2FsZW5kYXJcclxuICAgICAgICAgIFtmb2N1c2VkRGF0ZV09XCJzZWxlY3RlZERhdGVcIlxyXG4gICAgICAgICAgKGJsdXIpPVwib25CbHVyX0NhbGVuZGFyKClcIlxyXG4gICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uQ2hhbmdlX0NhbGVuZGFyKCRldmVudClcIlxyXG4gICAgICAgID48L2tlbmRvLWNhbGVuZGFyPlxyXG4gICAgPC9rZW5kby1wb3B1cD5cclxuICBgLFxyXG4gIHN0eWxlVXJsczogW1wiLi96c2NoZWR1bGVyLnRvb2xiYXIuY29tcG9uZW50LmNzc1wiXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgWlNjaGVkdWxlclRvb2xCYXJDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIGxvY2FsOiBhbnkgPSB7fTtcclxuICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0ZWREYXRlOiBEYXRlO1xyXG4gIHNob3dDYWxlbmRhciA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdG9vbGJhclNlcnZpY2U6IFRvb2xiYXJTZXJ2aWNlKSB7fVxyXG5cclxuICBwdWJsaWMgdG9kYXkoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRvb2xiYXJTZXJ2aWNlLm5hdmlnYXRlKHtcclxuICAgICAgdHlwZTogXCJ0b2RheVwiXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZXh0KGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMudG9vbGJhclNlcnZpY2UubmF2aWdhdGUoe1xyXG4gICAgICB0eXBlOiBcIm5leHRcIlxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcHJldihldmVudDogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnRvb2xiYXJTZXJ2aWNlLm5hdmlnYXRlKHtcclxuICAgICAgdHlwZTogXCJwcmV2XCJcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2VfQ2FsZW5kYXIodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5sb2NhbC5pblByb2dyZXNzID0gdHJ1ZTtcclxuICAgIHRoaXMudG9vbGJhclNlcnZpY2UubmF2aWdhdGUoe1xyXG4gICAgICB0eXBlOiAnc2VsZWN0LWRhdGUnLFxyXG4gICAgICBkYXRlOiB2YWx1ZVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnRvZ2dsZUNhbGVuZGFyKCk7XHJcbiAgICBvZihbXSlcclxuICAgICAgLnBpcGUodGFrZSgxKSwgZGVsYXkoMTAwMCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gKHRoaXMubG9jYWwuaW5Qcm9ncmVzcyA9IGZhbHNlKSk7XHJcbiAgfVxyXG5cclxuICBvbkJsdXJfQ2FsZW5kYXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRvZ2dsZUNhbGVuZGFyKCk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVDYWxlbmRhcihzdGF0dXM/OiBib29sZWFuKSB7XHJcbiAgICBpZiAoc3RhdHVzID09PSBmYWxzZSkge1xyXG4gICAgICB0aGlzLnNob3dDYWxlbmRhciA9IGZhbHNlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnNob3dDYWxlbmRhciA9ICF0aGlzLnNob3dDYWxlbmRhcjtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoXCJrZXlkb3duXCIsIFtcIiRldmVudFwiXSlcclxuICBwdWJsaWMga2V5ZG93bihldmVudDogYW55KTogdm9pZCB7XHJcbiAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gMjcgJiYgdGhpcy5zaG93Q2FsZW5kYXIgPT09IHRydWUpIHtcclxuICAgICAgdGhpcy50b2dnbGVDYWxlbmRhcihmYWxzZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKFwiZG9jdW1lbnQ6Y2xpY2tcIiwgW1wiJGV2ZW50XCJdKVxyXG4gIHB1YmxpYyBkb2N1bWVudENsaWNrKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIGlmIChldmVudC50YXJnZXQuY2xhc3NOYW1lID09PSBcImstbmF2LWN1cnJlbnRcIikge1xyXG4gICAgICB0aGlzLnRvZ2dsZUNhbGVuZGFyKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5zaG93Q2FsZW5kYXIgPT09IHRydWUpIHtcclxuICAgICAgICB0aGlzLnRvZ2dsZUNhbGVuZGFyKGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoienNjaGVkdWxlci50b29sYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21taGdsb2JhbC1keW5hbWljZm9ybS9zcmMvbGliL3pzY2hlZHVsZXIvenNjaGVkdWxlci50b29sYmFyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9ELDZCQUE2QjtBQUU3Qiw4QkFBOEI7QUFDOUIsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQixPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0FBRzdDLDJDQUEyQztBQXVDM0MsTUFBTSxPQUFPLDBCQUEwQjtJQUtyQyxZQUFtQixjQUE4QjtRQUE5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFKeEMsVUFBSyxHQUFRLEVBQUUsQ0FBQztRQUV6QixpQkFBWSxHQUFHLEtBQUssQ0FBQztJQUUrQixDQUFDO0lBRTlDLEtBQUs7UUFDVixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQztZQUMzQixJQUFJLEVBQUUsT0FBTztTQUNkLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxJQUFJLENBQUMsS0FBVTtRQUNwQixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQztZQUMzQixJQUFJLEVBQUUsTUFBTTtTQUNiLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxJQUFJLENBQUMsS0FBVTtRQUNwQixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQztZQUMzQixJQUFJLEVBQUUsTUFBTTtTQUNiLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxLQUFVO1FBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQztZQUMzQixJQUFJLEVBQUUsYUFBYTtZQUNuQixJQUFJLEVBQUUsS0FBSztTQUNaLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixFQUFFLENBQUMsRUFBRSxDQUFDO2FBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDMUIsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsY0FBYyxDQUFDLE1BQWdCO1FBQzdCLElBQUksTUFBTSxLQUFLLEtBQUssRUFBRTtZQUNwQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztZQUMxQixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztJQUN6QyxDQUFDO0lBR00sT0FBTyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLEVBQUUsSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLElBQUksRUFBRTtZQUN0RCxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzVCO0lBQ0gsQ0FBQztJQUdNLGFBQWEsQ0FBQyxLQUFVO1FBQzdCLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEtBQUssZUFBZSxFQUFFO1lBQzlDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUN2QjthQUFNO1lBQ0wsSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLElBQUksRUFBRTtnQkFDOUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUM1QjtTQUNGO0lBQ0gsQ0FBQzs7d0hBakVVLDBCQUEwQjs0R0FBMUIsMEJBQTBCLHFOQWxDM0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQlQ7NEZBR1UsMEJBQTBCO2tCQXBDdEMsU0FBUzsrQkFDRSxtQkFBbUIsWUFDbkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQlQ7cUdBSVEsS0FBSztzQkFBYixLQUFLO2dCQUNVLFlBQVk7c0JBQTNCLEtBQUs7Z0JBZ0RDLE9BQU87c0JBRGIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBUTVCLGFBQWE7c0JBRG5CLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKiBBbmd1bGFyICoqKioqKioqKiovXHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIEhvc3RMaXN0ZW5lciB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG4vKioqKioqKioqKiBJb25pYyAqKioqKioqKioqL1xyXG5cclxuLyoqKioqKioqKiogUGx1Z2luICoqKioqKioqKiovXHJcbmltcG9ydCB7IG9mIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgZGVsYXksIHRha2UgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgVG9vbGJhclNlcnZpY2UgfSBmcm9tIFwiQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItc2NoZWR1bGVyXCI7XHJcblxyXG4vKioqKioqKioqKiBDb21wb25lbnQgJiBTZXJ2aWNlICoqKioqKioqKiovXHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwienNjaGVkdWxlcnRvb2xiYXJcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiBjbGFzcz1cImstc2NoZWR1bGVyLW5hdmlnYXRpb25cIj5cclxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImstbmF2LXRvZGF5XCIgKGNsaWNrKT1cInRvZGF5KClcIj5cclxuICAgICAgICBUb2RheVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImstbmF2LXByZXZcIiAoY2xpY2spPVwicHJldigkZXZlbnQpXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJrLWljb24gay1pLWFycm93LTYwLWxlZnRcIj48L3NwYW4+XHJcbiAgICAgIDwvYnV0dG9uPiAmbmJzcDtcclxuICAgICAgPHNwYW4+XHJcbiAgICAgICAgPGEgY2xhc3M9XCJrLW5hdi1jdXJyZW50XCIgI2FuY2hvclxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz1cImstaWNvbiBrLWktY2FsZW5kYXJcIj48L3NwYW4+IC0tPlxyXG4gICAgICAgICAge3sgc2VsZWN0ZWREYXRlIHwga2VuZG9EYXRlOiBcImRkLU1NTS15eXl5XCIgfX1cclxuICAgICAgICA8L2E+XHJcbiAgICAgIDwvc3Bhbj4gJm5ic3A7XHJcbiAgICAgIDxidXR0b24gY2xhc3M9XCJrLW5hdi1uZXh0XCIgKGNsaWNrKT1cIm5leHQoJGV2ZW50KVwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiay1pY29uIGstaS1hcnJvdy02MC1yaWdodFwiPjwvc3Bhbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxrZW5kby1wb3B1cFxyXG4gICAgICAgIHN0eWxlPVwibWFyZ2luOjE1cHggMHB4IDBweCAwcHg7XCJcclxuICAgICAgW2FuY2hvcl09XCJhbmNob3JcIlxyXG4gICAgICAoYW5jaG9yVmlld3BvcnRMZWF2ZSk9XCJzaG93Q2FsZW5kYXIgPSBmYWxzZVwiXHJcbiAgICAgICpuZ0lmPVwic2hvd0NhbGVuZGFyXCJcclxuICAgID5cclxuICAgICAgICA8a2VuZG8tY2FsZW5kYXJcclxuICAgICAgICAgIFtmb2N1c2VkRGF0ZV09XCJzZWxlY3RlZERhdGVcIlxyXG4gICAgICAgICAgKGJsdXIpPVwib25CbHVyX0NhbGVuZGFyKClcIlxyXG4gICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uQ2hhbmdlX0NhbGVuZGFyKCRldmVudClcIlxyXG4gICAgICAgID48L2tlbmRvLWNhbGVuZGFyPlxyXG4gICAgPC9rZW5kby1wb3B1cD5cclxuICBgLFxyXG4gIHN0eWxlVXJsczogW1wiLi96c2NoZWR1bGVyLnRvb2xiYXIuY29tcG9uZW50LmNzc1wiXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgWlNjaGVkdWxlclRvb2xCYXJDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIGxvY2FsOiBhbnkgPSB7fTtcclxuICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0ZWREYXRlOiBEYXRlO1xyXG4gIHNob3dDYWxlbmRhciA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdG9vbGJhclNlcnZpY2U6IFRvb2xiYXJTZXJ2aWNlKSB7fVxyXG5cclxuICBwdWJsaWMgdG9kYXkoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRvb2xiYXJTZXJ2aWNlLm5hdmlnYXRlKHtcclxuICAgICAgdHlwZTogXCJ0b2RheVwiXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZXh0KGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMudG9vbGJhclNlcnZpY2UubmF2aWdhdGUoe1xyXG4gICAgICB0eXBlOiBcIm5leHRcIlxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcHJldihldmVudDogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnRvb2xiYXJTZXJ2aWNlLm5hdmlnYXRlKHtcclxuICAgICAgdHlwZTogXCJwcmV2XCJcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2VfQ2FsZW5kYXIodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5sb2NhbC5pblByb2dyZXNzID0gdHJ1ZTtcclxuICAgIHRoaXMudG9vbGJhclNlcnZpY2UubmF2aWdhdGUoe1xyXG4gICAgICB0eXBlOiAnc2VsZWN0LWRhdGUnLFxyXG4gICAgICBkYXRlOiB2YWx1ZVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnRvZ2dsZUNhbGVuZGFyKCk7XHJcbiAgICBvZihbXSlcclxuICAgICAgLnBpcGUodGFrZSgxKSwgZGVsYXkoMTAwMCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gKHRoaXMubG9jYWwuaW5Qcm9ncmVzcyA9IGZhbHNlKSk7XHJcbiAgfVxyXG5cclxuICBvbkJsdXJfQ2FsZW5kYXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRvZ2dsZUNhbGVuZGFyKCk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVDYWxlbmRhcihzdGF0dXM/OiBib29sZWFuKSB7XHJcbiAgICBpZiAoc3RhdHVzID09PSBmYWxzZSkge1xyXG4gICAgICB0aGlzLnNob3dDYWxlbmRhciA9IGZhbHNlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnNob3dDYWxlbmRhciA9ICF0aGlzLnNob3dDYWxlbmRhcjtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoXCJrZXlkb3duXCIsIFtcIiRldmVudFwiXSlcclxuICBwdWJsaWMga2V5ZG93bihldmVudDogYW55KTogdm9pZCB7XHJcbiAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gMjcgJiYgdGhpcy5zaG93Q2FsZW5kYXIgPT09IHRydWUpIHtcclxuICAgICAgdGhpcy50b2dnbGVDYWxlbmRhcihmYWxzZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKFwiZG9jdW1lbnQ6Y2xpY2tcIiwgW1wiJGV2ZW50XCJdKVxyXG4gIHB1YmxpYyBkb2N1bWVudENsaWNrKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIGlmIChldmVudC50YXJnZXQuY2xhc3NOYW1lID09PSBcImstbmF2LWN1cnJlbnRcIikge1xyXG4gICAgICB0aGlzLnRvZ2dsZUNhbGVuZGFyKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5zaG93Q2FsZW5kYXIgPT09IHRydWUpIHtcclxuICAgICAgICB0aGlzLnRvZ2dsZUNhbGVuZGFyKGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=