@magic-xpa/angular 4.801.0-dev481.245 → 4.801.0-dev481.253

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 (127) hide show
  1. package/esm2020/index.mjs +57 -0
  2. package/{esm2015/magic-xpa-angular.js → esm2020/magic-xpa-angular.mjs} +0 -0
  3. package/{esm2015/src/controls.metadata.model.js → esm2020/src/controls.metadata.model.mjs} +0 -0
  4. package/{esm2015/src/interfaces/sub-form-definition.iterface.js → esm2020/src/interfaces/sub-form-definition.iterface.mjs} +1 -0
  5. package/esm2020/src/magic.core.module.mjs +157 -0
  6. package/{esm2015/src/services/ISubformMagicService.js → esm2020/src/services/ISubformMagicService.mjs} +1 -0
  7. package/esm2020/src/services/OverlayWindowService.mjs +208 -0
  8. package/{esm2015/src/services/StylesMapManager.js → esm2020/src/services/StylesMapManager.mjs} +0 -0
  9. package/{esm2015/src/services/accessor.magic.service.js → esm2020/src/services/accessor.magic.service.mjs} +2 -2
  10. package/{esm2015/src/services/commands-collector.magic.service.js → esm2020/src/services/commands-collector.magic.service.mjs} +7 -4
  11. package/esm2020/src/services/component-list.magic.service.mjs +46 -0
  12. package/{esm2015/src/services/confirmation.components.magic.provider.js → esm2020/src/services/confirmation.components.magic.provider.mjs} +2 -2
  13. package/esm2020/src/services/engine.magic.service.mjs +82 -0
  14. package/{esm2015/src/services/exit.magic.service.js → esm2020/src/services/exit.magic.service.mjs} +2 -2
  15. package/esm2020/src/services/magic.lazy.loader.service.mjs +16 -0
  16. package/{esm2015/src/services/magic.providers.js → esm2020/src/services/magic.providers.mjs} +0 -0
  17. package/{esm2015/src/services/magic.services.js → esm2020/src/services/magic.services.mjs} +2 -2
  18. package/{esm2015/src/services/mg-date-adapter.js → esm2020/src/services/mg-date-adapter.mjs} +2 -2
  19. package/{esm2015/src/services/overlay.conainer.magic.provider.js → esm2020/src/services/overlay.conainer.magic.provider.mjs} +2 -2
  20. package/esm2020/src/services/router-commands.magic.service.mjs +28 -0
  21. package/{esm2015/src/services/subform.magic.service.js → esm2020/src/services/subform.magic.service.mjs} +14 -10
  22. package/{esm2015/src/services/table.magic.service.js → esm2020/src/services/table.magic.service.mjs} +2 -2
  23. package/{esm2015/src/services/task.magics.service.js → esm2020/src/services/task.magics.service.mjs} +2 -2
  24. package/{esm2015/src/services/title.magic.service.js → esm2020/src/services/title.magic.service.mjs} +2 -2
  25. package/{esm2015/src/ui/GuiInteractiveExecutor.js → esm2020/src/ui/GuiInteractiveExecutor.mjs} +0 -0
  26. package/{esm2015/src/ui/components/base-magic-alert.component.js → esm2020/src/ui/components/base-magic-alert.component.mjs} +2 -2
  27. package/{esm2015/src/ui/components/base-magic-confirm.component.js → esm2020/src/ui/components/base-magic-confirm.component.mjs} +2 -2
  28. package/esm2020/src/ui/components/magic-alert.component.mjs +71 -0
  29. package/esm2020/src/ui/components/magic-confirmation-box.component.mjs +82 -0
  30. package/{esm2015/src/ui/directives/NonMagicControlDirective.js → esm2020/src/ui/directives/NonMagicControlDirective.mjs} +2 -2
  31. package/{esm2015/src/ui/directives/magic/checkbox-noformcontrol.magic.directive.js → esm2020/src/ui/directives/magic/checkbox-noformcontrol.magic.directive.mjs} +2 -2
  32. package/{esm2015/src/ui/directives/magic/checkbox.magic.directive.js → esm2020/src/ui/directives/magic/checkbox.magic.directive.mjs} +2 -2
  33. package/{esm2015/src/ui/directives/magic/combobox.magic.directive.js → esm2020/src/ui/directives/magic/combobox.magic.directive.mjs} +2 -2
  34. package/{esm2015/src/ui/directives/magic/form-controls/control-value-accessors/checkbox.cva.directive.js → esm2020/src/ui/directives/magic/form-controls/control-value-accessors/checkbox.cva.directive.mjs} +3 -4
  35. package/{esm2015/src/ui/directives/magic/form-controls/control-value-accessors/date.cva.directive.js → esm2020/src/ui/directives/magic/form-controls/control-value-accessors/date.cva.directive.mjs} +2 -2
  36. package/{esm2015/src/ui/directives/magic/form-controls/control-value-accessors/default.cva.directive.js → esm2020/src/ui/directives/magic/form-controls/control-value-accessors/default.cva.directive.mjs} +3 -4
  37. package/{esm2015/src/ui/directives/magic/input.noformcontrol.magic.directive.js → esm2020/src/ui/directives/magic/input.noformcontrol.magic.directive.mjs} +2 -2
  38. package/{esm2015/src/ui/directives/magic/nocontrol.magic.directive.js → esm2020/src/ui/directives/magic/nocontrol.magic.directive.mjs} +2 -2
  39. package/{esm2015/src/ui/directives/magic/row.magic.directive.js → esm2020/src/ui/directives/magic/row.magic.directive.mjs} +2 -2
  40. package/{esm2015/src/ui/directives/magic-focus.directive.js → esm2020/src/ui/directives/magic-focus.directive.mjs} +2 -2
  41. package/esm2020/src/ui/directives/magic.directive.mjs +207 -0
  42. package/{esm2015/src/ui/directives/magicViewContainerRef.directive.js → esm2020/src/ui/directives/magicViewContainerRef.directive.mjs} +3 -3
  43. package/{esm2015/src/ui/directives/mgformat.magic.directive.js → esm2020/src/ui/directives/mgformat.magic.directive.mjs} +2 -2
  44. package/{esm2015/src/ui/directives/range-validator.magic.directive.js → esm2020/src/ui/directives/range-validator.magic.directive.mjs} +2 -2
  45. package/{esm2015/src/ui/magic-confirmationBox.js → esm2020/src/ui/magic-confirmationBox.mjs} +0 -0
  46. package/{esm2015/src/ui/magic-modal/base-magic-overlay-container.js → esm2020/src/ui/magic-modal/base-magic-overlay-container.mjs} +0 -0
  47. package/{esm2015/src/ui/magic-modal/magic-modal-form.js → esm2020/src/ui/magic-modal/magic-modal-form.mjs} +0 -0
  48. package/{esm2015/src/ui/magic-modal/magic-modal-interface.js → esm2020/src/ui/magic-modal/magic-modal-interface.mjs} +1 -0
  49. package/esm2020/src/ui/magic-modal/magic-overlay-container-wrapper.mjs +135 -0
  50. package/esm2020/src/ui/magic-modal/magic-overlay-container.mjs +165 -0
  51. package/esm2020/src/ui/magic-root.component.mjs +237 -0
  52. package/esm2020/src/ui/mgerror.magic.component.mjs +120 -0
  53. package/{esm2015/src/ui/pipes/date.magic.pipe.js → esm2020/src/ui/pipes/date.magic.pipe.mjs} +3 -3
  54. package/{esm2015/src/ui/pipes/time.magic.pipe.js → esm2020/src/ui/pipes/time.magic.pipe.mjs} +3 -3
  55. package/{esm2015/src/ui/router-container.magic.component.js → esm2020/src/ui/router-container.magic.component.mjs} +2 -2
  56. package/{esm2015/src/ui/subform.magic.component.js → esm2020/src/ui/subform.magic.component.mjs} +3 -3
  57. package/{esm2015/src/ui/task-base.magic.component.js → esm2020/src/ui/task-base.magic.component.mjs} +2 -2
  58. package/{esm2015/src/ui/utils.js → esm2020/src/ui/utils.mjs} +0 -0
  59. package/fesm2015/magic-xpa-angular.mjs +4578 -0
  60. package/fesm2015/magic-xpa-angular.mjs.map +1 -0
  61. package/{fesm2015/magic-xpa-angular.js → fesm2020/magic-xpa-angular.mjs} +433 -412
  62. package/fesm2020/magic-xpa-angular.mjs.map +1 -0
  63. package/index.d.ts +1 -0
  64. package/package.json +28 -15
  65. package/src/magic.core.module.d.ts +3 -8
  66. package/src/services/OverlayWindowService.d.ts +2 -2
  67. package/src/services/accessor.magic.service.d.ts +2 -2
  68. package/src/services/commands-collector.magic.service.d.ts +2 -2
  69. package/src/services/component-list.magic.service.d.ts +3 -0
  70. package/src/services/confirmation.components.magic.provider.d.ts +2 -2
  71. package/src/services/engine.magic.service.d.ts +2 -2
  72. package/src/services/exit.magic.service.d.ts +2 -2
  73. package/src/services/magic.lazy.loader.service.d.ts +6 -0
  74. package/src/services/magic.services.d.ts +2 -2
  75. package/src/services/mg-date-adapter.d.ts +2 -2
  76. package/src/services/overlay.conainer.magic.provider.d.ts +2 -2
  77. package/src/services/router-commands.magic.service.d.ts +2 -2
  78. package/src/services/subform.magic.service.d.ts +6 -4
  79. package/src/services/table.magic.service.d.ts +2 -2
  80. package/src/services/task.magics.service.d.ts +2 -2
  81. package/src/services/title.magic.service.d.ts +2 -2
  82. package/src/ui/components/base-magic-alert.component.d.ts +2 -2
  83. package/src/ui/components/base-magic-confirm.component.d.ts +2 -2
  84. package/src/ui/components/magic-alert.component.d.ts +2 -2
  85. package/src/ui/components/magic-confirmation-box.component.d.ts +2 -2
  86. package/src/ui/directives/NonMagicControlDirective.d.ts +2 -2
  87. package/src/ui/directives/magic/checkbox-noformcontrol.magic.directive.d.ts +2 -2
  88. package/src/ui/directives/magic/checkbox.magic.directive.d.ts +2 -2
  89. package/src/ui/directives/magic/combobox.magic.directive.d.ts +2 -2
  90. package/src/ui/directives/magic/form-controls/control-value-accessors/checkbox.cva.directive.d.ts +2 -2
  91. package/src/ui/directives/magic/form-controls/control-value-accessors/date.cva.directive.d.ts +2 -2
  92. package/src/ui/directives/magic/form-controls/control-value-accessors/default.cva.directive.d.ts +2 -2
  93. package/src/ui/directives/magic/input.noformcontrol.magic.directive.d.ts +2 -2
  94. package/src/ui/directives/magic/nocontrol.magic.directive.d.ts +2 -2
  95. package/src/ui/directives/magic/row.magic.directive.d.ts +2 -2
  96. package/src/ui/directives/magic-focus.directive.d.ts +2 -2
  97. package/src/ui/directives/magic.directive.d.ts +2 -2
  98. package/src/ui/directives/magicViewContainerRef.directive.d.ts +2 -2
  99. package/src/ui/directives/mgformat.magic.directive.d.ts +2 -2
  100. package/src/ui/directives/range-validator.magic.directive.d.ts +2 -2
  101. package/src/ui/magic-modal/magic-overlay-container-wrapper.d.ts +7 -5
  102. package/src/ui/magic-modal/magic-overlay-container.d.ts +2 -2
  103. package/src/ui/magic-root.component.d.ts +2 -2
  104. package/src/ui/mgerror.magic.component.d.ts +2 -2
  105. package/src/ui/pipes/date.magic.pipe.d.ts +2 -2
  106. package/src/ui/pipes/time.magic.pipe.d.ts +2 -2
  107. package/src/ui/router-container.magic.component.d.ts +2 -2
  108. package/src/ui/subform.magic.component.d.ts +2 -2
  109. package/src/ui/task-base.magic.component.d.ts +2 -2
  110. package/bundles/magic-xpa-angular.umd.js +0 -5028
  111. package/bundles/magic-xpa-angular.umd.js.map +0 -1
  112. package/bundles/magic-xpa-angular.umd.min.js +0 -16
  113. package/bundles/magic-xpa-angular.umd.min.js.map +0 -1
  114. package/esm2015/index.js +0 -56
  115. package/esm2015/src/magic.core.module.js +0 -173
  116. package/esm2015/src/services/OverlayWindowService.js +0 -205
  117. package/esm2015/src/services/component-list.magic.service.js +0 -36
  118. package/esm2015/src/services/engine.magic.service.js +0 -82
  119. package/esm2015/src/services/router-commands.magic.service.js +0 -25
  120. package/esm2015/src/ui/components/magic-alert.component.js +0 -72
  121. package/esm2015/src/ui/components/magic-confirmation-box.component.js +0 -83
  122. package/esm2015/src/ui/directives/magic.directive.js +0 -207
  123. package/esm2015/src/ui/magic-modal/magic-overlay-container-wrapper.js +0 -131
  124. package/esm2015/src/ui/magic-modal/magic-overlay-container.js +0 -169
  125. package/esm2015/src/ui/magic-root.component.js +0 -237
  126. package/esm2015/src/ui/mgerror.magic.component.js +0 -120
  127. package/fesm2015/magic-xpa-angular.js.map +0 -1
@@ -296,7 +296,7 @@ export class AccessorMagicService {
296
296
  }
297
297
  AccessorMagicService.ɵfac = function AccessorMagicService_Factory(t) { return new (t || AccessorMagicService)(i0.ɵɵinject(i1.TaskMagicService)); };
298
298
  AccessorMagicService.ɵprov = i0.ɵɵdefineInjectable({ token: AccessorMagicService, factory: AccessorMagicService.ɵfac });
299
- (function () { i0.ɵsetClassMetadata(AccessorMagicService, [{
299
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AccessorMagicService, [{
300
300
  type: Injectable
301
301
  }], function () { return [{ type: i1.TaskMagicService }]; }, null); })();
302
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzb3IubWFnaWMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3NlcnZpY2VzL2FjY2Vzc29yLm1hZ2ljLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV6RCxPQUFPLEVBQW1CLGNBQWMsRUFBRSxjQUFjLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFekQsT0FBTyxFQUFFLGNBQWMsRUFBYSxhQUFhLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7OztBQUs1RCxNQUFNLE9BQU8sb0JBQW9CO0lBTS9CLFlBQXNCLElBQXNCO1FBQXRCLFNBQUksR0FBSixJQUFJLENBQWtCO1FBTDVDLFdBQU0sR0FBUSxJQUFJLENBQUM7UUFNakIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO0lBQ2hDLENBQUM7SUFRRCxlQUFlLENBQUMsU0FBaUI7UUFDL0IsSUFBSSxVQUEyQixDQUFDO1FBQ2hDLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckUsSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEtBQUssSUFBSSxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsS0FB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UyxDQUFDLElBQVk7UUFDcEIsT0FBTyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFLRCxZQUFZLENBQUMsSUFBWTtRQUN2QixPQUFPLGFBQWEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUMsQ0FBQzs7d0ZBN21CVSxvQkFBb0I7NERBQXBCLG9CQUFvQixXQUFwQixvQkFBb0I7b0NBQXBCLG9CQUFvQjtjQURoQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUYXNrTWFnaWNTZXJ2aWNlIH0gZnJvbSAnLi90YXNrLm1hZ2ljcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29udHJvbE1ldGFkYXRhLCBDb250cm9sc01ldGFkYXRhIH0gZnJvbSAnLi4vY29udHJvbHMubWV0YWRhdGEubW9kZWwnO1xyXG5pbXBvcnQgeyBDdXN0b21WYWxpZGF0b3IsIEd1aUVudmlyb25tZW50LCBIdG1sUHJvcGVydGllcywgUElDIH0gZnJvbSAnQG1hZ2ljLXhwYS9ndWknO1xyXG5pbXBvcnQgeyBpc051bGxPclVuZGVmaW5lZCB9IGZyb20gJ0BtYWdpYy14cGEvbXNjb3JlbGliJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBnZXRHdWlFdmVudE9iaiwgSUd1aUV2ZW50LCBDb29raWVTZXJ2aWNlfSBmcm9tICdAbWFnaWMteHBhL2VuZ2luZSc7XHJcbmltcG9ydCB7IExvZ2dlciwgU3RvcmFnZUF0dHJpYnV0ZSB9IGZyb20gJ0BtYWdpYy14cGEvdXRpbHMnO1xyXG4vKipcclxuICogUHJvdmlkZXMgdGhlIFVJIHdpdGggdmFsdWVzIGNhbGN1bGF0ZWQgYnkgdGhlIE1hZ2ljIFdlYkNsaWVudFxyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQWNjZXNzb3JNYWdpY1NlcnZpY2Uge1xyXG4gIExvZ2dlcjogYW55ID0gbnVsbDtcclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCB0YXNrOiBUYXNrTWFnaWNTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLkxvZ2dlciA9IExvZ2dlci5JbnN0YW5jZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrcyBpZiB0aGUgY29udHJvbCBpcyByZWFkLW9ubHlcclxuICAgKiBAcGFyYW0gY29udHJvbElkIElkIG9mIGNvbnRyb2xcclxuICAgKiBAcmV0dXJucyBJcyB0aGUgY29udHJvbCBub3QgcmVhZC1vbmx5XHJcbiAgICovXHJcbiAgLy8gQ2hlY2tSZWFkT25seVxyXG4gIGNoZWNrSXNSZWFkT25seShjb250cm9sSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IHByb3BlcnRpZXM6IENvbnRyb2xNZXRhZGF0YTtcclxuICAgIHByb3BlcnRpZXMgPSB0aGlzLnRhc2suUmVjb3Jkcy5saXN0WzBdLmdldENvbnRyb2xNZXRhZGF0YShjb250cm9sSWQpO1xyXG4gICAgaWYgKHByb3BlcnRpZXMucHJvcGVydGllcy5nZXQoSHRtbFByb3BlcnRpZXMuUmVhZE9ubHkpICE9PSBudWxsICYmIHByb3BlcnRpZXMucHJvcGVydGllcy5nZXQoSHRtbFByb3BlcnRpZXMuUmVhZE9ubHkpID09PSB0cnVlKVxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICBlbHNlXHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgdGV4dCBvZiB0aGUgY29udHJvbFxyXG4gICAqIEBwYXJhbSBjb250cm9sSWQgSWQgb2YgY29udHJvbFxyXG4gICAqIEBwYXJhbSByb3dJZCBJZCBvZiByb3csIGlmIGFwcGxpY2FibGVcclxuICAgKiBAcmV0dXJucyBUaGUgdGV4dCBvZiB0aGUgY29udHJvbFxyXG4gICAqL1xyXG4gIC8vIG1nR2V0VGV4dFxyXG4gIGdldFRleHQoY29udHJvbElkOiBzdHJpbmcsIHJvd0lkPzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnRhc2suZ2V0UHJvcGVydHkoY29udHJvbElkLCBIdG1sUHJvcGVydGllcy5UZXh0LCByb3dJZCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIHRleHQgb2YgdGhlIHRhYiBwYWdlXHJcbiAgICogQHBhcmFtIGNvbnRyb2xJZCBJZCBvZiBjb250cm9sXHJcbiAgICogQHBhcmFtIGxheWVyIElkIG9mIHRhYnBhZ2VcclxuICAgKiBAcmV0dXJucyBUZXh0IG9mIHRhYnBhZ2VcclxuICAgKi9cclxuICAvLyBtZ0dldFRhYnBhZ2VUZXh0XHJcbiAgZ2V0VGFicGFnZVRleHQoY29udHJvbElkOiBzdHJpbmcsIGxheWVyOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLnRhc2suZ2V0UHJvcGVydHkoY29udHJvbElkLCBIdG1sUHJvcGVydGllcy5JdGVtc0xpc3QpO1xyXG4gICAgaWYgKHR5cGVvZiBpdGVtcyAhPT0gXCJ1bmRlZmluZWRcIilcclxuICAgICAgcmV0dXJuIGl0ZW1zW2xheWVyXS5kaXNwbGF5VmFsdWU7XHJcbiAgICByZXR1cm4gXCJcIjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIGltYWdlIGRlZmluZWQgZm9yIHRoZSBjb250cm9sXHJcbiAgICogQHBhcmFtIGNvbnRyb2xJZCBJZCBvZiBjb250cm9sXHJcbiAgICogQHBhcmFtIHJvd0lkIElkIG9mIHJvdywgaWYgYXBwbGljYWJsZVxyXG4gICAqIEByZXR1cm5zIEltYWdlIHNldCBvbiBjb250cm9sXHJcbiAgICovXHJcbiAgLy8gbWdHZXRJbWFnZVxyXG4gIGdldEltYWdlKGNvbnRyb2xJZDogc3RyaW5nLCByb3dJZD86IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBsZXQgcmVzdWx0ID0gdGhpcy50YXNrLmdldFByb3BlcnR5KGNvbnRyb2xJZCwgSHRtbFByb3BlcnRpZXMuSW1hZ2UsIHJvd0lkKTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcblxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB3aGV0aGVyIGFuIGltYWdlIGlzIHNldCBmb3IgdGhpcyBjb250cm9sXHJcbiAgICogQHBhcmFtIGNvbnRyb2xJZCBJZCBvZiBjb250cm9sXHJcbiAgICogQHBhcmFtIHJvd0lkIElkIG9mIHJvdywgaWYgYXBwbGljYWJsZVxyXG4gICAqIEByZXR1cm5zIHJldHVybnMgdHJ1ZSBpZiBjb250cm9sIGhhcyBhbiBpbWFnZSBzZXQgb24gaXRcclxuICAgKi9cclxuICAvLyBtZ0lzSW1hZ2VFeGlzdHNcclxuICBpc0ltYWdlRXhpc3RzKGNvbnRyb2xJZDogc3RyaW5nLCByb3dJZD86IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IHJlc3VsdCA9IHRoaXMudGFzay5nZXRQcm9wZXJ0eShjb250cm9sSWQsIEh0bWxQcm9wZXJ0aWVzLkltYWdlLCByb3dJZCk7XHJcbiAgICByZXR1cm4gIWlzTnVsbE9yVW5kZWZpbmVkKHJlc3VsdCk7XHJcblxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgQ1NTIGNsYXNzZXMgc2V0IG9uIHRoZSBjb250cm9sXHJcbiAgICogQHBhcmFtIGNvbnRyb2xJZCBJZCBvZiBjb250cm9sXHJcbiAgICogQHBhcmFtIHJvd0lkIElkIG9mIHJvdywgaWYgYXBwbGljYWJsZVxyXG4gICAqIEByZXR1cm5zIFRoZSBjbGFzc2VzIGZvciB0aGlzIGNvbnRyb2xcclxuICAgKi9cclxuICAvLyBtZ0dldENsYXNzZXNcclxuICBnZXRDbGFzc2VzKGNvbnRyb2xJZDogc3RyaW5nLCByb3dJZD86IHN0cmluZykgOnN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy50YXNrLmdldENsYXNzZXMoY29udHJvbElkLCByb3dJZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXRzIHRoZSBDU1Mgc3R5bGVzIHNldCBvbiB0aGUgY29udHJvbFxyXG4gICAqIEBwYXJhbSBjb250cm9sSWQgSWQgb2YgY29udHJvbFxyXG4gICAqIEBwYXJhbSBzdHlsZU5hbWUgTkFtZSBvZiBzdHlsZSByZXF1ZXN0ZWRcclxuICAgKiBAcGFyYW0gcm93SWQgSWQgb2Ygcm93LCBpZiBhcHBsaWNhYmxlXHJcbiAgICogQHJldHVybnMgVGhlIHN0eWxlIHNldCBvbiB0aGUgY29udHJvbFxyXG4gICAqL1xyXG4gIC8vIG1nR2V0U3R5bGVcclxuICBnZXRTdHlsZShjb250cm9sSWQ6IHN0cmluZywgc3R5bGVOYW1lOiBzdHJpbmcsIHJvd0lkPzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGxldCBzdHlsZSA9IHRoaXMudGFzay5nZXRTdHlsZShjb250cm9sSWQsIHN0eWxlTmFtZSwgcm93SWQpXHJcbiAgICByZXR1cm4gc3R5bGU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHdoZXRoZXIgYSBjb250cm9sIGlzIHZpc2libGUgb3Igbm90XHJcbiAgICogQHBhcmFtIGNvbnRyb2xJZCBJZCBvZiBjb250cm9sXHJcbiAgICogQHBhcmFtIHJvd0lkIElkIG9mIHJvdywgaWYgYXBwbGljYWJsZVxyXG4gICAqIEByZXR1cm5zIElzIHRoZSBjb250cm9sIHZpc2libGUgb3IgaGlkZGVuXHJcbiAgICovXHJcbiAgLy8gbWdHZXRWaXNpYmxlXHJcbiAgZ2V0VmlzaWJsZShjb250cm9sSWQ6IHN0cmluZywgcm93SWQ/OiBzdHJpbmcpIDogc3RyaW5nIHtcclxuICAgIGxldCB2aXM6IEJvb2xlYW4gPSB0aGlzLmdldFByb3BlcnR5KGNvbnRyb2xJZCwgSHRtbFByb3BlcnRpZXMuVmlzaWJsZSwgcm93SWQpO1xyXG4gICAgcmV0dXJuIHZpcyA/ICd2aXNpYmxlJyA6ICdoaWRkZW4nO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyBvYmplY3QgcmVwcmVzZW50aW5nIG51bWVyaWMgcGljdHVyZVxyXG4gICAqIEBwYXJhbSBwaWN0dXJlIHN0cmluZyB3aGljaCBpcyBkZWZpbmVkIGluIG1hZ2ljXHJcbiAgICogQHJldHVybnMgb2JqZWN0IHJlcHJlc2VudGluZyBudW1lcmljIHBpY3R1cmVcclxuICAgKi9cclxuICAvLyBtZ0dldE51bWVyaWNQaWN0dXJlXHJcbiAgZ2V0TnVtZXJpY1BpY3R1cmUocGljdHVyZTogc3RyaW5nKSA6IGFueSB7XHJcbiAgIGlmIChpc051bGxPclVuZGVmaW5lZChwaWN0dXJlKSlcclxuICAgICAgcmV0dXJuIG51bGw7XHJcblxyXG4gICBsZXQgcGljOiBQSUMgPSBuZXcgUElDKHBpY3R1cmUsIFN0b3JhZ2VBdHRyaWJ1dGUuTlVNRVJJQywgMCk7XHJcblxyXG4gICB2YXIgb2JqID0ge307XHJcblxyXG4gICBvYmpbJ3ByZWZpeCddID0gXCJcIlxyXG4gICBpZiAocGljLmdldFBvc1ByZWZfKCkubGVuZ3RoID4gMCAmJiBwaWMuZ2V0TmVnUHJlZl8oKS5sZW5ndGggPiAwKSB7XHJcbiAgICAgbGV0IHByZWYgPSAnLScrcGljLmdldFBvc1ByZWZfKCk7XHJcbiAgICAgaWYgKHByZWYgPT0gcGljLmdldE5lZ1ByZWZfKCkpXHJcbiAgICAgIG9ialsncHJlZml4J10gPSBwaWMuZ2V0UG9zUHJlZl8oKTtcclxuICAgfVxyXG4gICBpZihwaWMuZ2V0UG9zU3VmZl8oKS5sZW5ndGggPiAwKVxyXG4gICAgIG9ialsnc3VmZml4J10gPSBwaWMuZ2V0UG9zU3VmZl8oKTtcclxuICAgZWxzZVxyXG4gICAgIG9ialsnc3VmZml4J10gPSBcIlwiO1xyXG5cclxuICAgaWYocGljLmlzTmVnYXRpdmUoKSlcclxuICAgICBvYmpbJ2FsbG93TmVnYXRpdmUnXSA9IHRydWU7XHJcbiAgIGVsc2VcclxuICAgICBvYmpbJ2FsbG93TmVnYXRpdmUnXSA9IGZhbHNlO1xyXG4gICBpZihwaWMuZ2V0RGVjKCk+PSAwKVxyXG4gICAgICBvYmpbJ3ByZWNpc2lvbiddID0gcGljLmdldERlYygpO1xyXG5cclxuICAgaWYocGljLmlzTGVmdCgpKVxyXG4gICAgICBvYmpbJ2FsaWduJ109XCJsZWZ0XCI7XHJcblxyXG4gICBvYmpbJ2RlY2ltYWwnXSA9IEd1aUVudmlyb25tZW50LkVudmlyb25tZW50LkdldERlY2ltYWwoKTtcclxuICAgaWYocGljLndpdGhDb21hKCkpXHJcbiAgICAgIG9ialsndGhvdXNhbmRzJ109R3VpRW52aXJvbm1lbnQuRW52aXJvbm1lbnQuR2V0VGhvdXNhbmRzKCk7XHJcbiAgIGVsc2VcclxuICAgICBvYmpbJ3Rob3VzYW5kcyddPVwiXCI7XHJcblxyXG4gICAgaWYocGljLmdldFdob2xlcygpKVxyXG4gICAgICBvYmpbJ3dob2xlcyddPXBpYy5nZXRXaG9sZXMoKTtcclxuXHJcbiAgICByZXR1cm4gICBvYmo7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHdoZXRoZXIgYSBjb250cm9sIHNob3VsZCBoYXZlIHRoZSBcInJlcXVpcmVkXCIgYXR0cmlidXRlIHNldCBvbiBpdFxyXG4gICAqIEBwYXJhbSBjb250cm9sSWQgSWQgb2YgY29udHJvbFxyXG4gICAqIEBwYXJhbSByb3dJZCBJZCBvZiByb3csIGlmIGFwcGxpY2FibGVcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIC8vIG1nR2V0TXVzdElucHV0XHJcbiAgZ2V0TXVzdElucHV0KGNvbnRyb2xJZDogc3RyaW5nLCByb3dJZD86IHN0cmluZykgOiBzdHJpbmcge1xyXG4gICAgbGV0IHZpczogQm9vbGVhbiA9IHRoaXMuZ2V0UHJvcGVydHkoY29udHJvbElkLCBIdG1sUHJvcGVydGllcy5NdXN0SW5wdXQsIHJvd0lkKTtcclxuICAgIHJldHVybiB2aXMgPyAndHJ1ZScgOiAnZmFsc2UnO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB3aGV0aGVyIGEgY29udHJvbCBpcyBkaXNhYmxlZFxyXG4gICAqIEBwYXJhbSBjb250cm9sSWQgSWQgb2YgY29udHJvbFxyXG4gICAqIEBwYXJhbSByb3dJZCBJZCBvZiByb3csIGlmIGFwcGxpY2FibGVcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIC8vIG1nSXNEaXNhYmxlZFxyXG4gIGlzRGlzYWJsZWQoY29udHJvbElkOiBzdHJpbmcsIHJvd0lkPzogc3RyaW5nKTogYW55e1xyXG4gICAgbGV0IHJlc3VsdCA9IHRoaXMuZ2V0UHJvcGVydHkoY29udHJvbElkLCBIdG1sUHJvcGVydGllcy5FbmFibGVkLCByb3dJZCk7XHJcbiAgICByZXR1cm4gcmVzdWx0ID09PSB0cnVlID8gbnVsbCA6IHRydWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgLy8gZ2V0UHJvcGVydHkgKG5vdCBjaGFuZ2VkKVxyXG4gIGdldFByb3BlcnR5KGNvbnRyb2xJZDogc3RyaW5nLCBwcm9wOiBIdG1sUHJvcGVydGllcywgcm93SWQ/OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLnRhc2suZ2V0UHJvcGVydHkoY29udHJvbElkLCBwcm9wLCByb3dJZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSB0aXRsZSAodG9vbHRpcCkgdGV4dCBvZiB0aGUgY29udHJvbFxyXG4gICAqIEBwYXJhbSBjb250cm9sSWQgSWQgb2YgY29udHJvbFxyXG4gICAqIEBwYXJhbSByb3dJZCBJZCBvZiByb3csIGlmIGFwcGxpY2FibGVcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIC8vIG1nR2V0VGl0bGVcclxuICBnZXRUaXRsZShjb250cm9sSWQ6IHN0cmluZywgcm93SWQ/OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMudGFzay5nZXRQcm9wZXJ0eShjb250cm9sSWQsIEh0bWxQcm9wZXJ0aWVzLlRvb2x0aXAsIHJvd0lkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIHRpdGxlICh0b29sdGlwKSB0ZXh0IG9mIHRoZSBjb250cm9sXHJcbiAgICogQHBhcmFtIGNvbnRyb2xJZCBJZCBvZiBjb250cm9sXHJcbiAgICogQHBhcmFtIHJvd0lkIElkIG9mIHJvdywgaWYgYXBwbGljYWJsZVxyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgLy8gbWdHZXRUaXRsZSBmb3Igem9vbSBidXR0b25cclxuICBnZXRab29tQnV0dG9uVGl0bGUoY29udHJvbElkOiBzdHJpbmcsIHJvd0lkPzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnRhc2suZ2V0UHJvcGVydHkoY29udHJvbElkLCBIdG1sUHJvcGVydGllcy5ab29tQnV0dG9uVG9vbHRpcCwgcm93SWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgc2VsZWN0aW9uIGNvbnRyb2wncyBzZWxlY3RlZCB2YWx1ZVxyXG4gICAqIEBwYXJhbSBjb250cm9sSWQgSWQgb2YgY29udHJvbFxyXG4gICAqIEBwYXJhbSByb3dJZCBJZCBvZiByb3csIGlmIGFwcGxpY2FibGVcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIC8vIGdldFNlbGVjdGVkVmFsdWVcclxuICBnZXRTZWxlY3RlZFZhbHVlKGNvbnRyb2xJZDogc3RyaW5nLCByb3dJZD86IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy50YXNrLmdldFByb3BlcnR5KGNvbnRyb2xJZCwgSHRtbFByb3BlcnRpZXMuU2VsZWN0ZWRWYWx1ZSwgcm93SWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgcGxhY2UtaG9sZGVyIHRleHQgb2YgdGhlIGNvbnRyb2xcclxuICAgKiBAcGFyYW0gY29udHJvbElkIElkIG9mIGNvbnRyb2xcclxuICAgKiBAcGFyYW0gcm93SWQgSWQgb2Ygcm93LCBpZiBhcHBsaWNhYmxlXHJcbiAgICogQHJldHVybnNcclxuICAgKi9cclxuICAvLyBtZ0dldFBsYWNlaG9sZGVyXHJcbiAgZ2V0UGxhY2Vob2xkZXIoY29udHJvbElkOiBzdHJpbmcsIHJvd0lkPzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnRhc2suZ2V0UHJvcGVydHkoY29udHJvbElkLCBIdG1sUHJvcGVydGllcy5QbGFjZUhvbGRlciwgcm93SWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyBhIHR5cGUgZm9yIGlucHV0IGNvbnRyb2xzIC0gc2hvdWxkIHRoZSBjb250cm9sIGJlIGEgc2ltcGxlIHRleHQgb3IgYSBwYXNzd29yZCBjb250cm9sXHJcbiAgICogQHBhcmFtIGNvbnRyb2xJZCBJZCBvZiBjb250cm9sXHJcbiAgICogQHBhcmFtIHJvd0lkIElkIG9mIHJvdywgaWYgYXBwbGljYWJsZVxyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgLy8gbWdHZXRUeXBlXHJcbiAgZ2V0VHlwZShjb250cm9sSWQ6IHN0cmluZywgcm93SWQ/OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgbGV0IHJlc3VsdCA9IHRoaXMudGFzay5nZXRQcm9wZXJ0eShjb250cm9sSWQsIEh0bWxQcm9wZXJ0aWVzLlBhc3N3b3JkLCByb3dJZCk7XHJcbiAgICByZXR1cm4gcmVzdWx0ID8gXCJwYXNzd29yZFwiIDogXCJ0ZXh0XCJcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIHRhYi1pbmRleCBvZiB0aGUgY29udHJvbFxyXG4gICAqIEBwYXJhbSBjb250cm9sSWQgSWQgb2YgY29udHJvbFxyXG4gICAqIEBwYXJhbSByb3dJZCBJZCBvZiByb3csIGlmIGFwcGxpY2FibGVcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIC8vIG1nR2V0VGFiSW5kZXhcclxuICBnZXRUYWJJbmRleChjb250cm9sSWQ6IHN0cmluZywgcm93SWQ/OiBzdHJpbmcpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMudGFzay5nZXRQcm9wZXJ0eShjb250cm9sSWQsIEh0bWxQcm9wZXJ0aWVzLlRhYkluZGV4LCByb3dJZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgY29udHJvbFxyXG4gICAqIEBwYXJhbSBjb250cm9sSWQgSWQgb2YgY29udHJvbFxyXG4gICAqIEBwYXJhbSByb3dJZCBJZCBvZiByb3csIGlmIGFwcGxpY2FibGVcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIC8vLyBtZ0dldFZhbHVlIC0tPlxyXG4gIGdldFZhbHVlKGNvbnRyb2xJZDogc3RyaW5nLCByb3dJZD86IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBsZXQgdmFsID0gdGhpcy50YXNrLmdldFZhbHVlKGNvbnRyb2xJZCwgcm93SWQpO1xyXG4gICAgcmV0dXJuIHZhbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIGZvcm1hdHRlZCB2YWx1ZSBvZiB0aGUgY29udHJvbFxyXG4gICAqIEBwYXJhbSBjb250cm9sSWQgSWQgb2YgY29udHJvbFxyXG4gICAqIEBwYXJhbSByb3dJZCBJZCBvZiByb3csIGlmIGFwcGxpY2FibGVcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIC8vLyBtZ0dldFZhbHVlIC0tPlxyXG4gIGdldEZvcm1hdHRlZFZhbHVlKGNvbnRyb2xJZDogc3RyaW5nLCByb3dJZD86IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBsZXQgdmFsID0gdGhpcy50YXNrLmdldFZhbHVlKGNvbnRyb2xJZCwgcm93SWQpO1xyXG4gICAgdmFsID0gdGhpcy50YXNrLmdldEZvcm1hdHRlZFZhbHVlKGNvbnRyb2xJZCwgdmFsKTtcclxuICAgIHJldHVybiB2YWw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBQaWN0dXJlIG9mIHRoZSBjb250cm9sXHJcbiAgICogQHBhcmFtIGNvbnRyb2xJZCBJZCBvZiBjb250cm9sXHJcbiAgICogQHBhcmFtIHJvd0lkIElkIG9mIHJvdywgaWYgYXBwbGljYWJsZVxyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgLy8vIGdldFBpY3R1cmUgLS0+XHJcbiAgZ2V0UGljdHVyZShjb250cm9sSWQ6IHN0cmluZywgcm93SWQ/OiBzdHJpbmcpOiBzdHJpbmcge1xyXG5cclxuICAgIGlmIChpc051bGxPclVuZGVmaW5lZChjb250cm9sSWQpKVxyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIGxldCBwaWM6IFBJQyA9IHRoaXMudGFzay5HZXRDb250cm9sUGljdHVyZU1hc2soY29udHJvbElkKTtcclxuICAgIHJldHVybiAgKHBpYyAhPSBudWxsKSA/IHBpYy5nZXRGb3JtYXQoKS50b1N0cmluZygpIDogbnVsbDtcclxuXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBjdXN0b20gKHVzZXIpIHByb3BlcnRpZXMgb2YgdGhlIGNvbnRyb2xcclxuICAgKiBAcGFyYW0gY29udHJvbElkIElkIG9mIGNvbnRyb2xcclxuICAgKiBAcGFyYW0gcHJvcGVydHlOYW1lIE5hbWUgb2YgcmVxdWVzdGVkIHByb3BlcnR5XHJcbiAgICogQHBhcmFtIHJvd0lkIElkIG9mIHJvdywgaWYgYXBwbGljYWJsZVxyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgLy8gbWdHZXRDdXN0b21Qcm9wZXJ0eVxyXG4gIGdldEN1c3RvbVByb3BlcnR5KGNvbnRyb2xJZDogc3RyaW5nLCBwcm9wZXJ0eU5hbWVPclJvd0lEPzogc3RyaW5nLCByb3dJZD86IHN0cmluZykgOiBhbnlcclxuICB7XHJcbiAgICBpZihjb250cm9sSWQuaW5kZXhPZignficpPT0gLTEpXHJcbiAgICByZXR1cm4gdGhpcy5nZXRDdXN0b21Qcm9wZXJ0eV8xKGNvbnRyb2xJZCwgcHJvcGVydHlOYW1lT3JSb3dJRCwgcm93SWQpO1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIGxldCAgY2lkOiBzdHJpbmcgPSBjb250cm9sSWQuc3BsaXQoJ34nKVswXTtcclxuICAgICAgbGV0ICBwcm9wTmFtZTogc3RyaW5nID0gY29udHJvbElkLnNwbGl0KCd+JylbMV07XHJcblxyXG4gICAgICByZXR1cm4gdGhpcy5nZXRDdXN0b21Qcm9wZXJ0eV8xKGNpZCwgcHJvcE5hbWUsIHByb3BlcnR5TmFtZU9yUm93SUQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0Q3VzdG9tUHJvcGVydHlfMShjb250cm9sSWQ6IHN0cmluZywgcHJvcGVydHlOYW1lOiBzdHJpbmcsIHJvd0lkPzogc3RyaW5nKVxyXG4gIHtcclxuICAgIGxldCB1c2VyUHJvcGVydGllcztcclxuICAgIGlmIChpc051bGxPclVuZGVmaW5lZChyb3dJZCkpXHJcbiAgICAgIHJvd0lkID0gJzAnO1xyXG4gICAgbGV0IHJlYyA9IHRoaXMudGFzay5SZWNvcmRzLmxpc3Rbcm93SWRdO1xyXG4gICAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKHJlYykpXHJcbiAgICAgIGRlYnVnZ2VyO1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIGNvbnN0IGNvbnRyb2xNZXRhZGF0YSA9IHJlYy5nZXRDb250cm9sTWV0YWRhdGEoY29udHJvbElkKTtcclxuXHJcbiAgICAgIGlmIChjb250cm9sTWV0YWRhdGEudXNlclByb3BlcnRpZXMuaGFzKHByb3BlcnR5TmFtZSkpIHtcclxuICAgICAgICB1c2VyUHJvcGVydGllcyA9IGNvbnRyb2xNZXRhZGF0YS51c2VyUHJvcGVydGllcy5nZXQocHJvcGVydHlOYW1lKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHVzZXJQcm9wZXJ0aWVzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgdmFsdWVzIG9mIHRoZSBpdGVtcyBvZiBhIHNlbGVjdGlvbiBjb250cm9sXHJcbiAgICogQHBhcmFtIGlkIElkIG9mIGNvbnRyb2xcclxuICAgKiBAcGFyYW0gcm93SWQgSWQgb2Ygcm93LCBpZiBhcHBsaWNhYmxlXHJcbiAgICogQHJldHVybnNcclxuICAgKi9cclxuICAvLyBtZ0dldEl0ZW1MaXN0VmFsdWVzXHJcbiAgZ2V0SXRlbUxpc3RWYWx1ZXMoaWQ6IHN0cmluZywgcm93SWQ/OiBzdHJpbmcpIDogQXJyYXk8e2luZGV4OiBudW1iZXIsIGRpc3BsYXlWYWx1ZTogc3RyaW5nfT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHkoaWQsIEh0bWxQcm9wZXJ0aWVzLkl0ZW1zTGlzdCwgcm93SWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgZmlsdGVyZWQgaXRlbXMgbGlzdCBiYXNlZCBvbiB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgY29udHJvbFxyXG4gICAqIEBwYXJhbSBjb250cm9sSWQgSWQgb2YgY29udHJvbFxyXG4gICAqIEBwYXJhbSByb3dJZCBJZCBvZiByb3csIGlmIGFwcGxpY2FibGVcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIGdldEZpbHRlcmVkTGlzdChjb250cm9sSWQ6IHN0cmluZywgcm93SWQ/OiBzdHJpbmcpOiBBcnJheTx7aW5kZXg6IG51bWJlciwgZGlzcGxheVZhbHVlOiBzdHJpbmd9PiB7XHJcbiAgICBpZiAoaXNOdWxsT3JVbmRlZmluZWQocm93SWQpKVxyXG4gICAgICByb3dJZCA9ICcwJztcclxuXHJcbiAgICBsZXQgaXRlbXMgPSB0aGlzLmdldEl0ZW1MaXN0VmFsdWVzKGNvbnRyb2xJZCwgcm93SWQpO1xyXG4gICAgbGV0IHZhbHVlOiBzdHJpbmcgPSB0aGlzLnRhc2suZ2V0Rm9ybUNvbnRyb2wocm93SWQsIGNvbnRyb2xJZCkudmFsdWU7XHJcbiAgICBpZiAodmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IFwiXCIgJiYgaXRlbXMgaW5zdGFuY2VvZiBBcnJheSkge1xyXG4gICAgICB2YWx1ZSA9IHZhbHVlLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIHJldHVybiBpdGVtcy5maWx0ZXIob3B0aW9uID0+IG9wdGlvbi5kaXNwbGF5VmFsdWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh2YWx1ZSkpO1xyXG4gICAgfVxyXG4gICAgZWxzZVxyXG4gICAgICByZXR1cm4gaXRlbXM7XHJcbiAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAqIEdldHMgdGhlIGRpc3BsYXkgdmFsdWUgb2YgdGhlIGl0ZW0gZnJvbSBpdGVtcyBvZiBhIHNlbGVjdGlvbiBjb250cm9sXHJcbiAgICogQHBhcmFtIGlkIElkIG9mIGNvbnRyb2xcclxuICAgKiBAcGFyYW0gcm93SWQgSWQgb2Ygcm93LCBpZiBhcHBsaWNhYmxlXHJcbiAgICogQHJldHVybnNcclxuICAgKi9cclxuICBnZXREaXNwbGF5VmFsdWUoaWQsIHJvd0lkPykge1xyXG4gICAgbGV0IGRpc3BsYXlWYWx1ZTpzdHJpbmcgPVwiXCJcclxuXHJcbiAgICBsZXQgbyA9ICB0aGlzLmdldFByb3BlcnR5KGlkLCBIdG1sUHJvcGVydGllcy5JdGVtc0xpc3QsIHJvd0lkKTtcclxuICAgIGxldCB2YWx1ZSA9IHRoaXMudGFzay5nZXRWYWx1ZShpZCwgcm93SWQpXHJcbiAgICBpZiAodmFsdWUgPj0wICYmIHZhbHVlIDxvLmxlbmd0aCAgJiYgIWlzTnVsbE9yVW5kZWZpbmVkKG9bdmFsdWVdKSlcclxuICAgICAgZGlzcGxheVZhbHVlID0gb1t2YWx1ZV0uZGlzcGxheVZhbHVlO1xyXG4gICAgcmV0dXJuIGRpc3BsYXlWYWx1ZVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB3aGV0aGVyIGEgdGFiIHBhZ2UgaXMgc2VsZWN0ZWQgb3Igbm90XHJcbiAgICogQHBhcmFtICBpbmRleCBvZiBjdXJyZW50IG9wdGlvbiBpbiBpdGVyYXJvdHJcclxuICAgKiBAcGFyYW0gY29udHJvbCBJZCBvZiBsaXN0IGNvbnRyb2xcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqLyAvLyBpc09wdGlvblNlbGVjdGVkXHJcbiAgaXNPcHRpb25TZWxlY3RlZChpbmRleCwgY29udHJvbElkKSB7XHJcbiAgICBsZXQgdmFsID0gdGhpcy50YXNrLmdldFZhbHVlKGNvbnRyb2xJZCwgXCIwXCIpO1xyXG4gICAgICAgICBmb3IgKGxldCBpdGVtIG9mIHZhbCkge1xyXG4gICAgICAgICAgIGlmIChpdGVtID09PSBpbmRleClcclxuICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyB3aGV0aGVyIGEgdGFiIHBhZ2UgaXMgc2VsZWN0ZWQgb3Igbm90IC0gdXNlZCBmb3IgdGhlIHRhYiBidXR0b25zXHJcbiAgICAgKiBAcGFyYW0gY29udHJvbElkIElkIG9mIGNvbnRyb2xcclxuICAgICAqIEBwYXJhbSAgbGF5ZXIgSWQgb2YgdGhlIHRhYiBwYWdlXHJcbiAgICAgKiBAcmV0dXJuc1xyXG4gICAgICovIC8vIG1nSXNUYWJQYWdlU2VsZWN0ZWRcclxuICBpc1RhYlBhZ2VTZWxlY3RlZChjb250cm9sSWQ6IHN0cmluZywgbGF5ZXI6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgbGV0IHZhbCA9IHRoaXMudGFzay5nZXRQcm9wZXJ0eShjb250cm9sSWQsIEh0bWxQcm9wZXJ0aWVzLlNlbGVjdGVkVmFsdWUpO1xyXG4gICAgcmV0dXJuIHZhbCA9PSAobGF5ZXIgLSAxKTsgLy8gY29tcGFyaW5nIHN0cmluZyB0byBudW1iZXIhXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHdoZXRoZXIgYSB0YWIgcGFnZSBsYXllciBpcyBzZWxlY3RlZCBvciBub3QgLSB1c2VkIGZvciB0aGUgZGl2IHdoaWNoIHJlcHJlc2VudHMgdGhlIHRhYiBwYWdlXHJcbiAgICogQHBhcmFtIGNvbnRyb2xJZCBJZCBvZiBjb250cm9sXHJcbiAgICogQHBhcmFtICBsYXllciBJZCBvZiB0aGUgdGFiIHBhZ2VcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqLyAvLyBtZ0lzVGFiTGF5ZXJTZWxlY3RlZFxyXG4gIGlzVGFiUGFnZUxheWVyU2VsZWN0ZWQoY29udHJvbElkOiBzdHJpbmcsIGxheWVyOiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgIGxldCB2YWwgPSB0aGlzLnRhc2suZ2V0UHJvcGVydHkoY29udHJvbElkLCBIdG1sUHJvcGVydGllcy5TZWxlY3RlZExheWVyKTtcclxuICAgIHJldHVybiB2YWwgPT0gKGxheWVyIC0gMSk7IC8vIGNvbXBhcmluZyBzdHJpbmcgdG8gbnVtYmVyIVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIHNlbGVjdGVkIHRhYiBwYWdlXHJcbiAgICogQHBhcmFtIGNvbnRyb2xJZCBJZCBvZiBjb250cm9sXHJcbiAgICogQHJldHVybnNcclxuICAgKi9cclxuICBnZXRUYWJTZWxlY3RlZEluZGV4KGNvbnRyb2xJZDogc3RyaW5nKSB7XHJcbiAgICBsZXQgdmFsID0gdGhpcy50YXNrLmdldFByb3BlcnR5KGNvbnRyb2xJZCwgSHRtbFByb3BlcnRpZXMuU2VsZWN0ZWRWYWx1ZSk7XHJcbiAgICByZXR1cm4gdmFsOyAvLyBjb21wYXJpbmcgc3RyaW5nIHRvIG51bWJlciFcclxuICB9XHJcblxyXG5cclxuICAvLyBwcml2YXRlIG1ldGhvZGVzXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIC8vIG1nSWZSb3dDcmVhdGVkXHJcbiAgaWZSb3dDcmVhdGVkKHJvdyk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHJvdyA9PSBudWxsKVxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICBsZXQgcm93SWQgPSB0eXBlb2Ygcm93ID09IFwibnVtYmVyXCIgPyByb3cudG9TdHJpbmcoKSA6IHJvdy5yb3dJZDtcclxuICAgIGxldCByZXN1bHQgPSB0aGlzLmdldEZvcm1Hcm91cEJ5Um93KHJvd0lkKTtcclxuICAgIHJldHVybiAhaXNOdWxsT3JVbmRlZmluZWQocmVzdWx0KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICAvLyBtZ0dldEZvcm1Hcm91cEJ5Um93XHJcbiAgZ2V0Rm9ybUdyb3VwQnlSb3coaWQ6IHN0cmluZyk6IEZvcm1Hcm91cCB7XHJcbiAgICByZXR1cm4gdGhpcy50YXNrLmZvcm1Hcm91cHNbaWRdO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIC8vIGlzUm93U2VsZWN0ZWQgKG5vdCBjaGFuZ2VkKVxyXG4gIGlzUm93U2VsZWN0ZWQoY29udHJvbElkLCByb3dJZD8pIHtcclxuICAgIGNvbnN0IHNlbGVjdGVkUm93ID0gdGhpcy50YXNrLmdldFByb3BlcnR5KGNvbnRyb2xJZCwgSHRtbFByb3BlcnRpZXMuU2VsZWN0ZWRSb3csIFwiMFwiKTtcclxuICAgIHJldHVybiBzZWxlY3RlZFJvdyA9PSByb3dJZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgd2hldGhlciBhIHJvdyBpcyBpbiBlZGl0IHN0YXRlXHJcbiAgICogQHBhcmFtIHJvd1xyXG4gICAqL1xyXG4gIGlzUm93SW5Sb3dFZGl0aW5nKHJvdz86IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IGd1aVJvd0lkIDogc3RyaW5nID0gJzAnO1xyXG4gICAgZ3VpUm93SWQ9IHR5cGVvZiByb3cgPT0gXCJudW1iZXJcIiA/IHJvdy50b1N0cmluZygpIDogcm93LnJvd0lkO1xyXG4gICAgcmV0dXJuIHRoaXMudGFzay5pc1Jvd0luUm93RWRpdGluZyhndWlSb3dJZClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgd2hldGhlciBhIHJvdyBpcyBpbiBlZGl0IHN0YXRlLCB1c2UgdGhpcyBtZXRob2Qgd2hpbGUgY29udHJvbCBvdXRzaWRlIHRhYmxlIGNvbnRyb2xcclxuICAgKiBAcGFyYW0gcm93XHJcbiAgICovXHJcbiAgaXNDdXJyZW50SW5Sb3dFZGl0aW5nKCk6IGJvb2xlYW4ge1xyXG5cclxuICAgIGxldCByb3cgID0gdGhpcy50YXNrLnRhYmxlU2VydmljZS5nZXRTZWxlY3RlZFJvdygpO1xyXG5cclxuICAgIHJldHVybiB0aGlzLnRhc2suaXNSb3dJblJvd0VkaXRpbmcocm93KVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIC8vIEdldEd1aVRvcEluZGV4XHJcbiAgZ3VpVG9wSW5kZXgoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLnRhc2sudGFibGVTZXJ2aWNlLmdldFRhYmxlVG9wSW5kZXgoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBnZXRFcnJNc2coaWQ6IHN0cmluZyxyb3dJZDogc3RyaW5nKTogc3RyaW5nXHJcbiAge1xyXG4gICAgbGV0IGMgPSB0aGlzLnRhc2suZ2V0Rm9ybUNvbnRyb2wocm93SWQsIGlkKTtcclxuICAgIGlmIChjLmhhc0Vycm9yKCdyZXF1aXJlZCcpKVxyXG4gICAgICByZXR1cm4gJ0NvbnRyb2wgbXVzdCBiZSB1cGRhdGVkLic7XHJcbiAgICBpZiAoYy5oYXNFcnJvcigncGF0dGVybicpKVxyXG4gICAgICByZXR1cm4gJ1JlcXVpcmVkIHBhdHRlcm4gaXMgOiAnICsgYy5lcnJvcnMucGF0dGVybi5yZXF1aXJlZFBhdHRlcm47XHJcbiAgICBpZiAoYy5oYXNFcnJvcigncmFuZ2V2YWxpZGF0b3InKSlcclxuICAgICAgcmV0dXJuIGMuZXJyb3JzLnJhbmdldmFsaWRhdG9yLmVycm9yTXNnO1xyXG4gICAgaWYgKGMuaGFzRXJyb3IoJ21heGxlbmd0aCcpKVxyXG4gICAgICByZXR1cm4gJ01heCBsZW5ndGggYWxsb3dlZCBpcyA6ICcgKyBjLmVycm9ycy5tYXhsZW5ndGgucmVxdWlyZWRMZW5ndGg7XHJcbiAgICBpZiAoYy5oYXNFcnJvcignbWF4JykpXHJcbiAgICAgIHJldHVybiAnTWF4IHZhbHVlIGFsbGxvd2VkIGlzIDogJyArIGMuZXJyb3JzLm1heC5tYXg7XHJcblxyXG4gICAgbGV0IGNvbnRyb2xNZXRhZGF0YSA9IHRoaXMudGFzay5SZWNvcmRzLmxpc3Rbcm93SWRdLmdldENvbnRyb2xNZXRhZGF0YShpZCk7XHJcbiAgICBmb3IgKGxldCBrZXkgb2YgY29udHJvbE1ldGFkYXRhLmN1c3RvbVZhbGlkYXRvcnMua2V5cygpKVxyXG4gICAge1xyXG4gICAgICBpZiAoYy5oYXNFcnJvcihrZXkpKSB7XHJcbiAgICAgICAgbGV0IGN1c3RvbVZhbGlkYXRvcjogQ3VzdG9tVmFsaWRhdG9yICA9IGNvbnRyb2xNZXRhZGF0YS5jdXN0b21WYWxpZGF0b3JzLmdldChrZXkpO1xyXG4gICAgICAgIHJldHVybiBjdXN0b21WYWxpZGF0b3IuZ2V0RXJyTWVzc2FnZSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuICd1bmtub3duIGVycm9yJztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgYSB1c2VyLXN1cHBsaWVkIHZhbHVlIHRvIHRoZSBzcGVjaWZpZWQgY29udHJvbFxyXG4gICAqIEBwYXJhbSBjb250cm9sTmFtZVxyXG4gICAqIEBwYXJhbSB2YWx1ZVxyXG4gICAqIEBwYXJhbSByZWZyZXNoRGlzcGxheVxyXG4gICAqL1xyXG4gIHNldFZhbHVlVG9Db250cm9sKGNvbnRyb2xOYW1lOiBzdHJpbmcsIHZhbHVlOiBhbnksIHJlZnJlc2hEaXNwbGF5PzogYm9vbGVhbil7XHJcbiAgICBpZih0eXBlb2YgcmVmcmVzaERpc3BsYXkgPT09IFwidW5kZWZpbmVkXCIpXHJcbiAgICAgIHJlZnJlc2hEaXNwbGF5ID0gdHJ1ZTtcclxuICAgIGxldCBndWlFdmVudDogSUd1aUV2ZW50ID0gZ2V0R3VpRXZlbnRPYmooXCJzZXRleHRlcm5hbHZhbHVlXCIsIGNvbnRyb2xOYW1lLCAwKTtcclxuICAgIGd1aUV2ZW50LmV4dGVybmFsVmFsdWUgPSB2YWx1ZTtcclxuICAgIGd1aUV2ZW50LnBhcmFtID0gcmVmcmVzaERpc3BsYXk7XHJcbiAgICB0aGlzLnRhc2suaW5zZXJ0RXZlbnQoZ3VpRXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAqIEBpZ25vcmVcclxuICovXHJcbiAgaXNEYXRhdmlld0VtcHR5KCkgOiBib29sZWFuIHtcclxuICAgICByZXR1cm4gdGhpcy50YXNrLlJlY29yZHMuaXNFbXB0eURhdGFWaWV3O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogc2ltdWxhdGVzIGEgY2xpY2sgZXZlbnQgb24gdGhlIHNwZWNpZmllZCBjb250cm9sLCBmb3IgdGhlIE1hZ2ljIGVuZ2luZVxyXG4gICAqIEBwYXJhbSBjb250cm9sTmFtZVxyXG4gICAqIEBwYXJhbSByb3dJZFxyXG4gICAqL1xyXG4gIHNpbXVsYXRlQ2xpY2soY29udHJvbE5hbWU6IHN0cmluZywgcm93SWQ/OiBudW1iZXIpe1xyXG4gICAgaWYgKHR5cGVvZiByb3dJZCA9PT0gXCJ1bmRlZmluZWRcIilcclxuICAgICAgcm93SWQgPSAwO1xyXG4gICAgdGhpcy50YXNrLmluc2VydEV2ZW50KGdldEd1aUV2ZW50T2JqKCdjbGljaycsIGNvbnRyb2xOYW1lLCByb3dJZCkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJuIEJvb2xlYW4gVFJVRSBpZiB1c2VyIGxvZ2dlZCBpbiBFbHNlIGl0IHdpbGwgcmV0dXJuIEZBTFNFXHJcbiAgICovXHJcbiAgaXNMb2dnZWRJbigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnRhc2suZ2V0SXNMb2dnZW5JbigpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyBKUyBvYmplY3QgY29udGFpbmluZyB0aGUgcmVjb3JkcyB3aXRoIGFsbCB0YWJsZSBmaWVsZHMuXHJcbiAgICovXHJcbiAgR2V0Rm9ybVJlY29yZHMoKTogYW55IHtcclxuICAgIGxldCByb3dJZDogbnVtYmVyID0gMDtcclxuICAgIGxldCByZWNBcnJheTogYW55O1xyXG5cclxuICAgIGlmICghaXNOdWxsT3JVbmRlZmluZWQodGhpcy50YXNrLlJlY29yZHMpICYmIHRoaXMudGFzay5SZWNvcmRzLmxpc3QubGVuZ3RoID4gMCApIHtcclxuICAgICAgbGV0IHJlY0xpc3Q6IENvbnRyb2xzTWV0YWRhdGFbXSA9IHRoaXMudGFzay5SZWNvcmRzLmxpc3Q7XHJcbiAgICAgIGxldCB0YWJsZUNvbnRyb2xzOiBzdHJpbmdbXSA9IG5ldyBBcnJheSgpO1xyXG5cclxuICAgICAgLy9HZW5lcmF0ZSBsaXN0IG9mIHRhYmxlIGZpZWxkcyBuYW1lc1xyXG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLnRhc2sudGVtcGxhdGUpIHtcclxuICAgICAgICBpZiAodGhpcy50YXNrLnRlbXBsYXRlW2tleV0gPT0gJzEnKVxyXG4gICAgICAgICAgdGFibGVDb250cm9scy5wdXNoKGtleSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJlY0FycmF5ID0gbmV3IEFycmF5KCk7XHJcblxyXG4gICAgICAvL1VwZGF0ZSB0aGUgcmVjb3JkcyBhcyBsaXN0IG9mIG9iamVjdHMgd2l0aCB2YWx1ZXMgZm9yIHRhYmxlIGZpZWxkcy5cclxuICAgICAgaWYgKHRhYmxlQ29udHJvbHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHJlY0xpc3QuZm9yRWFjaCgoY3RybE1ldGFEYXRhOiBDb250cm9sc01ldGFkYXRhKSA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy50YXNrLlJlY29yZHMuaXNSb3dDcmVhdGVkKHJvd0lkKSkge1xyXG4gICAgICAgICAgICB2YXIgZm9ybVJlY29yZCA9IHt9O1xyXG4gICAgICAgICAgICBmb3JtUmVjb3JkWydyb3dJZCddID0gcm93SWQ7XHJcbiAgICAgICAgICAgIHRhYmxlQ29udHJvbHMuZm9yRWFjaCgoY3RybElkOiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgICAgICBmb3JtUmVjb3JkW2N0cmxJZF0gPSBjdHJsTWV0YURhdGEudmFsdWVzW2N0cmxJZF07XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgcmVjQXJyYXkucHVzaChmb3JtUmVjb3JkKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHJlY0FycmF5O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0Q29va2llIDogc2V0IHRoZSBjb29raWUgd2l0aCBzcGVjaWZpZWQgbmFtZSBhbmQgdmFsdWUgIGluIGJyb3dzZXJcclxuICAgKiBleHBpcmVzIC0gZXhwaXJhdGlvbiB0aW1lXHJcbiAgICogcGF0aCAtIHBhdGggd2hpY2ggbXVjaCBleGlzdHMgaW4gb3JkZXIgc28gdGhhdCBjb29raWUgaXMgc2VudCBhcyBoZWFkZXJcclxuICAgKiBkb21haW4gLSBzcGVjaWZpZXMgd2hpY2ggaG9zdHMgYXJlIGFsbG93ZWQgdG8gcmVjZWl2ZSB0aGUgY29va2llXHJcbiAgICogc2VjdXJlIC0gc3BlY2lmaWVzIGlmIGNvb2tpZSBpcyBzZWN1cmUgKCB3b3JrcyBvbmx5IHdpdGggSFRUUFMpXHJcbiAgICogc2FtZVNpdGUgLSBsZXRzIHNlcnZlcnMgc3BlY2lmeSB3aGV0aGVyL3doZW4gY29va2llcyBhcmUgc2VudCB3aXRoIGNyb3NzLXNpdGUgcmVxdWVzdHNcclxuICAgKi9cclxuICBTZXRDb29raWUobmFtZTogc3RyaW5nLCB2YWx1ZTogYW55LCBleHBpcmVzPzogRGF0ZSwgcGF0aD8gLCBkb21haW4/ICwgc2VjdXJlPywgc2FtZVNpdGUgPykge1xyXG4gICAgQ29va2llU2VydmljZS5zZXRDb29raWUobmFtZSwgdmFsdWUsIGV4cGlyZXMsIHBhdGgsIGRvbWFpbiwgc2VjdXJlLCBzYW1lU2l0ZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXRDb29raWUgOiBnZXQgdGhlIGNvb2tpZSB3aXRoIHNwZWNpZmllZCBuYW1lIGFuZCB2YWx1ZSAgaW4gYnJvd3NlclxyXG4gICAqL1xyXG4gIEdldENvb2tpZShuYW1lOiBzdHJpbmcpOiBhbnkge1xyXG4gICAgcmV0dXJuIENvb2tpZVNlcnZpY2UuZ2V0Q29va2llKG5hbWUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVsZXRlQ29va2llIDogZGVsZXRlcyB0aGUgY29va2llXHJcbiAgICovXHJcbiAgRGVsZXRlQ29va2llKG5hbWU6IHN0cmluZyk6IGFueSB7XHJcbiAgICByZXR1cm4gQ29va2llU2VydmljZS5kZWxldGVDb29raWUobmFtZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
302
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzb3IubWFnaWMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3NlcnZpY2VzL2FjY2Vzc29yLm1hZ2ljLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV6RCxPQUFPLEVBQW1CLGNBQWMsRUFBRSxjQUFjLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFekQsT0FBTyxFQUFFLGNBQWMsRUFBYSxhQUFhLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7OztBQUs1RCxNQUFNLE9BQU8sb0JBQW9CO0lBTS9CLFlBQXNCLElBQXNCO1FBQXRCLFNBQUksR0FBSixJQUFJLENBQWtCO1FBTDVDLFdBQU0sR0FBUSxJQUFJLENBQUM7UUFNakIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO0lBQ2hDLENBQUM7SUFRRCxlQUFlLENBQUMsU0FBaUI7UUFDL0IsSUFBSSxVQUEyQixDQUFDO1FBQ2hDLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckUsSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEtBQUssSUFBSSxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsS0FB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UyxDQUFDLElBQVk7UUFDcEIsT0FBTyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFLRCxZQUFZLENBQUMsSUFBWTtRQUN2QixPQUFPLGFBQWEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUMsQ0FBQzs7d0ZBN21CVSxvQkFBb0I7NERBQXBCLG9CQUFvQixXQUFwQixvQkFBb0I7dUZBQXBCLG9CQUFvQjtjQURoQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUYXNrTWFnaWNTZXJ2aWNlIH0gZnJvbSAnLi90YXNrLm1hZ2ljcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29udHJvbE1ldGFkYXRhLCBDb250cm9sc01ldGFkYXRhIH0gZnJvbSAnLi4vY29udHJvbHMubWV0YWRhdGEubW9kZWwnO1xyXG5pbXBvcnQgeyBDdXN0b21WYWxpZGF0b3IsIEd1aUVudmlyb25tZW50LCBIdG1sUHJvcGVydGllcywgUElDIH0gZnJvbSAnQG1hZ2ljLXhwYS9ndWknO1xyXG5pbXBvcnQgeyBpc051bGxPclVuZGVmaW5lZCB9IGZyb20gJ0BtYWdpYy14cGEvbXNjb3JlbGliJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBnZXRHdWlFdmVudE9iaiwgSUd1aUV2ZW50LCBDb29raWVTZXJ2aWNlfSBmcm9tICdAbWFnaWMteHBhL2VuZ2luZSc7XHJcbmltcG9ydCB7IExvZ2dlciwgU3RvcmFnZUF0dHJpYnV0ZSB9IGZyb20gJ0BtYWdpYy14cGEvdXRpbHMnO1xyXG4vKipcclxuICogUHJvdmlkZXMgdGhlIFVJIHdpdGggdmFsdWVzIGNhbGN1bGF0ZWQgYnkgdGhlIE1hZ2ljIFdlYkNsaWVudFxyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQWNjZXNzb3JNYWdpY1NlcnZpY2Uge1xyXG4gIExvZ2dlcjogYW55ID0gbnVsbDtcclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCB0YXNrOiBUYXNrTWFnaWNTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLkxvZ2dlciA9IExvZ2dlci5JbnN0YW5jZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrcyBpZiB0aGUgY29udHJvbCBpcyByZWFkLW9ubHlcclxuICAgKiBAcGFyYW0gY29udHJvbElkIElkIG9mIGNvbnRyb2xcclxuICAgKiBAcmV0dXJucyBJcyB0aGUgY29udHJvbCBub3QgcmVhZC1vbmx5XHJcbiAgICovXHJcbiAgLy8gQ2hlY2tSZWFkT25seVxyXG4gIGNoZWNrSXNSZWFkT25seShjb250cm9sSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IHByb3BlcnRpZXM6IENvbnRyb2xNZXRhZGF0YTtcclxuICAgIHByb3BlcnRpZXMgPSB0aGlzLnRhc2suUmVjb3Jkcy5saXN0WzBdLmdldENvbnRyb2xNZXRhZGF0YShjb250cm9sSWQpO1xyXG4gICAgaWYgKHByb3BlcnRpZXMucHJvcGVydGllcy5nZXQoSHRtbFByb3BlcnRpZXMuUmVhZE9ubHkpICE9PSBudWxsICYmIHByb3BlcnRpZXMucHJvcGVydGllcy5nZXQoSHRtbFByb3BlcnRpZXMuUmVhZE9ubHkpID09PSB0cnVlKVxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICBlbHNlXHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgdGV4dCBvZiB0aGUgY29udHJvbFxyXG4gICAqIEBwYXJhbSBjb250cm9sSWQgSWQgb2YgY29udHJvbFxyXG4gICAqIEBwYXJhbSByb3dJZCBJZCBvZiByb3csIGlmIGFwcGxpY2FibGVcclxuICAgKiBAcmV0dXJucyBUaGUgdGV4dCBvZiB0aGUgY29udHJvbFxyXG4gICAqL1xyXG4gIC8vIG1nR2V0VGV4dFxyXG4gIGdldFRleHQoY29udHJvbElkOiBzdHJpbmcsIHJvd0lkPzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnRhc2suZ2V0UHJvcGVydHkoY29udHJvbElkLCBIdG1sUHJvcGVydGllcy5UZXh0LCByb3dJZCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIHRleHQgb2YgdGhlIHRhYiBwYWdlXHJcbiAgICogQHBhcmFtIGNvbnRyb2xJZCBJZCBvZiBjb250cm9sXHJcbiAgICogQHBhcmFtIGxheWVyIElkIG9mIHRhYnBhZ2VcclxuICAgKiBAcmV0dXJucyBUZXh0IG9mIHRhYnBhZ2VcclxuICAgKi9cclxuICAvLyBtZ0dldFRhYnBhZ2VUZXh0XHJcbiAgZ2V0VGFicGFnZVRleHQoY29udHJvbElkOiBzdHJpbmcsIGxheWVyOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLnRhc2suZ2V0UHJvcGVydHkoY29udHJvbElkLCBIdG1sUHJvcGVydGllcy5JdGVtc0xpc3QpO1xyXG4gICAgaWYgKHR5cGVvZiBpdGVtcyAhPT0gXCJ1bmRlZmluZWRcIilcclxuICAgICAgcmV0dXJuIGl0ZW1zW2xheWVyXS5kaXNwbGF5VmFsdWU7XHJcbiAgICByZXR1cm4gXCJcIjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIGltYWdlIGRlZmluZWQgZm9yIHRoZSBjb250cm9sXHJcbiAgICogQHBhcmFtIGNvbnRyb2xJZCBJZCBvZiBjb250cm9sXHJcbiAgICogQHBhcmFtIHJvd0lkIElkIG9mIHJvdywgaWYgYXBwbGljYWJsZVxyXG4gICAqIEByZXR1cm5zIEltYWdlIHNldCBvbiBjb250cm9sXHJcbiAgICovXHJcbiAgLy8gbWdHZXRJbWFnZVxyXG4gIGdldEltYWdlKGNvbnRyb2xJZDogc3RyaW5nLCByb3dJZD86IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBsZXQgcmVzdWx0ID0gdGhpcy50YXNrLmdldFByb3BlcnR5KGNvbnRyb2xJZCwgSHRtbFByb3BlcnRpZXMuSW1hZ2UsIHJvd0lkKTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcblxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB3aGV0aGVyIGFuIGltYWdlIGlzIHNldCBmb3IgdGhpcyBjb250cm9sXHJcbiAgICogQHBhcmFtIGNvbnRyb2xJZCBJZCBvZiBjb250cm9sXHJcbiAgICogQHBhcmFtIHJvd0lkIElkIG9mIHJvdywgaWYgYXBwbGljYWJsZVxyXG4gICAqIEByZXR1cm5zIHJldHVybnMgdHJ1ZSBpZiBjb250cm9sIGhhcyBhbiBpbWFnZSBzZXQgb24gaXRcclxuICAgKi9cclxuICAvLyBtZ0lzSW1hZ2VFeGlzdHNcclxuICBpc0ltYWdlRXhpc3RzKGNvbnRyb2xJZDogc3RyaW5nLCByb3dJZD86IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IHJlc3VsdCA9IHRoaXMudGFzay5nZXRQcm9wZXJ0eShjb250cm9sSWQsIEh0bWxQcm9wZXJ0aWVzLkltYWdlLCByb3dJZCk7XHJcbiAgICByZXR1cm4gIWlzTnVsbE9yVW5kZWZpbmVkKHJlc3VsdCk7XHJcblxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgQ1NTIGNsYXNzZXMgc2V0IG9uIHRoZSBjb250cm9sXHJcbiAgICogQHBhcmFtIGNvbnRyb2xJZCBJZCBvZiBjb250cm9sXHJcbiAgICogQHBhcmFtIHJvd0lkIElkIG9mIHJvdywgaWYgYXBwbGljYWJsZVxyXG4gICAqIEByZXR1cm5zIFRoZSBjbGFzc2VzIGZvciB0aGlzIGNvbnRyb2xcclxuICAgKi9cclxuICAvLyBtZ0dldENsYXNzZXNcclxuICBnZXRDbGFzc2VzKGNvbnRyb2xJZDogc3RyaW5nLCByb3dJZD86IHN0cmluZykgOnN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy50YXNrLmdldENsYXNzZXMoY29udHJvbElkLCByb3dJZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXRzIHRoZSBDU1Mgc3R5bGVzIHNldCBvbiB0aGUgY29udHJvbFxyXG4gICAqIEBwYXJhbSBjb250cm9sSWQgSWQgb2YgY29udHJvbFxyXG4gICAqIEBwYXJhbSBzdHlsZU5hbWUgTkFtZSBvZiBzdHlsZSByZXF1ZXN0ZWRcclxuICAgKiBAcGFyYW0gcm93SWQgSWQgb2Ygcm93LCBpZiBhcHBsaWNhYmxlXHJcbiAgICogQHJldHVybnMgVGhlIHN0eWxlIHNldCBvbiB0aGUgY29udHJvbFxyXG4gICAqL1xyXG4gIC8vIG1nR2V0U3R5bGVcclxuICBnZXRTdHlsZShjb250cm9sSWQ6IHN0cmluZywgc3R5bGVOYW1lOiBzdHJpbmcsIHJvd0lkPzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGxldCBzdHlsZSA9IHRoaXMudGFzay5nZXRTdHlsZShjb250cm9sSWQsIHN0eWxlTmFtZSwgcm93SWQpXHJcbiAgICByZXR1cm4gc3R5bGU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHdoZXRoZXIgYSBjb250cm9sIGlzIHZpc2libGUgb3Igbm90XHJcbiAgICogQHBhcmFtIGNvbnRyb2xJZCBJZCBvZiBjb250cm9sXHJcbiAgICogQHBhcmFtIHJvd0lkIElkIG9mIHJvdywgaWYgYXBwbGljYWJsZVxyXG4gICAqIEByZXR1cm5zIElzIHRoZSBjb250cm9sIHZpc2libGUgb3IgaGlkZGVuXHJcbiAgICovXHJcbiAgLy8gbWdHZXRWaXNpYmxlXHJcbiAgZ2V0VmlzaWJsZShjb250cm9sSWQ6IHN0cmluZywgcm93SWQ/OiBzdHJpbmcpIDogc3RyaW5nIHtcclxuICAgIGxldCB2aXM6IEJvb2xlYW4gPSB0aGlzLmdldFByb3BlcnR5KGNvbnRyb2xJZCwgSHRtbFByb3BlcnRpZXMuVmlzaWJsZSwgcm93SWQpO1xyXG4gICAgcmV0dXJuIHZpcyA/ICd2aXNpYmxlJyA6ICdoaWRkZW4nO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyBvYmplY3QgcmVwcmVzZW50aW5nIG51bWVyaWMgcGljdHVyZVxyXG4gICAqIEBwYXJhbSBwaWN0dXJlIHN0cmluZyB3aGljaCBpcyBkZWZpbmVkIGluIG1hZ2ljXHJcbiAgICogQHJldHVybnMgb2JqZWN0IHJlcHJlc2VudGluZyBudW1lcmljIHBpY3R1cmVcclxuICAgKi9cclxuICAvLyBtZ0dldE51bWVyaWNQaWN0dXJlXHJcbiAgZ2V0TnVtZXJpY1BpY3R1cmUocGljdHVyZTogc3RyaW5nKSA6IGFueSB7XHJcbiAgIGlmIChpc051bGxPclVuZGVmaW5lZChwaWN0dXJlKSlcclxuICAgICAgcmV0dXJuIG51bGw7XHJcblxyXG4gICBsZXQgcGljOiBQSUMgPSBuZXcgUElDKHBpY3R1cmUsIFN0b3JhZ2VBdHRyaWJ1dGUuTlVNRVJJQywgMCk7XHJcblxyXG4gICB2YXIgb2JqID0ge307XHJcblxyXG4gICBvYmpbJ3ByZWZpeCddID0gXCJcIlxyXG4gICBpZiAocGljLmdldFBvc1ByZWZfKCkubGVuZ3RoID4gMCAmJiBwaWMuZ2V0TmVnUHJlZl8oKS5sZW5ndGggPiAwKSB7XHJcbiAgICAgbGV0IHByZWYgPSAnLScrcGljLmdldFBvc1ByZWZfKCk7XHJcbiAgICAgaWYgKHByZWYgPT0gcGljLmdldE5lZ1ByZWZfKCkpXHJcbiAgICAgIG9ialsncHJlZml4J10gPSBwaWMuZ2V0UG9zUHJlZl8oKTtcclxuICAgfVxyXG4gICBpZihwaWMuZ2V0UG9zU3VmZl8oKS5sZW5ndGggPiAwKVxyXG4gICAgIG9ialsnc3VmZml4J10gPSBwaWMuZ2V0UG9zU3VmZl8oKTtcclxuICAgZWxzZVxyXG4gICAgIG9ialsnc3VmZml4J10gPSBcIlwiO1xyXG5cclxuICAgaWYocGljLmlzTmVnYXRpdmUoKSlcclxuICAgICBvYmpbJ2FsbG93TmVnYXRpdmUnXSA9IHRydWU7XHJcbiAgIGVsc2VcclxuICAgICBvYmpbJ2FsbG93TmVnYXRpdmUnXSA9IGZhbHNlO1xyXG4gICBpZihwaWMuZ2V0RGVjKCk+PSAwKVxyXG4gICAgICBvYmpbJ3ByZWNpc2lvbiddID0gcGljLmdldERlYygpO1xyXG5cclxuICAgaWYocGljLmlzTGVmdCgpKVxyXG4gICAgICBvYmpbJ2FsaWduJ109XCJsZWZ0XCI7XHJcblxyXG4gICBvYmpbJ2RlY2ltYWwnXSA9IEd1aUVudmlyb25tZW50LkVudmlyb25tZW50LkdldERlY2ltYWwoKTtcclxuICAgaWYocGljLndpdGhDb21hKCkpXHJcbiAgICAgIG9ialsndGhvdXNhbmRzJ109R3VpRW52aXJvbm1lbnQuRW52aXJvbm1lbnQuR2V0VGhvdXNhbmRzKCk7XHJcbiAgIGVsc2VcclxuICAgICBvYmpbJ3Rob3VzYW5kcyddPVwiXCI7XHJcblxyXG4gICAgaWYocGljLmdldFdob2xlcygpKVxyXG4gICAgICBvYmpbJ3dob2xlcyddPXBpYy5nZXRXaG9sZXMoKTtcclxuXHJcbiAgICByZXR1cm4gICBvYmo7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHdoZXRoZXIgYSBjb250cm9sIHNob3VsZCBoYXZlIHRoZSBcInJlcXVpcmVkXCIgYXR0cmlidXRlIHNldCBvbiBpdFxyXG4gICAqIEBwYXJhbSBjb250cm9sSWQgSWQgb2YgY29udHJvbFxyXG4gICAqIEBwYXJhbSByb3dJZCBJZCBvZiByb3csIGlmIGFwcGxpY2FibGVcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIC8vIG1nR2V0TXVzdElucHV0XHJcbiAgZ2V0TXVzdElucHV0KGNvbnRyb2xJZDogc3RyaW5nLCByb3dJZD86IHN0cmluZykgOiBzdHJpbmcge1xyXG4gICAgbGV0IHZpczogQm9vbGVhbiA9IHRoaXMuZ2V0UHJvcGVydHkoY29udHJvbElkLCBIdG1sUHJvcGVydGllcy5NdXN0SW5wdXQsIHJvd0lkKTtcclxuICAgIHJldHVybiB2aXMgPyAndHJ1ZScgOiAnZmFsc2UnO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB3aGV0aGVyIGEgY29udHJvbCBpcyBkaXNhYmxlZFxyXG4gICAqIEBwYXJhbSBjb250cm9sSWQgSWQgb2YgY29udHJvbFxyXG4gICAqIEBwYXJhbSByb3dJZCBJZCBvZiByb3csIGlmIGFwcGxpY2FibGVcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIC8vIG1nSXNEaXNhYmxlZFxyXG4gIGlzRGlzYWJsZWQoY29udHJvbElkOiBzdHJpbmcsIHJvd0lkPzogc3RyaW5nKTogYW55e1xyXG4gICAgbGV0IHJlc3VsdCA9IHRoaXMuZ2V0UHJvcGVydHkoY29udHJvbElkLCBIdG1sUHJvcGVydGllcy5FbmFibGVkLCByb3dJZCk7XHJcbiAgICByZXR1cm4gcmVzdWx0ID09PSB0cnVlID8gbnVsbCA6IHRydWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgLy8gZ2V0UHJvcGVydHkgKG5vdCBjaGFuZ2VkKVxyXG4gIGdldFByb3BlcnR5KGNvbnRyb2xJZDogc3RyaW5nLCBwcm9wOiBIdG1sUHJvcGVydGllcywgcm93SWQ/OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLnRhc2suZ2V0UHJvcGVydHkoY29udHJvbElkLCBwcm9wLCByb3dJZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSB0aXRsZSAodG9vbHRpcCkgdGV4dCBvZiB0aGUgY29udHJvbFxyXG4gICAqIEBwYXJhbSBjb250cm9sSWQgSWQgb2YgY29udHJvbFxyXG4gICAqIEBwYXJhbSByb3dJZCBJZCBvZiByb3csIGlmIGFwcGxpY2FibGVcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIC8vIG1nR2V0VGl0bGVcclxuICBnZXRUaXRsZShjb250cm9sSWQ6IHN0cmluZywgcm93SWQ/OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMudGFzay5nZXRQcm9wZXJ0eShjb250cm9sSWQsIEh0bWxQcm9wZXJ0aWVzLlRvb2x0aXAsIHJvd0lkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIHRpdGxlICh0b29sdGlwKSB0ZXh0IG9mIHRoZSBjb250cm9sXHJcbiAgICogQHBhcmFtIGNvbnRyb2xJZCBJZCBvZiBjb250cm9sXHJcbiAgICogQHBhcmFtIHJvd0lkIElkIG9mIHJvdywgaWYgYXBwbGljYWJsZVxyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgLy8gbWdHZXRUaXRsZSBmb3Igem9vbSBidXR0b25cclxuICBnZXRab29tQnV0dG9uVGl0bGUoY29udHJvbElkOiBzdHJpbmcsIHJvd0lkPzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnRhc2suZ2V0UHJvcGVydHkoY29udHJvbElkLCBIdG1sUHJvcGVydGllcy5ab29tQnV0dG9uVG9vbHRpcCwgcm93SWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgc2VsZWN0aW9uIGNvbnRyb2wncyBzZWxlY3RlZCB2YWx1ZVxyXG4gICAqIEBwYXJhbSBjb250cm9sSWQgSWQgb2YgY29udHJvbFxyXG4gICAqIEBwYXJhbSByb3dJZCBJZCBvZiByb3csIGlmIGFwcGxpY2FibGVcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIC8vIGdldFNlbGVjdGVkVmFsdWVcclxuICBnZXRTZWxlY3RlZFZhbHVlKGNvbnRyb2xJZDogc3RyaW5nLCByb3dJZD86IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy50YXNrLmdldFByb3BlcnR5KGNvbnRyb2xJZCwgSHRtbFByb3BlcnRpZXMuU2VsZWN0ZWRWYWx1ZSwgcm93SWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgcGxhY2UtaG9sZGVyIHRleHQgb2YgdGhlIGNvbnRyb2xcclxuICAgKiBAcGFyYW0gY29udHJvbElkIElkIG9mIGNvbnRyb2xcclxuICAgKiBAcGFyYW0gcm93SWQgSWQgb2Ygcm93LCBpZiBhcHBsaWNhYmxlXHJcbiAgICogQHJldHVybnNcclxuICAgKi9cclxuICAvLyBtZ0dldFBsYWNlaG9sZGVyXHJcbiAgZ2V0UGxhY2Vob2xkZXIoY29udHJvbElkOiBzdHJpbmcsIHJvd0lkPzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnRhc2suZ2V0UHJvcGVydHkoY29udHJvbElkLCBIdG1sUHJvcGVydGllcy5QbGFjZUhvbGRlciwgcm93SWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyBhIHR5cGUgZm9yIGlucHV0IGNvbnRyb2xzIC0gc2hvdWxkIHRoZSBjb250cm9sIGJlIGEgc2ltcGxlIHRleHQgb3IgYSBwYXNzd29yZCBjb250cm9sXHJcbiAgICogQHBhcmFtIGNvbnRyb2xJZCBJZCBvZiBjb250cm9sXHJcbiAgICogQHBhcmFtIHJvd0lkIElkIG9mIHJvdywgaWYgYXBwbGljYWJsZVxyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgLy8gbWdHZXRUeXBlXHJcbiAgZ2V0VHlwZShjb250cm9sSWQ6IHN0cmluZywgcm93SWQ/OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgbGV0IHJlc3VsdCA9IHRoaXMudGFzay5nZXRQcm9wZXJ0eShjb250cm9sSWQsIEh0bWxQcm9wZXJ0aWVzLlBhc3N3b3JkLCByb3dJZCk7XHJcbiAgICByZXR1cm4gcmVzdWx0ID8gXCJwYXNzd29yZFwiIDogXCJ0ZXh0XCJcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIHRhYi1pbmRleCBvZiB0aGUgY29udHJvbFxyXG4gICAqIEBwYXJhbSBjb250cm9sSWQgSWQgb2YgY29udHJvbFxyXG4gICAqIEBwYXJhbSByb3dJZCBJZCBvZiByb3csIGlmIGFwcGxpY2FibGVcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIC8vIG1nR2V0VGFiSW5kZXhcclxuICBnZXRUYWJJbmRleChjb250cm9sSWQ6IHN0cmluZywgcm93SWQ/OiBzdHJpbmcpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMudGFzay5nZXRQcm9wZXJ0eShjb250cm9sSWQsIEh0bWxQcm9wZXJ0aWVzLlRhYkluZGV4LCByb3dJZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgY29udHJvbFxyXG4gICAqIEBwYXJhbSBjb250cm9sSWQgSWQgb2YgY29udHJvbFxyXG4gICAqIEBwYXJhbSByb3dJZCBJZCBvZiByb3csIGlmIGFwcGxpY2FibGVcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIC8vLyBtZ0dldFZhbHVlIC0tPlxyXG4gIGdldFZhbHVlKGNvbnRyb2xJZDogc3RyaW5nLCByb3dJZD86IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBsZXQgdmFsID0gdGhpcy50YXNrLmdldFZhbHVlKGNvbnRyb2xJZCwgcm93SWQpO1xyXG4gICAgcmV0dXJuIHZhbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIGZvcm1hdHRlZCB2YWx1ZSBvZiB0aGUgY29udHJvbFxyXG4gICAqIEBwYXJhbSBjb250cm9sSWQgSWQgb2YgY29udHJvbFxyXG4gICAqIEBwYXJhbSByb3dJZCBJZCBvZiByb3csIGlmIGFwcGxpY2FibGVcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIC8vLyBtZ0dldFZhbHVlIC0tPlxyXG4gIGdldEZvcm1hdHRlZFZhbHVlKGNvbnRyb2xJZDogc3RyaW5nLCByb3dJZD86IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBsZXQgdmFsID0gdGhpcy50YXNrLmdldFZhbHVlKGNvbnRyb2xJZCwgcm93SWQpO1xyXG4gICAgdmFsID0gdGhpcy50YXNrLmdldEZvcm1hdHRlZFZhbHVlKGNvbnRyb2xJZCwgdmFsKTtcclxuICAgIHJldHVybiB2YWw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBQaWN0dXJlIG9mIHRoZSBjb250cm9sXHJcbiAgICogQHBhcmFtIGNvbnRyb2xJZCBJZCBvZiBjb250cm9sXHJcbiAgICogQHBhcmFtIHJvd0lkIElkIG9mIHJvdywgaWYgYXBwbGljYWJsZVxyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgLy8vIGdldFBpY3R1cmUgLS0+XHJcbiAgZ2V0UGljdHVyZShjb250cm9sSWQ6IHN0cmluZywgcm93SWQ/OiBzdHJpbmcpOiBzdHJpbmcge1xyXG5cclxuICAgIGlmIChpc051bGxPclVuZGVmaW5lZChjb250cm9sSWQpKVxyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIGxldCBwaWM6IFBJQyA9IHRoaXMudGFzay5HZXRDb250cm9sUGljdHVyZU1hc2soY29udHJvbElkKTtcclxuICAgIHJldHVybiAgKHBpYyAhPSBudWxsKSA/IHBpYy5nZXRGb3JtYXQoKS50b1N0cmluZygpIDogbnVsbDtcclxuXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBjdXN0b20gKHVzZXIpIHByb3BlcnRpZXMgb2YgdGhlIGNvbnRyb2xcclxuICAgKiBAcGFyYW0gY29udHJvbElkIElkIG9mIGNvbnRyb2xcclxuICAgKiBAcGFyYW0gcHJvcGVydHlOYW1lIE5hbWUgb2YgcmVxdWVzdGVkIHByb3BlcnR5XHJcbiAgICogQHBhcmFtIHJvd0lkIElkIG9mIHJvdywgaWYgYXBwbGljYWJsZVxyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgLy8gbWdHZXRDdXN0b21Qcm9wZXJ0eVxyXG4gIGdldEN1c3RvbVByb3BlcnR5KGNvbnRyb2xJZDogc3RyaW5nLCBwcm9wZXJ0eU5hbWVPclJvd0lEPzogc3RyaW5nLCByb3dJZD86IHN0cmluZykgOiBhbnlcclxuICB7XHJcbiAgICBpZihjb250cm9sSWQuaW5kZXhPZignficpPT0gLTEpXHJcbiAgICByZXR1cm4gdGhpcy5nZXRDdXN0b21Qcm9wZXJ0eV8xKGNvbnRyb2xJZCwgcHJvcGVydHlOYW1lT3JSb3dJRCwgcm93SWQpO1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIGxldCAgY2lkOiBzdHJpbmcgPSBjb250cm9sSWQuc3BsaXQoJ34nKVswXTtcclxuICAgICAgbGV0ICBwcm9wTmFtZTogc3RyaW5nID0gY29udHJvbElkLnNwbGl0KCd+JylbMV07XHJcblxyXG4gICAgICByZXR1cm4gdGhpcy5nZXRDdXN0b21Qcm9wZXJ0eV8xKGNpZCwgcHJvcE5hbWUsIHByb3BlcnR5TmFtZU9yUm93SUQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0Q3VzdG9tUHJvcGVydHlfMShjb250cm9sSWQ6IHN0cmluZywgcHJvcGVydHlOYW1lOiBzdHJpbmcsIHJvd0lkPzogc3RyaW5nKVxyXG4gIHtcclxuICAgIGxldCB1c2VyUHJvcGVydGllcztcclxuICAgIGlmIChpc051bGxPclVuZGVmaW5lZChyb3dJZCkpXHJcbiAgICAgIHJvd0lkID0gJzAnO1xyXG4gICAgbGV0IHJlYyA9IHRoaXMudGFzay5SZWNvcmRzLmxpc3Rbcm93SWRdO1xyXG4gICAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKHJlYykpXHJcbiAgICAgIGRlYnVnZ2VyO1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIGNvbnN0IGNvbnRyb2xNZXRhZGF0YSA9IHJlYy5nZXRDb250cm9sTWV0YWRhdGEoY29udHJvbElkKTtcclxuXHJcbiAgICAgIGlmIChjb250cm9sTWV0YWRhdGEudXNlclByb3BlcnRpZXMuaGFzKHByb3BlcnR5TmFtZSkpIHtcclxuICAgICAgICB1c2VyUHJvcGVydGllcyA9IGNvbnRyb2xNZXRhZGF0YS51c2VyUHJvcGVydGllcy5nZXQocHJvcGVydHlOYW1lKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHVzZXJQcm9wZXJ0aWVzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgdmFsdWVzIG9mIHRoZSBpdGVtcyBvZiBhIHNlbGVjdGlvbiBjb250cm9sXHJcbiAgICogQHBhcmFtIGlkIElkIG9mIGNvbnRyb2xcclxuICAgKiBAcGFyYW0gcm93SWQgSWQgb2Ygcm93LCBpZiBhcHBsaWNhYmxlXHJcbiAgICogQHJldHVybnNcclxuICAgKi9cclxuICAvLyBtZ0dldEl0ZW1MaXN0VmFsdWVzXHJcbiAgZ2V0SXRlbUxpc3RWYWx1ZXMoaWQ6IHN0cmluZywgcm93SWQ/OiBzdHJpbmcpIDogQXJyYXk8e2luZGV4OiBudW1iZXIsIGRpc3BsYXlWYWx1ZTogc3RyaW5nfT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHkoaWQsIEh0bWxQcm9wZXJ0aWVzLkl0ZW1zTGlzdCwgcm93SWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgZmlsdGVyZWQgaXRlbXMgbGlzdCBiYXNlZCBvbiB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgY29udHJvbFxyXG4gICAqIEBwYXJhbSBjb250cm9sSWQgSWQgb2YgY29udHJvbFxyXG4gICAqIEBwYXJhbSByb3dJZCBJZCBvZiByb3csIGlmIGFwcGxpY2FibGVcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIGdldEZpbHRlcmVkTGlzdChjb250cm9sSWQ6IHN0cmluZywgcm93SWQ/OiBzdHJpbmcpOiBBcnJheTx7aW5kZXg6IG51bWJlciwgZGlzcGxheVZhbHVlOiBzdHJpbmd9PiB7XHJcbiAgICBpZiAoaXNOdWxsT3JVbmRlZmluZWQocm93SWQpKVxyXG4gICAgICByb3dJZCA9ICcwJztcclxuXHJcbiAgICBsZXQgaXRlbXMgPSB0aGlzLmdldEl0ZW1MaXN0VmFsdWVzKGNvbnRyb2xJZCwgcm93SWQpO1xyXG4gICAgbGV0IHZhbHVlOiBzdHJpbmcgPSB0aGlzLnRhc2suZ2V0Rm9ybUNvbnRyb2wocm93SWQsIGNvbnRyb2xJZCkudmFsdWU7XHJcbiAgICBpZiAodmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IFwiXCIgJiYgaXRlbXMgaW5zdGFuY2VvZiBBcnJheSkge1xyXG4gICAgICB2YWx1ZSA9IHZhbHVlLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIHJldHVybiBpdGVtcy5maWx0ZXIob3B0aW9uID0+IG9wdGlvbi5kaXNwbGF5VmFsdWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh2YWx1ZSkpO1xyXG4gICAgfVxyXG4gICAgZWxzZVxyXG4gICAgICByZXR1cm4gaXRlbXM7XHJcbiAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAqIEdldHMgdGhlIGRpc3BsYXkgdmFsdWUgb2YgdGhlIGl0ZW0gZnJvbSBpdGVtcyBvZiBhIHNlbGVjdGlvbiBjb250cm9sXHJcbiAgICogQHBhcmFtIGlkIElkIG9mIGNvbnRyb2xcclxuICAgKiBAcGFyYW0gcm93SWQgSWQgb2Ygcm93LCBpZiBhcHBsaWNhYmxlXHJcbiAgICogQHJldHVybnNcclxuICAgKi9cclxuICBnZXREaXNwbGF5VmFsdWUoaWQsIHJvd0lkPykge1xyXG4gICAgbGV0IGRpc3BsYXlWYWx1ZTpzdHJpbmcgPVwiXCJcclxuXHJcbiAgICBsZXQgbyA9ICB0aGlzLmdldFByb3BlcnR5KGlkLCBIdG1sUHJvcGVydGllcy5JdGVtc0xpc3QsIHJvd0lkKTtcclxuICAgIGxldCB2YWx1ZSA9IHRoaXMudGFzay5nZXRWYWx1ZShpZCwgcm93SWQpXHJcbiAgICBpZiAodmFsdWUgPj0wICYmIHZhbHVlIDxvLmxlbmd0aCAgJiYgIWlzTnVsbE9yVW5kZWZpbmVkKG9bdmFsdWVdKSlcclxuICAgICAgZGlzcGxheVZhbHVlID0gb1t2YWx1ZV0uZGlzcGxheVZhbHVlO1xyXG4gICAgcmV0dXJuIGRpc3BsYXlWYWx1ZVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB3aGV0aGVyIGEgdGFiIHBhZ2UgaXMgc2VsZWN0ZWQgb3Igbm90XHJcbiAgICogQHBhcmFtICBpbmRleCBvZiBjdXJyZW50IG9wdGlvbiBpbiBpdGVyYXJvdHJcclxuICAgKiBAcGFyYW0gY29udHJvbCBJZCBvZiBsaXN0IGNvbnRyb2xcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqLyAvLyBpc09wdGlvblNlbGVjdGVkXHJcbiAgaXNPcHRpb25TZWxlY3RlZChpbmRleCwgY29udHJvbElkKSB7XHJcbiAgICBsZXQgdmFsID0gdGhpcy50YXNrLmdldFZhbHVlKGNvbnRyb2xJZCwgXCIwXCIpO1xyXG4gICAgICAgICBmb3IgKGxldCBpdGVtIG9mIHZhbCkge1xyXG4gICAgICAgICAgIGlmIChpdGVtID09PSBpbmRleClcclxuICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyB3aGV0aGVyIGEgdGFiIHBhZ2UgaXMgc2VsZWN0ZWQgb3Igbm90IC0gdXNlZCBmb3IgdGhlIHRhYiBidXR0b25zXHJcbiAgICAgKiBAcGFyYW0gY29udHJvbElkIElkIG9mIGNvbnRyb2xcclxuICAgICAqIEBwYXJhbSAgbGF5ZXIgSWQgb2YgdGhlIHRhYiBwYWdlXHJcbiAgICAgKiBAcmV0dXJuc1xyXG4gICAgICovIC8vIG1nSXNUYWJQYWdlU2VsZWN0ZWRcclxuICBpc1RhYlBhZ2VTZWxlY3RlZChjb250cm9sSWQ6IHN0cmluZywgbGF5ZXI6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgbGV0IHZhbCA9IHRoaXMudGFzay5nZXRQcm9wZXJ0eShjb250cm9sSWQsIEh0bWxQcm9wZXJ0aWVzLlNlbGVjdGVkVmFsdWUpO1xyXG4gICAgcmV0dXJuIHZhbCA9PSAobGF5ZXIgLSAxKTsgLy8gY29tcGFyaW5nIHN0cmluZyB0byBudW1iZXIhXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHdoZXRoZXIgYSB0YWIgcGFnZSBsYXllciBpcyBzZWxlY3RlZCBvciBub3QgLSB1c2VkIGZvciB0aGUgZGl2IHdoaWNoIHJlcHJlc2VudHMgdGhlIHRhYiBwYWdlXHJcbiAgICogQHBhcmFtIGNvbnRyb2xJZCBJZCBvZiBjb250cm9sXHJcbiAgICogQHBhcmFtICBsYXllciBJZCBvZiB0aGUgdGFiIHBhZ2VcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqLyAvLyBtZ0lzVGFiTGF5ZXJTZWxlY3RlZFxyXG4gIGlzVGFiUGFnZUxheWVyU2VsZWN0ZWQoY29udHJvbElkOiBzdHJpbmcsIGxheWVyOiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgIGxldCB2YWwgPSB0aGlzLnRhc2suZ2V0UHJvcGVydHkoY29udHJvbElkLCBIdG1sUHJvcGVydGllcy5TZWxlY3RlZExheWVyKTtcclxuICAgIHJldHVybiB2YWwgPT0gKGxheWVyIC0gMSk7IC8vIGNvbXBhcmluZyBzdHJpbmcgdG8gbnVtYmVyIVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIHNlbGVjdGVkIHRhYiBwYWdlXHJcbiAgICogQHBhcmFtIGNvbnRyb2xJZCBJZCBvZiBjb250cm9sXHJcbiAgICogQHJldHVybnNcclxuICAgKi9cclxuICBnZXRUYWJTZWxlY3RlZEluZGV4KGNvbnRyb2xJZDogc3RyaW5nKSB7XHJcbiAgICBsZXQgdmFsID0gdGhpcy50YXNrLmdldFByb3BlcnR5KGNvbnRyb2xJZCwgSHRtbFByb3BlcnRpZXMuU2VsZWN0ZWRWYWx1ZSk7XHJcbiAgICByZXR1cm4gdmFsOyAvLyBjb21wYXJpbmcgc3RyaW5nIHRvIG51bWJlciFcclxuICB9XHJcblxyXG5cclxuICAvLyBwcml2YXRlIG1ldGhvZGVzXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIC8vIG1nSWZSb3dDcmVhdGVkXHJcbiAgaWZSb3dDcmVhdGVkKHJvdyk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHJvdyA9PSBudWxsKVxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICBsZXQgcm93SWQgPSB0eXBlb2Ygcm93ID09IFwibnVtYmVyXCIgPyByb3cudG9TdHJpbmcoKSA6IHJvdy5yb3dJZDtcclxuICAgIGxldCByZXN1bHQgPSB0aGlzLmdldEZvcm1Hcm91cEJ5Um93KHJvd0lkKTtcclxuICAgIHJldHVybiAhaXNOdWxsT3JVbmRlZmluZWQocmVzdWx0KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICAvLyBtZ0dldEZvcm1Hcm91cEJ5Um93XHJcbiAgZ2V0Rm9ybUdyb3VwQnlSb3coaWQ6IHN0cmluZyk6IEZvcm1Hcm91cCB7XHJcbiAgICByZXR1cm4gdGhpcy50YXNrLmZvcm1Hcm91cHNbaWRdO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIC8vIGlzUm93U2VsZWN0ZWQgKG5vdCBjaGFuZ2VkKVxyXG4gIGlzUm93U2VsZWN0ZWQoY29udHJvbElkLCByb3dJZD8pIHtcclxuICAgIGNvbnN0IHNlbGVjdGVkUm93ID0gdGhpcy50YXNrLmdldFByb3BlcnR5KGNvbnRyb2xJZCwgSHRtbFByb3BlcnRpZXMuU2VsZWN0ZWRSb3csIFwiMFwiKTtcclxuICAgIHJldHVybiBzZWxlY3RlZFJvdyA9PSByb3dJZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgd2hldGhlciBhIHJvdyBpcyBpbiBlZGl0IHN0YXRlXHJcbiAgICogQHBhcmFtIHJvd1xyXG4gICAqL1xyXG4gIGlzUm93SW5Sb3dFZGl0aW5nKHJvdz86IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IGd1aVJvd0lkIDogc3RyaW5nID0gJzAnO1xyXG4gICAgZ3VpUm93SWQ9IHR5cGVvZiByb3cgPT0gXCJudW1iZXJcIiA/IHJvdy50b1N0cmluZygpIDogcm93LnJvd0lkO1xyXG4gICAgcmV0dXJuIHRoaXMudGFzay5pc1Jvd0luUm93RWRpdGluZyhndWlSb3dJZClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgd2hldGhlciBhIHJvdyBpcyBpbiBlZGl0IHN0YXRlLCB1c2UgdGhpcyBtZXRob2Qgd2hpbGUgY29udHJvbCBvdXRzaWRlIHRhYmxlIGNvbnRyb2xcclxuICAgKiBAcGFyYW0gcm93XHJcbiAgICovXHJcbiAgaXNDdXJyZW50SW5Sb3dFZGl0aW5nKCk6IGJvb2xlYW4ge1xyXG5cclxuICAgIGxldCByb3cgID0gdGhpcy50YXNrLnRhYmxlU2VydmljZS5nZXRTZWxlY3RlZFJvdygpO1xyXG5cclxuICAgIHJldHVybiB0aGlzLnRhc2suaXNSb3dJblJvd0VkaXRpbmcocm93KVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIC8vIEdldEd1aVRvcEluZGV4XHJcbiAgZ3VpVG9wSW5kZXgoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLnRhc2sudGFibGVTZXJ2aWNlLmdldFRhYmxlVG9wSW5kZXgoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBnZXRFcnJNc2coaWQ6IHN0cmluZyxyb3dJZDogc3RyaW5nKTogc3RyaW5nXHJcbiAge1xyXG4gICAgbGV0IGMgPSB0aGlzLnRhc2suZ2V0Rm9ybUNvbnRyb2wocm93SWQsIGlkKTtcclxuICAgIGlmIChjLmhhc0Vycm9yKCdyZXF1aXJlZCcpKVxyXG4gICAgICByZXR1cm4gJ0NvbnRyb2wgbXVzdCBiZSB1cGRhdGVkLic7XHJcbiAgICBpZiAoYy5oYXNFcnJvcigncGF0dGVybicpKVxyXG4gICAgICByZXR1cm4gJ1JlcXVpcmVkIHBhdHRlcm4gaXMgOiAnICsgYy5lcnJvcnMucGF0dGVybi5yZXF1aXJlZFBhdHRlcm47XHJcbiAgICBpZiAoYy5oYXNFcnJvcigncmFuZ2V2YWxpZGF0b3InKSlcclxuICAgICAgcmV0dXJuIGMuZXJyb3JzLnJhbmdldmFsaWRhdG9yLmVycm9yTXNnO1xyXG4gICAgaWYgKGMuaGFzRXJyb3IoJ21heGxlbmd0aCcpKVxyXG4gICAgICByZXR1cm4gJ01heCBsZW5ndGggYWxsb3dlZCBpcyA6ICcgKyBjLmVycm9ycy5tYXhsZW5ndGgucmVxdWlyZWRMZW5ndGg7XHJcbiAgICBpZiAoYy5oYXNFcnJvcignbWF4JykpXHJcbiAgICAgIHJldHVybiAnTWF4IHZhbHVlIGFsbGxvd2VkIGlzIDogJyArIGMuZXJyb3JzLm1heC5tYXg7XHJcblxyXG4gICAgbGV0IGNvbnRyb2xNZXRhZGF0YSA9IHRoaXMudGFzay5SZWNvcmRzLmxpc3Rbcm93SWRdLmdldENvbnRyb2xNZXRhZGF0YShpZCk7XHJcbiAgICBmb3IgKGxldCBrZXkgb2YgY29udHJvbE1ldGFkYXRhLmN1c3RvbVZhbGlkYXRvcnMua2V5cygpKVxyXG4gICAge1xyXG4gICAgICBpZiAoYy5oYXNFcnJvcihrZXkpKSB7XHJcbiAgICAgICAgbGV0IGN1c3RvbVZhbGlkYXRvcjogQ3VzdG9tVmFsaWRhdG9yICA9IGNvbnRyb2xNZXRhZGF0YS5jdXN0b21WYWxpZGF0b3JzLmdldChrZXkpO1xyXG4gICAgICAgIHJldHVybiBjdXN0b21WYWxpZGF0b3IuZ2V0RXJyTWVzc2FnZSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuICd1bmtub3duIGVycm9yJztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgYSB1c2VyLXN1cHBsaWVkIHZhbHVlIHRvIHRoZSBzcGVjaWZpZWQgY29udHJvbFxyXG4gICAqIEBwYXJhbSBjb250cm9sTmFtZVxyXG4gICAqIEBwYXJhbSB2YWx1ZVxyXG4gICAqIEBwYXJhbSByZWZyZXNoRGlzcGxheVxyXG4gICAqL1xyXG4gIHNldFZhbHVlVG9Db250cm9sKGNvbnRyb2xOYW1lOiBzdHJpbmcsIHZhbHVlOiBhbnksIHJlZnJlc2hEaXNwbGF5PzogYm9vbGVhbil7XHJcbiAgICBpZih0eXBlb2YgcmVmcmVzaERpc3BsYXkgPT09IFwidW5kZWZpbmVkXCIpXHJcbiAgICAgIHJlZnJlc2hEaXNwbGF5ID0gdHJ1ZTtcclxuICAgIGxldCBndWlFdmVudDogSUd1aUV2ZW50ID0gZ2V0R3VpRXZlbnRPYmooXCJzZXRleHRlcm5hbHZhbHVlXCIsIGNvbnRyb2xOYW1lLCAwKTtcclxuICAgIGd1aUV2ZW50LmV4dGVybmFsVmFsdWUgPSB2YWx1ZTtcclxuICAgIGd1aUV2ZW50LnBhcmFtID0gcmVmcmVzaERpc3BsYXk7XHJcbiAgICB0aGlzLnRhc2suaW5zZXJ0RXZlbnQoZ3VpRXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAqIEBpZ25vcmVcclxuICovXHJcbiAgaXNEYXRhdmlld0VtcHR5KCkgOiBib29sZWFuIHtcclxuICAgICByZXR1cm4gdGhpcy50YXNrLlJlY29yZHMuaXNFbXB0eURhdGFWaWV3O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogc2ltdWxhdGVzIGEgY2xpY2sgZXZlbnQgb24gdGhlIHNwZWNpZmllZCBjb250cm9sLCBmb3IgdGhlIE1hZ2ljIGVuZ2luZVxyXG4gICAqIEBwYXJhbSBjb250cm9sTmFtZVxyXG4gICAqIEBwYXJhbSByb3dJZFxyXG4gICAqL1xyXG4gIHNpbXVsYXRlQ2xpY2soY29udHJvbE5hbWU6IHN0cmluZywgcm93SWQ/OiBudW1iZXIpe1xyXG4gICAgaWYgKHR5cGVvZiByb3dJZCA9PT0gXCJ1bmRlZmluZWRcIilcclxuICAgICAgcm93SWQgPSAwO1xyXG4gICAgdGhpcy50YXNrLmluc2VydEV2ZW50KGdldEd1aUV2ZW50T2JqKCdjbGljaycsIGNvbnRyb2xOYW1lLCByb3dJZCkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJuIEJvb2xlYW4gVFJVRSBpZiB1c2VyIGxvZ2dlZCBpbiBFbHNlIGl0IHdpbGwgcmV0dXJuIEZBTFNFXHJcbiAgICovXHJcbiAgaXNMb2dnZWRJbigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnRhc2suZ2V0SXNMb2dnZW5JbigpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyBKUyBvYmplY3QgY29udGFpbmluZyB0aGUgcmVjb3JkcyB3aXRoIGFsbCB0YWJsZSBmaWVsZHMuXHJcbiAgICovXHJcbiAgR2V0Rm9ybVJlY29yZHMoKTogYW55IHtcclxuICAgIGxldCByb3dJZDogbnVtYmVyID0gMDtcclxuICAgIGxldCByZWNBcnJheTogYW55O1xyXG5cclxuICAgIGlmICghaXNOdWxsT3JVbmRlZmluZWQodGhpcy50YXNrLlJlY29yZHMpICYmIHRoaXMudGFzay5SZWNvcmRzLmxpc3QubGVuZ3RoID4gMCApIHtcclxuICAgICAgbGV0IHJlY0xpc3Q6IENvbnRyb2xzTWV0YWRhdGFbXSA9IHRoaXMudGFzay5SZWNvcmRzLmxpc3Q7XHJcbiAgICAgIGxldCB0YWJsZUNvbnRyb2xzOiBzdHJpbmdbXSA9IG5ldyBBcnJheSgpO1xyXG5cclxuICAgICAgLy9HZW5lcmF0ZSBsaXN0IG9mIHRhYmxlIGZpZWxkcyBuYW1lc1xyXG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLnRhc2sudGVtcGxhdGUpIHtcclxuICAgICAgICBpZiAodGhpcy50YXNrLnRlbXBsYXRlW2tleV0gPT0gJzEnKVxyXG4gICAgICAgICAgdGFibGVDb250cm9scy5wdXNoKGtleSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJlY0FycmF5ID0gbmV3IEFycmF5KCk7XHJcblxyXG4gICAgICAvL1VwZGF0ZSB0aGUgcmVjb3JkcyBhcyBsaXN0IG9mIG9iamVjdHMgd2l0aCB2YWx1ZXMgZm9yIHRhYmxlIGZpZWxkcy5cclxuICAgICAgaWYgKHRhYmxlQ29udHJvbHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHJlY0xpc3QuZm9yRWFjaCgoY3RybE1ldGFEYXRhOiBDb250cm9sc01ldGFkYXRhKSA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy50YXNrLlJlY29yZHMuaXNSb3dDcmVhdGVkKHJvd0lkKSkge1xyXG4gICAgICAgICAgICB2YXIgZm9ybVJlY29yZCA9IHt9O1xyXG4gICAgICAgICAgICBmb3JtUmVjb3JkWydyb3dJZCddID0gcm93SWQ7XHJcbiAgICAgICAgICAgIHRhYmxlQ29udHJvbHMuZm9yRWFjaCgoY3RybElkOiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgICAgICBmb3JtUmVjb3JkW2N0cmxJZF0gPSBjdHJsTWV0YURhdGEudmFsdWVzW2N0cmxJZF07XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgcmVjQXJyYXkucHVzaChmb3JtUmVjb3JkKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHJlY0FycmF5O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0Q29va2llIDogc2V0IHRoZSBjb29raWUgd2l0aCBzcGVjaWZpZWQgbmFtZSBhbmQgdmFsdWUgIGluIGJyb3dzZXJcclxuICAgKiBleHBpcmVzIC0gZXhwaXJhdGlvbiB0aW1lXHJcbiAgICogcGF0aCAtIHBhdGggd2hpY2ggbXVjaCBleGlzdHMgaW4gb3JkZXIgc28gdGhhdCBjb29raWUgaXMgc2VudCBhcyBoZWFkZXJcclxuICAgKiBkb21haW4gLSBzcGVjaWZpZXMgd2hpY2ggaG9zdHMgYXJlIGFsbG93ZWQgdG8gcmVjZWl2ZSB0aGUgY29va2llXHJcbiAgICogc2VjdXJlIC0gc3BlY2lmaWVzIGlmIGNvb2tpZSBpcyBzZWN1cmUgKCB3b3JrcyBvbmx5IHdpdGggSFRUUFMpXHJcbiAgICogc2FtZVNpdGUgLSBsZXRzIHNlcnZlcnMgc3BlY2lmeSB3aGV0aGVyL3doZW4gY29va2llcyBhcmUgc2VudCB3aXRoIGNyb3NzLXNpdGUgcmVxdWVzdHNcclxuICAgKi9cclxuICBTZXRDb29raWUobmFtZTogc3RyaW5nLCB2YWx1ZTogYW55LCBleHBpcmVzPzogRGF0ZSwgcGF0aD8gLCBkb21haW4/ICwgc2VjdXJlPywgc2FtZVNpdGUgPykge1xyXG4gICAgQ29va2llU2VydmljZS5zZXRDb29raWUobmFtZSwgdmFsdWUsIGV4cGlyZXMsIHBhdGgsIGRvbWFpbiwgc2VjdXJlLCBzYW1lU2l0ZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXRDb29raWUgOiBnZXQgdGhlIGNvb2tpZSB3aXRoIHNwZWNpZmllZCBuYW1lIGFuZCB2YWx1ZSAgaW4gYnJvd3NlclxyXG4gICAqL1xyXG4gIEdldENvb2tpZShuYW1lOiBzdHJpbmcpOiBhbnkge1xyXG4gICAgcmV0dXJuIENvb2tpZVNlcnZpY2UuZ2V0Q29va2llKG5hbWUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVsZXRlQ29va2llIDogZGVsZXRlcyB0aGUgY29va2llXHJcbiAgICovXHJcbiAgRGVsZXRlQ29va2llKG5hbWU6IHN0cmluZyk6IGFueSB7XHJcbiAgICByZXR1cm4gQ29va2llU2VydmljZS5kZWxldGVDb29raWUobmFtZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -36,8 +36,11 @@ export class CommandsCollectorMagicService {
36
36
  }
37
37
  }
38
38
  CommandsCollectorMagicService.ɵfac = function CommandsCollectorMagicService_Factory(t) { return new (t || CommandsCollectorMagicService)(i0.ɵɵinject(i1.EngineMagicService)); };
39
- CommandsCollectorMagicService.ɵprov = i0.ɵɵdefineInjectable({ token: CommandsCollectorMagicService, factory: CommandsCollectorMagicService.ɵfac });
40
- (function () { i0.ɵsetClassMetadata(CommandsCollectorMagicService, [{
41
- type: Injectable
39
+ CommandsCollectorMagicService.ɵprov = i0.ɵɵdefineInjectable({ token: CommandsCollectorMagicService, factory: CommandsCollectorMagicService.ɵfac, providedIn: 'root' });
40
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CommandsCollectorMagicService, [{
41
+ type: Injectable,
42
+ args: [{
43
+ providedIn: 'root'
44
+ }]
42
45
  }], function () { return [{ type: i1.EngineMagicService }]; }, null); })();
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZHMtY29sbGVjdG9yLm1hZ2ljLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jb21tYW5kcy1jb2xsZWN0b3IubWFnaWMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTVELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7OztBQU8xQyxNQUFNLE9BQU8sNkJBQTZCO0lBS3hDLFlBQXNCLEtBQXlCO1FBQXpCLFVBQUssR0FBTCxLQUFLLENBQW9CO1FBSnZDLFVBQUssR0FBVyxDQUFDLENBQUM7UUFDbEIsYUFBUSxHQUFxQixJQUFJLElBQUksRUFBYyxDQUFDO1FBQ3BELGlCQUFZLEdBQWlCLElBQUksQ0FBQztJQUcxQyxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLE1BQU0sQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLHNEQUFzRCxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVuRyxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSSxFQUFFO1lBQzlCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVO2lCQUN0QyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzlCLENBQUMsQ0FBQyxDQUFDO1NBQ047SUFDSCxDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLE1BQU0sQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLHFEQUFxRCxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVsRyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssQ0FBQyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQWM7UUFDeEIsTUFBTSxRQUFRLEdBQWlCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFFLENBQUMsT0FBbUIsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sS0FBSyxNQUFNLENBQUMsQ0FBQztRQUMxRyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVoRSxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDOzswR0FuQ1UsNkJBQTZCO3FFQUE3Qiw2QkFBNkIsV0FBN0IsNkJBQTZCO29DQUE3Qiw2QkFBNkI7Y0FEekMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRW5naW5lTWFnaWNTZXJ2aWNlIH0gZnJvbSAnLi9lbmdpbmUubWFnaWMuc2VydmljZSc7XHJcbmltcG9ydCB7IEd1aUNvbW1hbmQgfSBmcm9tICdAbWFnaWMteHBhL2d1aSc7XHJcbmltcG9ydCB7IExpc3QgfSBmcm9tICdAbWFnaWMteHBhL21zY29yZWxpYic7XHJcbmltcG9ydCB7IExvZ2dlciB9IGZyb20gJ0BtYWdpYy14cGEvdXRpbHMnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuXHJcbi8qKlxyXG4gKiBAaWdub3JlXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBDb21tYW5kc0NvbGxlY3Rvck1hZ2ljU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBjb3VudDogbnVtYmVyID0gMDtcclxuICBwcml2YXRlIGNvbW1hbmRzOiBMaXN0PEd1aUNvbW1hbmQ+ID0gbmV3IExpc3Q8R3VpQ29tbWFuZD4oKTtcclxuICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIG1hZ2ljOiBFbmdpbmVNYWdpY1NlcnZpY2UpIHtcclxuICB9XHJcblxyXG4gIHN0YXJ0Q29sbGVjdGluZygpIHtcclxuICAgIHRoaXMuY291bnQrKztcclxuICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZURldlRvTG9nKFwiQ29tbWFuZHNDb2xsZWN0b3JNYWdpY1NlcnZpY2Uuc3RhcnRDb2xsZWN0aW5nKCkgLS0tIFwiICsgdGhpcy5jb3VudCk7XHJcblxyXG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uID09PSBudWxsKSB7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5tYWdpYy5yZWZyZXNoRG9tXHJcbiAgICAgICAgLnN1YnNjcmliZShjb21tYW5kID0+IHtcclxuICAgICAgICAgIHRoaXMuY29tbWFuZHMucHVzaChjb21tYW5kKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHN0b3BDb2xsZWN0aW5nKCkge1xyXG4gICAgdGhpcy5jb3VudC0tO1xyXG4gICAgTG9nZ2VyLkluc3RhbmNlLldyaXRlRGV2VG9Mb2coXCJDb21tYW5kc0NvbGxlY3Rvck1hZ2ljU2VydmljZS5zdG9wQ29sbGVjdGluZygpIC0tLSBcIiArIHRoaXMuY291bnQpO1xyXG5cclxuICAgIGlmICh0aGlzLmNvdW50ID09PSAwKSB7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEdldENvbW1hbmRzKHRhc2tJZDogc3RyaW5nKTogR3VpQ29tbWFuZFtdIHtcclxuICAgIGNvbnN0IGNvbW1hbmRzOiBHdWlDb21tYW5kW10gPSB0aGlzLmNvbW1hbmRzLmZpbHRlciggKGNvbW1hbmQ6IEd1aUNvbW1hbmQpID0+IGNvbW1hbmQuVGFza1RhZyA9PT0gdGFza0lkKTtcclxuICAgIGNvbW1hbmRzLmZvckVhY2goY29tbWFuZCA9PiB7IHRoaXMuY29tbWFuZHMuUmVtb3ZlKGNvbW1hbmQpOyB9KTtcclxuXHJcbiAgICByZXR1cm4gY29tbWFuZHM7XHJcbiAgfVxyXG59XHJcbiJdfQ==
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZHMtY29sbGVjdG9yLm1hZ2ljLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jb21tYW5kcy1jb2xsZWN0b3IubWFnaWMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTVELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7OztBQVMxQyxNQUFNLE9BQU8sNkJBQTZCO0lBS3hDLFlBQXNCLEtBQXlCO1FBQXpCLFVBQUssR0FBTCxLQUFLLENBQW9CO1FBSnZDLFVBQUssR0FBVyxDQUFDLENBQUM7UUFDbEIsYUFBUSxHQUFxQixJQUFJLElBQUksRUFBYyxDQUFDO1FBQ3BELGlCQUFZLEdBQWlCLElBQUksQ0FBQztJQUcxQyxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLE1BQU0sQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLHNEQUFzRCxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVuRyxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSSxFQUFFO1lBQzlCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVO2lCQUN0QyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzlCLENBQUMsQ0FBQyxDQUFDO1NBQ047SUFDSCxDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLE1BQU0sQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLHFEQUFxRCxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVsRyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssQ0FBQyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQWM7UUFDeEIsTUFBTSxRQUFRLEdBQWlCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFFLENBQUMsT0FBbUIsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sS0FBSyxNQUFNLENBQUMsQ0FBQztRQUMxRyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVoRSxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDOzswR0FuQ1UsNkJBQTZCO3FFQUE3Qiw2QkFBNkIsV0FBN0IsNkJBQTZCLG1CQUY1QixNQUFNO3VGQUVQLDZCQUE2QjtjQUh6QyxVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEVuZ2luZU1hZ2ljU2VydmljZSB9IGZyb20gJy4vZW5naW5lLm1hZ2ljLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBHdWlDb21tYW5kIH0gZnJvbSAnQG1hZ2ljLXhwYS9ndWknO1xyXG5pbXBvcnQgeyBMaXN0IH0gZnJvbSAnQG1hZ2ljLXhwYS9tc2NvcmVsaWInO1xyXG5pbXBvcnQgeyBMb2dnZXIgfSBmcm9tICdAbWFnaWMteHBhL3V0aWxzJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcblxyXG4vKipcclxuICogQGlnbm9yZVxyXG4gKi9cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29tbWFuZHNDb2xsZWN0b3JNYWdpY1NlcnZpY2Uge1xyXG4gIHByaXZhdGUgY291bnQ6IG51bWJlciA9IDA7XHJcbiAgcHJpdmF0ZSBjb21tYW5kczogTGlzdDxHdWlDb21tYW5kPiA9IG5ldyBMaXN0PEd1aUNvbW1hbmQ+KCk7XHJcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBtYWdpYzogRW5naW5lTWFnaWNTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICBzdGFydENvbGxlY3RpbmcoKSB7XHJcbiAgICB0aGlzLmNvdW50Kys7XHJcbiAgICBMb2dnZXIuSW5zdGFuY2UuV3JpdGVEZXZUb0xvZyhcIkNvbW1hbmRzQ29sbGVjdG9yTWFnaWNTZXJ2aWNlLnN0YXJ0Q29sbGVjdGluZygpIC0tLSBcIiArIHRoaXMuY291bnQpO1xyXG5cclxuICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbiA9PT0gbnVsbCkge1xyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMubWFnaWMucmVmcmVzaERvbVxyXG4gICAgICAgIC5zdWJzY3JpYmUoY29tbWFuZCA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNvbW1hbmRzLnB1c2goY29tbWFuZCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzdG9wQ29sbGVjdGluZygpIHtcclxuICAgIHRoaXMuY291bnQtLTtcclxuICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZURldlRvTG9nKFwiQ29tbWFuZHNDb2xsZWN0b3JNYWdpY1NlcnZpY2Uuc3RvcENvbGxlY3RpbmcoKSAtLS0gXCIgKyB0aGlzLmNvdW50KTtcclxuXHJcbiAgICBpZiAodGhpcy5jb3VudCA9PT0gMCkge1xyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBHZXRDb21tYW5kcyh0YXNrSWQ6IHN0cmluZyk6IEd1aUNvbW1hbmRbXSB7XHJcbiAgICBjb25zdCBjb21tYW5kczogR3VpQ29tbWFuZFtdID0gdGhpcy5jb21tYW5kcy5maWx0ZXIoIChjb21tYW5kOiBHdWlDb21tYW5kKSA9PiBjb21tYW5kLlRhc2tUYWcgPT09IHRhc2tJZCk7XHJcbiAgICBjb21tYW5kcy5mb3JFYWNoKGNvbW1hbmQgPT4geyB0aGlzLmNvbW1hbmRzLlJlbW92ZShjb21tYW5kKTsgfSk7XHJcblxyXG4gICAgcmV0dXJuIGNvbW1hbmRzO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,46 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class ComponentListMagicService {
4
+ constructor() {
5
+ this.components = new Map();
6
+ this.dialogs = new Map();
7
+ this.lazyLoadModulesMap = null;
8
+ }
9
+ getData(name, mustHaveData) {
10
+ let data = null;
11
+ let haveData = this.components.has(name);
12
+ if (!haveData && mustHaveData) {
13
+ console.log("Error: Component: " + name + " does not exist in components map");
14
+ }
15
+ if (haveData)
16
+ data = this.components.get(name);
17
+ return data;
18
+ }
19
+ getComponent(name, mustHaveData = true) {
20
+ let data = this.getData(name, mustHaveData);
21
+ return data ? data.component : null;
22
+ }
23
+ addComponents(componentList, modulRef) {
24
+ for (let key in componentList) {
25
+ let data = { moduleRef: modulRef, component: componentList[key] };
26
+ this.components.set(key, data);
27
+ }
28
+ }
29
+ getModuleRef(name) {
30
+ let data = this.getData(name, false);
31
+ return data ? data.moduleRef : null;
32
+ ;
33
+ }
34
+ getLazyLoadModuleData(name) {
35
+ return (this.lazyLoadModulesMap != null && this.lazyLoadModulesMap.hasOwnProperty(name)) ? this.lazyLoadModulesMap[name] : null;
36
+ }
37
+ }
38
+ ComponentListMagicService.ɵfac = function ComponentListMagicService_Factory(t) { return new (t || ComponentListMagicService)(); };
39
+ ComponentListMagicService.ɵprov = i0.ɵɵdefineInjectable({ token: ComponentListMagicService, factory: ComponentListMagicService.ɵfac, providedIn: 'root' });
40
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ComponentListMagicService, [{
41
+ type: Injectable,
42
+ args: [{
43
+ providedIn: 'root'
44
+ }]
45
+ }], null, null); })();
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWxpc3QubWFnaWMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3NlcnZpY2VzL2NvbXBvbmVudC1saXN0Lm1hZ2ljLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBZSxNQUFNLGVBQWUsQ0FBQzs7QUFtQnhELE1BQU0sT0FBTyx5QkFBeUI7SUFIdEM7UUFRRSxlQUFVLEdBQUcsSUFBSSxHQUFHLEVBQXdCLENBQUM7UUFJN0MsWUFBTyxHQUFNLElBQUksR0FBRyxFQUFjLENBQUM7UUFFbkMsdUJBQWtCLEdBQUcsSUFBSSxDQUFDO0tBeUQzQjtJQXZEQyxPQUFPLENBQUMsSUFBVyxFQUFHLFlBQXFCO1FBQ3pDLElBQUksSUFBSSxHQUFpQixJQUFJLENBQUM7UUFFOUIsSUFBSSxRQUFRLEdBQVksSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLFFBQVEsSUFBSSxZQUFZLEVBQUU7WUFDN0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLEdBQUcsbUNBQW1DLENBQUMsQ0FBQztTQUNoRjtRQUVELElBQUksUUFBUTtZQUNWLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUVsQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFRRCxZQUFZLENBQUMsSUFBVyxFQUFFLGVBQXVCLElBQUk7UUFDbkQsSUFBSSxJQUFJLEdBQWtCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFBO1FBQzFELE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDdEMsQ0FBQztJQUVELGFBQWEsQ0FBQyxhQUFpQixFQUFHLFFBQTBCO1FBQzNELEtBQUksSUFBSSxHQUFHLElBQUksYUFBYSxFQUFDO1lBQzNCLElBQUksSUFBSSxHQUFrQixFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUUsU0FBUyxFQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsRUFBQyxDQUFDO1lBQzdFLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBQyxJQUFJLENBQUMsQ0FBQztTQUM5QjtJQUNILENBQUM7SUFPRCxZQUFZLENBQUUsSUFBVztRQUN2QixJQUFJLElBQUksR0FBa0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUE7UUFDbkQsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUFBLENBQUM7SUFDdkMsQ0FBQztJQU9ELHFCQUFxQixDQUFFLElBQVc7UUFDaEMsT0FBTyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNsSSxDQUFDOztrR0E5RFUseUJBQXlCO2lFQUF6Qix5QkFBeUIsV0FBekIseUJBQXlCLG1CQUZ4QixNQUFNO3VGQUVQLHlCQUF5QjtjQUhyQyxVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBOZ01vZHVsZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9uZW50RGF0YSB7XHJcbiAgY29tcG9uZW50OmFueTtcclxuICBtb2R1bGVSZWY6TmdNb2R1bGVSZWY8YW55PjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBNb2R1bGVEYXRhIHtcclxuICBtb2R1bGVOYW1lOiBzdHJpbmc7XHJcbiAgbW9kdWxlUGF0aDogc3RyaW5nO1xyXG59XHJcblxyXG4vKipcclxuICogTWFuYWdlcyB0aGUgbGlzdCBvZiBjb21wb25lbnRzIGluIGEgcHJvamVjdCwgYW5kIHRoZSBwcm9qZWN0IHRpdGxlXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb21wb25lbnRMaXN0TWFnaWNTZXJ2aWNle1xyXG5cclxuICAvKipcclxuICAgKiBNYXAgb2YgcHJvamVjdCBjb21wb25lbnRzXHJcbiAgICovXHJcbiAgY29tcG9uZW50cyA9IG5ldyBNYXA8c3RyaW5nLENvbXBvbmVudERhdGE+KCk7XHJcbiAgLyoqXHJcbiAgICogTWFwIG9mIHByb2plY3QgZGlhbG9nc1xyXG4gICAqL1xyXG4gIGRpYWxvZ3MgICAgPSBuZXcgTWFwPHN0cmluZyxhbnk+KCk7XHJcblxyXG4gIGxhenlMb2FkTW9kdWxlc01hcCA9IG51bGw7XHJcblxyXG4gIGdldERhdGEobmFtZTpzdHJpbmcsICBtdXN0SGF2ZURhdGE6IGJvb2xlYW4pe1xyXG4gICAgbGV0IGRhdGEgOkNvbXBvbmVudERhdGE9IG51bGw7XHJcblxyXG4gICAgbGV0IGhhdmVEYXRhOiBib29sZWFuICA9dGhpcy5jb21wb25lbnRzLmhhcyhuYW1lKTtcclxuICAgIGlmICghaGF2ZURhdGEgJiYgbXVzdEhhdmVEYXRhKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiRXJyb3I6IENvbXBvbmVudDogXCIgKyBuYW1lICsgXCIgZG9lcyBub3QgZXhpc3QgaW4gY29tcG9uZW50cyBtYXBcIik7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGhhdmVEYXRhKVxyXG4gICAgICBkYXRhID0gdGhpcy5jb21wb25lbnRzLmdldChuYW1lKVxyXG5cclxuICAgIHJldHVybiBkYXRhO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybiBhIGNvbXBvbmVudCBhY2NvcmRpbmcgdG8gbmFtZVxyXG4gICAqIEBwYXJhbSBuYW1lIE5hbWUgb2YgcmVxdWVzdGVkIGNvbXBvbmVudFxyXG4gICAqIEByZXR1cm5zIFRoZSByZXF1ZXN0ZWQgY29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0Q29tcG9uZW50KG5hbWU6c3RyaW5nLCBtdXN0SGF2ZURhdGE6Ym9vbGVhbiA9IHRydWUpe1xyXG4gICAgbGV0IGRhdGE6IENvbXBvbmVudERhdGEgPSB0aGlzLmdldERhdGEobmFtZSwgbXVzdEhhdmVEYXRhKVxyXG4gICAgcmV0dXJuIGRhdGEgPyBkYXRhLmNvbXBvbmVudCA6IG51bGw7XHJcbiAgfVxyXG5cclxuICBhZGRDb21wb25lbnRzKGNvbXBvbmVudExpc3Q6YW55ICwgbW9kdWxSZWY/Ok5nTW9kdWxlUmVmPGFueT4pe1xyXG4gICBmb3IobGV0IGtleSBpbiBjb21wb25lbnRMaXN0KXtcclxuICAgICBsZXQgZGF0YSA6Q29tcG9uZW50RGF0YSA9IHttb2R1bGVSZWY6bW9kdWxSZWYsIGNvbXBvbmVudDpjb21wb25lbnRMaXN0W2tleV19O1xyXG4gICAgIHRoaXMuY29tcG9uZW50cy5zZXQoa2V5LGRhdGEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgKiBSZXR1cm4gYSBjb21wb25lbnQgYWNjb3JkaW5nIHRvIG5hbWVcclxuICAqIEBwYXJhbSBuYW1lIE5hbWUgb2YgcmVxdWVzdGVkIGNvbXBvbmVudFxyXG4gICogQHJldHVybnMgVGhlIHJlcXVlc3RlZCBjb21wb25lbnRcclxuICAqL1xyXG4gIGdldE1vZHVsZVJlZiAobmFtZTpzdHJpbmcpe1xyXG4gICAgbGV0IGRhdGE6IENvbXBvbmVudERhdGEgPSB0aGlzLmdldERhdGEobmFtZSwgZmFsc2UpXHJcbiAgICByZXR1cm4gZGF0YSA/IGRhdGEubW9kdWxlUmVmIDogbnVsbDs7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm4gdGhlIGxhenkgbG9hZCBtb2R1bGUgZGV0YWlscyBvZiB0aGUgc3BlY2lmaWVkIGNvbXBvbmVudFxyXG4gICAqIEBwYXJhbSBuYW1lOiBOYW1lIG9mIHJlcXVlc3RlZCBjb21wb25lbnRcclxuICAgKiBAcmV0dXJuczogbGF6eSBsb2FkIG1vZHVsZSBkZXRhaWxzXHJcbiAgICovXHJcbiAgZ2V0TGF6eUxvYWRNb2R1bGVEYXRhIChuYW1lOnN0cmluZyk6IE1vZHVsZURhdGEge1xyXG4gICAgcmV0dXJuICh0aGlzLmxhenlMb2FkTW9kdWxlc01hcCAhPSBudWxsICYmIHRoaXMubGF6eUxvYWRNb2R1bGVzTWFwLmhhc093blByb3BlcnR5KG5hbWUpKSA/IHRoaXMubGF6eUxvYWRNb2R1bGVzTWFwW25hbWVdIDogbnVsbDtcclxuICB9XHJcblxyXG4vKipcclxuICAgKiBQcm9qZWN0IHRpdGxlXHJcbiAgICovXHJcbiAgdGl0bGUgOiBzdHJpbmc7XHJcbn1cclxuIl19
@@ -15,7 +15,7 @@ export class ConfirmationComponentsMagicProvider {
15
15
  }
16
16
  ConfirmationComponentsMagicProvider.ɵfac = function ConfirmationComponentsMagicProvider_Factory(t) { return new (t || ConfirmationComponentsMagicProvider)(); };
17
17
  ConfirmationComponentsMagicProvider.ɵprov = i0.ɵɵdefineInjectable({ token: ConfirmationComponentsMagicProvider, factory: ConfirmationComponentsMagicProvider.ɵfac });
18
- (function () { i0.ɵsetClassMetadata(ConfirmationComponentsMagicProvider, [{
18
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ConfirmationComponentsMagicProvider, [{
19
19
  type: Injectable
20
20
  }], null, null); })();
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybWF0aW9uLmNvbXBvbmVudHMubWFnaWMucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jb25maXJtYXRpb24uY29tcG9uZW50cy5tYWdpYy5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDOztBQU9sRyxNQUFNLE9BQU8sbUNBQW1DO0lBTTlDLHdCQUF3QjtRQUN0QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFNRCxpQkFBaUI7UUFDZixPQUFPLG1CQUFtQixDQUFDO0lBQzdCLENBQUM7SUFNRCx1QkFBdUI7UUFDckIsT0FBTyw2QkFBNkIsQ0FBQztJQUN2QyxDQUFDOztzSEF4QlUsbUNBQW1DOzJFQUFuQyxtQ0FBbUMsV0FBbkMsbUNBQW1DO29DQUFuQyxtQ0FBbUM7Y0FEL0MsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBTZXJ2aWNlIG1hbmFnaW5nIG92ZXJsYXkgd2luZG93c1xyXG4gKiBUaGlzIGlzIE1hZ2ljJ3MgZGVmYXVsdCBwcm92aWRlclxyXG4gKi9cclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IE1hZ2ljQWxlcnRDb21wb25lbnQgfSBmcm9tICcuLi91aS9jb21wb25lbnRzL21hZ2ljLWFsZXJ0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hZ2ljQ29uZmlybWF0aW9uQm94Q29tcG9uZW50IH0gZnJvbSBcIi4uL3VpL2NvbXBvbmVudHMvbWFnaWMtY29uZmlybWF0aW9uLWJveC5jb21wb25lbnRcIjtcclxuXHJcbi8qKlxyXG4gKiBTZXJ2aWNlIG1hbmFnaW5nIGFsZXJ0IGFuZCBjb25maXJtYXRpb24gd2luZG93c1xyXG4gKiBUaGlzIGlzIE1hZ2ljJ3MgZGVmYXVsdCBwcm92aWRlclxyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQ29uZmlybWF0aW9uQ29tcG9uZW50c01hZ2ljUHJvdmlkZXIge1xyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm4gdHJ1ZSB3aGVuIHVzZSBkZWZhdWx0IGphdmFzY3JpcHQgYWxlcnQgYW5kIGNvbmZpcm1hdGlvbiBvciByZXR1cm4gZmFsc2UgdG8gcHJvdmlkZSBjdXN0b20gY29tcG9uZW50c1xyXG4gICAqICBAcmV0dXJucyB0cnVlIGlzIHdlIHdhbnQgdG8gdXNlIGRlZmF1bHQgamF2YXNjcmlwdCBhbGVydCBhbmQgY29uZmlybWF0aW9uXHJcbiAgICovXHJcbiAgc2hvd0RlZmF1bHRDb25maXJtYXRpb25zKCk6Ym9vbGVhbntcclxuICAgIHJldHVybiB0cnVlOyBcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgY29tcG9uZW50IHRoYXQgd2lsbCByZXBsYWNlIGphdmFzY3JpcHQgYWxlcnQuIFRoZSBjb21wb25lbnQgd2lsbCBiZSB1c2VkIG9ubHkgaWYgc2hvd0RlZmF1bHRDb25maXJtYXRpb25zID0gZmFsc2VcclxuICAgKiAgQHJldHVybnMgY29tcG9uZW50IHRoYXQgd2lsbCByZXBsYWNlIGphdmFzY3JpcHQgQWxlcnRcclxuICAgKi9cclxuICBnZXRBbGVydENvbXBvbmVudCgpIDogYW55IHtcclxuICAgIHJldHVybiBNYWdpY0FsZXJ0Q29tcG9uZW50O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyBjb21wb25lbnQgdGhhdCB3aWxsIHJlcGxhY2UgamF2YXNjcmlwdCBjb25maXJtYXRpb24gYm94LiBUaGUgY29tcG9uZW50IHdpbGwgYmUgdXNlZCBvbmx5IGlmIHNob3dEZWZhdWx0Q29uZmlybWF0aW9ucyA9IGZhbHNlXHJcbiAgICogIEByZXR1cm5zIGNvbXBvbmVudCB0aGF0IHdpbGwgcmVwbGFjZSBqYXZhc2NyaXB0IGNvbmZpcm1hdGlvbiBib3hcclxuICAgKi9cclxuICBnZXRDb25maXJtdGlvbkNvbXBvbmVudCgpIDogYW55IHtcclxuICAgIHJldHVybiBNYWdpY0NvbmZpcm1hdGlvbkJveENvbXBvbmVudDtcclxuICB9XHJcblxyXG5cclxuXHJcbn1cclxuIl19
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybWF0aW9uLmNvbXBvbmVudHMubWFnaWMucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jb25maXJtYXRpb24uY29tcG9uZW50cy5tYWdpYy5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDOztBQU9sRyxNQUFNLE9BQU8sbUNBQW1DO0lBTTlDLHdCQUF3QjtRQUN0QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFNRCxpQkFBaUI7UUFDZixPQUFPLG1CQUFtQixDQUFDO0lBQzdCLENBQUM7SUFNRCx1QkFBdUI7UUFDckIsT0FBTyw2QkFBNkIsQ0FBQztJQUN2QyxDQUFDOztzSEF4QlUsbUNBQW1DOzJFQUFuQyxtQ0FBbUMsV0FBbkMsbUNBQW1DO3VGQUFuQyxtQ0FBbUM7Y0FEL0MsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBTZXJ2aWNlIG1hbmFnaW5nIG92ZXJsYXkgd2luZG93c1xyXG4gKiBUaGlzIGlzIE1hZ2ljJ3MgZGVmYXVsdCBwcm92aWRlclxyXG4gKi9cclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IE1hZ2ljQWxlcnRDb21wb25lbnQgfSBmcm9tICcuLi91aS9jb21wb25lbnRzL21hZ2ljLWFsZXJ0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hZ2ljQ29uZmlybWF0aW9uQm94Q29tcG9uZW50IH0gZnJvbSBcIi4uL3VpL2NvbXBvbmVudHMvbWFnaWMtY29uZmlybWF0aW9uLWJveC5jb21wb25lbnRcIjtcclxuXHJcbi8qKlxyXG4gKiBTZXJ2aWNlIG1hbmFnaW5nIGFsZXJ0IGFuZCBjb25maXJtYXRpb24gd2luZG93c1xyXG4gKiBUaGlzIGlzIE1hZ2ljJ3MgZGVmYXVsdCBwcm92aWRlclxyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQ29uZmlybWF0aW9uQ29tcG9uZW50c01hZ2ljUHJvdmlkZXIge1xyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm4gdHJ1ZSB3aGVuIHVzZSBkZWZhdWx0IGphdmFzY3JpcHQgYWxlcnQgYW5kIGNvbmZpcm1hdGlvbiBvciByZXR1cm4gZmFsc2UgdG8gcHJvdmlkZSBjdXN0b20gY29tcG9uZW50c1xyXG4gICAqICBAcmV0dXJucyB0cnVlIGlzIHdlIHdhbnQgdG8gdXNlIGRlZmF1bHQgamF2YXNjcmlwdCBhbGVydCBhbmQgY29uZmlybWF0aW9uXHJcbiAgICovXHJcbiAgc2hvd0RlZmF1bHRDb25maXJtYXRpb25zKCk6Ym9vbGVhbntcclxuICAgIHJldHVybiB0cnVlOyBcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgY29tcG9uZW50IHRoYXQgd2lsbCByZXBsYWNlIGphdmFzY3JpcHQgYWxlcnQuIFRoZSBjb21wb25lbnQgd2lsbCBiZSB1c2VkIG9ubHkgaWYgc2hvd0RlZmF1bHRDb25maXJtYXRpb25zID0gZmFsc2VcclxuICAgKiAgQHJldHVybnMgY29tcG9uZW50IHRoYXQgd2lsbCByZXBsYWNlIGphdmFzY3JpcHQgQWxlcnRcclxuICAgKi9cclxuICBnZXRBbGVydENvbXBvbmVudCgpIDogYW55IHtcclxuICAgIHJldHVybiBNYWdpY0FsZXJ0Q29tcG9uZW50O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyBjb21wb25lbnQgdGhhdCB3aWxsIHJlcGxhY2UgamF2YXNjcmlwdCBjb25maXJtYXRpb24gYm94LiBUaGUgY29tcG9uZW50IHdpbGwgYmUgdXNlZCBvbmx5IGlmIHNob3dEZWZhdWx0Q29uZmlybWF0aW9ucyA9IGZhbHNlXHJcbiAgICogIEByZXR1cm5zIGNvbXBvbmVudCB0aGF0IHdpbGwgcmVwbGFjZSBqYXZhc2NyaXB0IGNvbmZpcm1hdGlvbiBib3hcclxuICAgKi9cclxuICBnZXRDb25maXJtdGlvbkNvbXBvbmVudCgpIDogYW55IHtcclxuICAgIHJldHVybiBNYWdpY0NvbmZpcm1hdGlvbkJveENvbXBvbmVudDtcclxuICB9XHJcblxyXG5cclxuXHJcbn1cclxuIl19
@@ -0,0 +1,82 @@
1
+ import { Injectable } from "@angular/core";
2
+ import { Subject } from "rxjs";
3
+ import { MagicBridge } from "@magic-xpa/engine";
4
+ import * as i0 from "@angular/core";
5
+ export class EngineMagicService {
6
+ constructor() {
7
+ this.magicBridge = MagicBridge;
8
+ this.isStub = false;
9
+ this.isLoggedIn = false;
10
+ this.refreshDom = new Subject();
11
+ this.interactiveCommands = new Subject();
12
+ }
13
+ startMagicEngine(httpClient) {
14
+ this.magicBridge.registerExecuteCommandsCallback(data => {
15
+ if (!this.isStub) {
16
+ try {
17
+ const list = data;
18
+ for (let c of list) {
19
+ this.refreshDom.next(c);
20
+ }
21
+ }
22
+ catch (e) {
23
+ console.dir(e);
24
+ console.log('magic engine not found');
25
+ console.log('moving to stub mode');
26
+ this.isStub = true;
27
+ }
28
+ }
29
+ });
30
+ this.magicBridge.registerInteractiveCallback(data => {
31
+ if (!this.isStub) {
32
+ this.interactiveCommands.next(data);
33
+ }
34
+ });
35
+ this.magicBridge.Initialize(httpClient);
36
+ }
37
+ async terminateMagic() {
38
+ await this.magicBridge.TerminateMagic();
39
+ }
40
+ insertEvent(guiEvent) {
41
+ if (!this.isStub)
42
+ this.magicBridge.insertEvent(guiEvent);
43
+ }
44
+ GetRangedValue(taskId, controlName, value) {
45
+ return this.magicBridge.GetRangedValue(taskId, controlName, value);
46
+ }
47
+ GetControlPictureMask(taskId, controlName) {
48
+ return this.magicBridge.GetControlPictureMask(taskId, controlName);
49
+ }
50
+ GetFormattedValue(taskId, controlName, value) {
51
+ return this.magicBridge.GetFormattedValue(taskId, controlName, value);
52
+ }
53
+ ValidateControlValue(taskId, controlName, value) {
54
+ return this.magicBridge.ValidateControlValue(taskId, controlName, value);
55
+ }
56
+ GetFldRanges(taskId, controlName) {
57
+ return this.magicBridge.GetFldRanges(taskId, controlName);
58
+ }
59
+ saveData(data) {
60
+ }
61
+ getIsLoggedIn() {
62
+ return this.isLoggedIn;
63
+ }
64
+ setIsLoggedIn(setIsLoggedIn) {
65
+ this.isLoggedIn = setIsLoggedIn;
66
+ }
67
+ TransCacheExists() {
68
+ return this.magicBridge.TransCacheExists();
69
+ }
70
+ TerminateContextUsingFetchAPI() {
71
+ this.magicBridge.TerminateContextUsingFetchAPI();
72
+ }
73
+ }
74
+ EngineMagicService.ɵfac = function EngineMagicService_Factory(t) { return new (t || EngineMagicService)(); };
75
+ EngineMagicService.ɵprov = i0.ɵɵdefineInjectable({ token: EngineMagicService, factory: EngineMagicService.ɵfac, providedIn: 'root' });
76
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(EngineMagicService, [{
77
+ type: Injectable,
78
+ args: [{
79
+ providedIn: 'root'
80
+ }]
81
+ }], null, null); })();
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5naW5lLm1hZ2ljLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9zZXJ2aWNlcy9lbmdpbmUubWFnaWMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFN0IsT0FBTyxFQUFZLFdBQVcsRUFBQyxNQUFNLG1CQUFtQixDQUFDOztBQVV6RCxNQUFNLE9BQU8sa0JBQWtCO0lBSC9CO1FBSUUsZ0JBQVcsR0FBRyxXQUFXLENBQUM7UUFDMUIsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUVmLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFFbkIsZUFBVSxHQUF3QixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ2hELHdCQUFtQixHQUE0QixJQUFJLE9BQU8sRUFBRSxDQUFDO0tBOEU5RDtJQTVFQyxnQkFBZ0IsQ0FBQyxVQUFzQjtRQUNyQyxJQUFJLENBQUMsV0FBVyxDQUFDLCtCQUErQixDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3RELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUNoQixJQUFJO29CQUNGLE1BQU0sSUFBSSxHQUFHLElBQW9CLENBQUM7b0JBQ2xDLEtBQUssSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFO3dCQUNsQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztxQkFDekI7aUJBQ0Y7Z0JBQ0QsT0FBTyxDQUFDLEVBQUU7b0JBQ1IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDZixPQUFPLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLENBQUM7b0JBQ3RDLE9BQU8sQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsQ0FBQztvQkFDbkMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7aUJBQ3BCO2FBQ0Y7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxXQUFXLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDbEQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNyQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELEtBQUssQ0FBQyxjQUFjO1FBQ2xCLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRUQsV0FBVyxDQUFDLFFBQW1CO1FBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTTtZQUNkLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxjQUFjLENBQUMsTUFBYyxFQUFFLFdBQW1CLEVBQUUsS0FBYTtRQUMvRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELHFCQUFxQixDQUFDLE1BQWMsRUFBRSxXQUFtQjtRQUN2RCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxNQUFjLEVBQUcsV0FBbUIsRUFBRSxLQUFVO1FBQ2hFLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxNQUFjLEVBQUUsV0FBbUIsRUFBRSxLQUFVO1FBQ2xFLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRCxZQUFZLENBQUMsTUFBYyxFQUFFLFdBQW1CO1FBQzlDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxRQUFRLENBQUMsSUFBVztJQUdwQixDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRUQsYUFBYSxDQUFDLGFBQXNCO1FBQ2xDLElBQUksQ0FBQyxVQUFVLEdBQUcsYUFBYSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQsNkJBQTZCO1FBQzNCLElBQUksQ0FBQyxXQUFXLENBQUMsNkJBQTZCLEVBQUUsQ0FBQztJQUNuRCxDQUFDOztvRkFwRlUsa0JBQWtCOzBEQUFsQixrQkFBa0IsV0FBbEIsa0JBQWtCLG1CQUZqQixNQUFNO3VGQUVQLGtCQUFrQjtjQUg5QixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7U3ViamVjdH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbmltcG9ydCB7SUd1aUV2ZW50LCBNYWdpY0JyaWRnZX0gZnJvbSBcIkBtYWdpYy14cGEvZW5naW5lXCI7XHJcbmltcG9ydCB7R3VpQ29tbWFuZCwgR3VpSW50ZXJhY3RpdmV9IGZyb20gXCJAbWFnaWMteHBhL2d1aVwiO1xyXG5pbXBvcnQge0h0dHBDbGllbnR9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5cclxuLyoqXHJcbiAqIEBpZ25vcmVcclxuICovXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEVuZ2luZU1hZ2ljU2VydmljZSB7XHJcbiAgbWFnaWNCcmlkZ2UgPSBNYWdpY0JyaWRnZTtcclxuICBpc1N0dWIgPSBmYWxzZTtcclxuICAvLyB0cnVlIHdoZW4gdXNlciBpcyBsb2dnZWQgaW4gbWFnaWNcclxuICBpc0xvZ2dlZEluID0gZmFsc2U7XHJcbiAgLy9UT0RPIC0gdW5yZWdpc3RlclxyXG4gIHJlZnJlc2hEb206IFN1YmplY3Q8R3VpQ29tbWFuZD4gPSBuZXcgU3ViamVjdCgpO1xyXG4gIGludGVyYWN0aXZlQ29tbWFuZHM6IFN1YmplY3Q8R3VpSW50ZXJhY3RpdmU+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgc3RhcnRNYWdpY0VuZ2luZShodHRwQ2xpZW50OiBIdHRwQ2xpZW50KSB7XHJcbiAgICB0aGlzLm1hZ2ljQnJpZGdlLnJlZ2lzdGVyRXhlY3V0ZUNvbW1hbmRzQ2FsbGJhY2soZGF0YSA9PiB7XHJcbiAgICAgIGlmICghdGhpcy5pc1N0dWIpIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgY29uc3QgbGlzdCA9IGRhdGEgYXMgR3VpQ29tbWFuZFtdO1xyXG4gICAgICAgICAgZm9yIChsZXQgYyBvZiBsaXN0KSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaERvbS5uZXh0KGMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgY29uc29sZS5kaXIoZSk7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnbWFnaWMgZW5naW5lIG5vdCBmb3VuZCcpO1xyXG4gICAgICAgICAgY29uc29sZS5sb2coJ21vdmluZyB0byBzdHViIG1vZGUnKTtcclxuICAgICAgICAgIHRoaXMuaXNTdHViID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMubWFnaWNCcmlkZ2UucmVnaXN0ZXJJbnRlcmFjdGl2ZUNhbGxiYWNrKGRhdGEgPT4ge1xyXG4gICAgICBpZiAoIXRoaXMuaXNTdHViKSB7XHJcbiAgICAgICAgICB0aGlzLmludGVyYWN0aXZlQ29tbWFuZHMubmV4dChkYXRhKTtcclxuICAgICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLm1hZ2ljQnJpZGdlLkluaXRpYWxpemUoaHR0cENsaWVudCk7XHJcbiAgfVxyXG5cclxuICBhc3luYyB0ZXJtaW5hdGVNYWdpYygpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGF3YWl0IHRoaXMubWFnaWNCcmlkZ2UuVGVybWluYXRlTWFnaWMoKTtcclxuICB9XHJcblxyXG4gIGluc2VydEV2ZW50KGd1aUV2ZW50OiBJR3VpRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5pc1N0dWIpXHJcbiAgICAgIHRoaXMubWFnaWNCcmlkZ2UuaW5zZXJ0RXZlbnQoZ3VpRXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgR2V0UmFuZ2VkVmFsdWUodGFza0lkOiBzdHJpbmcsIGNvbnRyb2xOYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMubWFnaWNCcmlkZ2UuR2V0UmFuZ2VkVmFsdWUodGFza0lkLCBjb250cm9sTmFtZSwgdmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgR2V0Q29udHJvbFBpY3R1cmVNYXNrKHRhc2tJZDogc3RyaW5nLCBjb250cm9sTmFtZTogc3RyaW5nKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLm1hZ2ljQnJpZGdlLkdldENvbnRyb2xQaWN0dXJlTWFzayh0YXNrSWQsIGNvbnRyb2xOYW1lKTtcclxuICB9XHJcblxyXG4gIEdldEZvcm1hdHRlZFZhbHVlKHRhc2tJZDogc3RyaW5nLCAgY29udHJvbE5hbWU6IHN0cmluZywgdmFsdWU6IGFueSk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy5tYWdpY0JyaWRnZS5HZXRGb3JtYXR0ZWRWYWx1ZSh0YXNrSWQsIGNvbnRyb2xOYW1lLCB2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBWYWxpZGF0ZUNvbnRyb2xWYWx1ZSh0YXNrSWQ6IHN0cmluZywgY29udHJvbE5hbWU6IHN0cmluZywgdmFsdWU6IGFueSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5tYWdpY0JyaWRnZS5WYWxpZGF0ZUNvbnRyb2xWYWx1ZSh0YXNrSWQsIGNvbnRyb2xOYW1lLCB2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBHZXRGbGRSYW5nZXModGFza0lkOiBzdHJpbmcsIGNvbnRyb2xOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMubWFnaWNCcmlkZ2UuR2V0RmxkUmFuZ2VzKHRhc2tJZCwgY29udHJvbE5hbWUpO1xyXG4gIH1cclxuXHJcbiAgc2F2ZURhdGEoZGF0YTpzdHJpbmcpXHJcbiAge1xyXG4gICAgLy90aGlzLm1hZ2ljQnJpZGdlLnNhdmVEYXRhKGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0SXNMb2dnZWRJbigpOmJvb2xlYW57XHJcbiAgICByZXR1cm4gdGhpcy5pc0xvZ2dlZEluO1xyXG4gIH1cclxuXHJcbiAgc2V0SXNMb2dnZWRJbihzZXRJc0xvZ2dlZEluOiBib29sZWFuKXtcclxuICAgIHRoaXMuaXNMb2dnZWRJbiA9IHNldElzTG9nZ2VkSW47XHJcbiAgfVxyXG5cclxuICBUcmFuc0NhY2hlRXhpc3RzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMubWFnaWNCcmlkZ2UuVHJhbnNDYWNoZUV4aXN0cygpO1xyXG4gIH1cclxuXHJcbiAgVGVybWluYXRlQ29udGV4dFVzaW5nRmV0Y2hBUEkoKTogdm9pZCB7XHJcbiAgICB0aGlzLm1hZ2ljQnJpZGdlLlRlcm1pbmF0ZUNvbnRleHRVc2luZ0ZldGNoQVBJKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -7,7 +7,7 @@ export class ExitMagicService {
7
7
  }
8
8
  ExitMagicService.ɵfac = function ExitMagicService_Factory(t) { return new (t || ExitMagicService)(); };
9
9
  ExitMagicService.ɵprov = i0.ɵɵdefineInjectable({ token: ExitMagicService, factory: ExitMagicService.ɵfac });
10
- (function () { i0.ɵsetClassMetadata(ExitMagicService, [{
10
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ExitMagicService, [{
11
11
  type: Injectable
12
12
  }], null, null); })();
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhpdC5tYWdpYy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvc2VydmljZXMvZXhpdC5tYWdpYy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTTNDLE1BQU0sT0FBTyxnQkFBZ0I7SUFNM0IsU0FBUztRQUNQLE9BQU8sQ0FBQyxHQUFHLENBQUMsOEJBQThCLENBQUMsQ0FBQztJQUM5QyxDQUFDOztnRkFSVSxnQkFBZ0I7d0RBQWhCLGdCQUFnQixXQUFoQixnQkFBZ0I7b0NBQWhCLGdCQUFnQjtjQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuLyoqXHJcbiAqIFRoaXMgc2VydmljZSBzdXBwb3J0cyBjdXN0b20gYWN0aW9ucyBvbiBtYWdpYyBleGl0XHJcbiAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBFeGl0TWFnaWNTZXJ2aWNlIHtcclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIE92ZXJyaWRlIHRoaXMgbWV0aG9kIHRvIGltcGxlbWVudCBjdXN0b20gbG9naWMgb24gbWFnaWMgZXhpdFxyXG4gICAqL1xyXG4gIGV4aXRNYWdpYygpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiTWFnaWMgYXBwbGljYXRpb24gdGVybWluYXRlZFwiKTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhpdC5tYWdpYy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvc2VydmljZXMvZXhpdC5tYWdpYy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTTNDLE1BQU0sT0FBTyxnQkFBZ0I7SUFNM0IsU0FBUztRQUNQLE9BQU8sQ0FBQyxHQUFHLENBQUMsOEJBQThCLENBQUMsQ0FBQztJQUM5QyxDQUFDOztnRkFSVSxnQkFBZ0I7d0RBQWhCLGdCQUFnQixXQUFoQixnQkFBZ0I7dUZBQWhCLGdCQUFnQjtjQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuLyoqXHJcbiAqIFRoaXMgc2VydmljZSBzdXBwb3J0cyBjdXN0b20gYWN0aW9ucyBvbiBtYWdpYyBleGl0XHJcbiAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBFeGl0TWFnaWNTZXJ2aWNlIHtcclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIE92ZXJyaWRlIHRoaXMgbWV0aG9kIHRvIGltcGxlbWVudCBjdXN0b20gbG9naWMgb24gbWFnaWMgZXhpdFxyXG4gICAqL1xyXG4gIGV4aXRNYWdpYygpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiTWFnaWMgYXBwbGljYXRpb24gdGVybWluYXRlZFwiKTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
@@ -0,0 +1,16 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class MagicLazyLoaderService {
4
+ Load(path) {
5
+ return Promise.reject('error in loading module :' + path);
6
+ }
7
+ }
8
+ MagicLazyLoaderService.ɵfac = function MagicLazyLoaderService_Factory(t) { return new (t || MagicLazyLoaderService)(); };
9
+ MagicLazyLoaderService.ɵprov = i0.ɵɵdefineInjectable({ token: MagicLazyLoaderService, factory: MagicLazyLoaderService.ɵfac, providedIn: 'root' });
10
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicLazyLoaderService, [{
11
+ type: Injectable,
12
+ args: [{
13
+ providedIn: 'root'
14
+ }]
15
+ }], null, null); })();
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFnaWMubGF6eS5sb2FkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3NlcnZpY2VzL21hZ2ljLmxhenkubG9hZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLM0MsTUFBTSxPQUFPLHNCQUFzQjtJQUNqQyxJQUFJLENBQUMsSUFBWTtRQUNmLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQywyQkFBMkIsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUM1RCxDQUFDOzs0RkFIVSxzQkFBc0I7OERBQXRCLHNCQUFzQixXQUF0QixzQkFBc0IsbUJBRnBCLE1BQU07dUZBRVIsc0JBQXNCO2NBSGxDLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUcsTUFBTTthQUNwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluIDogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYWdpY0xhenlMb2FkZXJTZXJ2aWNlIHtcclxuICBMb2FkKHBhdGg6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XHJcbiAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoJ2Vycm9yIGluIGxvYWRpbmcgbW9kdWxlIDonICsgcGF0aCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -25,7 +25,7 @@ export class MagicServices {
25
25
  }
26
26
  MagicServices.ɵfac = function MagicServices_Factory(t) { return new (t || MagicServices)(i0.ɵɵinject(i1.TaskMagicService), i0.ɵɵinject(i2.SubformMagicService), i0.ɵɵinject(i3.TableMagicService), i0.ɵɵinject(i4.TitleMagicService), i0.ɵɵinject(i5.AccessorMagicService)); };
27
27
  MagicServices.ɵprov = i0.ɵɵdefineInjectable({ token: MagicServices, factory: MagicServices.ɵfac });
28
- (function () { i0.ɵsetClassMetadata(MagicServices, [{
28
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicServices, [{
29
29
  type: Injectable
30
30
  }], function () { return [{ type: i1.TaskMagicService }, { type: i2.SubformMagicService }, { type: i3.TableMagicService }, { type: i4.TitleMagicService }, { type: i5.AccessorMagicService }]; }, null); })();
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFnaWMuc2VydmljZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9zZXJ2aWNlcy9tYWdpYy5zZXJ2aWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7O0FBT2hFLE1BQU0sT0FBTyxhQUFhO0lBSXhCLFlBQ29CLElBQXNCLEVBQ3RCLGNBQW1DLEVBQ25DLFlBQStCLEVBQy9CLFlBQStCLEVBQy9CLGlCQUF1QztRQUp2QyxTQUFJLEdBQUosSUFBSSxDQUFrQjtRQUN0QixtQkFBYyxHQUFkLGNBQWMsQ0FBcUI7UUFDbkMsaUJBQVksR0FBWixZQUFZLENBQW1CO1FBQy9CLGlCQUFZLEdBQVosWUFBWSxDQUFtQjtRQUMvQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQXNCO1FBR3pELElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxjQUFjLENBQUM7UUFDdkMsSUFBSSxDQUFDLGNBQWMsR0FBRyxZQUFZLENBQUM7UUFDbkMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDO0lBQzdDLENBQUM7OzBFQWhCVSxhQUFhO3FEQUFiLGFBQWEsV0FBYixhQUFhO29DQUFiLGFBQWE7Y0FEekIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuaW1wb3J0IHsgU3ViZm9ybU1hZ2ljU2VydmljZSB9IGZyb20gXCIuL3N1YmZvcm0ubWFnaWMuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBUYWJsZU1hZ2ljU2VydmljZSB9IGZyb20gXCIuL3RhYmxlLm1hZ2ljLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVGFza01hZ2ljU2VydmljZSB9IGZyb20gXCIuL3Rhc2subWFnaWNzLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVGl0bGVNYWdpY1NlcnZpY2UgfSBmcm9tIFwiLi90aXRsZS5tYWdpYy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEFjY2Vzc29yTWFnaWNTZXJ2aWNlIH0gZnJvbSBcIi4vYWNjZXNzb3IubWFnaWMuc2VydmljZVwiO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBDZW50cmFsIHBsYWNlIGZvciBhZGRpbmcgdGhlIE1hZ2ljIHNlcnZpY2VzXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBNYWdpY1NlcnZpY2Vze1xyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgICAgICAgICAgICAgcHVibGljIHRhc2s6IFRhc2tNYWdpY1NlcnZpY2UsXHJcbiAgICAgICAgICAgICAgIHB1YmxpYyBzdWJmb3JtU2VydmljZTogU3ViZm9ybU1hZ2ljU2VydmljZSxcclxuICAgICAgICAgICAgICAgcHVibGljIHRhYmxlU2VydmljZTogVGFibGVNYWdpY1NlcnZpY2UsXHJcbiAgICAgICAgICAgICAgIHB1YmxpYyB0aXRsZVNlcnZpY2U6IFRpdGxlTWFnaWNTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICBwdWJsaWMgbWdBY2Nlc3NvclNlcnZpY2U6IEFjY2Vzc29yTWFnaWNTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICkge1xyXG5cclxuICAgIHRhc2sudGFibGVTZXJ2aWNlID0gdGFibGVTZXJ2aWNlO1xyXG4gICAgdGFzay5tZ1N1YmZvcm1TZXJ2aWNlID0gc3ViZm9ybVNlcnZpY2U7XHJcbiAgICB0YXNrLm1nVGl0bGVTZXJ2aWNlID0gdGl0bGVTZXJ2aWNlO1xyXG4gICAgdGFzay5tZ0FjY2Vzc29yU2VydmljZSA9IG1nQWNjZXNzb3JTZXJ2aWNlO1xyXG4gIH1cclxuXHJcblxyXG59XHJcbiJdfQ==
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFnaWMuc2VydmljZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9zZXJ2aWNlcy9tYWdpYy5zZXJ2aWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7O0FBT2hFLE1BQU0sT0FBTyxhQUFhO0lBSXhCLFlBQ29CLElBQXNCLEVBQ3RCLGNBQW1DLEVBQ25DLFlBQStCLEVBQy9CLFlBQStCLEVBQy9CLGlCQUF1QztRQUp2QyxTQUFJLEdBQUosSUFBSSxDQUFrQjtRQUN0QixtQkFBYyxHQUFkLGNBQWMsQ0FBcUI7UUFDbkMsaUJBQVksR0FBWixZQUFZLENBQW1CO1FBQy9CLGlCQUFZLEdBQVosWUFBWSxDQUFtQjtRQUMvQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQXNCO1FBR3pELElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxjQUFjLENBQUM7UUFDdkMsSUFBSSxDQUFDLGNBQWMsR0FBRyxZQUFZLENBQUM7UUFDbkMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDO0lBQzdDLENBQUM7OzBFQWhCVSxhQUFhO3FEQUFiLGFBQWEsV0FBYixhQUFhO3VGQUFiLGFBQWE7Y0FEekIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuaW1wb3J0IHsgU3ViZm9ybU1hZ2ljU2VydmljZSB9IGZyb20gXCIuL3N1YmZvcm0ubWFnaWMuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBUYWJsZU1hZ2ljU2VydmljZSB9IGZyb20gXCIuL3RhYmxlLm1hZ2ljLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVGFza01hZ2ljU2VydmljZSB9IGZyb20gXCIuL3Rhc2subWFnaWNzLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVGl0bGVNYWdpY1NlcnZpY2UgfSBmcm9tIFwiLi90aXRsZS5tYWdpYy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEFjY2Vzc29yTWFnaWNTZXJ2aWNlIH0gZnJvbSBcIi4vYWNjZXNzb3IubWFnaWMuc2VydmljZVwiO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBDZW50cmFsIHBsYWNlIGZvciBhZGRpbmcgdGhlIE1hZ2ljIHNlcnZpY2VzXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBNYWdpY1NlcnZpY2Vze1xyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgICAgICAgICAgICAgcHVibGljIHRhc2s6IFRhc2tNYWdpY1NlcnZpY2UsXHJcbiAgICAgICAgICAgICAgIHB1YmxpYyBzdWJmb3JtU2VydmljZTogU3ViZm9ybU1hZ2ljU2VydmljZSxcclxuICAgICAgICAgICAgICAgcHVibGljIHRhYmxlU2VydmljZTogVGFibGVNYWdpY1NlcnZpY2UsXHJcbiAgICAgICAgICAgICAgIHB1YmxpYyB0aXRsZVNlcnZpY2U6IFRpdGxlTWFnaWNTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICBwdWJsaWMgbWdBY2Nlc3NvclNlcnZpY2U6IEFjY2Vzc29yTWFnaWNTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICkge1xyXG5cclxuICAgIHRhc2sudGFibGVTZXJ2aWNlID0gdGFibGVTZXJ2aWNlO1xyXG4gICAgdGFzay5tZ1N1YmZvcm1TZXJ2aWNlID0gc3ViZm9ybVNlcnZpY2U7XHJcbiAgICB0YXNrLm1nVGl0bGVTZXJ2aWNlID0gdGl0bGVTZXJ2aWNlO1xyXG4gICAgdGFzay5tZ0FjY2Vzc29yU2VydmljZSA9IG1nQWNjZXNzb3JTZXJ2aWNlO1xyXG4gIH1cclxuXHJcblxyXG59XHJcbiJdfQ==
@@ -99,7 +99,7 @@ export class MgDateAdapter extends NativeDateAdapter {
99
99
  }
100
100
  MgDateAdapter.ɵfac = function MgDateAdapter_Factory(t) { return new (t || MgDateAdapter)(i0.ɵɵinject(i1.Platform), i0.ɵɵinject(i2.TaskMagicService)); };
101
101
  MgDateAdapter.ɵprov = i0.ɵɵdefineInjectable({ token: MgDateAdapter, factory: MgDateAdapter.ɵfac });
102
- (function () { i0.ɵsetClassMetadata(MgDateAdapter, [{
102
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MgDateAdapter, [{
103
103
  type: Injectable
104
104
  }], function () { return [{ type: i1.Platform }, { type: i2.TaskMagicService }]; }, null); })();
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWctZGF0ZS1hZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvc2VydmljZXMvbWctZGF0ZS1hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDdkQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7OztBQUV6QyxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUc7SUFDeEIsS0FBSyxFQUFFLEVBQUMsU0FBUyxFQUFFLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUMsRUFBQztJQUNyRSxPQUFPLEVBQUU7UUFDUCxTQUFTLEVBQUUsT0FBTztRQUNsQixjQUFjLEVBQUUsRUFBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUM7UUFDakQsYUFBYSxFQUFFLEVBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUM7UUFDL0Qsa0JBQWtCLEVBQUUsRUFBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUM7S0FDckQ7Q0FDRixDQUFDO0FBSUYsTUFBTSxPQUFPLGFBQWMsU0FBUSxpQkFBaUI7SUFFbEQsWUFBcUIsUUFBa0IsRUFBWSxJQUFzQjtRQUN2RSxLQUFLLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRE4sYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFZ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SUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJO1lBQzdELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztRQUM3QyxJQUFJLGFBQWEsS0FBSyxPQUFPLEVBQUU7WUFDN0IsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUk7Z0JBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDO1lBQzVCLE9BQU8sVUFBVSxDQUFDLElBQUksRUFBQyxJQUFJLENBQUMsT0FBTyxFQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNsRDthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDNUI7SUFDSCxDQUFDOzswRUEvRVUsYUFBYTtxREFBYixhQUFhLFdBQWIsYUFBYTtvQ0FBYixhQUFhO2NBRHpCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05hdGl2ZURhdGVBZGFwdGVyfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuaW1wb3J0IHsgZm9ybWF0RGF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFBsYXRmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BsYXRmb3JtJztcclxuaW1wb3J0IHtUYXNrTWFnaWNTZXJ2aWNlfSBmcm9tIFwiLi90YXNrLm1hZ2ljcy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBNR19GT1JNQVRTID0ge1xyXG4gIHBhcnNlOiB7ZGF0ZUlucHV0OiB7bW9udGg6ICdzaG9ydCcsIHllYXI6ICdudW1lcmljJywgZGF5OiAnbnVtZXJpYyd9fSxcclxuICBkaXNwbGF5OiB7XHJcbiAgICBkYXRlSW5wdXQ6ICdpbnB1dCcsXHJcbiAgICBtb250aFllYXJMYWJlbDoge3llYXI6ICdudW1lcmljJywgbW9udGg6ICdzaG9ydCd9LFxyXG4gICAgZGF0ZUExMXlMYWJlbDoge3llYXI6ICdudW1lcmljJywgbW9udGg6ICdsb25nJywgZGF5OiAnbnVtZXJpYyd9LFxyXG4gICAgbW9udGhZZWFyQTExeUxhYmVsOiB7eWVhcjogJ251bWVyaWMnLCBtb250aDogJ2xvbmcnfVxyXG4gIH1cclxufTtcclxuXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBNZ0RhdGVBZGFwdGVyIGV4dGVuZHMgTmF0aXZlRGF0ZUFkYXB0ZXIge1xyXG4gIHB1YmxpYyBtZ2R0Zm10OiBzdHJpbmcgPSBudWxsO1xyXG4gIGNvbnN0cnVjdG9yICggcHVibGljIHBsYXRmb3JtOiBQbGF0Zm9ybSAscHJvdGVjdGVkIHRhc2s6IFRhc2tNYWdpY1NlcnZpY2UpIHtcclxuICAgIHN1cGVyKCdlbi1VUycsIHBsYXRmb3JtKTtcclxuICB9XHJcblxyXG4gIHBhcnNlICh2YWx1ZTogYW55KSA6IERhdGUgfCBudWxsXHJcbiAge1xyXG4gICAgbGV0IHZhbHVlU3RyOiBzdHJpbmcgPSB2YWx1ZTtcclxuICAgIGxldCBkYXRlID0gMCwgbW9udGggPSAwLCB5ZWFyID0gMCwgbW9udGhTdHIgPSBudWxsO1xyXG4gICAgbGV0IG1nRGF0ZU1hc2s6IHN0cmluZyA9IHRoaXMubWdkdGZtdDtcclxuICAgIGxldCBzZXAgPSB2YWx1ZVN0ci5pbmRleE9mKCcvJykgPiAwID8gJy8nIDogJy0nO1xyXG5cclxuICAgIGlmICh2YWx1ZSA9PSBudWxsIHx8IHZhbHVlID09IFwiXCIpIHJldHVybiBudWxsO1xyXG4gICAgaWYgKHRoaXMubWdkdGZtdCA9PSBudWxsICYmIHRoaXMudGFzay5tZ0lucHV0RGF0ZUZvcm1hdCAhPSBudWxsKVxyXG4gICAgICB0aGlzLm1nZHRmbXQgPSB0aGlzLnRhc2subWdJbnB1dERhdGVGb3JtYXQ7XHJcbiAgICBpZiAoKHRoaXMubWdkdGZtdC5pbmRleE9mKCdNTU0nKSA+IDApIHx8ICh0aGlzLm1nZHRmbXQuaW5kZXhPZignTU1NTScpID4gMCkpXHJcbiAgICAgIHJldHVybiBuZXcgRGF0ZSh2YWx1ZSk7XHJcblxyXG4gICAgbGV0IHZhbGxlbiA9IHZhbHVlU3RyLmxlbmd0aDtcclxuICAgIGlmIChtZ0RhdGVNYXNrICE9PSBudWxsKSB7XHJcbiAgICAgIGZvciAobGV0IGk9MCwgaj0wOyBpIDwgbWdEYXRlTWFzay5sZW5ndGg7KSB7XHJcbiAgICAgICAgc3dpdGNoIChtZ0RhdGVNYXNrW2ldKSB7XHJcbiAgICAgICAgICBjYXNlICdkJzoge1xyXG4gICAgICAgICAgICAgIGxldCB0bXBTdHI6IHN0cmluZztcclxuICAgICAgICAgICAgICBsZXQgbGVuID0gdmFsdWVTdHIuaW5kZXhPZihzZXAsIDApO1xyXG4gICAgICAgICAgICAgIHRtcFN0ciA9IGxlbiA9PSAtMSA/IHZhbHVlU3RyIDogdmFsdWVTdHIuc3Vic3RyKDAsIGxlbik7XHJcbiAgICAgICAgICAgICAgaWYgKGxlbiA+IC0xKVxyXG4gICAgICAgICAgICAgICAgdmFsdWVTdHIgPSB2YWx1ZVN0ci5zdWJzdHIobGVuKzEpO1xyXG4gICAgICAgICAgICAgIGZvciAoO21nRGF0ZU1hc2tbaV0gPT0gJ2QnOyBpKyspO1xyXG4gICAgICAgICAgICAgIGRhdGUgPSAoTnVtYmVyKSh0bXBTdHIpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgJ00nOiB7XHJcbiAgICAgICAgICAgICAgbGV0IHRtcFN0cjogc3RyaW5nO1xyXG4gICAgICAgICAgICAgIGxldCBsZW4gPSB2YWx1ZVN0ci5pbmRleE9mKHNlcCwgMCk7XHJcbiAgICAgICAgICAgICAgdG1wU3RyID0gbGVuID09IC0xID8gdmFsdWVTdHIgOiB2YWx1ZVN0ci5zdWJzdHIoMCwgbGVuKTtcclxuXHJcbiAgICAgICAgICAgICAgaWYgKGxlbiA+IC0xKVxyXG4gICAgICAgICAgICAgICAgdmFsdWVTdHIgPSB2YWx1ZVN0ci5zdWJzdHIobGVuKzEpO1xyXG5cclxuICAgICAgICAgICAgICBmb3IgKDsgbWdEYXRlTWFza1tpXSA9PSAnTScgO2krKyk7XHJcbiAgICAgICAgICAgICAgbW9udGggPSAoTnVtYmVyKSh0bXBTdHIpID4gMCA/IChOdW1iZXIpKHRtcFN0ciktIDEgOiAwO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgJ3knOiB7XHJcbiAgICAgICAgICAgICAgbGV0IHRtcFN0cjtcclxuICAgICAgICAgICAgICBsZXQgbGVuID0gdmFsdWVTdHIuaW5kZXhPZihzZXAsIDApO1xyXG4gICAgICAgICAgICAgIHRtcFN0ciA9IGxlbiA9PSAtMSA/IHZhbHVlU3RyIDogdmFsdWVTdHIuc3Vic3RyKDAsIGxlbik7XHJcbiAgICAgICAgICAgICAgaWYgKGxlbiA+IC0xKSB7XHJcbiAgICAgICAgICAgICAgICB2YWx1ZVN0ciA9IHZhbHVlU3RyLnN1YnN0cihsZW4gKyAxKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgZm9yICg7IG1nRGF0ZU1hc2tbaV0gPT0gJ3knIDtpKyspO1xyXG4gICAgICAgICAgICAgIHllYXIgPSAoTnVtYmVyKSh0bXBTdHIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgaSsrO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChtb250aCA9PSAwICYmIHllYXIgPT0gMCAmJiBkYXRlID09IDApXHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgIHJldHVybiBuZXcgRGF0ZShEYXRlLlVUQyh5ZWFyLCBtb250aCwgZGF0ZSkpO1xyXG4gICAgfVxyXG5cclxufVxyXG5cclxuZm9ybWF0KGRhdGU6IERhdGUsIGRpc3BsYXlGb3JtYXQ6IE9iamVjdCk6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy5tZ2R0Zm10ID09IG51bGwgJiYgdGhpcy50YXNrLm1nSW5wdXREYXRlRm9ybWF0ICE9IG51bGwpXHJcbiAgICAgIHRoaXMubWdkdGZtdCA9IHRoaXMudGFzay5tZ0lucHV0RGF0ZUZvcm1hdDtcclxuICAgIGlmIChkaXNwbGF5Rm9ybWF0ID09PSAnaW5wdXQnKSB7XHJcbiAgICAgIGlmICh0aGlzLm1nZHRmbXQgPT0gbnVsbClcclxuICAgICAgICB0aGlzLm1nZHRmbXQgPSAnTS9kL3l5eXknOyAvL2RlZmF1bHQgZm9ybWF0XHJcbiAgICAgIHJldHVybiBmb3JtYXREYXRlKGRhdGUsdGhpcy5tZ2R0Zm10LHRoaXMubG9jYWxlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBkYXRlLnRvRGF0ZVN0cmluZygpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuIl19
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWctZGF0ZS1hZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvc2VydmljZXMvbWctZGF0ZS1hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDdkQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7OztBQUV6QyxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUc7SUFDeEIsS0FBSyxFQUFFLEVBQUMsU0FBUyxFQUFFLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUMsRUFBQztJQUNyRSxPQUFPLEVBQUU7UUFDUCxTQUFTLEVBQUUsT0FBTztRQUNsQixjQUFjLEVBQUUsRUFBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUM7UUFDakQsYUFBYSxFQUFFLEVBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUM7UUFDL0Qsa0JBQWtCLEVBQUUsRUFBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUM7S0FDckQ7Q0FDRixDQUFDO0FBSUYsTUFBTSxPQUFPLGFBQWMsU0FBUSxpQkFBaUI7SUFFbEQsWUFBcUIsUUFBa0IsRUFBWSxJQUFzQjtRQUN2RSxLQUFLLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRE4sYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFZ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SUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJO1lBQzdELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztRQUM3QyxJQUFJLGFBQWEsS0FBSyxPQUFPLEVBQUU7WUFDN0IsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUk7Z0JBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDO1lBQzVCLE9BQU8sVUFBVSxDQUFDLElBQUksRUFBQyxJQUFJLENBQUMsT0FBTyxFQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNsRDthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDNUI7SUFDSCxDQUFDOzswRUEvRVUsYUFBYTtxREFBYixhQUFhLFdBQWIsYUFBYTt1RkFBYixhQUFhO2NBRHpCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05hdGl2ZURhdGVBZGFwdGVyfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuaW1wb3J0IHsgZm9ybWF0RGF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFBsYXRmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BsYXRmb3JtJztcclxuaW1wb3J0IHtUYXNrTWFnaWNTZXJ2aWNlfSBmcm9tIFwiLi90YXNrLm1hZ2ljcy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBNR19GT1JNQVRTID0ge1xyXG4gIHBhcnNlOiB7ZGF0ZUlucHV0OiB7bW9udGg6ICdzaG9ydCcsIHllYXI6ICdudW1lcmljJywgZGF5OiAnbnVtZXJpYyd9fSxcclxuICBkaXNwbGF5OiB7XHJcbiAgICBkYXRlSW5wdXQ6ICdpbnB1dCcsXHJcbiAgICBtb250aFllYXJMYWJlbDoge3llYXI6ICdudW1lcmljJywgbW9udGg6ICdzaG9ydCd9LFxyXG4gICAgZGF0ZUExMXlMYWJlbDoge3llYXI6ICdudW1lcmljJywgbW9udGg6ICdsb25nJywgZGF5OiAnbnVtZXJpYyd9LFxyXG4gICAgbW9udGhZZWFyQTExeUxhYmVsOiB7eWVhcjogJ251bWVyaWMnLCBtb250aDogJ2xvbmcnfVxyXG4gIH1cclxufTtcclxuXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBNZ0RhdGVBZGFwdGVyIGV4dGVuZHMgTmF0aXZlRGF0ZUFkYXB0ZXIge1xyXG4gIHB1YmxpYyBtZ2R0Zm10OiBzdHJpbmcgPSBudWxsO1xyXG4gIGNvbnN0cnVjdG9yICggcHVibGljIHBsYXRmb3JtOiBQbGF0Zm9ybSAscHJvdGVjdGVkIHRhc2s6IFRhc2tNYWdpY1NlcnZpY2UpIHtcclxuICAgIHN1cGVyKCdlbi1VUycsIHBsYXRmb3JtKTtcclxuICB9XHJcblxyXG4gIHBhcnNlICh2YWx1ZTogYW55KSA6IERhdGUgfCBudWxsXHJcbiAge1xyXG4gICAgbGV0IHZhbHVlU3RyOiBzdHJpbmcgPSB2YWx1ZTtcclxuICAgIGxldCBkYXRlID0gMCwgbW9udGggPSAwLCB5ZWFyID0gMCwgbW9udGhTdHIgPSBudWxsO1xyXG4gICAgbGV0IG1nRGF0ZU1hc2s6IHN0cmluZyA9IHRoaXMubWdkdGZtdDtcclxuICAgIGxldCBzZXAgPSB2YWx1ZVN0ci5pbmRleE9mKCcvJykgPiAwID8gJy8nIDogJy0nO1xyXG5cclxuICAgIGlmICh2YWx1ZSA9PSBudWxsIHx8IHZhbHVlID09IFwiXCIpIHJldHVybiBudWxsO1xyXG4gICAgaWYgKHRoaXMubWdkdGZtdCA9PSBudWxsICYmIHRoaXMudGFzay5tZ0lucHV0RGF0ZUZvcm1hdCAhPSBudWxsKVxyXG4gICAgICB0aGlzLm1nZHRmbXQgPSB0aGlzLnRhc2subWdJbnB1dERhdGVGb3JtYXQ7XHJcbiAgICBpZiAoKHRoaXMubWdkdGZtdC5pbmRleE9mKCdNTU0nKSA+IDApIHx8ICh0aGlzLm1nZHRmbXQuaW5kZXhPZignTU1NTScpID4gMCkpXHJcbiAgICAgIHJldHVybiBuZXcgRGF0ZSh2YWx1ZSk7XHJcblxyXG4gICAgbGV0IHZhbGxlbiA9IHZhbHVlU3RyLmxlbmd0aDtcclxuICAgIGlmIChtZ0RhdGVNYXNrICE9PSBudWxsKSB7XHJcbiAgICAgIGZvciAobGV0IGk9MCwgaj0wOyBpIDwgbWdEYXRlTWFzay5sZW5ndGg7KSB7XHJcbiAgICAgICAgc3dpdGNoIChtZ0RhdGVNYXNrW2ldKSB7XHJcbiAgICAgICAgICBjYXNlICdkJzoge1xyXG4gICAgICAgICAgICAgIGxldCB0bXBTdHI6IHN0cmluZztcclxuICAgICAgICAgICAgICBsZXQgbGVuID0gdmFsdWVTdHIuaW5kZXhPZihzZXAsIDApO1xyXG4gICAgICAgICAgICAgIHRtcFN0ciA9IGxlbiA9PSAtMSA/IHZhbHVlU3RyIDogdmFsdWVTdHIuc3Vic3RyKDAsIGxlbik7XHJcbiAgICAgICAgICAgICAgaWYgKGxlbiA+IC0xKVxyXG4gICAgICAgICAgICAgICAgdmFsdWVTdHIgPSB2YWx1ZVN0ci5zdWJzdHIobGVuKzEpO1xyXG4gICAgICAgICAgICAgIGZvciAoO21nRGF0ZU1hc2tbaV0gPT0gJ2QnOyBpKyspO1xyXG4gICAgICAgICAgICAgIGRhdGUgPSAoTnVtYmVyKSh0bXBTdHIpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgJ00nOiB7XHJcbiAgICAgICAgICAgICAgbGV0IHRtcFN0cjogc3RyaW5nO1xyXG4gICAgICAgICAgICAgIGxldCBsZW4gPSB2YWx1ZVN0ci5pbmRleE9mKHNlcCwgMCk7XHJcbiAgICAgICAgICAgICAgdG1wU3RyID0gbGVuID09IC0xID8gdmFsdWVTdHIgOiB2YWx1ZVN0ci5zdWJzdHIoMCwgbGVuKTtcclxuXHJcbiAgICAgICAgICAgICAgaWYgKGxlbiA+IC0xKVxyXG4gICAgICAgICAgICAgICAgdmFsdWVTdHIgPSB2YWx1ZVN0ci5zdWJzdHIobGVuKzEpO1xyXG5cclxuICAgICAgICAgICAgICBmb3IgKDsgbWdEYXRlTWFza1tpXSA9PSAnTScgO2krKyk7XHJcbiAgICAgICAgICAgICAgbW9udGggPSAoTnVtYmVyKSh0bXBTdHIpID4gMCA/IChOdW1iZXIpKHRtcFN0ciktIDEgOiAwO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgJ3knOiB7XHJcbiAgICAgICAgICAgICAgbGV0IHRtcFN0cjtcclxuICAgICAgICAgICAgICBsZXQgbGVuID0gdmFsdWVTdHIuaW5kZXhPZihzZXAsIDApO1xyXG4gICAgICAgICAgICAgIHRtcFN0ciA9IGxlbiA9PSAtMSA/IHZhbHVlU3RyIDogdmFsdWVTdHIuc3Vic3RyKDAsIGxlbik7XHJcbiAgICAgICAgICAgICAgaWYgKGxlbiA+IC0xKSB7XHJcbiAgICAgICAgICAgICAgICB2YWx1ZVN0ciA9IHZhbHVlU3RyLnN1YnN0cihsZW4gKyAxKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgZm9yICg7IG1nRGF0ZU1hc2tbaV0gPT0gJ3knIDtpKyspO1xyXG4gICAgICAgICAgICAgIHllYXIgPSAoTnVtYmVyKSh0bXBTdHIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgaSsrO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChtb250aCA9PSAwICYmIHllYXIgPT0gMCAmJiBkYXRlID09IDApXHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgIHJldHVybiBuZXcgRGF0ZShEYXRlLlVUQyh5ZWFyLCBtb250aCwgZGF0ZSkpO1xyXG4gICAgfVxyXG5cclxufVxyXG5cclxuZm9ybWF0KGRhdGU6IERhdGUsIGRpc3BsYXlGb3JtYXQ6IE9iamVjdCk6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy5tZ2R0Zm10ID09IG51bGwgJiYgdGhpcy50YXNrLm1nSW5wdXREYXRlRm9ybWF0ICE9IG51bGwpXHJcbiAgICAgIHRoaXMubWdkdGZtdCA9IHRoaXMudGFzay5tZ0lucHV0RGF0ZUZvcm1hdDtcclxuICAgIGlmIChkaXNwbGF5Rm9ybWF0ID09PSAnaW5wdXQnKSB7XHJcbiAgICAgIGlmICh0aGlzLm1nZHRmbXQgPT0gbnVsbClcclxuICAgICAgICB0aGlzLm1nZHRmbXQgPSAnTS9kL3l5eXknOyAvL2RlZmF1bHQgZm9ybWF0XHJcbiAgICAgIHJldHVybiBmb3JtYXREYXRlKGRhdGUsdGhpcy5tZ2R0Zm10LHRoaXMubG9jYWxlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBkYXRlLnRvRGF0ZVN0cmluZygpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuIl19
@@ -8,7 +8,7 @@ export class OverlayContainerMagicProvider {
8
8
  }
9
9
  OverlayContainerMagicProvider.ɵfac = function OverlayContainerMagicProvider_Factory(t) { return new (t || OverlayContainerMagicProvider)(); };
10
10
  OverlayContainerMagicProvider.ɵprov = i0.ɵɵdefineInjectable({ token: OverlayContainerMagicProvider, factory: OverlayContainerMagicProvider.ɵfac });
11
- (function () { i0.ɵsetClassMetadata(OverlayContainerMagicProvider, [{
11
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(OverlayContainerMagicProvider, [{
12
12
  type: Injectable
13
13
  }], null, null); })();
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5jb25haW5lci5tYWdpYy5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3NlcnZpY2VzL292ZXJsYXkuY29uYWluZXIubWFnaWMucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQzs7QUFHbEYsTUFBTSxPQUFPLDZCQUE2QjtJQUN4QyxZQUFZO1FBQ1YsT0FBTyxxQkFBcUIsQ0FBQztJQUMvQixDQUFDOzswR0FIVSw2QkFBNkI7cUVBQTdCLDZCQUE2QixXQUE3Qiw2QkFBNkI7b0NBQTdCLDZCQUE2QjtjQUR6QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFNlcnZpY2UgbWFuYWdpbmcgb3ZlcmxheSB3aW5kb3dzXHJcbiAqIFRoaXMgaXMgTWFnaWMncyBkZWZhdWx0IHByb3ZpZGVyXHJcbiAqL1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgTWFnaWNPdmVybGF5Q29udGFpbmVyIH0gZnJvbSBcIi4uL3VpL21hZ2ljLW1vZGFsL21hZ2ljLW92ZXJsYXktY29udGFpbmVyXCI7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBPdmVybGF5Q29udGFpbmVyTWFnaWNQcm92aWRlciB7XHJcbiAgZ2V0Q29tcG9uZW50KCkge1xyXG4gICAgcmV0dXJuIE1hZ2ljT3ZlcmxheUNvbnRhaW5lcjtcclxuICB9XHJcbn1cclxuIl19
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5jb25haW5lci5tYWdpYy5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3NlcnZpY2VzL292ZXJsYXkuY29uYWluZXIubWFnaWMucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQzs7QUFHbEYsTUFBTSxPQUFPLDZCQUE2QjtJQUN4QyxZQUFZO1FBQ1YsT0FBTyxxQkFBcUIsQ0FBQztJQUMvQixDQUFDOzswR0FIVSw2QkFBNkI7cUVBQTdCLDZCQUE2QixXQUE3Qiw2QkFBNkI7dUZBQTdCLDZCQUE2QjtjQUR6QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFNlcnZpY2UgbWFuYWdpbmcgb3ZlcmxheSB3aW5kb3dzXHJcbiAqIFRoaXMgaXMgTWFnaWMncyBkZWZhdWx0IHByb3ZpZGVyXHJcbiAqL1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgTWFnaWNPdmVybGF5Q29udGFpbmVyIH0gZnJvbSBcIi4uL3VpL21hZ2ljLW1vZGFsL21hZ2ljLW92ZXJsYXktY29udGFpbmVyXCI7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBPdmVybGF5Q29udGFpbmVyTWFnaWNQcm92aWRlciB7XHJcbiAgZ2V0Q29tcG9uZW50KCkge1xyXG4gICAgcmV0dXJuIE1hZ2ljT3ZlcmxheUNvbnRhaW5lcjtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,28 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { isNullOrUndefined } from '@magic-xpa/mscorelib';
3
+ import * as i0 from "@angular/core";
4
+ export class RouteCommand {
5
+ }
6
+ export class RouterCommandsMagicService {
7
+ constructor() {
8
+ this.pendingRouteCommands = [];
9
+ }
10
+ AddRouteCommand(routeCommand) {
11
+ this.pendingRouteCommands.push(routeCommand);
12
+ }
13
+ ExecuteNextCommand() {
14
+ let pendingRouteCommand = this.pendingRouteCommands.shift();
15
+ if (!isNullOrUndefined(pendingRouteCommand)) {
16
+ pendingRouteCommand.callerMgSubformServiceRef.ExecuteRouteCommand(pendingRouteCommand);
17
+ }
18
+ }
19
+ }
20
+ RouterCommandsMagicService.ɵfac = function RouterCommandsMagicService_Factory(t) { return new (t || RouterCommandsMagicService)(); };
21
+ RouterCommandsMagicService.ɵprov = i0.ɵɵdefineInjectable({ token: RouterCommandsMagicService, factory: RouterCommandsMagicService.ɵfac, providedIn: 'root' });
22
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(RouterCommandsMagicService, [{
23
+ type: Injectable,
24
+ args: [{
25
+ providedIn: 'root'
26
+ }]
27
+ }], null, null); })();
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLWNvbW1hbmRzLm1hZ2ljLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9zZXJ2aWNlcy9yb3V0ZXItY29tbWFuZHMubWFnaWMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBTyxpQkFBaUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDOztBQU03RCxNQUFNLE9BQU8sWUFBWTtDQU14QjtBQU9ELE1BQU0sT0FBTywwQkFBMEI7SUFIdkM7UUFJVSx5QkFBb0IsR0FBbUIsRUFBRSxDQUFDO0tBYW5EO0lBWEMsZUFBZSxDQUFFLFlBQTBCO1FBQ3pDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLG1CQUFtQixHQUFpQixJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFMUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLG1CQUFtQixDQUFDLEVBQUU7WUFDM0MsbUJBQW1CLENBQUMseUJBQXlCLENBQUMsbUJBQW1CLENBQUMsbUJBQW1CLENBQUMsQ0FBQztTQUN4RjtJQUNILENBQUM7O29HQWJVLDBCQUEwQjtrRUFBMUIsMEJBQTBCLFdBQTFCLDBCQUEwQixtQkFGekIsTUFBTTt1RkFFUCwwQkFBMEI7Y0FIdEMsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBMaXN0LGlzTnVsbE9yVW5kZWZpbmVkfSBmcm9tICdAbWFnaWMteHBhL21zY29yZWxpYic7XHJcbmltcG9ydCB7IElTdWJmb3JtTWFnaWNTZXJ2aWNlIH0gZnJvbSAnLi9JU3ViZm9ybU1hZ2ljU2VydmljZSc7XHJcblxyXG4vKipcclxuICogQGlnbm9yZVxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFJvdXRlQ29tbWFuZCB7XHJcbiAgY2FsbGVyTWdTdWJmb3JtU2VydmljZVJlZjogSVN1YmZvcm1NYWdpY1NlcnZpY2U7XHJcbiAgcm91dGVyT3V0bGV0TmFtZTogc3RyaW5nO1xyXG4gIGZvcm1OYW1lOiBzdHJpbmc7XHJcbiAgcGFyYW1ldGVyczogYW55O1xyXG4gIHJvdXRlUGFyYW1zOiBMaXN0PGFueT47XHJcbn1cclxuLyoqXHJcbiAqIEBpZ25vcmVcclxuICovXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFJvdXRlckNvbW1hbmRzTWFnaWNTZXJ2aWNlIHtcclxuICBwcml2YXRlIHBlbmRpbmdSb3V0ZUNvbW1hbmRzOiBSb3V0ZUNvbW1hbmRbXSA9IFtdO1xyXG5cclxuICBBZGRSb3V0ZUNvbW1hbmQgKHJvdXRlQ29tbWFuZDogUm91dGVDb21tYW5kKSB7XHJcbiAgICB0aGlzLnBlbmRpbmdSb3V0ZUNvbW1hbmRzLnB1c2gocm91dGVDb21tYW5kKTtcclxuICB9XHJcblxyXG4gIEV4ZWN1dGVOZXh0Q29tbWFuZCgpIHtcclxuICAgIGxldCBwZW5kaW5nUm91dGVDb21tYW5kOiBSb3V0ZUNvbW1hbmQgPSB0aGlzLnBlbmRpbmdSb3V0ZUNvbW1hbmRzLnNoaWZ0KCk7XHJcblxyXG4gICAgaWYgKCFpc051bGxPclVuZGVmaW5lZChwZW5kaW5nUm91dGVDb21tYW5kKSkge1xyXG4gICAgICBwZW5kaW5nUm91dGVDb21tYW5kLmNhbGxlck1nU3ViZm9ybVNlcnZpY2VSZWYuRXhlY3V0ZVJvdXRlQ29tbWFuZChwZW5kaW5nUm91dGVDb21tYW5kKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19