@wavemaker/app-ng-runtime 11.4.0-next.28152 → 11.4.0-rc.121

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 (153) hide show
  1. app-ng-runtime/build-task/basic/tree/tree.build.d.ts +1 -2
  2. app-ng-runtime/build-task/bundles/index.umd.js +8 -10
  3. app-ng-runtime/build-task/bundles/index.umd.js.map +1 -1
  4. app-ng-runtime/build-task/esm2015/basic/tree/tree.build.js +3 -4
  5. app-ng-runtime/build-task/esm2015/data/form/form-field/form-field.build.js +2 -2
  6. app-ng-runtime/build-task/esm2015/navigation/popover/popover.build.js +3 -3
  7. app-ng-runtime/build-task/fesm2015/index.js +8 -10
  8. app-ng-runtime/build-task/fesm2015/index.js.map +1 -1
  9. app-ng-runtime/components/base/bundles/index.umd.js +44 -8
  10. app-ng-runtime/components/base/bundles/index.umd.js.map +1 -1
  11. app-ng-runtime/components/base/esm2015/directives/show-in-device.directive.js +16 -5
  12. app-ng-runtime/components/base/esm2015/public_api.js +2 -2
  13. app-ng-runtime/components/base/esm2015/utils/widget-utils.js +22 -4
  14. app-ng-runtime/components/base/esm2015/widgets/common/base/base-field-validations.js +3 -2
  15. app-ng-runtime/components/base/esm2015/widgets/common/dialog/dialog.service.js +7 -1
  16. app-ng-runtime/components/base/fesm2015/index.js +45 -10
  17. app-ng-runtime/components/base/fesm2015/index.js.map +1 -1
  18. app-ng-runtime/components/base/index.metadata.json +1 -1
  19. app-ng-runtime/components/base/public_api.d.ts +1 -1
  20. app-ng-runtime/components/base/utils/widget-utils.d.ts +8 -1
  21. app-ng-runtime/components/basic/tree/bundles/index.umd.js +369 -245
  22. app-ng-runtime/components/basic/tree/bundles/index.umd.js.map +1 -1
  23. app-ng-runtime/components/basic/tree/esm2015/public_api.js +2 -2
  24. app-ng-runtime/components/basic/tree/esm2015/tree.component.js +403 -0
  25. app-ng-runtime/components/basic/tree/esm2015/tree.module.js +3 -3
  26. app-ng-runtime/components/basic/tree/fesm2015/index.js +333 -240
  27. app-ng-runtime/components/basic/tree/fesm2015/index.js.map +1 -1
  28. app-ng-runtime/components/basic/tree/index.metadata.json +1 -1
  29. app-ng-runtime/components/basic/tree/public_api.d.ts +1 -1
  30. app-ng-runtime/components/basic/tree/tree.component.d.ts +43 -0
  31. app-ng-runtime/components/chart/bundles/index.umd.js +1 -1
  32. app-ng-runtime/components/chart/bundles/index.umd.js.map +1 -1
  33. app-ng-runtime/components/chart/esm2015/chart.component.js +2 -2
  34. app-ng-runtime/components/chart/fesm2015/index.js +1 -1
  35. app-ng-runtime/components/chart/fesm2015/index.js.map +1 -1
  36. app-ng-runtime/components/containers/tabs/bundles/index.umd.js +39 -23
  37. app-ng-runtime/components/containers/tabs/bundles/index.umd.js.map +1 -1
  38. app-ng-runtime/components/containers/tabs/esm2015/tab-pane/tab-pane.component.js +8 -1
  39. app-ng-runtime/components/containers/tabs/esm2015/tabs.animator.js +33 -13
  40. app-ng-runtime/components/containers/tabs/fesm2015/index.js +40 -13
  41. app-ng-runtime/components/containers/tabs/fesm2015/index.js.map +1 -1
  42. app-ng-runtime/components/containers/tabs/tabs.animator.d.ts +5 -1
  43. app-ng-runtime/components/containers/wizard/bundles/index.umd.js +43 -2
  44. app-ng-runtime/components/containers/wizard/bundles/index.umd.js.map +1 -1
  45. app-ng-runtime/components/containers/wizard/esm2015/wizard-step/wizard-step.props.js +3 -2
  46. app-ng-runtime/components/containers/wizard/esm2015/wizard.component.js +42 -2
  47. app-ng-runtime/components/containers/wizard/fesm2015/index.js +43 -2
  48. app-ng-runtime/components/containers/wizard/fesm2015/index.js.map +1 -1
  49. app-ng-runtime/components/containers/wizard/index.metadata.json +1 -1
  50. app-ng-runtime/components/containers/wizard/wizard.component.d.ts +2 -0
  51. app-ng-runtime/components/data/form/bundles/index.umd.js +37 -13
  52. app-ng-runtime/components/data/form/bundles/index.umd.js.map +1 -1
  53. app-ng-runtime/components/data/form/esm2015/form-field/form-field.directive.js +26 -7
  54. app-ng-runtime/components/data/form/esm2015/form.component.js +10 -5
  55. app-ng-runtime/components/data/form/fesm2015/index.js +34 -10
  56. app-ng-runtime/components/data/form/fesm2015/index.js.map +1 -1
  57. app-ng-runtime/components/data/form/index.metadata.json +1 -1
  58. app-ng-runtime/components/data/list/bundles/index.umd.js +52 -43
  59. app-ng-runtime/components/data/list/bundles/index.umd.js.map +1 -1
  60. app-ng-runtime/components/data/list/esm2015/list.component.js +52 -43
  61. app-ng-runtime/components/data/list/fesm2015/index.js +51 -42
  62. app-ng-runtime/components/data/list/fesm2015/index.js.map +1 -1
  63. app-ng-runtime/components/data/list/index.metadata.json +1 -1
  64. app-ng-runtime/components/data/list/list.component.d.ts +1 -1
  65. app-ng-runtime/components/data/pagination/bundles/index.umd.js +22 -5
  66. app-ng-runtime/components/data/pagination/bundles/index.umd.js.map +1 -1
  67. app-ng-runtime/components/data/pagination/esm2015/pagination.component.js +23 -6
  68. app-ng-runtime/components/data/pagination/fesm2015/index.js +22 -5
  69. app-ng-runtime/components/data/pagination/fesm2015/index.js.map +1 -1
  70. app-ng-runtime/components/data/pagination/index.metadata.json +1 -1
  71. app-ng-runtime/components/data/pagination/pagination.component.d.ts +1 -0
  72. app-ng-runtime/components/data/table/bundles/index.umd.js +64 -12
  73. app-ng-runtime/components/data/table/bundles/index.umd.js.map +1 -1
  74. app-ng-runtime/components/data/table/esm2015/table.component.js +63 -13
  75. app-ng-runtime/components/data/table/esm2015/table.props.js +3 -1
  76. app-ng-runtime/components/data/table/fesm2015/index.js +64 -12
  77. app-ng-runtime/components/data/table/fesm2015/index.js.map +1 -1
  78. app-ng-runtime/components/data/table/index.metadata.json +1 -1
  79. app-ng-runtime/components/data/table/table.component.d.ts +9 -0
  80. app-ng-runtime/components/dialogs/default/base-dialog.d.ts +1 -0
  81. app-ng-runtime/components/dialogs/default/bundles/index.umd.js +17 -3
  82. app-ng-runtime/components/dialogs/default/bundles/index.umd.js.map +1 -1
  83. app-ng-runtime/components/dialogs/default/esm2015/base-dialog.js +18 -5
  84. app-ng-runtime/components/dialogs/default/fesm2015/index.js +17 -4
  85. app-ng-runtime/components/dialogs/default/fesm2015/index.js.map +1 -1
  86. app-ng-runtime/components/dialogs/default/index.metadata.json +1 -1
  87. app-ng-runtime/components/input/epoch/base-date-time.component.d.ts +1 -0
  88. app-ng-runtime/components/input/epoch/bundles/index.umd.js +78 -35
  89. app-ng-runtime/components/input/epoch/bundles/index.umd.js.map +1 -1
  90. app-ng-runtime/components/input/epoch/date-time/date-time-picker.component.d.ts +1 -0
  91. app-ng-runtime/components/input/epoch/esm2015/base-date-time.component.js +55 -31
  92. app-ng-runtime/components/input/epoch/esm2015/date/date.component.js +3 -3
  93. app-ng-runtime/components/input/epoch/esm2015/date-time/date-time-picker.component.js +31 -11
  94. app-ng-runtime/components/input/epoch/esm2015/date-time/date-time.component.js +2 -2
  95. app-ng-runtime/components/input/epoch/fesm2015/index.js +87 -43
  96. app-ng-runtime/components/input/epoch/fesm2015/index.js.map +1 -1
  97. app-ng-runtime/components/input/epoch/index.metadata.json +1 -1
  98. app-ng-runtime/components/navigation/menu/bundles/index.umd.js +25 -19
  99. app-ng-runtime/components/navigation/menu/bundles/index.umd.js.map +1 -1
  100. app-ng-runtime/components/navigation/menu/esm2015/menu-dropdown-item/menu-dropdown-item.component.js +15 -5
  101. app-ng-runtime/components/navigation/menu/esm2015/menu.component.js +14 -19
  102. app-ng-runtime/components/navigation/menu/fesm2015/index.js +25 -20
  103. app-ng-runtime/components/navigation/menu/fesm2015/index.js.map +1 -1
  104. app-ng-runtime/components/navigation/menu/index.metadata.json +1 -1
  105. app-ng-runtime/components/navigation/menu/menu-dropdown-item/menu-dropdown-item.component.d.ts +7 -4
  106. app-ng-runtime/components/navigation/menu/menu.component.d.ts +3 -7
  107. app-ng-runtime/components/navigation/popover/bundles/index.umd.js +3 -1
  108. app-ng-runtime/components/navigation/popover/bundles/index.umd.js.map +1 -1
  109. app-ng-runtime/components/navigation/popover/esm2015/popover.component.js +5 -3
  110. app-ng-runtime/components/navigation/popover/fesm2015/index.js +4 -2
  111. app-ng-runtime/components/navigation/popover/fesm2015/index.js.map +1 -1
  112. app-ng-runtime/core/bundles/index.umd.js +19 -3
  113. app-ng-runtime/core/bundles/index.umd.js.map +1 -1
  114. app-ng-runtime/core/esm2015/services/pagination.service.js +8 -2
  115. app-ng-runtime/core/esm2015/services/viewport.service.js +6 -4
  116. app-ng-runtime/core/esm2015/utils/utils.js +11 -3
  117. app-ng-runtime/core/fesm2015/index.js +22 -6
  118. app-ng-runtime/core/fesm2015/index.js.map +1 -1
  119. app-ng-runtime/core/index.metadata.json +1 -1
  120. app-ng-runtime/core/utils/utils.d.ts +2 -2
  121. app-ng-runtime/mobile/components/page/default/bundles/index.umd.js +24 -6
  122. app-ng-runtime/mobile/components/page/default/bundles/index.umd.js.map +1 -1
  123. app-ng-runtime/mobile/components/page/default/esm2015/page.directive.js +20 -3
  124. app-ng-runtime/mobile/components/page/default/fesm2015/index.js +19 -2
  125. app-ng-runtime/mobile/components/page/default/fesm2015/index.js.map +1 -1
  126. app-ng-runtime/mobile/components/page/default/index.metadata.json +1 -1
  127. app-ng-runtime/mobile/components/page/default/page.directive.d.ts +4 -1
  128. app-ng-runtime/package.json +1 -1
  129. app-ng-runtime/runtime/base/bundles/index.umd.js +164 -133
  130. app-ng-runtime/runtime/base/bundles/index.umd.js.map +1 -1
  131. app-ng-runtime/runtime/base/esm2015/components/app-component/app.component.js +2 -2
  132. app-ng-runtime/runtime/base/esm2015/public_api.js +2 -1
  133. app-ng-runtime/runtime/base/esm2015/runtime-base.module.js +3 -1
  134. app-ng-runtime/runtime/base/esm2015/services/app.service.js +3 -1
  135. app-ng-runtime/runtime/base/esm2015/services/pipe.service.js +33 -0
  136. app-ng-runtime/runtime/base/fesm2015/index.js +149 -120
  137. app-ng-runtime/runtime/base/fesm2015/index.js.map +1 -1
  138. app-ng-runtime/runtime/base/index.metadata.json +1 -1
  139. app-ng-runtime/runtime/base/public_api.d.ts +1 -0
  140. app-ng-runtime/runtime/base/services/pipe.service.d.ts +9 -0
  141. app-ng-runtime/scripts/datatable/datatable.js +86 -36
  142. app-ng-runtime/scripts/tree-keyboard-navigation/keyboard-navigation.js +251 -0
  143. app-ng-runtime/variables/bundles/index.umd.js +37 -22
  144. app-ng-runtime/variables/bundles/index.umd.js.map +1 -1
  145. app-ng-runtime/variables/esm2015/manager/action/notification-action.manager.js +29 -24
  146. app-ng-runtime/variables/esm2015/service/variables.service.js +8 -1
  147. app-ng-runtime/variables/fesm2015/index.js +35 -24
  148. app-ng-runtime/variables/fesm2015/index.js.map +1 -1
  149. app-ng-runtime/variables/index.metadata.json +1 -1
  150. app-ng-runtime/variables/manager/action/notification-action.manager.d.ts +1 -0
  151. app-ng-runtime/variables/service/variables.service.d.ts +4 -0
  152. app-ng-runtime/components/basic/tree/esm2015/tree.directive.js +0 -310
  153. app-ng-runtime/components/basic/tree/tree.directive.d.ts +0 -35
@@ -142,7 +142,7 @@ export class AppComponent {
142
142
  AppComponent.decorators = [
143
143
  { type: Component, args: [{
144
144
  selector: 'app-root',
145
- template: "<ng-container *ngIf=\"startApp\">\n <router-outlet></router-outlet>\n <div wmContainer partialContainer content=\"Common\" hidden class=\"ng-hide\" *ngIf=\"isApplicationType\"></div>\n <app-spinner name=\"globalspinner\" classname=\"global-spinner\" role=\"alert\" aria-live=\"assertive\" [attr.aria-label]=\"spinner.arialabel || 'Loading'\" [show]=\"spinner.show\" [spinnermessages]=\"spinner.messages\"></app-spinner>\n <div wmDialog name=\"oAuthLoginDialog\" title=\"Application is requesting you to sign in with\"\n close.event=\"closeOAuthDialog()\">\n <ng-template #dialogBody>\n <ul class=\"list-items\">\n <li class=\"list-item\" *ngFor=\"let provider of providersConfig\">\n <button class=\"btn\" (click)=\"provider.invoke()\">{{provider.name}}</button>\n </li>\n </ul>\n </ng-template>\n </div>\n <div wmConfirmDialog name=\"_app-confirm-dialog\" title.bind=\"title\" message.bind=\"message\" oktext.bind=\"oktext\"\n canceltext.bind=\"canceltext\" closable=\"false\" iconclass.bind=\"iconclass\"\n escape.event=\"onEscape()\" ok.event=\"onOk()\" cancel.event=\"onCancel()\" close.event=\"onClose()\" opened.event=\"onOpen()\"></div>\n <div wmAppExt></div>\n <i id=\"wm-mobile-display\"></i>\n</ng-container>\n<!--Dummy container to create the component dynamically-->\n<ng-container #dynamicComponent></ng-container>\n",
145
+ template: "<ng-container *ngIf=\"startApp\">\n <router-outlet></router-outlet>\n <div wmContainer partialContainer content=\"Common\" hidden class=\"ng-hide\" *ngIf=\"isApplicationType\"></div>\n <app-spinner name=\"globalspinner\" classname=\"global-spinner\" role=\"alert\" aria-live=\"assertive\" [attr.aria-label]=\"spinner.arialabel || 'Loading'\" [show]=\"spinner.show\" [spinnermessages]=\"spinner.messages\"></app-spinner>\n <div wmDialog name=\"oAuthLoginDialog\" title=\"Application is requesting you to sign in with\"\n close.event=\"closeOAuthDialog()\">\n <ng-template #dialogBody>\n <ul class=\"list-items\">\n <li class=\"list-item\" *ngFor=\"let provider of providersConfig\">\n <button class=\"btn\" (click)=\"provider.invoke()\">{{provider.name}}</button>\n </li>\n </ul>\n </ng-template>\n </div>\n <div wmConfirmDialog name=\"_app-confirm-dialog\" title.bind=\"title\" message.bind=\"message\" oktext.bind=\"oktext\"\n canceltext.bind=\"canceltext\" closable=\"false\" iconclass.bind=\"iconclass\"\n escape.event=\"onEscape()\" ok.event=\"onOk()\" cancel.event=\"onCancel()\" close.event=\"onClose()\" opened.event=\"onOpen()\"></div>\n <div *ngIf=\"!isApplicationType\" wmConfirmDialog name=\"PrefabConfirmDialog\" title.bind=\"title\" message.bind=\"text\" oktext.bind=\"okButtonText\"\n canceltext.bind=\"cancelButtonText\" closable=\"false\" iconclass.bind=\"iconclass\"\n escape.event=\"onEscape()\" ok.event=\"onOk()\" cancel.event=\"onCancel()\" close.event=\"onClose()\" opened.event=\"onOpen()\"></div>\n <div *ngIf=\"!isApplicationType\" wmAlertDialog name=\"PrefabAlertDialog\" title.bind=\"title\" message.bind=\"text\" oktext.bind=\"okButtonText\"\n canceltext.bind=\"cancelButtonText\" closable=\"false\" iconclass.bind=\"iconclass\"\n escape.event=\"onEscape()\" ok.event=\"onOk()\" cancel.event=\"onCancel()\" close.event=\"onClose()\" opened.event=\"onOpen()\"></div>\n <div wmAppExt></div>\n <i id=\"wm-mobile-display\"></i>\n</ng-container>\n<!--Dummy container to create the component dynamically-->\n<ng-container #dynamicComponent></ng-container>\n",
146
146
  encapsulation: ViewEncapsulation.None
147
147
  },] }
148
148
  ];
@@ -162,4 +162,4 @@ AppComponent.propDecorators = {
162
162
  routerOutlet: [{ type: ViewChild, args: [RouterOutlet,] }],
163
163
  dynamicComponentContainerRef: [{ type: ViewChild, args: ['dynamicComponent', { read: ViewContainerRef },] }]
164
164
  };
165
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3J1bnRpbWUtYmFzZS9zcmMvY29tcG9uZW50cy9hcHAtY29tcG9uZW50L2FwcC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQVcsVUFBVSxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3RKLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFMUgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDaEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxxQkFBcUIsRUFBRSxzQkFBc0IsRUFBRSxzQkFBc0IsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDak0sT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFhcEUsTUFBTSxPQUFPLFlBQVk7SUFTckIsWUFDSSxhQUEyQixFQUMzQixPQUF1QixFQUNmLEtBQWlCLEVBQ2pCLFlBQTBCLEVBQzFCLGFBQW9DLEVBQ3BDLGNBQXNDLEVBQzlDLE1BQWMsRUFDTixNQUFjLEVBQ2QsR0FBUSxFQUNSLFVBQTZCO1FBUDdCLFVBQUssR0FBTCxLQUFLLENB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Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBwbGljYXRpb25SZWYsIENvbXBvbmVudCwgRG9DaGVjaywgRWxlbWVudFJlZiwgTmdab25lLCBWaWV3RW5jYXBzdWxhdGlvbiwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmLCBBZnRlclZpZXdJbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uQ2FuY2VsLCBOYXZpZ2F0aW9uRW5kLCBOYXZpZ2F0aW9uRXJyb3IsIE5hdmlnYXRpb25TdGFydCwgUm91dGVyLCBSb3V0ZXJPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBzZXRUaGVtZSB9IGZyb20gJ25neC1ib290c3RyYXAvdXRpbHMnO1xuXG5pbXBvcnQgeyBub29wIH0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHsgJGludm9rZVdhdGNoZXJzLCBBYnN0cmFjdERpYWxvZ1NlcnZpY2UsIEFic3RyYWN0U3Bpbm5lclNlcnZpY2UsIGdldFdtUHJvamVjdFByb3BlcnRpZXMsIGhhc0NvcmRvdmEsIHNldEFwcFJlZiwgc2V0Tmdab25lLCBzZXRQaXBlUHJvdmlkZXIsIEFwcCwgYWRkQ2xhc3MsIHJlbW92ZUNsYXNzIH0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHsgT0F1dGhTZXJ2aWNlIH0gZnJvbSAnQHdtL29BdXRoJztcbmltcG9ydCB7IEFwcE1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXBwLm1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBQaXBlUHJvdmlkZXIgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9waXBlLXByb3ZpZGVyLnNlcnZpY2UnO1xuXG5pbnRlcmZhY2UgU1BJTk5FUiB7XG4gICAgc2hvdzogYm9vbGVhbjtcbiAgICBtZXNzYWdlczogQXJyYXk8c3RyaW5nPjtcbiAgICBhcmlhbGFiZWw6IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcHAtcm9vdCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FwcC5jb21wb25lbnQuaHRtbCcsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBBcHBDb21wb25lbnQgaW1wbGVtZW50cyBEb0NoZWNrLCBBZnRlclZpZXdJbml0IHtcbiAgICBwdWJsaWMgc3RhcnRBcHAgPSBmYWxzZTtcbiAgICBwdWJsaWMgaXNBcHBsaWNhdGlvblR5cGUgPSBmYWxzZTtcblxuICAgIEBWaWV3Q2hpbGQoUm91dGVyT3V0bGV0KSByb3V0ZXJPdXRsZXQ6IFJvdXRlck91dGxldDtcblxuICAgIEBWaWV3Q2hpbGQoJ2R5bmFtaWNDb21wb25lbnQnLCB7cmVhZDogVmlld0NvbnRhaW5lclJlZn0pIGR5bmFtaWNDb21wb25lbnRDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWY7XG5cbiAgICBzcGlubmVyOiBTUElOTkVSID0ge3Nob3c6IGZhbHNlLCBtZXNzYWdlczogW10sIGFyaWFsYWJlbDogJyd9O1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBfcGlwZVByb3ZpZGVyOiBQaXBlUHJvdmlkZXIsXG4gICAgICAgIF9hcHBSZWY6IEFwcGxpY2F0aW9uUmVmLFxuICAgICAgICBwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIG9BdXRoU2VydmljZTogT0F1dGhTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGRpYWxvZ1NlcnZpY2U6IEFic3RyYWN0RGlhbG9nU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBzcGlubmVyU2VydmljZTogQWJzdHJhY3RTcGlubmVyU2VydmljZSxcbiAgICAgICAgbmdab25lOiBOZ1pvbmUsXG4gICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgIHByaXZhdGUgYXBwOiBBcHAsXG4gICAgICAgIHByaXZhdGUgYXBwTWFuYWdlcjogQXBwTWFuYWdlclNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgc2V0UGlwZVByb3ZpZGVyKF9waXBlUHJvdmlkZXIpO1xuICAgICAgICBzZXROZ1pvbmUobmdab25lKTtcbiAgICAgICAgc2V0QXBwUmVmKF9hcHBSZWYpO1xuXG4gICAgICAgIHRoaXMuaXNBcHBsaWNhdGlvblR5cGUgPSBnZXRXbVByb2plY3RQcm9wZXJ0aWVzKCkudHlwZSA9PT0gJ0FQUExJQ0FUSU9OJztcblxuICAgICAgICB0aGlzLmFwcE1hbmFnZXIuYmVmb3JlQXBwUmVhZHkoKTsgXG5cbiAgICAgICAgLy8gc3Vic2NyaWJlIHRvIE9BdXRoIGNoYW5nZXNcbiAgICAgICAgb0F1dGhTZXJ2aWNlLmdldE9BdXRoUHJvdmlkZXJzQXNPYnNlcnZhYmxlKCkuc3Vic2NyaWJlKChwcm92aWRlcnM6IGFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5wcm92aWRlcnNDb25maWcgPSBwcm92aWRlcnM7XG4gICAgICAgICAgICBpZiAocHJvdmlkZXJzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2hvd09BdXRoRGlhbG9nKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VPQXV0aERpYWxvZygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBTdWJzY3JpYmUgdG8gdGhlIG1lc3NhZ2Ugc291cmNlIHRvIHNob3cvaGlkZSBhcHAgc3Bpbm5lclxuICAgICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmdldE1lc3NhZ2VTb3VyY2UoKS5hc09ic2VydmFibGUoKS5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgICAgLy8gc2V0VGltZW91dCBpcyB0byBhdm9pZCAnRXhwcmVzc2lvbkNoYW5nZWRBZnRlckl0SGFzQmVlbkNoZWNrZWRFcnJvcidcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc3Bpbm5lci5zaG93ID0gZGF0YS5zaG93O1xuICAgICAgICAgICAgICAgIHRoaXMuc3Bpbm5lci5tZXNzYWdlcyA9IGRhdGEubWVzc2FnZXM7XG4gICAgICAgICAgICAgICAgdGhpcy5zcGlubmVyLmFyaWFsYWJlbCA9IGRhdGEubWVzc2FnZXMudG9TdHJpbmcoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBzZXQgdGhlbWUgdG8gYnMzIG9uIG5neC1ib290c3RyYXAuIFRoaXMgYXZvaWRzIHJ1bnRpbWUgY2FsY3VsYXRpb24gdG8gZGV0ZXJtaW5lIGJzIHRoZW1lLiBUaHVzIHJlc29sdmVzIHBlcmZvcm1hbmNlLlxuICAgICAgICBzZXRUaGVtZSgnYnMzJyk7XG5cbiAgICAgICAgbGV0IHNwaW5uZXJJZDtcblxuICAgICAgICBsZXQgb25QYWdlUmVuZGVyZWQgPSBub29wO1xuXG4gICAgICAgIHRoaXMucm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoZSA9PiB7XG4gICAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCkge1xuICAgICAgICAgICAgICAgIGxldCBwYWdlID0gZS51cmwuc3BsaXQoJz8nKVswXTtcbiAgICAgICAgICAgICAgICBwYWdlID0gcGFnZS5zdWJzdHJpbmcoMSk7XG5cbiAgICAgICAgICAgICAgICBpZiAoIXBhZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHAuYWN0aXZlTGF5b3V0TmFtZSA9ICcnO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcC5sYXlvdXRQYWdlcyA9IFtdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZih0aGlzLmFwcC5hY3RpdmVMYXlvdXROYW1lICYmIHRoaXMuYXBwLmxheW91dFBhZ2VzICYmIHRoaXMuYXBwLmxheW91dFBhZ2VzLmxlbmd0aCAmJiB0aGlzLmFwcC5sYXlvdXRQYWdlcy5pbmNsdWRlcyhwYWdlKSkge1xuICAgICAgICAgICAgICAgICAgICBzcGlubmVySWQgPSB0aGlzLnNwaW5uZXJTZXJ2aWNlLnNob3coJycsICd3bVJvdXRlck91dGxldCcsICcnLCAnd21Sb3V0ZXJPdXRsZXQnKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzcGlubmVySWQgPSB0aGlzLnNwaW5uZXJTZXJ2aWNlLnNob3coJycsICdnbG9iYWxTcGlubmVyJyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3Qgbm9kZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2FwcC1wYWdlLW91dGxldCcpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgICAgICAgIGlmIChub2RlKSB7XG4gICAgICAgICAgICAgICAgICAgIGFkZENsYXNzKG5vZGUsICdwYWdlLWxvYWQtaW4tcHJvZ3Jlc3MnKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBwYWdlTG9hZFN0YXJ0VGltZSA9IERhdGUubm93KCk7XG4gICAgICAgICAgICAgICAgb25QYWdlUmVuZGVyZWQgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZShzcGlubmVySWQpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBub2RlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYXBwLXBhZ2Utb3V0bGV0JykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChub2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVDbGFzcyhub2RlLCAncGFnZS1sb2FkLWluLXByb2dyZXNzJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgb25QYWdlUmVuZGVyZWQgPSBub29wO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcC5hY3RpdmVQYWdlTG9hZFRpbWUgPSBEYXRlLm5vdygpIC0gcGFnZUxvYWRTdGFydFRpbWU7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQgfHwgZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25DYW5jZWwgfHwgZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25FcnJvcikge1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT57XG4gICAgICAgICAgICAgICAgICAgIG9uUGFnZVJlbmRlcmVkKCk7XG4gICAgICAgICAgICAgICAgfSwgMTAwMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmFwcE1hbmFnZXIuc3Vic2NyaWJlKCdwYWdlUmVhZHknLCAoKSA9PiB7XG4gICAgICAgICAgICBvblBhZ2VSZW5kZXJlZCgpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5hcHBNYW5hZ2VyLnN1YnNjcmliZSgncGFnZUF0dGFjaCcsICgpID0+IHtcbiAgICAgICAgICAgIG9uUGFnZVJlbmRlcmVkKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByb3ZpZGVyc0NvbmZpZztcbiAgICBpc09BdXRoRGlhbG9nT3BlbiA9IGZhbHNlO1xuXG4gICAgc2hvd09BdXRoRGlhbG9nKCkge1xuICAgICAgICBpZiAoIXRoaXMuaXNPQXV0aERpYWxvZ09wZW4pIHtcbiAgICAgICAgICAgIHRoaXMuaXNPQXV0aERpYWxvZ09wZW4gPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLm9wZW4oJ29BdXRoTG9naW5EaWFsb2cnLCB0aGlzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNsb3NlT0F1dGhEaWFsb2coKSB7XG4gICAgICAgIGlmICh0aGlzLmlzT0F1dGhEaWFsb2dPcGVuKSB7XG4gICAgICAgICAgICB0aGlzLmlzT0F1dGhEaWFsb2dPcGVuID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuY2xvc2UoJ29BdXRoTG9naW5EaWFsb2cnLCB0aGlzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc3RhcnQoKSB7XG4gICAgICAgIC8vdG8gZml4IHRoZSBpc3N1ZSB0aGF0IGhhcHBlbnMgb25seSBpbiB0aGUgZGV2ZWxvcG1lbnQgbW9kZVxuICAgICAgICAvL0V4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3JcbiAgICAgICAgLy9maXg6IGh0dHBzOi8vYmxvZy5hbmd1bGFyLXVuaXZlcnNpdHkuaW8vYW5ndWxhci1kZWJ1Z2dpbmcvXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zdGFydEFwcCA9IHRydWU7XG4gICAgICAgIH0pO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuYXBwLmR5bmFtaWNDb21wb25lbnRDb250YWluZXJSZWYgPSB0aGlzLmR5bmFtaWNDb21wb25lbnRDb250YWluZXJSZWY7XG4gICAgICAgICAgICB0aGlzLm92ZXJyaWRlUm91dGVyT3V0bGV0KCk7XG4gICAgICAgIH0sIDEwKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG92ZXJyaWRlUm91dGVyT3V0bGV0KCkge1xuICAgICAgICAvL292ZXJyaWRlIHRoZSBhdHRhY2gvZGV0YWNoIG1ldGhvZHNcbiAgICAgICAgY29uc3Qgb0F0dGFjaCA9IHRoaXMucm91dGVyT3V0bGV0LmF0dGFjaDtcbiAgICAgICAgY29uc3Qgb0RldGFjaCA9IHRoaXMucm91dGVyT3V0bGV0LmRldGFjaDtcbiAgICAgICAgdGhpcy5yb3V0ZXJPdXRsZXQuYXR0YWNoID0gKGNvbXBvbmVudFJlZjogYW55KSA9PiB7XG4gICAgICAgICAgICBvQXR0YWNoLmNhbGwodGhpcy5yb3V0ZXJPdXRsZXQsIGNvbXBvbmVudFJlZik7XG4gICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UubmdPbkF0dGFjaCgpO1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLnJvdXRlck91dGxldC5kZXRhY2ggPSAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmFwcC5hY3RpdmVQYWdlLm5nT25EZXRhY2goKTtcbiAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IG9EZXRhY2guY2FsbCh0aGlzLnJvdXRlck91dGxldCk7XG4gICAgICAgICAgICByZXR1cm4gY29tcG9uZW50UmVmO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgaWYgKGhhc0NvcmRvdmEoKSAmJiAhd2luZG93Wyd3bURldmljZVJlYWR5J10pIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3dtRGV2aWNlUmVhZHknICwgKCkgPT4gdGhpcy5zdGFydCgpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RhcnQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nRG9DaGVjaygpIHtcbiAgICAgICAgJGludm9rZVdhdGNoZXJzKCk7XG4gICAgfVxufVxuIl19
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3J1bnRpbWUtYmFzZS9zcmMvY29tcG9uZW50cy9hcHAtY29tcG9uZW50L2FwcC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQVcsVUFBVSxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3RKLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFMUgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDaEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxxQkFBcUIsRUFBRSxzQkFBc0IsRUFBRSxzQkFBc0IsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDak0sT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFhcEUsTUFBTSxPQUFPLFlBQVk7SUFTckIsWUFDSSxhQUEyQixFQUMzQixPQUF1QixFQUNmLEtBQWlCLEVBQ2pCLFlBQTBCLEVBQzFCLGFBQW9DLEVBQ3BDLGNBQXNDLEVBQzlDLE1BQWMsRUFDTixNQUFjLEVBQ2QsR0FBUSxFQUNSLFVBQTZCO1FBUDdCLFVBQUssR0FBTCxLQUFLLENB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Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBwbGljYXRpb25SZWYsIENvbXBvbmVudCwgRG9DaGVjaywgRWxlbWVudFJlZiwgTmdab25lLCBWaWV3RW5jYXBzdWxhdGlvbiwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmLCBBZnRlclZpZXdJbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uQ2FuY2VsLCBOYXZpZ2F0aW9uRW5kLCBOYXZpZ2F0aW9uRXJyb3IsIE5hdmlnYXRpb25TdGFydCwgUm91dGVyLCBSb3V0ZXJPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBzZXRUaGVtZSB9IGZyb20gJ25neC1ib290c3RyYXAvdXRpbHMnO1xuXG5pbXBvcnQgeyBub29wIH0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHsgJGludm9rZVdhdGNoZXJzLCBBYnN0cmFjdERpYWxvZ1NlcnZpY2UsIEFic3RyYWN0U3Bpbm5lclNlcnZpY2UsIGdldFdtUHJvamVjdFByb3BlcnRpZXMsIGhhc0NvcmRvdmEsIHNldEFwcFJlZiwgc2V0Tmdab25lLCBzZXRQaXBlUHJvdmlkZXIsIEFwcCwgYWRkQ2xhc3MsIHJlbW92ZUNsYXNzIH0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHsgT0F1dGhTZXJ2aWNlIH0gZnJvbSAnQHdtL29BdXRoJztcbmltcG9ydCB7IEFwcE1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXBwLm1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBQaXBlUHJvdmlkZXIgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9waXBlLXByb3ZpZGVyLnNlcnZpY2UnO1xuXG5pbnRlcmZhY2UgU1BJTk5FUiB7XG4gICAgc2hvdzogYm9vbGVhbjtcbiAgICBtZXNzYWdlczogQXJyYXk8c3RyaW5nPjtcbiAgICBhcmlhbGFiZWw6IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcHAtcm9vdCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FwcC5jb21wb25lbnQuaHRtbCcsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBBcHBDb21wb25lbnQgaW1wbGVtZW50cyBEb0NoZWNrLCBBZnRlclZpZXdJbml0IHtcbiAgICBwdWJsaWMgc3RhcnRBcHAgPSBmYWxzZTtcbiAgICBwdWJsaWMgaXNBcHBsaWNhdGlvblR5cGUgPSBmYWxzZTtcblxuICAgIEBWaWV3Q2hpbGQoUm91dGVyT3V0bGV0KSByb3V0ZXJPdXRsZXQ6IFJvdXRlck91dGxldDtcblxuICAgIEBWaWV3Q2hpbGQoJ2R5bmFtaWNDb21wb25lbnQnLCB7cmVhZDogVmlld0NvbnRhaW5lclJlZn0pIGR5bmFtaWNDb21wb25lbnRDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWY7XG5cbiAgICBzcGlubmVyOiBTUElOTkVSID0ge3Nob3c6IGZhbHNlLCBtZXNzYWdlczogW10sIGFyaWFsYWJlbDogJyd9O1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBfcGlwZVByb3ZpZGVyOiBQaXBlUHJvdmlkZXIsXG4gICAgICAgIF9hcHBSZWY6IEFwcGxpY2F0aW9uUmVmLFxuICAgICAgICBwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIG9BdXRoU2VydmljZTogT0F1dGhTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGRpYWxvZ1NlcnZpY2U6IEFic3RyYWN0RGlhbG9nU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBzcGlubmVyU2VydmljZTogQWJzdHJhY3RTcGlubmVyU2VydmljZSxcbiAgICAgICAgbmdab25lOiBOZ1pvbmUsXG4gICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgIHByaXZhdGUgYXBwOiBBcHAsXG4gICAgICAgIHByaXZhdGUgYXBwTWFuYWdlcjogQXBwTWFuYWdlclNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgc2V0UGlwZVByb3ZpZGVyKF9waXBlUHJvdmlkZXIpO1xuICAgICAgICBzZXROZ1pvbmUobmdab25lKTtcbiAgICAgICAgc2V0QXBwUmVmKF9hcHBSZWYpO1xuXG4gICAgICAgIHRoaXMuaXNBcHBsaWNhdGlvblR5cGUgPSBnZXRXbVByb2plY3RQcm9wZXJ0aWVzKCkudHlwZSA9PT0gJ0FQUExJQ0FUSU9OJztcblxuICAgICAgICB0aGlzLmFwcE1hbmFnZXIuYmVmb3JlQXBwUmVhZHkoKTsgXG5cbiAgICAgICAgLy8gc3Vic2NyaWJlIHRvIE9BdXRoIGNoYW5nZXNcbiAgICAgICAgb0F1dGhTZXJ2aWNlLmdldE9BdXRoUHJvdmlkZXJzQXNPYnNlcnZhYmxlKCkuc3Vic2NyaWJlKChwcm92aWRlcnM6IGFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5wcm92aWRlcnNDb25maWcgPSBwcm92aWRlcnM7XG4gICAgICAgICAgICBpZiAocHJvdmlkZXJzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2hvd09BdXRoRGlhbG9nKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VPQXV0aERpYWxvZygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBTdWJzY3JpYmUgdG8gdGhlIG1lc3NhZ2Ugc291cmNlIHRvIHNob3cvaGlkZSBhcHAgc3Bpbm5lclxuICAgICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmdldE1lc3NhZ2VTb3VyY2UoKS5hc09ic2VydmFibGUoKS5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgICAgLy8gc2V0VGltZW91dCBpcyB0byBhdm9pZCAnRXhwcmVzc2lvbkNoYW5nZWRBZnRlckl0SGFzQmVlbkNoZWNrZWRFcnJvcidcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc3Bpbm5lci5zaG93ID0gZGF0YS5zaG93O1xuICAgICAgICAgICAgICAgIHRoaXMuc3Bpbm5lci5tZXNzYWdlcyA9IGRhdGEubWVzc2FnZXM7XG4gICAgICAgICAgICAgICAgdGhpcy5zcGlubmVyLmFyaWFsYWJlbCA9IGRhdGEubWVzc2FnZXMudG9TdHJpbmcoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBzZXQgdGhlbWUgdG8gYnMzIG9uIG5neC1ib290c3RyYXAuIFRoaXMgYXZvaWRzIHJ1bnRpbWUgY2FsY3VsYXRpb24gdG8gZGV0ZXJtaW5lIGJzIHRoZW1lLiBUaHVzIHJlc29sdmVzIHBlcmZvcm1hbmNlLlxuICAgICAgICBzZXRUaGVtZSgnYnMzJyk7XG5cbiAgICAgICAgbGV0IHNwaW5uZXJJZDtcblxuICAgICAgICBsZXQgb25QYWdlUmVuZGVyZWQgPSBub29wO1xuXG4gICAgICAgIHRoaXMucm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoZSA9PiB7XG4gICAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCkge1xuICAgICAgICAgICAgICAgIGxldCBwYWdlID0gZS51cmwuc3BsaXQoJz8nKVswXTtcbiAgICAgICAgICAgICAgICBwYWdlID0gcGFnZS5zdWJzdHJpbmcoMSk7XG5cbiAgICAgICAgICAgICAgICBpZiAoIXBhZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHAuYWN0aXZlTGF5b3V0TmFtZSA9ICcnO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcC5sYXlvdXRQYWdlcyA9IFtdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZih0aGlzLmFwcC5hY3RpdmVMYXlvdXROYW1lICYmIHRoaXMuYXBwLmxheW91dFBhZ2VzICYmIHRoaXMuYXBwLmxheW91dFBhZ2VzLmxlbmd0aCAmJiB0aGlzLmFwcC5sYXlvdXRQYWdlcy5pbmNsdWRlcyhwYWdlKSkge1xuICAgICAgICAgICAgICAgICAgICBzcGlubmVySWQgPSB0aGlzLnNwaW5uZXJTZXJ2aWNlLnNob3coJycsICd3bVJvdXRlck91dGxldCcsICcnLCAnd21Sb3V0ZXJPdXRsZXQnKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzcGlubmVySWQgPSB0aGlzLnNwaW5uZXJTZXJ2aWNlLnNob3coJycsICdnbG9iYWxTcGlubmVyJyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3Qgbm9kZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2FwcC1wYWdlLW91dGxldCcpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgICAgICAgIGlmIChub2RlKSB7XG4gICAgICAgICAgICAgICAgICAgIGFkZENsYXNzKG5vZGUsICdwYWdlLWxvYWQtaW4tcHJvZ3Jlc3MnKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBwYWdlTG9hZFN0YXJ0VGltZSA9IERhdGUubm93KCk7XG4gICAgICAgICAgICAgICAgb25QYWdlUmVuZGVyZWQgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZShzcGlubmVySWQpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBub2RlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYXBwLXBhZ2Utb3V0bGV0JykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChub2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVDbGFzcyhub2RlLCAncGFnZS1sb2FkLWluLXByb2dyZXNzJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgb25QYWdlUmVuZGVyZWQgPSBub29wO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcC5hY3RpdmVQYWdlTG9hZFRpbWUgPSBEYXRlLm5vdygpIC0gcGFnZUxvYWRTdGFydFRpbWU7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQgfHwgZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25DYW5jZWwgfHwgZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25FcnJvcikge1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT57XG4gICAgICAgICAgICAgICAgICAgIG9uUGFnZVJlbmRlcmVkKCk7XG4gICAgICAgICAgICAgICAgfSwgMTAwMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmFwcE1hbmFnZXIuc3Vic2NyaWJlKCdwYWdlUmVhZHknLCAoKSA9PiB7XG4gICAgICAgICAgICBvblBhZ2VSZW5kZXJlZCgpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5hcHBNYW5hZ2VyLnN1YnNjcmliZSgncGFnZUF0dGFjaCcsICgpID0+IHtcbiAgICAgICAgICAgIG9uUGFnZVJlbmRlcmVkKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByb3ZpZGVyc0NvbmZpZztcbiAgICBpc09BdXRoRGlhbG9nT3BlbiA9IGZhbHNlO1xuXG4gICAgc2hvd09BdXRoRGlhbG9nKCkge1xuICAgICAgICBpZiAoIXRoaXMuaXNPQXV0aERpYWxvZ09wZW4pIHtcbiAgICAgICAgICAgIHRoaXMuaXNPQXV0aERpYWxvZ09wZW4gPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLm9wZW4oJ29BdXRoTG9naW5EaWFsb2cnLCB0aGlzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNsb3NlT0F1dGhEaWFsb2coKSB7XG4gICAgICAgIGlmICh0aGlzLmlzT0F1dGhEaWFsb2dPcGVuKSB7XG4gICAgICAgICAgICB0aGlzLmlzT0F1dGhEaWFsb2dPcGVuID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuY2xvc2UoJ29BdXRoTG9naW5EaWFsb2cnLCB0aGlzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc3RhcnQoKSB7XG4gICAgICAgIC8vdG8gZml4IHRoZSBpc3N1ZSB0aGF0IGhhcHBlbnMgb25seSBpbiB0aGUgZGV2ZWxvcG1lbnQgbW9kZVxuICAgICAgICAvL0V4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3JcbiAgICAgICAgLy9maXg6IGh0dHBzOi8vYmxvZy5hbmd1bGFyLXVuaXZlcnNpdHkuaW8vYW5ndWxhci1kZWJ1Z2dpbmcvXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zdGFydEFwcCA9IHRydWU7XG4gICAgICAgIH0pO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuYXBwLmR5bmFtaWNDb21wb25lbnRDb250YWluZXJSZWYgPSB0aGlzLmR5bmFtaWNDb21wb25lbnRDb250YWluZXJSZWY7XG4gICAgICAgICAgICB0aGlzLm92ZXJyaWRlUm91dGVyT3V0bGV0KCk7XG4gICAgICAgIH0sIDEwKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG92ZXJyaWRlUm91dGVyT3V0bGV0KCkge1xuICAgICAgICAvL292ZXJyaWRlIHRoZSBhdHRhY2gvZGV0YWNoIG1ldGhvZHNcbiAgICAgICAgY29uc3Qgb0F0dGFjaCA9IHRoaXMucm91dGVyT3V0bGV0LmF0dGFjaDtcbiAgICAgICAgY29uc3Qgb0RldGFjaCA9IHRoaXMucm91dGVyT3V0bGV0LmRldGFjaDtcbiAgICAgICAgdGhpcy5yb3V0ZXJPdXRsZXQuYXR0YWNoID0gKGNvbXBvbmVudFJlZjogYW55KSA9PiB7XG4gICAgICAgICAgICBvQXR0YWNoLmNhbGwodGhpcy5yb3V0ZXJPdXRsZXQsIGNvbXBvbmVudFJlZik7XG4gICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UubmdPbkF0dGFjaCgpO1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLnJvdXRlck91dGxldC5kZXRhY2ggPSAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmFwcC5hY3RpdmVQYWdlLm5nT25EZXRhY2goKTtcbiAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IG9EZXRhY2guY2FsbCh0aGlzLnJvdXRlck91dGxldCk7XG4gICAgICAgICAgICByZXR1cm4gY29tcG9uZW50UmVmO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgaWYgKGhhc0NvcmRvdmEoKSAmJiAhd2luZG93Wyd3bURldmljZVJlYWR5J10pIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3dtRGV2aWNlUmVhZHknICwgKCkgPT4gdGhpcy5zdGFydCgpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RhcnQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nRG9DaGVjaygpIHtcbiAgICAgICAgJGludm9rZVdhdGNoZXJzKCk7XG4gICAgfVxufVxuIl19
@@ -37,10 +37,11 @@ export * from './services/http-interceptor.services';
37
37
  export * from './services/i18n.service';
38
38
  export * from './services/navigation.service';
39
39
  export * from './services/pipe-provider.service';
40
+ export * from './services/pipe.service';
40
41
  export { PrefabManagerService } from './services/prefab-manager.service';
41
42
  export * from './services/spinner.service';
42
43
  export * from './services/toaster.service';
43
44
  export * from './types/types';
44
45
  export * from './util/fragment-monitor';
45
46
  export * from './util/utils';
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3J1bnRpbWUtYmFzZS9zcmMvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHNDQUFzQyxDQUFBO0FBQ3BELE9BQU8sRUFDSCxhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLHVDQUF1QyxFQUN2QyxpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ3RCLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxPQUFPLEVBQ0gsTUFBTSxFQUNULE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxPQUFPLEVBQ0gsa0NBQWtDLEVBQ3JDLE1BQU0sbURBQW1ELENBQUM7QUFDM0QsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxPQUFPLEVBQ0gsb0JBQW9CLEVBQ3ZCLE1BQU0sbUNBQW1DLENBQUM7QUFDM0MsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcmVmYWJNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvcHJlZmFiLW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBSZWYgfSBmcm9tICcuL3NlcnZpY2VzL2FwcC5zZXJ2aWNlJztcbmltcG9ydCB7IER5bmFtaWNDb21wb25lbnRSZWZQcm92aWRlclNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2R5bmFtaWMtY29tcG9uZW50LXJlZi1wcm92aWRlci5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi90eXBlcy90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2FwcC5tYW5hZ2VyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9wcmVmYWItbWFuYWdlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9iYXNlLXBhZ2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9iYXNlLXBhcnRpYWwuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9iYXNlLXByZWZhYi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2Jhc2UtbGF5b3V0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvYmFzZS1zcGEtcGFnZS5jb21wb25lbnQnXG5leHBvcnQge1xuICAgIEluaXRpYWxpemVBcHAsXG4gICAgc2V0QW5ndWxhckxvY2FsZSxcbiAgICBSRVFVSVJFRF9NT0RVTEVTX0ZPUl9EWU5BTUlDX0NPTVBPTkVOVFMsXG4gICAgUnVudGltZUJhc2VNb2R1bGUsXG4gICAgV01fTU9EVUxFU19GT1JfUk9PVFxufSBmcm9tICcuL3J1bnRpbWUtYmFzZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi91dGlsL3V0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vZ3VhcmRzL2F1dGguZ3VhcmQnO1xuZXhwb3J0ICogZnJvbSAnLi9ndWFyZHMvcm9sZS5ndWFyZCc7XG5leHBvcnQgKiBmcm9tICcuL2d1YXJkcy9wYWdlLW5vdC1mb3VuZC5nYXVyZCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvYXBwLWNvbXBvbmVudC9hcHAuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9lbXB0eS1jb21wb25lbnQvZW1wdHktcGFnZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3ByZWZhYi1wcmV2aWV3LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3Jlc29sdmVzL2FwcC1qcy5yZXNvbHZlJztcbmV4cG9ydCAqIGZyb20gJy4vcmVzb2x2ZXMvYXBwLWV4dGVuc2lvbi5yZXNvbHZlJztcbmV4cG9ydCAqIGZyb20gJy4vcmVzb2x2ZXMvYXBwLXZhcmlhYmxlcy5yZXNvbHZlJztcbmV4cG9ydCAqIGZyb20gJy4vcmVzb2x2ZXMvaTE4bi5yZXNvbHZlJztcbmV4cG9ydCAqIGZyb20gJy4vcmVzb2x2ZXMvbWV0YWRhdGEucmVzb2x2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3Jlc29sdmVzL3NlY3VyaXR5LWNvbmZpZy5yZXNvbHZlJztcbmV4cG9ydCAqIGZyb20gJy4vZ3VhcmRzL2Nhbi1kZWFjdGl2YXRlLXBhZ2UuZ3VhcmQnO1xuZXhwb3J0ICogZnJvbSAnLi91dGlsL3dtLXJvdXRlLXJldXNlLXN0cmF0ZWd5JztcbmV4cG9ydCAqIGZyb20gJy4vZ3VhcmRzL3BhZ2Utbm90LWZvdW5kLmdhdXJkJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9hcHAtc3Bpbm5lci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2Jhc2UtcGFnZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2Jhc2UtcGFydGlhbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2N1c3RvbS10b2FzdGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvYWNjZXNzcm9sZXMuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9wcmVmYWIuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZ3VhcmRzL3BhZ2Utbm90LWZvdW5kLmdhdXJkJztcbmV4cG9ydCB7XG4gICAgQXBwUmVmXG59IGZyb20gJy4vc2VydmljZXMvYXBwLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9hcHAtZGVmYXVsdHMuc2VydmljZSc7XG5leHBvcnQge1xuICAgIER5bmFtaWNDb21wb25lbnRSZWZQcm92aWRlclNlcnZpY2Vcbn0gZnJvbSAnLi9zZXJ2aWNlcy9keW5hbWljLWNvbXBvbmVudC1yZWYtcHJvdmlkZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2h0dHAtaW50ZXJjZXB0b3Iuc2VydmljZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9pMThuLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9uYXZpZ2F0aW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9waXBlLXByb3ZpZGVyLnNlcnZpY2UnO1xuZXhwb3J0IHtcbiAgICBQcmVmYWJNYW5hZ2VyU2VydmljZVxufSBmcm9tICcuL3NlcnZpY2VzL3ByZWZhYi1tYW5hZ2VyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9zcGlubmVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy90b2FzdGVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcy90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL3V0aWwvZnJhZ21lbnQtbW9uaXRvcic7XG5leHBvcnQgKiBmcm9tICcuL3V0aWwvdXRpbHMnO1xuIl19
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3J1bnRpbWUtYmFzZS9zcmMvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHNDQUFzQyxDQUFBO0FBQ3BELE9BQU8sRUFDSCxhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLHVDQUF1QyxFQUN2QyxpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ3RCLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxPQUFPLEVBQ0gsTUFBTSxFQUNULE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxPQUFPLEVBQ0gsa0NBQWtDLEVBQ3JDLE1BQU0sbURBQW1ELENBQUM7QUFDM0QsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHlCQUF5QixDQUFBO0FBQ3ZDLE9BQU8sRUFDSCxvQkFBb0IsRUFDdkIsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByZWZhYk1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9wcmVmYWItbWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcFJlZiB9IGZyb20gJy4vc2VydmljZXMvYXBwLnNlcnZpY2UnO1xuaW1wb3J0IHsgRHluYW1pY0NvbXBvbmVudFJlZlByb3ZpZGVyU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZHluYW1pYy1jb21wb25lbnQtcmVmLXByb3ZpZGVyLnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL3R5cGVzL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvYXBwLm1hbmFnZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3ByZWZhYi1tYW5hZ2VyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2Jhc2UtcGFnZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2Jhc2UtcGFydGlhbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2Jhc2UtcHJlZmFiLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvYmFzZS1sYXlvdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9iYXNlLXNwYS1wYWdlLmNvbXBvbmVudCdcbmV4cG9ydCB7XG4gICAgSW5pdGlhbGl6ZUFwcCxcbiAgICBzZXRBbmd1bGFyTG9jYWxlLFxuICAgIFJFUVVJUkVEX01PRFVMRVNfRk9SX0RZTkFNSUNfQ09NUE9ORU5UUyxcbiAgICBSdW50aW1lQmFzZU1vZHVsZSxcbiAgICBXTV9NT0RVTEVTX0ZPUl9ST09UXG59IGZyb20gJy4vcnVudGltZS1iYXNlLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3V0aWwvdXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9ndWFyZHMvYXV0aC5ndWFyZCc7XG5leHBvcnQgKiBmcm9tICcuL2d1YXJkcy9yb2xlLmd1YXJkJztcbmV4cG9ydCAqIGZyb20gJy4vZ3VhcmRzL3BhZ2Utbm90LWZvdW5kLmdhdXJkJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9hcHAtY29tcG9uZW50L2FwcC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2VtcHR5LWNvbXBvbmVudC9lbXB0eS1wYWdlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvcHJlZmFiLXByZXZpZXcuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vcmVzb2x2ZXMvYXBwLWpzLnJlc29sdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9yZXNvbHZlcy9hcHAtZXh0ZW5zaW9uLnJlc29sdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9yZXNvbHZlcy9hcHAtdmFyaWFibGVzLnJlc29sdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9yZXNvbHZlcy9pMThuLnJlc29sdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9yZXNvbHZlcy9tZXRhZGF0YS5yZXNvbHZlJztcbmV4cG9ydCAqIGZyb20gJy4vcmVzb2x2ZXMvc2VjdXJpdHktY29uZmlnLnJlc29sdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9ndWFyZHMvY2FuLWRlYWN0aXZhdGUtcGFnZS5ndWFyZCc7XG5leHBvcnQgKiBmcm9tICcuL3V0aWwvd20tcm91dGUtcmV1c2Utc3RyYXRlZ3knO1xuZXhwb3J0ICogZnJvbSAnLi9ndWFyZHMvcGFnZS1ub3QtZm91bmQuZ2F1cmQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2FwcC1zcGlubmVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvYmFzZS1wYWdlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvYmFzZS1wYXJ0aWFsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvY3VzdG9tLXRvYXN0ZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9hY2Nlc3Nyb2xlcy5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL3ByZWZhYi5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9ndWFyZHMvcGFnZS1ub3QtZm91bmQuZ2F1cmQnO1xuZXhwb3J0IHtcbiAgICBBcHBSZWZcbn0gZnJvbSAnLi9zZXJ2aWNlcy9hcHAuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2FwcC1kZWZhdWx0cy5zZXJ2aWNlJztcbmV4cG9ydCB7XG4gICAgRHluYW1pY0NvbXBvbmVudFJlZlByb3ZpZGVyU2VydmljZVxufSBmcm9tICcuL3NlcnZpY2VzL2R5bmFtaWMtY29tcG9uZW50LXJlZi1wcm92aWRlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvaHR0cC1pbnRlcmNlcHRvci5zZXJ2aWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2kxOG4uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL25hdmlnYXRpb24uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3BpcGUtcHJvdmlkZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3BpcGUuc2VydmljZSdcbmV4cG9ydCB7XG4gICAgUHJlZmFiTWFuYWdlclNlcnZpY2Vcbn0gZnJvbSAnLi9zZXJ2aWNlcy9wcmVmYWItbWFuYWdlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvc3Bpbm5lci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvdG9hc3Rlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi91dGlsL2ZyYWdtZW50LW1vbml0b3InO1xuZXhwb3J0ICogZnJvbSAnLi91dGlsL3V0aWxzJztcbiJdfQ==
@@ -27,6 +27,7 @@ import { ToasterServiceImpl } from './services/toaster.service';
27
27
  import { I18nServiceImpl } from './services/i18n.service';
28
28
  import { SpinnerServiceImpl } from './services/spinner.service';
29
29
  import { NavigationServiceImpl } from './services/navigation.service';
30
+ import { PipeService } from "./services/pipe.service";
30
31
  import { AppDefaultsService } from './services/app-defaults.service';
31
32
  import { AppManagerService } from './services/app.manager.service';
32
33
  import { PrefabManagerService } from './services/prefab-manager.service';
@@ -145,6 +146,7 @@ export class RuntimeBaseModule {
145
146
  useClass: HttpCallInterceptor,
146
147
  multi: true
147
148
  },
149
+ PipeService,
148
150
  DecimalPipe,
149
151
  DatePipe,
150
152
  AppManagerService,
@@ -237,4 +239,4 @@ export const WM_MODULES_FOR_ROOT = [
237
239
  RuntimeBaseModule.forRoot()
238
240
  ];
239
241
  export { ɵ0 };
240
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1iYXNlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3J1bnRpbWUtYmFzZS9zcmMvcnVudGltZS1iYXNlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLGVBQWUsRUFBRSxTQUFTLEVBQXVCLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN4RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFFL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUUxQyxPQUFPLEVBQ0gsZUFBZSxFQUNmLFVBQVUsRUFDVixtQkFBbUIsRUFDbkIseUJBQXlCLEVBQ3pCLHNCQUFzQixFQUN0QixzQkFBc0IsRUFDdEIsR0FBRyxFQUNILFdBQVcsRUFDWCxVQUFVLEVBQ1YsMkJBQTJCLEVBQzNCLFFBQVEsRUFDUixRQUFRLEVBQ1IsTUFBTSxFQUNOLE1BQU0sRUFDTixRQUFRLEVBQ1IsVUFBVSxFQUNiLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztB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QkFDWixtQkFBbUI7b0JBQ25CLFVBQVU7b0JBQ1YsY0FBYztvQkFDZCxXQUFXO29CQUNYLGVBQWU7b0JBQ2YsaUJBQWlCO29CQUNqQix1Q0FBdUM7aUJBQzFDO2dCQUNELE9BQU8sRUFBRTtvQkFDTCxXQUFXO29CQUVYLFlBQVk7b0JBRVosa0JBQWtCO29CQUNsQixtQkFBbUI7b0JBQ25CLFVBQVU7b0JBQ1YsY0FBYztvQkFDZCxXQUFXO29CQUNYLGVBQWU7b0JBQ2YsaUJBQWlCO29CQUNqQix1Q0FBdUM7aUJBQzFDO2dCQUNELFNBQVMsRUFBRTtvQkFDUCxFQUFDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxRQUFRLEVBQUUscUJBQXFCLEVBQUM7b0JBQ2hFLEVBQUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFFBQVEsRUFBRSxxQkFBcUIsRUFBQztpQkFDbkU7Z0JBQ0QsZUFBZSxFQUFFLENBQUMsc0JBQXNCLENBQUM7YUFDNUM7OztZQTdIUSxtQkFBbUI7WUFoQnhCLEdBQUc7WUFRSCxRQUFROztBQTRPWixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRztJQUMvQixrQkFBa0IsQ0FBQyxPQUFPLEVBQUU7SUFDNUIsbUJBQW1CLENBQUMsT0FBTyxFQUFFO0lBQzdCLFVBQVUsQ0FBQyxPQUFPLEVBQUU7SUFDcEIsY0FBYyxDQUFDLE9BQU8sRUFBRTtJQUN4QixXQUFXLENBQUMsT0FBTyxFQUFFO0lBQ3JCLGVBQWUsQ0FBQyxPQUFPLEVBQUU7SUFDekIsaUJBQWlCLENBQUMsT0FBTyxFQUFFO0lBQzNCLGlCQUFpQixDQUFDLE9BQU8sRUFBRTtDQUM5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBUFBfSU5JVElBTElaRVIsIExPQ0FMRV9JRCwgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgRGF0ZVBpcGUsIERlY2ltYWxQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEhUVFBfSU5URVJDRVBUT1JTLCBIdHRwQ2xpZW50TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgybVEb21TaGFyZWRTdHlsZXNIb3N0IH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQge8m1RG9tUmVuZGVyZXJGYWN0b3J5Mn0gZnJvbSBcIkBhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXJcIjtcblxuaW1wb3J0IHsgVG9hc3RyTW9kdWxlIH0gZnJvbSAnbmd4LXRvYXN0cic7XG5cbmltcG9ydCB7XG4gICAgX1dNX0FQUF9QUk9KRUNULFxuICAgICRwYXJzZUV4cHIsXG4gICAgQWJzdHJhY3RJMThuU2VydmljZSxcbiAgICBBYnN0cmFjdE5hdmlnYXRpb25TZXJ2aWNlLFxuICAgIEFic3RyYWN0U3Bpbm5lclNlcnZpY2UsXG4gICAgQWJzdHJhY3RUb2FzdGVyU2VydmljZSxcbiAgICBBcHAsXG4gICAgQXBwRGVmYXVsdHMsXG4gICAgQ29yZU1vZHVsZSxcbiAgICBEeW5hbWljQ29tcG9uZW50UmVmUHJvdmlkZXIsXG4gICAgaXNPYmplY3QsXG4gICAgaXNJcGhvbmUsXG4gICAgaXNJcG9kLFxuICAgIGlzSXBhZCxcbiAgICBWaWV3cG9ydCxcbiAgICBoYXNDb3Jkb3ZhXG59IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7IFdtQ29tcG9uZW50c01vZHVsZSB9IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2UnO1xuaW1wb3J0IHsgRGlhbG9nTW9kdWxlIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvZGlhbG9ncyc7XG5pbXBvcnQgeyBDb25maXJtRGlhbG9nTW9kdWxlIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvZGlhbG9ncy9jb25maXJtLWRpYWxvZyc7XG5pbXBvcnQgeyBEZXNpZ25EaWFsb2dNb2R1bGUgfSBmcm9tICdAd20vY29tcG9uZW50cy9kaWFsb2dzL2Rlc2lnbi1kaWFsb2cnO1xuaW1wb3J0IHsgUHJlZmFiTW9kdWxlIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvcHJlZmFiJztcbmltcG9ydCB7IE1vYmlsZVJ1bnRpbWVNb2R1bGUgfSBmcm9tICdAd20vbW9iaWxlL3J1bnRpbWUnO1xuaW1wb3J0IHsgU2VjdXJpdHlNb2R1bGUgfSBmcm9tICdAd20vc2VjdXJpdHknO1xuaW1wb3J0IHsgSHR0cFNlcnZpY2VNb2R1bGUgfSBmcm9tICdAd20vaHR0cCc7XG5pbXBvcnQgeyBWYXJpYWJsZXNNb2R1bGUgfSBmcm9tICdAd20vdmFyaWFibGVzJztcbmltcG9ydCB7IE9BdXRoTW9kdWxlIH0gZnJvbSAnQHdtL29BdXRoJztcblxuaW1wb3J0IHsgQWNjZXNzcm9sZXNEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvYWNjZXNzcm9sZXMuZGlyZWN0aXZlJztcbmltcG9ydCB7IEFwcFNwaW5uZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYXBwLXNwaW5uZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEN1c3RvbVRvYXN0ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY3VzdG9tLXRvYXN0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEVtcHR5UGFnZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9lbXB0eS1jb21wb25lbnQvZW1wdHktcGFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJlZmFiRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3ByZWZhYi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQXBwUmVmIH0gZnJvbSAnLi9zZXJ2aWNlcy9hcHAuc2VydmljZSc7XG5pbXBvcnQgeyBUb2FzdGVyU2VydmljZUltcGwgfSBmcm9tICcuL3NlcnZpY2VzL3RvYXN0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBJMThuU2VydmljZUltcGwgfSBmcm9tICcuL3NlcnZpY2VzL2kxOG4uc2VydmljZSc7XG5pbXBvcnQgeyBTcGlubmVyU2VydmljZUltcGwgfSBmcm9tICcuL3NlcnZpY2VzL3NwaW5uZXIuc2VydmljZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2VydmljZUltcGwgfSBmcm9tICcuL3NlcnZpY2VzL25hdmlnYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBBcHBEZWZhdWx0c1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2FwcC1kZWZhdWx0cy5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcE1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9hcHAubWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7IFByZWZhYk1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9wcmVmYWItbWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7IEF1dGhHdWFyZCB9IGZyb20gJy4vZ3VhcmRzL2F1dGguZ3VhcmQnO1xuaW1wb3J0IHsgUm9sZUd1YXJkIH0gZnJvbSAnLi9ndWFyZHMvcm9sZS5ndWFyZCc7XG5pbXBvcnQgeyBQYWdlTm90Rm91bmRHYXVyZCB9IGZyb20gJy4vZ3VhcmRzL3BhZ2Utbm90LWZvdW5kLmdhdXJkJztcbmltcG9ydCB7IEFwcEpTUmVzb2x2ZSB9IGZyb20gJy4vcmVzb2x2ZXMvYXBwLWpzLnJlc29sdmUnO1xuaW1wb3J0IHsgQXBwRXh0ZW5zaW9uSlNSZXNvbHZlIH0gZnJvbSAnLi9yZXNvbHZlcy9hcHAtZXh0ZW5zaW9uLnJlc29sdmUnO1xuaW1wb3J0IHsgSTE4blJlc29sdmUgfSBmcm9tICcuL3Jlc29sdmVzL2kxOG4ucmVzb2x2ZSc7XG5pbXBvcnQgeyBBcHBDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYXBwLWNvbXBvbmVudC9hcHAuY29tcG9uZW50JztcbmltcG9ydCB7IEh0dHBDYWxsSW50ZXJjZXB0b3IgfSBmcm9tICcuL3NlcnZpY2VzL2h0dHAtaW50ZXJjZXB0b3Iuc2VydmljZXMnO1xuaW1wb3J0IHsgUHJlZmFiUHJldmlld0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcmVmYWItcHJldmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRHluYW1pY0NvbXBvbmVudFJlZlByb3ZpZGVyU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZHluYW1pYy1jb21wb25lbnQtcmVmLXByb3ZpZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2FuRGVhY3RpdmF0ZVBhZ2VHdWFyZCB9IGZyb20gJy4vZ3VhcmRzL2Nhbi1kZWFjdGl2YXRlLXBhZ2UuZ3VhcmQnO1xuaW1wb3J0IHsgTUFYX0NBQ0hFX0FHRSwgTUFYX0NBQ0hFX1NJWkUgfSBmcm9tICcuL3V0aWwvd20tcm91dGUtcmV1c2Utc3RyYXRlZ3knO1xuXG4vL2FuZ3VsYXIgb3ZlcnJpZGVzXG5pbXBvcnQgeyBXTURvbVNoYXJlZFN0eWxlc0hvc3QgfSBmcm9tIFwiLi9vdmVycmlkZXMvd21fc2hhcmVkX3N0eWxlc19ob3N0XCI7XG5pbXBvcnQgeyBXTURvbVJlbmRlcmVyRmFjdG9yeTIgfSBmcm9tIFwiLi9vdmVycmlkZXMvd21fZG9tX3JlbmRlcmVyXCI7XG5cbmRlY2xhcmUgY29uc3QgX1dNX0FQUF9QUk9QRVJUSUVTO1xuXG5jb25zdCBpbml0aWFsaXplUHJvamVjdERldGFpbHMgPSAoKSA9PiB7XG4gICAgX1dNX0FQUF9QUk9KRUNULmlkID0gaGFzQ29yZG92YSgpID8gX1dNX0FQUF9QUk9QRVJUSUVTLmRpc3BsYXlOYW1lIDogbG9jYXRpb24uaHJlZi5zcGxpdCgnLycpWzNdO1xuICAgIF9XTV9BUFBfUFJPSkVDVC5jZG5VcmwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdbbmFtZT1cImNkblVybFwiXScpICYmIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tuYW1lPVwiY2RuVXJsXCJdJykuZ2V0QXR0cmlidXRlKCdjb250ZW50Jyk7XG4gICAgX1dNX0FQUF9QUk9KRUNULm5nRGVzdCA9ICduZy1idW5kbGUvJztcbn07XG5cbmVudW0gT1Mge1xuICAgIElPUyA9ICdpb3MnLFxuICAgIEFORFJPSUQgPSAnYW5kcm9pZCdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNldHRpbmdQcm92aWRlcihrZXk6IHN0cmluZywgZGVmYXVsdFZhbHVlOiBhbnkpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBwcm92aWRlOiBrZXksXG4gICAgICAgIHVzZVZhbHVlOiBkZWZhdWx0VmFsdWVcbiAgICB9O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIEluaXRpYWxpemVBcHAoSTE4blNlcnZpY2UsIEFwcEpTUmVzb2x2ZSkge1xuICAgIHJldHVybiBhc3luYyAoKSA9PiB7XG4gICAgICAgIGluaXRpYWxpemVQcm9qZWN0RGV0YWlscygpO1xuICAgICAgICAgYXdhaXQgQXBwSlNSZXNvbHZlLnJlc29sdmUoKTtcbiAgICAgICAgcmV0dXJuIEkxOG5TZXJ2aWNlLmxvYWREZWZhdWx0TG9jYWxlKCk7XG4gICAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEFuZ3VsYXJMb2NhbGUoSTE4blNlcnZpY2UpIHtcbiAgICBpbml0aWFsaXplUHJvamVjdERldGFpbHMoKTtcbiAgICByZXR1cm4gSTE4blNlcnZpY2UuZGVkdWNlQXBwTG9jYWxlKCk7XG59XG5cbmNvbnN0IGRlZmluaXRpb25zID0gW1xuICAgIEFjY2Vzc3JvbGVzRGlyZWN0aXZlLFxuICAgIEFwcFNwaW5uZXJDb21wb25lbnQsXG4gICAgQ3VzdG9tVG9hc3RlckNvbXBvbmVudCxcbiAgICBQcmVmYWJEaXJlY3RpdmUsXG4gICAgQXBwQ29tcG9uZW50LFxuICAgIFByZWZhYlByZXZpZXdDb21wb25lbnQsXG4gICAgRW1wdHlQYWdlQ29tcG9uZW50XG5dO1xuXG5leHBvcnQgY29uc3QgUkVRVUlSRURfTU9EVUxFU19GT1JfRFlOQU1JQ19DT01QT05FTlRTID0gW1xuICAgIENvbmZpcm1EaWFsb2dNb2R1bGUsXG4gICAgRGVzaWduRGlhbG9nTW9kdWxlLFxuICAgIERpYWxvZ01vZHVsZVxuXTtcblxuLy8gc2V0dGluZyBwYXJzZUV4cHIgYXMgZXhwckV2YWx1YXRvciBmb3Igc3dpcGVBbmltYXRpb25cbigkLmZuIGFzIGFueSkuc3dpcGVBbmltYXRpb24uZXhwcmVzc2lvbkV2YWx1YXRvciA9ICRwYXJzZUV4cHI7XG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBkZWZpbml0aW9ucyxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgUm91dGVyTW9kdWxlLFxuICAgICAgICBIdHRwQ2xpZW50TW9kdWxlLFxuXG4gICAgICAgIFRvYXN0ck1vZHVsZSxcbiAgICAgICAgV21Db21wb25lbnRzTW9kdWxlLFxuICAgICAgICBQcmVmYWJNb2R1bGUsXG4gICAgICAgIE1vYmlsZVJ1bnRpbWVNb2R1bGUsXG4gICAgICAgIENvcmVNb2R1bGUsXG4gICAgICAgIFNlY3VyaXR5TW9kdWxlLFxuICAgICAgICBPQXV0aE1vZHVsZSxcbiAgICAgICAgVmFyaWFibGVzTW9kdWxlLFxuICAgICAgICBIdHRwU2VydmljZU1vZHVsZSxcbiAgICAgICAgUkVRVUlSRURfTU9EVUxFU19GT1JfRFlOQU1JQ19DT01QT05FTlRTXG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIGRlZmluaXRpb25zLFxuXG4gICAgICAgIENvbW1vbk1vZHVsZSxcblxuICAgICAgICBXbUNvbXBvbmVudHNNb2R1bGUsXG4gICAgICAgIE1vYmlsZVJ1bnRpbWVNb2R1bGUsXG4gICAgICAgIENvcmVNb2R1bGUsXG4gICAgICAgIFNlY3VyaXR5TW9kdWxlLFxuICAgICAgICBPQXV0aE1vZHVsZSxcbiAgICAgICAgVmFyaWFibGVzTW9kdWxlLFxuICAgICAgICBIdHRwU2VydmljZU1vZHVsZSxcbiAgICAgICAgUkVRVUlSRURfTU9EVUxFU19GT1JfRFlOQU1JQ19DT01QT05FTlRTXG4gICAgXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge3Byb3ZpZGU6IMm1RG9tU2hhcmVkU3R5bGVzSG9zdCwgdXNlQ2xhc3M6IFdNRG9tU2hhcmVkU3R5bGVzSG9zdH0sXG4gICAgICAgIHtwcm92aWRlOiDJtURvbVJlbmRlcmVyRmFjdG9yeTIsIHVzZUNsYXNzOiBXTURvbVJlbmRlcmVyRmFjdG9yeTJ9XG4gICAgXSxcbiAgICBlbnRyeUNvbXBvbmVudHM6IFtDdXN0b21Ub2FzdGVyQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBSdW50aW1lQmFzZU1vZHVsZSB7XG5cbiAgICAvLyB0aGlzIHBvbHlmaWxsIGlzIHRvIGFkZCBzdXBwb3J0IGZvciBDdXN0b21FdmVudCBpbiBJRTExXG4gICAgc3RhdGljIGFkZEN1c3RvbUV2ZW50UG9seWZpbGwoKSB7XG4gICAgICAgICAgICBpZiAoIHR5cGVvZiB3aW5kb3dbJ0N1c3RvbUV2ZW50J10gPT09ICdmdW5jdGlvbicgKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gQWRkaW5nIHR5cGUgYXMgYW55IHRvIGF2b2lkIGVycm9yIFRTMjMyMlxuICAgICAgICAgICAgY29uc3QgQ3VzdG9tRXZlbnQ6IGFueSA9IChldmVudCwgcGFyYW1zKSA9PiB7XG4gICAgICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zIHx8IHsgYnViYmxlczogZmFsc2UsIGNhbmNlbGFibGU6IGZhbHNlLCBkZXRhaWw6IG51bGwgfTtcbiAgICAgICAgICAgICAgICBjb25zdCBldnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCggJ0N1c3RvbUV2ZW50JyApO1xuICAgICAgICAgICAgICAgIGV2dC5pbml0Q3VzdG9tRXZlbnQoIGV2ZW50LCBwYXJhbXMuYnViYmxlcywgcGFyYW1zLmNhbmNlbGFibGUsIHBhcmFtcy5kZXRhaWwgKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZXZ0O1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgQ3VzdG9tRXZlbnQucHJvdG90eXBlID0gd2luZG93WydFdmVudCddLnByb3RvdHlwZTtcbiAgICAgICAgICAgIC8vICMjIyBBTkdVTEFSOVRPRE8gIyMjXG4gICAgICAgICAgICB3aW5kb3dbJ0N1c3RvbUV2ZW50J10gPSBDdXN0b21FdmVudDtcbiAgICB9XG5cbiAgICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFJ1bnRpbWVCYXNlTW9kdWxlPiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuZ01vZHVsZTogUnVudGltZUJhc2VNb2R1bGUsXG4gICAgICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICAgICAgICB7cHJvdmlkZTogQXBwLCB1c2VDbGFzczogQXBwUmVmfSxcbiAgICAgICAgICAgICAgICB7cHJvdmlkZTogQWJzdHJhY3RUb2FzdGVyU2VydmljZSwgdXNlQ2xhc3M6IFRvYXN0ZXJTZXJ2aWNlSW1wbH0sXG4gICAgICAgICAgICAgICAge3Byb3ZpZGU6IEFic3RyYWN0STE4blNlcnZpY2UsIHVzZUNsYXNzOiBJMThuU2VydmljZUltcGx9LFxuICAgICAgICAgICAgICAgIHtwcm92aWRlOiBBYnN0cmFjdFNwaW5uZXJTZXJ2aWNlLCB1c2VDbGFzczogU3Bpbm5lclNlcnZpY2VJbXBsfSxcbiAgICAgICAgICAgICAgICB7cHJvdmlkZTogQWJzdHJhY3ROYXZpZ2F0aW9uU2VydmljZSwgdXNlQ2xhc3M6IE5hdmlnYXRpb25TZXJ2aWNlSW1wbH0sXG4gICAgICAgICAgICAgICAge3Byb3ZpZGU6IEFwcERlZmF1bHRzLCB1c2VDbGFzczogQXBwRGVmYXVsdHNTZXJ2aWNlfSxcbiAgICAgICAgICAgICAgICB7cHJvdmlkZTogRHluYW1pY0NvbXBvbmVudFJlZlByb3ZpZGVyLCB1c2VDbGFzczogRHluYW1pY0NvbXBvbmVudFJlZlByb3ZpZGVyU2VydmljZX0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gICAgICAgICAgICAgICAgICAgIHVzZUZhY3Rvcnk6IEluaXRpYWxpemVBcHAsXG4gICAgICAgICAgICAgICAgICAgIGRlcHM6IFtBYnN0cmFjdEkxOG5TZXJ2aWNlLCBBcHBKU1Jlc29sdmVdLFxuICAgICAgICAgICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBMT0NBTEVfSUQsXG4gICAgICAgICAgICAgICAgICAgIHVzZUZhY3Rvcnk6IHNldEFuZ3VsYXJMb2NhbGUsXG4gICAgICAgICAgICAgICAgICAgIGRlcHM6IFtBYnN0cmFjdEkxOG5TZXJ2aWNlXVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBIVFRQX0lOVEVSQ0VQVE9SUyxcbiAgICAgICAgICAgICAgICAgICAgdXNlQ2xhc3M6IEh0dHBDYWxsSW50ZXJjZXB0b3IsXG4gICAgICAgICAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBEZWNpbWFsUGlwZSxcbiAgICAgICAgICAgICAgICBEYXRlUGlwZSxcbiAgICAgICAgICAgICAgICBBcHBNYW5hZ2VyU2VydmljZSxcbiAgICAgICAgICAgICAgICBQcmVmYWJNYW5hZ2VyU2VydmljZSxcbiAgICAgICAgICAgICAgICBBdXRoR3VhcmQsXG4gICAgICAgICAgICAgICAgUm9sZUd1YXJkLFxuICAgICAgICAgICAgICAgIFBhZ2VOb3RGb3VuZEdhdXJkLFxuICAgICAgICAgICAgICAgIENhbkRlYWN0aXZhdGVQYWdlR3VhcmQsXG4gICAgICAgICAgICAgICAgQXBwSlNSZXNvbHZlLFxuICAgICAgICAgICAgICAgIEFwcEV4dGVuc2lvbkpTUmVzb2x2ZSxcbiAgICAgICAgICAgICAgICBJMThuUmVzb2x2ZSxcbiAgICAgICAgICAgICAgICBnZXRTZXR0aW5nUHJvdmlkZXIoTUFYX0NBQ0hFX1NJWkUsIDEwKSxcbiAgICAgICAgICAgICAgICBnZXRTZXR0aW5nUHJvdmlkZXIoTUFYX0NBQ0hFX0FHRSwgMzAgKiA2MClcbiAgICAgICAgICAgIF1cbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihtb2JpbGVSdW50aW1lTW9kdWxlOiBNb2JpbGVSdW50aW1lTW9kdWxlLFxuICAgICAgICAgICAgICAgIGFwcDogQXBwLFxuICAgICAgICAgICAgICAgIHZpZXdwb3J0OiBWaWV3cG9ydCkge1xuICAgICAgICBSdW50aW1lQmFzZU1vZHVsZS5hZGRDdXN0b21FdmVudFBvbHlmaWxsKCk7XG5cbiAgICAgICAgdGhpcy5nZXREZXZpY2VEZXRhaWxzKCkudGhlbihkZXRhaWxzID0+IHtcbiAgICAgICAgICAgIGFwcC5zZWxlY3RlZFZpZXdQb3J0ID0ge1xuICAgICAgICAgICAgICAgIG9zOiBkZXRhaWxzLm9zLFxuICAgICAgICAgICAgICAgIGNhdGVnb3J5OiBkZXRhaWxzLnNlbGVjdGVkRGV2aWNlQ2F0ZWdvcnlcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB2aWV3cG9ydC51cGRhdGUoZGV0YWlscyk7XG4gICAgICAgICAgICBhcHAubm90aWZ5KCdvbi12aWV3cG9ydC1kZXRhaWxzJywgZGV0YWlscy5vcyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuXG4gICAgcHJpdmF0ZSBnZXREZXZpY2VEZXRhaWxzKCk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxhbnk+KGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgICAgIGNvbnN0IG1zZ0NvbnRlbnQgPSB7a2V5OiAnb24tbG9hZCd9O1xuICAgICAgICAgICAgLy8gTm90aWZ5IHByZXZpZXcgd2luZG93IHRoYXQgYXBwbGljYXRpb24gaXMgcmVhZHkuIE90aGVyd2lzZSwgaWRlbnRpZnkgdGhlIE9TLlxuICAgICAgICAgICAgaWYgKHdpbmRvdy50b3AgIT09IHdpbmRvdykge1xuICAgICAgICAgICAgICAgIHdpbmRvdy50b3AucG9zdE1lc3NhZ2UobXNnQ29udGVudCwgJyonKTtcbiAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIGZvciBwcmV2aWV3IHBhZ2VcbiAgICAgICAgICAgICAgICB3aW5kb3cub25tZXNzYWdlID0gZnVuY3Rpb24gKG1zZykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gbXNnLmRhdGE7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc09iamVjdChkYXRhKSAmJiBkYXRhLmtleSA9PT0gJ3N3aXRjaC1kZXZpY2UnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGRhdGEuZGV2aWNlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGlzSXBob25lKCkgfHwgaXNJcG9kKCkgfHwgaXNJcGFkKCkpIHtcbiAgICAgICAgICAgICAgICByZXNvbHZlKHsnb3MnOiBPUy5JT1N9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZSh7J29zJzogT1MuQU5EUk9JRH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG5cbmV4cG9ydCBjb25zdCBXTV9NT0RVTEVTX0ZPUl9ST09UID0gW1xuICAgIFdtQ29tcG9uZW50c01vZHVsZS5mb3JSb290KCksXG4gICAgTW9iaWxlUnVudGltZU1vZHVsZS5mb3JSb290KCksXG4gICAgQ29yZU1vZHVsZS5mb3JSb290KCksXG4gICAgU2VjdXJpdHlNb2R1bGUuZm9yUm9vdCgpLFxuICAgIE9BdXRoTW9kdWxlLmZvclJvb3QoKSxcbiAgICBWYXJpYWJsZXNNb2R1bGUuZm9yUm9vdCgpLFxuICAgIEh0dHBTZXJ2aWNlTW9kdWxlLmZvclJvb3QoKSxcbiAgICBSdW50aW1lQmFzZU1vZHVsZS5mb3JSb290KClcbl07XG4iXX0=
242
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1iYXNlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3J1bnRpbWUtYmFzZS9zcmMvcnVudGltZS1iYXNlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLGVBQWUsRUFBRSxTQUFTLEVBQXVCLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN4RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFFL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUUxQyxPQUFPLEVBQ0gsZUFBZSxFQUNmLFVBQVUsRUFDVixtQkFBbUIsRUFDbkIseUJBQXlCLEVBQ3pCLHNCQUFzQixFQUN0QixzQkFBc0IsRUFDdEIsR0FBRyxFQUNILFdBQVcsRUFDWCxVQUFVLEVBQ1YsMkJBQTJCLEVBQzNCLFFBQVEsRUFDUixRQUFRLEVBQ1IsTUFBTSxFQUNOLE1BQU0sRUFDTixRQUFRLEVBQ1IsVUFBVSxFQUNiLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztB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QVk7b0JBQ1osZ0JBQWdCO29CQUVoQixZQUFZO29CQUNaLGtCQUFrQjtvQkFDbEIsWUFBWTtvQkFDWixtQkFBbUI7b0JBQ25CLFVBQVU7b0JBQ1YsY0FBYztvQkFDZCxXQUFXO29CQUNYLGVBQWU7b0JBQ2YsaUJBQWlCO29CQUNqQix1Q0FBdUM7aUJBQzFDO2dCQUNELE9BQU8sRUFBRTtvQkFDTCxXQUFXO29CQUVYLFlBQVk7b0JBRVosa0JBQWtCO29CQUNsQixtQkFBbUI7b0JBQ25CLFVBQVU7b0JBQ1YsY0FBYztvQkFDZCxXQUFXO29CQUNYLGVBQWU7b0JBQ2YsaUJBQWlCO29CQUNqQix1Q0FBdUM7aUJBQzFDO2dCQUNELFNBQVMsRUFBRTtvQkFDUCxFQUFDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxRQUFRLEVBQUUscUJBQXFCLEVBQUM7b0JBQ2hFLEVBQUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFFBQVEsRUFBRSxxQkFBcUIsRUFBQztpQkFDbkU7Z0JBQ0QsZUFBZSxFQUFFLENBQUMsc0JBQXNCLENBQUM7YUFDNUM7OztZQTlIUSxtQkFBbUI7WUFoQnhCLEdBQUc7WUFRSCxRQUFROztBQThPWixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRztJQUMvQixrQkFBa0IsQ0FBQyxPQUFPLEVBQUU7SUFDNUIsbUJBQW1CLENBQUMsT0FBTyxFQUFFO0lBQzdCLFVBQVUsQ0FBQyxPQUFPLEVBQUU7SUFDcEIsY0FBYyxDQUFDLE9BQU8sRUFBRTtJQUN4QixXQUFXLENBQUMsT0FBTyxFQUFFO0lBQ3JCLGVBQWUsQ0FBQyxPQUFPLEVBQUU7SUFDekIsaUJBQWlCLENBQUMsT0FBTyxFQUFFO0lBQzNCLGlCQUFpQixDQUFDLE9BQU8sRUFBRTtDQUM5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBUFBfSU5JVElBTElaRVIsIExPQ0FMRV9JRCwgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgRGF0ZVBpcGUsIERlY2ltYWxQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEhUVFBfSU5URVJDRVBUT1JTLCBIdHRwQ2xpZW50TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgybVEb21TaGFyZWRTdHlsZXNIb3N0IH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQge8m1RG9tUmVuZGVyZXJGYWN0b3J5Mn0gZnJvbSBcIkBhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXJcIjtcblxuaW1wb3J0IHsgVG9hc3RyTW9kdWxlIH0gZnJvbSAnbmd4LXRvYXN0cic7XG5cbmltcG9ydCB7XG4gICAgX1dNX0FQUF9QUk9KRUNULFxuICAgICRwYXJzZUV4cHIsXG4gICAgQWJzdHJhY3RJMThuU2VydmljZSxcbiAgICBBYnN0cmFjdE5hdmlnYXRpb25TZXJ2aWNlLFxuICAgIEFic3RyYWN0U3Bpbm5lclNlcnZpY2UsXG4gICAgQWJzdHJhY3RUb2FzdGVyU2VydmljZSxcbiAgICBBcHAsXG4gICAgQXBwRGVmYXVsdHMsXG4gICAgQ29yZU1vZHVsZSxcbiAgICBEeW5hbWljQ29tcG9uZW50UmVmUHJvdmlkZXIsXG4gICAgaXNPYmplY3QsXG4gICAgaXNJcGhvbmUsXG4gICAgaXNJcG9kLFxuICAgIGlzSXBhZCxcbiAgICBWaWV3cG9ydCxcbiAgICBoYXNDb3Jkb3ZhXG59IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7IFdtQ29tcG9uZW50c01vZHVsZSB9IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2UnO1xuaW1wb3J0IHsgRGlhbG9nTW9kdWxlIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvZGlhbG9ncyc7XG5pbXBvcnQgeyBDb25maXJtRGlhbG9nTW9kdWxlIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvZGlhbG9ncy9jb25maXJtLWRpYWxvZyc7XG5pbXBvcnQgeyBEZXNpZ25EaWFsb2dNb2R1bGUgfSBmcm9tICdAd20vY29tcG9uZW50cy9kaWFsb2dzL2Rlc2lnbi1kaWFsb2cnO1xuaW1wb3J0IHsgUHJlZmFiTW9kdWxlIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvcHJlZmFiJztcbmltcG9ydCB7IE1vYmlsZVJ1bnRpbWVNb2R1bGUgfSBmcm9tICdAd20vbW9iaWxlL3J1bnRpbWUnO1xuaW1wb3J0IHsgU2VjdXJpdHlNb2R1bGUgfSBmcm9tICdAd20vc2VjdXJpdHknO1xuaW1wb3J0IHsgSHR0cFNlcnZpY2VNb2R1bGUgfSBmcm9tICdAd20vaHR0cCc7XG5pbXBvcnQgeyBWYXJpYWJsZXNNb2R1bGUgfSBmcm9tICdAd20vdmFyaWFibGVzJztcbmltcG9ydCB7IE9BdXRoTW9kdWxlIH0gZnJvbSAnQHdtL29BdXRoJztcblxuaW1wb3J0IHsgQWNjZXNzcm9sZXNEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvYWNjZXNzcm9sZXMuZGlyZWN0aXZlJztcbmltcG9ydCB7IEFwcFNwaW5uZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYXBwLXNwaW5uZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEN1c3RvbVRvYXN0ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY3VzdG9tLXRvYXN0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEVtcHR5UGFnZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9lbXB0eS1jb21wb25lbnQvZW1wdHktcGFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJlZmFiRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3ByZWZhYi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQXBwUmVmIH0gZnJvbSAnLi9zZXJ2aWNlcy9hcHAuc2VydmljZSc7XG5pbXBvcnQgeyBUb2FzdGVyU2VydmljZUltcGwgfSBmcm9tICcuL3NlcnZpY2VzL3RvYXN0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBJMThuU2VydmljZUltcGwgfSBmcm9tICcuL3NlcnZpY2VzL2kxOG4uc2VydmljZSc7XG5pbXBvcnQgeyBTcGlubmVyU2VydmljZUltcGwgfSBmcm9tICcuL3NlcnZpY2VzL3NwaW5uZXIuc2VydmljZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2VydmljZUltcGwgfSBmcm9tICcuL3NlcnZpY2VzL25hdmlnYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBQaXBlU2VydmljZSB9IGZyb20gXCIuL3NlcnZpY2VzL3BpcGUuc2VydmljZVwiO1xuaW1wb3J0IHsgQXBwRGVmYXVsdHNTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9hcHAtZGVmYXVsdHMuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvYXBwLm1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBQcmVmYWJNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvcHJlZmFiLW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBdXRoR3VhcmQgfSBmcm9tICcuL2d1YXJkcy9hdXRoLmd1YXJkJztcbmltcG9ydCB7IFJvbGVHdWFyZCB9IGZyb20gJy4vZ3VhcmRzL3JvbGUuZ3VhcmQnO1xuaW1wb3J0IHsgUGFnZU5vdEZvdW5kR2F1cmQgfSBmcm9tICcuL2d1YXJkcy9wYWdlLW5vdC1mb3VuZC5nYXVyZCc7XG5pbXBvcnQgeyBBcHBKU1Jlc29sdmUgfSBmcm9tICcuL3Jlc29sdmVzL2FwcC1qcy5yZXNvbHZlJztcbmltcG9ydCB7IEFwcEV4dGVuc2lvbkpTUmVzb2x2ZSB9IGZyb20gJy4vcmVzb2x2ZXMvYXBwLWV4dGVuc2lvbi5yZXNvbHZlJztcbmltcG9ydCB7IEkxOG5SZXNvbHZlIH0gZnJvbSAnLi9yZXNvbHZlcy9pMThuLnJlc29sdmUnO1xuaW1wb3J0IHsgQXBwQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FwcC1jb21wb25lbnQvYXBwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIdHRwQ2FsbEludGVyY2VwdG9yIH0gZnJvbSAnLi9zZXJ2aWNlcy9odHRwLWludGVyY2VwdG9yLnNlcnZpY2VzJztcbmltcG9ydCB7IFByZWZhYlByZXZpZXdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJlZmFiLXByZXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IER5bmFtaWNDb21wb25lbnRSZWZQcm92aWRlclNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2R5bmFtaWMtY29tcG9uZW50LXJlZi1wcm92aWRlci5zZXJ2aWNlJztcbmltcG9ydCB7IENhbkRlYWN0aXZhdGVQYWdlR3VhcmQgfSBmcm9tICcuL2d1YXJkcy9jYW4tZGVhY3RpdmF0ZS1wYWdlLmd1YXJkJztcbmltcG9ydCB7IE1BWF9DQUNIRV9BR0UsIE1BWF9DQUNIRV9TSVpFIH0gZnJvbSAnLi91dGlsL3dtLXJvdXRlLXJldXNlLXN0cmF0ZWd5JztcblxuLy9hbmd1bGFyIG92ZXJyaWRlc1xuaW1wb3J0IHsgV01Eb21TaGFyZWRTdHlsZXNIb3N0IH0gZnJvbSBcIi4vb3ZlcnJpZGVzL3dtX3NoYXJlZF9zdHlsZXNfaG9zdFwiO1xuaW1wb3J0IHsgV01Eb21SZW5kZXJlckZhY3RvcnkyIH0gZnJvbSBcIi4vb3ZlcnJpZGVzL3dtX2RvbV9yZW5kZXJlclwiO1xuXG5kZWNsYXJlIGNvbnN0IF9XTV9BUFBfUFJPUEVSVElFUztcblxuY29uc3QgaW5pdGlhbGl6ZVByb2plY3REZXRhaWxzID0gKCkgPT4ge1xuICAgIF9XTV9BUFBfUFJPSkVDVC5pZCA9IGhhc0NvcmRvdmEoKSA/IF9XTV9BUFBfUFJPUEVSVElFUy5kaXNwbGF5TmFtZSA6IGxvY2F0aW9uLmhyZWYuc3BsaXQoJy8nKVszXTtcbiAgICBfV01fQVBQX1BST0pFQ1QuY2RuVXJsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW25hbWU9XCJjZG5VcmxcIl0nKSAmJiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdbbmFtZT1cImNkblVybFwiXScpLmdldEF0dHJpYnV0ZSgnY29udGVudCcpO1xuICAgIF9XTV9BUFBfUFJPSkVDVC5uZ0Rlc3QgPSAnbmctYnVuZGxlLyc7XG59O1xuXG5lbnVtIE9TIHtcbiAgICBJT1MgPSAnaW9zJyxcbiAgICBBTkRST0lEID0gJ2FuZHJvaWQnXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZXR0aW5nUHJvdmlkZXIoa2V5OiBzdHJpbmcsIGRlZmF1bHRWYWx1ZTogYW55KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcHJvdmlkZToga2V5LFxuICAgICAgICB1c2VWYWx1ZTogZGVmYXVsdFZhbHVlXG4gICAgfTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBJbml0aWFsaXplQXBwKEkxOG5TZXJ2aWNlLCBBcHBKU1Jlc29sdmUpIHtcbiAgICByZXR1cm4gYXN5bmMgKCkgPT4ge1xuICAgICAgICBpbml0aWFsaXplUHJvamVjdERldGFpbHMoKTtcbiAgICAgICAgIGF3YWl0IEFwcEpTUmVzb2x2ZS5yZXNvbHZlKCk7XG4gICAgICAgIHJldHVybiBJMThuU2VydmljZS5sb2FkRGVmYXVsdExvY2FsZSgpO1xuICAgIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRBbmd1bGFyTG9jYWxlKEkxOG5TZXJ2aWNlKSB7XG4gICAgaW5pdGlhbGl6ZVByb2plY3REZXRhaWxzKCk7XG4gICAgcmV0dXJuIEkxOG5TZXJ2aWNlLmRlZHVjZUFwcExvY2FsZSgpO1xufVxuXG5jb25zdCBkZWZpbml0aW9ucyA9IFtcbiAgICBBY2Nlc3Nyb2xlc0RpcmVjdGl2ZSxcbiAgICBBcHBTcGlubmVyQ29tcG9uZW50LFxuICAgIEN1c3RvbVRvYXN0ZXJDb21wb25lbnQsXG4gICAgUHJlZmFiRGlyZWN0aXZlLFxuICAgIEFwcENvbXBvbmVudCxcbiAgICBQcmVmYWJQcmV2aWV3Q29tcG9uZW50LFxuICAgIEVtcHR5UGFnZUNvbXBvbmVudFxuXTtcblxuZXhwb3J0IGNvbnN0IFJFUVVJUkVEX01PRFVMRVNfRk9SX0RZTkFNSUNfQ09NUE9ORU5UUyA9IFtcbiAgICBDb25maXJtRGlhbG9nTW9kdWxlLFxuICAgIERlc2lnbkRpYWxvZ01vZHVsZSxcbiAgICBEaWFsb2dNb2R1bGVcbl07XG5cbi8vIHNldHRpbmcgcGFyc2VFeHByIGFzIGV4cHJFdmFsdWF0b3IgZm9yIHN3aXBlQW5pbWF0aW9uXG4oJC5mbiBhcyBhbnkpLnN3aXBlQW5pbWF0aW9uLmV4cHJlc3Npb25FdmFsdWF0b3IgPSAkcGFyc2VFeHByO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogZGVmaW5pdGlvbnMsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIFJvdXRlck1vZHVsZSxcbiAgICAgICAgSHR0cENsaWVudE1vZHVsZSxcblxuICAgICAgICBUb2FzdHJNb2R1bGUsXG4gICAgICAgIFdtQ29tcG9uZW50c01vZHVsZSxcbiAgICAgICAgUHJlZmFiTW9kdWxlLFxuICAgICAgICBNb2JpbGVSdW50aW1lTW9kdWxlLFxuICAgICAgICBDb3JlTW9kdWxlLFxuICAgICAgICBTZWN1cml0eU1vZHVsZSxcbiAgICAgICAgT0F1dGhNb2R1bGUsXG4gICAgICAgIFZhcmlhYmxlc01vZHVsZSxcbiAgICAgICAgSHR0cFNlcnZpY2VNb2R1bGUsXG4gICAgICAgIFJFUVVJUkVEX01PRFVMRVNfRk9SX0RZTkFNSUNfQ09NUE9ORU5UU1xuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBkZWZpbml0aW9ucyxcblxuICAgICAgICBDb21tb25Nb2R1bGUsXG5cbiAgICAgICAgV21Db21wb25lbnRzTW9kdWxlLFxuICAgICAgICBNb2JpbGVSdW50aW1lTW9kdWxlLFxuICAgICAgICBDb3JlTW9kdWxlLFxuICAgICAgICBTZWN1cml0eU1vZHVsZSxcbiAgICAgICAgT0F1dGhNb2R1bGUsXG4gICAgICAgIFZhcmlhYmxlc01vZHVsZSxcbiAgICAgICAgSHR0cFNlcnZpY2VNb2R1bGUsXG4gICAgICAgIFJFUVVJUkVEX01PRFVMRVNfRk9SX0RZTkFNSUNfQ09NUE9ORU5UU1xuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtwcm92aWRlOiDJtURvbVNoYXJlZFN0eWxlc0hvc3QsIHVzZUNsYXNzOiBXTURvbVNoYXJlZFN0eWxlc0hvc3R9LFxuICAgICAgICB7cHJvdmlkZTogybVEb21SZW5kZXJlckZhY3RvcnkyLCB1c2VDbGFzczogV01Eb21SZW5kZXJlckZhY3RvcnkyfVxuICAgIF0sXG4gICAgZW50cnlDb21wb25lbnRzOiBbQ3VzdG9tVG9hc3RlckNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgUnVudGltZUJhc2VNb2R1bGUge1xuXG4gICAgLy8gdGhpcyBwb2x5ZmlsbCBpcyB0byBhZGQgc3VwcG9ydCBmb3IgQ3VzdG9tRXZlbnQgaW4gSUUxMVxuICAgIHN0YXRpYyBhZGRDdXN0b21FdmVudFBvbHlmaWxsKCkge1xuICAgICAgICAgICAgaWYgKCB0eXBlb2Ygd2luZG93WydDdXN0b21FdmVudCddID09PSAnZnVuY3Rpb24nICkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEFkZGluZyB0eXBlIGFzIGFueSB0byBhdm9pZCBlcnJvciBUUzIzMjJcbiAgICAgICAgICAgIGNvbnN0IEN1c3RvbUV2ZW50OiBhbnkgPSAoZXZlbnQsIHBhcmFtcykgPT4ge1xuICAgICAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcyB8fCB7IGJ1YmJsZXM6IGZhbHNlLCBjYW5jZWxhYmxlOiBmYWxzZSwgZGV0YWlsOiBudWxsIH07XG4gICAgICAgICAgICAgICAgY29uc3QgZXZ0ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoICdDdXN0b21FdmVudCcgKTtcbiAgICAgICAgICAgICAgICBldnQuaW5pdEN1c3RvbUV2ZW50KCBldmVudCwgcGFyYW1zLmJ1YmJsZXMsIHBhcmFtcy5jYW5jZWxhYmxlLCBwYXJhbXMuZGV0YWlsICk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGV2dDtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIEN1c3RvbUV2ZW50LnByb3RvdHlwZSA9IHdpbmRvd1snRXZlbnQnXS5wcm90b3R5cGU7XG4gICAgICAgICAgICAvLyAjIyMgQU5HVUxBUjlUT0RPICMjI1xuICAgICAgICAgICAgd2luZG93WydDdXN0b21FdmVudCddID0gQ3VzdG9tRXZlbnQ7XG4gICAgfVxuXG4gICAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxSdW50aW1lQmFzZU1vZHVsZT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmdNb2R1bGU6IFJ1bnRpbWVCYXNlTW9kdWxlLFxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICAgICAge3Byb3ZpZGU6IEFwcCwgdXNlQ2xhc3M6IEFwcFJlZn0sXG4gICAgICAgICAgICAgICAge3Byb3ZpZGU6IEFic3RyYWN0VG9hc3RlclNlcnZpY2UsIHVzZUNsYXNzOiBUb2FzdGVyU2VydmljZUltcGx9LFxuICAgICAgICAgICAgICAgIHtwcm92aWRlOiBBYnN0cmFjdEkxOG5TZXJ2aWNlLCB1c2VDbGFzczogSTE4blNlcnZpY2VJbXBsfSxcbiAgICAgICAgICAgICAgICB7cHJvdmlkZTogQWJzdHJhY3RTcGlubmVyU2VydmljZSwgdXNlQ2xhc3M6IFNwaW5uZXJTZXJ2aWNlSW1wbH0sXG4gICAgICAgICAgICAgICAge3Byb3ZpZGU6IEFic3RyYWN0TmF2aWdhdGlvblNlcnZpY2UsIHVzZUNsYXNzOiBOYXZpZ2F0aW9uU2VydmljZUltcGx9LFxuICAgICAgICAgICAgICAgIHtwcm92aWRlOiBBcHBEZWZhdWx0cywgdXNlQ2xhc3M6IEFwcERlZmF1bHRzU2VydmljZX0sXG4gICAgICAgICAgICAgICAge3Byb3ZpZGU6IER5bmFtaWNDb21wb25lbnRSZWZQcm92aWRlciwgdXNlQ2xhc3M6IER5bmFtaWNDb21wb25lbnRSZWZQcm92aWRlclNlcnZpY2V9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxuICAgICAgICAgICAgICAgICAgICB1c2VGYWN0b3J5OiBJbml0aWFsaXplQXBwLFxuICAgICAgICAgICAgICAgICAgICBkZXBzOiBbQWJzdHJhY3RJMThuU2VydmljZSwgQXBwSlNSZXNvbHZlXSxcbiAgICAgICAgICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogTE9DQUxFX0lELFxuICAgICAgICAgICAgICAgICAgICB1c2VGYWN0b3J5OiBzZXRBbmd1bGFyTG9jYWxlLFxuICAgICAgICAgICAgICAgICAgICBkZXBzOiBbQWJzdHJhY3RJMThuU2VydmljZV1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogSFRUUF9JTlRFUkNFUFRPUlMsXG4gICAgICAgICAgICAgICAgICAgIHVzZUNsYXNzOiBIdHRwQ2FsbEludGVyY2VwdG9yLFxuICAgICAgICAgICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgUGlwZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgRGVjaW1hbFBpcGUsXG4gICAgICAgICAgICAgICAgRGF0ZVBpcGUsXG4gICAgICAgICAgICAgICAgQXBwTWFuYWdlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgUHJlZmFiTWFuYWdlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgQXV0aEd1YXJkLFxuICAgICAgICAgICAgICAgIFJvbGVHdWFyZCxcbiAgICAgICAgICAgICAgICBQYWdlTm90Rm91bmRHYXVyZCxcbiAgICAgICAgICAgICAgICBDYW5EZWFjdGl2YXRlUGFnZUd1YXJkLFxuICAgICAgICAgICAgICAgIEFwcEpTUmVzb2x2ZSxcbiAgICAgICAgICAgICAgICBBcHBFeHRlbnNpb25KU1Jlc29sdmUsXG4gICAgICAgICAgICAgICAgSTE4blJlc29sdmUsXG4gICAgICAgICAgICAgICAgZ2V0U2V0dGluZ1Byb3ZpZGVyKE1BWF9DQUNIRV9TSVpFLCAxMCksXG4gICAgICAgICAgICAgICAgZ2V0U2V0dGluZ1Byb3ZpZGVyKE1BWF9DQUNIRV9BR0UsIDMwICogNjApXG4gICAgICAgICAgICBdXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IobW9iaWxlUnVudGltZU1vZHVsZTogTW9iaWxlUnVudGltZU1vZHVsZSxcbiAgICAgICAgICAgICAgICBhcHA6IEFwcCxcbiAgICAgICAgICAgICAgICB2aWV3cG9ydDogVmlld3BvcnQpIHtcbiAgICAgICAgUnVudGltZUJhc2VNb2R1bGUuYWRkQ3VzdG9tRXZlbnRQb2x5ZmlsbCgpO1xuXG4gICAgICAgIHRoaXMuZ2V0RGV2aWNlRGV0YWlscygpLnRoZW4oZGV0YWlscyA9PiB7XG4gICAgICAgICAgICBhcHAuc2VsZWN0ZWRWaWV3UG9ydCA9IHtcbiAgICAgICAgICAgICAgICBvczogZGV0YWlscy5vcyxcbiAgICAgICAgICAgICAgICBjYXRlZ29yeTogZGV0YWlscy5zZWxlY3RlZERldmljZUNhdGVnb3J5XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdmlld3BvcnQudXBkYXRlKGRldGFpbHMpO1xuICAgICAgICAgICAgYXBwLm5vdGlmeSgnb24tdmlld3BvcnQtZGV0YWlscycsIGRldGFpbHMub3MpO1xuICAgICAgICB9KTtcbiAgICB9XG5cblxuICAgIHByaXZhdGUgZ2V0RGV2aWNlRGV0YWlscygpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8YW55PihmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgICAgICBjb25zdCBtc2dDb250ZW50ID0ge2tleTogJ29uLWxvYWQnfTtcbiAgICAgICAgICAgIC8vIE5vdGlmeSBwcmV2aWV3IHdpbmRvdyB0aGF0IGFwcGxpY2F0aW9uIGlzIHJlYWR5LiBPdGhlcndpc2UsIGlkZW50aWZ5IHRoZSBPUy5cbiAgICAgICAgICAgIGlmICh3aW5kb3cudG9wICE9PSB3aW5kb3cpIHtcbiAgICAgICAgICAgICAgICB3aW5kb3cudG9wLnBvc3RNZXNzYWdlKG1zZ0NvbnRlbnQsICcqJyk7XG4gICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBmb3IgcHJldmlldyBwYWdlXG4gICAgICAgICAgICAgICAgd2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uIChtc2cpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IG1zZy5kYXRhO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNPYmplY3QoZGF0YSkgJiYgZGF0YS5rZXkgPT09ICdzd2l0Y2gtZGV2aWNlJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShkYXRhLmRldmljZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSBlbHNlIGlmIChpc0lwaG9uZSgpIHx8IGlzSXBvZCgpIHx8IGlzSXBhZCgpKSB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZSh7J29zJzogT1MuSU9TfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlc29sdmUoeydvcyc6IE9TLkFORFJPSUR9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG5leHBvcnQgY29uc3QgV01fTU9EVUxFU19GT1JfUk9PVCA9IFtcbiAgICBXbUNvbXBvbmVudHNNb2R1bGUuZm9yUm9vdCgpLFxuICAgIE1vYmlsZVJ1bnRpbWVNb2R1bGUuZm9yUm9vdCgpLFxuICAgIENvcmVNb2R1bGUuZm9yUm9vdCgpLFxuICAgIFNlY3VyaXR5TW9kdWxlLmZvclJvb3QoKSxcbiAgICBPQXV0aE1vZHVsZS5mb3JSb290KCksXG4gICAgVmFyaWFibGVzTW9kdWxlLmZvclJvb3QoKSxcbiAgICBIdHRwU2VydmljZU1vZHVsZS5mb3JSb290KCksXG4gICAgUnVudGltZUJhc2VNb2R1bGUuZm9yUm9vdCgpXG5dO1xuIl19
@@ -3,9 +3,11 @@ import { RouteReuseStrategy } from '@angular/router';
3
3
  import { AbstractDialogService, AbstractHttpService, AbstractI18nService, AbstractSpinnerService, AbstractToasterService, EventNotifier, FieldTypeService, FieldWidgetService, getWmProjectProperties, isDefined, isString, ConstantService, UtilsService, DynamicComponentRefProvider, StatePersistence, Viewport, registerFnByExpr } from '@wm/core';
4
4
  import { SecurityService } from '@wm/security';
5
5
  import { WmDefaultRouteReuseStrategy } from '../util/wm-route-reuse-strategy';
6
+ import { PipeService } from "./pipe.service";
6
7
  const injectorMap = {
7
8
  DialogService: AbstractDialogService,
8
9
  i18nService: AbstractI18nService,
10
+ PipeService: PipeService,
9
11
  statePersistence: StatePersistence,
10
12
  SpinnerService: AbstractSpinnerService,
11
13
  StatePersistenceService: StatePersistence,
@@ -159,4 +161,4 @@ AppRef.ctorParameters = () => [
159
161
  { type: RouteReuseStrategy }
160
162
  ];
161
163
  export { ɵ0, ɵ1 };
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ydW50aW1lLWJhc2Uvc3JjL3NlcnZpY2VzL2FwcC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXJELE9BQU8sRUFDSCxxQkFBcUIsRUFDckIsbUJBQW1CLEVBQ25CLG1CQUFtQixFQUNuQixzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQ3RCLGFBQWEsRUFDYixnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLHNCQUFzQixFQUN0QixTQUFTLEVBQ1QsUUFBUSxFQUNSLGVBQWUsRUFDZixZQUFZLEVBQ1osMkJBQTJCLEVBQzNCLGdCQUFnQixFQUNoQixRQUFRLEVBQ1IsZ0JBQWdCLEVBQ25CLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFL0MsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFJOUUsTUFBTSxXQUFXLEdBQUc7SUFDaEIsYUFBYSxFQUFFLHFCQUFxQjtJQUNwQyxXQUFXLEVBQUUsbUJBQW1CO0lBQ2hDLGdCQUFnQixFQUFFLGdCQUFnQjtJQUNsQyxjQUFjLEVBQUUsc0JBQXNCO0lBQ3RDLHVCQUF1QixFQUFFLGdCQUFnQjtJQUN6QyxRQUFRLEVBQUUsUUFBUTtJQUNsQixjQUFjLEVBQUUsc0JBQXNCO0lBQ3RDLEtBQUssRUFBRSxZQUFZO0lBQ25CLFNBQVMsRUFBRSxlQUFlO0lBQzFCLFVBQVUsRUFBRSxnQkFBZ0I7SUFDNUIsWUFBWSxFQUFFLGtCQUFrQjtJQUNoQyx1QkFBdUIsRUFBRSwyQkFBMkI7Q0FDdkQsQ0FBQztBQVFGLE1BQU0sSUFBSSxHQUFHLENB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LEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7O1lBM0lKLFVBQVU7OztZQWpFVSxRQUFRO1lBTXpCLG1CQUFtQjtZQVluQixnQkFBZ0I7WUFiaEIsbUJBQW1CO1lBaUJkLGVBQWU7WUFyQmYsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlUmV1c2VTdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7XG4gICAgQWJzdHJhY3REaWFsb2dTZXJ2aWNlLFxuICAgIEFic3RyYWN0SHR0cFNlcnZpY2UsXG4gICAgQWJzdHJhY3RJMThuU2VydmljZSxcbiAgICBBYnN0cmFjdFNwaW5uZXJTZXJ2aWNlLFxuICAgIEFic3RyYWN0VG9hc3RlclNlcnZpY2UsXG4gICAgRXZlbnROb3RpZmllcixcbiAgICBGaWVsZFR5cGVTZXJ2aWNlLFxuICAgIEZpZWxkV2lkZ2V0U2VydmljZSxcbiAgICBnZXRXbVByb2plY3RQcm9wZXJ0aWVzLFxuICAgIGlzRGVmaW5lZCxcbiAgICBpc1N0cmluZyxcbiAgICBDb25zdGFudFNlcnZpY2UsXG4gICAgVXRpbHNTZXJ2aWNlLFxuICAgIER5bmFtaWNDb21wb25lbnRSZWZQcm92aWRlcixcbiAgICBTdGF0ZVBlcnNpc3RlbmNlLFxuICAgIFZpZXdwb3J0LFxuICAgIHJlZ2lzdGVyRm5CeUV4cHJcbn0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHsgU2VjdXJpdHlTZXJ2aWNlIH0gZnJvbSAnQHdtL3NlY3VyaXR5JztcblxuaW1wb3J0IHsgV21EZWZhdWx0Um91dGVSZXVzZVN0cmF0ZWd5IH0gZnJvbSAnLi4vdXRpbC93bS1yb3V0ZS1yZXVzZS1zdHJhdGVneSc7XG5cbmRlY2xhcmUgY29uc3QgXztcblxuY29uc3QgaW5qZWN0b3JNYXAgPSB7XG4gICAgRGlhbG9nU2VydmljZTogQWJzdHJhY3REaWFsb2dTZXJ2aWNlLFxuICAgIGkxOG5TZXJ2aWNlOiBBYnN0cmFjdEkxOG5TZXJ2aWNlLFxuICAgIHN0YXRlUGVyc2lzdGVuY2U6IFN0YXRlUGVyc2lzdGVuY2UsXG4gICAgU3Bpbm5lclNlcnZpY2U6IEFic3RyYWN0U3Bpbm5lclNlcnZpY2UsXG4gICAgU3RhdGVQZXJzaXN0ZW5jZVNlcnZpY2U6IFN0YXRlUGVyc2lzdGVuY2UsXG4gICAgVmlld3BvcnQ6IFZpZXdwb3J0LFxuICAgIFRvYXN0ZXJTZXJ2aWNlOiBBYnN0cmFjdFRvYXN0ZXJTZXJ2aWNlLFxuICAgIFV0aWxzOiBVdGlsc1NlcnZpY2UsXG4gICAgQ09OU1RBTlRTOiBDb25zdGFudFNlcnZpY2UsXG4gICAgRklFTERfVFlQRTogRmllbGRUeXBlU2VydmljZSxcbiAgICBGSUVMRF9XSURHRVQ6IEZpZWxkV2lkZ2V0U2VydmljZSxcbiAgICBEeW5hbWljQ29tcG9uZW50U2VydmljZTogRHluYW1pY0NvbXBvbmVudFJlZlByb3ZpZGVyXG59O1xuXG5jb25zdCBlbnVtIFBST0pFQ1RfVFlQRSB7XG4gICAgQVBQTElDQVRJT04gPSAnQVBQTElDQVRJT04nLFxuICAgIFBSRUZBQiA9ICdQUkVGQUInLFxuICAgIFRFTVBMQVRFX0JVTkRMRSA9ICdURU1QTEFURUJVTkRMRSdcbn1cblxuY29uc3Qgbm9vcCA9ICguLi5hcmdzKSA9PiB7fTtcblxuLy8gV3JhcHMgaHR0cFNlcnZpY2UgdG8gYmVoYXZlIGFzIGFuZ3VsYXIgMS54ICRodHRwIHNlcnZpY2UuXG5jb25zdCBnZXRIdHRwRGVwZW5kZW5jeSA9IGZ1bmN0aW9uKCkge1xuICAgIGNvbnN0IGh0dHBTZXJ2aWNlID0gdGhpcy5odHRwU2VydmljZTtcbiAgICBjb25zdCBmbiA9IGZ1bmN0aW9uIChrZXksIG9wdGlvbnM/KSB7XG4gICAgICAgIGNvbnN0IGFyZ3MgPSBBcnJheS5mcm9tKGFyZ3VtZW50cykuc2xpY2UoMSk7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoaHR0cFNlcnZpY2Vba2V5XS5hcHBseShodHRwU2VydmljZSwgYXJncykpO1xuICAgIH07XG4gICAgY29uc3QgJGh0dHAgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBmbi5hcHBseSh1bmRlZmluZWQsIFsnc2VuZCcsIC4uLkFycmF5LmZyb20oYXJndW1lbnRzKV0pO1xuICAgIH07XG4gICAgWydnZXQnLCAncG9zdCcsICdoZWFkJywgJ3B1dCcsICdkZWxldGUnLCAnanNvbnAnLCAncGF0Y2gnXS5mb3JFYWNoKGtleSA9PiAkaHR0cFtrZXldID0gZm4uYmluZCh1bmRlZmluZWQsIGtleSkpO1xuICAgIHJldHVybiAkaHR0cDtcbn07XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBcHBSZWYge1xuICAgIFZhcmlhYmxlczogYW55ID0ge307XG4gICAgQWN0aW9uczogYW55ID0ge307XG4gICAgb25BcHBWYXJpYWJsZXNSZWFkeSA9IG5vb3A7XG4gICAgb25CZWZvcmVBcHBSZWFkeSA9IG5vb3A7XG4gICAgb25TZXNzaW9uVGltZW91dCA9IG5vb3A7XG4gICAgb25QYWdlUmVhZHkgPSBub29wO1xuICAgIG9uQmVmb3JlUGFnZUxlYXZlID0gbm9vcDtcbiAgICBvbkJlZm9yZVNlcnZpY2VDYWxsID0gIG5vb3A7XG4gICAgb25TZXJ2aWNlU3VjY2VzcyA9ICBub29wO1xuICAgIG9uU2VydmljZUVycm9yID0gIG5vb3A7XG4gICAgZHluYW1pY0NvbXBvbmVudENvbnRhaW5lclJlZiA9IHt9O1xuXG4gICAgcHJvamVjdE5hbWU6IHN0cmluZztcbiAgICBpc1ByZWZhYlR5cGU6IGJvb2xlYW47XG4gICAgaXNBcHBsaWNhdGlvblR5cGU6IGJvb2xlYW47XG4gICAgaXNUYWJsZXRBcHBsaWNhdGlvblR5cGU6IGJvb2xlYW47XG4gICAgaXNUZW1wbGF0ZUJ1bmRsZVR5cGU6IGJvb2xlYW47XG5cbiAgICB0YXJnZXRQbGF0Zm9ybTogc3RyaW5nO1xuXG4gICAgYXBwTG9jYWxlOiBhbnk7XG5cbiAgICBjaGFuZ2VMb2NhbGUgPSB0aGlzLmkxOG5TZXJ2aWNlLnNldFNlbGVjdGVkTG9jYWxlLmJpbmQodGhpcy5pMThuU2VydmljZSk7XG4gICAgZ2V0U2VsZWN0ZWRMb2NhbGUgPSB0aGlzLmkxOG5TZXJ2aWNlLmdldFNlbGVjdGVkTG9jYWxlLmJpbmQodGhpcy5pMThuU2VydmljZSk7XG4gICAgc2V0VGltZXpvbmUgPSB0aGlzLmkxOG5TZXJ2aWNlLnNldFRpbWV6b25lLmJpbmQodGhpcy5pMThuU2VydmljZSk7XG4gICAgc2V0d2lkZ2V0TG9jYWxlID0gdGhpcy5pMThuU2VydmljZS5zZXR3aWRnZXRMb2NhbGUuYmluZCh0aGlzLmkxOG5TZXJ2aWNlKTtcblxuICAgIHByaXZhdGUgX2V2ZW50Tm90aWZpZXIgPSBuZXcgRXZlbnROb3RpZmllcigpO1xuXG4gICAgbGFuZGluZ1BhZ2VOYW1lID0gZ2V0V21Qcm9qZWN0UHJvcGVydGllcygpLmhvbWVQYWdlO1xuXG4gICAgcmVsb2FkKCkge1xuICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgaW5qOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSBpMThuU2VydmljZTogQWJzdHJhY3RJMThuU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBzdGF0ZVBlcnNpc3RlbmNlOiBTdGF0ZVBlcnNpc3RlbmNlLFxuICAgICAgICBwcml2YXRlIGh0dHBTZXJ2aWNlOiBBYnN0cmFjdEh0dHBTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHNlY3VyaXR5U2VydmljZTogU2VjdXJpdHlTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJvdXRlUmV1c2VTdHJhdGVneTogUm91dGVSZXVzZVN0cmF0ZWd5XG4gICAgKSB7XG5cbiAgICAgICAgY29uc3Qgd21Qcm9qZWN0UHJvcGVydGllcyA9IGdldFdtUHJvamVjdFByb3BlcnRpZXMoKTtcblxuICAgICAgICB0aGlzLnByb2plY3ROYW1lID0gd21Qcm9qZWN0UHJvcGVydGllcy5uYW1lO1xuICAgICAgICB0aGlzLmlzUHJlZmFiVHlwZSA9IHdtUHJvamVjdFByb3BlcnRpZXMudHlwZSA9PT0gUFJPSkVDVF9UWVBFLlBSRUZBQjtcbiAgICAgICAgdGhpcy5pc0FwcGxpY2F0aW9uVHlwZSA9IHdtUHJvamVjdFByb3BlcnRpZXMudHlwZSA9PT0gUFJPSkVDVF9UWVBFLkFQUExJQ0FUSU9OO1xuICAgICAgICB0aGlzLmlzVGVtcGxhdGVCdW5kbGVUeXBlID0gd21Qcm9qZWN0UHJvcGVydGllcy50eXBlID09PSBQUk9KRUNUX1RZUEUuVEVNUExBVEVfQlVORExFO1xuICAgICAgICB0aGlzLnRhcmdldFBsYXRmb3JtID0gd21Qcm9qZWN0UHJvcGVydGllcy5wbGF0Zm9ybVR5cGU7XG5cbiAgICAgICAgdGhpcy5odHRwU2VydmljZS5yZWdpc3Rlck9uU2Vzc2lvblRpbWVvdXQodGhpcy5vbjQwMS5iaW5kKHRoaXMpKTtcblxuICAgICAgICB0aGlzLmFwcExvY2FsZSA9IHRoaXMuaTE4blNlcnZpY2UuZ2V0QXBwTG9jYWxlKCk7XG4gICAgICAgIHRoaXMuaHR0cFNlcnZpY2Uuc2V0TG9jYWxlKHRoaXMuYXBwTG9jYWxlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xlYXJQYWdlQ2FjaGUocGFnZU5hbWU/OiBzdHJpbmcpIHtcbiAgICAgICAgaWYodGhpcy5yb3V0ZVJldXNlU3RyYXRlZ3kgaW5zdGFuY2VvZiBXbURlZmF1bHRSb3V0ZVJldXNlU3RyYXRlZ3kpIHtcbiAgICAgICAgICAgICh0aGlzLnJvdXRlUmV1c2VTdHJhdGVneSBhcyBXbURlZmF1bHRSb3V0ZVJldXNlU3RyYXRlZ3kpLnJlc2V0KHBhZ2VOYW1lKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBub3RpZnkoZXZlbnROYW1lOiBzdHJpbmcsIC4uLmRhdGE6IEFycmF5PGFueT4pIHtcbiAgICAgICAgdGhpcy5fZXZlbnROb3RpZmllci5ub3RpZnkuYXBwbHkodGhpcy5fZXZlbnROb3RpZmllciwgYXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RGVwZW5kZW5jeShpbmpUb2tlbikge1xuICAgICAgICBpZiAoaXNTdHJpbmcoaW5qVG9rZW4pKSB7XG4gICAgICAgICAgICBpZiAoaW5qVG9rZW4gPT09ICdIdHRwU2VydmljZScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZ2V0SHR0cERlcGVuZGVuY3kuY2FsbCh0aGlzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBwcm92aWRlckluc3RhbmNlID0gaW5qZWN0b3JNYXBbaW5qVG9rZW5dICYmIHRoaXMuaW5qLmdldChpbmplY3Rvck1hcFtpbmpUb2tlbl0pO1xuICAgICAgICAgICAgaWYgKCFwcm92aWRlckluc3RhbmNlICYmIHRoaXMuaW5qWydfcHJvdmlkZXJzJ10pIHtcbiAgICAgICAgICAgICAgICBfLmZvckVhY2godGhpcy5pbmpbJ19wcm92aWRlcnMnXSwgdmFsID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKF8uaXNPYmplY3QodmFsKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbC5fX3Byb3RvX18uY29uc3RydWN0b3IuU0VSVklDRV9OQU1FID09PSBpbmpUb2tlbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZpZGVySW5zdGFuY2UgPSB2YWw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcHJvdmlkZXJJbnN0YW5jZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5pbmouZ2V0KGlualRva2VuKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiB0cmlnZ2VycyB0aGUgb25TZXNzaW9uVGltZW91dCBjYWxsYmFjayBpbiBhcHAuanNcbiAgICAgKi9cbiAgICBvbjQwMSgpIHtcbiAgICAgICAgY29uc3QgdXNlckluZm8gPSBfLmdldCh0aGlzLnNlY3VyaXR5U2VydmljZS5nZXQoKSwgJ3VzZXJJbmZvJyk7XG4gICAgICAgIC8vIGlmIGEgcHJldmlvdXMgdXNlciBleGlzdHMsIGEgc2Vzc2lvbiB0aW1lIG91dCB0cmlnZ2VyZWRcbiAgICAgICAgaWYgKCFfLmlzRW1wdHkodXNlckluZm8pKSB7XG4gICAgICAgICAgICB0aGlzLm9uU2Vzc2lvblRpbWVvdXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzdWJzY3JpYmUoZXZlbnROYW1lLCBjYWxsYmFjazogKGRhdGE6IGFueSkgPT4gdm9pZCk6ICgpID0+IHZvaWQge1xuICAgICAgICByZXR1cm4gdGhpcy5fZXZlbnROb3RpZmllci5zdWJzY3JpYmUoZXZlbnROYW1lLCBjYWxsYmFjayk7XG4gICAgfVxuXG4gICAgcHVibGljIG5vdGlmeUFwcCh0ZW1wbGF0ZSwgdHlwZSwgdGl0bGUpIHtcbiAgICAgICAgY29uc3Qgbm90aWZpY2F0aW9uQWN0aW9uID0gXy5nZXQodGhpcywgJ0FjdGlvbnMuYXBwTm90aWZpY2F0aW9uJyk7XG4gICAgICAgIGNvbnN0IEVYQ0xVREVfTk9USUZJQ0FUSU9OX01FU1NBR0VTID0gWydQUk9DRVNTX1JFSkVDVEVEX0lOX1FVRVVFJ107XG4gICAgICAgIGNvbnN0IHNraXBEZWZhdWx0Tm90aWZpY2F0aW9uID0gRVhDTFVERV9OT1RJRklDQVRJT05fTUVTU0FHRVMuaW5kZXhPZih0ZW1wbGF0ZSkgIT09IC0xO1xuICAgICAgICBpZiAobm90aWZpY2F0aW9uQWN0aW9uKSB7XG4gICAgICAgICAgICAvLyBkbyBub3Qgbm90aWZ5IHRoZSBlcnJvciB0byB0aGUgYXBwLCBqdXN0IHRocm93IGl0IGluIGNvbnNvbGVcbiAgICAgICAgICAgIGlmIChza2lwRGVmYXVsdE5vdGlmaWNhdGlvbikge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignQXBwIEVycm9yJywgdGVtcGxhdGUpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHR5cGUgPSB0eXBlIHx8ICdzdWNjZXNzJztcbiAgICAgICAgICAgIHRlbXBsYXRlID0gbm90aWZpY2F0aW9uQWN0aW9uLmdldE1lc3NhZ2UoKSB8fCB0ZW1wbGF0ZTtcbiAgICAgICAgICAgIG5vdGlmaWNhdGlvbkFjdGlvbi5pbnZva2Uoe1xuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHRlbXBsYXRlLFxuICAgICAgICAgICAgICAgIHRpdGxlOiBpc0RlZmluZWQodGl0bGUpID8gdGl0bGUgOiB0eXBlLnRvVXBwZXJDYXNlKCksXG4gICAgICAgICAgICAgICAgY2xhc3M6IHR5cGUsXG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIHR5cGUgaXMgZXJyb3IgZG8gbm90IGNsb3NlIHRoZSB0b2FzdHJcbiAgICAgICAgICAgICAgICBkdXJhdGlvbjogdHlwZS50b1VwcGVyQ2FzZSgpID09PSAnRVJST1InID8gMCA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ1RoZSBkZWZhdWx0IEFjdGlvbiBcImFwcE5vdGlmaWNhdGlvblwiIGRvZXNuXFwndCBleGlzdCBpbiB0aGUgYXBwLiBBcHAgbm90aWZpZWQgZm9sbG93aW5nIGVycm9yOlxcbicsIHRlbXBsYXRlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGZ1bmN0aW9uIHRvIHJlZ2lzdGVyIGJpbmQgZXhwcmVzc2lvbnMgZnJvbSBhcHAgdmFyaWFibGVzXG4gICAgICogaXQgd2lsbCBiZSBjYWxsZWQgZnJvbSBhcHAuanMgaW4gZ2VuZXJhdGVkIGFuZ3VsYXIgYXBwXG4gICAgICogQHBhcmFtIGV4cHJlc3Npb25zLCBtYXAgb2YgYmluZCBleHByZXNzaW9uIHZzIGdlbmVyYXRlZCBmdW5jdGlvblxuICAgICAqL1xuICAgIHB1YmxpYyByZWdpc3RlckV4cHJlc3Npb25zKGV4cHJlc3Npb25zKSB7XG4gICAgICAgIF8uZWFjaChleHByZXNzaW9ucywgKGZuLCBleHByKT0+e1xuICAgICAgICAgICAgcmVnaXN0ZXJGbkJ5RXhwcihleHByLCBmblswXSwgZm5bMV0pO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ydW50aW1lLWJhc2Uvc3JjL3NlcnZpY2VzL2FwcC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXJELE9BQU8sRUFDSCxxQkFBcUIsRUFDckIsbUJBQW1CLEVBQ25CLG1CQUFtQixFQUNuQixzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQ3RCLGFBQWEsRUFDYixnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLHNCQUFzQixFQUN0QixTQUFTLEVBQ1QsUUFBUSxFQUNSLGVBQWUsRUFDZixZQUFZLEVBQ1osMkJBQTJCLEVBQzNCLGdCQUFnQixFQUNoQixRQUFRLEVBQ1IsZ0JBQWdCLEVBQ25CLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFL0MsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSTdDLE1BQU0sV0FBVyxHQUFHO0lBQ2hCLGFBQWEsRUFBRSxxQkFBcUI7SUFDcEMsV0FBVyxFQUFFLG1CQUFtQjtJQUNoQyxXQUFXLEVBQUUsV0FBVztJQUN4QixnQkFBZ0IsRUFBRSxnQkFBZ0I7SUFDbEMsY0FBYyxFQUFFLHNCQUFzQjtJQUN0Qyx1QkFBdUIsRUFBRSxnQkFBZ0I7SUFDekMsUUFBUSxFQUFFLFFBQVE7SUFDbEIsY0FBYyxFQUFFLHNCQUFzQjtJQUN0QyxLQUFLLEVBQUUsWUFBWTtJQUNuQixTQUFTLEVBQUUsZUFBZTtJQUMxQixVQUFVLEVBQUUsZ0JBQWdCO0lBQzVCLFlBQVksRUFBRSxrQkFBa0I7SUFDaEMsdUJBQXVCLEVBQUUsMkJBQTJCO0NBQ3ZELENBQUM7QUFRRixNQUFNLElBQUksR0FBRyxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7O0FBRTdCLDREQUE0RDtBQUM1RCxNQUFNLGlCQUFpQixHQUFHO0lBQ3RCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDckMsTUFBTSxFQUFFLEdBQUcsVUFBVSxHQUFHLEVBQUUsT0FBUTtRQUM5QixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1QyxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDLENBQUM7SUFDRixNQUFNLEtBQUssR0FBRztRQUNWLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDLENBQUM7SUFDRixDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2hILE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUMsQ0FBQzs7QUFHRixNQUFNLE9BQU8sTUFBTTtJQW9DZixZQUNZLEdBQWEsRUFDYixXQUFnQyxFQUNoQyxnQkFBa0MsRUFDbEMsV0FBZ0MsRUFDaEMsZUFBZ0MsRUFDaEMsa0JBQXNDO1FBTHRDLFFBQUcsR0FBSCxHQUFHLENBQVU7UUFDYixnQkFBVyxHQUFYLFdBQVcsQ0FBcUI7UUFDaEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxnQkFBVyxHQUFYLFdBQVcsQ0FBcUI7UUFDaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUF6Q2xELGNBQVMsR0FBUSxFQUFFLENBQUM7UUFDcEIsWUFBTyxHQUFRLEVBQUUsQ0FBQztRQUNsQix3QkFBbUIsR0FBRyxJQUFJLENBQUM7UUFDM0IscUJBQWdCLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLHFCQUFnQixHQUFHLElBQUksQ0FBQztRQUN4QixnQkFBVyxHQUFHLElBQUksQ0FBQztRQUNuQixzQkFBaUIsR0FBRyxJQUFJLENBQUM7UUFDekIsd0JBQW1CLEdBQUksSUFBSSxDQUFDO1FBQzVCLHFCQUFnQixHQUFJLElBQUksQ0FBQztRQUN6QixtQkFBYyxHQUFJLElBQUksQ0FBQztRQUN2QixpQ0FBNEIsR0FBRyxFQUFFLENBQUM7UUFZbEMsaUJBQVksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDekUsc0JBQWlCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzlFLGdCQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNsRSxvQkFBZSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFbEUsbUJBQWMsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBRTdDLG9CQUFlLEdBQUcsc0JBQXNCLEVBQUUsQ0FBQyxRQUFRLENBQUM7UUFlaEQsTUFBTSxtQkFBbUIsR0FBRyxzQkFBc0IsRUFBRSxDQUFDO1FBRXJELElBQUksQ0FBQyxXQUFXLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDO1FBQzVDLElBQUksQ0FBQyxZQUFZLEdBQUcsbUJBQW1CLENBQUMsSUFBSSwwQkFBd0IsQ0FBQztRQUNyRSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxvQ0FBNkIsQ0FBQztRQUMvRSxJQUFJLENBQUMsb0JBQW9CLEdBQUcsbUJBQW1CLENBQUMsSUFBSSwyQ0FBaUMsQ0FBQztRQUN0RixJQUFJLENBQUMsY0FBYyxHQUFHLG1CQUFtQixDQUFDLFlBQVksQ0FBQztRQUV2RCxJQUFJLENBQUMsV0FBVyxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFakUsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ2pELElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBekJELE1BQU07UUFDRixNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzdCLENBQUM7SUF5Qk0sY0FBYyxDQUFDLFFBQWlCO1FBQ25DLElBQUcsSUFBSSxDQUFDLGtCQUFrQixZQUFZLDJCQUEyQixFQUFFO1lBQzlELElBQUksQ0FBQyxrQkFBa0QsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDNUU7SUFDTCxDQUFDO0lBRU0sTUFBTSxDQUFDLFNBQWlCLEVBQUUsR0FBRyxJQUFnQjtRQUNoRCxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRU0sYUFBYSxDQUFDLFFBQVE7UUFDekIsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDcEIsSUFBSSxRQUFRLEtBQUssYUFBYSxFQUFFO2dCQUM1QixPQUFPLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUN2QztZQUNELElBQUksZ0JBQWdCLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ3BGLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxFQUFFO2dCQUM3QyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUU7b0JBQ3BDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTt3QkFDakIsSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxZQUFZLEtBQUssUUFBUSxFQUFFOzRCQUNyRCxnQkFBZ0IsR0FBRyxHQUFHLENBQUM7NEJBQ3ZCLE9BQU8sS0FBSyxDQUFDO3lCQUNoQjtxQkFDSjtnQkFDTCxDQUFDLENBQUMsQ0FBQzthQUNOO1lBQ0QsT0FBTyxnQkFBZ0IsQ0FBQztTQUMzQjtRQUNELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSztRQUNELE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvRCwwREFBMEQ7UUFDMUQsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7U0FDM0I7SUFDTCxDQUFDO0lBRU0sU0FBUyxDQUFDLFNBQVMsRUFBRSxRQUE2QjtRQUNyRCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRU0sU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSztRQUNsQyxNQUFNLGtCQUFrQixHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLHlCQUF5QixDQUFDLENBQUM7UUFDbEUsTUFBTSw2QkFBNkIsR0FBRyxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFDcEUsTUFBTSx1QkFBdUIsR0FBRyw2QkFBNkIsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDdkYsSUFBSSxrQkFBa0IsRUFBRTtZQUNwQiwrREFBK0Q7WUFDL0QsSUFBSSx1QkFBdUIsRUFBRTtnQkFDekIsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQ3BDLE9BQU87YUFDVjtZQUNELElBQUksR0FBRyxJQUFJLElBQUksU0FBUyxDQUFDO1lBQ3pCLFFBQVEsR0FBRyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsSUFBSSxRQUFRLENBQUM7WUFDdkQsa0JBQWtCLENBQUMsTUFBTSxDQUFDO2dCQUN0QixPQUFPLEVBQUUsUUFBUTtnQkFDakIsS0FBSyxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUNwRCxLQUFLLEVBQUUsSUFBSTtnQkFDWCwrQ0FBK0M7Z0JBQy9DLFFBQVEsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7YUFDM0QsQ0FBQyxDQUFDO1NBQ047YUFBTTtZQUNILE9BQU8sQ0FBQyxJQUFJLENBQUMsaUdBQWlHLEVBQUUsUUFBUSxDQUFDLENBQUM7U0FDN0g7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLG1CQUFtQixDQUFDLFdBQVc7UUFDbEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFDLEVBQUU7WUFDNUIsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OztZQTNJSixVQUFVOzs7WUFuRVUsUUFBUTtZQU16QixtQkFBbUI7WUFZbkIsZ0JBQWdCO1lBYmhCLG1CQUFtQjtZQWlCZCxlQUFlO1lBckJmLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZVJldXNlU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge1xuICAgIEFic3RyYWN0RGlhbG9nU2VydmljZSxcbiAgICBBYnN0cmFjdEh0dHBTZXJ2aWNlLFxuICAgIEFic3RyYWN0STE4blNlcnZpY2UsXG4gICAgQWJzdHJhY3RTcGlubmVyU2VydmljZSxcbiAgICBBYnN0cmFjdFRvYXN0ZXJTZXJ2aWNlLFxuICAgIEV2ZW50Tm90aWZpZXIsXG4gICAgRmllbGRUeXBlU2VydmljZSxcbiAgICBGaWVsZFdpZGdldFNlcnZpY2UsXG4gICAgZ2V0V21Qcm9qZWN0UHJvcGVydGllcyxcbiAgICBpc0RlZmluZWQsXG4gICAgaXNTdHJpbmcsXG4gICAgQ29uc3RhbnRTZXJ2aWNlLFxuICAgIFV0aWxzU2VydmljZSxcbiAgICBEeW5hbWljQ29tcG9uZW50UmVmUHJvdmlkZXIsXG4gICAgU3RhdGVQZXJzaXN0ZW5jZSxcbiAgICBWaWV3cG9ydCxcbiAgICByZWdpc3RlckZuQnlFeHByXG59IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7IFNlY3VyaXR5U2VydmljZSB9IGZyb20gJ0B3bS9zZWN1cml0eSc7XG5cbmltcG9ydCB7IFdtRGVmYXVsdFJvdXRlUmV1c2VTdHJhdGVneSB9IGZyb20gJy4uL3V0aWwvd20tcm91dGUtcmV1c2Utc3RyYXRlZ3knO1xuaW1wb3J0IHsgUGlwZVNlcnZpY2UgfSBmcm9tIFwiLi9waXBlLnNlcnZpY2VcIjtcblxuZGVjbGFyZSBjb25zdCBfO1xuXG5jb25zdCBpbmplY3Rvck1hcCA9IHtcbiAgICBEaWFsb2dTZXJ2aWNlOiBBYnN0cmFjdERpYWxvZ1NlcnZpY2UsXG4gICAgaTE4blNlcnZpY2U6IEFic3RyYWN0STE4blNlcnZpY2UsXG4gICAgUGlwZVNlcnZpY2U6IFBpcGVTZXJ2aWNlLFxuICAgIHN0YXRlUGVyc2lzdGVuY2U6IFN0YXRlUGVyc2lzdGVuY2UsXG4gICAgU3Bpbm5lclNlcnZpY2U6IEFic3RyYWN0U3Bpbm5lclNlcnZpY2UsXG4gICAgU3RhdGVQZXJzaXN0ZW5jZVNlcnZpY2U6IFN0YXRlUGVyc2lzdGVuY2UsXG4gICAgVmlld3BvcnQ6IFZpZXdwb3J0LFxuICAgIFRvYXN0ZXJTZXJ2aWNlOiBBYnN0cmFjdFRvYXN0ZXJTZXJ2aWNlLFxuICAgIFV0aWxzOiBVdGlsc1NlcnZpY2UsXG4gICAgQ09OU1RBTlRTOiBDb25zdGFudFNlcnZpY2UsXG4gICAgRklFTERfVFlQRTogRmllbGRUeXBlU2VydmljZSxcbiAgICBGSUVMRF9XSURHRVQ6IEZpZWxkV2lkZ2V0U2VydmljZSxcbiAgICBEeW5hbWljQ29tcG9uZW50U2VydmljZTogRHluYW1pY0NvbXBvbmVudFJlZlByb3ZpZGVyXG59O1xuXG5jb25zdCBlbnVtIFBST0pFQ1RfVFlQRSB7XG4gICAgQVBQTElDQVRJT04gPSAnQVBQTElDQVRJT04nLFxuICAgIFBSRUZBQiA9ICdQUkVGQUInLFxuICAgIFRFTVBMQVRFX0JVTkRMRSA9ICdURU1QTEFURUJVTkRMRSdcbn1cblxuY29uc3Qgbm9vcCA9ICguLi5hcmdzKSA9PiB7fTtcblxuLy8gV3JhcHMgaHR0cFNlcnZpY2UgdG8gYmVoYXZlIGFzIGFuZ3VsYXIgMS54ICRodHRwIHNlcnZpY2UuXG5jb25zdCBnZXRIdHRwRGVwZW5kZW5jeSA9IGZ1bmN0aW9uKCkge1xuICAgIGNvbnN0IGh0dHBTZXJ2aWNlID0gdGhpcy5odHRwU2VydmljZTtcbiAgICBjb25zdCBmbiA9IGZ1bmN0aW9uIChrZXksIG9wdGlvbnM/KSB7XG4gICAgICAgIGNvbnN0IGFyZ3MgPSBBcnJheS5mcm9tKGFyZ3VtZW50cykuc2xpY2UoMSk7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoaHR0cFNlcnZpY2Vba2V5XS5hcHBseShodHRwU2VydmljZSwgYXJncykpO1xuICAgIH07XG4gICAgY29uc3QgJGh0dHAgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBmbi5hcHBseSh1bmRlZmluZWQsIFsnc2VuZCcsIC4uLkFycmF5LmZyb20oYXJndW1lbnRzKV0pO1xuICAgIH07XG4gICAgWydnZXQnLCAncG9zdCcsICdoZWFkJywgJ3B1dCcsICdkZWxldGUnLCAnanNvbnAnLCAncGF0Y2gnXS5mb3JFYWNoKGtleSA9PiAkaHR0cFtrZXldID0gZm4uYmluZCh1bmRlZmluZWQsIGtleSkpO1xuICAgIHJldHVybiAkaHR0cDtcbn07XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBcHBSZWYge1xuICAgIFZhcmlhYmxlczogYW55ID0ge307XG4gICAgQWN0aW9uczogYW55ID0ge307XG4gICAgb25BcHBWYXJpYWJsZXNSZWFkeSA9IG5vb3A7XG4gICAgb25CZWZvcmVBcHBSZWFkeSA9IG5vb3A7XG4gICAgb25TZXNzaW9uVGltZW91dCA9IG5vb3A7XG4gICAgb25QYWdlUmVhZHkgPSBub29wO1xuICAgIG9uQmVmb3JlUGFnZUxlYXZlID0gbm9vcDtcbiAgICBvbkJlZm9yZVNlcnZpY2VDYWxsID0gIG5vb3A7XG4gICAgb25TZXJ2aWNlU3VjY2VzcyA9ICBub29wO1xuICAgIG9uU2VydmljZUVycm9yID0gIG5vb3A7XG4gICAgZHluYW1pY0NvbXBvbmVudENvbnRhaW5lclJlZiA9IHt9O1xuXG4gICAgcHJvamVjdE5hbWU6IHN0cmluZztcbiAgICBpc1ByZWZhYlR5cGU6IGJvb2xlYW47XG4gICAgaXNBcHBsaWNhdGlvblR5cGU6IGJvb2xlYW47XG4gICAgaXNUYWJsZXRBcHBsaWNhdGlvblR5cGU6IGJvb2xlYW47XG4gICAgaXNUZW1wbGF0ZUJ1bmRsZVR5cGU6IGJvb2xlYW47XG5cbiAgICB0YXJnZXRQbGF0Zm9ybTogc3RyaW5nO1xuXG4gICAgYXBwTG9jYWxlOiBhbnk7XG5cbiAgICBjaGFuZ2VMb2NhbGUgPSB0aGlzLmkxOG5TZXJ2aWNlLnNldFNlbGVjdGVkTG9jYWxlLmJpbmQodGhpcy5pMThuU2VydmljZSk7XG4gICAgZ2V0U2VsZWN0ZWRMb2NhbGUgPSB0aGlzLmkxOG5TZXJ2aWNlLmdldFNlbGVjdGVkTG9jYWxlLmJpbmQodGhpcy5pMThuU2VydmljZSk7XG4gICAgc2V0VGltZXpvbmUgPSB0aGlzLmkxOG5TZXJ2aWNlLnNldFRpbWV6b25lLmJpbmQodGhpcy5pMThuU2VydmljZSk7XG4gICAgc2V0d2lkZ2V0TG9jYWxlID0gdGhpcy5pMThuU2VydmljZS5zZXR3aWRnZXRMb2NhbGUuYmluZCh0aGlzLmkxOG5TZXJ2aWNlKTtcblxuICAgIHByaXZhdGUgX2V2ZW50Tm90aWZpZXIgPSBuZXcgRXZlbnROb3RpZmllcigpO1xuXG4gICAgbGFuZGluZ1BhZ2VOYW1lID0gZ2V0V21Qcm9qZWN0UHJvcGVydGllcygpLmhvbWVQYWdlO1xuXG4gICAgcmVsb2FkKCkge1xuICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgaW5qOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSBpMThuU2VydmljZTogQWJzdHJhY3RJMThuU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBzdGF0ZVBlcnNpc3RlbmNlOiBTdGF0ZVBlcnNpc3RlbmNlLFxuICAgICAgICBwcml2YXRlIGh0dHBTZXJ2aWNlOiBBYnN0cmFjdEh0dHBTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHNlY3VyaXR5U2VydmljZTogU2VjdXJpdHlTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJvdXRlUmV1c2VTdHJhdGVneTogUm91dGVSZXVzZVN0cmF0ZWd5XG4gICAgKSB7XG5cbiAgICAgICAgY29uc3Qgd21Qcm9qZWN0UHJvcGVydGllcyA9IGdldFdtUHJvamVjdFByb3BlcnRpZXMoKTtcblxuICAgICAgICB0aGlzLnByb2plY3ROYW1lID0gd21Qcm9qZWN0UHJvcGVydGllcy5uYW1lO1xuICAgICAgICB0aGlzLmlzUHJlZmFiVHlwZSA9IHdtUHJvamVjdFByb3BlcnRpZXMudHlwZSA9PT0gUFJPSkVDVF9UWVBFLlBSRUZBQjtcbiAgICAgICAgdGhpcy5pc0FwcGxpY2F0aW9uVHlwZSA9IHdtUHJvamVjdFByb3BlcnRpZXMudHlwZSA9PT0gUFJPSkVDVF9UWVBFLkFQUExJQ0FUSU9OO1xuICAgICAgICB0aGlzLmlzVGVtcGxhdGVCdW5kbGVUeXBlID0gd21Qcm9qZWN0UHJvcGVydGllcy50eXBlID09PSBQUk9KRUNUX1RZUEUuVEVNUExBVEVfQlVORExFO1xuICAgICAgICB0aGlzLnRhcmdldFBsYXRmb3JtID0gd21Qcm9qZWN0UHJvcGVydGllcy5wbGF0Zm9ybVR5cGU7XG5cbiAgICAgICAgdGhpcy5odHRwU2VydmljZS5yZWdpc3Rlck9uU2Vzc2lvblRpbWVvdXQodGhpcy5vbjQwMS5iaW5kKHRoaXMpKTtcblxuICAgICAgICB0aGlzLmFwcExvY2FsZSA9IHRoaXMuaTE4blNlcnZpY2UuZ2V0QXBwTG9jYWxlKCk7XG4gICAgICAgIHRoaXMuaHR0cFNlcnZpY2Uuc2V0TG9jYWxlKHRoaXMuYXBwTG9jYWxlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xlYXJQYWdlQ2FjaGUocGFnZU5hbWU/OiBzdHJpbmcpIHtcbiAgICAgICAgaWYodGhpcy5yb3V0ZVJldXNlU3RyYXRlZ3kgaW5zdGFuY2VvZiBXbURlZmF1bHRSb3V0ZVJldXNlU3RyYXRlZ3kpIHtcbiAgICAgICAgICAgICh0aGlzLnJvdXRlUmV1c2VTdHJhdGVneSBhcyBXbURlZmF1bHRSb3V0ZVJldXNlU3RyYXRlZ3kpLnJlc2V0KHBhZ2VOYW1lKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBub3RpZnkoZXZlbnROYW1lOiBzdHJpbmcsIC4uLmRhdGE6IEFycmF5PGFueT4pIHtcbiAgICAgICAgdGhpcy5fZXZlbnROb3RpZmllci5ub3RpZnkuYXBwbHkodGhpcy5fZXZlbnROb3RpZmllciwgYXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RGVwZW5kZW5jeShpbmpUb2tlbikge1xuICAgICAgICBpZiAoaXNTdHJpbmcoaW5qVG9rZW4pKSB7XG4gICAgICAgICAgICBpZiAoaW5qVG9rZW4gPT09ICdIdHRwU2VydmljZScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZ2V0SHR0cERlcGVuZGVuY3kuY2FsbCh0aGlzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBwcm92aWRlckluc3RhbmNlID0gaW5qZWN0b3JNYXBbaW5qVG9rZW5dICYmIHRoaXMuaW5qLmdldChpbmplY3Rvck1hcFtpbmpUb2tlbl0pO1xuICAgICAgICAgICAgaWYgKCFwcm92aWRlckluc3RhbmNlICYmIHRoaXMuaW5qWydfcHJvdmlkZXJzJ10pIHtcbiAgICAgICAgICAgICAgICBfLmZvckVhY2godGhpcy5pbmpbJ19wcm92aWRlcnMnXSwgdmFsID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKF8uaXNPYmplY3QodmFsKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbC5fX3Byb3RvX18uY29uc3RydWN0b3IuU0VSVklDRV9OQU1FID09PSBpbmpUb2tlbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZpZGVySW5zdGFuY2UgPSB2YWw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcHJvdmlkZXJJbnN0YW5jZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5pbmouZ2V0KGlualRva2VuKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiB0cmlnZ2VycyB0aGUgb25TZXNzaW9uVGltZW91dCBjYWxsYmFjayBpbiBhcHAuanNcbiAgICAgKi9cbiAgICBvbjQwMSgpIHtcbiAgICAgICAgY29uc3QgdXNlckluZm8gPSBfLmdldCh0aGlzLnNlY3VyaXR5U2VydmljZS5nZXQoKSwgJ3VzZXJJbmZvJyk7XG4gICAgICAgIC8vIGlmIGEgcHJldmlvdXMgdXNlciBleGlzdHMsIGEgc2Vzc2lvbiB0aW1lIG91dCB0cmlnZ2VyZWRcbiAgICAgICAgaWYgKCFfLmlzRW1wdHkodXNlckluZm8pKSB7XG4gICAgICAgICAgICB0aGlzLm9uU2Vzc2lvblRpbWVvdXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzdWJzY3JpYmUoZXZlbnROYW1lLCBjYWxsYmFjazogKGRhdGE6IGFueSkgPT4gdm9pZCk6ICgpID0+IHZvaWQge1xuICAgICAgICByZXR1cm4gdGhpcy5fZXZlbnROb3RpZmllci5zdWJzY3JpYmUoZXZlbnROYW1lLCBjYWxsYmFjayk7XG4gICAgfVxuXG4gICAgcHVibGljIG5vdGlmeUFwcCh0ZW1wbGF0ZSwgdHlwZSwgdGl0bGUpIHtcbiAgICAgICAgY29uc3Qgbm90aWZpY2F0aW9uQWN0aW9uID0gXy5nZXQodGhpcywgJ0FjdGlvbnMuYXBwTm90aWZpY2F0aW9uJyk7XG4gICAgICAgIGNvbnN0IEVYQ0xVREVfTk9USUZJQ0FUSU9OX01FU1NBR0VTID0gWydQUk9DRVNTX1JFSkVDVEVEX0lOX1FVRVVFJ107XG4gICAgICAgIGNvbnN0IHNraXBEZWZhdWx0Tm90aWZpY2F0aW9uID0gRVhDTFVERV9OT1RJRklDQVRJT05fTUVTU0FHRVMuaW5kZXhPZih0ZW1wbGF0ZSkgIT09IC0xO1xuICAgICAgICBpZiAobm90aWZpY2F0aW9uQWN0aW9uKSB7XG4gICAgICAgICAgICAvLyBkbyBub3Qgbm90aWZ5IHRoZSBlcnJvciB0byB0aGUgYXBwLCBqdXN0IHRocm93IGl0IGluIGNvbnNvbGVcbiAgICAgICAgICAgIGlmIChza2lwRGVmYXVsdE5vdGlmaWNhdGlvbikge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignQXBwIEVycm9yJywgdGVtcGxhdGUpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHR5cGUgPSB0eXBlIHx8ICdzdWNjZXNzJztcbiAgICAgICAgICAgIHRlbXBsYXRlID0gbm90aWZpY2F0aW9uQWN0aW9uLmdldE1lc3NhZ2UoKSB8fCB0ZW1wbGF0ZTtcbiAgICAgICAgICAgIG5vdGlmaWNhdGlvbkFjdGlvbi5pbnZva2Uoe1xuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHRlbXBsYXRlLFxuICAgICAgICAgICAgICAgIHRpdGxlOiBpc0RlZmluZWQodGl0bGUpID8gdGl0bGUgOiB0eXBlLnRvVXBwZXJDYXNlKCksXG4gICAgICAgICAgICAgICAgY2xhc3M6IHR5cGUsXG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIHR5cGUgaXMgZXJyb3IgZG8gbm90IGNsb3NlIHRoZSB0b2FzdHJcbiAgICAgICAgICAgICAgICBkdXJhdGlvbjogdHlwZS50b1VwcGVyQ2FzZSgpID09PSAnRVJST1InID8gMCA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ1RoZSBkZWZhdWx0IEFjdGlvbiBcImFwcE5vdGlmaWNhdGlvblwiIGRvZXNuXFwndCBleGlzdCBpbiB0aGUgYXBwLiBBcHAgbm90aWZpZWQgZm9sbG93aW5nIGVycm9yOlxcbicsIHRlbXBsYXRlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGZ1bmN0aW9uIHRvIHJlZ2lzdGVyIGJpbmQgZXhwcmVzc2lvbnMgZnJvbSBhcHAgdmFyaWFibGVzXG4gICAgICogaXQgd2lsbCBiZSBjYWxsZWQgZnJvbSBhcHAuanMgaW4gZ2VuZXJhdGVkIGFuZ3VsYXIgYXBwXG4gICAgICogQHBhcmFtIGV4cHJlc3Npb25zLCBtYXAgb2YgYmluZCBleHByZXNzaW9uIHZzIGdlbmVyYXRlZCBmdW5jdGlvblxuICAgICAqL1xuICAgIHB1YmxpYyByZWdpc3RlckV4cHJlc3Npb25zKGV4cHJlc3Npb25zKSB7XG4gICAgICAgIF8uZWFjaChleHByZXNzaW9ucywgKGZuLCBleHByKT0+e1xuICAgICAgICAgICAgcmVnaXN0ZXJGbkJ5RXhwcihleHByLCBmblswXSwgZm5bMV0pO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,33 @@
1
+ import { Injectable } from "@angular/core";
2
+ import { PipeProvider } from "./pipe-provider.service";
3
+ import { App } from "@wm/core";
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "./pipe-provider.service";
6
+ import * as i2 from "@wm/core";
7
+ export class PipeService {
8
+ constructor(pipeProvider, $app) {
9
+ this.pipeProvider = pipeProvider;
10
+ this.$app = $app;
11
+ this.supportedPipes = ["toDate", "toCurrency", "prefix", "suffix", "numberToString", "stringToNumber", "timeFromNow", "trustAs", "sanitize"];
12
+ if (this.$app.isApplicationType) {
13
+ this.supportedPipes.push('custom');
14
+ }
15
+ }
16
+ getPipe(name) {
17
+ if (this.supportedPipes.includes(name)) {
18
+ return this.pipeProvider.getInstance(name);
19
+ }
20
+ else {
21
+ throw Error(`The pipe '${name}' could not be found`);
22
+ }
23
+ }
24
+ }
25
+ PipeService.ɵprov = i0.ɵɵdefineInjectable({ factory: function PipeService_Factory() { return new PipeService(i0.ɵɵinject(i1.PipeProvider), i0.ɵɵinject(i2.App)); }, token: PipeService, providedIn: "root" });
26
+ PipeService.decorators = [
27
+ { type: Injectable, args: [{ providedIn: 'root' },] }
28
+ ];
29
+ PipeService.ctorParameters = () => [
30
+ { type: PipeProvider },
31
+ { type: App }
32
+ ];
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcnVudGltZS1iYXNlL3NyYy9zZXJ2aWNlcy9waXBlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7OztBQUcvQixNQUFNLE9BQU8sV0FBVztJQUNwQixZQUFvQixZQUEwQixFQUMxQixJQUFTO1FBRFQsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsU0FBSSxHQUFKLElBQUksQ0FBSztRQU1yQixtQkFBYyxHQUFHLENBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFMN0ksSUFBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzVCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3RDO0lBQ0wsQ0FBQztJQUlNLE9BQU8sQ0FBQyxJQUFZO1FBQ3ZCLElBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDbkMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM5QzthQUFNO1lBQ0gsTUFBTSxLQUFLLENBQUMsYUFBYSxJQUFJLHNCQUFzQixDQUFDLENBQUM7U0FDeEQ7SUFDTCxDQUFDOzs7O1lBakJKLFVBQVUsU0FBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OztZQUh6QixZQUFZO1lBQ1osR0FBRyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgUGlwZVByb3ZpZGVyIH0gZnJvbSBcIi4vcGlwZS1wcm92aWRlci5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBBcHAgfSBmcm9tIFwiQHdtL2NvcmVcIjtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBQaXBlU2VydmljZSB7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBwaXBlUHJvdmlkZXI6IFBpcGVQcm92aWRlcixcbiAgICAgICAgICAgICAgICBwcml2YXRlICRhcHA6IEFwcCkge1xuICAgICAgICBpZih0aGlzLiRhcHAuaXNBcHBsaWNhdGlvblR5cGUpIHtcbiAgICAgICAgICAgIHRoaXMuc3VwcG9ydGVkUGlwZXMucHVzaCgnY3VzdG9tJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHN1cHBvcnRlZFBpcGVzID0gWyBcInRvRGF0ZVwiLCBcInRvQ3VycmVuY3lcIiwgXCJwcmVmaXhcIiwgXCJzdWZmaXhcIiwgXCJudW1iZXJUb1N0cmluZ1wiLCBcInN0cmluZ1RvTnVtYmVyXCIsIFwidGltZUZyb21Ob3dcIiwgXCJ0cnVzdEFzXCIsIFwic2FuaXRpemVcIl07XG5cbiAgICBwdWJsaWMgZ2V0UGlwZShuYW1lOiBzdHJpbmcpIHtcbiAgICAgICAgaWYodGhpcy5zdXBwb3J0ZWRQaXBlcy5pbmNsdWRlcyhuYW1lKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucGlwZVByb3ZpZGVyLmdldEluc3RhbmNlKG5hbWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgRXJyb3IoYFRoZSBwaXBlICcke25hbWV9JyBjb3VsZCBub3QgYmUgZm91bmRgKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==