devexpress-dashboard-angular 24.2.1-alpha-24260-0253 → 24.2.2-beta

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 (45) hide show
  1. package/esm2022/ui/dashboard-control/index.mjs +113 -1
  2. package/esm2022/ui/dashboard-control/nested/ajax-remote-service.mjs +75 -0
  3. package/esm2022/ui/dashboard-control/nested/chart-indicators.mjs +59 -0
  4. package/esm2022/ui/dashboard-control/nested/dashboard-export.mjs +91 -0
  5. package/esm2022/ui/dashboard-control/nested/dashboard-parameter-dialog.mjs +83 -0
  6. package/esm2022/ui/dashboard-control/nested/data-inspector.mjs +107 -0
  7. package/esm2022/ui/dashboard-control/nested/data-request-options.mjs +67 -0
  8. package/esm2022/ui/dashboard-control/nested/data-source-wizard.mjs +83 -0
  9. package/esm2022/ui/dashboard-control/nested/designer-toolbar.mjs +59 -0
  10. package/esm2022/ui/dashboard-control/nested/devexpress-dashboard-angular-ui-dashboard-control-nested.mjs +5 -0
  11. package/esm2022/ui/dashboard-control/nested/extensions.mjs +139 -0
  12. package/esm2022/ui/dashboard-control/nested/fetch-remote-service.mjs +67 -0
  13. package/esm2022/ui/dashboard-control/nested/index.mjs +17 -0
  14. package/esm2022/ui/dashboard-control/nested/item-binding-panel.mjs +59 -0
  15. package/esm2022/ui/dashboard-control/nested/item-options-panel.mjs +59 -0
  16. package/esm2022/ui/dashboard-control/nested/mobile-layout.mjs +59 -0
  17. package/esm2022/ui/dashboard-control/nested/text-box-item-editor.mjs +67 -0
  18. package/esm2022/ui/dashboard-control/nested/viewer-api.mjs +163 -0
  19. package/esm2022/ui/dashboard-control/nested/wizard-settings.mjs +83 -0
  20. package/fesm2022/devexpress-dashboard-angular-ui-dashboard-control-nested.mjs +1251 -0
  21. package/fesm2022/devexpress-dashboard-angular-ui-dashboard-control-nested.mjs.map +1 -0
  22. package/fesm2022/devexpress-dashboard-angular-ui-dashboard-control.mjs +99 -2
  23. package/fesm2022/devexpress-dashboard-angular-ui-dashboard-control.mjs.map +1 -1
  24. package/fesm2022/devexpress-dashboard-angular-ui-nested.mjs +1 -1
  25. package/fesm2022/devexpress-dashboard-angular-ui-nested.mjs.map +1 -1
  26. package/package.json +13 -6
  27. package/ui/dashboard-control/index.d.ts +3 -2
  28. package/ui/dashboard-control/nested/ajax-remote-service.d.ts +23 -0
  29. package/ui/dashboard-control/nested/chart-indicators.d.ts +19 -0
  30. package/ui/dashboard-control/nested/dashboard-export.d.ts +27 -0
  31. package/ui/dashboard-control/nested/dashboard-parameter-dialog.d.ts +25 -0
  32. package/ui/dashboard-control/nested/data-inspector.d.ts +31 -0
  33. package/ui/dashboard-control/nested/data-request-options.d.ts +21 -0
  34. package/ui/dashboard-control/nested/data-source-wizard.d.ts +26 -0
  35. package/ui/dashboard-control/nested/designer-toolbar.d.ts +19 -0
  36. package/ui/dashboard-control/nested/extensions.d.ts +144 -0
  37. package/ui/dashboard-control/nested/fetch-remote-service.d.ts +21 -0
  38. package/ui/dashboard-control/nested/index.d.ts +16 -0
  39. package/ui/dashboard-control/nested/item-binding-panel.d.ts +19 -0
  40. package/ui/dashboard-control/nested/item-options-panel.d.ts +19 -0
  41. package/ui/dashboard-control/nested/mobile-layout.d.ts +19 -0
  42. package/ui/dashboard-control/nested/package.json +3 -0
  43. package/ui/dashboard-control/nested/text-box-item-editor.d.ts +21 -0
  44. package/ui/dashboard-control/nested/viewer-api.d.ts +45 -0
  45. package/ui/dashboard-control/nested/wizard-settings.d.ts +25 -0
@@ -18,6 +18,22 @@ import { DxoMobileLayoutModule } from 'devexpress-dashboard-angular/ui/nested';
18
18
  import { DxoTextBoxItemEditorModule } from 'devexpress-dashboard-angular/ui/nested';
19
19
  import { DxoViewerApiModule } from 'devexpress-dashboard-angular/ui/nested';
20
20
  import { DxoFetchRemoteServiceModule } from 'devexpress-dashboard-angular/ui/nested';
21
+ import { DxoDashboardControlAjaxRemoteServiceModule } from 'devexpress-dashboard-angular/ui/dashboard-control/nested';
22
+ import { DxoDashboardControlDataRequestOptionsModule } from 'devexpress-dashboard-angular/ui/dashboard-control/nested';
23
+ import { DxoDashboardControlExtensionsModule } from 'devexpress-dashboard-angular/ui/dashboard-control/nested';
24
+ import { DxoDashboardControlChartIndicatorsModule } from 'devexpress-dashboard-angular/ui/dashboard-control/nested';
25
+ import { DxoDashboardControlDashboardExportModule } from 'devexpress-dashboard-angular/ui/dashboard-control/nested';
26
+ import { DxoDashboardControlDashboardParameterDialogModule } from 'devexpress-dashboard-angular/ui/dashboard-control/nested';
27
+ import { DxoDashboardControlDataInspectorModule } from 'devexpress-dashboard-angular/ui/dashboard-control/nested';
28
+ import { DxoDashboardControlDataSourceWizardModule } from 'devexpress-dashboard-angular/ui/dashboard-control/nested';
29
+ import { DxoDashboardControlWizardSettingsModule } from 'devexpress-dashboard-angular/ui/dashboard-control/nested';
30
+ import { DxoDashboardControlDesignerToolbarModule } from 'devexpress-dashboard-angular/ui/dashboard-control/nested';
31
+ import { DxoDashboardControlItemBindingPanelModule } from 'devexpress-dashboard-angular/ui/dashboard-control/nested';
32
+ import { DxoDashboardControlItemOptionsPanelModule } from 'devexpress-dashboard-angular/ui/dashboard-control/nested';
33
+ import { DxoDashboardControlMobileLayoutModule } from 'devexpress-dashboard-angular/ui/dashboard-control/nested';
34
+ import { DxoDashboardControlTextBoxItemEditorModule } from 'devexpress-dashboard-angular/ui/dashboard-control/nested';
35
+ import { DxoDashboardControlViewerApiModule } from 'devexpress-dashboard-angular/ui/dashboard-control/nested';
36
+ import { DxoDashboardControlFetchRemoteServiceModule } from 'devexpress-dashboard-angular/ui/dashboard-control/nested';
21
37
  import * as i0 from "@angular/core";
22
38
  import * as i1 from "devextreme-angular/core";
23
39
  /**
@@ -535,6 +551,22 @@ export class DxDashboardControlModule {
535
551
  DxoTextBoxItemEditorModule,
536
552
  DxoViewerApiModule,
537
553
  DxoFetchRemoteServiceModule,
554
+ DxoDashboardControlAjaxRemoteServiceModule,
555
+ DxoDashboardControlDataRequestOptionsModule,
556
+ DxoDashboardControlExtensionsModule,
557
+ DxoDashboardControlChartIndicatorsModule,
558
+ DxoDashboardControlDashboardExportModule,
559
+ DxoDashboardControlDashboardParameterDialogModule,
560
+ DxoDashboardControlDataInspectorModule,
561
+ DxoDashboardControlDataSourceWizardModule,
562
+ DxoDashboardControlWizardSettingsModule,
563
+ DxoDashboardControlDesignerToolbarModule,
564
+ DxoDashboardControlItemBindingPanelModule,
565
+ DxoDashboardControlItemOptionsPanelModule,
566
+ DxoDashboardControlMobileLayoutModule,
567
+ DxoDashboardControlTextBoxItemEditorModule,
568
+ DxoDashboardControlViewerApiModule,
569
+ DxoDashboardControlFetchRemoteServiceModule,
538
570
  DxIntegrationModule,
539
571
  DxTemplateModule], exports: [DxDashboardControlComponent, DxoAjaxRemoteServiceModule,
540
572
  DxoDataRequestOptionsModule,
@@ -552,6 +584,22 @@ export class DxDashboardControlModule {
552
584
  DxoTextBoxItemEditorModule,
553
585
  DxoViewerApiModule,
554
586
  DxoFetchRemoteServiceModule,
587
+ DxoDashboardControlAjaxRemoteServiceModule,
588
+ DxoDashboardControlDataRequestOptionsModule,
589
+ DxoDashboardControlExtensionsModule,
590
+ DxoDashboardControlChartIndicatorsModule,
591
+ DxoDashboardControlDashboardExportModule,
592
+ DxoDashboardControlDashboardParameterDialogModule,
593
+ DxoDashboardControlDataInspectorModule,
594
+ DxoDashboardControlDataSourceWizardModule,
595
+ DxoDashboardControlWizardSettingsModule,
596
+ DxoDashboardControlDesignerToolbarModule,
597
+ DxoDashboardControlItemBindingPanelModule,
598
+ DxoDashboardControlItemOptionsPanelModule,
599
+ DxoDashboardControlMobileLayoutModule,
600
+ DxoDashboardControlTextBoxItemEditorModule,
601
+ DxoDashboardControlViewerApiModule,
602
+ DxoDashboardControlFetchRemoteServiceModule,
555
603
  DxTemplateModule] });
556
604
  /** @nocollapse */ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DxDashboardControlModule, imports: [DxoAjaxRemoteServiceModule,
557
605
  DxoDataRequestOptionsModule,
@@ -569,6 +617,22 @@ export class DxDashboardControlModule {
569
617
  DxoTextBoxItemEditorModule,
570
618
  DxoViewerApiModule,
571
619
  DxoFetchRemoteServiceModule,
620
+ DxoDashboardControlAjaxRemoteServiceModule,
621
+ DxoDashboardControlDataRequestOptionsModule,
622
+ DxoDashboardControlExtensionsModule,
623
+ DxoDashboardControlChartIndicatorsModule,
624
+ DxoDashboardControlDashboardExportModule,
625
+ DxoDashboardControlDashboardParameterDialogModule,
626
+ DxoDashboardControlDataInspectorModule,
627
+ DxoDashboardControlDataSourceWizardModule,
628
+ DxoDashboardControlWizardSettingsModule,
629
+ DxoDashboardControlDesignerToolbarModule,
630
+ DxoDashboardControlItemBindingPanelModule,
631
+ DxoDashboardControlItemOptionsPanelModule,
632
+ DxoDashboardControlMobileLayoutModule,
633
+ DxoDashboardControlTextBoxItemEditorModule,
634
+ DxoDashboardControlViewerApiModule,
635
+ DxoDashboardControlFetchRemoteServiceModule,
572
636
  DxIntegrationModule,
573
637
  DxTemplateModule, DxoAjaxRemoteServiceModule,
574
638
  DxoDataRequestOptionsModule,
@@ -586,6 +650,22 @@ export class DxDashboardControlModule {
586
650
  DxoTextBoxItemEditorModule,
587
651
  DxoViewerApiModule,
588
652
  DxoFetchRemoteServiceModule,
653
+ DxoDashboardControlAjaxRemoteServiceModule,
654
+ DxoDashboardControlDataRequestOptionsModule,
655
+ DxoDashboardControlExtensionsModule,
656
+ DxoDashboardControlChartIndicatorsModule,
657
+ DxoDashboardControlDashboardExportModule,
658
+ DxoDashboardControlDashboardParameterDialogModule,
659
+ DxoDashboardControlDataInspectorModule,
660
+ DxoDashboardControlDataSourceWizardModule,
661
+ DxoDashboardControlWizardSettingsModule,
662
+ DxoDashboardControlDesignerToolbarModule,
663
+ DxoDashboardControlItemBindingPanelModule,
664
+ DxoDashboardControlItemOptionsPanelModule,
665
+ DxoDashboardControlMobileLayoutModule,
666
+ DxoDashboardControlTextBoxItemEditorModule,
667
+ DxoDashboardControlViewerApiModule,
668
+ DxoDashboardControlFetchRemoteServiceModule,
589
669
  DxTemplateModule] });
590
670
  }
591
671
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DxDashboardControlModule, decorators: [{
@@ -608,6 +688,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
608
688
  DxoTextBoxItemEditorModule,
609
689
  DxoViewerApiModule,
610
690
  DxoFetchRemoteServiceModule,
691
+ DxoDashboardControlAjaxRemoteServiceModule,
692
+ DxoDashboardControlDataRequestOptionsModule,
693
+ DxoDashboardControlExtensionsModule,
694
+ DxoDashboardControlChartIndicatorsModule,
695
+ DxoDashboardControlDashboardExportModule,
696
+ DxoDashboardControlDashboardParameterDialogModule,
697
+ DxoDashboardControlDataInspectorModule,
698
+ DxoDashboardControlDataSourceWizardModule,
699
+ DxoDashboardControlWizardSettingsModule,
700
+ DxoDashboardControlDesignerToolbarModule,
701
+ DxoDashboardControlItemBindingPanelModule,
702
+ DxoDashboardControlItemOptionsPanelModule,
703
+ DxoDashboardControlMobileLayoutModule,
704
+ DxoDashboardControlTextBoxItemEditorModule,
705
+ DxoDashboardControlViewerApiModule,
706
+ DxoDashboardControlFetchRemoteServiceModule,
611
707
  DxIntegrationModule,
612
708
  DxTemplateModule
613
709
  ],
@@ -632,8 +728,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
632
728
  DxoTextBoxItemEditorModule,
633
729
  DxoViewerApiModule,
634
730
  DxoFetchRemoteServiceModule,
731
+ DxoDashboardControlAjaxRemoteServiceModule,
732
+ DxoDashboardControlDataRequestOptionsModule,
733
+ DxoDashboardControlExtensionsModule,
734
+ DxoDashboardControlChartIndicatorsModule,
735
+ DxoDashboardControlDashboardExportModule,
736
+ DxoDashboardControlDashboardParameterDialogModule,
737
+ DxoDashboardControlDataInspectorModule,
738
+ DxoDashboardControlDataSourceWizardModule,
739
+ DxoDashboardControlWizardSettingsModule,
740
+ DxoDashboardControlDesignerToolbarModule,
741
+ DxoDashboardControlItemBindingPanelModule,
742
+ DxoDashboardControlItemOptionsPanelModule,
743
+ DxoDashboardControlMobileLayoutModule,
744
+ DxoDashboardControlTextBoxItemEditorModule,
745
+ DxoDashboardControlViewerApiModule,
746
+ DxoDashboardControlFetchRemoteServiceModule,
635
747
  DxTemplateModule
636
748
  ]
637
749
  }]
638
750
  }] });
639
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdWkvZGFzaGJvYXJkLWNvbnRyb2wvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0NBQW9DO0FBR3BDLE9BQU8sRUFFSCxTQUFTLEVBQ1QsUUFBUSxFQUdSLFdBQVcsRUFDWCxNQUFNLEVBRU4sS0FBSyxFQUNMLE1BQU0sRUFHVCxNQUFNLGVBQWUsQ0FBQztBQUt2QixPQUFPLGtCQUFrQixNQUFNLHdDQUF3QyxDQUFDO0FBR3hFLE9BQU8sRUFDSCxXQUFXLEVBQ1gsY0FBYyxFQUNkLG1CQUFtQixFQUNuQixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLGFBQWEsRUFDaEIsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNwRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNyRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNsRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNsRixPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMzRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNoRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNuRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNqRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNsRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNuRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx3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LHNCQUFzQjt3QkFDdEIseUJBQXlCO3dCQUN6Qix1QkFBdUI7d0JBQ3ZCLHdCQUF3Qjt3QkFDeEIseUJBQXlCO3dCQUN6Qix5QkFBeUI7d0JBQ3pCLHFCQUFxQjt3QkFDckIsMEJBQTBCO3dCQUMxQixrQkFBa0I7d0JBQ2xCLDJCQUEyQjt3QkFDM0IsbUJBQW1CO3dCQUNuQixnQkFBZ0I7cUJBQ2pCO29CQUNELFlBQVksRUFBRTt3QkFDWiwyQkFBMkI7cUJBQzVCO29CQUNELE9BQU8sRUFBRTt3QkFDUCwyQkFBMkI7d0JBQzNCLDBCQUEwQjt3QkFDMUIsMkJBQTJCO3dCQUMzQixtQkFBbUI7d0JBQ25CLHdCQUF3Qjt3QkFDeEIsd0JBQXdCO3dCQUN4QixpQ0FBaUM7d0JBQ2pDLHNCQUFzQjt3QkFDdEIseUJBQXlCO3dCQUN6Qix1QkFBdUI7d0JBQ3ZCLHdCQUF3Qjt3QkFDeEIseUJBQXlCO3dCQUN6Qix5QkFBeUI7d0JBQ3pCLHFCQUFxQjt3QkFDckIsMEJBQTBCO3dCQUMxQixrQkFBa0I7d0JBQ2xCLDJCQUEyQjt3QkFDM0IsZ0JBQWdCO3FCQUNqQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qIHRzbGludDpkaXNhYmxlOm1heC1saW5lLWxlbmd0aCAqL1xuXG5cbmltcG9ydCB7XG4gICAgVHJhbnNmZXJTdGF0ZSxcbiAgICBDb21wb25lbnQsXG4gICAgTmdNb2R1bGUsXG4gICAgRWxlbWVudFJlZixcbiAgICBOZ1pvbmUsXG4gICAgUExBVEZPUk1fSUQsXG4gICAgSW5qZWN0LFxuXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBFdmVudEVtaXR0ZXJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cblxuaW1wb3J0IHsgSURhc2hib2FyZERhdGFTb3VyY2VXaXphcmRTZXR0aW5ncyB9IGZyb20gJ2RldmV4cHJlc3MtZGFzaGJvYXJkL2Rlc2lnbmVyL2RhdGEtc291cmNlLXdpemFyZC9kYXRhLXNvdXJjZS13aXphcmQtZXh0ZW5zaW9uJztcblxuaW1wb3J0IER4RGFzaGJvYXJkQ29udHJvbCBmcm9tICdkZXZleHByZXNzLWRhc2hib2FyZC9pbnRlZ3JhdGlvbi9pbmRleCc7XG5cblxuaW1wb3J0IHtcbiAgICBEeENvbXBvbmVudCxcbiAgICBEeFRlbXBsYXRlSG9zdCxcbiAgICBEeEludGVncmF0aW9uTW9kdWxlLFxuICAgIER4VGVtcGxhdGVNb2R1bGUsXG4gICAgTmVzdGVkT3B0aW9uSG9zdCxcbiAgICBXYXRjaGVySGVscGVyXG59IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRHhvQWpheFJlbW90ZVNlcnZpY2VNb2R1bGUgfSBmcm9tICdkZXZleHByZXNzLWRhc2hib2FyZC1hbmd1bGFyL3VpL25lc3RlZCc7XG5pbXBvcnQgeyBEeG9EYXRhUmVxdWVzdE9wdGlvbnNNb2R1bGUgfSBmcm9tICdkZXZleHByZXNzLWRhc2hib2FyZC1hbmd1bGFyL3VpL25lc3RlZCc7XG5pbXBvcnQgeyBEeG9FeHRlbnNpb25zTW9kdWxlIH0gZnJvbSAnZGV2ZXhwcmVzcy1kYXNoYm9hcmQtYW5ndWxhci91aS9uZXN0ZWQnO1xuaW1wb3J0IHsgRHhvQ2hhcnRJbmRpY2F0b3JzTW9kdWxlIH0gZnJvbSAnZGV2ZXhwcmVzcy1kYXNoYm9hcmQtYW5ndWxhci91aS9uZXN0ZWQnO1xuaW1wb3J0IHsgRHhvRGFzaGJvYXJkRXhwb3J0TW9kdWxlIH0gZnJvbSAnZGV2ZXhwcmVzcy1kYXNoYm9hcmQtYW5ndWxhci91aS9uZXN0ZWQnO1xuaW1wb3J0IHsgRHhvRGFzaGJvYXJkUGFyYW1ldGVyRGlhbG9nTW9kdWxlIH0gZnJvbSAnZGV2ZXhwcmVzcy1kYXNoYm9hcmQtYW5ndWxhci91aS9uZXN0ZWQnO1xuaW1wb3J0IHsgRHhvRGF0YUluc3BlY3Rvck1vZHVsZSB9IGZyb20gJ2RldmV4cHJlc3MtZGFzaGJvYXJkLWFuZ3VsYXIvdWkvbmVzdGVkJztcbmltcG9ydCB7IER4b0RhdGFTb3VyY2VXaXphcmRNb2R1bGUgfSBmcm9tICdkZXZleHByZXNzLWRhc2hib2FyZC1hbmd1bGFyL3VpL25lc3RlZCc7XG5pbXBvcnQgeyBEeG9XaXphcmRTZXR0aW5nc01vZHVsZSB9IGZyb20gJ2RldmV4cHJlc3MtZGFzaGJvYXJkLWFuZ3VsYXIvdWkvbmVzdGVkJztcbmltcG9ydCB7IER4b0Rlc2lnbmVyVG9vbGJhck1vZHVsZSB9IGZyb20gJ2RldmV4cHJlc3MtZGFzaGJvYXJkLWFuZ3VsYXIvdWkvbmVzdGVkJztcbmltcG9ydCB7IER4b0l0ZW1CaW5kaW5nUGFuZWxNb2R1bGUgfSBmcm9tICdkZXZleHByZXNzLWRhc2hib2FyZC1hbmd1bGFyL3VpL25lc3RlZCc7XG5pbXBvcnQgeyBEeG9JdGVtT3B0aW9uc1BhbmVsTW9kdWxlIH0gZnJvbSAnZGV2ZXhwcmVzcy1kYXNoYm9hcmQtYW5ndWxhci91aS9uZXN0ZWQnO1xuaW1wb3J0IHsgRHhvTW9iaWxlTGF5b3V0TW9kdWxlIH0gZnJvbSAnZGV2ZXhwcmVzcy1kYXNoYm9hcmQtYW5ndWxhci91aS9uZXN0ZWQnO1xuaW1wb3J0IHsgRHhvVGV4dEJveEl0ZW1FZGl0b3JNb2R1bGUgfSBmcm9tICdkZXZleHByZXNzLWRhc2hib2FyZC1hbmd1bGFyL3VpL25lc3RlZCc7XG5pbXBvcnQgeyBEeG9WaWV3ZXJBcGlNb2R1bGUgfSBmcm9tICdkZXZleHByZXNzLWRhc2hib2FyZC1hbmd1bGFyL3VpL25lc3RlZCc7XG5pbXBvcnQgeyBEeG9GZXRjaFJlbW90ZVNlcnZpY2VNb2R1bGUgfSBmcm9tICdkZXZleHByZXNzLWRhc2hib2FyZC1hbmd1bGFyL3VpL25lc3RlZCc7XG5cblxuXG5cbi8qKlxuICogW2Rlc2NyOmR4RGFzaGJvYXJkQ29udHJvbF1cblxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2R4LWRhc2hib2FyZC1jb250cm9sJyxcbiAgICB0ZW1wbGF0ZTogJycsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIER4VGVtcGxhdGVIb3N0LFxuICAgICAgICBXYXRjaGVySGVscGVyLFxuICAgICAgICBOZXN0ZWRPcHRpb25Ib3N0XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBEeERhc2hib2FyZENvbnRyb2xDb21wb25lbnQgZXh0ZW5kcyBEeENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgaW5zdGFuY2U6IER4RGFzaGJvYXJkQ29udHJvbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBbZGVzY3I6ZHhEYXNoYm9hcmRDb250cm9sT3B0aW9ucy5hamF4UmVtb3RlU2VydmljZV1cbiAgICBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGdldCBhamF4UmVtb3RlU2VydmljZSgpOiB7IGJlZm9yZVNlbmQ/OiBGdW5jdGlvbiwgY29tcGxldGU/OiBGdW5jdGlvbiwgaGVhZGVycz86IGFueSB9IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignYWpheFJlbW90ZVNlcnZpY2UnKTtcbiAgICB9XG4gICAgc2V0IGFqYXhSZW1vdGVTZXJ2aWNlKHZhbHVlOiB7IGJlZm9yZVNlbmQ/OiBGdW5jdGlvbiwgY29tcGxldGU/OiBGdW5jdGlvbiwgaGVhZGVycz86IGFueSB9KSB7XG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignYWpheFJlbW90ZVNlcnZpY2UnLCB2YWx1ZSk7XG4gICAgfVxuXG5cbiAgICAvKipcbiAgICAgKiBbZGVzY3I6ZHhEYXNoYm9hcmRDb250cm9sT3B0aW9ucy5hbGxvd01heGltaXplSXRlbXNdXG4gICAgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBnZXQgYWxsb3dNYXhpbWl6ZUl0ZW1zKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdhbGxvd01heGltaXplSXRlbXMnKTtcbiAgICB9XG4gICAgc2V0IGFsbG93TWF4aW1pemVJdGVtcyh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ2FsbG93TWF4aW1pemVJdGVtcycsIHZhbHVlKTtcbiAgICB9XG5cblxuICAgIC8qKlxuICAgICAqIFtkZXNjcjpkeERhc2hib2FyZENvbnRyb2xPcHRpb25zLmRhc2hib2FyZElkXVxuICAgIFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGRhc2hib2FyZElkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ2Rhc2hib2FyZElkJyk7XG4gICAgfVxuICAgIHNldCBkYXNoYm9hcmRJZCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignZGFzaGJvYXJkSWQnLCB2YWx1ZSk7XG4gICAgfVxuXG5cbiAgICAvKipcbiAgICAgKiBbZGVzY3I6ZHhEYXNoYm9hcmRDb250cm9sT3B0aW9ucy5kYXRhUmVxdWVzdE9wdGlvbnNdXG4gICAgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBnZXQgZGF0YVJlcXVlc3RPcHRpb25zKCk6IHsgaXRlbURhdGFMb2FkaW5nTW9kZT86IHN0cmluZywgaXRlbURhdGFSZXF1ZXN0TW9kZT86IHN0cmluZyB9IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignZGF0YVJlcXVlc3RPcHRpb25zJyk7XG4gICAgfVxuICAgIHNldCBkYXRhUmVxdWVzdE9wdGlvbnModmFsdWU6IHsgaXRlbURhdGFMb2FkaW5nTW9kZT86IHN0cmluZywgaXRlbURhdGFSZXF1ZXN0TW9kZT86IHN0cmluZyB9KSB7XG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignZGF0YVJlcXVlc3RPcHRpb25zJywgdmFsdWUpO1xuICAgIH1cblxuXG4gICAgLyoqXG4gICAgICogW2Rlc2NyOmR4RGFzaGJvYXJkQ29udHJvbE9wdGlvbnMuZW5jb2RlSHRtbF1cbiAgICBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGdldCBlbmNvZGVIdG1sKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdlbmNvZGVIdG1sJyk7XG4gICAgfVxuICAgIHNldCBlbmNvZGVIdG1sKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignZW5jb2RlSHRtbCcsIHZhbHVlKTtcbiAgICB9XG5cblxuICAgIC8qKlxuICAgICAqIFtkZXNjcjpkeERhc2hib2FyZENvbnRyb2xPcHRpb25zLmVuZHBvaW50XVxuICAgIFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGVuZHBvaW50KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ2VuZHBvaW50Jyk7XG4gICAgfVxuICAgIHNldCBlbmRwb2ludCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignZW5kcG9pbnQnLCB2YWx1ZSk7XG4gICAgfVxuXG5cbiAgICAvKipcbiAgICAgKiBbZGVzY3I6ZHhEYXNoYm9hcmRDb250cm9sT3B0aW9ucy5leHRlbnNpb25zXVxuICAgIFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGV4dGVuc2lvbnMoKTogeyBjaGFydEluZGljYXRvcnM/OiB7IGN1c3RvbUluZGljYXRvclR5cGVzPzogYW55IH0sIGRhc2hib2FyZEV4cG9ydD86IHsgYWxsb3dFeHBvcnREYXNoYm9hcmQ/OiBib29sZWFuLCBhbGxvd0V4cG9ydERhc2hib2FyZEl0ZW1zPzogYm9vbGVhbiwgb25FeHBvcnREaWFsb2dIaWRkZW4/OiBGdW5jdGlvbiwgb25FeHBvcnREaWFsb2dTaG93aW5nPzogRnVuY3Rpb24sIG9uRXhwb3J0RGlhbG9nU2hvd24/OiBGdW5jdGlvbiB9LCBkYXNoYm9hcmRQYXJhbWV0ZXJEaWFsb2c/OiB7IG9uRHluYW1pY0xvb2tVcFZhbHVlc0xvYWRlZD86IEZ1bmN0aW9uLCBvbkhpZGRlbj86IEZ1bmN0aW9uLCBvblNob3dpbmc/OiBGdW5jdGlvbiwgb25TaG93bj86IEZ1bmN0aW9uIH0sIGRhdGFJbnNwZWN0b3I/OiB7IGFsbG93SW5zcGVjdEFnZ3JlZ2F0ZWREYXRhPzogYm9vbGVhbiwgYWxsb3dJbnNwZWN0UmF3RGF0YT86IGJvb2xlYW4sIG9uRGlhbG9nSGlkZGVuPzogRnVuY3Rpb24sIG9uRGlhbG9nU2hvd2luZz86IEZ1bmN0aW9uLCBvbkRpYWxvZ1Nob3duPzogRnVuY3Rpb24sIG9uR3JpZENvbnRlbnRSZWFkeT86IEZ1bmN0aW9uLCBvbkdyaWRJbml0aWFsaXplZD86IEZ1bmN0aW9uIH0sIGRhdGFTb3VyY2VXaXphcmQ/OiB7IGFsbG93Q3JlYXRlTmV3SnNvbkNvbm5lY3Rpb24/OiBib29sZWFuLCBlbmFibGVDdXN0b21TcWw/OiBib29sZWFuLCBvbkN1c3RvbWl6ZURhdGFTb3VyY2VXaXphcmQ/OiBGdW5jdGlvbiwgd2l6YXJkU2V0dGluZ3M/OiBJRGFzaGJvYXJkRGF0YVNvdXJjZVdpemFyZFNldHRpbmdzIH0sIGRlc2lnbmVyVG9vbGJhcj86IHsgb25QcmVwYXJpbmc/OiBGdW5jdGlvbiB9LCBpdGVtQmluZGluZ1BhbmVsPzogeyBvbkN1c3RvbWl6ZURhdGFJdGVtQ29udGFpbmVyU2VjdGlvbnM/OiBGdW5jdGlvbiB9LCBpdGVtT3B0aW9uc1BhbmVsPzogeyBvbkN1c3RvbWl6ZVNlY3Rpb25zPzogRnVuY3Rpb24gfSwgbW9iaWxlTGF5b3V0PzogeyBtb2JpbGVMYXlvdXRFbmFibGVkPzogc3RyaW5nIH0sIHRleHRCb3hJdGVtRWRpdG9yPzogeyBvblJpY2hFZGl0Q3JlYXRlZD86IEZ1bmN0aW9uLCBvblJpY2hFZGl0T3B0aW9uc1ByZXBhcmVkPzogRnVuY3Rpb24gfSwgdmlld2VyQXBpPzogeyBvbkRhc2hib2FyZFRpdGxlVG9vbGJhclVwZGF0ZWQ/OiBGdW5jdGlvbiwgb25JdGVtQWN0aW9uQXZhaWxhYmlsaXR5Q2hhbmdlZD86IEZ1bmN0aW9uLCBvbkl0ZW1DYXB0aW9uVG9vbGJhclVwZGF0ZWQ/OiBGdW5jdGlvbiwgb25JdGVtQ2xpY2s/OiBGdW5jdGlvbiwgb25JdGVtRHJpbGxEb3duU3RhdGVDaGFuZ2VkPzogRnVuY3Rpb24sIG9uSXRlbUVsZW1lbnRDdXN0b21Db2xvcj86IEZ1bmN0aW9uLCBvbkl0ZW1NYXN0ZXJGaWx0ZXJTdGF0ZUNoYW5nZWQ/OiBGdW5jdGlvbiwgb25JdGVtU2VsZWN0aW9uQ2hhbmdlZD86IEZ1bmN0aW9uLCBvbkl0ZW1WaXN1YWxJbnRlcmFjdGl2aXR5PzogRnVuY3Rpb24sIG9uSXRlbVdpZGdldENyZWF0ZWQ/OiBGdW5jdGlvbiwgb25JdGVtV2lkZ2V0T3B0aW9uc1ByZXBhcmVkPzogRnVuY3Rpb24sIG9uSXRlbVdpZGdldFVwZGF0ZWQ/OiBGdW5jdGlvbiwgb25JdGVtV2lkZ2V0VXBkYXRpbmc/OiBGdW5jdGlvbiwgb25TZWxlY3RlZFRhYlBhZ2VDaGFuZ2VkPzogRnVuY3Rpb24gfSB9IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignZXh0ZW5zaW9ucycpO1xuICAgIH1cbiAgICBzZXQgZXh0ZW5zaW9ucyh2YWx1ZTogeyBjaGFydEluZGljYXRvcnM/OiB7IGN1c3RvbUluZGljYXRvclR5cGVzPzogYW55IH0sIGRhc2hib2FyZEV4cG9ydD86IHsgYWxsb3dFeHBvcnREYXNoYm9hcmQ/OiBib29sZWFuLCBhbGxvd0V4cG9ydERhc2hib2FyZEl0ZW1zPzogYm9vbGVhbiwgb25FeHBvcnREaWFsb2dIaWRkZW4/OiBGdW5jdGlvbiwgb25FeHBvcnREaWFsb2dTaG93aW5nPzogRnVuY3Rpb24sIG9uRXhwb3J0RGlhbG9nU2hvd24/OiBGdW5jdGlvbiB9LCBkYXNoYm9hcmRQYXJhbWV0ZXJEaWFsb2c/OiB7IG9uRHluYW1pY0xvb2tVcFZhbHVlc0xvYWRlZD86IEZ1bmN0aW9uLCBvbkhpZGRlbj86IEZ1bmN0aW9uLCBvblNob3dpbmc/OiBGdW5jdGlvbiwgb25TaG93bj86IEZ1bmN0aW9uIH0sIGRhdGFJbnNwZWN0b3I/OiB7IGFsbG93SW5zcGVjdEFnZ3JlZ2F0ZWREYXRhPzogYm9vbGVhbiwgYWxsb3dJbnNwZWN0UmF3RGF0YT86IGJvb2xlYW4sIG9uRGlhbG9nSGlkZGVuPzogRnVuY3Rpb24sIG9uRGlhbG9nU2hvd2luZz86IEZ1bmN0aW9uLCBvbkRpYWxvZ1Nob3duPzogRnVuY3Rpb24sIG9uR3JpZENvbnRlbnRSZWFkeT86IEZ1bmN0aW9uLCBvbkdyaWRJbml0aWFsaXplZD86IEZ1bmN0aW9uIH0sIGRhdGFTb3VyY2VXaXphcmQ/OiB7IGFsbG93Q3JlYXRlTmV3SnNvbkNvbm5lY3Rpb24/OiBib29sZWFuLCBlbmFibGVDdXN0b21TcWw/OiBib29sZWFuLCBvbkN1c3RvbWl6ZURhdGFTb3VyY2VXaXphcmQ/OiBGdW5jdGlvbiwgd2l6YXJkU2V0dGluZ3M/OiBJRGFzaGJvYXJkRGF0YVNvdXJjZVdpemFyZFNldHRpbmdzIH0sIGRlc2lnbmVyVG9vbGJhcj86IHsgb25QcmVwYXJpbmc/OiBGdW5jdGlvbiB9LCBpdGVtQmluZGluZ1BhbmVsPzogeyBvbkN1c3RvbWl6ZURhdGFJdGVtQ29udGFpbmVyU2VjdGlvbnM/OiBGdW5jdGlvbiB9LCBpdGVtT3B0aW9uc1BhbmVsPzogeyBvbkN1c3RvbWl6ZVNlY3Rpb25zPzogRnVuY3Rpb24gfSwgbW9iaWxlTGF5b3V0PzogeyBtb2JpbGVMYXlvdXRFbmFibGVkPzogc3RyaW5nIH0sIHRleHRCb3hJdGVtRWRpdG9yPzogeyBvblJpY2hFZGl0Q3JlYXRlZD86IEZ1bmN0aW9uLCBvblJpY2hFZGl0T3B0aW9uc1ByZXBhcmVkPzogRnVuY3Rpb24gfSwgdmlld2VyQXBpPzogeyBvbkRhc2hib2FyZFRpdGxlVG9vbGJhclVwZGF0ZWQ/OiBGdW5jdGlvbiwgb25JdGVtQWN0aW9uQXZhaWxhYmlsaXR5Q2hhbmdlZD86IEZ1bmN0aW9uLCBvbkl0ZW1DYXB0aW9uVG9vbGJhclVwZGF0ZWQ/OiBGdW5jdGlvbiwgb25JdGVtQ2xpY2s/OiBGdW5jdGlvbiwgb25JdGVtRHJpbGxEb3duU3RhdGVDaGFuZ2VkPzogRnVuY3Rpb24sIG9uSXRlbUVsZW1lbnRDdXN0b21Db2xvcj86IEZ1bmN0aW9uLCBvbkl0ZW1NYXN0ZXJGaWx0ZXJTdGF0ZUNoYW5nZWQ/OiBGdW5jdGlvbiwgb25JdGVtU2VsZWN0aW9uQ2hhbmdlZD86IEZ1bmN0aW9uLCBvbkl0ZW1WaXN1YWxJbnRlcmFjdGl2aXR5PzogRnVuY3Rpb24sIG9uSXRlbVdpZGdldENyZWF0ZWQ/OiBGdW5jdGlvbiwgb25JdGVtV2lkZ2V0T3B0aW9uc1ByZXBhcmVkPzogRnVuY3Rpb24sIG9uSXRlbVdpZGdldFVwZGF0ZWQ/OiBGdW5jdGlvbiwgb25JdGVtV2lkZ2V0VXBkYXRpbmc/OiBGdW5jdGlvbiwgb25TZWxlY3RlZFRhYlBhZ2VDaGFuZ2VkPzogRnVuY3Rpb24gfSB9KSB7XG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignZXh0ZW5zaW9ucycsIHZhbHVlKTtcbiAgICB9XG5cblxuICAgIC8qKlxuICAgICAqIFtkZXNjcjpkeERhc2hib2FyZENvbnRyb2xPcHRpb25zLmZldGNoUmVtb3RlU2VydmljZV1cbiAgICBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGdldCBmZXRjaFJlbW90ZVNlcnZpY2UoKTogeyBiZWZvcmVTZW5kPzogRnVuY3Rpb24sIGhlYWRlcnM/OiBhbnkgfSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ2ZldGNoUmVtb3RlU2VydmljZScpO1xuICAgIH1cbiAgICBzZXQgZmV0Y2hSZW1vdGVTZXJ2aWNlKHZhbHVlOiB7IGJlZm9yZVNlbmQ/OiBGdW5jdGlvbiwgaGVhZGVycz86IGFueSB9KSB7XG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignZmV0Y2hSZW1vdGVTZXJ2aWNlJywgdmFsdWUpO1xuICAgIH1cblxuXG4gICAgLyoqXG4gICAgICogW2Rlc2NyOmR4RGFzaGJvYXJkQ29udHJvbE9wdGlvbnMuaW5pdGlhbERhc2hib2FyZElkXVxuICAgIFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGluaXRpYWxEYXNoYm9hcmRJZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdpbml0aWFsRGFzaGJvYXJkSWQnKTtcbiAgICB9XG4gICAgc2V0IGluaXRpYWxEYXNoYm9hcmRJZCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignaW5pdGlhbERhc2hib2FyZElkJywgdmFsdWUpO1xuICAgIH1cblxuXG4gICAgLyoqXG4gICAgICogW2Rlc2NyOmR4RGFzaGJvYXJkQ29udHJvbE9wdGlvbnMuaW5pdGlhbERhc2hib2FyZFN0YXRlXVxuICAgIFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGluaXRpYWxEYXNoYm9hcmRTdGF0ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdpbml0aWFsRGFzaGJvYXJkU3RhdGUnKTtcbiAgICB9XG4gICAgc2V0IGluaXRpYWxEYXNoYm9hcmRTdGF0ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignaW5pdGlhbERhc2hib2FyZFN0YXRlJywgdmFsdWUpO1xuICAgIH1cblxuXG4gICAgLyoqXG4gICAgICogW2Rlc2NyOmR4RGFzaGJvYXJkQ29udHJvbE9wdGlvbnMubGltaXRWaXNpYmxlRGF0YU1vZGVdXG4gICAgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBnZXQgbGltaXRWaXNpYmxlRGF0YU1vZGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignbGltaXRWaXNpYmxlRGF0YU1vZGUnKTtcbiAgICB9XG4gICAgc2V0IGxpbWl0VmlzaWJsZURhdGFNb2RlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdsaW1pdFZpc2libGVEYXRhTW9kZScsIHZhbHVlKTtcbiAgICB9XG5cblxuICAgIC8qKlxuICAgICAqIFtkZXNjcjpkeERhc2hib2FyZENvbnRyb2xPcHRpb25zLmxvYWREZWZhdWx0RGFzaGJvYXJkXVxuICAgIFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGxvYWREZWZhdWx0RGFzaGJvYXJkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdsb2FkRGVmYXVsdERhc2hib2FyZCcpO1xuICAgIH1cbiAgICBzZXQgbG9hZERlZmF1bHREYXNoYm9hcmQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdsb2FkRGVmYXVsdERhc2hib2FyZCcsIHZhbHVlKTtcbiAgICB9XG5cblxuICAgIC8qKlxuICAgICAqIFtkZXNjcjpkeERhc2hib2FyZENvbnRyb2xPcHRpb25zLm5vbmNlXVxuICAgIFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IG5vbmNlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ25vbmNlJyk7XG4gICAgfVxuICAgIHNldCBub25jZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignbm9uY2UnLCB2YWx1ZSk7XG4gICAgfVxuXG5cbiAgICAvKipcbiAgICAgKiBbZGVzY3I6ZHhEYXNoYm9hcmRDb250cm9sT3B0aW9ucy5yZXNpemVCeVRpbWVyXVxuICAgIFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IHJlc2l6ZUJ5VGltZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ3Jlc2l6ZUJ5VGltZXInKTtcbiAgICB9XG4gICAgc2V0IHJlc2l6ZUJ5VGltZXIodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdyZXNpemVCeVRpbWVyJywgdmFsdWUpO1xuICAgIH1cblxuXG4gICAgLyoqXG4gICAgICogW2Rlc2NyOmR4RGFzaGJvYXJkQ29udHJvbE9wdGlvbnMuc2hvd0NvbmZpcm1hdGlvbk9uQnJvd3NlckNsb3NpbmddXG4gICAgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBnZXQgc2hvd0NvbmZpcm1hdGlvbk9uQnJvd3NlckNsb3NpbmcoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ3Nob3dDb25maXJtYXRpb25PbkJyb3dzZXJDbG9zaW5nJyk7XG4gICAgfVxuICAgIHNldCBzaG93Q29uZmlybWF0aW9uT25Ccm93c2VyQ2xvc2luZyh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ3Nob3dDb25maXJtYXRpb25PbkJyb3dzZXJDbG9zaW5nJywgdmFsdWUpO1xuICAgIH1cblxuXG4gICAgLyoqXG4gICAgICogW2Rlc2NyOmR4RGFzaGJvYXJkQ29udHJvbE9wdGlvbnMudXNlTmV1dHJhbEZpbHRlck1vZGVdXG4gICAgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBnZXQgdXNlTmV1dHJhbEZpbHRlck1vZGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ3VzZU5ldXRyYWxGaWx0ZXJNb2RlJyk7XG4gICAgfVxuICAgIHNldCB1c2VOZXV0cmFsRmlsdGVyTW9kZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ3VzZU5ldXRyYWxGaWx0ZXJNb2RlJywgdmFsdWUpO1xuICAgIH1cblxuXG4gICAgLyoqXG4gICAgICogW2Rlc2NyOmR4RGFzaGJvYXJkQ29udHJvbE9wdGlvbnMud29ya2luZ01vZGVdXG4gICAgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBnZXQgd29ya2luZ01vZGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignd29ya2luZ01vZGUnKTtcbiAgICB9XG4gICAgc2V0IHdvcmtpbmdNb2RlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCd3b3JraW5nTW9kZScsIHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICBcbiAgICAgKiBbZGVzY3I6ZHhEYXNoYm9hcmRDb250cm9sT3B0aW9ucy5vbkJlZm9yZVJlbmRlcl1cbiAgICBcbiAgICBcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgb25CZWZvcmVSZW5kZXI6IEV2ZW50RW1pdHRlcjxhbnk+O1xuXG4gICAgLyoqXG4gICAgXG4gICAgICogW2Rlc2NyOmR4RGFzaGJvYXJkQ29udHJvbE9wdGlvbnMub25EYXNoYm9hcmRCZWdpblVwZGF0ZV1cbiAgICBcbiAgICBcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgb25EYXNoYm9hcmRCZWdpblVwZGF0ZTogRXZlbnRFbWl0dGVyPGFueT47XG5cbiAgICAvKipcbiAgICBcbiAgICAgKiBbZGVzY3I6ZHhEYXNoYm9hcmRDb250cm9sT3B0aW9ucy5vbkRhc2hib2FyZEVuZFVwZGF0ZV1cbiAgICBcbiAgICBcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgb25EYXNoYm9hcmRFbmRVcGRhdGU6IEV2ZW50RW1pdHRlcjxhbnk+O1xuXG4gICAgLyoqXG4gICAgXG4gICAgICogW2Rlc2NyOmR4RGFzaGJvYXJkQ29udHJvbE9wdGlvbnMub25EYXNoYm9hcmRJbml0aWFsaXplZF1cbiAgICBcbiAgICBcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgb25EYXNoYm9hcmRJbml0aWFsaXplZDogRXZlbnRFbWl0dGVyPGFueT47XG5cbiAgICAvKipcbiAgICBcbiAgICAgKiBbZGVzY3I6ZHhEYXNoYm9hcmRDb250cm9sT3B0aW9ucy5vbkRhc2hib2FyZEluaXRpYWxpemluZ11cbiAgICBcbiAgICBcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgb25EYXNoYm9hcmRJbml0aWFsaXppbmc6IEV2ZW50RW1pdHRlcjxhbnk+O1xuXG4gICAgLyoqXG4gICAgXG4gICAgICogW2Rlc2NyOmR4RGFzaGJvYXJkQ29udHJvbE9wdGlvbnMub25EYXNoYm9hcmRTdGF0ZUNoYW5nZWRdXG4gICAgXG4gICAgXG4gICAgICovXG4gICAgQE91dHB1dCgpIG9uRGFzaGJvYXJkU3RhdGVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PjtcblxuICAgIC8qKlxuICAgIFxuICAgICAqIFtkZXNjcjpkeERhc2hib2FyZENvbnRyb2xPcHRpb25zLm9uSW5pdGlhbGl6aW5nXVxuICAgIFxuICAgIFxuICAgICAqL1xuICAgIEBPdXRwdXQoKSBvbkluaXRpYWxpemluZzogRXZlbnRFbWl0dGVyPGFueT47XG5cbiAgICAvKipcbiAgICBcbiAgICAgKiBbZGVzY3I6ZHhEYXNoYm9hcmRDb250cm9sT3B0aW9ucy5vbkl0ZW1CZWdpblVwZGF0ZV1cbiAgICBcbiAgICBcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgb25JdGVtQmVnaW5VcGRhdGU6IEV2ZW50RW1pdHRlcjxhbnk+O1xuXG4gICAgLyoqXG4gICAgXG4gICAgICogW2Rlc2NyOmR4RGFzaGJvYXJkQ29udHJvbE9wdGlvbnMub25JdGVtRW5kVXBkYXRlXVxuICAgIFxuICAgIFxuICAgICAqL1xuICAgIEBPdXRwdXQoKSBvbkl0ZW1FbmRVcGRhdGU6IEV2ZW50RW1pdHRlcjxhbnk+O1xuXG4gICAgLyoqXG4gICAgXG4gICAgICogW2Rlc2NyOmR4RGFzaGJvYXJkQ29udHJvbE9wdGlvbnMub25PcHRpb25DaGFuZ2VkXVxuICAgIFxuICAgIFxuICAgICAqL1xuICAgIEBPdXRwdXQoKSBvbk9wdGlvbkNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxhbnk+O1xuXG4gICAgLyoqXG4gICAgXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cbiAgICBcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgYWpheFJlbW90ZVNlcnZpY2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjx7IGJlZm9yZVNlbmQ/OiBGdW5jdGlvbiwgY29tcGxldGU/OiBGdW5jdGlvbiwgaGVhZGVycz86IGFueSB9PjtcblxuICAgIC8qKlxuICAgIFxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXG4gICAgXG4gICAgICovXG4gICAgQE91dHB1dCgpIGFsbG93TWF4aW1pemVJdGVtc0NoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+O1xuXG4gICAgLyoqXG4gICAgXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cbiAgICBcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgZGFzaGJvYXJkSWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+O1xuXG4gICAgLyoqXG4gICAgXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cbiAgICBcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgZGF0YVJlcXVlc3RPcHRpb25zQ2hhbmdlOiBFdmVudEVtaXR0ZXI8eyBpdGVtRGF0YUxvYWRpbmdNb2RlPzogc3RyaW5nLCBpdGVtRGF0YVJlcXVlc3RNb2RlPzogc3RyaW5nIH0+O1xuXG4gICAgLyoqXG4gICAgXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cbiAgICBcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgZW5jb2RlSHRtbENoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+O1xuXG4gICAgLyoqXG4gICAgXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cbiAgICBcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgZW5kcG9pbnRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+O1xuXG4gICAgLyoqXG4gICAgXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cbiAgICBcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgZXh0ZW5zaW9uc0NoYW5nZTogRXZlbnRFbWl0dGVyPHsgY2hhcnRJbmRpY2F0b3JzPzogeyBjdXN0b21JbmRpY2F0b3JUeXBlcz86IGFueSB9LCBkYXNoYm9hcmRFeHBvcnQ/OiB7IGFsbG93RXhwb3J0RGFzaGJvYXJkPzogYm9vbGVhbiwgYWxsb3dFeHBvcnREYXNoYm9hcmRJdGVtcz86IGJvb2xlYW4sIG9uRXhwb3J0RGlhbG9nSGlkZGVuPzogRnVuY3Rpb24sIG9uRXhwb3J0RGlhbG9nU2hvd2luZz86IEZ1bmN0aW9uLCBvbkV4cG9ydERpYWxvZ1Nob3duPzogRnVuY3Rpb24gfSwgZGFzaGJvYXJkUGFyYW1ldGVyRGlhbG9nPzogeyBvbkR5bmFtaWNMb29rVXBWYWx1ZXNMb2FkZWQ/OiBGdW5jdGlvbiwgb25IaWRkZW4/OiBGdW5jdGlvbiwgb25TaG93aW5nPzogRnVuY3Rpb24sIG9uU2hvd24/OiBGdW5jdGlvbiB9LCBkYXRhSW5zcGVjdG9yPzogeyBhbGxvd0luc3BlY3RBZ2dyZWdhdGVkRGF0YT86IGJvb2xlYW4sIGFsbG93SW5zcGVjdFJhd0RhdGE/OiBib29sZWFuLCBvbkRpYWxvZ0hpZGRlbj86IEZ1bmN0aW9uLCBvbkRpYWxvZ1Nob3dpbmc/OiBGdW5jdGlvbiwgb25EaWFsb2dTaG93bj86IEZ1bmN0aW9uLCBvbkdyaWRDb250ZW50UmVhZHk/OiBGdW5jdGlvbiwgb25HcmlkSW5pdGlhbGl6ZWQ/OiBGdW5jdGlvbiB9LCBkYXRhU291cmNlV2l6YXJkPzogeyBhbGxvd0NyZWF0ZU5ld0pzb25Db25uZWN0aW9uPzogYm9vbGVhbiwgZW5hYmxlQ3VzdG9tU3FsPzogYm9vbGVhbiwgb25DdXN0b21pemVEYXRhU291cmNlV2l6YXJkPzogRnVuY3Rpb24sIHdpemFyZFNldHRpbmdzPzogSURhc2hib2FyZERhdGFTb3VyY2VXaXphcmRTZXR0aW5ncyB9LCBkZXNpZ25lclRvb2xiYXI/OiB7IG9uUHJlcGFyaW5nPzogRnVuY3Rpb24gfSwgaXRlbUJpbmRpbmdQYW5lbD86IHsgb25DdXN0b21pemVEYXRhSXRlbUNvbnRhaW5lclNlY3Rpb25zPzogRnVuY3Rpb24gfSwgaXRlbU9wdGlvbnNQYW5lbD86IHsgb25DdXN0b21pemVTZWN0aW9ucz86IEZ1bmN0aW9uIH0sIG1vYmlsZUxheW91dD86IHsgbW9iaWxlTGF5b3V0RW5hYmxlZD86IHN0cmluZyB9LCB0ZXh0Qm94SXRlbUVkaXRvcj86IHsgb25SaWNoRWRpdENyZWF0ZWQ/OiBGdW5jdGlvbiwgb25SaWNoRWRpdE9wdGlvbnNQcmVwYXJlZD86IEZ1bmN0aW9uIH0sIHZpZXdlckFwaT86IHsgb25EYXNoYm9hcmRUaXRsZVRvb2xiYXJVcGRhdGVkPzogRnVuY3Rpb24sIG9uSXRlbUFjdGlvbkF2YWlsYWJpbGl0eUNoYW5nZWQ/OiBGdW5jdGlvbiwgb25JdGVtQ2FwdGlvblRvb2xiYXJVcGRhdGVkPzogRnVuY3Rpb24sIG9uSXRlbUNsaWNrPzogRnVuY3Rpb24sIG9uSXRlbURyaWxsRG93blN0YXRlQ2hhbmdlZD86IEZ1bmN0aW9uLCBvbkl0ZW1FbGVtZW50Q3VzdG9tQ29sb3I/OiBGdW5jdGlvbiwgb25JdGVtTWFzdGVyRmlsdGVyU3RhdGVDaGFuZ2VkPzogRnVuY3Rpb24sIG9uSXRlbVNlbGVjdGlvbkNoYW5nZWQ/OiBGdW5jdGlvbiwgb25JdGVtVmlzdWFsSW50ZXJhY3Rpdml0eT86IEZ1bmN0aW9uLCBvbkl0ZW1XaWRnZXRDcmVhdGVkPzogRnVuY3Rpb24sIG9uSXRlbVdpZGdldE9wdGlvbnNQcmVwYXJlZD86IEZ1bmN0aW9uLCBvbkl0ZW1XaWRnZXRVcGRhdGVkPzogRnVuY3Rpb24sIG9uSXRlbVdpZGdldFVwZGF0aW5nPzogRnVuY3Rpb24sIG9uU2VsZWN0ZWRUYWJQYWdlQ2hhbmdlZD86IEZ1bmN0aW9uIH0gfT47XG5cbiAgICAvKipcbiAgICBcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxuICAgIFxuICAgICAqL1xuICAgIEBPdXRwdXQoKSBmZXRjaFJlbW90ZVNlcnZpY2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjx7IGJlZm9yZVNlbmQ/OiBGdW5jdGlvbiwgaGVhZGVycz86IGFueSB9PjtcblxuICAgIC8qKlxuICAgIFxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXG4gICAgXG4gICAgICovXG4gICAgQE91dHB1dCgpIGluaXRpYWxEYXNoYm9hcmRJZENoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz47XG5cbiAgICAvKipcbiAgICBcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxuICAgIFxuICAgICAqL1xuICAgIEBPdXRwdXQoKSBpbml0aWFsRGFzaGJvYXJkU3RhdGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+O1xuXG4gICAgLyoqXG4gICAgXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cbiAgICBcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgbGltaXRWaXNpYmxlRGF0YU1vZGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+O1xuXG4gICAgLyoqXG4gICAgXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cbiAgICBcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgbG9hZERlZmF1bHREYXNoYm9hcmRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcblxuICAgIC8qKlxuICAgIFxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXG4gICAgXG4gICAgICovXG4gICAgQE91dHB1dCgpIG5vbmNlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPjtcblxuICAgIC8qKlxuICAgIFxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXG4gICAgXG4gICAgICovXG4gICAgQE91dHB1dCgpIHJlc2l6ZUJ5VGltZXJDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcblxuICAgIC8qKlxuICAgIFxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXG4gICAgXG4gICAgICovXG4gICAgQE91dHB1dCgpIHNob3dDb25maXJtYXRpb25PbkJyb3dzZXJDbG9zaW5nQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj47XG5cbiAgICAvKipcbiAgICBcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxuICAgIFxuICAgICAqL1xuICAgIEBPdXRwdXQoKSB1c2VOZXV0cmFsRmlsdGVyTW9kZUNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+O1xuXG4gICAgLyoqXG4gICAgXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cbiAgICBcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgd29ya2luZ01vZGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+O1xuXG5cblxuXG5cblxuXG4gICAgY29uc3RydWN0b3IoZWxlbWVudFJlZjogRWxlbWVudFJlZiwgbmdab25lOiBOZ1pvbmUsIHRlbXBsYXRlSG9zdDogRHhUZW1wbGF0ZUhvc3QsXG4gICAgICAgICAgICBfd2F0Y2hlckhlbHBlcjogV2F0Y2hlckhlbHBlcixcbiAgICAgICAgICAgIG9wdGlvbkhvc3Q6IE5lc3RlZE9wdGlvbkhvc3QsXG4gICAgICAgICAgICB0cmFuc2ZlclN0YXRlOiBUcmFuc2ZlclN0YXRlLFxuICAgICAgICAgICAgQEluamVjdChQTEFURk9STV9JRCkgcGxhdGZvcm1JZDogYW55KSB7XG5cbiAgICAgICAgc3VwZXIoZWxlbWVudFJlZiwgbmdab25lLCB0ZW1wbGF0ZUhvc3QsIF93YXRjaGVySGVscGVyLCB0cmFuc2ZlclN0YXRlLCBwbGF0Zm9ybUlkKTtcblxuICAgICAgICB0aGlzLl9jcmVhdGVFdmVudEVtaXR0ZXJzKFtcbiAgICAgICAgICAgIHsgc3Vic2NyaWJlOiAnYmVmb3JlUmVuZGVyJywgZW1pdDogJ29uQmVmb3JlUmVuZGVyJyB9LFxuICAgICAgICAgICAgeyBzdWJzY3JpYmU6ICdkYXNoYm9hcmRCZWdpblVwZGF0ZScsIGVtaXQ6ICdvbkRhc2hib2FyZEJlZ2luVXBkYXRlJyB9LFxuICAgICAgICAgICAgeyBzdWJzY3JpYmU6ICdkYXNoYm9hcmRFbmRVcGRhdGUnLCBlbWl0OiAnb25EYXNoYm9hcmRFbmRVcGRhdGUnIH0sXG4gICAgICAgICAgICB7IHN1YnNjcmliZTogJ2Rhc2hib2FyZEluaXRpYWxpemVkJywgZW1pdDogJ29uRGFzaGJvYXJkSW5pdGlhbGl6ZWQnIH0sXG4gICAgICAgICAgICB7IHN1YnNjcmliZTogJ2Rhc2hib2FyZEluaXRpYWxpemluZycsIGVtaXQ6ICdvbkRhc2hib2FyZEluaXRpYWxpemluZycgfSxcbiAgICAgICAgICAgIHsgc3Vic2NyaWJlOiAnZGFzaGJvYXJkU3RhdGVDaGFuZ2VkJywgZW1pdDogJ29uRGFzaGJvYXJkU3RhdGVDaGFuZ2VkJyB9LFxuICAgICAgICAgICAgeyBzdWJzY3JpYmU6ICdpbml0aWFsaXppbmcnLCBlbWl0OiAnb25Jbml0aWFsaXppbmcnIH0sXG4gICAgICAgICAgICB7IHN1YnNjcmliZTogJ2l0ZW1CZWdpblVwZGF0ZScsIGVtaXQ6ICdvbkl0ZW1CZWdpblVwZGF0ZScgfSxcbiAgICAgICAgICAgIHsgc3Vic2NyaWJlOiAnaXRlbUVuZFVwZGF0ZScsIGVtaXQ6ICdvbkl0ZW1FbmRVcGRhdGUnIH0sXG4gICAgICAgICAgICB7IHN1YnNjcmliZTogJ29wdGlvbkNoYW5nZWQnLCBlbWl0OiAnb25PcHRpb25DaGFuZ2VkJyB9LFxuICAgICAgICAgICAgeyBlbWl0OiAnYWpheFJlbW90ZVNlcnZpY2VDaGFuZ2UnIH0sXG4gICAgICAgICAgICB7IGVtaXQ6ICdhbGxvd01heGltaXplSXRlbXNDaGFuZ2UnIH0sXG4gICAgICAgICAgICB7IGVtaXQ6ICdkYXNoYm9hcmRJZENoYW5nZScgfSxcbiAgICAgICAgICAgIHsgZW1pdDogJ2RhdGFSZXF1ZXN0T3B0aW9uc0NoYW5nZScgfSxcbiAgICAgICAgICAgIHsgZW1pdDogJ2VuY29kZUh0bWxDaGFuZ2UnIH0sXG4gICAgICAgICAgICB7IGVtaXQ6ICdlbmRwb2ludENoYW5nZScgfSxcbiAgICAgICAgICAgIHsgZW1pdDogJ2V4dGVuc2lvbnNDaGFuZ2UnIH0sXG4gICAgICAgICAgICB7IGVtaXQ6ICdmZXRjaFJlbW90ZVNlcnZpY2VDaGFuZ2UnIH0sXG4gICAgICAgICAgICB7IGVtaXQ6ICdpbml0aWFsRGFzaGJvYXJkSWRDaGFuZ2UnIH0sXG4gICAgICAgICAgICB7IGVtaXQ6ICdpbml0aWFsRGFzaGJvYXJkU3RhdGVDaGFuZ2UnIH0sXG4gICAgICAgICAgICB7IGVtaXQ6ICdsaW1pdFZpc2libGVEYXRhTW9kZUNoYW5nZScgfSxcbiAgICAgICAgICAgIHsgZW1pdDogJ2xvYWREZWZhdWx0RGFzaGJvYXJkQ2hhbmdlJyB9LFxuICAgICAgICAgICAgeyBlbWl0OiAnbm9uY2VDaGFuZ2UnIH0sXG4gICAgICAgICAgICB7IGVtaXQ6ICdyZXNpemVCeVRpbWVyQ2hhbmdlJyB9LFxuICAgICAgICAgICAgeyBlbWl0OiAnc2hvd0NvbmZpcm1hdGlvbk9uQnJvd3NlckNsb3NpbmdDaGFuZ2UnIH0sXG4gICAgICAgICAgICB7IGVtaXQ6ICd1c2VOZXV0cmFsRmlsdGVyTW9kZUNoYW5nZScgfSxcbiAgICAgICAgICAgIHsgZW1pdDogJ3dvcmtpbmdNb2RlQ2hhbmdlJyB9XG4gICAgICAgIF0pO1xuICAgICAgICBvcHRpb25Ib3N0LnNldEhvc3QodGhpcyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9jcmVhdGVJbnN0YW5jZShlbGVtZW50LCBvcHRpb25zKSB7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBEeERhc2hib2FyZENvbnRyb2woZWxlbWVudCwgb3B0aW9ucyk7XG4gICAgfVxuXG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5fZGVzdHJveVdpZGdldCgpO1xuICAgIH1cblxufVxuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgRHhvQWpheFJlbW90ZVNlcnZpY2VNb2R1bGUsXG4gICAgRHhvRGF0YVJlcXVlc3RPcHRpb25zTW9kdWxlLFxuICAgIER4b0V4dGVuc2lvbnNNb2R1bGUsXG4gICAgRHhvQ2hhcnRJbmRpY2F0b3JzTW9kdWxlLFxuICAgIER4b0Rhc2hib2FyZEV4cG9ydE1vZHVsZSxcbiAgICBEeG9EYXNoYm9hcmRQYXJhbWV0ZXJEaWFsb2dNb2R1bGUsXG4gICAgRHhvRGF0YUluc3BlY3Rvck1vZHVsZSxcbiAgICBEeG9EYXRhU291cmNlV2l6YXJkTW9kdWxlLFxuICAgIER4b1dpemFyZFNldHRpbmdzTW9kdWxlLFxuICAgIER4b0Rlc2lnbmVyVG9vbGJhck1vZHVsZSxcbiAgICBEeG9JdGVtQmluZGluZ1BhbmVsTW9kdWxlLFxuICAgIER4b0l0ZW1PcHRpb25zUGFuZWxNb2R1bGUsXG4gICAgRHhvTW9iaWxlTGF5b3V0TW9kdWxlLFxuICAgIER4b1RleHRCb3hJdGVtRWRpdG9yTW9kdWxlLFxuICAgIER4b1ZpZXdlckFwaU1vZHVsZSxcbiAgICBEeG9GZXRjaFJlbW90ZVNlcnZpY2VNb2R1bGUsXG4gICAgRHhJbnRlZ3JhdGlvbk1vZHVsZSxcbiAgICBEeFRlbXBsYXRlTW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIER4RGFzaGJvYXJkQ29udHJvbENvbXBvbmVudFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgRHhEYXNoYm9hcmRDb250cm9sQ29tcG9uZW50LFxuICAgIER4b0FqYXhSZW1vdGVTZXJ2aWNlTW9kdWxlLFxuICAgIER4b0RhdGFSZXF1ZXN0T3B0aW9uc01vZHVsZSxcbiAgICBEeG9FeHRlbnNpb25zTW9kdWxlLFxuICAgIER4b0NoYXJ0SW5kaWNhdG9yc01vZHVsZSxcbiAgICBEeG9EYXNoYm9hcmRFeHBvcnRNb2R1bGUsXG4gICAgRHhvRGFzaGJvYXJkUGFyYW1ldGVyRGlhbG9nTW9kdWxlLFxuICAgIER4b0RhdGFJbnNwZWN0b3JNb2R1bGUsXG4gICAgRHhvRGF0YVNvdXJjZVdpemFyZE1vZHVsZSxcbiAgICBEeG9XaXphcmRTZXR0aW5nc01vZHVsZSxcbiAgICBEeG9EZXNpZ25lclRvb2xiYXJNb2R1bGUsXG4gICAgRHhvSXRlbUJpbmRpbmdQYW5lbE1vZHVsZSxcbiAgICBEeG9JdGVtT3B0aW9uc1BhbmVsTW9kdWxlLFxuICAgIER4b01vYmlsZUxheW91dE1vZHVsZSxcbiAgICBEeG9UZXh0Qm94SXRlbUVkaXRvck1vZHVsZSxcbiAgICBEeG9WaWV3ZXJBcGlNb2R1bGUsXG4gICAgRHhvRmV0Y2hSZW1vdGVTZXJ2aWNlTW9kdWxlLFxuICAgIER4VGVtcGxhdGVNb2R1bGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBEeERhc2hib2FyZENvbnRyb2xNb2R1bGUgeyB9XG5cblxuIl19
751
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdWkvZGFzaGJvYXJkLWNvbnRyb2wvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0NBQW9DO0FBR3BDLE9BQU8sRUFFSCxTQUFTLEVBQ1QsUUFBUSxFQUdSLFdBQVcsRUFDWCxNQUFNLEVBRU4sS0FBSyxFQUNMLE1BQU0sRUFHVCxNQUFNLGVBQWUsQ0FBQztBQUt2QixPQUFPLGtCQUFrQixNQUFNLHdDQUF3QyxDQUFDO0FBR3hFLE9BQU8sRUFDSCxXQUFXLEVBQ1gsY0FBYyxFQUNkLG1CQUFtQixFQUNuQixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLGFBQWEsRUFDaEIsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNwRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNyRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNsRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNsRixPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMzRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNoRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNuRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNqRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNsRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNuRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx3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d0JBQ3pDLHVDQUF1Qzt3QkFDdkMsd0NBQXdDO3dCQUN4Qyx5Q0FBeUM7d0JBQ3pDLHlDQUF5Qzt3QkFDekMscUNBQXFDO3dCQUNyQywwQ0FBMEM7d0JBQzFDLGtDQUFrQzt3QkFDbEMsMkNBQTJDO3dCQUMzQyxtQkFBbUI7d0JBQ25CLGdCQUFnQjtxQkFDakI7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLDJCQUEyQjtxQkFDNUI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLDJCQUEyQjt3QkFDM0IsMEJBQTBCO3dCQUMxQiwyQkFBMkI7d0JBQzNCLG1CQUFtQjt3QkFDbkIsd0JBQXdCO3dCQUN4Qix3QkFBd0I7d0JBQ3hCLGlDQUFpQzt3QkFDakMsc0JBQXNCO3dCQUN0Qix5QkFBeUI7d0JBQ3pCLHVCQUF1Qjt3QkFDdkIsd0JBQXdCO3dCQUN4Qix5QkFBeUI7d0JBQ3pCLHlCQUF5Qjt3QkFDekIscUJBQXFCO3dCQUNyQiwwQkFBMEI7d0JBQzFCLGtCQUFrQjt3QkFDbEIsMkJBQTJCO3dCQUMzQiwwQ0FBMEM7d0JBQzFDLDJDQUEyQzt3QkFDM0MsbUNBQW1DO3dCQUNuQyx3Q0FBd0M7d0JBQ3hDLHdDQUF3Qzt3QkFDeEMsaURBQWlEO3dCQUNqRCxzQ0FBc0M7d0JBQ3RDLHlDQUF5Qzt3QkFDekMsdUNBQXVDO3dCQUN2Qyx3Q0FBd0M7d0JBQ3hDLHlDQUF5Qzt3QkFDekMseUNBQXlDO3dCQUN6QyxxQ0FBcUM7d0JBQ3JDLDBDQUEwQzt3QkFDMUMsa0NBQWtDO3dCQUNsQywyQ0FBMkM7d0JBQzNDLGdCQUFnQjtxQkFDakI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKiB0c2xpbnQ6ZGlzYWJsZTptYXgtbGluZS1sZW5ndGggKi9cblxuXG5pbXBvcnQge1xuICAgIFRyYW5zZmVyU3RhdGUsXG4gICAgQ29tcG9uZW50LFxuICAgIE5nTW9kdWxlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgTmdab25lLFxuICAgIFBMQVRGT1JNX0lELFxuICAgIEluamVjdCxcblxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgRXZlbnRFbWl0dGVyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5cbmltcG9ydCB7IElEYXNoYm9hcmREYXRhU291cmNlV2l6YXJkU2V0dGluZ3MgfSBmcm9tICdkZXZleHByZXNzLWRhc2hib2FyZC9kZXNpZ25lci9kYXRhLXNvdXJjZS13aXphcmQvZGF0YS1zb3VyY2Utd2l6YXJkLWV4dGVuc2lvbic7XG5cbmltcG9ydCBEeERhc2hib2FyZENvbnRyb2wgZnJvbSAnZGV2ZXhwcmVzcy1kYXNoYm9hcmQvaW50ZWdyYXRpb24vaW5kZXgnO1xuXG5cbmltcG9ydCB7XG4gICAgRHhDb21wb25lbnQsXG4gICAgRHhUZW1wbGF0ZUhvc3QsXG4gICAgRHhJbnRlZ3JhdGlvbk1vZHVsZSxcbiAgICBEeFRlbXBsYXRlTW9kdWxlLFxuICAgIE5lc3RlZE9wdGlvbkhvc3QsXG4gICAgV2F0Y2hlckhlbHBlclxufSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IER4b0FqYXhSZW1vdGVTZXJ2aWNlTW9kdWxlIH0gZnJvbSAnZGV2ZXhwcmVzcy1kYXNoYm9hcmQtYW5ndWxhci91aS9uZXN0ZWQnO1xuaW1wb3J0IHsgRHhvRGF0YVJlcXVlc3RPcHRpb25zTW9kdWxlIH0gZnJvbSAnZGV2ZXhwcmVzcy1kYXNoYm9hcmQtYW5ndWxhci91aS9uZXN0ZWQnO1xuaW1wb3J0IHsgRHhvRXh0ZW5zaW9uc01vZHVsZSB9IGZyb20gJ2RldmV4cHJlc3MtZGFzaGJvYXJkLWFuZ3VsYXIvdWkvbmVzdGVkJztcbmltcG9ydCB7IER4b0NoYXJ0SW5kaWNhdG9yc01vZHVsZSB9IGZyb20gJ2RldmV4cHJlc3MtZGFzaGJvYXJkLWFuZ3VsYXIvdWkvbmVzdGVkJztcbmltcG9ydCB7IER4b0Rhc2hib2FyZEV4cG9ydE1vZHVsZSB9IGZyb20gJ2RldmV4cHJlc3MtZGFzaGJvYXJkLWFuZ3VsYXIvdWkvbmVzdGVkJztcbmltcG9ydCB7IER4b0Rhc2hib2FyZFBhcmFtZXRlckRpYWxvZ01vZHVsZSB9IGZyb20gJ2RldmV4cHJlc3MtZGFzaGJvYXJkLWFuZ3VsYXIvdWkvbmVzdGVkJztcbmltcG9ydCB7IER4b0RhdGFJbnNwZWN0b3JNb2R1bGUgfSBmcm9tICdkZXZleHByZXNzLWRhc2hib2FyZC1hbmd1bGFyL3VpL25lc3RlZCc7XG5pbXBvcnQgeyBEeG9EYXRhU291cmNlV2l6YXJkTW9kdWxlIH0gZnJvbSAnZGV2ZXhwcmVzcy1kYXNoYm9hcmQtYW5ndWxhci91aS9uZXN0ZWQnO1xuaW1wb3J0IHsgRHhvV2l6YXJkU2V0dGluZ3NNb2R1bGUgfSBmcm9tICdkZXZleHByZXNzLWRhc2hib2FyZC1hbmd1bGFyL3VpL25lc3RlZCc7XG5pbXBvcnQgeyBEeG9EZXNpZ25lclRvb2xiYXJNb2R1bGUgfSBmcm9tICdkZXZleHByZXNzLWRhc2hib2FyZC1hbmd1bGFyL3VpL25lc3RlZCc7XG5pbXBvcnQgeyBEeG9JdGVtQmluZGluZ1BhbmVsTW9kdWxlIH0gZnJvbSAnZGV2ZXhwcmVzcy1kYXNoYm9hcmQtYW5ndWxhci91aS9uZXN0ZWQnO1xuaW1wb3J0IHsgRHhvSXRlbU9wdGlvbnNQYW5lbE1vZHVsZSB9IGZyb20gJ2RldmV4cHJlc3MtZGFzaGJvYXJkLWFuZ3VsYXIvdWkvbmVzdGVkJztcbmltcG9ydCB7IER4b01vYmlsZUxheW91dE1vZHVsZSB9IGZyb20gJ2RldmV4cHJlc3MtZGFzaGJvYXJkLWFuZ3VsYXIvdWkvbmVzdGVkJztcbmltcG9ydCB7IER4b1RleHRCb3hJdGVtRWRpdG9yTW9kdWxlIH0gZnJvbSAnZGV2ZXhwcmVzcy1kYXNoYm9hcmQtYW5ndWxhci91aS9uZXN0ZWQnO1xuaW1wb3J0IHsgRHhvVmlld2VyQXBpTW9kdWxlIH0gZnJvbSAnZGV2ZXhwcmVzcy1kYXNoYm9hcmQtYW5ndWxhci91aS9uZXN0ZWQnO1xuaW1wb3J0IHsgRHhvRmV0Y2hSZW1vdGVTZXJ2aWNlTW9kdWxlIH0gZnJvbSAnZGV2ZXhwcmVzcy1kYXNoYm9hcmQtYW5ndWxhci91aS9uZXN0ZWQnO1xuXG5pbXBvcnQgeyBEeG9EYXNoYm9hcmRDb250cm9sQWpheFJlbW90ZVNlcnZpY2VNb2R1bGUgfSBmcm9tICdkZXZleHByZXNzLWRhc2hib2FyZC1hbmd1bGFyL3VpL2Rhc2hib2FyZC1jb250cm9sL25lc3RlZCc7XG5pbXBvcnQgeyBEeG9EYXNoYm9hcmRDb250cm9sRGF0YVJlcXVlc3RPcHRpb25zTW9kdWxlIH0gZnJvbSAnZGV2ZXhwcmVzcy1kYXNoYm9hcmQtYW5ndWxhci91aS9kYXNoYm9hcmQtY29udHJvbC9uZXN0ZWQnO1xuaW1wb3J0IHsgRHhvRGFzaGJvYXJkQ29udHJvbEV4dGVuc2lvbnNNb2R1bGUgfSBmcm9tICdkZXZleHByZXNzLWRhc2hib2FyZC1hbmd1bGFyL3VpL2Rhc2hib2FyZC1jb250cm9sL25lc3RlZCc7XG5pbXBvcnQgeyBEeG9EYXNoYm9hcmRDb250cm9sQ2hhcnRJbmRpY2F0b3JzTW9kdWxlIH0gZnJvbSAnZGV2ZXhwcmVzcy1kYXNoYm9hcmQtYW5ndWxhci91aS9kYXNoYm9hcmQtY29udHJvbC9uZXN0ZWQnO1xuaW1wb3J0IHsgRHhvRGFzaGJvYXJkQ29udHJvbERhc2hib2FyZEV4cG9ydE1vZHVsZSB9IGZyb20gJ2RldmV4cHJlc3MtZGFzaGJvYXJkLWFuZ3VsYXIvdWkvZGFzaGJvYXJkLWNvbnRyb2wvbmVzdGVkJztcbmltcG9ydCB7IER4b0Rhc2hib2FyZENvbnRyb2xEYXNoYm9hcmRQYXJhbWV0ZXJEaWFsb2dNb2R1bGUgfSBmcm9tICdkZXZleHByZXNzLWRhc2hib2FyZC1hbmd1bGFyL3VpL2Rhc2hib2FyZC1jb250cm9sL25lc3RlZCc7XG5pbXBvcnQgeyBEeG9EYXNoYm9hcmRDb250cm9sRGF0YUluc3BlY3Rvck1vZHVsZSB9IGZyb20gJ2RldmV4cHJlc3MtZGFzaGJvYXJkLWFuZ3VsYXIvdWkvZGFzaGJvYXJkLWNvbnRyb2wvbmVzdGVkJztcbmltcG9ydCB7IER4b0Rhc2hib2FyZENvbnRyb2xEYXRhU291cmNlV2l6YXJkTW9kdWxlIH0gZnJvbSAnZGV2ZXhwcmVzcy1kYXNoYm9hcmQtYW5ndWxhci91aS9kYXNoYm9hcmQtY29udHJvbC9uZXN0ZWQnO1xuaW1wb3J0IHsgRHhvRGFzaGJvYXJkQ29udHJvbFdpemFyZFNldHRpbmdzTW9kdWxlIH0gZnJvbSAnZGV2ZXhwcmVzcy1kYXNoYm9hcmQtYW5ndWxhci91aS9kYXNoYm9hcmQtY29udHJvbC9uZXN0ZWQnO1xuaW1wb3J0IHsgRHhvRGFzaGJvYXJkQ29udHJvbERlc2lnbmVyVG9vbGJhck1vZHVsZSB9IGZyb20gJ2RldmV4cHJlc3MtZGFzaGJvYXJkLWFuZ3VsYXIvdWkvZGFzaGJvYXJkLWNvbnRyb2wvbmVzdGVkJztcbmltcG9ydCB7IER4b0Rhc2hib2FyZENvbnRyb2xJdGVtQmluZGluZ1BhbmVsTW9kdWxlIH0gZnJvbSAnZGV2ZXhwcmVzcy1kYXNoYm9hcmQtYW5ndWxhci91aS9kYXNoYm9hcmQtY29udHJvbC9uZXN0ZWQnO1xuaW1wb3J0IHsgRHhvRGFzaGJvYXJkQ29udHJvbEl0ZW1PcHRpb25zUGFuZWxNb2R1bGUgfSBmcm9tICdkZXZleHByZXNzLWRhc2hib2FyZC1hbmd1bGFyL3VpL2Rhc2hib2FyZC1jb250cm9sL25lc3RlZCc7XG5pbXBvcnQgeyBEeG9EYXNoYm9hcmRDb250cm9sTW9iaWxlTGF5b3V0TW9kdWxlIH0gZnJvbSAnZGV2ZXhwcmVzcy1kYXNoYm9hcmQtYW5ndWxhci91aS9kYXNoYm9hcmQtY29udHJvbC9uZXN0ZWQnO1xuaW1wb3J0IHsgRHhvRGFzaGJvYXJkQ29udHJvbFRleHRCb3hJdGVtRWRpdG9yTW9kdWxlIH0gZnJvbSAnZGV2ZXhwcmVzcy1kYXNoYm9hcmQtYW5ndWxhci91aS9kYXNoYm9hcmQtY29udHJvbC9uZXN0ZWQnO1xuaW1wb3J0IHsgRHhvRGFzaGJvYXJkQ29udHJvbFZpZXdlckFwaU1vZHVsZSB9IGZyb20gJ2RldmV4cHJlc3MtZGFzaGJvYXJkLWFuZ3VsYXIvdWkvZGFzaGJvYXJkLWNvbnRyb2wvbmVzdGVkJztcbmltcG9ydCB7IER4b0Rhc2hib2FyZENvbnRyb2xGZXRjaFJlbW90ZVNlcnZpY2VNb2R1bGUgfSBmcm9tICdkZXZleHByZXNzLWRhc2hib2FyZC1hbmd1bGFyL3VpL2Rhc2hib2FyZC1jb250cm9sL25lc3RlZCc7XG5cblxuXG5cbi8qKlxuICogW2Rlc2NyOmR4RGFzaGJvYXJkQ29udHJvbF1cblxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2R4LWRhc2hib2FyZC1jb250cm9sJyxcbiAgICB0ZW1wbGF0ZTogJycsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIER4VGVtcGxhdGVIb3N0LFxuICAgICAgICBXYXRjaGVySGVscGVyLFxuICAgICAgICBOZXN0ZWRPcHRpb25Ib3N0XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBEeERhc2hib2FyZENvbnRyb2xDb21wb25lbnQgZXh0ZW5kcyBEeENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgaW5zdGFuY2U6IER4RGFzaGJvYXJkQ29udHJvbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBbZGVzY3I6ZHhEYXNoYm9hcmRDb250cm9sT3B0aW9ucy5hamF4UmVtb3RlU2VydmljZV1cbiAgICBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGdldCBhamF4UmVtb3RlU2VydmljZSgpOiB7IGJlZm9yZVNlbmQ/OiBGdW5jdGlvbiwgY29tcGxldGU/OiBGdW5jdGlvbiwgaGVhZGVycz86IGFueSB9IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignYWpheFJlbW90ZVNlcnZpY2UnKTtcbiAgICB9XG4gICAgc2V0IGFqYXhSZW1vdGVTZXJ2aWNlKHZhbHVlOiB7IGJlZm9yZVNlbmQ/OiBGdW5jdGlvbiwgY29tcGxldGU/OiBGdW5jdGlvbiwgaGVhZGVycz86IGFueSB9KSB7XG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignYWpheFJlbW90ZVNlcnZpY2UnLCB2YWx1ZSk7XG4gICAgfVxuXG5cbiAgICAvKipcbiAgICAgKiBbZGVzY3I6ZHhEYXNoYm9hcmRDb250cm9sT3B0aW9ucy5hbGxvd01heGltaXplSXRlbXNdXG4gICAgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBnZXQgYWxsb3dNYXhpbWl6ZUl0ZW1zKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdhbGxvd01heGltaXplSXRlbXMnKTtcbiAgICB9XG4gICAgc2V0IGFsbG93TWF4aW1pemVJdGVtcyh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ2FsbG93TWF4aW1pemVJdGVtcycsIHZhbHVlKTtcbiAgICB9XG5cblxuICAgIC8qKlxuICAgICAqIFtkZXNjcjpkeERhc2hib2FyZENvbnRyb2xPcHRpb25zLmRhc2hib2FyZElkXVxuICAgIFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGRhc2hib2FyZElkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ2Rhc2hib2FyZElkJyk7XG4gICAgfVxuICAgIHNldCBkYXNoYm9hcmRJZCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignZGFzaGJvYXJkSWQnLCB2YWx1ZSk7XG4gICAgfVxuXG5cbiAgICAvKipcbiAgICAgKiBbZGVzY3I6ZHhEYXNoYm9hcmRDb250cm9sT3B0aW9ucy5kYXRhUmVxdWVzdE9wdGlvbnNdXG4gICAgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBnZXQgZGF0YVJlcXVlc3RPcHRpb25zKCk6IHsgaXRlbURhdGFMb2FkaW5nTW9kZT86IHN0cmluZywgaXRlbURhdGFSZXF1ZXN0TW9kZT86IHN0cmluZyB9IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignZGF0YVJlcXVlc3RPcHRpb25zJyk7XG4gICAgfVxuICAgIHNldCBkYXRhUmVxdWVzdE9wdGlvbnModmFsdWU6IHsgaXRlbURhdGFMb2FkaW5nTW9kZT86IHN0cmluZywgaXRlbURhdGFSZXF1ZXN0TW9kZT86IHN0cmluZyB9KSB7XG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignZGF0YVJlcXVlc3RPcHRpb25zJywgdmFsdWUpO1xuICAgIH1cblxuXG4gICAgLyoqXG4gICAgICogW2Rlc2NyOmR4RGFzaGJvYXJkQ29udHJvbE9wdGlvbnMuZW5jb2RlSHRtbF1cbiAgICBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGdldCBlbmNvZGVIdG1sKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdlbmNvZGVIdG1sJyk7XG4gICAgfVxuICAgIHNldCBlbmNvZGVIdG1sKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignZW5jb2RlSHRtbCcsIHZhbHVlKTtcbiAgICB9XG5cblxuICAgIC8qKlxuICAgICAqIFtkZXNjcjpkeERhc2hib2FyZENvbnRyb2xPcHRpb25zLmVuZHBvaW50XVxuICAgIFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGVuZHBvaW50KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ2VuZHBvaW50Jyk7XG4gICAgfVxuICAgIHNldCBlbmRwb2ludCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignZW5kcG9pbnQnLCB2YWx1ZSk7XG4gICAgfVxuXG5cbiAgICAvKipcbiAgICAgKiBbZGVzY3I6ZHhEYXNoYm9hcmRDb250cm9sT3B0aW9ucy5leHRlbnNpb25zXVxuICAgIFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGV4dGVuc2lvbnMoKTogeyBjaGFydEluZGljYXRvcnM/OiB7IGN1c3RvbUluZGljYXRvclR5cGVzPzogYW55IH0sIGRhc2hib2FyZEV4cG9ydD86IHsgYWxsb3dFeHBvcnREYXNoYm9hcmQ/OiBib29sZWFuLCBhbGxvd0V4cG9ydERhc2hib2FyZEl0ZW1zPzogYm9vbGVhbiwgb25FeHBvcnREaWFsb2dIaWRkZW4/OiBGdW5jdGlvbiwgb25FeHBvcnREaWFsb2dTaG93aW5nPzogRnVuY3Rpb24sIG9uRXhwb3J0RGlhbG9nU2hvd24/OiBGdW5jdGlvbiB9LCBkYXNoYm9hcmRQYXJhbWV0ZXJEaWFsb2c/OiB7IG9uRHluYW1pY0xvb2tVcFZhbHVlc0xvYWRlZD86IEZ1bmN0aW9uLCBvbkhpZGRlbj86IEZ1bmN0aW9uLCBvblNob3dpbmc/OiBGdW5jdGlvbiwgb25TaG93bj86IEZ1bmN0aW9uIH0sIGRhdGFJbnNwZWN0b3I/OiB7IGFsbG93SW5zcGVjdEFnZ3JlZ2F0ZWREYXRhPzogYm9vbGVhbiwgYWxsb3dJbnNwZWN0UmF3RGF0YT86IGJvb2xlYW4sIG9uRGlhbG9nSGlkZGVuPzogRnVuY3Rpb24sIG9uRGlhbG9nU2hvd2luZz86IEZ1bmN0aW9uLCBvbkRpYWxvZ1Nob3duPzogRnVuY3Rpb24sIG9uR3JpZENvbnRlbnRSZWFkeT86IEZ1bmN0aW9uLCBvbkdyaWRJbml0aWFsaXplZD86IEZ1bmN0aW9uIH0sIGRhdGFTb3VyY2VXaXphcmQ/OiB7IGFsbG93Q3JlYXRlTmV3SnNvbkNvbm5lY3Rpb24/OiBib29sZWFuLCBlbmFibGVDdXN0b21TcWw/OiBib29sZWFuLCBvbkN1c3RvbWl6ZURhdGFTb3VyY2VXaXphcmQ/OiBGdW5jdGlvbiwgd2l6YXJkU2V0dGluZ3M/OiBJRGFzaGJvYXJkRGF0YVNvdXJjZVdpemFyZFNldHRpbmdzIH0sIGRlc2lnbmVyVG9vbGJhcj86IHsgb25QcmVwYXJpbmc/OiBGdW5jdGlvbiB9LCBpdGVtQmluZGluZ1BhbmVsPzogeyBvbkN1c3RvbWl6ZURhdGFJdGVtQ29udGFpbmVyU2VjdGlvbnM/OiBGdW5jdGlvbiB9LCBpdGVtT3B0aW9uc1BhbmVsPzogeyBvbkN1c3RvbWl6ZVNlY3Rpb25zPzogRnVuY3Rpb24gfSwgbW9iaWxlTGF5b3V0PzogeyBtb2JpbGVMYXlvdXRFbmFibGVkPzogc3RyaW5nIH0sIHRleHRCb3hJdGVtRWRpdG9yPzogeyBvblJpY2hFZGl0Q3JlYXRlZD86IEZ1bmN0aW9uLCBvblJpY2hFZGl0T3B0aW9uc1ByZXBhcmVkPzogRnVuY3Rpb24gfSwgdmlld2VyQXBpPzogeyBvbkRhc2hib2FyZFRpdGxlVG9vbGJhclVwZGF0ZWQ/OiBGdW5jdGlvbiwgb25JdGVtQWN0aW9uQXZhaWxhYmlsaXR5Q2hhbmdlZD86IEZ1bmN0aW9uLCBvbkl0ZW1DYXB0aW9uVG9vbGJhclVwZGF0ZWQ/OiBGdW5jdGlvbiwgb25JdGVtQ2xpY2s/OiBGdW5jdGlvbiwgb25JdGVtRHJpbGxEb3duU3RhdGVDaGFuZ2VkPzogRnVuY3Rpb24sIG9uSXRlbUVsZW1lbnRDdXN0b21Db2xvcj86IEZ1bmN0aW9uLCBvbkl0ZW1NYXN0ZXJGaWx0ZXJTdGF0ZUNoYW5nZWQ/OiBGdW5jdGlvbiwgb25JdGVtU2VsZWN0aW9uQ2hhbmdlZD86IEZ1bmN0aW9uLCBvbkl0ZW1WaXN1YWxJbnRlcmFjdGl2aXR5PzogRnVuY3Rpb24sIG9uSXRlbVdpZGdldENyZWF0ZWQ/OiBGdW5jdGlvbiwgb25JdGVtV2lkZ2V0T3B0aW9uc1ByZXBhcmVkPzogRnVuY3Rpb24sIG9uSXRlbVdpZGdldFVwZGF0ZWQ/OiBGdW5jdGlvbiwgb25JdGVtV2lkZ2V0VXBkYXRpbmc/OiBGdW5jdGlvbiwgb25TZWxlY3RlZFRhYlBhZ2VDaGFuZ2VkPzogRnVuY3Rpb24gfSB9IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignZXh0ZW5zaW9ucycpO1xuICAgIH1cbiAgICBzZXQgZXh0ZW5zaW9ucyh2YWx1ZTogeyBjaGFydEluZGljYXRvcnM/OiB7IGN1c3RvbUluZGljYXRvclR5cGVzPzogYW55IH0sIGRhc2hib2FyZEV4cG9ydD86IHsgYWxsb3dFeHBvcnREYXNoYm9hcmQ/OiBib29sZWFuLCBhbGxvd0V4cG9ydERhc2hib2FyZEl0ZW1zPzogYm9vbGVhbiwgb25FeHBvcnREaWFsb2dIaWRkZW4/OiBGdW5jdGlvbiwgb25FeHBvcnREaWFsb2dTaG93aW5nPzogRnVuY3Rpb24sIG9uRXhwb3J0RGlhbG9nU2hvd24/OiBGdW5jdGlvbiB9LCBkYXNoYm9hcmRQYXJhbWV0ZXJEaWFsb2c/OiB7IG9uRHluYW1pY0xvb2tVcFZhbHVlc0xvYWRlZD86IEZ1bmN0aW9uLCBvbkhpZGRlbj86IEZ1bmN0aW9uLCBvblNob3dpbmc/OiBGdW5jdGlvbiwgb25TaG93bj86IEZ1bmN0aW9uIH0sIGRhdGFJbnNwZWN0b3I/OiB7IGFsbG93SW5zcGVjdEFnZ3JlZ2F0ZWREYXRhPzogYm9vbGVhbiwgYWxsb3dJbnNwZWN0UmF3RGF0YT86IGJvb2xlYW4sIG9uRGlhbG9nSGlkZGVuPzogRnVuY3Rpb24sIG9uRGlhbG9nU2hvd2luZz86IEZ1bmN0aW9uLCBvbkRpYWxvZ1Nob3duPzogRnVuY3Rpb24sIG9uR3JpZENvbnRlbnRSZWFkeT86IEZ1bmN0aW9uLCBvbkdyaWRJbml0aWFsaXplZD86IEZ1bmN0aW9uIH0sIGRhdGFTb3VyY2VXaXphcmQ/OiB7IGFsbG93Q3JlYXRlTmV3SnNvbkNvbm5lY3Rpb24/OiBib29sZWFuLCBlbmFibGVDdXN0b21TcWw/OiBib29sZWFuLCBvbkN1c3RvbWl6ZURhdGFTb3VyY2VXaXphcmQ/OiBGdW5jdGlvbiwgd2l6YXJkU2V0dGluZ3M/OiBJRGFzaGJvYXJkRGF0YVNvdXJjZVdpemFyZFNldHRpbmdzIH0sIGRlc2lnbmVyVG9vbGJhcj86IHsgb25QcmVwYXJpbmc/OiBGdW5jdGlvbiB9LCBpdGVtQmluZGluZ1BhbmVsPzogeyBvbkN1c3RvbWl6ZURhdGFJdGVtQ29udGFpbmVyU2VjdGlvbnM/OiBGdW5jdGlvbiB9LCBpdGVtT3B0aW9uc1BhbmVsPzogeyBvbkN1c3RvbWl6ZVNlY3Rpb25zPzogRnVuY3Rpb24gfSwgbW9iaWxlTGF5b3V0PzogeyBtb2JpbGVMYXlvdXRFbmFibGVkPzogc3RyaW5nIH0sIHRleHRCb3hJdGVtRWRpdG9yPzogeyBvblJpY2hFZGl0Q3JlYXRlZD86IEZ1bmN0aW9uLCBvblJpY2hFZGl0T3B0aW9uc1ByZXBhcmVkPzogRnVuY3Rpb24gfSwgdmlld2VyQXBpPzogeyBvbkRhc2hib2FyZFRpdGxlVG9vbGJhclVwZGF0ZWQ/OiBGdW5jdGlvbiwgb25JdGVtQWN0aW9uQXZhaWxhYmlsaXR5Q2hhbmdlZD86IEZ1bmN0aW9uLCBvbkl0ZW1DYXB0aW9uVG9vbGJhclVwZGF0ZWQ/OiBGdW5jdGlvbiwgb25JdGVtQ2xpY2s/OiBGdW5jdGlvbiwgb25JdGVtRHJpbGxEb3duU3RhdGVDaGFuZ2VkPzogRnVuY3Rpb24sIG9uSXRlbUVsZW1lbnRDdXN0b21Db2xvcj86IEZ1bmN0aW9uLCBvbkl0ZW1NYXN0ZXJGaWx0ZXJTdGF0ZUNoYW5nZWQ/OiBGdW5jdGlvbiwgb25JdGVtU2VsZWN0aW9uQ2hhbmdlZD86IEZ1bmN0aW9uLCBvbkl0ZW1WaXN1YWxJbnRlcmFjdGl2aXR5PzogRnVuY3Rpb24sIG9uSXRlbVdpZGdldENyZWF0ZWQ/OiBGdW5jdGlvbiwgb25JdGVtV2lkZ2V0T3B0aW9uc1ByZXBhcmVkPzogRnVuY3Rpb24sIG9uSXRlbVdpZGdldFVwZGF0ZWQ/OiBGdW5jdGlvbiwgb25JdGVtV2lkZ2V0VXBkYXRpbmc/OiBGdW5jdGlvbiwgb25TZWxlY3RlZFRhYlBhZ2VDaGFuZ2VkPzogRnVuY3Rpb24gfSB9KSB7XG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignZXh0ZW5zaW9ucycsIHZhbHVlKTtcbiAgICB9XG5cblxuICAgIC8qKlxuICAgICAqIFtkZXNjcjpkeERhc2hib2FyZENvbnRyb2xPcHRpb25zLmZldGNoUmVtb3RlU2VydmljZV1cbiAgICBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGdldCBmZXRjaFJlbW90ZVNlcnZpY2UoKTogeyBiZWZvcmVTZW5kPzogRnVuY3Rpb24sIGhlYWRlcnM/OiBhbnkgfSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ2ZldGNoUmVtb3RlU2VydmljZScpO1xuICAgIH1cbiAgICBzZXQgZmV0Y2hSZW1vdGVTZXJ2aWNlKHZhbHVlOiB7IGJlZm9yZVNlbmQ/OiBGdW5jdGlvbiwgaGVhZGVycz86IGFueSB9KSB7XG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignZmV0Y2hSZW1vdGVTZXJ2aWNlJywgdmFsdWUpO1xuICAgIH1cblxuXG4gICAgLyoqXG4gICAgICogW2Rlc2NyOmR4RGFzaGJvYXJkQ29udHJvbE9wdGlvbnMuaW5pdGlhbERhc2hib2FyZElkXVxuICAgIFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGluaXRpYWxEYXNoYm9hcmRJZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdpbml0aWFsRGFzaGJvYXJkSWQnKTtcbiAgICB9XG4gICAgc2V0IGluaXRpYWxEYXNoYm9hcmRJZCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignaW5pdGlhbERhc2hib2FyZElkJywgdmFsdWUpO1xuICAgIH1cblxuXG4gICAgLyoqXG4gICAgICogW2Rlc2NyOmR4RGFzaGJvYXJkQ29udHJvbE9wdGlvbnMuaW5pdGlhbERhc2hib2FyZFN0YXRlXVxuICAgIFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGluaXRpYWxEYXNoYm9hcmRTdGF0ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdpbml0aWFsRGFzaGJvYXJkU3RhdGUnKTtcbiAgICB9XG4gICAgc2V0IGluaXRpYWxEYXNoYm9hcmRTdGF0ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignaW5pdGlhbERhc2hib2FyZFN0YXRlJywgdmFsdWUpO1xuICAgIH1cblxuXG4gICAgLyoqXG4gICAgICogW2Rlc2NyOmR4RGFzaGJvYXJkQ29udHJvbE9wdGlvbnMubGltaXRWaXNpYmxlRGF0YU1vZGVdXG4gICAgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBnZXQgbGltaXRWaXNpYmxlRGF0YU1vZGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignbGltaXRWaXNpYmxlRGF0YU1vZGUnKTtcbiAgICB9XG4gICAgc2V0IGxpbWl0VmlzaWJsZURhdGFNb2RlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdsaW1pdFZpc2libGVEYXRhTW9kZScsIHZhbHVlKTtcbiAgICB9XG5cblxuICAgIC8qKlxuICAgICAqIFtkZXNjcjpkeERhc2hib2FyZENvbnRyb2xPcHRpb25zLmxvYWREZWZhdWx0RGFzaGJvYXJkXVxuICAgIFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGxvYWREZWZhdWx0RGFzaGJvYXJkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdsb2FkRGVmYXVsdERhc2hib2FyZCcpO1xuICAgIH1cbiAgICBzZXQgbG9hZERlZmF1bHREYXNoYm9hcmQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdsb2FkRGVmYXVsdERhc2hib2FyZCcsIHZhbHVlKTtcbiAgICB9XG5cblxuICAgIC8qKlxuICAgICAqIFtkZXNjcjpkeERhc2hib2FyZENvbnRyb2xPcHRpb25zLm5vbmNlXVxuICAgIFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IG5vbmNlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ25vbmNlJyk7XG4gICAgfVxuICAgIHNldCBub25jZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignbm9uY2UnLCB2YWx1ZSk7XG4gICAgfVxuXG5cbiAgICAvKipcbiAgICAgKiBbZGVzY3I6ZHhEYXNoYm9hcmRDb250cm9sT3B0aW9ucy5yZXNpemVCeVRpbWVyXVxuICAgIFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IHJlc2l6ZUJ5VGltZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ3Jlc2l6ZUJ5VGltZXInKTtcbiAgICB9XG4gICAgc2V0IHJlc2l6ZUJ5VGltZXIodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdyZXNpemVCeVRpbWVyJywgdmFsdWUpO1xuICAgIH1cblxuXG4gICAgLyoqXG4gICAgICogW2Rlc2NyOmR4RGFzaGJvYXJkQ29udHJvbE9wdGlvbnMuc2hvd0NvbmZpcm1hdGlvbk9uQnJvd3NlckNsb3NpbmddXG4gICAgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBnZXQgc2hvd0NvbmZpcm1hdGlvbk9uQnJvd3NlckNsb3NpbmcoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ3Nob3dDb25maXJtYXRpb25PbkJyb3dzZXJDbG9zaW5nJyk7XG4gICAgfVxuICAgIHNldCBzaG93Q29uZmlybWF0aW9uT25Ccm93c2VyQ2xvc2luZyh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ3Nob3dDb25maXJtYXRpb25PbkJyb3dzZXJDbG9zaW5nJywgdmFsdWUpO1xuICAgIH1cblxuXG4gICAgLyoqXG4gICAgICogW2Rlc2NyOmR4RGFzaGJvYXJkQ29udHJvbE9wdGlvbnMudXNlTmV1dHJhbEZpbHRlck1vZGVdXG4gICAgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBnZXQgdXNlTmV1dHJhbEZpbHRlck1vZGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ3VzZU5ldXRyYWxGaWx0ZXJNb2RlJyk7XG4gICAgfVxuICAgIHNldCB1c2VOZXV0cmFsRmlsdGVyTW9kZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ3VzZU5ldXRyYWxGaWx0ZXJNb2RlJywgdmFsdWUpO1xuICAgIH1cblxuXG4gICAgLyoqXG4gICAgICogW2Rlc2NyOmR4RGFzaGJvYXJkQ29udHJvbE9wdGlvbnMud29ya2luZ01vZGVdXG4gICAgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBnZXQgd29ya2luZ01vZGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignd29ya2luZ01vZGUnKTtcbiAgICB9XG4gICAgc2V0IHdvcmtpbmdNb2RlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCd3b3JraW5nTW9kZScsIHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICBcbiAgICAgKiBbZGVzY3I6ZHhEYXNoYm9hcmRDb250cm9sT3B0aW9ucy5vbkJlZm9yZVJlbmRlcl1cbiAgICBcbiAgICBcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgb25CZWZvcmVSZW5kZXI6IEV2ZW50RW1pdHRlcjxhbnk+O1xuXG4gICAgLyoqXG4gICAgXG4gICAgICogW2Rlc2NyOmR4RGFzaGJvYXJkQ29udHJvbE9wdGlvbnMub25EYXNoYm9hcmRCZWdpblVwZGF0ZV1cbiAgICBcbiAgICBcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgb25EYXNoYm9hcmRCZWdpblVwZGF0ZTogRXZlbnRFbWl0dGVyPGFueT47XG5cbiAgICAvKipcbiAgICBcbiAgICAgKiBbZGVzY3I6ZHhEYXNoYm9hcmRDb250cm9sT3B0aW9ucy5vbkRhc2hib2FyZEVuZFVwZGF0ZV1cbiAgICBcbiAgICBcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgb25EYXNoYm9hcmRFbmRVcGRhdGU6IEV2ZW50RW1pdHRlcjxhbnk+O1xuXG4gICAgLyoqXG4gICAgXG4gICAgICogW2Rlc2NyOmR4RGFzaGJvYXJkQ29udHJvbE9wdGlvbnMub25EYXNoYm9hcmRJbml0aWFsaXplZF1cbiAgICBcbiAgICBcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgb25EYXNoYm9hcmRJbml0aWFsaXplZDogRXZlbnRFbWl0dGVyPGFueT47XG5cbiAgICAvKipcbiAgICBcbiAgICAgKiBbZGVzY3I6ZHhEYXNoYm9hcmRDb250cm9sT3B0aW9ucy5vbkRhc2hib2FyZEluaXRpYWxpemluZ11cbiAgICBcbiAgICBcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgb25EYXNoYm9hcmRJbml0aWFsaXppbmc6IEV2ZW50RW1pdHRlcjxhbnk+O1xuXG4gICAgLyoqXG4gICAgXG4gICAgICogW2Rlc2NyOmR4RGFzaGJvYXJkQ29udHJvbE9wdGlvbnMub25EYXNoYm9hcmRTdGF0ZUNoYW5nZWRdXG4gICAgXG4gICAgXG4gICAgICovXG4gICAgQE91dHB1dCgpIG9uRGFzaGJvYXJkU3RhdGVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PjtcblxuICAgIC8qKlxuICAgIFxuICAgICAqIFtkZXNjcjpkeERhc2hib2FyZENvbnRyb2xPcHRpb25zLm9uSW5pdGlhbGl6aW5nXVxuICAgIFxuICAgIFxuICAgICAqL1xuICAgIEBPdXRwdXQoKSBvbkluaXRpYWxpemluZzogRXZlbnRFbWl0dGVyPGFueT47XG5cbiAgICAvKipcbiAgICBcbiAgICAgKiBbZGVzY3I6ZHhEYXNoYm9hcmRDb250cm9sT3B0aW9ucy5vbkl0ZW1CZWdpblVwZGF0ZV1cbiAgICBcbiAgICBcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgb25JdGVtQmVnaW5VcGRhdGU6IEV2ZW50RW1pdHRlcjxhbnk+O1xuXG4gICAgLyoqXG4gICAgXG4gICAgICogW2Rlc2NyOmR4RGFzaGJvYXJkQ29udHJvbE9wdGlvbnMub25JdGVtRW5kVXBkYXRlXVxuICAgIFxuICAgIFxuICAgICAqL1xuICAgIEBPdXRwdXQoKSBvbkl0ZW1FbmRVcGRhdGU6IEV2ZW50RW1pdHRlcjxhbnk+O1xuXG4gICAgLyoqXG4gICAgXG4gICAgICogW2Rlc2NyOmR4RGFzaGJvYXJkQ29udHJvbE9wdGlvbnMub25PcHRpb25DaGFuZ2VkXVxuICAgIFxuICAgIFxuICAgICAqL1xuICAgIEBPdXRwdXQoKSBvbk9wdGlvbkNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxhbnk+O1xuXG4gICAgLyoqXG4gICAgXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cbiAgICBcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgYWpheFJlbW90ZVNlcnZpY2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjx7IGJlZm9yZVNlbmQ/OiBGdW5jdGlvbiwgY29tcGxldGU/OiBGdW5jdGlvbiwgaGVhZGVycz86IGFueSB9PjtcblxuICAgIC8qKlxuICAgIFxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXG4gICAgXG4gICAgICovXG4gICAgQE91dHB1dCgpIGFsbG93TWF4aW1pemVJdGVtc0NoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+O1xuXG4gICAgLyoqXG4gICAgXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cbiAgICBcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgZGFzaGJvYXJkSWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+O1xuXG4gICAgLyoqXG4gICAgXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cbiAgICBcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgZGF0YVJlcXVlc3RPcHRpb25zQ2hhbmdlOiBFdmVudEVtaXR0ZXI8eyBpdGVtRGF0YUxvYWRpbmdNb2RlPzogc3RyaW5nLCBpdGVtRGF0YVJlcXVlc3RNb2RlPzogc3RyaW5nIH0+O1xuXG4gICAgLyoqXG4gICAgXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cbiAgICBcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgZW5jb2RlSHRtbENoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+O1xuXG4gICAgLyoqXG4gICAgXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cbiAgICBcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgZW5kcG9pbnRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+O1xuXG4gICAgLyoqXG4gICAgXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cbiAgICBcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgZXh0ZW5zaW9uc0NoYW5nZTogRXZlbnRFbWl0dGVyPHsgY2hhcnRJbmRpY2F0b3JzPzogeyBjdXN0b21JbmRpY2F0b3JUeXBlcz86IGFueSB9LCBkYXNoYm9hcmRFeHBvcnQ/OiB7IGFsbG93RXhwb3J0RGFzaGJvYXJkPzogYm9vbGVhbiwgYWxsb3dFeHBvcnREYXNoYm9hcmRJdGVtcz86IGJvb2xlYW4sIG9uRXhwb3J0RGlhbG9nSGlkZGVuPzogRnVuY3Rpb24sIG9uRXhwb3J0RGlhbG9nU2hvd2luZz86IEZ1bmN0aW9uLCBvbkV4cG9ydERpYWxvZ1Nob3duPzogRnVuY3Rpb24gfSwgZGFzaGJvYXJkUGFyYW1ldGVyRGlhbG9nPzogeyBvbkR5bmFtaWNMb29rVXBWYWx1ZXNMb2FkZWQ/OiBGdW5jdGlvbiwgb25IaWRkZW4/OiBGdW5jdGlvbiwgb25TaG93aW5nPzogRnVuY3Rpb24sIG9uU2hvd24/OiBGdW5jdGlvbiB9LCBkYXRhSW5zcGVjdG9yPzogeyBhbGxvd0luc3BlY3RBZ2dyZWdhdGVkRGF0YT86IGJvb2xlYW4sIGFsbG93SW5zcGVjdFJhd0RhdGE/OiBib29sZWFuLCBvbkRpYWxvZ0hpZGRlbj86IEZ1bmN0aW9uLCBvbkRpYWxvZ1Nob3dpbmc/OiBGdW5jdGlvbiwgb25EaWFsb2dTaG93bj86IEZ1bmN0aW9uLCBvbkdyaWRDb250ZW50UmVhZHk/OiBGdW5jdGlvbiwgb25HcmlkSW5pdGlhbGl6ZWQ/OiBGdW5jdGlvbiB9LCBkYXRhU291cmNlV2l6YXJkPzogeyBhbGxvd0NyZWF0ZU5ld0pzb25Db25uZWN0aW9uPzogYm9vbGVhbiwgZW5hYmxlQ3VzdG9tU3FsPzogYm9vbGVhbiwgb25DdXN0b21pemVEYXRhU291cmNlV2l6YXJkPzogRnVuY3Rpb24sIHdpemFyZFNldHRpbmdzPzogSURhc2hib2FyZERhdGFTb3VyY2VXaXphcmRTZXR0aW5ncyB9LCBkZXNpZ25lclRvb2xiYXI/OiB7IG9uUHJlcGFyaW5nPzogRnVuY3Rpb24gfSwgaXRlbUJpbmRpbmdQYW5lbD86IHsgb25DdXN0b21pemVEYXRhSXRlbUNvbnRhaW5lclNlY3Rpb25zPzogRnVuY3Rpb24gfSwgaXRlbU9wdGlvbnNQYW5lbD86IHsgb25DdXN0b21pemVTZWN0aW9ucz86IEZ1bmN0aW9uIH0sIG1vYmlsZUxheW91dD86IHsgbW9iaWxlTGF5b3V0RW5hYmxlZD86IHN0cmluZyB9LCB0ZXh0Qm94SXRlbUVkaXRvcj86IHsgb25SaWNoRWRpdENyZWF0ZWQ/OiBGdW5jdGlvbiwgb25SaWNoRWRpdE9wdGlvbnNQcmVwYXJlZD86IEZ1bmN0aW9uIH0sIHZpZXdlckFwaT86IHsgb25EYXNoYm9hcmRUaXRsZVRvb2xiYXJVcGRhdGVkPzogRnVuY3Rpb24sIG9uSXRlbUFjdGlvbkF2YWlsYWJpbGl0eUNoYW5nZWQ/OiBGdW5jdGlvbiwgb25JdGVtQ2FwdGlvblRvb2xiYXJVcGRhdGVkPzogRnVuY3Rpb24sIG9uSXRlbUNsaWNrPzogRnVuY3Rpb24sIG9uSXRlbURyaWxsRG93blN0YXRlQ2hhbmdlZD86IEZ1bmN0aW9uLCBvbkl0ZW1FbGVtZW50Q3VzdG9tQ29sb3I/OiBGdW5jdGlvbiwgb25JdGVtTWFzdGVyRmlsdGVyU3RhdGVDaGFuZ2VkPzogRnVuY3Rpb24sIG9uSXRlbVNlbGVjdGlvbkNoYW5nZWQ/OiBGdW5jdGlvbiwgb25JdGVtVmlzdWFsSW50ZXJhY3Rpdml0eT86IEZ1bmN0aW9uLCBvbkl0ZW1XaWRnZXRDcmVhdGVkPzogRnVuY3Rpb24sIG9uSXRlbVdpZGdldE9wdGlvbnNQcmVwYXJlZD86IEZ1bmN0aW9uLCBvbkl0ZW1XaWRnZXRVcGRhdGVkPzogRnVuY3Rpb24sIG9uSXRlbVdpZGdldFVwZGF0aW5nPzogRnVuY3Rpb24sIG9uU2VsZWN0ZWRUYWJQYWdlQ2hhbmdlZD86IEZ1bmN0aW9uIH0gfT47XG5cbiAgICAvKipcbiAgICBcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxuICAgIFxuICAgICAqL1xuICAgIEBPdXRwdXQoKSBmZXRjaFJlbW90ZVNlcnZpY2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjx7IGJlZm9yZVNlbmQ/OiBGdW5jdGlvbiwgaGVhZGVycz86IGFueSB9PjtcblxuICAgIC8qKlxuICAgIFxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXG4gICAgXG4gICAgICovXG4gICAgQE91dHB1dCgpIGluaXRpYWxEYXNoYm9hcmRJZENoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz47XG5cbiAgICAvKipcbiAgICBcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxuICAgIFxuICAgICAqL1xuICAgIEBPdXRwdXQoKSBpbml0aWFsRGFzaGJvYXJkU3RhdGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+O1xuXG4gICAgLyoqXG4gICAgXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cbiAgICBcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgbGltaXRWaXNpYmxlRGF0YU1vZGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+O1xuXG4gICAgLyoqXG4gICAgXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cbiAgICBcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgbG9hZERlZmF1bHREYXNoYm9hcmRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcblxuICAgIC8qKlxuICAgIFxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXG4gICAgXG4gICAgICovXG4gICAgQE91dHB1dCgpIG5vbmNlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPjtcblxuICAgIC8qKlxuICAgIFxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXG4gICAgXG4gICAgICovXG4gICAgQE91dHB1dCgpIHJlc2l6ZUJ5VGltZXJDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcblxuICAgIC8qKlxuICAgIFxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXG4gICAgXG4gICAgICovXG4gICAgQE91dHB1dCgpIHNob3dDb25maXJtYXRpb25PbkJyb3dzZXJDbG9zaW5nQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj47XG5cbiAgICAvKipcbiAgICBcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxuICAgIFxuICAgICAqL1xuICAgIEBPdXRwdXQoKSB1c2VOZXV0cmFsRmlsdGVyTW9kZUNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+O1xuXG4gICAgLyoqXG4gICAgXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cbiAgICBcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgd29ya2luZ01vZGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+O1xuXG5cblxuXG5cblxuXG5cbiAgICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBuZ1pvbmU6IE5nWm9uZSwgdGVtcGxhdGVIb3N0OiBEeFRlbXBsYXRlSG9zdCxcbiAgICAgICAgICAgIF93YXRjaGVySGVscGVyOiBXYXRjaGVySGVscGVyLFxuICAgICAgICAgICAgb3B0aW9uSG9zdDogTmVzdGVkT3B0aW9uSG9zdCxcbiAgICAgICAgICAgIHRyYW5zZmVyU3RhdGU6IFRyYW5zZmVyU3RhdGUsXG4gICAgICAgICAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwbGF0Zm9ybUlkOiBhbnkpIHtcblxuICAgICAgICBzdXBlcihlbGVtZW50UmVmLCBuZ1pvbmUsIHRlbXBsYXRlSG9zdCwgX3dhdGNoZXJIZWxwZXIsIHRyYW5zZmVyU3RhdGUsIHBsYXRmb3JtSWQpO1xuXG4gICAgICAgIHRoaXMuX2NyZWF0ZUV2ZW50RW1pdHRlcnMoW1xuICAgICAgICAgICAgeyBzdWJzY3JpYmU6ICdiZWZvcmVSZW5kZXInLCBlbWl0OiAnb25CZWZvcmVSZW5kZXInIH0sXG4gICAgICAgICAgICB7IHN1YnNjcmliZTogJ2Rhc2hib2FyZEJlZ2luVXBkYXRlJywgZW1pdDogJ29uRGFzaGJvYXJkQmVnaW5VcGRhdGUnIH0sXG4gICAgICAgICAgICB7IHN1YnNjcmliZTogJ2Rhc2hib2FyZEVuZFVwZGF0ZScsIGVtaXQ6ICdvbkRhc2hib2FyZEVuZFVwZGF0ZScgfSxcbiAgICAgICAgICAgIHsgc3Vic2NyaWJlOiAnZGFzaGJvYXJkSW5pdGlhbGl6ZWQnLCBlbWl0OiAnb25EYXNoYm9hcmRJbml0aWFsaXplZCcgfSxcbiAgICAgICAgICAgIHsgc3Vic2NyaWJlOiAnZGFzaGJvYXJkSW5pdGlhbGl6aW5nJywgZW1pdDogJ29uRGFzaGJvYXJkSW5pdGlhbGl6aW5nJyB9LFxuICAgICAgICAgICAgeyBzdWJzY3JpYmU6ICdkYXNoYm9hcmRTdGF0ZUNoYW5nZWQnLCBlbWl0OiAnb25EYXNoYm9hcmRTdGF0ZUNoYW5nZWQnIH0sXG4gICAgICAgICAgICB7IHN1YnNjcmliZTogJ2luaXRpYWxpemluZycsIGVtaXQ6ICdvbkluaXRpYWxpemluZycgfSxcbiAgICAgICAgICAgIHsgc3Vic2NyaWJlOiAnaXRlbUJlZ2luVXBkYXRlJywgZW1pdDogJ29uSXRlbUJlZ2luVXBkYXRlJyB9LFxuICAgICAgICAgICAgeyBzdWJzY3JpYmU6ICdpdGVtRW5kVXBkYXRlJywgZW1pdDogJ29uSXRlbUVuZFVwZGF0ZScgfSxcbiAgICAgICAgICAgIHsgc3Vic2NyaWJlOiAnb3B0aW9uQ2hhbmdlZCcsIGVtaXQ6ICdvbk9wdGlvbkNoYW5nZWQnIH0sXG4gICAgICAgICAgICB7IGVtaXQ6ICdhamF4UmVtb3RlU2VydmljZUNoYW5nZScgfSxcbiAgICAgICAgICAgIHsgZW1pdDogJ2FsbG93TWF4aW1pemVJdGVtc0NoYW5nZScgfSxcbiAgICAgICAgICAgIHsgZW1pdDogJ2Rhc2hib2FyZElkQ2hhbmdlJyB9LFxuICAgICAgICAgICAgeyBlbWl0OiAnZGF0YVJlcXVlc3RPcHRpb25zQ2hhbmdlJyB9LFxuICAgICAgICAgICAgeyBlbWl0OiAnZW5jb2RlSHRtbENoYW5nZScgfSxcbiAgICAgICAgICAgIHsgZW1pdDogJ2VuZHBvaW50Q2hhbmdlJyB9LFxuICAgICAgICAgICAgeyBlbWl0OiAnZXh0ZW5zaW9uc0NoYW5nZScgfSxcbiAgICAgICAgICAgIHsgZW1pdDogJ2ZldGNoUmVtb3RlU2VydmljZUNoYW5nZScgfSxcbiAgICAgICAgICAgIHsgZW1pdDogJ2luaXRpYWxEYXNoYm9hcmRJZENoYW5nZScgfSxcbiAgICAgICAgICAgIHsgZW1pdDogJ2luaXRpYWxEYXNoYm9hcmRTdGF0ZUNoYW5nZScgfSxcbiAgICAgICAgICAgIHsgZW1pdDogJ2xpbWl0VmlzaWJsZURhdGFNb2RlQ2hhbmdlJyB9LFxuICAgICAgICAgICAgeyBlbWl0OiAnbG9hZERlZmF1bHREYXNoYm9hcmRDaGFuZ2UnIH0sXG4gICAgICAgICAgICB7IGVtaXQ6ICdub25jZUNoYW5nZScgfSxcbiAgICAgICAgICAgIHsgZW1pdDogJ3Jlc2l6ZUJ5VGltZXJDaGFuZ2UnIH0sXG4gICAgICAgICAgICB7IGVtaXQ6ICdzaG93Q29uZmlybWF0aW9uT25Ccm93c2VyQ2xvc2luZ0NoYW5nZScgfSxcbiAgICAgICAgICAgIHsgZW1pdDogJ3VzZU5ldXRyYWxGaWx0ZXJNb2RlQ2hhbmdlJyB9LFxuICAgICAgICAgICAgeyBlbWl0OiAnd29ya2luZ01vZGVDaGFuZ2UnIH1cbiAgICAgICAgXSk7XG4gICAgICAgIG9wdGlvbkhvc3Quc2V0SG9zdCh0aGlzKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX2NyZWF0ZUluc3RhbmNlKGVsZW1lbnQsIG9wdGlvbnMpIHtcblxuICAgICAgICByZXR1cm4gbmV3IER4RGFzaGJvYXJkQ29udHJvbChlbGVtZW50LCBvcHRpb25zKTtcbiAgICB9XG5cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLl9kZXN0cm95V2lkZ2V0KCk7XG4gICAgfVxuXG59XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBEeG9BamF4UmVtb3RlU2VydmljZU1vZHVsZSxcbiAgICBEeG9EYXRhUmVxdWVzdE9wdGlvbnNNb2R1bGUsXG4gICAgRHhvRXh0ZW5zaW9uc01vZHVsZSxcbiAgICBEeG9DaGFydEluZGljYXRvcnNNb2R1bGUsXG4gICAgRHhvRGFzaGJvYXJkRXhwb3J0TW9kdWxlLFxuICAgIER4b0Rhc2hib2FyZFBhcmFtZXRlckRpYWxvZ01vZHVsZSxcbiAgICBEeG9EYXRhSW5zcGVjdG9yTW9kdWxlLFxuICAgIER4b0RhdGFTb3VyY2VXaXphcmRNb2R1bGUsXG4gICAgRHhvV2l6YXJkU2V0dGluZ3NNb2R1bGUsXG4gICAgRHhvRGVzaWduZXJUb29sYmFyTW9kdWxlLFxuICAgIER4b0l0ZW1CaW5kaW5nUGFuZWxNb2R1bGUsXG4gICAgRHhvSXRlbU9wdGlvbnNQYW5lbE1vZHVsZSxcbiAgICBEeG9Nb2JpbGVMYXlvdXRNb2R1bGUsXG4gICAgRHhvVGV4dEJveEl0ZW1FZGl0b3JNb2R1bGUsXG4gICAgRHhvVmlld2VyQXBpTW9kdWxlLFxuICAgIER4b0ZldGNoUmVtb3RlU2VydmljZU1vZHVsZSxcbiAgICBEeG9EYXNoYm9hcmRDb250cm9sQWpheFJlbW90ZVNlcnZpY2VNb2R1bGUsXG4gICAgRHhvRGFzaGJvYXJkQ29udHJvbERhdGFSZXF1ZXN0T3B0aW9uc01vZHVsZSxcbiAgICBEeG9EYXNoYm9hcmRDb250cm9sRXh0ZW5zaW9uc01vZHVsZSxcbiAgICBEeG9EYXNoYm9hcmRDb250cm9sQ2hhcnRJbmRpY2F0b3JzTW9kdWxlLFxuICAgIER4b0Rhc2hib2FyZENvbnRyb2xEYXNoYm9hcmRFeHBvcnRNb2R1bGUsXG4gICAgRHhvRGFzaGJvYXJkQ29udHJvbERhc2hib2FyZFBhcmFtZXRlckRpYWxvZ01vZHVsZSxcbiAgICBEeG9EYXNoYm9hcmRDb250cm9sRGF0YUluc3BlY3Rvck1vZHVsZSxcbiAgICBEeG9EYXNoYm9hcmRDb250cm9sRGF0YVNvdXJjZVdpemFyZE1vZHVsZSxcbiAgICBEeG9EYXNoYm9hcmRDb250cm9sV2l6YXJkU2V0dGluZ3NNb2R1bGUsXG4gICAgRHhvRGFzaGJvYXJkQ29udHJvbERlc2lnbmVyVG9vbGJhck1vZHVsZSxcbiAgICBEeG9EYXNoYm9hcmRDb250cm9sSXRlbUJpbmRpbmdQYW5lbE1vZHVsZSxcbiAgICBEeG9EYXNoYm9hcmRDb250cm9sSXRlbU9wdGlvbnNQYW5lbE1vZHVsZSxcbiAgICBEeG9EYXNoYm9hcmRDb250cm9sTW9iaWxlTGF5b3V0TW9kdWxlLFxuICAgIER4b0Rhc2hib2FyZENvbnRyb2xUZXh0Qm94SXRlbUVkaXRvck1vZHVsZSxcbiAgICBEeG9EYXNoYm9hcmRDb250cm9sVmlld2VyQXBpTW9kdWxlLFxuICAgIER4b0Rhc2hib2FyZENvbnRyb2xGZXRjaFJlbW90ZVNlcnZpY2VNb2R1bGUsXG4gICAgRHhJbnRlZ3JhdGlvbk1vZHVsZSxcbiAgICBEeFRlbXBsYXRlTW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIER4RGFzaGJvYXJkQ29udHJvbENvbXBvbmVudFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgRHhEYXNoYm9hcmRDb250cm9sQ29tcG9uZW50LFxuICAgIER4b0FqYXhSZW1vdGVTZXJ2aWNlTW9kdWxlLFxuICAgIER4b0RhdGFSZXF1ZXN0T3B0aW9uc01vZHVsZSxcbiAgICBEeG9FeHRlbnNpb25zTW9kdWxlLFxuICAgIER4b0NoYXJ0SW5kaWNhdG9yc01vZHVsZSxcbiAgICBEeG9EYXNoYm9hcmRFeHBvcnRNb2R1bGUsXG4gICAgRHhvRGFzaGJvYXJkUGFyYW1ldGVyRGlhbG9nTW9kdWxlLFxuICAgIER4b0RhdGFJbnNwZWN0b3JNb2R1bGUsXG4gICAgRHhvRGF0YVNvdXJjZVdpemFyZE1vZHVsZSxcbiAgICBEeG9XaXphcmRTZXR0aW5nc01vZHVsZSxcbiAgICBEeG9EZXNpZ25lclRvb2xiYXJNb2R1bGUsXG4gICAgRHhvSXRlbUJpbmRpbmdQYW5lbE1vZHVsZSxcbiAgICBEeG9JdGVtT3B0aW9uc1BhbmVsTW9kdWxlLFxuICAgIER4b01vYmlsZUxheW91dE1vZHVsZSxcbiAgICBEeG9UZXh0Qm94SXRlbUVkaXRvck1vZHVsZSxcbiAgICBEeG9WaWV3ZXJBcGlNb2R1bGUsXG4gICAgRHhvRmV0Y2hSZW1vdGVTZXJ2aWNlTW9kdWxlLFxuICAgIER4b0Rhc2hib2FyZENvbnRyb2xBamF4UmVtb3RlU2VydmljZU1vZHVsZSxcbiAgICBEeG9EYXNoYm9hcmRDb250cm9sRGF0YVJlcXVlc3RPcHRpb25zTW9kdWxlLFxuICAgIER4b0Rhc2hib2FyZENvbnRyb2xFeHRlbnNpb25zTW9kdWxlLFxuICAgIER4b0Rhc2hib2FyZENvbnRyb2xDaGFydEluZGljYXRvcnNNb2R1bGUsXG4gICAgRHhvRGFzaGJvYXJkQ29udHJvbERhc2hib2FyZEV4cG9ydE1vZHVsZSxcbiAgICBEeG9EYXNoYm9hcmRDb250cm9sRGFzaGJvYXJkUGFyYW1ldGVyRGlhbG9nTW9kdWxlLFxuICAgIER4b0Rhc2hib2FyZENvbnRyb2xEYXRhSW5zcGVjdG9yTW9kdWxlLFxuICAgIER4b0Rhc2hib2FyZENvbnRyb2xEYXRhU291cmNlV2l6YXJkTW9kdWxlLFxuICAgIER4b0Rhc2hib2FyZENvbnRyb2xXaXphcmRTZXR0aW5nc01vZHVsZSxcbiAgICBEeG9EYXNoYm9hcmRDb250cm9sRGVzaWduZXJUb29sYmFyTW9kdWxlLFxuICAgIER4b0Rhc2hib2FyZENvbnRyb2xJdGVtQmluZGluZ1BhbmVsTW9kdWxlLFxuICAgIER4b0Rhc2hib2FyZENvbnRyb2xJdGVtT3B0aW9uc1BhbmVsTW9kdWxlLFxuICAgIER4b0Rhc2hib2FyZENvbnRyb2xNb2JpbGVMYXlvdXRNb2R1bGUsXG4gICAgRHhvRGFzaGJvYXJkQ29udHJvbFRleHRCb3hJdGVtRWRpdG9yTW9kdWxlLFxuICAgIER4b0Rhc2hib2FyZENvbnRyb2xWaWV3ZXJBcGlNb2R1bGUsXG4gICAgRHhvRGFzaGJvYXJkQ29udHJvbEZldGNoUmVtb3RlU2VydmljZU1vZHVsZSxcbiAgICBEeFRlbXBsYXRlTW9kdWxlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRHhEYXNoYm9hcmRDb250cm9sTW9kdWxlIHsgfVxuXG5cbiJdfQ==
@@ -0,0 +1,75 @@
1
+ /* tslint:disable:max-line-length */
2
+ import { Component, NgModule, Host, SkipSelf, Input } from '@angular/core';
3
+ import { NestedOptionHost, } from 'devextreme-angular/core';
4
+ import { NestedOption } from 'devextreme-angular/core';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "devextreme-angular/core";
7
+ export class DxoDashboardControlAjaxRemoteServiceComponent extends NestedOption {
8
+ get beforeSend() {
9
+ return this._getOption('beforeSend');
10
+ }
11
+ set beforeSend(value) {
12
+ this._setOption('beforeSend', value);
13
+ }
14
+ get complete() {
15
+ return this._getOption('complete');
16
+ }
17
+ set complete(value) {
18
+ this._setOption('complete', value);
19
+ }
20
+ get headers() {
21
+ return this._getOption('headers');
22
+ }
23
+ set headers(value) {
24
+ this._setOption('headers', value);
25
+ }
26
+ get _optionPath() {
27
+ return 'ajaxRemoteService';
28
+ }
29
+ constructor(parentOptionHost, optionHost) {
30
+ super();
31
+ parentOptionHost.setNestedOption(this);
32
+ optionHost.setHost(this, this._fullOptionPath.bind(this));
33
+ }
34
+ ngOnInit() {
35
+ this._addRecreatedComponent();
36
+ }
37
+ ngOnDestroy() {
38
+ this._addRemovedOption(this._getOptionPath());
39
+ }
40
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DxoDashboardControlAjaxRemoteServiceComponent, deps: [{ token: i1.NestedOptionHost, host: true, skipSelf: true }, { token: i1.NestedOptionHost, host: true }], target: i0.ɵɵFactoryTarget.Component });
41
+ /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DxoDashboardControlAjaxRemoteServiceComponent, selector: "dxo-dashboard-control-ajax-remote-service", inputs: { beforeSend: "beforeSend", complete: "complete", headers: "headers" }, providers: [NestedOptionHost], usesInheritance: true, ngImport: i0, template: '', isInline: true, styles: [""] });
42
+ }
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DxoDashboardControlAjaxRemoteServiceComponent, decorators: [{
44
+ type: Component,
45
+ args: [{ selector: 'dxo-dashboard-control-ajax-remote-service', template: '', providers: [NestedOptionHost] }]
46
+ }], ctorParameters: () => [{ type: i1.NestedOptionHost, decorators: [{
47
+ type: SkipSelf
48
+ }, {
49
+ type: Host
50
+ }] }, { type: i1.NestedOptionHost, decorators: [{
51
+ type: Host
52
+ }] }], propDecorators: { beforeSend: [{
53
+ type: Input
54
+ }], complete: [{
55
+ type: Input
56
+ }], headers: [{
57
+ type: Input
58
+ }] } });
59
+ export class DxoDashboardControlAjaxRemoteServiceModule {
60
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DxoDashboardControlAjaxRemoteServiceModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
61
+ /** @nocollapse */ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: DxoDashboardControlAjaxRemoteServiceModule, declarations: [DxoDashboardControlAjaxRemoteServiceComponent], exports: [DxoDashboardControlAjaxRemoteServiceComponent] });
62
+ /** @nocollapse */ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DxoDashboardControlAjaxRemoteServiceModule });
63
+ }
64
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DxoDashboardControlAjaxRemoteServiceModule, decorators: [{
65
+ type: NgModule,
66
+ args: [{
67
+ declarations: [
68
+ DxoDashboardControlAjaxRemoteServiceComponent
69
+ ],
70
+ exports: [
71
+ DxoDashboardControlAjaxRemoteServiceComponent
72
+ ],
73
+ }]
74
+ }] });
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWpheC1yZW1vdGUtc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy91aS9kYXNoYm9hcmQtY29udHJvbC9uZXN0ZWQvYWpheC1yZW1vdGUtc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQ0FBb0M7QUFHcEMsT0FBTyxFQUNILFNBQVMsRUFHVCxRQUFRLEVBQ1IsSUFBSSxFQUNKLFFBQVEsRUFDUixLQUFLLEVBQ1IsTUFBTSxlQUFlLENBQUM7QUFNdkIsT0FBTyxFQUNILGdCQUFnQixHQUNuQixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7O0FBU3ZELE1BQU0sT0FBTyw2Q0FBOEMsU0FBUSxZQUFZO0lBQzNFLElBQ0ksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBQ0QsSUFBSSxVQUFVLENBQUMsS0FBZTtRQUMxQixJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFDSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxLQUFlO1FBQ3hCLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxJQUNJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUNELElBQUksT0FBTyxDQUFDLEtBQVU7UUFDbEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUdELElBQWMsV0FBVztRQUNyQixPQUFPLG1CQUFtQixDQUFDO0lBQy9CLENBQUM7SUFHRCxZQUFnQyxnQkFBa0MsRUFDbEQsVUFBNEI7UUFDeEMsS0FBSyxFQUFFLENBQUM7UUFDUixnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBR0QsUUFBUTtRQUNKLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO0lBQ2xELENBQUM7MkhBN0NRLDZDQUE2QzsrR0FBN0MsNkNBQTZDLG9KQUYzQyxDQUFDLGdCQUFnQixDQUFDLGlEQUZuQixFQUFFOzs0RkFJSCw2Q0FBNkM7a0JBTnpELFNBQVM7K0JBQ0ksMkNBQTJDLFlBQzNDLEVBQUUsYUFFRCxDQUFDLGdCQUFnQixDQUFDOzswQkFpQ2hCLFFBQVE7OzBCQUFJLElBQUk7OzBCQUNwQixJQUFJO3lDQTlCVCxVQUFVO3NCQURiLEtBQUs7Z0JBU0YsUUFBUTtzQkFEWCxLQUFLO2dCQVNGLE9BQU87c0JBRFYsS0FBSzs7QUF5Q1YsTUFBTSxPQUFPLDBDQUEwQzsySEFBMUMsMENBQTBDOzRIQUExQywwQ0FBMEMsaUJBMUQxQyw2Q0FBNkMsYUFBN0MsNkNBQTZDOzRIQTBEN0MsMENBQTBDOzs0RkFBMUMsMENBQTBDO2tCQVJ0RCxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWiw2Q0FBNkM7cUJBQzlDO29CQUNELE9BQU8sRUFBRTt3QkFDUCw2Q0FBNkM7cUJBQzlDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyogdHNsaW50OmRpc2FibGU6bWF4LWxpbmUtbGVuZ3RoICovXG5cblxuaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgT25Jbml0LFxuICAgIE9uRGVzdHJveSxcbiAgICBOZ01vZHVsZSxcbiAgICBIb3N0LFxuICAgIFNraXBTZWxmLFxuICAgIElucHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5cblxuXG5cbmltcG9ydCB7XG4gICAgTmVzdGVkT3B0aW9uSG9zdCxcbn0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmVzdGVkT3B0aW9uIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL2NvcmUnO1xuXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZHhvLWRhc2hib2FyZC1jb250cm9sLWFqYXgtcmVtb3RlLXNlcnZpY2UnLFxuICAgIHRlbXBsYXRlOiAnJyxcbiAgICBzdHlsZXM6IFsnJ10sXG4gICAgcHJvdmlkZXJzOiBbTmVzdGVkT3B0aW9uSG9zdF1cbn0pXG5leHBvcnQgY2xhc3MgRHhvRGFzaGJvYXJkQ29udHJvbEFqYXhSZW1vdGVTZXJ2aWNlQ29tcG9uZW50IGV4dGVuZHMgTmVzdGVkT3B0aW9uIGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQgIHtcbiAgICBASW5wdXQoKVxuICAgIGdldCBiZWZvcmVTZW5kKCk6IEZ1bmN0aW9uIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignYmVmb3JlU2VuZCcpO1xuICAgIH1cbiAgICBzZXQgYmVmb3JlU2VuZCh2YWx1ZTogRnVuY3Rpb24pIHtcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdiZWZvcmVTZW5kJywgdmFsdWUpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGNvbXBsZXRlKCk6IEZ1bmN0aW9uIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignY29tcGxldGUnKTtcbiAgICB9XG4gICAgc2V0IGNvbXBsZXRlKHZhbHVlOiBGdW5jdGlvbikge1xuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ2NvbXBsZXRlJywgdmFsdWUpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGhlYWRlcnMoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignaGVhZGVycycpO1xuICAgIH1cbiAgICBzZXQgaGVhZGVycyh2YWx1ZTogYW55KSB7XG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignaGVhZGVycycsIHZhbHVlKTtcbiAgICB9XG5cblxuICAgIHByb3RlY3RlZCBnZXQgX29wdGlvblBhdGgoKSB7XG4gICAgICAgIHJldHVybiAnYWpheFJlbW90ZVNlcnZpY2UnO1xuICAgIH1cblxuXG4gICAgY29uc3RydWN0b3IoQFNraXBTZWxmKCkgQEhvc3QoKSBwYXJlbnRPcHRpb25Ib3N0OiBOZXN0ZWRPcHRpb25Ib3N0LFxuICAgICAgICAgICAgQEhvc3QoKSBvcHRpb25Ib3N0OiBOZXN0ZWRPcHRpb25Ib3N0KSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHBhcmVudE9wdGlvbkhvc3Quc2V0TmVzdGVkT3B0aW9uKHRoaXMpO1xuICAgICAgICBvcHRpb25Ib3N0LnNldEhvc3QodGhpcywgdGhpcy5fZnVsbE9wdGlvblBhdGguYmluZCh0aGlzKSk7XG4gICAgfVxuXG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5fYWRkUmVjcmVhdGVkQ29tcG9uZW50KCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuX2FkZFJlbW92ZWRPcHRpb24odGhpcy5fZ2V0T3B0aW9uUGF0aCgpKTtcbiAgICB9XG5cblxufVxuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBEeG9EYXNoYm9hcmRDb250cm9sQWpheFJlbW90ZVNlcnZpY2VDb21wb25lbnRcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIER4b0Rhc2hib2FyZENvbnRyb2xBamF4UmVtb3RlU2VydmljZUNvbXBvbmVudFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBEeG9EYXNoYm9hcmRDb250cm9sQWpheFJlbW90ZVNlcnZpY2VNb2R1bGUgeyB9XG4iXX0=
@@ -0,0 +1,59 @@
1
+ /* tslint:disable:max-line-length */
2
+ import { Component, NgModule, Host, SkipSelf, Input } from '@angular/core';
3
+ import { NestedOptionHost, } from 'devextreme-angular/core';
4
+ import { NestedOption } from 'devextreme-angular/core';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "devextreme-angular/core";
7
+ export class DxoDashboardControlChartIndicatorsComponent extends NestedOption {
8
+ get customIndicatorTypes() {
9
+ return this._getOption('customIndicatorTypes');
10
+ }
11
+ set customIndicatorTypes(value) {
12
+ this._setOption('customIndicatorTypes', value);
13
+ }
14
+ get _optionPath() {
15
+ return 'chartIndicators';
16
+ }
17
+ constructor(parentOptionHost, optionHost) {
18
+ super();
19
+ parentOptionHost.setNestedOption(this);
20
+ optionHost.setHost(this, this._fullOptionPath.bind(this));
21
+ }
22
+ ngOnInit() {
23
+ this._addRecreatedComponent();
24
+ }
25
+ ngOnDestroy() {
26
+ this._addRemovedOption(this._getOptionPath());
27
+ }
28
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DxoDashboardControlChartIndicatorsComponent, deps: [{ token: i1.NestedOptionHost, host: true, skipSelf: true }, { token: i1.NestedOptionHost, host: true }], target: i0.ɵɵFactoryTarget.Component });
29
+ /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DxoDashboardControlChartIndicatorsComponent, selector: "dxo-dashboard-control-chart-indicators", inputs: { customIndicatorTypes: "customIndicatorTypes" }, providers: [NestedOptionHost], usesInheritance: true, ngImport: i0, template: '', isInline: true, styles: [""] });
30
+ }
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DxoDashboardControlChartIndicatorsComponent, decorators: [{
32
+ type: Component,
33
+ args: [{ selector: 'dxo-dashboard-control-chart-indicators', template: '', providers: [NestedOptionHost] }]
34
+ }], ctorParameters: () => [{ type: i1.NestedOptionHost, decorators: [{
35
+ type: SkipSelf
36
+ }, {
37
+ type: Host
38
+ }] }, { type: i1.NestedOptionHost, decorators: [{
39
+ type: Host
40
+ }] }], propDecorators: { customIndicatorTypes: [{
41
+ type: Input
42
+ }] } });
43
+ export class DxoDashboardControlChartIndicatorsModule {
44
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DxoDashboardControlChartIndicatorsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
45
+ /** @nocollapse */ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: DxoDashboardControlChartIndicatorsModule, declarations: [DxoDashboardControlChartIndicatorsComponent], exports: [DxoDashboardControlChartIndicatorsComponent] });
46
+ /** @nocollapse */ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DxoDashboardControlChartIndicatorsModule });
47
+ }
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DxoDashboardControlChartIndicatorsModule, decorators: [{
49
+ type: NgModule,
50
+ args: [{
51
+ declarations: [
52
+ DxoDashboardControlChartIndicatorsComponent
53
+ ],
54
+ exports: [
55
+ DxoDashboardControlChartIndicatorsComponent
56
+ ],
57
+ }]
58
+ }] });
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtaW5kaWNhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy91aS9kYXNoYm9hcmQtY29udHJvbC9uZXN0ZWQvY2hhcnQtaW5kaWNhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQ0FBb0M7QUFHcEMsT0FBTyxFQUNILFNBQVMsRUFHVCxRQUFRLEVBQ1IsSUFBSSxFQUNKLFFBQVEsRUFDUixLQUFLLEVBQ1IsTUFBTSxlQUFlLENBQUM7QUFNdkIsT0FBTyxFQUNILGdCQUFnQixHQUNuQixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7O0FBU3ZELE1BQU0sT0FBTywyQ0FBNEMsU0FBUSxZQUFZO0lBQ3pFLElBQ0ksb0JBQW9CO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFDRCxJQUFJLG9CQUFvQixDQUFDLEtBQVU7UUFDL0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBR0QsSUFBYyxXQUFXO1FBQ3JCLE9BQU8saUJBQWlCLENBQUM7SUFDN0IsQ0FBQztJQUdELFlBQWdDLGdCQUFrQyxFQUNsRCxVQUE0QjtRQUN4QyxLQUFLLEVBQUUsQ0FBQztRQUNSLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFHRCxRQUFRO1FBQ0osSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7SUFDbEQsQ0FBQzsySEE3QlEsMkNBQTJDOytHQUEzQywyQ0FBMkMsMkhBRnpDLENBQUMsZ0JBQWdCLENBQUMsaURBRm5CLEVBQUU7OzRGQUlILDJDQUEyQztrQkFOdkQsU0FBUzsrQkFDSSx3Q0FBd0MsWUFDeEMsRUFBRSxhQUVELENBQUMsZ0JBQWdCLENBQUM7OzBCQWlCaEIsUUFBUTs7MEJBQUksSUFBSTs7MEJBQ3BCLElBQUk7eUNBZFQsb0JBQW9CO3NCQUR2QixLQUFLOztBQXlDVixNQUFNLE9BQU8sd0NBQXdDOzJIQUF4Qyx3Q0FBd0M7NEhBQXhDLHdDQUF3QyxpQkExQ3hDLDJDQUEyQyxhQUEzQywyQ0FBMkM7NEhBMEMzQyx3Q0FBd0M7OzRGQUF4Qyx3Q0FBd0M7a0JBUnBELFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLDJDQUEyQztxQkFDNUM7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLDJDQUEyQztxQkFDNUM7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKiB0c2xpbnQ6ZGlzYWJsZTptYXgtbGluZS1sZW5ndGggKi9cblxuXG5pbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBPbkluaXQsXG4gICAgT25EZXN0cm95LFxuICAgIE5nTW9kdWxlLFxuICAgIEhvc3QsXG4gICAgU2tpcFNlbGYsXG4gICAgSW5wdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cblxuXG5cblxuaW1wb3J0IHtcbiAgICBOZXN0ZWRPcHRpb25Ib3N0LFxufSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZXN0ZWRPcHRpb24gfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvY29yZSc7XG5cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkeG8tZGFzaGJvYXJkLWNvbnRyb2wtY2hhcnQtaW5kaWNhdG9ycycsXG4gICAgdGVtcGxhdGU6ICcnLFxuICAgIHN0eWxlczogWycnXSxcbiAgICBwcm92aWRlcnM6IFtOZXN0ZWRPcHRpb25Ib3N0XVxufSlcbmV4cG9ydCBjbGFzcyBEeG9EYXNoYm9hcmRDb250cm9sQ2hhcnRJbmRpY2F0b3JzQ29tcG9uZW50IGV4dGVuZHMgTmVzdGVkT3B0aW9uIGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQgIHtcbiAgICBASW5wdXQoKVxuICAgIGdldCBjdXN0b21JbmRpY2F0b3JUeXBlcygpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdjdXN0b21JbmRpY2F0b3JUeXBlcycpO1xuICAgIH1cbiAgICBzZXQgY3VzdG9tSW5kaWNhdG9yVHlwZXModmFsdWU6IGFueSkge1xuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ2N1c3RvbUluZGljYXRvclR5cGVzJywgdmFsdWUpO1xuICAgIH1cblxuXG4gICAgcHJvdGVjdGVkIGdldCBfb3B0aW9uUGF0aCgpIHtcbiAgICAgICAgcmV0dXJuICdjaGFydEluZGljYXRvcnMnO1xuICAgIH1cblxuXG4gICAgY29uc3RydWN0b3IoQFNraXBTZWxmKCkgQEhvc3QoKSBwYXJlbnRPcHRpb25Ib3N0OiBOZXN0ZWRPcHRpb25Ib3N0LFxuICAgICAgICAgICAgQEhvc3QoKSBvcHRpb25Ib3N0OiBOZXN0ZWRPcHRpb25Ib3N0KSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHBhcmVudE9wdGlvbkhvc3Quc2V0TmVzdGVkT3B0aW9uKHRoaXMpO1xuICAgICAgICBvcHRpb25Ib3N0LnNldEhvc3QodGhpcywgdGhpcy5fZnVsbE9wdGlvblBhdGguYmluZCh0aGlzKSk7XG4gICAgfVxuXG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5fYWRkUmVjcmVhdGVkQ29tcG9uZW50KCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuX2FkZFJlbW92ZWRPcHRpb24odGhpcy5fZ2V0T3B0aW9uUGF0aCgpKTtcbiAgICB9XG5cblxufVxuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBEeG9EYXNoYm9hcmRDb250cm9sQ2hhcnRJbmRpY2F0b3JzQ29tcG9uZW50XG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBEeG9EYXNoYm9hcmRDb250cm9sQ2hhcnRJbmRpY2F0b3JzQ29tcG9uZW50XG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIER4b0Rhc2hib2FyZENvbnRyb2xDaGFydEluZGljYXRvcnNNb2R1bGUgeyB9XG4iXX0=
@@ -0,0 +1,91 @@
1
+ /* tslint:disable:max-line-length */
2
+ import { Component, NgModule, Host, SkipSelf, Input } from '@angular/core';
3
+ import { NestedOptionHost, } from 'devextreme-angular/core';
4
+ import { NestedOption } from 'devextreme-angular/core';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "devextreme-angular/core";
7
+ export class DxoDashboardControlDashboardExportComponent extends NestedOption {
8
+ get allowExportDashboard() {
9
+ return this._getOption('allowExportDashboard');
10
+ }
11
+ set allowExportDashboard(value) {
12
+ this._setOption('allowExportDashboard', value);
13
+ }
14
+ get allowExportDashboardItems() {
15
+ return this._getOption('allowExportDashboardItems');
16
+ }
17
+ set allowExportDashboardItems(value) {
18
+ this._setOption('allowExportDashboardItems', value);
19
+ }
20
+ get onExportDialogHidden() {
21
+ return this._getOption('onExportDialogHidden');
22
+ }
23
+ set onExportDialogHidden(value) {
24
+ this._setOption('onExportDialogHidden', value);
25
+ }
26
+ get onExportDialogShowing() {
27
+ return this._getOption('onExportDialogShowing');
28
+ }
29
+ set onExportDialogShowing(value) {
30
+ this._setOption('onExportDialogShowing', value);
31
+ }
32
+ get onExportDialogShown() {
33
+ return this._getOption('onExportDialogShown');
34
+ }
35
+ set onExportDialogShown(value) {
36
+ this._setOption('onExportDialogShown', value);
37
+ }
38
+ get _optionPath() {
39
+ return 'dashboardExport';
40
+ }
41
+ constructor(parentOptionHost, optionHost) {
42
+ super();
43
+ parentOptionHost.setNestedOption(this);
44
+ optionHost.setHost(this, this._fullOptionPath.bind(this));
45
+ }
46
+ ngOnInit() {
47
+ this._addRecreatedComponent();
48
+ }
49
+ ngOnDestroy() {
50
+ this._addRemovedOption(this._getOptionPath());
51
+ }
52
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DxoDashboardControlDashboardExportComponent, deps: [{ token: i1.NestedOptionHost, host: true, skipSelf: true }, { token: i1.NestedOptionHost, host: true }], target: i0.ɵɵFactoryTarget.Component });
53
+ /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DxoDashboardControlDashboardExportComponent, selector: "dxo-dashboard-control-dashboard-export", inputs: { allowExportDashboard: "allowExportDashboard", allowExportDashboardItems: "allowExportDashboardItems", onExportDialogHidden: "onExportDialogHidden", onExportDialogShowing: "onExportDialogShowing", onExportDialogShown: "onExportDialogShown" }, providers: [NestedOptionHost], usesInheritance: true, ngImport: i0, template: '', isInline: true, styles: [""] });
54
+ }
55
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DxoDashboardControlDashboardExportComponent, decorators: [{
56
+ type: Component,
57
+ args: [{ selector: 'dxo-dashboard-control-dashboard-export', template: '', providers: [NestedOptionHost] }]
58
+ }], ctorParameters: () => [{ type: i1.NestedOptionHost, decorators: [{
59
+ type: SkipSelf
60
+ }, {
61
+ type: Host
62
+ }] }, { type: i1.NestedOptionHost, decorators: [{
63
+ type: Host
64
+ }] }], propDecorators: { allowExportDashboard: [{
65
+ type: Input
66
+ }], allowExportDashboardItems: [{
67
+ type: Input
68
+ }], onExportDialogHidden: [{
69
+ type: Input
70
+ }], onExportDialogShowing: [{
71
+ type: Input
72
+ }], onExportDialogShown: [{
73
+ type: Input
74
+ }] } });
75
+ export class DxoDashboardControlDashboardExportModule {
76
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DxoDashboardControlDashboardExportModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
77
+ /** @nocollapse */ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: DxoDashboardControlDashboardExportModule, declarations: [DxoDashboardControlDashboardExportComponent], exports: [DxoDashboardControlDashboardExportComponent] });
78
+ /** @nocollapse */ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DxoDashboardControlDashboardExportModule });
79
+ }
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DxoDashboardControlDashboardExportModule, decorators: [{
81
+ type: NgModule,
82
+ args: [{
83
+ declarations: [
84
+ DxoDashboardControlDashboardExportComponent
85
+ ],
86
+ exports: [
87
+ DxoDashboardControlDashboardExportComponent
88
+ ],
89
+ }]
90
+ }] });
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLWV4cG9ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy91aS9kYXNoYm9hcmQtY29udHJvbC9uZXN0ZWQvZGFzaGJvYXJkLWV4cG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQ0FBb0M7QUFHcEMsT0FBTyxFQUNILFNBQVMsRUFHVCxRQUFRLEVBQ1IsSUFBSSxFQUNKLFFBQVEsRUFDUixLQUFLLEVBQ1IsTUFBTSxlQUFlLENBQUM7QUFNdkIsT0FBTyxFQUNILGdCQUFnQixHQUNuQixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7O0FBU3ZELE1BQU0sT0FBTywyQ0FBNEMsU0FBUSxZQUFZO0lBQ3pFLElBQ0ksb0JBQW9CO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFDRCxJQUFJLG9CQUFvQixDQUFDLEtBQWM7UUFDbkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsSUFDSSx5QkFBeUI7UUFDekIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLDJCQUEyQixDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUNELElBQUkseUJBQXlCLENBQUMsS0FBYztRQUN4QyxJQUFJLENBQUMsVUFBVSxDQUFDLDJCQUEyQixFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxJQUNJLG9CQUFvQjtRQUNwQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBQ0QsSUFBSSxvQkFBb0IsQ0FBQyxLQUFlO1FBQ3BDLElBQUksQ0FBQyxVQUFVLENBQUMsc0JBQXNCLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELElBQ0kscUJBQXFCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFDRCxJQUFJLHFCQUFxQixDQUFDLEtBQWU7UUFDckMsSUFBSSxDQUFDLFVBQVUsQ0FBQyx1QkFBdUIsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsSUFDSSxtQkFBbUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUNELElBQUksbUJBQW1CLENBQUMsS0FBZTtRQUNuQyxJQUFJLENBQUMsVUFBVSxDQUFDLHFCQUFxQixFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFHRCxJQUFjLFdBQVc7UUFDckIsT0FBTyxpQkFBaUIsQ0FBQztJQUM3QixDQUFDO0lBR0QsWUFBZ0MsZ0JBQWtDLEVBQ2xELFVBQTRCO1FBQ3hDLEtBQUssRUFBRSxDQUFDO1FBQ1IsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUdELFFBQVE7UUFDSixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUNsRCxDQUFDOzJIQTdEUSwyQ0FBMkM7K0dBQTNDLDJDQUEyQyw2VEFGekMsQ0FBQyxnQkFBZ0IsQ0FBQyxpREFGbkIsRUFBRTs7NEZBSUgsMkNBQTJDO2tCQU52RCxTQUFTOytCQUNJLHdDQUF3QyxZQUN4QyxFQUFFLGFBRUQsQ0FBQyxnQkFBZ0IsQ0FBQzs7MEJBaURoQixRQUFROzswQkFBSSxJQUFJOzswQkFDcEIsSUFBSTt5Q0E5Q1Qsb0JBQW9CO3NCQUR2QixLQUFLO2dCQVNGLHlCQUF5QjtzQkFENUIsS0FBSztnQkFTRixvQkFBb0I7c0JBRHZCLEtBQUs7Z0JBU0YscUJBQXFCO3NCQUR4QixLQUFLO2dCQVNGLG1CQUFtQjtzQkFEdEIsS0FBSzs7QUF5Q1YsTUFBTSxPQUFPLHdDQUF3QzsySEFBeEMsd0NBQXdDOzRIQUF4Qyx3Q0FBd0MsaUJBMUV4QywyQ0FBMkMsYUFBM0MsMkNBQTJDOzRIQTBFM0Msd0NBQXdDOzs0RkFBeEMsd0NBQXdDO2tCQVJwRCxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWiwyQ0FBMkM7cUJBQzVDO29CQUNELE9BQU8sRUFBRTt3QkFDUCwyQ0FBMkM7cUJBQzVDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyogdHNsaW50OmRpc2FibGU6bWF4LWxpbmUtbGVuZ3RoICovXG5cblxuaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgT25Jbml0LFxuICAgIE9uRGVzdHJveSxcbiAgICBOZ01vZHVsZSxcbiAgICBIb3N0LFxuICAgIFNraXBTZWxmLFxuICAgIElucHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5cblxuXG5cbmltcG9ydCB7XG4gICAgTmVzdGVkT3B0aW9uSG9zdCxcbn0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmVzdGVkT3B0aW9uIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL2NvcmUnO1xuXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZHhvLWRhc2hib2FyZC1jb250cm9sLWRhc2hib2FyZC1leHBvcnQnLFxuICAgIHRlbXBsYXRlOiAnJyxcbiAgICBzdHlsZXM6IFsnJ10sXG4gICAgcHJvdmlkZXJzOiBbTmVzdGVkT3B0aW9uSG9zdF1cbn0pXG5leHBvcnQgY2xhc3MgRHhvRGFzaGJvYXJkQ29udHJvbERhc2hib2FyZEV4cG9ydENvbXBvbmVudCBleHRlbmRzIE5lc3RlZE9wdGlvbiBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0ICB7XG4gICAgQElucHV0KClcbiAgICBnZXQgYWxsb3dFeHBvcnREYXNoYm9hcmQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ2FsbG93RXhwb3J0RGFzaGJvYXJkJyk7XG4gICAgfVxuICAgIHNldCBhbGxvd0V4cG9ydERhc2hib2FyZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ2FsbG93RXhwb3J0RGFzaGJvYXJkJywgdmFsdWUpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGFsbG93RXhwb3J0RGFzaGJvYXJkSXRlbXMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ2FsbG93RXhwb3J0RGFzaGJvYXJkSXRlbXMnKTtcbiAgICB9XG4gICAgc2V0IGFsbG93RXhwb3J0RGFzaGJvYXJkSXRlbXModmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdhbGxvd0V4cG9ydERhc2hib2FyZEl0ZW1zJywgdmFsdWUpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IG9uRXhwb3J0RGlhbG9nSGlkZGVuKCk6IEZ1bmN0aW9uIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignb25FeHBvcnREaWFsb2dIaWRkZW4nKTtcbiAgICB9XG4gICAgc2V0IG9uRXhwb3J0RGlhbG9nSGlkZGVuKHZhbHVlOiBGdW5jdGlvbikge1xuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ29uRXhwb3J0RGlhbG9nSGlkZGVuJywgdmFsdWUpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IG9uRXhwb3J0RGlhbG9nU2hvd2luZygpOiBGdW5jdGlvbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ29uRXhwb3J0RGlhbG9nU2hvd2luZycpO1xuICAgIH1cbiAgICBzZXQgb25FeHBvcnREaWFsb2dTaG93aW5nKHZhbHVlOiBGdW5jdGlvbikge1xuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ29uRXhwb3J0RGlhbG9nU2hvd2luZycsIHZhbHVlKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCBvbkV4cG9ydERpYWxvZ1Nob3duKCk6IEZ1bmN0aW9uIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignb25FeHBvcnREaWFsb2dTaG93bicpO1xuICAgIH1cbiAgICBzZXQgb25FeHBvcnREaWFsb2dTaG93bih2YWx1ZTogRnVuY3Rpb24pIHtcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdvbkV4cG9ydERpYWxvZ1Nob3duJywgdmFsdWUpO1xuICAgIH1cblxuXG4gICAgcHJvdGVjdGVkIGdldCBfb3B0aW9uUGF0aCgpIHtcbiAgICAgICAgcmV0dXJuICdkYXNoYm9hcmRFeHBvcnQnO1xuICAgIH1cblxuXG4gICAgY29uc3RydWN0b3IoQFNraXBTZWxmKCkgQEhvc3QoKSBwYXJlbnRPcHRpb25Ib3N0OiBOZXN0ZWRPcHRpb25Ib3N0LFxuICAgICAgICAgICAgQEhvc3QoKSBvcHRpb25Ib3N0OiBOZXN0ZWRPcHRpb25Ib3N0KSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHBhcmVudE9wdGlvbkhvc3Quc2V0TmVzdGVkT3B0aW9uKHRoaXMpO1xuICAgICAgICBvcHRpb25Ib3N0LnNldEhvc3QodGhpcywgdGhpcy5fZnVsbE9wdGlvblBhdGguYmluZCh0aGlzKSk7XG4gICAgfVxuXG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5fYWRkUmVjcmVhdGVkQ29tcG9uZW50KCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuX2FkZFJlbW92ZWRPcHRpb24odGhpcy5fZ2V0T3B0aW9uUGF0aCgpKTtcbiAgICB9XG5cblxufVxuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBEeG9EYXNoYm9hcmRDb250cm9sRGFzaGJvYXJkRXhwb3J0Q29tcG9uZW50XG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBEeG9EYXNoYm9hcmRDb250cm9sRGFzaGJvYXJkRXhwb3J0Q29tcG9uZW50XG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIER4b0Rhc2hib2FyZENvbnRyb2xEYXNoYm9hcmRFeHBvcnRNb2R1bGUgeyB9XG4iXX0=