@c8y/ngx-components 1017.0.7 → 1017.0.9

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 (86) hide show
  1. package/ecosystem/packages/package-list/packages-list.component.d.ts +1 -0
  2. package/esm2020/actility-device-registration/actility-device-registration.component.mjs +3 -3
  3. package/esm2020/context-dashboard/context-dashboard.component.mjs +3 -3
  4. package/esm2020/context-dashboard/dashboard-detail.component.mjs +3 -3
  5. package/esm2020/context-dashboard/device-info-dashboard/device-info-dashboard.component.mjs +43 -51
  6. package/esm2020/context-dashboard/widget-config.component.mjs +7 -6
  7. package/esm2020/context-dashboard/widget-preview.component.mjs +3 -3
  8. package/esm2020/core/authentication/sms-challenge.component.mjs +3 -3
  9. package/esm2020/core/authentication/totp-challenge.component.mjs +3 -3
  10. package/esm2020/core/breadcrumb/breadcrumb-outlet.component.mjs +3 -3
  11. package/esm2020/core/common/empty-state/empty-state.component.mjs +3 -3
  12. package/esm2020/core/dashboard/dashboard-child.component.mjs +3 -3
  13. package/esm2020/core/dashboard/widget-time-context.component.mjs +3 -3
  14. package/esm2020/core/data-grid/data-grid.component.mjs +3 -3
  15. package/esm2020/core/date-picker/date-picker.component.mjs +3 -3
  16. package/esm2020/core/drop-area/drop-area.component.mjs +3 -3
  17. package/esm2020/core/file-picker/file-picker.component.mjs +3 -3
  18. package/esm2020/core/header/application/app-switcher.component.mjs +3 -3
  19. package/esm2020/core/login/credentials.component.mjs +3 -3
  20. package/esm2020/core/login/login.component.mjs +3 -3
  21. package/esm2020/core/login/recover-password.component.mjs +3 -3
  22. package/esm2020/core/modal/modal.component.mjs +3 -3
  23. package/esm2020/core/select/typeahead.component.mjs +3 -3
  24. package/esm2020/core/tabs/tabs-outlet.component.mjs +3 -3
  25. package/esm2020/device-grid/columns/alarms.cell-renderer.component.mjs +3 -3
  26. package/esm2020/ecosystem/applications/install-from-package/install-from-package.component.mjs +3 -3
  27. package/esm2020/ecosystem/packages/package-list/packages-list.component.mjs +5 -4
  28. package/esm2020/loriot-device-registration/loriot-device-registration-button.component.mjs +3 -1
  29. package/esm2020/loriot-device-registration/loriot-device-registration.component.mjs +3 -3
  30. package/esm2020/operations/bulk-operations-list/bulk-operations-list.component.mjs +3 -3
  31. package/esm2020/operations/operations-list/operations-list-item.component.mjs +3 -3
  32. package/esm2020/operations/operations-list/operations-list.component.mjs +3 -3
  33. package/esm2020/register-device/bulk/bulk-device-registration-modal.component.mjs +3 -3
  34. package/esm2020/register-device/extensible/bulk/extensible-bulk-device-registration-modal.component.mjs +3 -3
  35. package/esm2020/register-device/extensible/single/extensible-device-registration-modal.component.mjs +3 -3
  36. package/esm2020/register-device/general/general-device-registration.component.mjs +3 -3
  37. package/esm2020/repository/software/device-tab/device-software-list.component.mjs +3 -3
  38. package/esm2020/repository/software/device-tab/installed-software.component.mjs +3 -3
  39. package/esm2020/repository/software/list/add-software-modal.component.mjs +3 -3
  40. package/esm2020/sigfox-device-registration/sigfox-device-registration.component.mjs +3 -3
  41. package/fesm2015/c8y-ngx-components-actility-device-registration.mjs +2 -2
  42. package/fesm2015/c8y-ngx-components-actility-device-registration.mjs.map +1 -1
  43. package/fesm2015/c8y-ngx-components-context-dashboard.mjs +54 -61
  44. package/fesm2015/c8y-ngx-components-context-dashboard.mjs.map +1 -1
  45. package/fesm2015/c8y-ngx-components-device-grid.mjs +2 -2
  46. package/fesm2015/c8y-ngx-components-device-grid.mjs.map +1 -1
  47. package/fesm2015/c8y-ngx-components-ecosystem.mjs +5 -4
  48. package/fesm2015/c8y-ngx-components-ecosystem.mjs.map +1 -1
  49. package/fesm2015/c8y-ngx-components-loriot-device-registration.mjs +4 -2
  50. package/fesm2015/c8y-ngx-components-loriot-device-registration.mjs.map +1 -1
  51. package/fesm2015/c8y-ngx-components-operations-bulk-operations-list.mjs +2 -2
  52. package/fesm2015/c8y-ngx-components-operations-bulk-operations-list.mjs.map +1 -1
  53. package/fesm2015/c8y-ngx-components-operations-operations-list.mjs +4 -4
  54. package/fesm2015/c8y-ngx-components-operations-operations-list.mjs.map +1 -1
  55. package/fesm2015/c8y-ngx-components-register-device.mjs +8 -8
  56. package/fesm2015/c8y-ngx-components-register-device.mjs.map +1 -1
  57. package/fesm2015/c8y-ngx-components-repository-software.mjs +6 -6
  58. package/fesm2015/c8y-ngx-components-repository-software.mjs.map +1 -1
  59. package/fesm2015/c8y-ngx-components-sigfox-device-registration.mjs +2 -2
  60. package/fesm2015/c8y-ngx-components-sigfox-device-registration.mjs.map +1 -1
  61. package/fesm2015/c8y-ngx-components.mjs +34 -34
  62. package/fesm2015/c8y-ngx-components.mjs.map +1 -1
  63. package/fesm2020/c8y-ngx-components-actility-device-registration.mjs +2 -2
  64. package/fesm2020/c8y-ngx-components-actility-device-registration.mjs.map +1 -1
  65. package/fesm2020/c8y-ngx-components-context-dashboard.mjs +54 -61
  66. package/fesm2020/c8y-ngx-components-context-dashboard.mjs.map +1 -1
  67. package/fesm2020/c8y-ngx-components-device-grid.mjs +2 -2
  68. package/fesm2020/c8y-ngx-components-device-grid.mjs.map +1 -1
  69. package/fesm2020/c8y-ngx-components-ecosystem.mjs +5 -4
  70. package/fesm2020/c8y-ngx-components-ecosystem.mjs.map +1 -1
  71. package/fesm2020/c8y-ngx-components-loriot-device-registration.mjs +4 -2
  72. package/fesm2020/c8y-ngx-components-loriot-device-registration.mjs.map +1 -1
  73. package/fesm2020/c8y-ngx-components-operations-bulk-operations-list.mjs +2 -2
  74. package/fesm2020/c8y-ngx-components-operations-bulk-operations-list.mjs.map +1 -1
  75. package/fesm2020/c8y-ngx-components-operations-operations-list.mjs +4 -4
  76. package/fesm2020/c8y-ngx-components-operations-operations-list.mjs.map +1 -1
  77. package/fesm2020/c8y-ngx-components-register-device.mjs +8 -8
  78. package/fesm2020/c8y-ngx-components-register-device.mjs.map +1 -1
  79. package/fesm2020/c8y-ngx-components-repository-software.mjs +6 -6
  80. package/fesm2020/c8y-ngx-components-repository-software.mjs.map +1 -1
  81. package/fesm2020/c8y-ngx-components-sigfox-device-registration.mjs +2 -2
  82. package/fesm2020/c8y-ngx-components-sigfox-device-registration.mjs.map +1 -1
  83. package/fesm2020/c8y-ngx-components.mjs +34 -34
  84. package/fesm2020/c8y-ngx-components.mjs.map +1 -1
  85. package/locales/locales.pot +21 -16
  86. package/package.json +2 -2
@@ -60,7 +60,7 @@ OperationsListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
60
60
  provide: PRODUCT_EXPERIENCE_EVENT_SOURCE,
61
61
  useExisting: forwardRef(() => OperationsListComponent)
62
62
  }
63
- ], viewQueries: [{ propertyName: "statusFilter", first: true, predicate: ["statusFilter"], descendants: true, static: true }], ngImport: i0, template: "<c8y-title>{{ 'Single operations' | translate }}</c8y-title>\n<!--\n TODO: fix breadcrumbs \n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-overviews'\"\n [label]=\"'Overviews' | translate\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-device-control'\"\n [label]=\"'Device Control' | translate\"\n [path]=\"'devicecontrol/single'\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-device-control'\"\n [label]=\" 'Single operations' | translate\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n-->\n\n<c8y-action-bar-item [placement]=\"'left'\" itemClass=\"navbar-form\">\n <c8y-status-filter\n #statusFilter\n [options]=\"OPERATION_STATUS_OPTIONS_MAP\"\n (onFilterChanged)=\"statusFilter$.next($event)\"\n c8yProductExperience\n inherit\n ></c8y-status-filter>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <c8y-realtime-btn [service]=\"realtime\"></c8y-realtime-btn>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link d-flex a-i-center\"\n title=\"{{ 'Reload' | translate }}\"\n (click)=\"reload$.next()\"\n >\n <i c8yIcon=\"refresh\" [ngClass]=\"{ 'icon-spin': refreshLoading }\" class=\"m-r-4\"></i>\n <span class=\"text-truncate\">\n {{ 'Reload' | translate }}\n </span>\n </button>\n</c8y-action-bar-item>\n\n<!-- Empty state -->\n<c8y-ui-empty-state\n [icon]=\"'c8y-energy'\"\n [title]=\"'No items to display.' | translate\"\n [subtitle]=\"'Operations will be displayed here.' | translate\"\n *ngIf=\"(operations$ | async)?.data.length === 0 && !(statusFilter$ | async)\"\n></c8y-ui-empty-state>\n<!-- No results empty state -->\n<c8y-ui-empty-state\n [icon]=\"'search'\"\n [title]=\"'No results to display.' | translate\"\n [subtitle]=\"'Adjust or reset the filter.' | translate\"\n *ngIf=\"(operations$ | async)?.data.length === 0 && (statusFilter$ | async)\"\n>\n <button\n type=\"button\"\n title=\"{{ 'Reset filter' | translate }}\"\n class=\"btn btn-primary\"\n (click)=\"statusFilter.reset()\"\n translate\n >\n Reset filter\n </button>\n</c8y-ui-empty-state>\n\n<!-- Detailed list of operations + load more button -->\n<c8y-list-group class=\"m-b-24\">\n <div\n class=\"page-sticky-header c8y-list__item c8y-list__item--double-actions hidden-xs\"\n *ngIf=\"(operations$ | async)?.data.length\"\n >\n <div class=\"c8y-list__item__block\">\n <div class=\"c8y-list__item__icon\">\n <i class=\"p-l-24\"></i>\n </div>\n <div class=\"c8y-list__item__body text-truncate-wrap\">\n <div class=\"content-flex-57\">\n <div class=\"col-5\">\n {{ 'Operation' | translate }}\n </div>\n <div class=\"flex-grow\" *ngIf=\"!deviceId\">\n {{ 'Device' | translate }}\n </div>\n <div class=\"col-4\">\n {{ 'Date created' | translate }}\n </div>\n </div>\n </div>\n <div class=\"c8y-list__item__actions\"></div>\n </div>\n </div>\n <div\n class=\"d-contents\"\n *c8yFor=\"\n let op of operations$ | async;\n let i = index;\n realtime: realtime;\n realtimeOptions: { entityOrId: deviceId };\n comparator: compareOperations.bind(this);\n loadMore: 'auto'\n \"\n >\n <c8y-operations-list-item\n [operation]=\"op\"\n (reload)=\"reload$.next()\"\n class=\"d-contents\"\n c8yProductExperience\n inherit\n ></c8y-operations-list-item>\n </div>\n</c8y-list-group>\n", dependencies: [{ kind: "component", type: i1.ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId"] }, { kind: "component", type: i1.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ForOfDirective, selector: "[c8yFor]", inputs: ["c8yForOf", "c8yForLoadMore", "c8yForPipe", "c8yForNotFound", "c8yForMaxIterations", "c8yForLoadingTemplate", "c8yForLoadNextLabel", "c8yForRealtime", "c8yForRealtimeOptions", "c8yForComparator", "c8yForEnableVirtualScroll", "c8yForVirtualScrollElementSize", "c8yForVirtualScrollStrategy", "c8yForVirtualScrollContainerHeight"], outputs: ["c8yForCount"] }, { kind: "component", type: i1.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "component", type: i1.ListGroupComponent, selector: "c8y-list-group" }, { kind: "directive", type: i1.ProductExperienceDirective, selector: "[c8yProductExperience]", inputs: ["actionName", "actionData", "inherit"] }, { kind: "component", type: i1.RealtimeButtonComponent, selector: "c8y-realtime-btn", inputs: ["service", "label", "title"] }, { kind: "component", type: i5.StatusFilterComponent, selector: "c8y-status-filter", inputs: ["options", "multiple", "small"], outputs: ["onFilterChanged"] }, { kind: "component", type: i6.OperationsListItemComponent, selector: "c8y-operations-list-item", inputs: ["operation", "collapsed", "readOnly", "noExpandToggle"] }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] });
63
+ ], viewQueries: [{ propertyName: "statusFilter", first: true, predicate: ["statusFilter"], descendants: true, static: true }], ngImport: i0, template: "<c8y-title>{{ 'Single operations' | translate }}</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-overviews'\"\n [label]=\"'Overviews' | translate\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-device-control'\"\n [label]=\"'Device Control' | translate\"\n [path]=\"'devicecontrol/single'\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-device-control'\"\n [label]=\"'Single operations' | translate\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item [placement]=\"'left'\" itemClass=\"navbar-form\">\n <c8y-status-filter\n #statusFilter\n [options]=\"OPERATION_STATUS_OPTIONS_MAP\"\n (onFilterChanged)=\"statusFilter$.next($event)\"\n c8yProductExperience\n inherit\n ></c8y-status-filter>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <c8y-realtime-btn [service]=\"realtime\"></c8y-realtime-btn>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link d-flex a-i-center\"\n title=\"{{ 'Reload' | translate }}\"\n (click)=\"reload$.next()\"\n >\n <i c8yIcon=\"refresh\" [ngClass]=\"{ 'icon-spin': refreshLoading }\" class=\"m-r-4\"></i>\n <span class=\"text-truncate\">\n {{ 'Reload' | translate }}\n </span>\n </button>\n</c8y-action-bar-item>\n\n<!-- Empty state -->\n<c8y-ui-empty-state\n [icon]=\"'c8y-energy'\"\n [title]=\"'No items to display.' | translate\"\n [subtitle]=\"'Operations will be displayed here.' | translate\"\n *ngIf=\"(operations$ | async)?.data.length === 0 && !(statusFilter$ | async)\"\n></c8y-ui-empty-state>\n<!-- No results empty state -->\n<c8y-ui-empty-state\n [icon]=\"'search'\"\n [title]=\"'No results to display.' | translate\"\n [subtitle]=\"'Adjust or reset the filter.' | translate\"\n *ngIf=\"(operations$ | async)?.data.length === 0 && (statusFilter$ | async)\"\n>\n <button\n type=\"button\"\n title=\"{{ 'Reset filter' | translate }}\"\n class=\"btn btn-primary\"\n (click)=\"statusFilter.reset()\"\n translate\n >\n Reset filter\n </button>\n</c8y-ui-empty-state>\n\n<!-- Detailed list of operations + load more button -->\n<c8y-list-group class=\"m-b-24\">\n <div\n class=\"page-sticky-header c8y-list__item c8y-list__item--double-actions hidden-xs\"\n *ngIf=\"(operations$ | async)?.data.length\"\n >\n <div class=\"c8y-list__item__block\">\n <div class=\"c8y-list__item__icon\">\n <i class=\"p-l-24\"></i>\n </div>\n <div class=\"c8y-list__item__body text-truncate-wrap\">\n <div class=\"content-flex-57\">\n <div class=\"col-5\">\n {{ 'Operation' | translate }}\n </div>\n <div class=\"flex-grow\" *ngIf=\"!deviceId\">\n {{ 'Device' | translate }}\n </div>\n <div class=\"col-4\">\n {{ 'Date created' | translate }}\n </div>\n </div>\n </div>\n <div class=\"c8y-list__item__actions\"></div>\n </div>\n </div>\n <div\n class=\"d-contents\"\n *c8yFor=\"\n let op of operations$ | async;\n let i = index;\n realtime: realtime;\n realtimeOptions: { entityOrId: deviceId };\n comparator: compareOperations.bind(this);\n loadMore: 'auto'\n \"\n >\n <c8y-operations-list-item\n [operation]=\"op\"\n (reload)=\"reload$.next()\"\n class=\"d-contents\"\n c8yProductExperience\n inherit\n ></c8y-operations-list-item>\n </div>\n</c8y-list-group>\n", dependencies: [{ kind: "component", type: i1.ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId"] }, { kind: "component", type: i1.BreadcrumbComponent, selector: "c8y-breadcrumb" }, { kind: "component", type: i1.BreadcrumbItemComponent, selector: "c8y-breadcrumb-item", inputs: ["icon", "translate", "label", "path", "injector"] }, { kind: "component", type: i1.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ForOfDirective, selector: "[c8yFor]", inputs: ["c8yForOf", "c8yForLoadMore", "c8yForPipe", "c8yForNotFound", "c8yForMaxIterations", "c8yForLoadingTemplate", "c8yForLoadNextLabel", "c8yForRealtime", "c8yForRealtimeOptions", "c8yForComparator", "c8yForEnableVirtualScroll", "c8yForVirtualScrollElementSize", "c8yForVirtualScrollStrategy", "c8yForVirtualScrollContainerHeight"], outputs: ["c8yForCount"] }, { kind: "component", type: i1.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "component", type: i1.ListGroupComponent, selector: "c8y-list-group" }, { kind: "directive", type: i1.ProductExperienceDirective, selector: "[c8yProductExperience]", inputs: ["actionName", "actionData", "inherit"] }, { kind: "component", type: i1.RealtimeButtonComponent, selector: "c8y-realtime-btn", inputs: ["service", "label", "title"] }, { kind: "component", type: i5.StatusFilterComponent, selector: "c8y-status-filter", inputs: ["options", "multiple", "small"], outputs: ["onFilterChanged"] }, { kind: "component", type: i6.OperationsListItemComponent, selector: "c8y-operations-list-item", inputs: ["operation", "collapsed", "readOnly", "noExpandToggle"] }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] });
64
64
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: OperationsListComponent, decorators: [{
65
65
  type: Component,
66
66
  args: [{ selector: 'c8y-operations-list', providers: [
@@ -69,9 +69,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
69
69
  provide: PRODUCT_EXPERIENCE_EVENT_SOURCE,
70
70
  useExisting: forwardRef(() => OperationsListComponent)
71
71
  }
72
- ], template: "<c8y-title>{{ 'Single operations' | translate }}</c8y-title>\n<!--\n TODO: fix breadcrumbs \n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-overviews'\"\n [label]=\"'Overviews' | translate\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-device-control'\"\n [label]=\"'Device Control' | translate\"\n [path]=\"'devicecontrol/single'\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-device-control'\"\n [label]=\" 'Single operations' | translate\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n-->\n\n<c8y-action-bar-item [placement]=\"'left'\" itemClass=\"navbar-form\">\n <c8y-status-filter\n #statusFilter\n [options]=\"OPERATION_STATUS_OPTIONS_MAP\"\n (onFilterChanged)=\"statusFilter$.next($event)\"\n c8yProductExperience\n inherit\n ></c8y-status-filter>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <c8y-realtime-btn [service]=\"realtime\"></c8y-realtime-btn>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link d-flex a-i-center\"\n title=\"{{ 'Reload' | translate }}\"\n (click)=\"reload$.next()\"\n >\n <i c8yIcon=\"refresh\" [ngClass]=\"{ 'icon-spin': refreshLoading }\" class=\"m-r-4\"></i>\n <span class=\"text-truncate\">\n {{ 'Reload' | translate }}\n </span>\n </button>\n</c8y-action-bar-item>\n\n<!-- Empty state -->\n<c8y-ui-empty-state\n [icon]=\"'c8y-energy'\"\n [title]=\"'No items to display.' | translate\"\n [subtitle]=\"'Operations will be displayed here.' | translate\"\n *ngIf=\"(operations$ | async)?.data.length === 0 && !(statusFilter$ | async)\"\n></c8y-ui-empty-state>\n<!-- No results empty state -->\n<c8y-ui-empty-state\n [icon]=\"'search'\"\n [title]=\"'No results to display.' | translate\"\n [subtitle]=\"'Adjust or reset the filter.' | translate\"\n *ngIf=\"(operations$ | async)?.data.length === 0 && (statusFilter$ | async)\"\n>\n <button\n type=\"button\"\n title=\"{{ 'Reset filter' | translate }}\"\n class=\"btn btn-primary\"\n (click)=\"statusFilter.reset()\"\n translate\n >\n Reset filter\n </button>\n</c8y-ui-empty-state>\n\n<!-- Detailed list of operations + load more button -->\n<c8y-list-group class=\"m-b-24\">\n <div\n class=\"page-sticky-header c8y-list__item c8y-list__item--double-actions hidden-xs\"\n *ngIf=\"(operations$ | async)?.data.length\"\n >\n <div class=\"c8y-list__item__block\">\n <div class=\"c8y-list__item__icon\">\n <i class=\"p-l-24\"></i>\n </div>\n <div class=\"c8y-list__item__body text-truncate-wrap\">\n <div class=\"content-flex-57\">\n <div class=\"col-5\">\n {{ 'Operation' | translate }}\n </div>\n <div class=\"flex-grow\" *ngIf=\"!deviceId\">\n {{ 'Device' | translate }}\n </div>\n <div class=\"col-4\">\n {{ 'Date created' | translate }}\n </div>\n </div>\n </div>\n <div class=\"c8y-list__item__actions\"></div>\n </div>\n </div>\n <div\n class=\"d-contents\"\n *c8yFor=\"\n let op of operations$ | async;\n let i = index;\n realtime: realtime;\n realtimeOptions: { entityOrId: deviceId };\n comparator: compareOperations.bind(this);\n loadMore: 'auto'\n \"\n >\n <c8y-operations-list-item\n [operation]=\"op\"\n (reload)=\"reload$.next()\"\n class=\"d-contents\"\n c8yProductExperience\n inherit\n ></c8y-operations-list-item>\n </div>\n</c8y-list-group>\n" }]
72
+ ], template: "<c8y-title>{{ 'Single operations' | translate }}</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-overviews'\"\n [label]=\"'Overviews' | translate\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-device-control'\"\n [label]=\"'Device Control' | translate\"\n [path]=\"'devicecontrol/single'\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-device-control'\"\n [label]=\"'Single operations' | translate\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item [placement]=\"'left'\" itemClass=\"navbar-form\">\n <c8y-status-filter\n #statusFilter\n [options]=\"OPERATION_STATUS_OPTIONS_MAP\"\n (onFilterChanged)=\"statusFilter$.next($event)\"\n c8yProductExperience\n inherit\n ></c8y-status-filter>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <c8y-realtime-btn [service]=\"realtime\"></c8y-realtime-btn>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link d-flex a-i-center\"\n title=\"{{ 'Reload' | translate }}\"\n (click)=\"reload$.next()\"\n >\n <i c8yIcon=\"refresh\" [ngClass]=\"{ 'icon-spin': refreshLoading }\" class=\"m-r-4\"></i>\n <span class=\"text-truncate\">\n {{ 'Reload' | translate }}\n </span>\n </button>\n</c8y-action-bar-item>\n\n<!-- Empty state -->\n<c8y-ui-empty-state\n [icon]=\"'c8y-energy'\"\n [title]=\"'No items to display.' | translate\"\n [subtitle]=\"'Operations will be displayed here.' | translate\"\n *ngIf=\"(operations$ | async)?.data.length === 0 && !(statusFilter$ | async)\"\n></c8y-ui-empty-state>\n<!-- No results empty state -->\n<c8y-ui-empty-state\n [icon]=\"'search'\"\n [title]=\"'No results to display.' | translate\"\n [subtitle]=\"'Adjust or reset the filter.' | translate\"\n *ngIf=\"(operations$ | async)?.data.length === 0 && (statusFilter$ | async)\"\n>\n <button\n type=\"button\"\n title=\"{{ 'Reset filter' | translate }}\"\n class=\"btn btn-primary\"\n (click)=\"statusFilter.reset()\"\n translate\n >\n Reset filter\n </button>\n</c8y-ui-empty-state>\n\n<!-- Detailed list of operations + load more button -->\n<c8y-list-group class=\"m-b-24\">\n <div\n class=\"page-sticky-header c8y-list__item c8y-list__item--double-actions hidden-xs\"\n *ngIf=\"(operations$ | async)?.data.length\"\n >\n <div class=\"c8y-list__item__block\">\n <div class=\"c8y-list__item__icon\">\n <i class=\"p-l-24\"></i>\n </div>\n <div class=\"c8y-list__item__body text-truncate-wrap\">\n <div class=\"content-flex-57\">\n <div class=\"col-5\">\n {{ 'Operation' | translate }}\n </div>\n <div class=\"flex-grow\" *ngIf=\"!deviceId\">\n {{ 'Device' | translate }}\n </div>\n <div class=\"col-4\">\n {{ 'Date created' | translate }}\n </div>\n </div>\n </div>\n <div class=\"c8y-list__item__actions\"></div>\n </div>\n </div>\n <div\n class=\"d-contents\"\n *c8yFor=\"\n let op of operations$ | async;\n let i = index;\n realtime: realtime;\n realtimeOptions: { entityOrId: deviceId };\n comparator: compareOperations.bind(this);\n loadMore: 'auto'\n \"\n >\n <c8y-operations-list-item\n [operation]=\"op\"\n (reload)=\"reload$.next()\"\n class=\"d-contents\"\n c8yProductExperience\n inherit\n ></c8y-operations-list-item>\n </div>\n</c8y-list-group>\n" }]
73
73
  }], ctorParameters: function () { return [{ type: i1.OperationRealtimeService }, { type: i2.OperationsListService }, { type: i3.ActivatedRoute }]; }, propDecorators: { statusFilter: [{
74
74
  type: ViewChild,
75
75
  args: ['statusFilter', { static: true }]
76
76
  }] } });
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9ucy1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL29wZXJhdGlvbnMvb3BlcmF0aW9ucy1saXN0L29wZXJhdGlvbnMtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9vcGVyYXRpb25zL29wZXJhdGlvbnMtbGlzdC9vcGVyYXRpb25zLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxPQUFPLEVBQ0wsT0FBTyxFQUNQLHdCQUF3QixFQUd4QiwrQkFBK0IsRUFDaEMsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQ0wsaUNBQWlDLEVBQ2pDLCtCQUErQixFQUNoQyxNQUFNLG1EQUFtRCxDQUFDO0FBQzNELE9BQU8sRUFFTCw0QkFBNEIsRUFFN0IsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNyRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7OztBQWFsRSxNQUFNLE9BQU8sdUJBQXVCO0lBNEJsQyxZQUNTLFFBQWtDLEVBQ2pDLHFCQUE0QyxFQUM1QyxLQUFxQjtRQUZ0QixhQUFRLEdBQVIsUUFBUSxDQUEwQjtRQUNqQywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FB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QXFCLGFBRXBCO3dCQUNULHdCQUF3Qjt3QkFDeEI7NEJBQ0UsT0FBTyxFQUFFLCtCQUErQjs0QkFDeEMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsd0JBQXdCLENBQUM7eUJBQ3ZEO3FCQUNGO2dMQVU0QyxZQUFZO3NCQUF4RCxTQUFTO3VCQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgSU9wZXJhdGlvbiwgSVJlc3VsdExpc3QgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQge1xuICBnZXR0ZXh0LFxuICBPcGVyYXRpb25SZWFsdGltZVNlcnZpY2UsXG4gIFByb2R1Y3RFeHBlcmllbmNlRXZlbnQsXG4gIFByb2R1Y3RFeHBlcmllbmNlRXZlbnRTb3VyY2UsXG4gIFBST0RVQ1RfRVhQRVJJRU5DRV9FVkVOVF9TT1VSQ0Vcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQge1xuICBTSU5HTEVfT1BFUkFUSU9OX0VWRU5UX0RFVklDRV9UQUIsXG4gIFNJTkdMRV9PUEVSQVRJT05fRVZFTlRfT1ZFUlZJRVdcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9vcGVyYXRpb25zL3Byb2R1Y3QtZXhwZXJpZW5jZSc7XG5pbXBvcnQge1xuICBPcGVyYXRpb25TdGF0dXNPcHRpb25zTWFwLFxuICBPUEVSQVRJT05fU1RBVFVTX09QVElPTlNfTUFQLFxuICBTdGF0dXNPcHRpb25cbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9vcGVyYXRpb25zL3NoYXJlZCc7XG5pbXBvcnQgeyBTdGF0dXNGaWx0ZXJDb21wb25lbnQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL29wZXJhdGlvbnMvc3RhdHVzLWZpbHRlcic7XG5pbXBvcnQgeyBmbGF0dGVuIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc2hhcmVSZXBsYXksIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgT3BlcmF0aW9uc0xpc3RTZXJ2aWNlIH0gZnJvbSAnLi9vcGVyYXRpb25zLWxpc3Quc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1vcGVyYXRpb25zLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJ29wZXJhdGlvbnMtbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW1xuICAgIE9wZXJhdGlvblJlYWx0aW1lU2VydmljZSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBQUk9EVUNUX0VYUEVSSUVOQ0VfRVZFTlRfU09VUkNFLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gT3BlcmF0aW9uc0xpc3RDb21wb25lbnQpXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE9wZXJhdGlvbnNMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgUHJvZHVjdEV4cGVyaWVuY2VFdmVudFNvdXJjZSB7XG4gIGRldmljZUlkOiBzdHJpbmcgfCBudW1iZXIgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmVudC5kYXRhLmNvbnRleHREYXRhPy5pZDtcbiAgT1BFUkFUSU9OX1NUQVRVU19PUFRJT05TX01BUDogT3BlcmF0aW9uU3RhdHVzT3B0aW9uc01hcCA9IE9QRVJBVElPTl9TVEFUVVNfT1BUSU9OU19NQVA7XG5cbiAgdGl0bGU6IHN0cmluZztcbiAgcmVmcmVzaExvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgc3RhdHVzRmlsdGVyJDogQmVoYXZpb3JTdWJqZWN0PFN0YXR1c09wdGlvbltdPiA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbCk7XG4gIHJlbG9hZCQ6IEJlaGF2aW9yU3ViamVjdDx2b2lkPiA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbCk7XG4gIEBWaWV3Q2hpbGQoJ3N0YXR1c0ZpbHRlcicsIHsgc3RhdGljOiB0cnVlIH0pIHN0YXR1c0ZpbHRlcjogU3RhdHVzRmlsdGVyQ29tcG9uZW50O1xuXG4gIG9wZXJhdGlvbnMkOiBPYnNlcnZhYmxlPElSZXN1bHRMaXN0PElPcGVyYXRpb24+PiA9IGNvbWJpbmVMYXRlc3QoXG4gICAgdGhpcy5zdGF0dXNGaWx0ZXIkLFxuICAgIHRoaXMucmVsb2FkJFxuICApLnBpcGUoXG4gICAgdGFwKCgpID0+IHtcbiAgICAgIHRoaXMucmVmcmVzaExvYWRpbmcgPSB0cnVlO1xuICAgIH0pLFxuICAgIHN3aXRjaE1hcCgoW3N0YXR1c0ZpbHRlcnNdKSA9PiB0aGlzLmZpbHRlcihzdGF0dXNGaWx0ZXJzKSksXG4gICAgdGFwKCgpID0+IHtcbiAgICAgIHRoaXMucmVmcmVzaExvYWRpbmcgPSBmYWxzZTtcbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHByb2R1Y3RFeHBlcmllbmNlRXZlbnQ6IFByb2R1Y3RFeHBlcmllbmNlRXZlbnQgPSB7XG4gICAgZXZlbnROYW1lOiAhIXRoaXMuZGV2aWNlSWQgPyBTSU5HTEVfT1BFUkFUSU9OX0VWRU5UX0RFVklDRV9UQUIgOiBTSU5HTEVfT1BFUkFUSU9OX0VWRU5UX09WRVJWSUVXXG4gIH07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWx0aW1lOiBPcGVyYXRpb25SZWFsdGltZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBvcGVyYXRpb25zTGlzdFNlcnZpY2U6IE9wZXJhdGlvbnNMaXN0U2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVxuICApIHtcbiAgICB0aGlzLnRpdGxlID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJlbnQuZGF0YS5jb250ZXh0RGF0YVxuICAgICAgPyB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmVudC5kYXRhLmNvbnRleHREYXRhLm5hbWVcbiAgICAgIDogZ2V0dGV4dCgnRGV2aWNlIGNvbnRyb2wnKTtcbiAgfVxuXG4gIGZpbHRlcihzdGF0dXNGaWx0ZXJzOiBTdGF0dXNPcHRpb25bXSkge1xuICAgIGNvbnN0IHN0YXR1cyA9XG4gICAgICBzdGF0dXNGaWx0ZXJzICYmIHN0YXR1c0ZpbHRlcnMubGVuZ3RoID4gMFxuICAgICAgICA/IHtcbiAgICAgICAgICAgIHN0YXR1czogZmxhdHRlbihzdGF0dXNGaWx0ZXJzLm1hcChzdGF0dXNGaWx0ZXIgPT4gc3RhdHVzRmlsdGVyLnN0YXR1cykpXG4gICAgICAgICAgfVxuICAgICAgICA6IHt9O1xuXG4gICAgcmV0dXJuIHRoaXMuZ2V0T3BlcmF0aW9ucyhzdGF0dXMpO1xuICB9XG5cbiAgZ2V0T3BlcmF0aW9ucyhmaWx0ZXI/KSB7XG4gICAgY29uc3QgcXVlcnlGaWx0ZXIgPSB0aGlzLmRldmljZUlkID8geyAuLi5maWx0ZXIsIGRldmljZUlkOiB0aGlzLmRldmljZUlkIH0gOiBmaWx0ZXI7XG4gICAgcmV0dXJuIHRoaXMub3BlcmF0aW9uc0xpc3RTZXJ2aWNlLmdldE9wZXJhdGlvbnMocXVlcnlGaWx0ZXIpO1xuICB9XG5cbiAgY29tcGFyZU9wZXJhdGlvbnMob3BlcmF0aW9uQTogSU9wZXJhdGlvbiwgb3BlcmF0aW9uQjogSU9wZXJhdGlvbik6IG51bWJlciB7XG4gICAgcmV0dXJuIChcbiAgICAgIG5ldyBEYXRlKG9wZXJhdGlvbkEuY3JlYXRpb25UaW1lKS5nZXRUaW1lKCkgLSBuZXcgRGF0ZShvcGVyYXRpb25CLmNyZWF0aW9uVGltZSkuZ2V0VGltZSgpXG4gICAgKTtcbiAgfVxufVxuIiwiPGM4eS10aXRsZT57eyAnU2luZ2xlIG9wZXJhdGlvbnMnIHwgdHJhbnNsYXRlIH19PC9jOHktdGl0bGU+XG48IS0tXG4gIFRPRE86IGZpeCBicmVhZGNydW1icyBcbjxjOHktYnJlYWRjcnVtYj5cbiAgPGM4eS1icmVhZGNydW1iLWl0ZW1cbiAgICBbaWNvbl09XCInYzh5LW92ZXJ2aWV3cydcIlxuICAgIFtsYWJlbF09XCInT3ZlcnZpZXdzJyB8IHRyYW5zbGF0ZVwiXG4gID48L2M4eS1icmVhZGNydW1iLWl0ZW0+XG4gIDxjOHktYnJlYWRjcnVtYi1pdGVtXG4gICAgW2ljb25dPVwiJ2M4eS1kZXZpY2UtY29udHJvbCdcIlxuICAgIFtsYWJlbF09XCInRGV2aWNlIENvbnRyb2wnIHwgdHJhbnNsYXRlXCJcbiAgICBbcGF0aF09XCInZGV2aWNlY29udHJvbC9zaW5nbGUnXCJcbiAgPjwvYzh5LWJyZWFkY3J1bWItaXRlbT5cbiAgPGM4eS1icmVhZGNydW1iLWl0ZW1cbiAgICBbaWNvbl09XCInYzh5LWRldmljZS1jb250cm9sJ1wiXG4gICAgW2xhYmVsXT1cIiAnU2luZ2xlIG9wZXJhdGlvbnMnIHwgdHJhbnNsYXRlXCJcbiAgPjwvYzh5LWJyZWFkY3J1bWItaXRlbT5cbjwvYzh5LWJyZWFkY3J1bWI+XG4tLT5cblxuPGM4eS1hY3Rpb24tYmFyLWl0ZW0gW3BsYWNlbWVudF09XCInbGVmdCdcIiBpdGVtQ2xhc3M9XCJuYXZiYXItZm9ybVwiPlxuICA8Yzh5LXN0YXR1cy1maWx0ZXJcbiAgICAjc3RhdHVzRmlsdGVyXG4gICAgW29wdGlvbnNdPVwiT1BFUkFUSU9OX1NUQVRVU19PUFRJT05TX01BUFwiXG4gICAgKG9uRmlsdGVyQ2hhbmdlZCk9XCJzdGF0dXNGaWx0ZXIkLm5leHQoJGV2ZW50KVwiXG4gICAgYzh5UHJvZHVjdEV4cGVyaWVuY2VcbiAgICBpbmhlcml0XG4gID48L2M4eS1zdGF0dXMtZmlsdGVyPlxuPC9jOHktYWN0aW9uLWJhci1pdGVtPlxuXG48Yzh5LWFjdGlvbi1iYXItaXRlbSBbcGxhY2VtZW50XT1cIidyaWdodCdcIj5cbiAgPGM4eS1yZWFsdGltZS1idG4gW3NlcnZpY2VdPVwicmVhbHRpbWVcIj48L2M4eS1yZWFsdGltZS1idG4+XG48L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG5cbjxjOHktYWN0aW9uLWJhci1pdGVtIFtwbGFjZW1lbnRdPVwiJ3JpZ2h0J1wiPlxuICA8YnV0dG9uXG4gICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgZC1mbGV4IGEtaS1jZW50ZXJcIlxuICAgIHRpdGxlPVwie3sgJ1JlbG9hZCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgIChjbGljayk9XCJyZWxvYWQkLm5leHQoKVwiXG4gID5cbiAgICA8aSBjOHlJY29uPVwicmVmcmVzaFwiIFtuZ0NsYXNzXT1cInsgJ2ljb24tc3Bpbic6IHJlZnJlc2hMb2FkaW5nIH1cIiBjbGFzcz1cIm0tci00XCI+PC9pPlxuICAgIDxzcGFuIGNsYXNzPVwidGV4dC10cnVuY2F0ZVwiPlxuICAgICAge3sgJ1JlbG9hZCcgfCB0cmFuc2xhdGUgfX1cbiAgICA8L3NwYW4+XG4gIDwvYnV0dG9uPlxuPC9jOHktYWN0aW9uLWJhci1pdGVtPlxuXG48IS0tIEVtcHR5IHN0YXRlICAtLT5cbjxjOHktdWktZW1wdHktc3RhdGVcbiAgW2ljb25dPVwiJ2M4eS1lbmVyZ3knXCJcbiAgW3RpdGxlXT1cIidObyBpdGVtcyB0byBkaXNwbGF5LicgfCB0cmFuc2xhdGVcIlxuICBbc3VidGl0bGVdPVwiJ09wZXJhdGlvbnMgd2lsbCBiZSBkaXNwbGF5ZWQgaGVyZS4nIHwgdHJhbnNsYXRlXCJcbiAgKm5nSWY9XCIob3BlcmF0aW9ucyQgfCBhc3luYyk/LmRhdGEubGVuZ3RoID09PSAwICYmICEoc3RhdHVzRmlsdGVyJCB8IGFzeW5jKVwiXG4+PC9jOHktdWktZW1wdHktc3RhdGU+XG48IS0tIE5vIHJlc3VsdHMgZW1wdHkgc3RhdGUgLS0+XG48Yzh5LXVpLWVtcHR5LXN0YXRlXG4gIFtpY29uXT1cIidzZWFyY2gnXCJcbiAgW3RpdGxlXT1cIidObyByZXN1bHRzIHRvIGRpc3BsYXkuJyB8IHRyYW5zbGF0ZVwiXG4gIFtzdWJ0aXRsZV09XCInQWRqdXN0IG9yIHJlc2V0IHRoZSBmaWx0ZXIuJyB8IHRyYW5zbGF0ZVwiXG4gICpuZ0lmPVwiKG9wZXJhdGlvbnMkIHwgYXN5bmMpPy5kYXRhLmxlbmd0aCA9PT0gMCAmJiAoc3RhdHVzRmlsdGVyJCB8IGFzeW5jKVwiXG4+XG4gIDxidXR0b25cbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICB0aXRsZT1cInt7ICdSZXNldCBmaWx0ZXInIHwgdHJhbnNsYXRlIH19XCJcbiAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiXG4gICAgKGNsaWNrKT1cInN0YXR1c0ZpbHRlci5yZXNldCgpXCJcbiAgICB0cmFuc2xhdGVcbiAgPlxuICAgIFJlc2V0IGZpbHRlclxuICA8L2J1dHRvbj5cbjwvYzh5LXVpLWVtcHR5LXN0YXRlPlxuXG48IS0tIERldGFpbGVkIGxpc3Qgb2Ygb3BlcmF0aW9ucyArIGxvYWQgbW9yZSBidXR0b24gLS0+XG48Yzh5LWxpc3QtZ3JvdXAgY2xhc3M9XCJtLWItMjRcIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwicGFnZS1zdGlja3ktaGVhZGVyIGM4eS1saXN0X19pdGVtIGM4eS1saXN0X19pdGVtLS1kb3VibGUtYWN0aW9ucyBoaWRkZW4teHNcIlxuICAgICpuZ0lmPVwiKG9wZXJhdGlvbnMkIHwgYXN5bmMpPy5kYXRhLmxlbmd0aFwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwiYzh5LWxpc3RfX2l0ZW1fX2Jsb2NrXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYzh5LWxpc3RfX2l0ZW1fX2ljb25cIj5cbiAgICAgICAgPGkgY2xhc3M9XCJwLWwtMjRcIj48L2k+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjOHktbGlzdF9faXRlbV9fYm9keSB0ZXh0LXRydW5jYXRlLXdyYXBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtZmxleC01N1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNVwiPlxuICAgICAgICAgICAge3sgJ09wZXJhdGlvbicgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93XCIgKm5nSWY9XCIhZGV2aWNlSWRcIj5cbiAgICAgICAgICAgIHt7ICdEZXZpY2UnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC00XCI+XG4gICAgICAgICAgICB7eyAnRGF0ZSBjcmVhdGVkJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImM4eS1saXN0X19pdGVtX19hY3Rpb25zXCI+PC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgY2xhc3M9XCJkLWNvbnRlbnRzXCJcbiAgICAqYzh5Rm9yPVwiXG4gICAgICBsZXQgb3Agb2Ygb3BlcmF0aW9ucyQgfCBhc3luYztcbiAgICAgIGxldCBpID0gaW5kZXg7XG4gICAgICByZWFsdGltZTogcmVhbHRpbWU7XG4gICAgICByZWFsdGltZU9wdGlvbnM6IHsgZW50aXR5T3JJZDogZGV2aWNlSWQgfTtcbiAgICAgIGNvbXBhcmF0b3I6IGNvbXBhcmVPcGVyYXRpb25zLmJpbmQodGhpcyk7XG4gICAgICBsb2FkTW9yZTogJ2F1dG8nXG4gICAgXCJcbiAgPlxuICAgIDxjOHktb3BlcmF0aW9ucy1saXN0LWl0ZW1cbiAgICAgIFtvcGVyYXRpb25dPVwib3BcIlxuICAgICAgKHJlbG9hZCk9XCJyZWxvYWQkLm5leHQoKVwiXG4gICAgICBjbGFzcz1cImQtY29udGVudHNcIlxuICAgICAgYzh5UHJvZHVjdEV4cGVyaWVuY2VcbiAgICAgIGluaGVyaXRcbiAgICA+PC9jOHktb3BlcmF0aW9ucy1saXN0LWl0ZW0+XG4gIDwvZGl2PlxuPC9jOHktbGlzdC1ncm91cD5cbiJdfQ==
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9ucy1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL29wZXJhdGlvbnMvb3BlcmF0aW9ucy1saXN0L29wZXJhdGlvbnMtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9vcGVyYXRpb25zL29wZXJhdGlvbnMtbGlzdC9vcGVyYXRpb25zLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxPQUFPLEVBQ0wsT0FBTyxFQUNQLHdCQUF3QixFQUd4QiwrQkFBK0IsRUFDaEMsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQ0wsaUNBQWlDLEVBQ2pDLCtCQUErQixFQUNoQyxNQUFNLG1EQUFtRCxDQUFDO0FBQzNELE9BQU8sRUFFTCw0QkFBNEIsRUFFN0IsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNyRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7OztBQWFsRSxNQUFNLE9BQU8sdUJBQXVCO0lBNEJsQyxZQUNTLFFBQWtDLEVBQ2pDLHFCQUE0QyxFQUM1QyxLQUFxQjtRQUZ0QixhQUFRLEdBQVIsUUFBUSxDQUEwQjtRQUNqQywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FB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QXFCLGFBRXBCO3dCQUNULHdCQUF3Qjt3QkFDeEI7NEJBQ0UsT0FBTyxFQUFFLCtCQUErQjs0QkFDeEMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsd0JBQXdCLENBQUM7eUJBQ3ZEO3FCQUNGO2dMQVU0QyxZQUFZO3NCQUF4RCxTQUFTO3VCQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgSU9wZXJhdGlvbiwgSVJlc3VsdExpc3QgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQge1xuICBnZXR0ZXh0LFxuICBPcGVyYXRpb25SZWFsdGltZVNlcnZpY2UsXG4gIFByb2R1Y3RFeHBlcmllbmNlRXZlbnQsXG4gIFByb2R1Y3RFeHBlcmllbmNlRXZlbnRTb3VyY2UsXG4gIFBST0RVQ1RfRVhQRVJJRU5DRV9FVkVOVF9TT1VSQ0Vcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQge1xuICBTSU5HTEVfT1BFUkFUSU9OX0VWRU5UX0RFVklDRV9UQUIsXG4gIFNJTkdMRV9PUEVSQVRJT05fRVZFTlRfT1ZFUlZJRVdcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9vcGVyYXRpb25zL3Byb2R1Y3QtZXhwZXJpZW5jZSc7XG5pbXBvcnQge1xuICBPcGVyYXRpb25TdGF0dXNPcHRpb25zTWFwLFxuICBPUEVSQVRJT05fU1RBVFVTX09QVElPTlNfTUFQLFxuICBTdGF0dXNPcHRpb25cbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9vcGVyYXRpb25zL3NoYXJlZCc7XG5pbXBvcnQgeyBTdGF0dXNGaWx0ZXJDb21wb25lbnQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL29wZXJhdGlvbnMvc3RhdHVzLWZpbHRlcic7XG5pbXBvcnQgeyBmbGF0dGVuIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc2hhcmVSZXBsYXksIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgT3BlcmF0aW9uc0xpc3RTZXJ2aWNlIH0gZnJvbSAnLi9vcGVyYXRpb25zLWxpc3Quc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1vcGVyYXRpb25zLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJ29wZXJhdGlvbnMtbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW1xuICAgIE9wZXJhdGlvblJlYWx0aW1lU2VydmljZSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBQUk9EVUNUX0VYUEVSSUVOQ0VfRVZFTlRfU09VUkNFLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gT3BlcmF0aW9uc0xpc3RDb21wb25lbnQpXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE9wZXJhdGlvbnNMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgUHJvZHVjdEV4cGVyaWVuY2VFdmVudFNvdXJjZSB7XG4gIGRldmljZUlkOiBzdHJpbmcgfCBudW1iZXIgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmVudC5kYXRhLmNvbnRleHREYXRhPy5pZDtcbiAgT1BFUkFUSU9OX1NUQVRVU19PUFRJT05TX01BUDogT3BlcmF0aW9uU3RhdHVzT3B0aW9uc01hcCA9IE9QRVJBVElPTl9TVEFUVVNfT1BUSU9OU19NQVA7XG5cbiAgdGl0bGU6IHN0cmluZztcbiAgcmVmcmVzaExvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgc3RhdHVzRmlsdGVyJDogQmVoYXZpb3JTdWJqZWN0PFN0YXR1c09wdGlvbltdPiA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbCk7XG4gIHJlbG9hZCQ6IEJlaGF2aW9yU3ViamVjdDx2b2lkPiA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbCk7XG4gIEBWaWV3Q2hpbGQoJ3N0YXR1c0ZpbHRlcicsIHsgc3RhdGljOiB0cnVlIH0pIHN0YXR1c0ZpbHRlcjogU3RhdHVzRmlsdGVyQ29tcG9uZW50O1xuXG4gIG9wZXJhdGlvbnMkOiBPYnNlcnZhYmxlPElSZXN1bHRMaXN0PElPcGVyYXRpb24+PiA9IGNvbWJpbmVMYXRlc3QoXG4gICAgdGhpcy5zdGF0dXNGaWx0ZXIkLFxuICAgIHRoaXMucmVsb2FkJFxuICApLnBpcGUoXG4gICAgdGFwKCgpID0+IHtcbiAgICAgIHRoaXMucmVmcmVzaExvYWRpbmcgPSB0cnVlO1xuICAgIH0pLFxuICAgIHN3aXRjaE1hcCgoW3N0YXR1c0ZpbHRlcnNdKSA9PiB0aGlzLmZpbHRlcihzdGF0dXNGaWx0ZXJzKSksXG4gICAgdGFwKCgpID0+IHtcbiAgICAgIHRoaXMucmVmcmVzaExvYWRpbmcgPSBmYWxzZTtcbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHByb2R1Y3RFeHBlcmllbmNlRXZlbnQ6IFByb2R1Y3RFeHBlcmllbmNlRXZlbnQgPSB7XG4gICAgZXZlbnROYW1lOiAhIXRoaXMuZGV2aWNlSWQgPyBTSU5HTEVfT1BFUkFUSU9OX0VWRU5UX0RFVklDRV9UQUIgOiBTSU5HTEVfT1BFUkFUSU9OX0VWRU5UX09WRVJWSUVXXG4gIH07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWx0aW1lOiBPcGVyYXRpb25SZWFsdGltZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBvcGVyYXRpb25zTGlzdFNlcnZpY2U6IE9wZXJhdGlvbnNMaXN0U2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVxuICApIHtcbiAgICB0aGlzLnRpdGxlID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJlbnQuZGF0YS5jb250ZXh0RGF0YVxuICAgICAgPyB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmVudC5kYXRhLmNvbnRleHREYXRhLm5hbWVcbiAgICAgIDogZ2V0dGV4dCgnRGV2aWNlIGNvbnRyb2wnKTtcbiAgfVxuXG4gIGZpbHRlcihzdGF0dXNGaWx0ZXJzOiBTdGF0dXNPcHRpb25bXSkge1xuICAgIGNvbnN0IHN0YXR1cyA9XG4gICAgICBzdGF0dXNGaWx0ZXJzICYmIHN0YXR1c0ZpbHRlcnMubGVuZ3RoID4gMFxuICAgICAgICA/IHtcbiAgICAgICAgICAgIHN0YXR1czogZmxhdHRlbihzdGF0dXNGaWx0ZXJzLm1hcChzdGF0dXNGaWx0ZXIgPT4gc3RhdHVzRmlsdGVyLnN0YXR1cykpXG4gICAgICAgICAgfVxuICAgICAgICA6IHt9O1xuXG4gICAgcmV0dXJuIHRoaXMuZ2V0T3BlcmF0aW9ucyhzdGF0dXMpO1xuICB9XG5cbiAgZ2V0T3BlcmF0aW9ucyhmaWx0ZXI/KSB7XG4gICAgY29uc3QgcXVlcnlGaWx0ZXIgPSB0aGlzLmRldmljZUlkID8geyAuLi5maWx0ZXIsIGRldmljZUlkOiB0aGlzLmRldmljZUlkIH0gOiBmaWx0ZXI7XG4gICAgcmV0dXJuIHRoaXMub3BlcmF0aW9uc0xpc3RTZXJ2aWNlLmdldE9wZXJhdGlvbnMocXVlcnlGaWx0ZXIpO1xuICB9XG5cbiAgY29tcGFyZU9wZXJhdGlvbnMob3BlcmF0aW9uQTogSU9wZXJhdGlvbiwgb3BlcmF0aW9uQjogSU9wZXJhdGlvbik6IG51bWJlciB7XG4gICAgcmV0dXJuIChcbiAgICAgIG5ldyBEYXRlKG9wZXJhdGlvbkEuY3JlYXRpb25UaW1lKS5nZXRUaW1lKCkgLSBuZXcgRGF0ZShvcGVyYXRpb25CLmNyZWF0aW9uVGltZSkuZ2V0VGltZSgpXG4gICAgKTtcbiAgfVxufVxuIiwiPGM4eS10aXRsZT57eyAnU2luZ2xlIG9wZXJhdGlvbnMnIHwgdHJhbnNsYXRlIH19PC9jOHktdGl0bGU+XG5cbjxjOHktYnJlYWRjcnVtYj5cbiAgPGM4eS1icmVhZGNydW1iLWl0ZW1cbiAgICBbaWNvbl09XCInYzh5LW92ZXJ2aWV3cydcIlxuICAgIFtsYWJlbF09XCInT3ZlcnZpZXdzJyB8IHRyYW5zbGF0ZVwiXG4gID48L2M4eS1icmVhZGNydW1iLWl0ZW0+XG4gIDxjOHktYnJlYWRjcnVtYi1pdGVtXG4gICAgW2ljb25dPVwiJ2M4eS1kZXZpY2UtY29udHJvbCdcIlxuICAgIFtsYWJlbF09XCInRGV2aWNlIENvbnRyb2wnIHwgdHJhbnNsYXRlXCJcbiAgICBbcGF0aF09XCInZGV2aWNlY29udHJvbC9zaW5nbGUnXCJcbiAgPjwvYzh5LWJyZWFkY3J1bWItaXRlbT5cbiAgPGM4eS1icmVhZGNydW1iLWl0ZW1cbiAgICBbaWNvbl09XCInYzh5LWRldmljZS1jb250cm9sJ1wiXG4gICAgW2xhYmVsXT1cIidTaW5nbGUgb3BlcmF0aW9ucycgfCB0cmFuc2xhdGVcIlxuICA+PC9jOHktYnJlYWRjcnVtYi1pdGVtPlxuPC9jOHktYnJlYWRjcnVtYj5cblxuPGM4eS1hY3Rpb24tYmFyLWl0ZW0gW3BsYWNlbWVudF09XCInbGVmdCdcIiBpdGVtQ2xhc3M9XCJuYXZiYXItZm9ybVwiPlxuICA8Yzh5LXN0YXR1cy1maWx0ZXJcbiAgICAjc3RhdHVzRmlsdGVyXG4gICAgW29wdGlvbnNdPVwiT1BFUkFUSU9OX1NUQVRVU19PUFRJT05TX01BUFwiXG4gICAgKG9uRmlsdGVyQ2hhbmdlZCk9XCJzdGF0dXNGaWx0ZXIkLm5leHQoJGV2ZW50KVwiXG4gICAgYzh5UHJvZHVjdEV4cGVyaWVuY2VcbiAgICBpbmhlcml0XG4gID48L2M4eS1zdGF0dXMtZmlsdGVyPlxuPC9jOHktYWN0aW9uLWJhci1pdGVtPlxuXG48Yzh5LWFjdGlvbi1iYXItaXRlbSBbcGxhY2VtZW50XT1cIidyaWdodCdcIj5cbiAgPGM4eS1yZWFsdGltZS1idG4gW3NlcnZpY2VdPVwicmVhbHRpbWVcIj48L2M4eS1yZWFsdGltZS1idG4+XG48L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG5cbjxjOHktYWN0aW9uLWJhci1pdGVtIFtwbGFjZW1lbnRdPVwiJ3JpZ2h0J1wiPlxuICA8YnV0dG9uXG4gICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgZC1mbGV4IGEtaS1jZW50ZXJcIlxuICAgIHRpdGxlPVwie3sgJ1JlbG9hZCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgIChjbGljayk9XCJyZWxvYWQkLm5leHQoKVwiXG4gID5cbiAgICA8aSBjOHlJY29uPVwicmVmcmVzaFwiIFtuZ0NsYXNzXT1cInsgJ2ljb24tc3Bpbic6IHJlZnJlc2hMb2FkaW5nIH1cIiBjbGFzcz1cIm0tci00XCI+PC9pPlxuICAgIDxzcGFuIGNsYXNzPVwidGV4dC10cnVuY2F0ZVwiPlxuICAgICAge3sgJ1JlbG9hZCcgfCB0cmFuc2xhdGUgfX1cbiAgICA8L3NwYW4+XG4gIDwvYnV0dG9uPlxuPC9jOHktYWN0aW9uLWJhci1pdGVtPlxuXG48IS0tIEVtcHR5IHN0YXRlICAtLT5cbjxjOHktdWktZW1wdHktc3RhdGVcbiAgW2ljb25dPVwiJ2M4eS1lbmVyZ3knXCJcbiAgW3RpdGxlXT1cIidObyBpdGVtcyB0byBkaXNwbGF5LicgfCB0cmFuc2xhdGVcIlxuICBbc3VidGl0bGVdPVwiJ09wZXJhdGlvbnMgd2lsbCBiZSBkaXNwbGF5ZWQgaGVyZS4nIHwgdHJhbnNsYXRlXCJcbiAgKm5nSWY9XCIob3BlcmF0aW9ucyQgfCBhc3luYyk/LmRhdGEubGVuZ3RoID09PSAwICYmICEoc3RhdHVzRmlsdGVyJCB8IGFzeW5jKVwiXG4+PC9jOHktdWktZW1wdHktc3RhdGU+XG48IS0tIE5vIHJlc3VsdHMgZW1wdHkgc3RhdGUgLS0+XG48Yzh5LXVpLWVtcHR5LXN0YXRlXG4gIFtpY29uXT1cIidzZWFyY2gnXCJcbiAgW3RpdGxlXT1cIidObyByZXN1bHRzIHRvIGRpc3BsYXkuJyB8IHRyYW5zbGF0ZVwiXG4gIFtzdWJ0aXRsZV09XCInQWRqdXN0IG9yIHJlc2V0IHRoZSBmaWx0ZXIuJyB8IHRyYW5zbGF0ZVwiXG4gICpuZ0lmPVwiKG9wZXJhdGlvbnMkIHwgYXN5bmMpPy5kYXRhLmxlbmd0aCA9PT0gMCAmJiAoc3RhdHVzRmlsdGVyJCB8IGFzeW5jKVwiXG4+XG4gIDxidXR0b25cbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICB0aXRsZT1cInt7ICdSZXNldCBmaWx0ZXInIHwgdHJhbnNsYXRlIH19XCJcbiAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiXG4gICAgKGNsaWNrKT1cInN0YXR1c0ZpbHRlci5yZXNldCgpXCJcbiAgICB0cmFuc2xhdGVcbiAgPlxuICAgIFJlc2V0IGZpbHRlclxuICA8L2J1dHRvbj5cbjwvYzh5LXVpLWVtcHR5LXN0YXRlPlxuXG48IS0tIERldGFpbGVkIGxpc3Qgb2Ygb3BlcmF0aW9ucyArIGxvYWQgbW9yZSBidXR0b24gLS0+XG48Yzh5LWxpc3QtZ3JvdXAgY2xhc3M9XCJtLWItMjRcIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwicGFnZS1zdGlja3ktaGVhZGVyIGM4eS1saXN0X19pdGVtIGM4eS1saXN0X19pdGVtLS1kb3VibGUtYWN0aW9ucyBoaWRkZW4teHNcIlxuICAgICpuZ0lmPVwiKG9wZXJhdGlvbnMkIHwgYXN5bmMpPy5kYXRhLmxlbmd0aFwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwiYzh5LWxpc3RfX2l0ZW1fX2Jsb2NrXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYzh5LWxpc3RfX2l0ZW1fX2ljb25cIj5cbiAgICAgICAgPGkgY2xhc3M9XCJwLWwtMjRcIj48L2k+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjOHktbGlzdF9faXRlbV9fYm9keSB0ZXh0LXRydW5jYXRlLXdyYXBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtZmxleC01N1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNVwiPlxuICAgICAgICAgICAge3sgJ09wZXJhdGlvbicgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93XCIgKm5nSWY9XCIhZGV2aWNlSWRcIj5cbiAgICAgICAgICAgIHt7ICdEZXZpY2UnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC00XCI+XG4gICAgICAgICAgICB7eyAnRGF0ZSBjcmVhdGVkJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImM4eS1saXN0X19pdGVtX19hY3Rpb25zXCI+PC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgY2xhc3M9XCJkLWNvbnRlbnRzXCJcbiAgICAqYzh5Rm9yPVwiXG4gICAgICBsZXQgb3Agb2Ygb3BlcmF0aW9ucyQgfCBhc3luYztcbiAgICAgIGxldCBpID0gaW5kZXg7XG4gICAgICByZWFsdGltZTogcmVhbHRpbWU7XG4gICAgICByZWFsdGltZU9wdGlvbnM6IHsgZW50aXR5T3JJZDogZGV2aWNlSWQgfTtcbiAgICAgIGNvbXBhcmF0b3I6IGNvbXBhcmVPcGVyYXRpb25zLmJpbmQodGhpcyk7XG4gICAgICBsb2FkTW9yZTogJ2F1dG8nXG4gICAgXCJcbiAgPlxuICAgIDxjOHktb3BlcmF0aW9ucy1saXN0LWl0ZW1cbiAgICAgIFtvcGVyYXRpb25dPVwib3BcIlxuICAgICAgKHJlbG9hZCk9XCJyZWxvYWQkLm5leHQoKVwiXG4gICAgICBjbGFzcz1cImQtY29udGVudHNcIlxuICAgICAgYzh5UHJvZHVjdEV4cGVyaWVuY2VcbiAgICAgIGluaGVyaXRcbiAgICA+PC9jOHktb3BlcmF0aW9ucy1saXN0LWl0ZW0+XG4gIDwvZGl2PlxuPC9jOHktbGlzdC1ncm91cD5cbiJdfQ==
@@ -123,12 +123,12 @@ export class BulkDeviceRegistrationModalComponent {
123
123
  }
124
124
  }
125
125
  BulkDeviceRegistrationModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: BulkDeviceRegistrationModalComponent, deps: [{ token: i1.Router }, { token: i2.C8yJSONSchema }, { token: i3.DeviceRegistrationBulkService }, { token: i4.RegisterDeviceService }, { token: i5.BsModalRef }, { token: i2.GainsightService }], target: i0.ɵɵFactoryTarget.Component });
126
- BulkDeviceRegistrationModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: BulkDeviceRegistrationModalComponent, selector: "bulk-device-registration", viewQueries: [{ propertyName: "stepper", first: true, predicate: C8yStepper, descendants: true, static: true }], ngImport: i0, template: "<c8y-modal [headerClasses]=\"'dialog-header'\" [customFooter]=\"true\">\n <ng-container c8y-modal-title>\n <i c8yIcon=\"upload\"></i>\n <h4 id=\"modal-title\">{{ 'Bulk device registration' | translate }}</h4>\n </ng-container>\n <c8y-stepper [hideStepProgress]=\"true\" linear id=\"modal-body\">\n <cdk-step>\n <p class=\"modal-subtitle sticky-top\" translate>Register devices in bulk</p>\n\n <c8y-form-group class=\"d-block p-24 p-t-16 p-b-0 m-b-0\">\n <formly-form [form]=\"form\" [fields]=\"template\" [model]=\"model\"></formly-form>\n </c8y-form-group>\n <div class=\"p-24 m-t-0 bg-level-1 \">\n <div class=\"content-flex-30 flex-stretch\">\n <div class=\"col-6 p-16 p-b-0 d-flex d-col j-c-between\">\n <div>\n <p class=\"m-b-8\">\n <strong translate>Simple registration</strong>\n </p>\n <small class=\"text-muted\" translate>\n Creates all registration requests at once, then each one needs to go through regular\n acceptance process.\n </small>\n </div>\n <div class=\"m-b-16 m-t-16\">\n <a\n title=\"{{ 'Download template' | translate }}\"\n class=\"btn btn-default btn-sm\"\n target=\"_self\"\n (click)=\"downloadSimple()\"\n >\n <i c8yIcon=\"download\" translate></i>\n {{ 'Download template' | translate }}\n </a>\n </div>\n </div>\n <div class=\"col-6 p-16 p-b-0 d-flex d-col j-c-between\">\n <div>\n <p class=\"m-b-8\">\n <strong translate>Full registration</strong>\n </p>\n <small class=\"text-muted\" translate>\n Creates all device credentials and devices using provided list of property values.\n Devices can start communicating with the platform immediately.\n </small>\n </div>\n <div class=\"m-b-16 m-t-16\">\n <a\n title=\"{{ 'Download template' | translate }}\"\n class=\"btn btn-default btn-sm\"\n target=\"_self\"\n (click)=\"downloadFull()\"\n >\n <i c8yIcon=\"download\" translate></i>\n {{ 'Download template' | translate }}\n </a>\n </div>\n </div>\n </div>\n </div>\n <c8y-stepper-buttons\n class=\"sticky-bottom d-block p-t-16 p-b-16 separator-top bg-level-0\"\n [showButtons]=\"{ cancel: true, next: true }\"\n [disabled]=\"form.invalid\"\n [pending]=\"pending\"\n (onCancel)=\"cancel()\"\n (onNext)=\"upload()\"\n [labels]=\"{ next: 'Upload' }\"\n ></c8y-stepper-buttons>\n </cdk-step>\n <cdk-step state=\"final\">\n <div class=\"m-24\">\n <div *ngIf=\"success; else warning\">\n <c8y-operation-result\n text=\"{{ message | translate }}\"\n [size]=\"84\"\n [vertical]=\"true\"\n type=\"success\"\n class=\"lead\"\n ></c8y-operation-result>\n </div>\n <ng-template #warning>\n <c8y-operation-result\n text=\"{{ message | translate }}\"\n [size]=\"84\"\n [vertical]=\"true\"\n type=\"error\"\n class=\"lead\"\n ></c8y-operation-result>\n </ng-template>\n <c8y-list-group class=\"separator-top m-t-16\">\n <ng-container *ngIf=\"result; else failedResponse\">\n <c8y-li *ngIf=\"success; else fail\">\n <c8y-li-icon class=\"text-success\" icon=\"check-circle\"></c8y-li-icon>\n <p>All devices processed successfully.</p>\n <c8y-li-collapse>\n <pre><code>{{ result | json }}</code></pre>\n </c8y-li-collapse>\n </c8y-li>\n <ng-template #fail>\n <c8y-li>\n <c8y-li-icon class=\"text-danger\" icon=\"ban\"></c8y-li-icon>\n <p\n ngNonBindable\n [translateParams]=\"{ count: result?.numberOfFailed, total: result?.numberOfAll }\"\n translate\n >\n Failed to process {{ count }} out of {{ total }}.\n </p>\n <c8y-li-collapse>\n <pre><code>{{ result | json }}</code></pre>\n </c8y-li-collapse>\n </c8y-li>\n </ng-template>\n </ng-container>\n <ng-template #failedResponse>\n <c8y-li>\n <c8y-li-icon class=\"text-danger\" [icon]=\"'ban'\"></c8y-li-icon>\n <small>{{ failedResult?.message | translate }}</small>\n <c8y-li-collapse>\n <pre><code>{{ failedResult | json }}</code></pre>\n </c8y-li-collapse>\n </c8y-li>\n </ng-template>\n </c8y-list-group>\n </div>\n <c8y-stepper-buttons\n class=\"sticky-bottom d-block p-t-16 p-b-16 separator-top bg-level-0\"\n [showButtons]=\"{ next: true }\"\n (onNext)=\"complete()\"\n [labels]=\"{ next: success ? 'Close' : 'Cancel' }\"\n ></c8y-stepper-buttons>\n </cdk-step>\n </c8y-stepper>\n</c8y-modal>\n", dependencies: [{ kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.OperationResultComponent, selector: "c8y-operation-result", inputs: ["text", "vertical", "size", "type"] }, { kind: "component", type: i2.ModalComponent, selector: "c8y-modal", inputs: ["disabled", "close", "dismiss", "title", "body", "customFooter", "headerClasses", "labels"], outputs: ["onDismiss", "onClose"] }, { kind: "component", type: i2.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "component", type: i2.C8yStepper, selector: "c8y-stepper", inputs: ["disableDefaultIcons", "disableProgressButtons", "customClasses", "hideStepProgress", "useStepLabelsAsTitlesOnly"], outputs: ["onStepChange"] }, { kind: "component", type: i7.CdkStep, selector: "cdk-step", inputs: ["stepControl", "label", "errorMessage", "aria-label", "aria-labelledby", "state", "editable", "optional", "completed", "hasError"], outputs: ["interacted"], exportAs: ["cdkStep"] }, { kind: "component", type: i2.C8yStepperButtons, selector: "c8y-stepper-buttons", inputs: ["labels", "pending", "disabled", "showButtons"], outputs: ["onCancel", "onNext", "onBack", "onCustom"] }, { kind: "component", type: i2.ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: i2.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "emptyActions", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: i2.ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "component", type: i2.ListItemCollapseComponent, selector: "c8y-list-item-collapse, c8y-li-collapse", inputs: ["collapseWay"] }, { kind: "component", type: i8.FormlyForm, selector: "formly-form", inputs: ["model", "fields", "options", "form"], outputs: ["modelChange"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i6.JsonPipe, name: "json" }] });
126
+ BulkDeviceRegistrationModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: BulkDeviceRegistrationModalComponent, selector: "bulk-device-registration", viewQueries: [{ propertyName: "stepper", first: true, predicate: C8yStepper, descendants: true, static: true }], ngImport: i0, template: "<c8y-modal\n [title]=\"'Bulk device registration' | translate\"\n [headerClasses]=\"'dialog-header'\"\n [customFooter]=\"true\"\n>\n <ng-container c8y-modal-title>\n <i c8yIcon=\"upload\"></i>\n </ng-container>\n\n <c8y-stepper [hideStepProgress]=\"true\" linear id=\"modal-body\">\n <cdk-step>\n <p class=\"modal-subtitle sticky-top\" translate>Register devices in bulk</p>\n\n <c8y-form-group class=\"d-block p-24 p-t-16 p-b-0 m-b-0\">\n <formly-form [form]=\"form\" [fields]=\"template\" [model]=\"model\"></formly-form>\n </c8y-form-group>\n\n <div class=\"p-24 m-t-0 bg-level-1\">\n <div class=\"content-flex-30 flex-stretch\">\n <div class=\"col-6 p-16 p-b-0 d-flex d-col j-c-between\">\n <div>\n <p class=\"m-b-8\">\n <strong translate>Simple registration</strong>\n </p>\n <small class=\"text-muted\" translate>\n Creates all registration requests at once, then each one needs to go through regular\n acceptance process.\n </small>\n </div>\n <div class=\"m-b-16 m-t-16\">\n <a\n title=\"{{ 'Download template' | translate }}\"\n class=\"btn btn-default btn-sm\"\n target=\"_self\"\n (click)=\"downloadSimple()\"\n >\n <i c8yIcon=\"download\" translate></i>\n {{ 'Download template' | translate }}\n </a>\n </div>\n </div>\n <div class=\"col-6 p-16 p-b-0 d-flex d-col j-c-between\">\n <div>\n <p class=\"m-b-8\">\n <strong translate>Full registration</strong>\n </p>\n <small class=\"text-muted\" translate>\n Creates all device credentials and devices using provided list of property values.\n Devices can start communicating with the platform immediately.\n </small>\n </div>\n <div class=\"m-b-16 m-t-16\">\n <a\n title=\"{{ 'Download template' | translate }}\"\n class=\"btn btn-default btn-sm\"\n target=\"_self\"\n (click)=\"downloadFull()\"\n >\n <i c8yIcon=\"download\" translate></i>\n {{ 'Download template' | translate }}\n </a>\n </div>\n </div>\n </div>\n </div>\n\n <c8y-stepper-buttons\n class=\"sticky-bottom d-block p-t-16 p-b-16 separator-top bg-level-0\"\n [showButtons]=\"{ cancel: true, next: true }\"\n [disabled]=\"form.invalid\"\n [pending]=\"pending\"\n (onCancel)=\"cancel()\"\n (onNext)=\"upload()\"\n [labels]=\"{ next: 'Upload' }\"\n ></c8y-stepper-buttons>\n </cdk-step>\n\n <cdk-step state=\"final\">\n <div class=\"m-24\">\n <div *ngIf=\"success; else warning\">\n <c8y-operation-result\n text=\"{{ message | translate }}\"\n [size]=\"84\"\n [vertical]=\"true\"\n type=\"success\"\n class=\"lead\"\n ></c8y-operation-result>\n </div>\n <ng-template #warning>\n <c8y-operation-result\n text=\"{{ message | translate }}\"\n [size]=\"84\"\n [vertical]=\"true\"\n type=\"error\"\n class=\"lead\"\n ></c8y-operation-result>\n </ng-template>\n <c8y-list-group class=\"separator-top m-t-16\">\n <ng-container *ngIf=\"result; else failedResponse\">\n <c8y-li *ngIf=\"success; else fail\">\n <c8y-li-icon class=\"text-success\" icon=\"check-circle\"></c8y-li-icon>\n <p>All devices processed successfully.</p>\n <c8y-li-collapse>\n <pre><code>{{ result | json }}</code></pre>\n </c8y-li-collapse>\n </c8y-li>\n <ng-template #fail>\n <c8y-li>\n <c8y-li-icon class=\"text-danger\" icon=\"ban\"></c8y-li-icon>\n <p\n ngNonBindable\n [translateParams]=\"{ count: result?.numberOfFailed, total: result?.numberOfAll }\"\n translate\n >\n Failed to process {{ count }} out of {{ total }}.\n </p>\n <c8y-li-collapse>\n <pre><code>{{ result | json }}</code></pre>\n </c8y-li-collapse>\n </c8y-li>\n </ng-template>\n </ng-container>\n <ng-template #failedResponse>\n <c8y-li>\n <c8y-li-icon class=\"text-danger\" [icon]=\"'ban'\"></c8y-li-icon>\n <small>{{ failedResult?.message | translate }}</small>\n <c8y-li-collapse>\n <pre><code>{{ failedResult | json }}</code></pre>\n </c8y-li-collapse>\n </c8y-li>\n </ng-template>\n </c8y-list-group>\n </div>\n <c8y-stepper-buttons\n class=\"sticky-bottom d-block p-t-16 p-b-16 separator-top bg-level-0\"\n [showButtons]=\"{ next: true }\"\n (onNext)=\"complete()\"\n [labels]=\"{ next: success ? 'Close' : 'Cancel' }\"\n ></c8y-stepper-buttons>\n </cdk-step>\n \n </c8y-stepper>\n</c8y-modal>\n", dependencies: [{ kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.OperationResultComponent, selector: "c8y-operation-result", inputs: ["text", "vertical", "size", "type"] }, { kind: "component", type: i2.ModalComponent, selector: "c8y-modal", inputs: ["disabled", "close", "dismiss", "title", "body", "customFooter", "headerClasses", "labels"], outputs: ["onDismiss", "onClose"] }, { kind: "component", type: i2.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "component", type: i2.C8yStepper, selector: "c8y-stepper", inputs: ["disableDefaultIcons", "disableProgressButtons", "customClasses", "hideStepProgress", "useStepLabelsAsTitlesOnly"], outputs: ["onStepChange"] }, { kind: "component", type: i7.CdkStep, selector: "cdk-step", inputs: ["stepControl", "label", "errorMessage", "aria-label", "aria-labelledby", "state", "editable", "optional", "completed", "hasError"], outputs: ["interacted"], exportAs: ["cdkStep"] }, { kind: "component", type: i2.C8yStepperButtons, selector: "c8y-stepper-buttons", inputs: ["labels", "pending", "disabled", "showButtons"], outputs: ["onCancel", "onNext", "onBack", "onCustom"] }, { kind: "component", type: i2.ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: i2.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "emptyActions", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: i2.ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "component", type: i2.ListItemCollapseComponent, selector: "c8y-list-item-collapse, c8y-li-collapse", inputs: ["collapseWay"] }, { kind: "component", type: i8.FormlyForm, selector: "formly-form", inputs: ["model", "fields", "options", "form"], outputs: ["modelChange"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i6.JsonPipe, name: "json" }] });
127
127
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: BulkDeviceRegistrationModalComponent, decorators: [{
128
128
  type: Component,
129
- args: [{ selector: 'bulk-device-registration', template: "<c8y-modal [headerClasses]=\"'dialog-header'\" [customFooter]=\"true\">\n <ng-container c8y-modal-title>\n <i c8yIcon=\"upload\"></i>\n <h4 id=\"modal-title\">{{ 'Bulk device registration' | translate }}</h4>\n </ng-container>\n <c8y-stepper [hideStepProgress]=\"true\" linear id=\"modal-body\">\n <cdk-step>\n <p class=\"modal-subtitle sticky-top\" translate>Register devices in bulk</p>\n\n <c8y-form-group class=\"d-block p-24 p-t-16 p-b-0 m-b-0\">\n <formly-form [form]=\"form\" [fields]=\"template\" [model]=\"model\"></formly-form>\n </c8y-form-group>\n <div class=\"p-24 m-t-0 bg-level-1 \">\n <div class=\"content-flex-30 flex-stretch\">\n <div class=\"col-6 p-16 p-b-0 d-flex d-col j-c-between\">\n <div>\n <p class=\"m-b-8\">\n <strong translate>Simple registration</strong>\n </p>\n <small class=\"text-muted\" translate>\n Creates all registration requests at once, then each one needs to go through regular\n acceptance process.\n </small>\n </div>\n <div class=\"m-b-16 m-t-16\">\n <a\n title=\"{{ 'Download template' | translate }}\"\n class=\"btn btn-default btn-sm\"\n target=\"_self\"\n (click)=\"downloadSimple()\"\n >\n <i c8yIcon=\"download\" translate></i>\n {{ 'Download template' | translate }}\n </a>\n </div>\n </div>\n <div class=\"col-6 p-16 p-b-0 d-flex d-col j-c-between\">\n <div>\n <p class=\"m-b-8\">\n <strong translate>Full registration</strong>\n </p>\n <small class=\"text-muted\" translate>\n Creates all device credentials and devices using provided list of property values.\n Devices can start communicating with the platform immediately.\n </small>\n </div>\n <div class=\"m-b-16 m-t-16\">\n <a\n title=\"{{ 'Download template' | translate }}\"\n class=\"btn btn-default btn-sm\"\n target=\"_self\"\n (click)=\"downloadFull()\"\n >\n <i c8yIcon=\"download\" translate></i>\n {{ 'Download template' | translate }}\n </a>\n </div>\n </div>\n </div>\n </div>\n <c8y-stepper-buttons\n class=\"sticky-bottom d-block p-t-16 p-b-16 separator-top bg-level-0\"\n [showButtons]=\"{ cancel: true, next: true }\"\n [disabled]=\"form.invalid\"\n [pending]=\"pending\"\n (onCancel)=\"cancel()\"\n (onNext)=\"upload()\"\n [labels]=\"{ next: 'Upload' }\"\n ></c8y-stepper-buttons>\n </cdk-step>\n <cdk-step state=\"final\">\n <div class=\"m-24\">\n <div *ngIf=\"success; else warning\">\n <c8y-operation-result\n text=\"{{ message | translate }}\"\n [size]=\"84\"\n [vertical]=\"true\"\n type=\"success\"\n class=\"lead\"\n ></c8y-operation-result>\n </div>\n <ng-template #warning>\n <c8y-operation-result\n text=\"{{ message | translate }}\"\n [size]=\"84\"\n [vertical]=\"true\"\n type=\"error\"\n class=\"lead\"\n ></c8y-operation-result>\n </ng-template>\n <c8y-list-group class=\"separator-top m-t-16\">\n <ng-container *ngIf=\"result; else failedResponse\">\n <c8y-li *ngIf=\"success; else fail\">\n <c8y-li-icon class=\"text-success\" icon=\"check-circle\"></c8y-li-icon>\n <p>All devices processed successfully.</p>\n <c8y-li-collapse>\n <pre><code>{{ result | json }}</code></pre>\n </c8y-li-collapse>\n </c8y-li>\n <ng-template #fail>\n <c8y-li>\n <c8y-li-icon class=\"text-danger\" icon=\"ban\"></c8y-li-icon>\n <p\n ngNonBindable\n [translateParams]=\"{ count: result?.numberOfFailed, total: result?.numberOfAll }\"\n translate\n >\n Failed to process {{ count }} out of {{ total }}.\n </p>\n <c8y-li-collapse>\n <pre><code>{{ result | json }}</code></pre>\n </c8y-li-collapse>\n </c8y-li>\n </ng-template>\n </ng-container>\n <ng-template #failedResponse>\n <c8y-li>\n <c8y-li-icon class=\"text-danger\" [icon]=\"'ban'\"></c8y-li-icon>\n <small>{{ failedResult?.message | translate }}</small>\n <c8y-li-collapse>\n <pre><code>{{ failedResult | json }}</code></pre>\n </c8y-li-collapse>\n </c8y-li>\n </ng-template>\n </c8y-list-group>\n </div>\n <c8y-stepper-buttons\n class=\"sticky-bottom d-block p-t-16 p-b-16 separator-top bg-level-0\"\n [showButtons]=\"{ next: true }\"\n (onNext)=\"complete()\"\n [labels]=\"{ next: success ? 'Close' : 'Cancel' }\"\n ></c8y-stepper-buttons>\n </cdk-step>\n </c8y-stepper>\n</c8y-modal>\n" }]
129
+ args: [{ selector: 'bulk-device-registration', template: "<c8y-modal\n [title]=\"'Bulk device registration' | translate\"\n [headerClasses]=\"'dialog-header'\"\n [customFooter]=\"true\"\n>\n <ng-container c8y-modal-title>\n <i c8yIcon=\"upload\"></i>\n </ng-container>\n\n <c8y-stepper [hideStepProgress]=\"true\" linear id=\"modal-body\">\n <cdk-step>\n <p class=\"modal-subtitle sticky-top\" translate>Register devices in bulk</p>\n\n <c8y-form-group class=\"d-block p-24 p-t-16 p-b-0 m-b-0\">\n <formly-form [form]=\"form\" [fields]=\"template\" [model]=\"model\"></formly-form>\n </c8y-form-group>\n\n <div class=\"p-24 m-t-0 bg-level-1\">\n <div class=\"content-flex-30 flex-stretch\">\n <div class=\"col-6 p-16 p-b-0 d-flex d-col j-c-between\">\n <div>\n <p class=\"m-b-8\">\n <strong translate>Simple registration</strong>\n </p>\n <small class=\"text-muted\" translate>\n Creates all registration requests at once, then each one needs to go through regular\n acceptance process.\n </small>\n </div>\n <div class=\"m-b-16 m-t-16\">\n <a\n title=\"{{ 'Download template' | translate }}\"\n class=\"btn btn-default btn-sm\"\n target=\"_self\"\n (click)=\"downloadSimple()\"\n >\n <i c8yIcon=\"download\" translate></i>\n {{ 'Download template' | translate }}\n </a>\n </div>\n </div>\n <div class=\"col-6 p-16 p-b-0 d-flex d-col j-c-between\">\n <div>\n <p class=\"m-b-8\">\n <strong translate>Full registration</strong>\n </p>\n <small class=\"text-muted\" translate>\n Creates all device credentials and devices using provided list of property values.\n Devices can start communicating with the platform immediately.\n </small>\n </div>\n <div class=\"m-b-16 m-t-16\">\n <a\n title=\"{{ 'Download template' | translate }}\"\n class=\"btn btn-default btn-sm\"\n target=\"_self\"\n (click)=\"downloadFull()\"\n >\n <i c8yIcon=\"download\" translate></i>\n {{ 'Download template' | translate }}\n </a>\n </div>\n </div>\n </div>\n </div>\n\n <c8y-stepper-buttons\n class=\"sticky-bottom d-block p-t-16 p-b-16 separator-top bg-level-0\"\n [showButtons]=\"{ cancel: true, next: true }\"\n [disabled]=\"form.invalid\"\n [pending]=\"pending\"\n (onCancel)=\"cancel()\"\n (onNext)=\"upload()\"\n [labels]=\"{ next: 'Upload' }\"\n ></c8y-stepper-buttons>\n </cdk-step>\n\n <cdk-step state=\"final\">\n <div class=\"m-24\">\n <div *ngIf=\"success; else warning\">\n <c8y-operation-result\n text=\"{{ message | translate }}\"\n [size]=\"84\"\n [vertical]=\"true\"\n type=\"success\"\n class=\"lead\"\n ></c8y-operation-result>\n </div>\n <ng-template #warning>\n <c8y-operation-result\n text=\"{{ message | translate }}\"\n [size]=\"84\"\n [vertical]=\"true\"\n type=\"error\"\n class=\"lead\"\n ></c8y-operation-result>\n </ng-template>\n <c8y-list-group class=\"separator-top m-t-16\">\n <ng-container *ngIf=\"result; else failedResponse\">\n <c8y-li *ngIf=\"success; else fail\">\n <c8y-li-icon class=\"text-success\" icon=\"check-circle\"></c8y-li-icon>\n <p>All devices processed successfully.</p>\n <c8y-li-collapse>\n <pre><code>{{ result | json }}</code></pre>\n </c8y-li-collapse>\n </c8y-li>\n <ng-template #fail>\n <c8y-li>\n <c8y-li-icon class=\"text-danger\" icon=\"ban\"></c8y-li-icon>\n <p\n ngNonBindable\n [translateParams]=\"{ count: result?.numberOfFailed, total: result?.numberOfAll }\"\n translate\n >\n Failed to process {{ count }} out of {{ total }}.\n </p>\n <c8y-li-collapse>\n <pre><code>{{ result | json }}</code></pre>\n </c8y-li-collapse>\n </c8y-li>\n </ng-template>\n </ng-container>\n <ng-template #failedResponse>\n <c8y-li>\n <c8y-li-icon class=\"text-danger\" [icon]=\"'ban'\"></c8y-li-icon>\n <small>{{ failedResult?.message | translate }}</small>\n <c8y-li-collapse>\n <pre><code>{{ failedResult | json }}</code></pre>\n </c8y-li-collapse>\n </c8y-li>\n </ng-template>\n </c8y-list-group>\n </div>\n <c8y-stepper-buttons\n class=\"sticky-bottom d-block p-t-16 p-b-16 separator-top bg-level-0\"\n [showButtons]=\"{ next: true }\"\n (onNext)=\"complete()\"\n [labels]=\"{ next: success ? 'Close' : 'Cancel' }\"\n ></c8y-stepper-buttons>\n </cdk-step>\n \n </c8y-stepper>\n</c8y-modal>\n" }]
130
130
  }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.C8yJSONSchema }, { type: i3.DeviceRegistrationBulkService }, { type: i4.RegisterDeviceService }, { type: i5.BsModalRef }, { type: i2.GainsightService }]; }, propDecorators: { stepper: [{
131
131
  type: ViewChild,
132
132
  args: [C8yStepper, { static: true }]
133
133
  }] } });
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVsay1kZXZpY2UtcmVnaXN0cmF0aW9uLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3JlZ2lzdGVyLWRldmljZS9idWxrL2J1bGstZGV2aWNlLXJlZ2lzdHJhdGlvbi1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9yZWdpc3Rlci1kZXZpY2UvYnVsay9idWxrLWRldmljZS1yZWdpc3RyYXRpb24tbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0YsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDcEMsT0FBTyxFQUFFLDZCQUE2QixFQUFpQyxNQUFNLGFBQWEsQ0FBQztBQUMzRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFbkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7Ozs7O0FBRWpELE1BQU0sVUFBVSxHQUFXO0lBQ3pCLE9BQU8sRUFBRSw4Q0FBOEM7SUFDdkQsSUFBSSxFQUFFLFFBQVE7SUFDZCxVQUFVLEVBQUU7UUFDVixXQUFXLEVBQUU7WUFDWCxJQUFJLEVBQUUsUUFBUTtZQUNkLEtBQUssRUFBRSxPQUFPLENBQUMsaUJBQWlCLENBQUM7WUFDakMsV0FBVyxFQUFFLE9BQU8sQ0FDbEIsdUdBQXVHLENBQ3hHO1lBQ0QsZUFBZSxFQUFFLFFBQVE7WUFDekIsZ0JBQWdCLEVBQUUs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QztJQUN6QixDQUFDO0lBRU8sT0FBTyxDQUFDLEtBQUs7UUFDbkIsTUFBTSxXQUFXLEdBQUksS0FBYSxFQUFFLFdBQVcsQ0FBQztRQUNoRCxPQUFPLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3hELENBQUM7O2lJQTVGVSxvQ0FBb0M7cUhBQXBDLG9DQUFvQyx5R0FDcEMsVUFBVSw4REMvQ3ZCLG8wS0F1SUE7MkZEekZhLG9DQUFvQztrQkFKaEQsU0FBUzsrQkFDRSwwQkFBMEI7aVFBSUssT0FBTztzQkFBL0MsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEM4eUpTT05TY2hlbWEsIEM4eVN0ZXBwZXIsIEdhaW5zaWdodFNlcnZpY2UsIGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcm1seUZpZWxkQ29uZmlnIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQgeyBzYXZlQXMgfSBmcm9tICdmaWxlLXNhdmVyJztcbmltcG9ydCB7IERldmljZVJlZ2lzdHJhdGlvbkJ1bGtTZXJ2aWNlLCBJRGV2aWNlUmVnaXN0cmF0aW9uQnVsa1Jlc3VsdCB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBSZWdpc3RlckRldmljZVNlcnZpY2UgfSBmcm9tICcuLi9yZWdpc3Rlci1kZXZpY2Uuc2VydmljZSc7XG5pbXBvcnQgeyBCdWxrRmFpbGVkUmVzdWx0IH0gZnJvbSAnLi4vZXh0ZW5zaWJsZS9idWxrL2V4dGVuc2libGUtYnVsay1kZXZpY2UtcmVnaXN0cmF0aW9uLm1vZGVsJztcbmltcG9ydCB7IEJzTW9kYWxSZWYgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcblxuY29uc3QgYnVsa1NjaGVtYTogb2JqZWN0ID0ge1xuICAkc2NoZW1hOiAnaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQvMjAxOS0wOS9zY2hlbWEnLFxuICB0eXBlOiAnb2JqZWN0JyxcbiAgcHJvcGVydGllczoge1xuICAgIGNzdkJ1bGtGaWxlOiB7XG4gICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgIHRpdGxlOiBnZXR0ZXh0KCdDU1YgZmlsZSB1cGxvYWQnKSxcbiAgICAgIGRlc2NyaXB0aW9uOiBnZXR0ZXh0KFxuICAgICAgICAnWW91IGNhbiB1c2UgZmlsZSB1cGxvYWQgY29tcG9uZW50IHRvIGxldCB1c2VycyBzZW5kIGZpbGVzLiBUaGlzIGlucHV0IGFjY2VwdHMgb25seSBhIHNpbmdsZSBDU1YgZmlsZS4nXG4gICAgICApLFxuICAgICAgY29udGVudEVuY29kaW5nOiAnYmFzZTY0JyxcbiAgICAgIGNvbnRlbnRNZWRpYVR5cGU6ICdjc3YnXG4gICAgfVxuICB9LFxuICByZXF1aXJlZDogWydjc3ZCdWxrRmlsZSddLFxuICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2Vcbn07XG5cbmNvbnN0IHNpbXBsZUNzdkhlYWRlcnM6IHN0cmluZ1tdID0gWydJRCcsICdQQVRIJ107XG5jb25zdCBmdWxsQ3N2SGVhZGVyczogc3RyaW5nW10gPSBbXG4gICdJRCcsXG4gICdDUkVERU5USUFMUycsXG4gICdUWVBFJyxcbiAgJ05BTUUnLFxuICAnSUNDSUQnLFxuICAnSURUWVBFJyxcbiAgJ1BBVEgnLFxuICAnU0hFTEwnLFxuICAnQVVUSF9UWVBFJ1xuXTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYnVsay1kZXZpY2UtcmVnaXN0cmF0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICdidWxrLWRldmljZS1yZWdpc3RyYXRpb24tbW9kYWwuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEJ1bGtEZXZpY2VSZWdpc3RyYXRpb25Nb2RhbENvbXBvbmVudCB7XG4gIEBWaWV3Q2hpbGQoQzh5U3RlcHBlciwgeyBzdGF0aWM6IHRydWUgfSkgc3RlcHBlcjogQzh5U3RlcHBlcjtcbiAgbWVzc2FnZTogc3RyaW5nO1xuICBzdWNjZXNzOiBib29sZWFuO1xuICBwZW5kaW5nOiBib29sZWFuO1xuICByZXN1bHQ6IElEZXZpY2VSZWdpc3RyYXRpb25CdWxrUmVzdWx0O1xuICBmYWlsZWRSZXN1bHQ6IEJ1bGtGYWlsZWRSZXN1bHQ7XG4gIGZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcbiAgbW9kZWwgPSB7fTtcbiAgdGVtcGxhdGU6IEZvcm1seUZpZWxkQ29uZmlnW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIGpzb25zY2hlbWE6IEM4eUpTT05TY2hlbWEsXG4gICAgcHJpdmF0ZSBkZXZpY2VSZWdpc3RyYXRpb25TZXJ2aWNlOiBEZXZpY2VSZWdpc3RyYXRpb25CdWxrU2VydmljZSxcbiAgICBwcml2YXRlIHJlZ2lzdGVyRGV2aWNlU2VydmljZTogUmVnaXN0ZXJEZXZpY2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgYnNNb2RhbFJlZjogQnNNb2RhbFJlZixcbiAgICBwcml2YXRlIGdhaW5zaWdodFNlcnZpY2U6IEdhaW5zaWdodFNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMudGVtcGxhdGUgPSBbdGhpcy5qc29uc2NoZW1hLnRvRmllbGRDb25maWcoYnVsa1NjaGVtYSldO1xuICB9XG5cbiAgdXBsb2FkKCkge1xuICAgIHRoaXMucGVuZGluZyA9IHRydWU7XG4gICAgY29uc3QgZmlsZSA9IHRoaXMuZ2V0RmlsZSh0aGlzLm1vZGVsKTtcbiAgICB0aGlzLmRldmljZVJlZ2lzdHJhdGlvblNlcnZpY2VcbiAgICAgIC5jcmVhdGUoZmlsZSlcbiAgICAgIC50aGVuKCh7IHJlcywgZGF0YSB9KSA9PiB7XG4gICAgICAgIGlmIChyZXMuc3RhdHVzIDwgNDAwKSB7XG4gICAgICAgICAgdGhpcy5yZXN1bHQgPSBkYXRhO1xuICAgICAgICAgIHRoaXMuc3VjY2VzcyA9IGRhdGEubnVtYmVyT2ZGYWlsZWQgPT09IDAgJiYgZGF0YS5udW1iZXJPZlN1Y2Nlc3NmdWwgPT09IGRhdGEubnVtYmVyT2ZBbGw7XG4gICAgICAgICAgdGhpcy5tZXNzYWdlID0gdGhpcy5zdWNjZXNzXG4gICAgICAgICAgICA/IGdldHRleHQoJ0RldmljZSByZWdpc3RyYXRpb24gY3JlYXRlZC4nKVxuICAgICAgICAgICAgOiAodGhpcy5tZXNzYWdlID0gZ2V0dGV4dCgnRGV2aWNlIHJlZ2lzdHJhdGlvbiBmYWlsZWQuJykpO1xuICAgICAgICAgIGlmICh0aGlzLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgIHRoaXMuZ2FpbnNpZ2h0U2VydmljZS50cmlnZ2VyRXZlbnQoJ2RtRGV2aWNlUmVnaXN0cmF0aW9uJywge1xuICAgICAgICAgICAgICBhY3Rpb246ICdyZWdpc3RyYXRpb25TdWNjZXNzJyxcbiAgICAgICAgICAgICAgbmFtZTogJ2J1bGtSZWdpc3RyYXRpb24nXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5nYWluc2lnaHRTZXJ2aWNlLnRyaWdnZXJFdmVudCgnZG1EZXZpY2VSZWdpc3RyYXRpb24nLCB7XG4gICAgICAgICAgICAgIGFjdGlvbjogJ3JlZ2lzdHJhdGlvbkZhaWx1cmUnLFxuICAgICAgICAgICAgICBuYW1lOiAnYnVsa1JlZ2lzdHJhdGlvbidcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmZhaWxlZFJlc3VsdCA9IGRhdGEgYXMgdW5rbm93biBhcyBCdWxrRmFpbGVkUmVzdWx0O1xuICAgICAgICAgIHRoaXMubWVzc2FnZSA9IGdldHRleHQoJ0RldmljZSByZWdpc3RyYXRpb24gZmFpbGVkLicpO1xuICAgICAgICAgIHRoaXMuZ2FpbnNpZ2h0U2VydmljZS50cmlnZ2VyRXZlbnQoJ2RtRGV2aWNlUmVnaXN0cmF0aW9uJywge1xuICAgICAgICAgICAgYWN0aW9uOiAncmVnaXN0cmF0aW9uRmFpbHVyZScsXG4gICAgICAgICAgICBuYW1lOiAnYnVsa1JlZ2lzdHJhdGlvbidcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1vZGVsID0ge307XG4gICAgICAgIHRoaXMucGVuZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnN0ZXBwZXIubmV4dCgpO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgIHRoaXMubWVzc2FnZSA9IGdldHRleHQoJ0Vycm9yIG9jY3VycmVkIHdoaWxlIHByb2Nlc3NpbmcgdGhlIHVwbG9hZGVkIGZpbGUuJyk7XG4gICAgICAgIHRoaXMucGVuZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnN0ZXBwZXIubmV4dCgpO1xuICAgICAgfSk7XG4gIH1cblxuICBkb3dubG9hZFNpbXBsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5kb3dubG9hZChzaW1wbGVDc3ZIZWFkZXJzLCBnZXR0ZXh0KCdTaW1wbGUgYnVsayByZWdpc3RyYXRpb24gLSB0ZW1wbGF0ZS5jc3YnKSk7XG4gIH1cblxuICBkb3dubG9hZEZ1bGwoKSB7XG4gICAgcmV0dXJuIHRoaXMuZG93bmxvYWQoZnVsbENzdkhlYWRlcnMsIGdldHRleHQoJ0Z1bGwgYnVsayByZWdpc3RyYXRpb24gLSB0ZW1wbGF0ZS5jc3YnKSk7XG4gIH1cblxuICBkb3dubG9hZChoZWFkZXJzOiBzdHJpbmdbXSwgZmlsZU5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IGhlYWRlclJhdyA9IGhlYWRlcnMubWFwKGhlYWRlciA9PiBgXCIke2hlYWRlcn1cImApLmpvaW4oJzsnKTtcbiAgICBjb25zdCBiaW5hcnlGaWxlID0gbmV3IEJsb2IoW2hlYWRlclJhd10sIHsgdHlwZTogJ3RleHQvY3N2JyB9KTtcbiAgICBzYXZlQXMoYmluYXJ5RmlsZSwgZmlsZU5hbWUpO1xuICB9XG5cbiAgY29tcGxldGUoKSB7XG4gICAgdGhpcy5yZWdpc3RlckRldmljZVNlcnZpY2UubGlzdCgpO1xuICAgIHRoaXMuYnNNb2RhbFJlZi5oaWRlKCk7XG4gIH1cblxuICBjYW5jZWwoKSB7XG4gICAgdGhpcy5ic01vZGFsUmVmLmhpZGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RmlsZShtb2RlbCk6IEZpbGUge1xuICAgIGNvbnN0IGNzdkJ1bGtGaWxlID0gKG1vZGVsIGFzIGFueSk/LmNzdkJ1bGtGaWxlO1xuICAgIHJldHVybiBjc3ZCdWxrRmlsZSA/IGNzdkJ1bGtGaWxlWzBdPy5maWxlIDogdW5kZWZpbmVkO1xuICB9XG59XG4iLCI8Yzh5LW1vZGFsIFtoZWFkZXJDbGFzc2VzXT1cIidkaWFsb2ctaGVhZGVyJ1wiIFtjdXN0b21Gb290ZXJdPVwidHJ1ZVwiPlxuICA8bmctY29udGFpbmVyIGM4eS1tb2RhbC10aXRsZT5cbiAgICA8aSBjOHlJY29uPVwidXBsb2FkXCI+PC9pPlxuICAgIDxoNCBpZD1cIm1vZGFsLXRpdGxlXCI+e3sgJ0J1bGsgZGV2aWNlIHJlZ2lzdHJhdGlvbicgfCB0cmFuc2xhdGUgfX08L2g0PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPGM4eS1zdGVwcGVyIFtoaWRlU3RlcFByb2dyZXNzXT1cInRydWVcIiBsaW5lYXIgaWQ9XCJtb2RhbC1ib2R5XCI+XG4gICAgPGNkay1zdGVwPlxuICAgICAgPHAgY2xhc3M9XCJtb2RhbC1zdWJ0aXRsZSBzdGlja3ktdG9wXCIgdHJhbnNsYXRlPlJlZ2lzdGVyIGRldmljZXMgaW4gYnVsazwvcD5cblxuICAgICAgPGM4eS1mb3JtLWdyb3VwIGNsYXNzPVwiZC1ibG9jayBwLTI0IHAtdC0xNiBwLWItMCBtLWItMFwiPlxuICAgICAgICA8Zm9ybWx5LWZvcm0gW2Zvcm1dPVwiZm9ybVwiIFtmaWVsZHNdPVwidGVtcGxhdGVcIiBbbW9kZWxdPVwibW9kZWxcIj48L2Zvcm1seS1mb3JtPlxuICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgIDxkaXYgY2xhc3M9XCJwLTI0IG0tdC0wIGJnLWxldmVsLTEgXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LWZsZXgtMzAgZmxleC1zdHJldGNoXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC02IHAtMTYgcC1iLTAgZC1mbGV4IGQtY29sIGotYy1iZXR3ZWVuXCI+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8cCBjbGFzcz1cIm0tYi04XCI+XG4gICAgICAgICAgICAgICAgPHN0cm9uZyB0cmFuc2xhdGU+U2ltcGxlIHJlZ2lzdHJhdGlvbjwvc3Ryb25nPlxuICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cInRleHQtbXV0ZWRcIiB0cmFuc2xhdGU+XG4gICAgICAgICAgICAgICAgQ3JlYXRlcyBhbGwgcmVnaXN0cmF0aW9uIHJlcXVlc3RzIGF0IG9uY2UsIHRoZW4gZWFjaCBvbmUgbmVlZHMgdG8gZ28gdGhyb3VnaCByZWd1bGFyXG4gICAgICAgICAgICAgICAgYWNjZXB0YW5jZSBwcm9jZXNzLlxuICAgICAgICAgICAgICA8L3NtYWxsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1iLTE2IG0tdC0xNlwiPlxuICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIHRpdGxlPVwie3sgJ0Rvd25sb2FkIHRlbXBsYXRlJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgYnRuLXNtXCJcbiAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfc2VsZlwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImRvd25sb2FkU2ltcGxlKClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGkgYzh5SWNvbj1cImRvd25sb2FkXCIgdHJhbnNsYXRlPjwvaT5cbiAgICAgICAgICAgICAgICB7eyAnRG93bmxvYWQgdGVtcGxhdGUnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNiBwLTE2IHAtYi0wIGQtZmxleCBkLWNvbCBqLWMtYmV0d2VlblwiPlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJtLWItOFwiPlxuICAgICAgICAgICAgICAgIDxzdHJvbmcgdHJhbnNsYXRlPkZ1bGwgcmVnaXN0cmF0aW9uPC9zdHJvbmc+XG4gICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPVwidGV4dC1tdXRlZFwiIHRyYW5zbGF0ZT5cbiAgICAgICAgICAgICAgICBDcmVhdGVzIGFsbCBkZXZpY2UgY3JlZGVudGlhbHMgYW5kIGRldmljZXMgdXNpbmcgcHJvdmlkZWQgbGlzdCBvZiBwcm9wZXJ0eSB2YWx1ZXMuXG4gICAgICAgICAgICAgICAgRGV2aWNlcyBjYW4gc3RhcnQgY29tbXVuaWNhdGluZyB3aXRoIHRoZSBwbGF0Zm9ybSBpbW1lZGlhdGVseS5cbiAgICAgICAgICAgICAgPC9zbWFsbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tYi0xNiBtLXQtMTZcIj5cbiAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICB0aXRsZT1cInt7ICdEb3dubG9hZCB0ZW1wbGF0ZScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IGJ0bi1zbVwiXG4gICAgICAgICAgICAgICAgdGFyZ2V0PVwiX3NlbGZcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJkb3dubG9hZEZ1bGwoKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8aSBjOHlJY29uPVwiZG93bmxvYWRcIiB0cmFuc2xhdGU+PC9pPlxuICAgICAgICAgICAgICAgIHt7ICdEb3dubG9hZCB0ZW1wbGF0ZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8Yzh5LXN0ZXBwZXItYnV0dG9uc1xuICAgICAgICBjbGFzcz1cInN0aWNreS1ib3R0b20gZC1ibG9jayBwLXQtMTYgcC1iLTE2IHNlcGFyYXRvci10b3AgYmctbGV2ZWwtMFwiXG4gICAgICAgIFtzaG93QnV0dG9uc109XCJ7IGNhbmNlbDogdHJ1ZSwgbmV4dDogdHJ1ZSB9XCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImZvcm0uaW52YWxpZFwiXG4gICAgICAgIFtwZW5kaW5nXT1cInBlbmRpbmdcIlxuICAgICAgICAob25DYW5jZWwpPVwiY2FuY2VsKClcIlxuICAgICAgICAob25OZXh0KT1cInVwbG9hZCgpXCJcbiAgICAgICAgW2xhYmVsc109XCJ7IG5leHQ6ICdVcGxvYWQnIH1cIlxuICAgICAgPjwvYzh5LXN0ZXBwZXItYnV0dG9ucz5cbiAgICA8L2Nkay1zdGVwPlxuICAgIDxjZGstc3RlcCBzdGF0ZT1cImZpbmFsXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibS0yNFwiPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwic3VjY2VzczsgZWxzZSB3YXJuaW5nXCI+XG4gICAgICAgICAgPGM4eS1vcGVyYXRpb24tcmVzdWx0XG4gICAgICAgICAgICB0ZXh0PVwie3sgbWVzc2FnZSB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICBbc2l6ZV09XCI4NFwiXG4gICAgICAgICAgICBbdmVydGljYWxdPVwidHJ1ZVwiXG4gICAgICAgICAgICB0eXBlPVwic3VjY2Vzc1wiXG4gICAgICAgICAgICBjbGFzcz1cImxlYWRcIlxuICAgICAgICAgID48L2M4eS1vcGVyYXRpb24tcmVzdWx0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICN3YXJuaW5nPlxuICAgICAgICAgIDxjOHktb3BlcmF0aW9uLXJlc3VsdFxuICAgICAgICAgICAgdGV4dD1cInt7IG1lc3NhZ2UgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgW3NpemVdPVwiODRcIlxuICAgICAgICAgICAgW3ZlcnRpY2FsXT1cInRydWVcIlxuICAgICAgICAgICAgdHlwZT1cImVycm9yXCJcbiAgICAgICAgICAgIGNsYXNzPVwibGVhZFwiXG4gICAgICAgICAgPjwvYzh5LW9wZXJhdGlvbi1yZXN1bHQ+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxjOHktbGlzdC1ncm91cCBjbGFzcz1cInNlcGFyYXRvci10b3AgbS10LTE2XCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlc3VsdDsgZWxzZSBmYWlsZWRSZXNwb25zZVwiPlxuICAgICAgICAgICAgPGM4eS1saSAqbmdJZj1cInN1Y2Nlc3M7IGVsc2UgZmFpbFwiPlxuICAgICAgICAgICAgICA8Yzh5LWxpLWljb24gY2xhc3M9XCJ0ZXh0LXN1Y2Nlc3NcIiBpY29uPVwiY2hlY2stY2lyY2xlXCI+PC9jOHktbGktaWNvbj5cbiAgICAgICAgICAgICAgPHA+QWxsIGRldmljZXMgcHJvY2Vzc2VkIHN1Y2Nlc3NmdWxseS48L3A+XG4gICAgICAgICAgICAgIDxjOHktbGktY29sbGFwc2U+XG4gICAgICAgICAgICAgICAgPHByZT48Y29kZT57eyByZXN1bHQgfCBqc29uIH19PC9jb2RlPjwvcHJlPlxuICAgICAgICAgICAgICA8L2M4eS1saS1jb2xsYXBzZT5cbiAgICAgICAgICAgIDwvYzh5LWxpPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNmYWlsPlxuICAgICAgICAgICAgICA8Yzh5LWxpPlxuICAgICAgICAgICAgICAgIDxjOHktbGktaWNvbiBjbGFzcz1cInRleHQtZGFuZ2VyXCIgaWNvbj1cImJhblwiPjwvYzh5LWxpLWljb24+XG4gICAgICAgICAgICAgICAgPHBcbiAgICAgICAgICAgICAgICAgIG5nTm9uQmluZGFibGVcbiAgICAgICAgICAgICAgICAgIFt0cmFuc2xhdGVQYXJhbXNdPVwieyBjb3VudDogcmVzdWx0Py5udW1iZXJPZkZhaWxlZCwgdG90YWw6IHJlc3VsdD8ubnVtYmVyT2ZBbGwgfVwiXG4gICAgICAgICAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICBGYWlsZWQgdG8gcHJvY2VzcyB7eyBjb3VudCB9fSBvdXQgb2Yge3sgdG90YWwgfX0uXG4gICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgIDxjOHktbGktY29sbGFwc2U+XG4gICAgICAgICAgICAgICAgICA8cHJlPjxjb2RlPnt7IHJlc3VsdCB8IGpzb24gfX08L2NvZGU+PC9wcmU+XG4gICAgICAgICAgICAgICAgPC9jOHktbGktY29sbGFwc2U+XG4gICAgICAgICAgICAgIDwvYzh5LWxpPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2ZhaWxlZFJlc3BvbnNlPlxuICAgICAgICAgICAgPGM4eS1saT5cbiAgICAgICAgICAgICAgPGM4eS1saS1pY29uIGNsYXNzPVwidGV4dC1kYW5nZXJcIiBbaWNvbl09XCInYmFuJ1wiPjwvYzh5LWxpLWljb24+XG4gICAgICAgICAgICAgIDxzbWFsbD57eyBmYWlsZWRSZXN1bHQ/Lm1lc3NhZ2UgfCB0cmFuc2xhdGUgfX08L3NtYWxsPlxuICAgICAgICAgICAgICA8Yzh5LWxpLWNvbGxhcHNlPlxuICAgICAgICAgICAgICAgIDxwcmU+PGNvZGU+e3sgZmFpbGVkUmVzdWx0IHwganNvbiB9fTwvY29kZT48L3ByZT5cbiAgICAgICAgICAgICAgPC9jOHktbGktY29sbGFwc2U+XG4gICAgICAgICAgICA8L2M4eS1saT5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2M4eS1saXN0LWdyb3VwPlxuICAgICAgPC9kaXY+XG4gICAgICA8Yzh5LXN0ZXBwZXItYnV0dG9uc1xuICAgICAgICBjbGFzcz1cInN0aWNreS1ib3R0b20gZC1ibG9jayBwLXQtMTYgcC1iLTE2IHNlcGFyYXRvci10b3AgYmctbGV2ZWwtMFwiXG4gICAgICAgIFtzaG93QnV0dG9uc109XCJ7IG5leHQ6IHRydWUgfVwiXG4gICAgICAgIChvbk5leHQpPVwiY29tcGxldGUoKVwiXG4gICAgICAgIFtsYWJlbHNdPVwieyBuZXh0OiBzdWNjZXNzID8gJ0Nsb3NlJyA6ICdDYW5jZWwnIH1cIlxuICAgICAgPjwvYzh5LXN0ZXBwZXItYnV0dG9ucz5cbiAgICA8L2Nkay1zdGVwPlxuICA8L2M4eS1zdGVwcGVyPlxuPC9jOHktbW9kYWw+XG4iXX0=
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVsay1kZXZpY2UtcmVnaXN0cmF0aW9uLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3JlZ2lzdGVyLWRldmljZS9idWxrL2J1bGstZGV2aWNlLXJlZ2lzdHJhdGlvbi1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9yZWdpc3Rlci1kZXZpY2UvYnVsay9idWxrLWRldmljZS1yZWdpc3RyYXRpb24tbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0YsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDcEMsT0FBTyxFQUFFLDZCQUE2QixFQUFpQyxNQUFNLGFBQWEsQ0FBQztBQUMzRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFbkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7Ozs7O0FBRWpELE1BQU0sVUFBVSxHQUFXO0lBQ3pCLE9BQU8sRUFBRSw4Q0FBOEM7SUFDdkQsSUFBSSxFQUFFLFFBQVE7SUFDZCxVQUFVLEVBQUU7UUFDVixXQUFXLEVBQUU7WUFDWCxJQUFJLEVBQUUsUUFBUTtZQUNkLEtBQUssRUFBRSxPQUFPLENBQUMsaUJBQWlCLENBQUM7WUFDakMsV0FBVyxFQUFFLE9BQU8sQ0FDbEIsdUdBQXVHLENBQ3hHO1lBQ0QsZUFBZSxFQUFFLFFBQVE7WUFDekIsZ0JBQWdCLEVBQUUs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QztJQUN6QixDQUFDO0lBRU8sT0FBTyxDQUFDLEtBQUs7UUFDbkIsTUFBTSxXQUFXLEdBQUksS0FBYSxFQUFFLFdBQVcsQ0FBQztRQUNoRCxPQUFPLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3hELENBQUM7O2lJQTVGVSxvQ0FBb0M7cUhBQXBDLG9DQUFvQyx5R0FDcEMsVUFBVSw4REMvQ3ZCLGkwS0ErSUE7MkZEakdhLG9DQUFvQztrQkFKaEQsU0FBUzsrQkFDRSwwQkFBMEI7aVFBSUssT0FBTztzQkFBL0MsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEM4eUpTT05TY2hlbWEsIEM4eVN0ZXBwZXIsIEdhaW5zaWdodFNlcnZpY2UsIGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcm1seUZpZWxkQ29uZmlnIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQgeyBzYXZlQXMgfSBmcm9tICdmaWxlLXNhdmVyJztcbmltcG9ydCB7IERldmljZVJlZ2lzdHJhdGlvbkJ1bGtTZXJ2aWNlLCBJRGV2aWNlUmVnaXN0cmF0aW9uQnVsa1Jlc3VsdCB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBSZWdpc3RlckRldmljZVNlcnZpY2UgfSBmcm9tICcuLi9yZWdpc3Rlci1kZXZpY2Uuc2VydmljZSc7XG5pbXBvcnQgeyBCdWxrRmFpbGVkUmVzdWx0IH0gZnJvbSAnLi4vZXh0ZW5zaWJsZS9idWxrL2V4dGVuc2libGUtYnVsay1kZXZpY2UtcmVnaXN0cmF0aW9uLm1vZGVsJztcbmltcG9ydCB7IEJzTW9kYWxSZWYgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcblxuY29uc3QgYnVsa1NjaGVtYTogb2JqZWN0ID0ge1xuICAkc2NoZW1hOiAnaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQvMjAxOS0wOS9zY2hlbWEnLFxuICB0eXBlOiAnb2JqZWN0JyxcbiAgcHJvcGVydGllczoge1xuICAgIGNzdkJ1bGtGaWxlOiB7XG4gICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgIHRpdGxlOiBnZXR0ZXh0KCdDU1YgZmlsZSB1cGxvYWQnKSxcbiAgICAgIGRlc2NyaXB0aW9uOiBnZXR0ZXh0KFxuICAgICAgICAnWW91IGNhbiB1c2UgZmlsZSB1cGxvYWQgY29tcG9uZW50IHRvIGxldCB1c2VycyBzZW5kIGZpbGVzLiBUaGlzIGlucHV0IGFjY2VwdHMgb25seSBhIHNpbmdsZSBDU1YgZmlsZS4nXG4gICAgICApLFxuICAgICAgY29udGVudEVuY29kaW5nOiAnYmFzZTY0JyxcbiAgICAgIGNvbnRlbnRNZWRpYVR5cGU6ICdjc3YnXG4gICAgfVxuICB9LFxuICByZXF1aXJlZDogWydjc3ZCdWxrRmlsZSddLFxuICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2Vcbn07XG5cbmNvbnN0IHNpbXBsZUNzdkhlYWRlcnM6IHN0cmluZ1tdID0gWydJRCcsICdQQVRIJ107XG5jb25zdCBmdWxsQ3N2SGVhZGVyczogc3RyaW5nW10gPSBbXG4gICdJRCcsXG4gICdDUkVERU5USUFMUycsXG4gICdUWVBFJyxcbiAgJ05BTUUnLFxuICAnSUNDSUQnLFxuICAnSURUWVBFJyxcbiAgJ1BBVEgnLFxuICAnU0hFTEwnLFxuICAnQVVUSF9UWVBFJ1xuXTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYnVsay1kZXZpY2UtcmVnaXN0cmF0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICdidWxrLWRldmljZS1yZWdpc3RyYXRpb24tbW9kYWwuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEJ1bGtEZXZpY2VSZWdpc3RyYXRpb25Nb2RhbENvbXBvbmVudCB7XG4gIEBWaWV3Q2hpbGQoQzh5U3RlcHBlciwgeyBzdGF0aWM6IHRydWUgfSkgc3RlcHBlcjogQzh5U3RlcHBlcjtcbiAgbWVzc2FnZTogc3RyaW5nO1xuICBzdWNjZXNzOiBib29sZWFuO1xuICBwZW5kaW5nOiBib29sZWFuO1xuICByZXN1bHQ6IElEZXZpY2VSZWdpc3RyYXRpb25CdWxrUmVzdWx0O1xuICBmYWlsZWRSZXN1bHQ6IEJ1bGtGYWlsZWRSZXN1bHQ7XG4gIGZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcbiAgbW9kZWwgPSB7fTtcbiAgdGVtcGxhdGU6IEZvcm1seUZpZWxkQ29uZmlnW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIGpzb25zY2hlbWE6IEM4eUpTT05TY2hlbWEsXG4gICAgcHJpdmF0ZSBkZXZpY2VSZWdpc3RyYXRpb25TZXJ2aWNlOiBEZXZpY2VSZWdpc3RyYXRpb25CdWxrU2VydmljZSxcbiAgICBwcml2YXRlIHJlZ2lzdGVyRGV2aWNlU2VydmljZTogUmVnaXN0ZXJEZXZpY2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgYnNNb2RhbFJlZjogQnNNb2RhbFJlZixcbiAgICBwcml2YXRlIGdhaW5zaWdodFNlcnZpY2U6IEdhaW5zaWdodFNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMudGVtcGxhdGUgPSBbdGhpcy5qc29uc2NoZW1hLnRvRmllbGRDb25maWcoYnVsa1NjaGVtYSldO1xuICB9XG5cbiAgdXBsb2FkKCkge1xuICAgIHRoaXMucGVuZGluZyA9IHRydWU7XG4gICAgY29uc3QgZmlsZSA9IHRoaXMuZ2V0RmlsZSh0aGlzLm1vZGVsKTtcbiAgICB0aGlzLmRldmljZVJlZ2lzdHJhdGlvblNlcnZpY2VcbiAgICAgIC5jcmVhdGUoZmlsZSlcbiAgICAgIC50aGVuKCh7IHJlcywgZGF0YSB9KSA9PiB7XG4gICAgICAgIGlmIChyZXMuc3RhdHVzIDwgNDAwKSB7XG4gICAgICAgICAgdGhpcy5yZXN1bHQgPSBkYXRhO1xuICAgICAgICAgIHRoaXMuc3VjY2VzcyA9IGRhdGEubnVtYmVyT2ZGYWlsZWQgPT09IDAgJiYgZGF0YS5udW1iZXJPZlN1Y2Nlc3NmdWwgPT09IGRhdGEubnVtYmVyT2ZBbGw7XG4gICAgICAgICAgdGhpcy5tZXNzYWdlID0gdGhpcy5zdWNjZXNzXG4gICAgICAgICAgICA/IGdldHRleHQoJ0RldmljZSByZWdpc3RyYXRpb24gY3JlYXRlZC4nKVxuICAgICAgICAgICAgOiAodGhpcy5tZXNzYWdlID0gZ2V0dGV4dCgnRGV2aWNlIHJlZ2lzdHJhdGlvbiBmYWlsZWQuJykpO1xuICAgICAgICAgIGlmICh0aGlzLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgIHRoaXMuZ2FpbnNpZ2h0U2VydmljZS50cmlnZ2VyRXZlbnQoJ2RtRGV2aWNlUmVnaXN0cmF0aW9uJywge1xuICAgICAgICAgICAgICBhY3Rpb246ICdyZWdpc3RyYXRpb25TdWNjZXNzJyxcbiAgICAgICAgICAgICAgbmFtZTogJ2J1bGtSZWdpc3RyYXRpb24nXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5nYWluc2lnaHRTZXJ2aWNlLnRyaWdnZXJFdmVudCgnZG1EZXZpY2VSZWdpc3RyYXRpb24nLCB7XG4gICAgICAgICAgICAgIGFjdGlvbjogJ3JlZ2lzdHJhdGlvbkZhaWx1cmUnLFxuICAgICAgICAgICAgICBuYW1lOiAnYnVsa1JlZ2lzdHJhdGlvbidcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmZhaWxlZFJlc3VsdCA9IGRhdGEgYXMgdW5rbm93biBhcyBCdWxrRmFpbGVkUmVzdWx0O1xuICAgICAgICAgIHRoaXMubWVzc2FnZSA9IGdldHRleHQoJ0RldmljZSByZWdpc3RyYXRpb24gZmFpbGVkLicpO1xuICAgICAgICAgIHRoaXMuZ2FpbnNpZ2h0U2VydmljZS50cmlnZ2VyRXZlbnQoJ2RtRGV2aWNlUmVnaXN0cmF0aW9uJywge1xuICAgICAgICAgICAgYWN0aW9uOiAncmVnaXN0cmF0aW9uRmFpbHVyZScsXG4gICAgICAgICAgICBuYW1lOiAnYnVsa1JlZ2lzdHJhdGlvbidcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1vZGVsID0ge307XG4gICAgICAgIHRoaXMucGVuZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnN0ZXBwZXIubmV4dCgpO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgIHRoaXMubWVzc2FnZSA9IGdldHRleHQoJ0Vycm9yIG9jY3VycmVkIHdoaWxlIHByb2Nlc3NpbmcgdGhlIHVwbG9hZGVkIGZpbGUuJyk7XG4gICAgICAgIHRoaXMucGVuZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnN0ZXBwZXIubmV4dCgpO1xuICAgICAgfSk7XG4gIH1cblxuICBkb3dubG9hZFNpbXBsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5kb3dubG9hZChzaW1wbGVDc3ZIZWFkZXJzLCBnZXR0ZXh0KCdTaW1wbGUgYnVsayByZWdpc3RyYXRpb24gLSB0ZW1wbGF0ZS5jc3YnKSk7XG4gIH1cblxuICBkb3dubG9hZEZ1bGwoKSB7XG4gICAgcmV0dXJuIHRoaXMuZG93bmxvYWQoZnVsbENzdkhlYWRlcnMsIGdldHRleHQoJ0Z1bGwgYnVsayByZWdpc3RyYXRpb24gLSB0ZW1wbGF0ZS5jc3YnKSk7XG4gIH1cblxuICBkb3dubG9hZChoZWFkZXJzOiBzdHJpbmdbXSwgZmlsZU5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IGhlYWRlclJhdyA9IGhlYWRlcnMubWFwKGhlYWRlciA9PiBgXCIke2hlYWRlcn1cImApLmpvaW4oJzsnKTtcbiAgICBjb25zdCBiaW5hcnlGaWxlID0gbmV3IEJsb2IoW2hlYWRlclJhd10sIHsgdHlwZTogJ3RleHQvY3N2JyB9KTtcbiAgICBzYXZlQXMoYmluYXJ5RmlsZSwgZmlsZU5hbWUpO1xuICB9XG5cbiAgY29tcGxldGUoKSB7XG4gICAgdGhpcy5yZWdpc3RlckRldmljZVNlcnZpY2UubGlzdCgpO1xuICAgIHRoaXMuYnNNb2RhbFJlZi5oaWRlKCk7XG4gIH1cblxuICBjYW5jZWwoKSB7XG4gICAgdGhpcy5ic01vZGFsUmVmLmhpZGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RmlsZShtb2RlbCk6IEZpbGUge1xuICAgIGNvbnN0IGNzdkJ1bGtGaWxlID0gKG1vZGVsIGFzIGFueSk/LmNzdkJ1bGtGaWxlO1xuICAgIHJldHVybiBjc3ZCdWxrRmlsZSA/IGNzdkJ1bGtGaWxlWzBdPy5maWxlIDogdW5kZWZpbmVkO1xuICB9XG59XG4iLCI8Yzh5LW1vZGFsXG4gIFt0aXRsZV09XCInQnVsayBkZXZpY2UgcmVnaXN0cmF0aW9uJyB8IHRyYW5zbGF0ZVwiXG4gIFtoZWFkZXJDbGFzc2VzXT1cIidkaWFsb2ctaGVhZGVyJ1wiXG4gIFtjdXN0b21Gb290ZXJdPVwidHJ1ZVwiXG4+XG4gIDxuZy1jb250YWluZXIgYzh5LW1vZGFsLXRpdGxlPlxuICAgIDxpIGM4eUljb249XCJ1cGxvYWRcIj48L2k+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxjOHktc3RlcHBlciBbaGlkZVN0ZXBQcm9ncmVzc109XCJ0cnVlXCIgbGluZWFyIGlkPVwibW9kYWwtYm9keVwiPlxuICAgIDxjZGstc3RlcD5cbiAgICAgIDxwIGNsYXNzPVwibW9kYWwtc3VidGl0bGUgc3RpY2t5LXRvcFwiIHRyYW5zbGF0ZT5SZWdpc3RlciBkZXZpY2VzIGluIGJ1bGs8L3A+XG5cbiAgICAgIDxjOHktZm9ybS1ncm91cCBjbGFzcz1cImQtYmxvY2sgcC0yNCBwLXQtMTYgcC1iLTAgbS1iLTBcIj5cbiAgICAgICAgPGZvcm1seS1mb3JtIFtmb3JtXT1cImZvcm1cIiBbZmllbGRzXT1cInRlbXBsYXRlXCIgW21vZGVsXT1cIm1vZGVsXCI+PC9mb3JtbHktZm9ybT5cbiAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJwLTI0IG0tdC0wIGJnLWxldmVsLTFcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtZmxleC0zMCBmbGV4LXN0cmV0Y2hcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTYgcC0xNiBwLWItMCBkLWZsZXggZC1jb2wgai1jLWJldHdlZW5cIj5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgIDxwIGNsYXNzPVwibS1iLThcIj5cbiAgICAgICAgICAgICAgICA8c3Ryb25nIHRyYW5zbGF0ZT5TaW1wbGUgcmVnaXN0cmF0aW9uPC9zdHJvbmc+XG4gICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPVwidGV4dC1tdXRlZFwiIHRyYW5zbGF0ZT5cbiAgICAgICAgICAgICAgICBDcmVhdGVzIGFsbCByZWdpc3RyYXRpb24gcmVxdWVzdHMgYXQgb25jZSwgdGhlbiBlYWNoIG9uZSBuZWVkcyB0byBnbyB0aHJvdWdoIHJlZ3VsYXJcbiAgICAgICAgICAgICAgICBhY2NlcHRhbmNlIHByb2Nlc3MuXG4gICAgICAgICAgICAgIDwvc21hbGw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLWItMTYgbS10LTE2XCI+XG4gICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyAnRG93bmxvYWQgdGVtcGxhdGUnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBidG4tc21cIlxuICAgICAgICAgICAgICAgIHRhcmdldD1cIl9zZWxmXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZG93bmxvYWRTaW1wbGUoKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8aSBjOHlJY29uPVwiZG93bmxvYWRcIiB0cmFuc2xhdGU+PC9pPlxuICAgICAgICAgICAgICAgIHt7ICdEb3dubG9hZCB0ZW1wbGF0ZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC02IHAtMTYgcC1iLTAgZC1mbGV4IGQtY29sIGotYy1iZXR3ZWVuXCI+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8cCBjbGFzcz1cIm0tYi04XCI+XG4gICAgICAgICAgICAgICAgPHN0cm9uZyB0cmFuc2xhdGU+RnVsbCByZWdpc3RyYXRpb248L3N0cm9uZz5cbiAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJ0ZXh0LW11dGVkXCIgdHJhbnNsYXRlPlxuICAgICAgICAgICAgICAgIENyZWF0ZXMgYWxsIGRldmljZSBjcmVkZW50aWFscyBhbmQgZGV2aWNlcyB1c2luZyBwcm92aWRlZCBsaXN0IG9mIHByb3BlcnR5IHZhbHVlcy5cbiAgICAgICAgICAgICAgICBEZXZpY2VzIGNhbiBzdGFydCBjb21tdW5pY2F0aW5nIHdpdGggdGhlIHBsYXRmb3JtIGltbWVkaWF0ZWx5LlxuICAgICAgICAgICAgICA8L3NtYWxsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1iLTE2IG0tdC0xNlwiPlxuICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIHRpdGxlPVwie3sgJ0Rvd25sb2FkIHRlbXBsYXRlJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgYnRuLXNtXCJcbiAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfc2VsZlwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImRvd25sb2FkRnVsbCgpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxpIGM4eUljb249XCJkb3dubG9hZFwiIHRyYW5zbGF0ZT48L2k+XG4gICAgICAgICAgICAgICAge3sgJ0Rvd25sb2FkIHRlbXBsYXRlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGM4eS1zdGVwcGVyLWJ1dHRvbnNcbiAgICAgICAgY2xhc3M9XCJzdGlja3ktYm90dG9tIGQtYmxvY2sgcC10LTE2IHAtYi0xNiBzZXBhcmF0b3ItdG9wIGJnLWxldmVsLTBcIlxuICAgICAgICBbc2hvd0J1dHRvbnNdPVwieyBjYW5jZWw6IHRydWUsIG5leHQ6IHRydWUgfVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJmb3JtLmludmFsaWRcIlxuICAgICAgICBbcGVuZGluZ109XCJwZW5kaW5nXCJcbiAgICAgICAgKG9uQ2FuY2VsKT1cImNhbmNlbCgpXCJcbiAgICAgICAgKG9uTmV4dCk9XCJ1cGxvYWQoKVwiXG4gICAgICAgIFtsYWJlbHNdPVwieyBuZXh0OiAnVXBsb2FkJyB9XCJcbiAgICAgID48L2M4eS1zdGVwcGVyLWJ1dHRvbnM+XG4gICAgPC9jZGstc3RlcD5cblxuICAgIDxjZGstc3RlcCBzdGF0ZT1cImZpbmFsXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibS0yNFwiPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwic3VjY2VzczsgZWxzZSB3YXJuaW5nXCI+XG4gICAgICAgICAgPGM4eS1vcGVyYXRpb24tcmVzdWx0XG4gICAgICAgICAgICB0ZXh0PVwie3sgbWVzc2FnZSB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICBbc2l6ZV09XCI4NFwiXG4gICAgICAgICAgICBbdmVydGljYWxdPVwidHJ1ZVwiXG4gICAgICAgICAgICB0eXBlPVwic3VjY2Vzc1wiXG4gICAgICAgICAgICBjbGFzcz1cImxlYWRcIlxuICAgICAgICAgID48L2M4eS1vcGVyYXRpb24tcmVzdWx0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICN3YXJuaW5nPlxuICAgICAgICAgIDxjOHktb3BlcmF0aW9uLXJlc3VsdFxuICAgICAgICAgICAgdGV4dD1cInt7IG1lc3NhZ2UgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgW3NpemVdPVwiODRcIlxuICAgICAgICAgICAgW3ZlcnRpY2FsXT1cInRydWVcIlxuICAgICAgICAgICAgdHlwZT1cImVycm9yXCJcbiAgICAgICAgICAgIGNsYXNzPVwibGVhZFwiXG4gICAgICAgICAgPjwvYzh5LW9wZXJhdGlvbi1yZXN1bHQ+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxjOHktbGlzdC1ncm91cCBjbGFzcz1cInNlcGFyYXRvci10b3AgbS10LTE2XCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlc3VsdDsgZWxzZSBmYWlsZWRSZXNwb25zZVwiPlxuICAgICAgICAgICAgPGM4eS1saSAqbmdJZj1cInN1Y2Nlc3M7IGVsc2UgZmFpbFwiPlxuICAgICAgICAgICAgICA8Yzh5LWxpLWljb24gY2xhc3M9XCJ0ZXh0LXN1Y2Nlc3NcIiBpY29uPVwiY2hlY2stY2lyY2xlXCI+PC9jOHktbGktaWNvbj5cbiAgICAgICAgICAgICAgPHA+QWxsIGRldmljZXMgcHJvY2Vzc2VkIHN1Y2Nlc3NmdWxseS48L3A+XG4gICAgICAgICAgICAgIDxjOHktbGktY29sbGFwc2U+XG4gICAgICAgICAgICAgICAgPHByZT48Y29kZT57eyByZXN1bHQgfCBqc29uIH19PC9jb2RlPjwvcHJlPlxuICAgICAgICAgICAgICA8L2M4eS1saS1jb2xsYXBzZT5cbiAgICAgICAgICAgIDwvYzh5LWxpPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNmYWlsPlxuICAgICAgICAgICAgICA8Yzh5LWxpPlxuICAgICAgICAgICAgICAgIDxjOHktbGktaWNvbiBjbGFzcz1cInRleHQtZGFuZ2VyXCIgaWNvbj1cImJhblwiPjwvYzh5LWxpLWljb24+XG4gICAgICAgICAgICAgICAgPHBcbiAgICAgICAgICAgICAgICAgIG5nTm9uQmluZGFibGVcbiAgICAgICAgICAgICAgICAgIFt0cmFuc2xhdGVQYXJhbXNdPVwieyBjb3VudDogcmVzdWx0Py5udW1iZXJPZkZhaWxlZCwgdG90YWw6IHJlc3VsdD8ubnVtYmVyT2ZBbGwgfVwiXG4gICAgICAgICAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICBGYWlsZWQgdG8gcHJvY2VzcyB7eyBjb3VudCB9fSBvdXQgb2Yge3sgdG90YWwgfX0uXG4gICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgIDxjOHktbGktY29sbGFwc2U+XG4gICAgICAgICAgICAgICAgICA8cHJlPjxjb2RlPnt7IHJlc3VsdCB8IGpzb24gfX08L2NvZGU+PC9wcmU+XG4gICAgICAgICAgICAgICAgPC9jOHktbGktY29sbGFwc2U+XG4gICAgICAgICAgICAgIDwvYzh5LWxpPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2ZhaWxlZFJlc3BvbnNlPlxuICAgICAgICAgICAgPGM4eS1saT5cbiAgICAgICAgICAgICAgPGM4eS1saS1pY29uIGNsYXNzPVwidGV4dC1kYW5nZXJcIiBbaWNvbl09XCInYmFuJ1wiPjwvYzh5LWxpLWljb24+XG4gICAgICAgICAgICAgIDxzbWFsbD57eyBmYWlsZWRSZXN1bHQ/Lm1lc3NhZ2UgfCB0cmFuc2xhdGUgfX08L3NtYWxsPlxuICAgICAgICAgICAgICA8Yzh5LWxpLWNvbGxhcHNlPlxuICAgICAgICAgICAgICAgIDxwcmU+PGNvZGU+e3sgZmFpbGVkUmVzdWx0IHwganNvbiB9fTwvY29kZT48L3ByZT5cbiAgICAgICAgICAgICAgPC9jOHktbGktY29sbGFwc2U+XG4gICAgICAgICAgICA8L2M4eS1saT5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2M4eS1saXN0LWdyb3VwPlxuICAgICAgPC9kaXY+XG4gICAgICA8Yzh5LXN0ZXBwZXItYnV0dG9uc1xuICAgICAgICBjbGFzcz1cInN0aWNreS1ib3R0b20gZC1ibG9jayBwLXQtMTYgcC1iLTE2IHNlcGFyYXRvci10b3AgYmctbGV2ZWwtMFwiXG4gICAgICAgIFtzaG93QnV0dG9uc109XCJ7IG5leHQ6IHRydWUgfVwiXG4gICAgICAgIChvbk5leHQpPVwiY29tcGxldGUoKVwiXG4gICAgICAgIFtsYWJlbHNdPVwieyBuZXh0OiBzdWNjZXNzID8gJ0Nsb3NlJyA6ICdDYW5jZWwnIH1cIlxuICAgICAgPjwvYzh5LXN0ZXBwZXItYnV0dG9ucz5cbiAgICA8L2Nkay1zdGVwPlxuICAgIFxuICA8L2M4eS1zdGVwcGVyPlxuPC9jOHktbW9kYWw+XG4iXX0=
@@ -98,12 +98,12 @@ export class ExtensibleBulkDeviceRegistrationModalComponent {
98
98
  }
99
99
  }
100
100
  ExtensibleBulkDeviceRegistrationModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ExtensibleBulkDeviceRegistrationModalComponent, deps: [{ token: i1.C8yJSONSchema }, { token: i2.BulkExtensibleDeviceRegistrationService }, { token: i3.RegisterDeviceService }, { token: i4.BsModalRef }], target: i0.ɵɵFactoryTarget.Component });
101
- ExtensibleBulkDeviceRegistrationModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ExtensibleBulkDeviceRegistrationModalComponent, selector: "extensible-device-registration-modal-component", viewQueries: [{ propertyName: "stepper", first: true, predicate: C8yStepper, descendants: true, static: true }], ngImport: i0, template: "<c8y-modal [headerClasses]=\"'dialog-header'\" [customFooter]=\"true\">\n <ng-container c8y-modal-title>\n <span class=\"c8y-icon c8y-icon-device-connect\"></span>\n <h4 id=\"modal-title\">{{ title | translate }}</h4>\n </ng-container>\n <c8y-stepper [hideStepProgress]=\"true\" linear class=\"p-t-16\" id=\"modal-body\">\n <ng-container *ngIf=\"!loadingError\">\n <cdk-step>\n <div class=\"sticky-top bg-component separator-bottom\">\n <p\n class=\"\n p-l-24 p-r-24 p-t-16 p-b-16\n m-b-0\n separator-bottom\n text-16 text-medium text-center\n bg-component\n \"\n translate\n >\n Register devices in bulk\n </p>\n <c8y-form-group class=\"p-24 p-t-16 p-b-8 m-b-0\">\n <formly-form [form]=\"form\" [fields]=\"template\" [model]=\"model\"></formly-form>\n </c8y-form-group>\n </div>\n <div\n *ngFor=\"let example of examples\"\n class=\"bg-gray-white separator-bottom p-t-16 p-b-16 p-l-24 p-r-24\"\n >\n <p class=\"m-b-8 text-medium\">\n {{ example.title | translate }}\n </p>\n <p class=\"small m-b-8\">{{ example.description | translate }}</p>\n <a\n title=\"{{ 'Download template' | translate }}\"\n class=\"btn btn-default btn-sm\"\n target=\"_self\"\n [href]=\"example.url\"\n download=\"{{ 'Example bulk registration - template.csv' | translate }}\"\n >\n <i c8yIcon=\"download\"></i>\n <span translate>Download template</span>\n </a>\n </div>\n <c8y-stepper-buttons\n class=\"sticky-bottom d-block p-t-16 p-b-16 separator-top bg-level-0\"\n [showButtons]=\"{ cancel: true, next: true }\"\n [disabled]=\"form.invalid\"\n [pending]=\"pending\"\n (onCancel)=\"cancel()\"\n (onNext)=\"upload()\"\n [labels]=\"{ next: 'Upload' }\"\n ></c8y-stepper-buttons>\n </cdk-step>\n </ng-container>\n <cdk-step state=\"final\">\n <div class=\"p-24\">\n <div *ngIf=\"success; else fail\">\n <c8y-operation-result\n text=\"{{ message | translate }}\"\n [size]=\"84\"\n [vertical]=\"true\"\n type=\"success\"\n class=\"lead\"\n data-cy=\"success\"\n ></c8y-operation-result>\n <c8y-list-group class=\"separator-top m-t-16\">\n <c8y-li>\n <c8y-li-icon class=\"text-success\" [icon]=\"'check-circle'\"></c8y-li-icon>\n <p translate>File successfully uploaded.</p>\n <c8y-li-collapse>\n <pre><code>{{ result | json }}</code></pre>\n </c8y-li-collapse>\n </c8y-li>\n </c8y-list-group>\n </div>\n <ng-template #fail>\n <c8y-operation-result\n text=\"{{ message | translate }}\"\n [size]=\"84\"\n [vertical]=\"true\"\n type=\"error\"\n class=\"lead\"\n data-cy=\"error\"\n ></c8y-operation-result>\n <c8y-list-group *ngIf=\"result\" class=\"separator-top m-t-16\">\n <c8y-li>\n <c8y-li-icon class=\"text-danger\" [icon]=\"'ban'\"></c8y-li-icon>\n <p translate>Bulk operation failed.</p>\n <c8y-li-collapse>\n <pre><code>{{ result | json }}</code></pre>\n </c8y-li-collapse>\n </c8y-li>\n </c8y-list-group>\n </ng-template>\n </div>\n <c8y-stepper-buttons\n class=\"sticky-bottom d-block p-t-16 p-b-16 separator-top bg-component\"\n [showButtons]=\"{ next: true }\"\n (onNext)=\"complete()\"\n [labels]=\"{ next: success ? 'Complete' : 'Cancel' }\"\n ></c8y-stepper-buttons>\n </cdk-step>\n </c8y-stepper>\n</c8y-modal>\n", dependencies: [{ kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.OperationResultComponent, selector: "c8y-operation-result", inputs: ["text", "vertical", "size", "type"] }, { kind: "component", type: i1.ModalComponent, selector: "c8y-modal", inputs: ["disabled", "close", "dismiss", "title", "body", "customFooter", "headerClasses", "labels"], outputs: ["onDismiss", "onClose"] }, { kind: "component", type: i1.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "component", type: i1.C8yStepper, selector: "c8y-stepper", inputs: ["disableDefaultIcons", "disableProgressButtons", "customClasses", "hideStepProgress", "useStepLabelsAsTitlesOnly"], outputs: ["onStepChange"] }, { kind: "component", type: i6.CdkStep, selector: "cdk-step", inputs: ["stepControl", "label", "errorMessage", "aria-label", "aria-labelledby", "state", "editable", "optional", "completed", "hasError"], outputs: ["interacted"], exportAs: ["cdkStep"] }, { kind: "component", type: i1.C8yStepperButtons, selector: "c8y-stepper-buttons", inputs: ["labels", "pending", "disabled", "showButtons"], outputs: ["onCancel", "onNext", "onBack", "onCustom"] }, { kind: "component", type: i1.ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: i1.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "emptyActions", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: i1.ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "component", type: i1.ListItemCollapseComponent, selector: "c8y-list-item-collapse, c8y-li-collapse", inputs: ["collapseWay"] }, { kind: "component", type: i7.FormlyForm, selector: "formly-form", inputs: ["model", "fields", "options", "form"], outputs: ["modelChange"] }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i5.JsonPipe, name: "json" }] });
101
+ ExtensibleBulkDeviceRegistrationModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ExtensibleBulkDeviceRegistrationModalComponent, selector: "extensible-device-registration-modal-component", viewQueries: [{ propertyName: "stepper", first: true, predicate: C8yStepper, descendants: true, static: true }], ngImport: i0, template: "<c8y-modal\n [title]=\"title | translate\"\n [headerClasses]=\"'dialog-header'\"\n [customFooter]=\"true\"\n>\n <ng-container c8y-modal-title>\n <i c8yIcon=\"c8y-device-connect\"></i>\n </ng-container>\n <c8y-stepper [hideStepProgress]=\"true\" linear class=\"p-t-16\" c8y-modal-body>\n <ng-container *ngIf=\"!loadingError\">\n <cdk-step>\n <div class=\"sticky-top bg-component separator-bottom\">\n <p\n class=\"p-l-24 p-r-24 p-t-16 p-b-16 m-b-0 separator-bottom text-16 text-medium text-center bg-component\"\n translate\n >\n Register devices in bulk\n </p>\n <c8y-form-group class=\"p-24 p-t-16 p-b-8 m-b-0\">\n <formly-form [form]=\"form\" [fields]=\"template\" [model]=\"model\"></formly-form>\n </c8y-form-group>\n </div>\n <div\n *ngFor=\"let example of examples\"\n class=\"bg-gray-white separator-bottom p-t-16 p-b-16 p-l-24 p-r-24\"\n >\n <p class=\"m-b-8 text-medium\">\n {{ example.title | translate }}\n </p>\n <p class=\"small m-b-8\">{{ example.description | translate }}</p>\n <a\n title=\"{{ 'Download template' | translate }}\"\n class=\"btn btn-default btn-sm\"\n target=\"_self\"\n [href]=\"example.url\"\n download=\"{{ 'Example bulk registration - template.csv' | translate }}\"\n >\n <i c8yIcon=\"download\"></i>\n <span translate>Download template</span>\n </a>\n </div>\n <c8y-stepper-buttons\n class=\"sticky-bottom d-block p-t-16 p-b-16 separator-top bg-level-0\"\n [showButtons]=\"{ cancel: true, next: true }\"\n [disabled]=\"form.invalid\"\n [pending]=\"pending\"\n (onCancel)=\"cancel()\"\n (onNext)=\"upload()\"\n [labels]=\"{ next: 'Upload' }\"\n ></c8y-stepper-buttons>\n </cdk-step>\n </ng-container>\n <cdk-step state=\"final\">\n <div class=\"p-24\">\n <div *ngIf=\"success; else fail\">\n <c8y-operation-result\n text=\"{{ message | translate }}\"\n [size]=\"84\"\n [vertical]=\"true\"\n type=\"success\"\n class=\"lead\"\n data-cy=\"success\"\n ></c8y-operation-result>\n <c8y-list-group class=\"separator-top m-t-16\">\n <c8y-li>\n <c8y-li-icon class=\"text-success\" [icon]=\"'check-circle'\"></c8y-li-icon>\n <p translate>File successfully uploaded.</p>\n <c8y-li-collapse>\n <pre><code>{{ result | json }}</code></pre>\n </c8y-li-collapse>\n </c8y-li>\n </c8y-list-group>\n </div>\n <ng-template #fail>\n <c8y-operation-result\n text=\"{{ message | translate }}\"\n [size]=\"84\"\n [vertical]=\"true\"\n type=\"error\"\n class=\"lead\"\n data-cy=\"error\"\n ></c8y-operation-result>\n <c8y-list-group *ngIf=\"result\" class=\"separator-top m-t-16\">\n <c8y-li>\n <c8y-li-icon class=\"text-danger\" [icon]=\"'ban'\"></c8y-li-icon>\n <p translate>Bulk operation failed.</p>\n <c8y-li-collapse>\n <pre><code>{{ result | json }}</code></pre>\n </c8y-li-collapse>\n </c8y-li>\n </c8y-list-group>\n </ng-template>\n </div>\n <c8y-stepper-buttons\n class=\"sticky-bottom d-block p-t-16 p-b-16 separator-top bg-component\"\n [showButtons]=\"{ next: true }\"\n (onNext)=\"complete()\"\n [labels]=\"{ next: success ? 'Complete' : 'Cancel' }\"\n ></c8y-stepper-buttons>\n </cdk-step>\n </c8y-stepper>\n</c8y-modal>\n", dependencies: [{ kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.OperationResultComponent, selector: "c8y-operation-result", inputs: ["text", "vertical", "size", "type"] }, { kind: "component", type: i1.ModalComponent, selector: "c8y-modal", inputs: ["disabled", "close", "dismiss", "title", "body", "customFooter", "headerClasses", "labels"], outputs: ["onDismiss", "onClose"] }, { kind: "component", type: i1.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "component", type: i1.C8yStepper, selector: "c8y-stepper", inputs: ["disableDefaultIcons", "disableProgressButtons", "customClasses", "hideStepProgress", "useStepLabelsAsTitlesOnly"], outputs: ["onStepChange"] }, { kind: "component", type: i6.CdkStep, selector: "cdk-step", inputs: ["stepControl", "label", "errorMessage", "aria-label", "aria-labelledby", "state", "editable", "optional", "completed", "hasError"], outputs: ["interacted"], exportAs: ["cdkStep"] }, { kind: "component", type: i1.C8yStepperButtons, selector: "c8y-stepper-buttons", inputs: ["labels", "pending", "disabled", "showButtons"], outputs: ["onCancel", "onNext", "onBack", "onCustom"] }, { kind: "component", type: i1.ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: i1.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "emptyActions", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: i1.ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "component", type: i1.ListItemCollapseComponent, selector: "c8y-list-item-collapse, c8y-li-collapse", inputs: ["collapseWay"] }, { kind: "component", type: i7.FormlyForm, selector: "formly-form", inputs: ["model", "fields", "options", "form"], outputs: ["modelChange"] }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i5.JsonPipe, name: "json" }] });
102
102
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ExtensibleBulkDeviceRegistrationModalComponent, decorators: [{
103
103
  type: Component,
104
- args: [{ selector: 'extensible-device-registration-modal-component', template: "<c8y-modal [headerClasses]=\"'dialog-header'\" [customFooter]=\"true\">\n <ng-container c8y-modal-title>\n <span class=\"c8y-icon c8y-icon-device-connect\"></span>\n <h4 id=\"modal-title\">{{ title | translate }}</h4>\n </ng-container>\n <c8y-stepper [hideStepProgress]=\"true\" linear class=\"p-t-16\" id=\"modal-body\">\n <ng-container *ngIf=\"!loadingError\">\n <cdk-step>\n <div class=\"sticky-top bg-component separator-bottom\">\n <p\n class=\"\n p-l-24 p-r-24 p-t-16 p-b-16\n m-b-0\n separator-bottom\n text-16 text-medium text-center\n bg-component\n \"\n translate\n >\n Register devices in bulk\n </p>\n <c8y-form-group class=\"p-24 p-t-16 p-b-8 m-b-0\">\n <formly-form [form]=\"form\" [fields]=\"template\" [model]=\"model\"></formly-form>\n </c8y-form-group>\n </div>\n <div\n *ngFor=\"let example of examples\"\n class=\"bg-gray-white separator-bottom p-t-16 p-b-16 p-l-24 p-r-24\"\n >\n <p class=\"m-b-8 text-medium\">\n {{ example.title | translate }}\n </p>\n <p class=\"small m-b-8\">{{ example.description | translate }}</p>\n <a\n title=\"{{ 'Download template' | translate }}\"\n class=\"btn btn-default btn-sm\"\n target=\"_self\"\n [href]=\"example.url\"\n download=\"{{ 'Example bulk registration - template.csv' | translate }}\"\n >\n <i c8yIcon=\"download\"></i>\n <span translate>Download template</span>\n </a>\n </div>\n <c8y-stepper-buttons\n class=\"sticky-bottom d-block p-t-16 p-b-16 separator-top bg-level-0\"\n [showButtons]=\"{ cancel: true, next: true }\"\n [disabled]=\"form.invalid\"\n [pending]=\"pending\"\n (onCancel)=\"cancel()\"\n (onNext)=\"upload()\"\n [labels]=\"{ next: 'Upload' }\"\n ></c8y-stepper-buttons>\n </cdk-step>\n </ng-container>\n <cdk-step state=\"final\">\n <div class=\"p-24\">\n <div *ngIf=\"success; else fail\">\n <c8y-operation-result\n text=\"{{ message | translate }}\"\n [size]=\"84\"\n [vertical]=\"true\"\n type=\"success\"\n class=\"lead\"\n data-cy=\"success\"\n ></c8y-operation-result>\n <c8y-list-group class=\"separator-top m-t-16\">\n <c8y-li>\n <c8y-li-icon class=\"text-success\" [icon]=\"'check-circle'\"></c8y-li-icon>\n <p translate>File successfully uploaded.</p>\n <c8y-li-collapse>\n <pre><code>{{ result | json }}</code></pre>\n </c8y-li-collapse>\n </c8y-li>\n </c8y-list-group>\n </div>\n <ng-template #fail>\n <c8y-operation-result\n text=\"{{ message | translate }}\"\n [size]=\"84\"\n [vertical]=\"true\"\n type=\"error\"\n class=\"lead\"\n data-cy=\"error\"\n ></c8y-operation-result>\n <c8y-list-group *ngIf=\"result\" class=\"separator-top m-t-16\">\n <c8y-li>\n <c8y-li-icon class=\"text-danger\" [icon]=\"'ban'\"></c8y-li-icon>\n <p translate>Bulk operation failed.</p>\n <c8y-li-collapse>\n <pre><code>{{ result | json }}</code></pre>\n </c8y-li-collapse>\n </c8y-li>\n </c8y-list-group>\n </ng-template>\n </div>\n <c8y-stepper-buttons\n class=\"sticky-bottom d-block p-t-16 p-b-16 separator-top bg-component\"\n [showButtons]=\"{ next: true }\"\n (onNext)=\"complete()\"\n [labels]=\"{ next: success ? 'Complete' : 'Cancel' }\"\n ></c8y-stepper-buttons>\n </cdk-step>\n </c8y-stepper>\n</c8y-modal>\n" }]
104
+ args: [{ selector: 'extensible-device-registration-modal-component', template: "<c8y-modal\n [title]=\"title | translate\"\n [headerClasses]=\"'dialog-header'\"\n [customFooter]=\"true\"\n>\n <ng-container c8y-modal-title>\n <i c8yIcon=\"c8y-device-connect\"></i>\n </ng-container>\n <c8y-stepper [hideStepProgress]=\"true\" linear class=\"p-t-16\" c8y-modal-body>\n <ng-container *ngIf=\"!loadingError\">\n <cdk-step>\n <div class=\"sticky-top bg-component separator-bottom\">\n <p\n class=\"p-l-24 p-r-24 p-t-16 p-b-16 m-b-0 separator-bottom text-16 text-medium text-center bg-component\"\n translate\n >\n Register devices in bulk\n </p>\n <c8y-form-group class=\"p-24 p-t-16 p-b-8 m-b-0\">\n <formly-form [form]=\"form\" [fields]=\"template\" [model]=\"model\"></formly-form>\n </c8y-form-group>\n </div>\n <div\n *ngFor=\"let example of examples\"\n class=\"bg-gray-white separator-bottom p-t-16 p-b-16 p-l-24 p-r-24\"\n >\n <p class=\"m-b-8 text-medium\">\n {{ example.title | translate }}\n </p>\n <p class=\"small m-b-8\">{{ example.description | translate }}</p>\n <a\n title=\"{{ 'Download template' | translate }}\"\n class=\"btn btn-default btn-sm\"\n target=\"_self\"\n [href]=\"example.url\"\n download=\"{{ 'Example bulk registration - template.csv' | translate }}\"\n >\n <i c8yIcon=\"download\"></i>\n <span translate>Download template</span>\n </a>\n </div>\n <c8y-stepper-buttons\n class=\"sticky-bottom d-block p-t-16 p-b-16 separator-top bg-level-0\"\n [showButtons]=\"{ cancel: true, next: true }\"\n [disabled]=\"form.invalid\"\n [pending]=\"pending\"\n (onCancel)=\"cancel()\"\n (onNext)=\"upload()\"\n [labels]=\"{ next: 'Upload' }\"\n ></c8y-stepper-buttons>\n </cdk-step>\n </ng-container>\n <cdk-step state=\"final\">\n <div class=\"p-24\">\n <div *ngIf=\"success; else fail\">\n <c8y-operation-result\n text=\"{{ message | translate }}\"\n [size]=\"84\"\n [vertical]=\"true\"\n type=\"success\"\n class=\"lead\"\n data-cy=\"success\"\n ></c8y-operation-result>\n <c8y-list-group class=\"separator-top m-t-16\">\n <c8y-li>\n <c8y-li-icon class=\"text-success\" [icon]=\"'check-circle'\"></c8y-li-icon>\n <p translate>File successfully uploaded.</p>\n <c8y-li-collapse>\n <pre><code>{{ result | json }}</code></pre>\n </c8y-li-collapse>\n </c8y-li>\n </c8y-list-group>\n </div>\n <ng-template #fail>\n <c8y-operation-result\n text=\"{{ message | translate }}\"\n [size]=\"84\"\n [vertical]=\"true\"\n type=\"error\"\n class=\"lead\"\n data-cy=\"error\"\n ></c8y-operation-result>\n <c8y-list-group *ngIf=\"result\" class=\"separator-top m-t-16\">\n <c8y-li>\n <c8y-li-icon class=\"text-danger\" [icon]=\"'ban'\"></c8y-li-icon>\n <p translate>Bulk operation failed.</p>\n <c8y-li-collapse>\n <pre><code>{{ result | json }}</code></pre>\n </c8y-li-collapse>\n </c8y-li>\n </c8y-list-group>\n </ng-template>\n </div>\n <c8y-stepper-buttons\n class=\"sticky-bottom d-block p-t-16 p-b-16 separator-top bg-component\"\n [showButtons]=\"{ next: true }\"\n (onNext)=\"complete()\"\n [labels]=\"{ next: success ? 'Complete' : 'Cancel' }\"\n ></c8y-stepper-buttons>\n </cdk-step>\n </c8y-stepper>\n</c8y-modal>\n" }]
105
105
  }], ctorParameters: function () { return [{ type: i1.C8yJSONSchema }, { type: i2.BulkExtensibleDeviceRegistrationService }, { type: i3.RegisterDeviceService }, { type: i4.BsModalRef }]; }, propDecorators: { stepper: [{
106
106
  type: ViewChild,
107
107
  args: [C8yStepper, { static: true }]
108
108
  }] } });
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaWJsZS1idWxrLWRldmljZS1yZWdpc3RyYXRpb24tbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcmVnaXN0ZXItZGV2aWNlL2V4dGVuc2libGUvYnVsay9leHRlbnNpYmxlLWJ1bGstZGV2aWNlLXJlZ2lzdHJhdGlvbi1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9yZWdpc3Rlci1kZXZpY2UvZXh0ZW5zaWJsZS9idWxrL2V4dGVuc2libGUtYnVsay1kZXZpY2UtcmVnaXN0cmF0aW9uLW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVEzQyxPQUFPLEVBQUUsdUNBQXVDLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN4RyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7OztBQUdqRCxNQUFNLFVBQVUsR0FBVztJQUN6QixPQUFPLEVBQUUsOENBQThDO0lBQ3ZELElBQUksRUFBRSxRQUFRO0lBQ2QsVUFBVSxFQUFFO1FBQ1YsV0FBVyxFQUFFO1lBQ1gsSUFBSSxFQUFFLFFBQVE7WUFDZCxLQUFLLEVBQUUsT0FBTyxDQUFDLGlCQUFpQixDQUFDO1lBQ2pDLFdBQVcsRUFBRSxPQUFPLENBQ2xCLHVHQUF1RyxDQUN4RztZQUNELGVBQWUsRUFBRSxRQUFRO1lBQ3pCLGdCQUFnQixFQUFFLEtBQUs7U0FDeEI7S0FDRjtJQUNELFFBQVEsRUFBRSxDQUFD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QU8sQ0FBQywyREFBMkQsQ0FBQyxDQUFDO1NBQ3JGO0lBQ0gsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFLO1FBQ1gsTUFBTSxXQUFXLEdBQUksS0FBYSxFQUFFLFdBQVcsQ0FBQztRQUNoRCxPQUFPLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3hELENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pCLENBQUM7OzJJQXRGVSw4Q0FBOEM7K0hBQTlDLDhDQUE4QywrSEFDOUMsVUFBVSw4REN0Q3ZCLDY3SEF5R0E7MkZEcEVhLDhDQUE4QztrQkFKMUQsU0FBUzsrQkFDRSxnREFBZ0Q7dU5BSWpCLE9BQU87c0JBQS9DLFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEM4eUpTT05TY2hlbWEsIEM4eVN0ZXBwZXIsIGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIEJ1bGtEZXNjcmlwdGlvbixcbiAgQnVsa0ZhaWxlZFJlc3VsdCxcbiAgQnVsa0ZpbGVFeGFtcGxlLFxuICBCdWxrUmVzdWx0XG59IGZyb20gJy4vZXh0ZW5zaWJsZS1idWxrLWRldmljZS1yZWdpc3RyYXRpb24ubW9kZWwnO1xuaW1wb3J0IHsgRm9ybWx5RmllbGRDb25maWcgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IEJ1bGtFeHRlbnNpYmxlRGV2aWNlUmVnaXN0cmF0aW9uU2VydmljZSB9IGZyb20gJy4vZXh0ZW5zaWJsZS1idWxrLWRldmljZS1yZWdpc3RyYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBSZWdpc3RlckRldmljZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9yZWdpc3Rlci1kZXZpY2Uuc2VydmljZSc7XG5pbXBvcnQgeyBCc01vZGFsUmVmIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5pbXBvcnQgeyBJUmVzdWx0IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuXG5jb25zdCBidWxrU2NoZW1hOiBvYmplY3QgPSB7XG4gICRzY2hlbWE6ICdodHRwczovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC8yMDE5LTA5L3NjaGVtYScsXG4gIHR5cGU6ICdvYmplY3QnLFxuICBwcm9wZXJ0aWVzOiB7XG4gICAgY3N2QnVsa0ZpbGU6IHtcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgdGl0bGU6IGdldHRleHQoJ0NTViBmaWxlIHVwbG9hZCcpLFxuICAgICAgZGVzY3JpcHRpb246IGdldHRleHQoXG4gICAgICAgICdZb3UgY2FuIHVzZSBmaWxlIHVwbG9hZCBjb21wb25lbnQgdG8gbGV0IHVzZXJzIHNlbmQgZmlsZXMuIFRoaXMgaW5wdXQgYWNjZXB0cyBvbmx5IGEgc2luZ2xlIENTViBmaWxlLidcbiAgICAgICksXG4gICAgICBjb250ZW50RW5jb2Rpbmc6ICdiYXNlNjQnLFxuICAgICAgY29udGVudE1lZGlhVHlwZTogJ2NzdidcbiAgICB9XG4gIH0sXG4gIHJlcXVpcmVkOiBbJ2NzdkJ1bGtGaWxlJ10sXG4gIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZVxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZXh0ZW5zaWJsZS1kZXZpY2UtcmVnaXN0cmF0aW9uLW1vZGFsLWNvbXBvbmVudCcsXG4gIHRlbXBsYXRlVXJsOiAnZXh0ZW5zaWJsZS1idWxrLWRldmljZS1yZWdpc3RyYXRpb24tbW9kYWwuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEV4dGVuc2libGVCdWxrRGV2aWNlUmVnaXN0cmF0aW9uTW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBAVmlld0NoaWxkKEM4eVN0ZXBwZXIsIHsgc3RhdGljOiB0cnVlIH0pIHN0ZXBwZXI6IEM4eVN0ZXBwZXI7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGV4YW1wbGVzOiBCdWxrRmlsZUV4YW1wbGVbXTtcbiAgbWVzc2FnZTogc3RyaW5nO1xuICBzdWNjZXNzOiBib29sZWFuO1xuICBsb2FkaW5nRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcGVuZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBjb250ZXh0UGF0aDogc3RyaW5nO1xuICByZXN1bHQ6IEJ1bGtSZXN1bHQgfCBCdWxrRmFpbGVkUmVzdWx0O1xuICBmb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XG4gIG1vZGVsID0ge307XG4gIHRlbXBsYXRlOiBGb3JtbHlGaWVsZENvbmZpZ1tdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUganNvbnNjaGVtYTogQzh5SlNPTlNjaGVtYSxcbiAgICBwcml2YXRlIGJ1bGtFeHRlbnNpYmxlRGV2aWNlUmVnaXN0cmF0aW9uU2VydmljZTogQnVsa0V4dGVuc2libGVEZXZpY2VSZWdpc3RyYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVnaXN0ZXJEZXZpY2VTZXJ2aWNlOiBSZWdpc3RlckRldmljZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBic01vZGFsUmVmOiBCc01vZGFsUmVmXG4gICkge31cblxuICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICBjb25zdCB7IHRpdGxlLCBleGFtcGxlRmlsZVVybHMgfTogQnVsa0Rlc2NyaXB0aW9uID1cbiAgICAgIGF3YWl0IHRoaXMuYnVsa0V4dGVuc2libGVEZXZpY2VSZWdpc3RyYXRpb25TZXJ2aWNlXG4gICAgICAgIC5nZXRCdWxrRGVzY3JpcHRpb24odGhpcy5jb250ZXh0UGF0aClcbiAgICAgICAgLmNhdGNoKGVycm9yID0+IHtcbiAgICAgICAgICB0aGlzLm1lc3NhZ2UgPSBlcnJvci5tZXNzYWdlO1xuICAgICAgICAgIHRoaXMubG9hZGluZ0Vycm9yID0gdHJ1ZTtcblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0aXRsZTogZ2V0dGV4dCgnRXJyb3InKSxcbiAgICAgICAgICAgIGV4YW1wbGVGaWxlVXJsczogW11cbiAgICAgICAgICB9O1xuICAgICAgICB9KTtcblxuICAgIHRoaXMudGl0bGUgPSB0aXRsZTtcbiAgICB0aGlzLnRlbXBsYXRlID0gW3RoaXMuanNvbnNjaGVtYS50b0ZpZWxkQ29uZmlnKGJ1bGtTY2hlbWEpXTtcbiAgICB0aGlzLmV4YW1wbGVzID0gZXhhbXBsZUZpbGVVcmxzO1xuICB9XG5cbiAgYXN5bmMgdXBsb2FkKCkge1xuICAgIHRoaXMucGVuZGluZyA9IHRydWU7XG4gICAgY29uc3QgeyByZXMsIGRhdGEgfTogSVJlc3VsdDxCdWxrUmVzdWx0PiA9IGF3YWl0IHRoaXMuYnVsa0V4dGVuc2libGVEZXZpY2VSZWdpc3RyYXRpb25TZXJ2aWNlXG4gICAgICAudXBsb2FkKHRoaXMuZ2V0RmlsZSh0aGlzLm1vZGVsKSwgdGhpcy5jb250ZXh0UGF0aClcbiAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcmVzOiB1bmRlZmluZWQsXG4gICAgICAgICAgZGF0YTogdW5kZWZpbmVkXG4gICAgICAgIH07XG4gICAgICB9KVxuICAgICAgLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICB0aGlzLnBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zdGVwcGVyLm5leHQoKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5yZXN1bHQgPSBkYXRhO1xuICAgIHRoaXMuc3VjY2VzcyA9IHJlcz8uc3RhdHVzIDwgNDAwO1xuXG4gICAgaWYgKHRoaXMuc3VjY2Vzcykge1xuICAgICAgdGhpcy5tZXNzYWdlID0gZ2V0dGV4dCgnRGV2aWNlIHJlZ2lzdHJhdGlvbiBjcmVhdGVkLicpO1xuICAgICAgdGhpcy5tb2RlbCA9IHt9O1xuICAgIH1cblxuICAgIGlmIChyZXMpIHtcbiAgICAgIGlmIChyZXMuc3RhdHVzID49IDQwMCAmJiByZXMuc3RhdHVzIDwgNTAwKSB7XG4gICAgICAgIHRoaXMubWVzc2FnZSA9IGdldHRleHQoJ0RldmljZSByZWdpc3RyYXRpb24gZmFpbGVkLicpO1xuICAgICAgfSBlbHNlIGlmIChyZXMuc3RhdHVzID49IDUwMCkge1xuICAgICAgICB0aGlzLm1lc3NhZ2UgPSBnZXR0ZXh0KCdFcnJvciBvY2N1cnJlZCB3aGlsZSBwcm9jZXNzaW5nIHRoZSB1cGxvYWRlZCBmaWxlLicpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1lc3NhZ2UgPSBnZXR0ZXh0KCdObyBpbnRlcm5ldCBjb25uZWN0aW9uLiBVbmFibGUgdG8gcmVhY2ggdGhlIG1pY3Jvc2VydmljZS4nKTtcbiAgICB9XG4gIH1cblxuICBnZXRGaWxlKG1vZGVsKSB7XG4gICAgY29uc3QgY3N2QnVsa0ZpbGUgPSAobW9kZWwgYXMgYW55KT8uY3N2QnVsa0ZpbGU7XG4gICAgcmV0dXJuIGNzdkJ1bGtGaWxlID8gY3N2QnVsa0ZpbGVbMF0/LmZpbGUgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb21wbGV0ZSgpIHtcbiAgICB0aGlzLnJlZ2lzdGVyRGV2aWNlU2VydmljZS5saXN0KCk7XG4gICAgdGhpcy5ic01vZGFsUmVmLmhpZGUoKTtcbiAgfVxuXG4gIGNhbmNlbCgpIHtcbiAgICB0aGlzLmJzTW9kYWxSZWYuaGlkZSgpO1xuICB9XG59XG4iLCI8Yzh5LW1vZGFsIFtoZWFkZXJDbGFzc2VzXT1cIidkaWFsb2ctaGVhZGVyJ1wiIFtjdXN0b21Gb290ZXJdPVwidHJ1ZVwiPlxuICA8bmctY29udGFpbmVyIGM4eS1tb2RhbC10aXRsZT5cbiAgICA8c3BhbiBjbGFzcz1cImM4eS1pY29uIGM4eS1pY29uLWRldmljZS1jb25uZWN0XCI+PC9zcGFuPlxuICAgIDxoNCBpZD1cIm1vZGFsLXRpdGxlXCI+e3sgdGl0bGUgfCB0cmFuc2xhdGUgfX08L2g0PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPGM4eS1zdGVwcGVyIFtoaWRlU3RlcFByb2dyZXNzXT1cInRydWVcIiBsaW5lYXIgY2xhc3M9XCJwLXQtMTZcIiBpZD1cIm1vZGFsLWJvZHlcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWxvYWRpbmdFcnJvclwiPlxuICAgICAgPGNkay1zdGVwPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic3RpY2t5LXRvcCBiZy1jb21wb25lbnQgc2VwYXJhdG9yLWJvdHRvbVwiPlxuICAgICAgICAgIDxwXG4gICAgICAgICAgICBjbGFzcz1cIlxuICAgICAgICAgICAgICBwLWwtMjQgcC1yLTI0IHAtdC0xNiBwLWItMTZcbiAgICAgICAgICAgICAgbS1iLTBcbiAgICAgICAgICAgICAgc2VwYXJhdG9yLWJvdHRvbVxuICAgICAgICAgICAgICB0ZXh0LTE2IHRleHQtbWVkaXVtIHRleHQtY2VudGVyXG4gICAgICAgICAgICAgIGJnLWNvbXBvbmVudFxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAgID5cbiAgICAgICAgICAgIFJlZ2lzdGVyIGRldmljZXMgaW4gYnVsa1xuICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8Yzh5LWZvcm0tZ3JvdXAgY2xhc3M9XCJwLTI0IHAtdC0xNiBwLWItOCBtLWItMFwiPlxuICAgICAgICAgICAgPGZvcm1seS1mb3JtIFtmb3JtXT1cImZvcm1cIiBbZmllbGRzXT1cInRlbXBsYXRlXCIgW21vZGVsXT1cIm1vZGVsXCI+PC9mb3JtbHktZm9ybT5cbiAgICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICpuZ0Zvcj1cImxldCBleGFtcGxlIG9mIGV4YW1wbGVzXCJcbiAgICAgICAgICBjbGFzcz1cImJnLWdyYXktd2hpdGUgc2VwYXJhdG9yLWJvdHRvbSBwLXQtMTYgcC1iLTE2IHAtbC0yNCBwLXItMjRcIlxuICAgICAgICA+XG4gICAgICAgICAgPHAgY2xhc3M9XCJtLWItOCB0ZXh0LW1lZGl1bVwiPlxuICAgICAgICAgICAge3sgZXhhbXBsZS50aXRsZSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8cCBjbGFzcz1cInNtYWxsIG0tYi04XCI+e3sgZXhhbXBsZS5kZXNjcmlwdGlvbiB8IHRyYW5zbGF0ZSB9fTwvcD5cbiAgICAgICAgICA8YVxuICAgICAgICAgICAgdGl0bGU9XCJ7eyAnRG93bmxvYWQgdGVtcGxhdGUnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IGJ0bi1zbVwiXG4gICAgICAgICAgICB0YXJnZXQ9XCJfc2VsZlwiXG4gICAgICAgICAgICBbaHJlZl09XCJleGFtcGxlLnVybFwiXG4gICAgICAgICAgICBkb3dubG9hZD1cInt7ICdFeGFtcGxlIGJ1bGsgcmVnaXN0cmF0aW9uIC0gdGVtcGxhdGUuY3N2JyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGkgYzh5SWNvbj1cImRvd25sb2FkXCI+PC9pPlxuICAgICAgICAgICAgPHNwYW4gdHJhbnNsYXRlPkRvd25sb2FkIHRlbXBsYXRlPC9zcGFuPlxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxjOHktc3RlcHBlci1idXR0b25zXG4gICAgICAgICAgY2xhc3M9XCJzdGlja3ktYm90dG9tIGQtYmxvY2sgcC10LTE2IHAtYi0xNiBzZXBhcmF0b3ItdG9wIGJnLWxldmVsLTBcIlxuICAgICAgICAgIFtzaG93QnV0dG9uc109XCJ7IGNhbmNlbDogdHJ1ZSwgbmV4dDogdHJ1ZSB9XCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZm9ybS5pbnZhbGlkXCJcbiAgICAgICAgICBbcGVuZGluZ109XCJwZW5kaW5nXCJcbiAgICAgICAgICAob25DYW5jZWwpPVwiY2FuY2VsKClcIlxuICAgICAgICAgIChvbk5leHQpPVwidXBsb2FkKClcIlxuICAgICAgICAgIFtsYWJlbHNdPVwieyBuZXh0OiAnVXBsb2FkJyB9XCJcbiAgICAgICAgPjwvYzh5LXN0ZXBwZXItYnV0dG9ucz5cbiAgICAgIDwvY2RrLXN0ZXA+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPGNkay1zdGVwIHN0YXRlPVwiZmluYWxcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJwLTI0XCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJzdWNjZXNzOyBlbHNlIGZhaWxcIj5cbiAgICAgICAgICA8Yzh5LW9wZXJhdGlvbi1yZXN1bHRcbiAgICAgICAgICAgIHRleHQ9XCJ7eyBtZXNzYWdlIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgIFtzaXplXT1cIjg0XCJcbiAgICAgICAgICAgIFt2ZXJ0aWNhbF09XCJ0cnVlXCJcbiAgICAgICAgICAgIHR5cGU9XCJzdWNjZXNzXCJcbiAgICAgICAgICAgIGNsYXNzPVwibGVhZFwiXG4gICAgICAgICAgICBkYXRhLWN5PVwic3VjY2Vzc1wiXG4gICAgICAgICAgPjwvYzh5LW9wZXJhdGlvbi1yZXN1bHQ+XG4gICAgICAgICAgPGM4eS1saXN0LWdyb3VwIGNsYXNzPVwic2VwYXJhdG9yLXRvcCBtLXQtMTZcIj5cbiAgICAgICAgICAgIDxjOHktbGk+XG4gICAgICAgICAgICAgIDxjOHktbGktaWNvbiBjbGFzcz1cInRleHQtc3VjY2Vzc1wiIFtpY29uXT1cIidjaGVjay1jaXJjbGUnXCI+PC9jOHktbGktaWNvbj5cbiAgICAgICAgICAgICAgPHAgdHJhbnNsYXRlPkZpbGUgc3VjY2Vzc2Z1bGx5IHVwbG9hZGVkLjwvcD5cbiAgICAgICAgICAgICAgPGM4eS1saS1jb2xsYXBzZT5cbiAgICAgICAgICAgICAgICA8cHJlPjxjb2RlPnt7IHJlc3VsdCB8IGpzb24gfX08L2NvZGU+PC9wcmU+XG4gICAgICAgICAgICAgIDwvYzh5LWxpLWNvbGxhcHNlPlxuICAgICAgICAgICAgPC9jOHktbGk+XG4gICAgICAgICAgPC9jOHktbGlzdC1ncm91cD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZmFpbD5cbiAgICAgICAgICA8Yzh5LW9wZXJhdGlvbi1yZXN1bHRcbiAgICAgICAgICAgIHRleHQ9XCJ7eyBtZXNzYWdlIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgIFtzaXplXT1cIjg0XCJcbiAgICAgICAgICAgIFt2ZXJ0aWNhbF09XCJ0cnVlXCJcbiAgICAgICAgICAgIHR5cGU9XCJlcnJvclwiXG4gICAgICAgICAgICBjbGFzcz1cImxlYWRcIlxuICAgICAgICAgICAgZGF0YS1jeT1cImVycm9yXCJcbiAgICAgICAgICA+PC9jOHktb3BlcmF0aW9uLXJlc3VsdD5cbiAgICAgICAgICA8Yzh5LWxpc3QtZ3JvdXAgKm5nSWY9XCJyZXN1bHRcIiBjbGFzcz1cInNlcGFyYXRvci10b3AgbS10LTE2XCI+XG4gICAgICAgICAgICA8Yzh5LWxpPlxuICAgICAgICAgICAgICA8Yzh5LWxpLWljb24gY2xhc3M9XCJ0ZXh0LWRhbmdlclwiIFtpY29uXT1cIidiYW4nXCI+PC9jOHktbGktaWNvbj5cbiAgICAgICAgICAgICAgPHAgdHJhbnNsYXRlPkJ1bGsgb3BlcmF0aW9uIGZhaWxlZC48L3A+XG4gICAgICAgICAgICAgIDxjOHktbGktY29sbGFwc2U+XG4gICAgICAgICAgICAgICAgPHByZT48Y29kZT57eyByZXN1bHQgfCBqc29uIH19PC9jb2RlPjwvcHJlPlxuICAgICAgICAgICAgICA8L2M4eS1saS1jb2xsYXBzZT5cbiAgICAgICAgICAgIDwvYzh5LWxpPlxuICAgICAgICAgIDwvYzh5LWxpc3QtZ3JvdXA+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxjOHktc3RlcHBlci1idXR0b25zXG4gICAgICAgIGNsYXNzPVwic3RpY2t5LWJvdHRvbSBkLWJsb2NrIHAtdC0xNiBwLWItMTYgc2VwYXJhdG9yLXRvcCBiZy1jb21wb25lbnRcIlxuICAgICAgICBbc2hvd0J1dHRvbnNdPVwieyBuZXh0OiB0cnVlIH1cIlxuICAgICAgICAob25OZXh0KT1cImNvbXBsZXRlKClcIlxuICAgICAgICBbbGFiZWxzXT1cInsgbmV4dDogc3VjY2VzcyA/ICdDb21wbGV0ZScgOiAnQ2FuY2VsJyB9XCJcbiAgICAgID48L2M4eS1zdGVwcGVyLWJ1dHRvbnM+XG4gICAgPC9jZGstc3RlcD5cbiAgPC9jOHktc3RlcHBlcj5cbjwvYzh5LW1vZGFsPlxuIl19
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaWJsZS1idWxrLWRldmljZS1yZWdpc3RyYXRpb24tbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcmVnaXN0ZXItZGV2aWNlL2V4dGVuc2libGUvYnVsay9leHRlbnNpYmxlLWJ1bGstZGV2aWNlLXJlZ2lzdHJhdGlvbi1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9yZWdpc3Rlci1kZXZpY2UvZXh0ZW5zaWJsZS9idWxrL2V4dGVuc2libGUtYnVsay1kZXZpY2UtcmVnaXN0cmF0aW9uLW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVEzQyxPQUFPLEVBQUUsdUNBQXVDLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN4RyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7OztBQUdqRCxNQUFNLFVBQVUsR0FBVztJQUN6QixPQUFPLEVBQUUsOENBQThDO0lBQ3ZELElBQUksRUFBRSxRQUFRO0lBQ2QsVUFBVSxFQUFFO1FBQ1YsV0FBVyxFQUFFO1lBQ1gsSUFBSSxFQUFFLFFBQVE7WUFDZCxLQUFLLEVBQUUsT0FBTyxDQUFDLGlCQUFpQixDQUFDO1lBQ2pDLFdBQVcsRUFBRSxPQUFPLENBQ2xCLHVHQUF1RyxDQUN4RztZQUNELGVBQWUsRUFBRSxRQUFRO1lBQ3pCLGdCQUFnQixFQUFFLEtBQUs7U0FDeEI7S0FDRjtJQUNELFFBQVEsRUFBRSxDQUFD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QU8sQ0FBQywyREFBMkQsQ0FBQyxDQUFDO1NBQ3JGO0lBQ0gsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFLO1FBQ1gsTUFBTSxXQUFXLEdBQUksS0FBYSxFQUFFLFdBQVcsQ0FBQztRQUNoRCxPQUFPLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3hELENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pCLENBQUM7OzJJQXRGVSw4Q0FBOEM7K0hBQTlDLDhDQUE4QywrSEFDOUMsVUFBVSw4REN0Q3ZCLDh6SEFzR0E7MkZEakVhLDhDQUE4QztrQkFKMUQsU0FBUzsrQkFDRSxnREFBZ0Q7dU5BSWpCLE9BQU87c0JBQS9DLFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEM4eUpTT05TY2hlbWEsIEM4eVN0ZXBwZXIsIGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIEJ1bGtEZXNjcmlwdGlvbixcbiAgQnVsa0ZhaWxlZFJlc3VsdCxcbiAgQnVsa0ZpbGVFeGFtcGxlLFxuICBCdWxrUmVzdWx0XG59IGZyb20gJy4vZXh0ZW5zaWJsZS1idWxrLWRldmljZS1yZWdpc3RyYXRpb24ubW9kZWwnO1xuaW1wb3J0IHsgRm9ybWx5RmllbGRDb25maWcgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IEJ1bGtFeHRlbnNpYmxlRGV2aWNlUmVnaXN0cmF0aW9uU2VydmljZSB9IGZyb20gJy4vZXh0ZW5zaWJsZS1idWxrLWRldmljZS1yZWdpc3RyYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBSZWdpc3RlckRldmljZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9yZWdpc3Rlci1kZXZpY2Uuc2VydmljZSc7XG5pbXBvcnQgeyBCc01vZGFsUmVmIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5pbXBvcnQgeyBJUmVzdWx0IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuXG5jb25zdCBidWxrU2NoZW1hOiBvYmplY3QgPSB7XG4gICRzY2hlbWE6ICdodHRwczovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC8yMDE5LTA5L3NjaGVtYScsXG4gIHR5cGU6ICdvYmplY3QnLFxuICBwcm9wZXJ0aWVzOiB7XG4gICAgY3N2QnVsa0ZpbGU6IHtcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgdGl0bGU6IGdldHRleHQoJ0NTViBmaWxlIHVwbG9hZCcpLFxuICAgICAgZGVzY3JpcHRpb246IGdldHRleHQoXG4gICAgICAgICdZb3UgY2FuIHVzZSBmaWxlIHVwbG9hZCBjb21wb25lbnQgdG8gbGV0IHVzZXJzIHNlbmQgZmlsZXMuIFRoaXMgaW5wdXQgYWNjZXB0cyBvbmx5IGEgc2luZ2xlIENTViBmaWxlLidcbiAgICAgICksXG4gICAgICBjb250ZW50RW5jb2Rpbmc6ICdiYXNlNjQnLFxuICAgICAgY29udGVudE1lZGlhVHlwZTogJ2NzdidcbiAgICB9XG4gIH0sXG4gIHJlcXVpcmVkOiBbJ2NzdkJ1bGtGaWxlJ10sXG4gIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZVxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZXh0ZW5zaWJsZS1kZXZpY2UtcmVnaXN0cmF0aW9uLW1vZGFsLWNvbXBvbmVudCcsXG4gIHRlbXBsYXRlVXJsOiAnZXh0ZW5zaWJsZS1idWxrLWRldmljZS1yZWdpc3RyYXRpb24tbW9kYWwuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEV4dGVuc2libGVCdWxrRGV2aWNlUmVnaXN0cmF0aW9uTW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBAVmlld0NoaWxkKEM4eVN0ZXBwZXIsIHsgc3RhdGljOiB0cnVlIH0pIHN0ZXBwZXI6IEM4eVN0ZXBwZXI7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGV4YW1wbGVzOiBCdWxrRmlsZUV4YW1wbGVbXTtcbiAgbWVzc2FnZTogc3RyaW5nO1xuICBzdWNjZXNzOiBib29sZWFuO1xuICBsb2FkaW5nRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcGVuZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBjb250ZXh0UGF0aDogc3RyaW5nO1xuICByZXN1bHQ6IEJ1bGtSZXN1bHQgfCBCdWxrRmFpbGVkUmVzdWx0O1xuICBmb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XG4gIG1vZGVsID0ge307XG4gIHRlbXBsYXRlOiBGb3JtbHlGaWVsZENvbmZpZ1tdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUganNvbnNjaGVtYTogQzh5SlNPTlNjaGVtYSxcbiAgICBwcml2YXRlIGJ1bGtFeHRlbnNpYmxlRGV2aWNlUmVnaXN0cmF0aW9uU2VydmljZTogQnVsa0V4dGVuc2libGVEZXZpY2VSZWdpc3RyYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVnaXN0ZXJEZXZpY2VTZXJ2aWNlOiBSZWdpc3RlckRldmljZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBic01vZGFsUmVmOiBCc01vZGFsUmVmXG4gICkge31cblxuICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICBjb25zdCB7IHRpdGxlLCBleGFtcGxlRmlsZVVybHMgfTogQnVsa0Rlc2NyaXB0aW9uID1cbiAgICAgIGF3YWl0IHRoaXMuYnVsa0V4dGVuc2libGVEZXZpY2VSZWdpc3RyYXRpb25TZXJ2aWNlXG4gICAgICAgIC5nZXRCdWxrRGVzY3JpcHRpb24odGhpcy5jb250ZXh0UGF0aClcbiAgICAgICAgLmNhdGNoKGVycm9yID0+IHtcbiAgICAgICAgICB0aGlzLm1lc3NhZ2UgPSBlcnJvci5tZXNzYWdlO1xuICAgICAgICAgIHRoaXMubG9hZGluZ0Vycm9yID0gdHJ1ZTtcblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0aXRsZTogZ2V0dGV4dCgnRXJyb3InKSxcbiAgICAgICAgICAgIGV4YW1wbGVGaWxlVXJsczogW11cbiAgICAgICAgICB9O1xuICAgICAgICB9KTtcblxuICAgIHRoaXMudGl0bGUgPSB0aXRsZTtcbiAgICB0aGlzLnRlbXBsYXRlID0gW3RoaXMuanNvbnNjaGVtYS50b0ZpZWxkQ29uZmlnKGJ1bGtTY2hlbWEpXTtcbiAgICB0aGlzLmV4YW1wbGVzID0gZXhhbXBsZUZpbGVVcmxzO1xuICB9XG5cbiAgYXN5bmMgdXBsb2FkKCkge1xuICAgIHRoaXMucGVuZGluZyA9IHRydWU7XG4gICAgY29uc3QgeyByZXMsIGRhdGEgfTogSVJlc3VsdDxCdWxrUmVzdWx0PiA9IGF3YWl0IHRoaXMuYnVsa0V4dGVuc2libGVEZXZpY2VSZWdpc3RyYXRpb25TZXJ2aWNlXG4gICAgICAudXBsb2FkKHRoaXMuZ2V0RmlsZSh0aGlzLm1vZGVsKSwgdGhpcy5jb250ZXh0UGF0aClcbiAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcmVzOiB1bmRlZmluZWQsXG4gICAgICAgICAgZGF0YTogdW5kZWZpbmVkXG4gICAgICAgIH07XG4gICAgICB9KVxuICAgICAgLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICB0aGlzLnBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zdGVwcGVyLm5leHQoKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5yZXN1bHQgPSBkYXRhO1xuICAgIHRoaXMuc3VjY2VzcyA9IHJlcz8uc3RhdHVzIDwgNDAwO1xuXG4gICAgaWYgKHRoaXMuc3VjY2Vzcykge1xuICAgICAgdGhpcy5tZXNzYWdlID0gZ2V0dGV4dCgnRGV2aWNlIHJlZ2lzdHJhdGlvbiBjcmVhdGVkLicpO1xuICAgICAgdGhpcy5tb2RlbCA9IHt9O1xuICAgIH1cblxuICAgIGlmIChyZXMpIHtcbiAgICAgIGlmIChyZXMuc3RhdHVzID49IDQwMCAmJiByZXMuc3RhdHVzIDwgNTAwKSB7XG4gICAgICAgIHRoaXMubWVzc2FnZSA9IGdldHRleHQoJ0RldmljZSByZWdpc3RyYXRpb24gZmFpbGVkLicpO1xuICAgICAgfSBlbHNlIGlmIChyZXMuc3RhdHVzID49IDUwMCkge1xuICAgICAgICB0aGlzLm1lc3NhZ2UgPSBnZXR0ZXh0KCdFcnJvciBvY2N1cnJlZCB3aGlsZSBwcm9jZXNzaW5nIHRoZSB1cGxvYWRlZCBmaWxlLicpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1lc3NhZ2UgPSBnZXR0ZXh0KCdObyBpbnRlcm5ldCBjb25uZWN0aW9uLiBVbmFibGUgdG8gcmVhY2ggdGhlIG1pY3Jvc2VydmljZS4nKTtcbiAgICB9XG4gIH1cblxuICBnZXRGaWxlKG1vZGVsKSB7XG4gICAgY29uc3QgY3N2QnVsa0ZpbGUgPSAobW9kZWwgYXMgYW55KT8uY3N2QnVsa0ZpbGU7XG4gICAgcmV0dXJuIGNzdkJ1bGtGaWxlID8gY3N2QnVsa0ZpbGVbMF0/LmZpbGUgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb21wbGV0ZSgpIHtcbiAgICB0aGlzLnJlZ2lzdGVyRGV2aWNlU2VydmljZS5saXN0KCk7XG4gICAgdGhpcy5ic01vZGFsUmVmLmhpZGUoKTtcbiAgfVxuXG4gIGNhbmNlbCgpIHtcbiAgICB0aGlzLmJzTW9kYWxSZWYuaGlkZSgpO1xuICB9XG59XG4iLCI8Yzh5LW1vZGFsXG4gIFt0aXRsZV09XCJ0aXRsZSB8IHRyYW5zbGF0ZVwiXG4gIFtoZWFkZXJDbGFzc2VzXT1cIidkaWFsb2ctaGVhZGVyJ1wiXG4gIFtjdXN0b21Gb290ZXJdPVwidHJ1ZVwiXG4+XG4gIDxuZy1jb250YWluZXIgYzh5LW1vZGFsLXRpdGxlPlxuICAgIDxpIGM4eUljb249XCJjOHktZGV2aWNlLWNvbm5lY3RcIj48L2k+XG4gIDwvbmctY29udGFpbmVyPlxuICA8Yzh5LXN0ZXBwZXIgW2hpZGVTdGVwUHJvZ3Jlc3NdPVwidHJ1ZVwiIGxpbmVhciBjbGFzcz1cInAtdC0xNlwiIGM4eS1tb2RhbC1ib2R5PlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9hZGluZ0Vycm9yXCI+XG4gICAgICA8Y2RrLXN0ZXA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdGlja3ktdG9wIGJnLWNvbXBvbmVudCBzZXBhcmF0b3ItYm90dG9tXCI+XG4gICAgICAgICAgPHBcbiAgICAgICAgICAgIGNsYXNzPVwicC1sLTI0IHAtci0yNCBwLXQtMTYgcC1iLTE2IG0tYi0wIHNlcGFyYXRvci1ib3R0b20gdGV4dC0xNiB0ZXh0LW1lZGl1bSB0ZXh0LWNlbnRlciBiZy1jb21wb25lbnRcIlxuICAgICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgICAgPlxuICAgICAgICAgICAgUmVnaXN0ZXIgZGV2aWNlcyBpbiBidWxrXG4gICAgICAgICAgPC9wPlxuICAgICAgICAgIDxjOHktZm9ybS1ncm91cCBjbGFzcz1cInAtMjQgcC10LTE2IHAtYi04IG0tYi0wXCI+XG4gICAgICAgICAgICA8Zm9ybWx5LWZvcm0gW2Zvcm1dPVwiZm9ybVwiIFtmaWVsZHNdPVwidGVtcGxhdGVcIiBbbW9kZWxdPVwibW9kZWxcIj48L2Zvcm1seS1mb3JtPlxuICAgICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgKm5nRm9yPVwibGV0IGV4YW1wbGUgb2YgZXhhbXBsZXNcIlxuICAgICAgICAgIGNsYXNzPVwiYmctZ3JheS13aGl0ZSBzZXBhcmF0b3ItYm90dG9tIHAtdC0xNiBwLWItMTYgcC1sLTI0IHAtci0yNFwiXG4gICAgICAgID5cbiAgICAgICAgICA8cCBjbGFzcz1cIm0tYi04IHRleHQtbWVkaXVtXCI+XG4gICAgICAgICAgICB7eyBleGFtcGxlLnRpdGxlIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9wPlxuICAgICAgICAgIDxwIGNsYXNzPVwic21hbGwgbS1iLThcIj57eyBleGFtcGxlLmRlc2NyaXB0aW9uIHwgdHJhbnNsYXRlIH19PC9wPlxuICAgICAgICAgIDxhXG4gICAgICAgICAgICB0aXRsZT1cInt7ICdEb3dubG9hZCB0ZW1wbGF0ZScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgYnRuLXNtXCJcbiAgICAgICAgICAgIHRhcmdldD1cIl9zZWxmXCJcbiAgICAgICAgICAgIFtocmVmXT1cImV4YW1wbGUudXJsXCJcbiAgICAgICAgICAgIGRvd25sb2FkPVwie3sgJ0V4YW1wbGUgYnVsayByZWdpc3RyYXRpb24gLSB0ZW1wbGF0ZS5jc3YnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aSBjOHlJY29uPVwiZG93bmxvYWRcIj48L2k+XG4gICAgICAgICAgICA8c3BhbiB0cmFuc2xhdGU+RG93bmxvYWQgdGVtcGxhdGU8L3NwYW4+XG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGM4eS1zdGVwcGVyLWJ1dHRvbnNcbiAgICAgICAgICBjbGFzcz1cInN0aWNreS1ib3R0b20gZC1ibG9jayBwLXQtMTYgcC1iLTE2IHNlcGFyYXRvci10b3AgYmctbGV2ZWwtMFwiXG4gICAgICAgICAgW3Nob3dCdXR0b25zXT1cInsgY2FuY2VsOiB0cnVlLCBuZXh0OiB0cnVlIH1cIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJmb3JtLmludmFsaWRcIlxuICAgICAgICAgIFtwZW5kaW5nXT1cInBlbmRpbmdcIlxuICAgICAgICAgIChvbkNhbmNlbCk9XCJjYW5jZWwoKVwiXG4gICAgICAgICAgKG9uTmV4dCk9XCJ1cGxvYWQoKVwiXG4gICAgICAgICAgW2xhYmVsc109XCJ7IG5leHQ6ICdVcGxvYWQnIH1cIlxuICAgICAgICA+PC9jOHktc3RlcHBlci1idXR0b25zPlxuICAgICAgPC9jZGstc3RlcD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8Y2RrLXN0ZXAgc3RhdGU9XCJmaW5hbFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInAtMjRcIj5cbiAgICAgICAgPGRpdiAqbmdJZj1cInN1Y2Nlc3M7IGVsc2UgZmFpbFwiPlxuICAgICAgICAgIDxjOHktb3BlcmF0aW9uLXJlc3VsdFxuICAgICAgICAgICAgdGV4dD1cInt7IG1lc3NhZ2UgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgW3NpemVdPVwiODRcIlxuICAgICAgICAgICAgW3ZlcnRpY2FsXT1cInRydWVcIlxuICAgICAgICAgICAgdHlwZT1cInN1Y2Nlc3NcIlxuICAgICAgICAgICAgY2xhc3M9XCJsZWFkXCJcbiAgICAgICAgICAgIGRhdGEtY3k9XCJzdWNjZXNzXCJcbiAgICAgICAgICA+PC9jOHktb3BlcmF0aW9uLXJlc3VsdD5cbiAgICAgICAgICA8Yzh5LWxpc3QtZ3JvdXAgY2xhc3M9XCJzZXBhcmF0b3ItdG9wIG0tdC0xNlwiPlxuICAgICAgICAgICAgPGM4eS1saT5cbiAgICAgICAgICAgICAgPGM4eS1saS1pY29uIGNsYXNzPVwidGV4dC1zdWNjZXNzXCIgW2ljb25dPVwiJ2NoZWNrLWNpcmNsZSdcIj48L2M4eS1saS1pY29uPlxuICAgICAgICAgICAgICA8cCB0cmFuc2xhdGU+RmlsZSBzdWNjZXNzZnVsbHkgdXBsb2FkZWQuPC9wPlxuICAgICAgICAgICAgICA8Yzh5LWxpLWNvbGxhcHNlPlxuICAgICAgICAgICAgICAgIDxwcmU+PGNvZGU+e3sgcmVzdWx0IHwganNvbiB9fTwvY29kZT48L3ByZT5cbiAgICAgICAgICAgICAgPC9jOHktbGktY29sbGFwc2U+XG4gICAgICAgICAgICA8L2M4eS1saT5cbiAgICAgICAgICA8L2M4eS1saXN0LWdyb3VwPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNmYWlsPlxuICAgICAgICAgIDxjOHktb3BlcmF0aW9uLXJlc3VsdFxuICAgICAgICAgICAgdGV4dD1cInt7IG1lc3NhZ2UgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgW3NpemVdPVwiODRcIlxuICAgICAgICAgICAgW3ZlcnRpY2FsXT1cInRydWVcIlxuICAgICAgICAgICAgdHlwZT1cImVycm9yXCJcbiAgICAgICAgICAgIGNsYXNzPVwibGVhZFwiXG4gICAgICAgICAgICBkYXRhLWN5PVwiZXJyb3JcIlxuICAgICAgICAgID48L2M4eS1vcGVyYXRpb24tcmVzdWx0PlxuICAgICAgICAgIDxjOHktbGlzdC1ncm91cCAqbmdJZj1cInJlc3VsdFwiIGNsYXNzPVwic2VwYXJhdG9yLXRvcCBtLXQtMTZcIj5cbiAgICAgICAgICAgIDxjOHktbGk+XG4gICAgICAgICAgICAgIDxjOHktbGktaWNvbiBjbGFzcz1cInRleHQtZGFuZ2VyXCIgW2ljb25dPVwiJ2JhbidcIj48L2M4eS1saS1pY29uPlxuICAgICAgICAgICAgICA8cCB0cmFuc2xhdGU+QnVsayBvcGVyYXRpb24gZmFpbGVkLjwvcD5cbiAgICAgICAgICAgICAgPGM4eS1saS1jb2xsYXBzZT5cbiAgICAgICAgICAgICAgICA8cHJlPjxjb2RlPnt7IHJlc3VsdCB8IGpzb24gfX08L2NvZGU+PC9wcmU+XG4gICAgICAgICAgICAgIDwvYzh5LWxpLWNvbGxhcHNlPlxuICAgICAgICAgICAgPC9jOHktbGk+XG4gICAgICAgICAgPC9jOHktbGlzdC1ncm91cD5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgICAgPGM4eS1zdGVwcGVyLWJ1dHRvbnNcbiAgICAgICAgY2xhc3M9XCJzdGlja3ktYm90dG9tIGQtYmxvY2sgcC10LTE2IHAtYi0xNiBzZXBhcmF0b3ItdG9wIGJnLWNvbXBvbmVudFwiXG4gICAgICAgIFtzaG93QnV0dG9uc109XCJ7IG5leHQ6IHRydWUgfVwiXG4gICAgICAgIChvbk5leHQpPVwiY29tcGxldGUoKVwiXG4gICAgICAgIFtsYWJlbHNdPVwieyBuZXh0OiBzdWNjZXNzID8gJ0NvbXBsZXRlJyA6ICdDYW5jZWwnIH1cIlxuICAgICAgPjwvYzh5LXN0ZXBwZXItYnV0dG9ucz5cbiAgICA8L2Nkay1zdGVwPlxuICA8L2M4eS1zdGVwcGVyPlxuPC9jOHktbW9kYWw+XG4iXX0=
@@ -33,9 +33,9 @@ export class ExtensibleDeviceRegistrationModalComponent {
33
33
  }
34
34
  }
35
35
  ExtensibleDeviceRegistrationModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ExtensibleDeviceRegistrationModalComponent, deps: [{ token: i1.BsModalRef }, { token: i2.C8yJSONSchema }, { token: i3.ExtensibleDeviceRegistrationService }], target: i0.ɵɵFactoryTarget.Component });
36
- ExtensibleDeviceRegistrationModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ExtensibleDeviceRegistrationModalComponent, selector: "extensible-device-registration-modal", ngImport: i0, template: "<c8y-modal [headerClasses]=\"'dialog-header'\" [customFooter]=\"true\">\n <ng-container c8y-modal-title>\n <span class=\"c8y-icon c8y-icon-device-connect\"></span>\n <h4 id=\"modal-title\">{{ title | translate }}</h4>\n </ng-container>\n <ng-container *ngIf=\"pages as steps; else loadingOrError\">\n <c8y-extensible-device-registration-stepper\n id=\"modal-body\"\n [steps]=\"steps\"\n [labels]=\"labels\"\n [contextPath]=\"contextPath\"\n ></c8y-extensible-device-registration-stepper>\n </ng-container>\n <ng-template #loadingOrError>\n <ng-container *ngIf=\"loadingErrorMessage; else loading\">\n <c8y-operation-result\n text=\"{{ loadingErrorMessage | translate }}\"\n [size]=\"84\"\n [vertical]=\"true\"\n type=\"error\"\n class=\"lead text-regular\"\n data-cy=\"error\"\n ></c8y-operation-result>\n <div class=\"modal-footer\">\n <button\n title=\"{{ 'Close' | translate }}\"\n (click)=\"bsModalRef.hide()\"\n type=\"button\"\n class=\"btn btn-default\"\n >\n {{ 'Close' | translate }}\n </button>\n </div>\n </ng-container>\n <ng-template #loading>\n <div class=\"modal-header modal-header-info text-center\">\n <c8y-progress-bar\n [message]=\"'Loading the registration form definition\u2026' | translate\"\n class=\"text-center\"\n ></c8y-progress-bar>\n </div>\n </ng-template>\n </ng-template>\n</c8y-modal>\n", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.ProgressBarComponent, selector: "c8y-progress-bar", inputs: ["message", "progress"] }, { kind: "component", type: i2.OperationResultComponent, selector: "c8y-operation-result", inputs: ["text", "vertical", "size", "type"] }, { kind: "component", type: i2.ModalComponent, selector: "c8y-modal", inputs: ["disabled", "close", "dismiss", "title", "body", "customFooter", "headerClasses", "labels"], outputs: ["onDismiss", "onClose"] }, { kind: "component", type: i5.ExtensibleDeviceRegistrationStepperComponent, selector: "c8y-extensible-device-registration-stepper", inputs: ["contextPath", "labels", "steps"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }] });
36
+ ExtensibleDeviceRegistrationModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ExtensibleDeviceRegistrationModalComponent, selector: "extensible-device-registration-modal", ngImport: i0, template: "<c8y-modal [title]=\"title | translate\" [headerClasses]=\"'dialog-header'\" [customFooter]=\"true\">\n <ng-container c8y-modal-title>\n <span class=\"c8y-icon c8y-icon-device-connect\"></span>\n </ng-container>\n <ng-container *ngIf=\"pages as steps; else loadingOrError\">\n <c8y-extensible-device-registration-stepper\n c8y-modal-body\n [steps]=\"steps\"\n [labels]=\"labels\"\n [contextPath]=\"contextPath\"\n ></c8y-extensible-device-registration-stepper>\n </ng-container>\n <ng-template #loadingOrError>\n <ng-container *ngIf=\"loadingErrorMessage; else loading\">\n <c8y-operation-result\n text=\"{{ loadingErrorMessage | translate }}\"\n [size]=\"84\"\n [vertical]=\"true\"\n type=\"error\"\n class=\"lead text-regular\"\n data-cy=\"error\"\n ></c8y-operation-result>\n <div class=\"modal-footer\">\n <button\n title=\"{{ 'Close' | translate }}\"\n (click)=\"bsModalRef.hide()\"\n type=\"button\"\n class=\"btn btn-default\"\n >\n {{ 'Close' | translate }}\n </button>\n </div>\n </ng-container>\n <ng-template #loading>\n <div class=\"modal-header modal-header-info text-center\">\n <c8y-progress-bar\n [message]=\"'Loading the registration form definition\u2026' | translate\"\n class=\"text-center\"\n ></c8y-progress-bar>\n </div>\n </ng-template>\n </ng-template>\n</c8y-modal>\n", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.ProgressBarComponent, selector: "c8y-progress-bar", inputs: ["message", "progress"] }, { kind: "component", type: i2.OperationResultComponent, selector: "c8y-operation-result", inputs: ["text", "vertical", "size", "type"] }, { kind: "component", type: i2.ModalComponent, selector: "c8y-modal", inputs: ["disabled", "close", "dismiss", "title", "body", "customFooter", "headerClasses", "labels"], outputs: ["onDismiss", "onClose"] }, { kind: "component", type: i5.ExtensibleDeviceRegistrationStepperComponent, selector: "c8y-extensible-device-registration-stepper", inputs: ["contextPath", "labels", "steps"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }] });
37
37
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ExtensibleDeviceRegistrationModalComponent, decorators: [{
38
38
  type: Component,
39
- args: [{ selector: 'extensible-device-registration-modal', template: "<c8y-modal [headerClasses]=\"'dialog-header'\" [customFooter]=\"true\">\n <ng-container c8y-modal-title>\n <span class=\"c8y-icon c8y-icon-device-connect\"></span>\n <h4 id=\"modal-title\">{{ title | translate }}</h4>\n </ng-container>\n <ng-container *ngIf=\"pages as steps; else loadingOrError\">\n <c8y-extensible-device-registration-stepper\n id=\"modal-body\"\n [steps]=\"steps\"\n [labels]=\"labels\"\n [contextPath]=\"contextPath\"\n ></c8y-extensible-device-registration-stepper>\n </ng-container>\n <ng-template #loadingOrError>\n <ng-container *ngIf=\"loadingErrorMessage; else loading\">\n <c8y-operation-result\n text=\"{{ loadingErrorMessage | translate }}\"\n [size]=\"84\"\n [vertical]=\"true\"\n type=\"error\"\n class=\"lead text-regular\"\n data-cy=\"error\"\n ></c8y-operation-result>\n <div class=\"modal-footer\">\n <button\n title=\"{{ 'Close' | translate }}\"\n (click)=\"bsModalRef.hide()\"\n type=\"button\"\n class=\"btn btn-default\"\n >\n {{ 'Close' | translate }}\n </button>\n </div>\n </ng-container>\n <ng-template #loading>\n <div class=\"modal-header modal-header-info text-center\">\n <c8y-progress-bar\n [message]=\"'Loading the registration form definition\u2026' | translate\"\n class=\"text-center\"\n ></c8y-progress-bar>\n </div>\n </ng-template>\n </ng-template>\n</c8y-modal>\n" }]
39
+ args: [{ selector: 'extensible-device-registration-modal', template: "<c8y-modal [title]=\"title | translate\" [headerClasses]=\"'dialog-header'\" [customFooter]=\"true\">\n <ng-container c8y-modal-title>\n <span class=\"c8y-icon c8y-icon-device-connect\"></span>\n </ng-container>\n <ng-container *ngIf=\"pages as steps; else loadingOrError\">\n <c8y-extensible-device-registration-stepper\n c8y-modal-body\n [steps]=\"steps\"\n [labels]=\"labels\"\n [contextPath]=\"contextPath\"\n ></c8y-extensible-device-registration-stepper>\n </ng-container>\n <ng-template #loadingOrError>\n <ng-container *ngIf=\"loadingErrorMessage; else loading\">\n <c8y-operation-result\n text=\"{{ loadingErrorMessage | translate }}\"\n [size]=\"84\"\n [vertical]=\"true\"\n type=\"error\"\n class=\"lead text-regular\"\n data-cy=\"error\"\n ></c8y-operation-result>\n <div class=\"modal-footer\">\n <button\n title=\"{{ 'Close' | translate }}\"\n (click)=\"bsModalRef.hide()\"\n type=\"button\"\n class=\"btn btn-default\"\n >\n {{ 'Close' | translate }}\n </button>\n </div>\n </ng-container>\n <ng-template #loading>\n <div class=\"modal-header modal-header-info text-center\">\n <c8y-progress-bar\n [message]=\"'Loading the registration form definition\u2026' | translate\"\n class=\"text-center\"\n ></c8y-progress-bar>\n </div>\n </ng-template>\n </ng-template>\n</c8y-modal>\n" }]
40
40
  }], ctorParameters: function () { return [{ type: i1.BsModalRef }, { type: i2.C8yJSONSchema }, { type: i3.ExtensibleDeviceRegistrationService }]; } });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaWJsZS1kZXZpY2UtcmVnaXN0cmF0aW9uLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3JlZ2lzdGVyLWRldmljZS9leHRlbnNpYmxlL3NpbmdsZS9leHRlbnNpYmxlLWRldmljZS1yZWdpc3RyYXRpb24tbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcmVnaXN0ZXItZGV2aWNlL2V4dGVuc2libGUvc2luZ2xlL2V4dGVuc2libGUtZGV2aWNlLXJlZ2lzdHJhdGlvbi1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFJL0YsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7O0FBTWpELE1BQU0sT0FBTywwQ0FBMEM7SUFPckQsWUFDUyxVQUFzQixFQUNyQixVQUF5QixFQUN6QixtQkFBd0Q7UUFGekQsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUNyQixlQUFVLEdBQVYsVUFBVSxDQUFlO1FBQ3pCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUM7UUFObEUsV0FBTSxHQUFhLEVBQUUsQ0FBQztJQU9uQixDQUFDO0lBRUosS0FBSyxDQUFDLFFBQVE7UUFDWixNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUF1QyxNQUFNLElBQUksQ0FBQyxtQkFBbUI7YUFDeEYsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7YUFDM0IsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2IsSUFBSSxDQUFDLG1CQUFtQjtnQkFDdEIsS0FBSyxFQUFFLE9BQU8sSUFBSSxPQUFPLENBQUMsdURBQXVELENBQUMsQ0FBQztZQUNyRixPQUFPO2dCQUNMLEtBQUssRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDO2FBQ3hCLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUNMLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQWlCLEVBQUUsRUFBRTtZQUM1QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0IsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBc0IsQ0FBQyxDQUFDO1FBQ3BFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7dUlBNUJVLDBDQUEwQzsySEFBMUMsMENBQTBDLDRFQ1p2RCxzZ0RBNENBOzJGRGhDYSwwQ0FBMEM7a0JBSnRELFNBQVM7K0JBQ0Usc0NBQXNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEM4eUpTT05TY2hlbWEsIGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IEV4dGVuc2libGVEZXZpY2VSZWdpc3RyYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9leHRlbnNpYmxlLWRldmljZS1yZWdpc3RyYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBFeHRlbnNpYmxlRGV2aWNlUmVnaXN0cmF0aW9uU2NoZW1hIH0gZnJvbSAnLi9leHRlbnNpYmxlLWRldmljZS1yZWdpc3RyYXRpb24ubW9kZWwnO1xuaW1wb3J0IHsgSlNPTlNjaGVtYTcgfSBmcm9tICdqc29uLXNjaGVtYSc7XG5pbXBvcnQgeyBGb3JtbHlGaWVsZENvbmZpZyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgQnNNb2RhbFJlZiB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdleHRlbnNpYmxlLWRldmljZS1yZWdpc3RyYXRpb24tbW9kYWwnLFxuICB0ZW1wbGF0ZVVybDogJ2V4dGVuc2libGUtZGV2aWNlLXJlZ2lzdHJhdGlvbi1tb2RhbC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgRXh0ZW5zaWJsZURldmljZVJlZ2lzdHJhdGlvbk1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgdGl0bGU6IHN0cmluZztcbiAgbG9hZGluZ0Vycm9yTWVzc2FnZTogc3RyaW5nO1xuICBwYWdlczogRm9ybWx5RmllbGRDb25maWdbXVtdO1xuICBsYWJlbHM6IHN0cmluZ1tdID0gW107XG4gIGNvbnRleHRQYXRoOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGJzTW9kYWxSZWY6IEJzTW9kYWxSZWYsXG4gICAgcHJpdmF0ZSBqc29uc2NoZW1hOiBDOHlKU09OU2NoZW1hLFxuICAgIHByaXZhdGUgcmVnaXN0cmF0aW9uU2VydmljZTogRXh0ZW5zaWJsZURldmljZVJlZ2lzdHJhdGlvblNlcnZpY2VcbiAgKSB7fVxuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIGNvbnN0IHsgdGl0bGUsIHBhZ2VzIH06IEV4dGVuc2libGVEZXZpY2VSZWdpc3RyYXRpb25TY2hlbWEgPSBhd2FpdCB0aGlzLnJlZ2lzdHJhdGlvblNlcnZpY2VcbiAgICAgIC5nZXRTY2hlbWEodGhpcy5jb250ZXh0UGF0aClcbiAgICAgIC5jYXRjaChlcnJvciA9PiB7XG4gICAgICAgIHRoaXMubG9hZGluZ0Vycm9yTWVzc2FnZSA9XG4gICAgICAgICAgZXJyb3I/Lm1lc3NhZ2UgfHwgZ2V0dGV4dCgnQ2Fubm90IGZldGNoIGEgZm9ybSBkZWZpbml0aW9uIGZyb20gdGhlIG1pY3Jvc2VydmljZS4nKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB0aXRsZTogZ2V0dGV4dCgnRXJyb3InKVxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgdGhpcy50aXRsZSA9IHRpdGxlO1xuICAgIHRoaXMucGFnZXMgPSBwYWdlcz8ubWFwKChzdGVwOiBKU09OU2NoZW1hNykgPT4ge1xuICAgICAgdGhpcy5sYWJlbHMucHVzaChzdGVwLnRpdGxlKTtcbiAgICAgIHJldHVybiBbdGhpcy5qc29uc2NoZW1hLnRvRmllbGRDb25maWcoc3RlcCkgYXMgRm9ybWx5RmllbGRDb25maWddO1xuICAgIH0pO1xuICB9XG59XG4iLCI8Yzh5LW1vZGFsIFtoZWFkZXJDbGFzc2VzXT1cIidkaWFsb2ctaGVhZGVyJ1wiIFtjdXN0b21Gb290ZXJdPVwidHJ1ZVwiPlxuICA8bmctY29udGFpbmVyIGM4eS1tb2RhbC10aXRsZT5cbiAgICA8c3BhbiBjbGFzcz1cImM4eS1pY29uIGM4eS1pY29uLWRldmljZS1jb25uZWN0XCI+PC9zcGFuPlxuICAgIDxoNCBpZD1cIm1vZGFsLXRpdGxlXCI+e3sgdGl0bGUgfCB0cmFuc2xhdGUgfX08L2g0PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhZ2VzIGFzIHN0ZXBzOyBlbHNlIGxvYWRpbmdPckVycm9yXCI+XG4gICAgPGM4eS1leHRlbnNpYmxlLWRldmljZS1yZWdpc3RyYXRpb24tc3RlcHBlclxuICAgICAgaWQ9XCJtb2RhbC1ib2R5XCJcbiAgICAgIFtzdGVwc109XCJzdGVwc1wiXG4gICAgICBbbGFiZWxzXT1cImxhYmVsc1wiXG4gICAgICBbY29udGV4dFBhdGhdPVwiY29udGV4dFBhdGhcIlxuICAgID48L2M4eS1leHRlbnNpYmxlLWRldmljZS1yZWdpc3RyYXRpb24tc3RlcHBlcj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy10ZW1wbGF0ZSAjbG9hZGluZ09yRXJyb3I+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvYWRpbmdFcnJvck1lc3NhZ2U7IGVsc2UgbG9hZGluZ1wiPlxuICAgICAgPGM4eS1vcGVyYXRpb24tcmVzdWx0XG4gICAgICAgIHRleHQ9XCJ7eyBsb2FkaW5nRXJyb3JNZXNzYWdlIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgW3NpemVdPVwiODRcIlxuICAgICAgICBbdmVydGljYWxdPVwidHJ1ZVwiXG4gICAgICAgIHR5cGU9XCJlcnJvclwiXG4gICAgICAgIGNsYXNzPVwibGVhZCB0ZXh0LXJlZ3VsYXJcIlxuICAgICAgICBkYXRhLWN5PVwiZXJyb3JcIlxuICAgICAgPjwvYzh5LW9wZXJhdGlvbi1yZXN1bHQ+XG4gICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtZm9vdGVyXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0aXRsZT1cInt7ICdDbG9zZScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgIChjbGljayk9XCJic01vZGFsUmVmLmhpZGUoKVwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHRcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgJ0Nsb3NlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjbG9hZGluZz5cbiAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXIgbW9kYWwtaGVhZGVyLWluZm8gdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgPGM4eS1wcm9ncmVzcy1iYXJcbiAgICAgICAgICBbbWVzc2FnZV09XCInTG9hZGluZyB0aGUgcmVnaXN0cmF0aW9uIGZvcm0gZGVmaW5pdGlvbuKApicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIGNsYXNzPVwidGV4dC1jZW50ZXJcIlxuICAgICAgICA+PC9jOHktcHJvZ3Jlc3MtYmFyPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvYzh5LW1vZGFsPlxuIl19
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaWJsZS1kZXZpY2UtcmVnaXN0cmF0aW9uLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3JlZ2lzdGVyLWRldmljZS9leHRlbnNpYmxlL3NpbmdsZS9leHRlbnNpYmxlLWRldmljZS1yZWdpc3RyYXRpb24tbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcmVnaXN0ZXItZGV2aWNlL2V4dGVuc2libGUvc2luZ2xlL2V4dGVuc2libGUtZGV2aWNlLXJlZ2lzdHJhdGlvbi1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFJL0YsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7O0FBTWpELE1BQU0sT0FBTywwQ0FBMEM7SUFPckQsWUFDUyxVQUFzQixFQUNyQixVQUF5QixFQUN6QixtQkFBd0Q7UUFGekQsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUNyQixlQUFVLEdBQVYsVUFBVSxDQUFlO1FBQ3pCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUM7UUFObEUsV0FBTSxHQUFhLEVBQUUsQ0FBQztJQU9uQixDQUFDO0lBRUosS0FBSyxDQUFDLFFBQVE7UUFDWixNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUF1QyxNQUFNLElBQUksQ0FBQyxtQkFBbUI7YUFDeEYsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7YUFDM0IsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2IsSUFBSSxDQUFDLG1CQUFtQjtnQkFDdEIsS0FBSyxFQUFFLE9BQU8sSUFBSSxPQUFPLENBQUMsdURBQXVELENBQUMsQ0FBQztZQUNyRixPQUFPO2dCQUNMLEtBQUssRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDO2FBQ3hCLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUNMLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQWlCLEVBQUUsRUFBRTtZQUM1QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0IsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBc0IsQ0FBQyxDQUFDO1FBQ3BFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7dUlBNUJVLDBDQUEwQzsySEFBMUMsMENBQTBDLDRFQ1p2RCx3K0NBMkNBOzJGRC9CYSwwQ0FBMEM7a0JBSnRELFNBQVM7K0JBQ0Usc0NBQXNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEM4eUpTT05TY2hlbWEsIGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IEV4dGVuc2libGVEZXZpY2VSZWdpc3RyYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9leHRlbnNpYmxlLWRldmljZS1yZWdpc3RyYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBFeHRlbnNpYmxlRGV2aWNlUmVnaXN0cmF0aW9uU2NoZW1hIH0gZnJvbSAnLi9leHRlbnNpYmxlLWRldmljZS1yZWdpc3RyYXRpb24ubW9kZWwnO1xuaW1wb3J0IHsgSlNPTlNjaGVtYTcgfSBmcm9tICdqc29uLXNjaGVtYSc7XG5pbXBvcnQgeyBGb3JtbHlGaWVsZENvbmZpZyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgQnNNb2RhbFJlZiB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdleHRlbnNpYmxlLWRldmljZS1yZWdpc3RyYXRpb24tbW9kYWwnLFxuICB0ZW1wbGF0ZVVybDogJ2V4dGVuc2libGUtZGV2aWNlLXJlZ2lzdHJhdGlvbi1tb2RhbC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgRXh0ZW5zaWJsZURldmljZVJlZ2lzdHJhdGlvbk1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgdGl0bGU6IHN0cmluZztcbiAgbG9hZGluZ0Vycm9yTWVzc2FnZTogc3RyaW5nO1xuICBwYWdlczogRm9ybWx5RmllbGRDb25maWdbXVtdO1xuICBsYWJlbHM6IHN0cmluZ1tdID0gW107XG4gIGNvbnRleHRQYXRoOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGJzTW9kYWxSZWY6IEJzTW9kYWxSZWYsXG4gICAgcHJpdmF0ZSBqc29uc2NoZW1hOiBDOHlKU09OU2NoZW1hLFxuICAgIHByaXZhdGUgcmVnaXN0cmF0aW9uU2VydmljZTogRXh0ZW5zaWJsZURldmljZVJlZ2lzdHJhdGlvblNlcnZpY2VcbiAgKSB7fVxuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIGNvbnN0IHsgdGl0bGUsIHBhZ2VzIH06IEV4dGVuc2libGVEZXZpY2VSZWdpc3RyYXRpb25TY2hlbWEgPSBhd2FpdCB0aGlzLnJlZ2lzdHJhdGlvblNlcnZpY2VcbiAgICAgIC5nZXRTY2hlbWEodGhpcy5jb250ZXh0UGF0aClcbiAgICAgIC5jYXRjaChlcnJvciA9PiB7XG4gICAgICAgIHRoaXMubG9hZGluZ0Vycm9yTWVzc2FnZSA9XG4gICAgICAgICAgZXJyb3I/Lm1lc3NhZ2UgfHwgZ2V0dGV4dCgnQ2Fubm90IGZldGNoIGEgZm9ybSBkZWZpbml0aW9uIGZyb20gdGhlIG1pY3Jvc2VydmljZS4nKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB0aXRsZTogZ2V0dGV4dCgnRXJyb3InKVxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgdGhpcy50aXRsZSA9IHRpdGxlO1xuICAgIHRoaXMucGFnZXMgPSBwYWdlcz8ubWFwKChzdGVwOiBKU09OU2NoZW1hNykgPT4ge1xuICAgICAgdGhpcy5sYWJlbHMucHVzaChzdGVwLnRpdGxlKTtcbiAgICAgIHJldHVybiBbdGhpcy5qc29uc2NoZW1hLnRvRmllbGRDb25maWcoc3RlcCkgYXMgRm9ybWx5RmllbGRDb25maWddO1xuICAgIH0pO1xuICB9XG59XG4iLCI8Yzh5LW1vZGFsIFt0aXRsZV09XCJ0aXRsZSB8IHRyYW5zbGF0ZVwiIFtoZWFkZXJDbGFzc2VzXT1cIidkaWFsb2ctaGVhZGVyJ1wiIFtjdXN0b21Gb290ZXJdPVwidHJ1ZVwiPlxuICA8bmctY29udGFpbmVyIGM4eS1tb2RhbC10aXRsZT5cbiAgICA8c3BhbiBjbGFzcz1cImM4eS1pY29uIGM4eS1pY29uLWRldmljZS1jb25uZWN0XCI+PC9zcGFuPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhZ2VzIGFzIHN0ZXBzOyBlbHNlIGxvYWRpbmdPckVycm9yXCI+XG4gICAgPGM4eS1leHRlbnNpYmxlLWRldmljZS1yZWdpc3RyYXRpb24tc3RlcHBlclxuICAgICAgYzh5LW1vZGFsLWJvZHlcbiAgICAgIFtzdGVwc109XCJzdGVwc1wiXG4gICAgICBbbGFiZWxzXT1cImxhYmVsc1wiXG4gICAgICBbY29udGV4dFBhdGhdPVwiY29udGV4dFBhdGhcIlxuICAgID48L2M4eS1leHRlbnNpYmxlLWRldmljZS1yZWdpc3RyYXRpb24tc3RlcHBlcj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy10ZW1wbGF0ZSAjbG9hZGluZ09yRXJyb3I+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvYWRpbmdFcnJvck1lc3NhZ2U7IGVsc2UgbG9hZGluZ1wiPlxuICAgICAgPGM4eS1vcGVyYXRpb24tcmVzdWx0XG4gICAgICAgIHRleHQ9XCJ7eyBsb2FkaW5nRXJyb3JNZXNzYWdlIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgW3NpemVdPVwiODRcIlxuICAgICAgICBbdmVydGljYWxdPVwidHJ1ZVwiXG4gICAgICAgIHR5cGU9XCJlcnJvclwiXG4gICAgICAgIGNsYXNzPVwibGVhZCB0ZXh0LXJlZ3VsYXJcIlxuICAgICAgICBkYXRhLWN5PVwiZXJyb3JcIlxuICAgICAgPjwvYzh5LW9wZXJhdGlvbi1yZXN1bHQ+XG4gICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtZm9vdGVyXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0aXRsZT1cInt7ICdDbG9zZScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgIChjbGljayk9XCJic01vZGFsUmVmLmhpZGUoKVwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHRcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgJ0Nsb3NlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjbG9hZGluZz5cbiAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXIgbW9kYWwtaGVhZGVyLWluZm8gdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgPGM4eS1wcm9ncmVzcy1iYXJcbiAgICAgICAgICBbbWVzc2FnZV09XCInTG9hZGluZyB0aGUgcmVnaXN0cmF0aW9uIGZvcm0gZGVmaW5pdGlvbuKApicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIGNsYXNzPVwidGV4dC1jZW50ZXJcIlxuICAgICAgICA+PC9jOHktcHJvZ3Jlc3MtYmFyPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvYzh5LW1vZGFsPlxuIl19