@c8y/ngx-components 1021.70.1 → 1021.71.1

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 (116) hide show
  1. package/branding/shared/lazy/branding-import-modal/branding-import-modal.component.d.ts.map +1 -1
  2. package/core/beta-feature/beta-feature-show-notification.service.d.ts +10 -0
  3. package/core/beta-feature/beta-feature-show-notification.service.d.ts.map +1 -0
  4. package/core/beta-feature/beta-feature.providers.d.ts +3 -0
  5. package/core/beta-feature/beta-feature.providers.d.ts.map +1 -0
  6. package/core/beta-feature/beta-preview-button.component.d.ts +17 -0
  7. package/core/beta-feature/beta-preview-button.component.d.ts.map +1 -0
  8. package/core/beta-feature/beta-preview-drawer.factory.d.ts +19 -0
  9. package/core/beta-feature/beta-preview-drawer.factory.d.ts.map +1 -0
  10. package/core/beta-feature/beta-preview.component.d.ts +25 -0
  11. package/core/beta-feature/beta-preview.component.d.ts.map +1 -0
  12. package/core/beta-feature/beta-preview.model.d.ts +24 -0
  13. package/core/beta-feature/beta-preview.model.d.ts.map +1 -0
  14. package/core/beta-feature/beta-preview.service.d.ts +47 -0
  15. package/core/beta-feature/beta-preview.service.d.ts.map +1 -0
  16. package/core/beta-feature/feature-cache.service.d.ts +26 -0
  17. package/core/beta-feature/feature-cache.service.d.ts.map +1 -0
  18. package/core/beta-feature/feature-state.pipe.d.ts +12 -0
  19. package/core/beta-feature/feature-state.pipe.d.ts.map +1 -0
  20. package/core/beta-feature/index.d.ts +7 -0
  21. package/core/beta-feature/index.d.ts.map +1 -0
  22. package/core/bottom-drawer/bottom-drawer-ref.d.ts.map +1 -1
  23. package/core/bottom-drawer/bottom-drawer.component.d.ts +1 -0
  24. package/core/bottom-drawer/bottom-drawer.component.d.ts.map +1 -1
  25. package/core/bottom-drawer/bottom-drawer.model.d.ts +4 -0
  26. package/core/bottom-drawer/bottom-drawer.model.d.ts.map +1 -1
  27. package/core/common/ApplicationOptions.d.ts +8 -0
  28. package/core/common/ApplicationOptions.d.ts.map +1 -1
  29. package/core/common/index.d.ts +1 -0
  30. package/core/common/index.d.ts.map +1 -1
  31. package/core/common/notification-display.service.d.ts +19 -0
  32. package/core/common/notification-display.service.d.ts.map +1 -0
  33. package/core/core.module.d.ts.map +1 -1
  34. package/core/header/header-bar/header-bar.component.d.ts +1 -0
  35. package/core/header/header-bar/header-bar.component.d.ts.map +1 -1
  36. package/core/header/header.service.d.ts +4 -1
  37. package/core/header/header.service.d.ts.map +1 -1
  38. package/core/index.d.ts +1 -0
  39. package/core/index.d.ts.map +1 -1
  40. package/datapoint-explorer/datapoint-explorer-navigation-factory.d.ts +10 -0
  41. package/datapoint-explorer/datapoint-explorer-navigation-factory.d.ts.map +1 -0
  42. package/datapoint-explorer/datapoint-explorer-route-factory.d.ts +10 -0
  43. package/datapoint-explorer/datapoint-explorer-route-factory.d.ts.map +1 -0
  44. package/datapoint-explorer/datapoint-explorer.module.d.ts.map +1 -1
  45. package/esm2022/branding/shared/lazy/branding-import-modal/branding-import-modal.component.mjs +4 -7
  46. package/esm2022/core/beta-feature/beta-feature-show-notification.service.mjs +17 -0
  47. package/esm2022/core/beta-feature/beta-feature.providers.mjs +9 -0
  48. package/esm2022/core/beta-feature/beta-preview-button.component.mjs +53 -0
  49. package/esm2022/core/beta-feature/beta-preview-drawer.factory.mjs +52 -0
  50. package/esm2022/core/beta-feature/beta-preview.component.mjs +64 -0
  51. package/esm2022/core/beta-feature/beta-preview.model.mjs +2 -0
  52. package/esm2022/core/beta-feature/beta-preview.service.mjs +114 -0
  53. package/esm2022/core/beta-feature/feature-cache.service.mjs +48 -0
  54. package/esm2022/core/beta-feature/feature-state.pipe.mjs +22 -0
  55. package/esm2022/core/beta-feature/index.mjs +7 -0
  56. package/esm2022/core/bottom-drawer/bottom-drawer-ref.mjs +4 -1
  57. package/esm2022/core/bottom-drawer/bottom-drawer.component.mjs +4 -3
  58. package/esm2022/core/bottom-drawer/bottom-drawer.model.mjs +1 -1
  59. package/esm2022/core/common/ApplicationOptions.mjs +1 -1
  60. package/esm2022/core/common/index.mjs +2 -1
  61. package/esm2022/core/common/notification-display.service.mjs +2 -0
  62. package/esm2022/core/core.module.mjs +4 -2
  63. package/esm2022/core/docs/legal-notices-outlet/legal-notices-outlet.component.mjs +3 -3
  64. package/esm2022/core/header/header-bar/header-bar.component.mjs +4 -3
  65. package/esm2022/core/header/header.service.mjs +12 -6
  66. package/esm2022/core/index.mjs +2 -1
  67. package/esm2022/core/user/user-details-drawer/user-details-drawer.component.mjs +3 -3
  68. package/esm2022/core/version/version-list/version-list.component.mjs +3 -3
  69. package/esm2022/datapoint-explorer/datapoint-explorer-navigation-factory.mjs +31 -0
  70. package/esm2022/datapoint-explorer/datapoint-explorer-route-factory.mjs +37 -0
  71. package/esm2022/datapoint-explorer/datapoint-explorer.module.mjs +22 -48
  72. package/esm2022/register-device/bulk/bulk-device-registration-modal.component.mjs +8 -10
  73. package/esm2022/register-device/general/general-device-registration.component.mjs +8 -10
  74. package/esm2022/trusted-certificates/list/trusted-certificate-list.component.mjs +10 -12
  75. package/esm2022/upgrade/ng1/downgraded.services.mjs +3 -2
  76. package/esm2022/upgrade/ng1/index.mjs +3 -2
  77. package/esm2022/widgets/cockpit-exports/index.mjs +2 -2
  78. package/esm2022/widgets/definitions/datapoints-graph/datapoint-graph-widget-factory.mjs +56 -0
  79. package/esm2022/widgets/definitions/datapoints-graph/index.mjs +12 -29
  80. package/esm2022/widgets/definitions/index.mjs +3 -2
  81. package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs +3 -6
  82. package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs.map +1 -1
  83. package/fesm2022/c8y-ngx-components-datapoint-explorer.mjs +81 -48
  84. package/fesm2022/c8y-ngx-components-datapoint-explorer.mjs.map +1 -1
  85. package/fesm2022/c8y-ngx-components-register-device.mjs +10 -14
  86. package/fesm2022/c8y-ngx-components-register-device.mjs.map +1 -1
  87. package/fesm2022/c8y-ngx-components-trusted-certificates.mjs +18 -20
  88. package/fesm2022/c8y-ngx-components-trusted-certificates.mjs.map +1 -1
  89. package/fesm2022/c8y-ngx-components-upgrade.mjs +3 -1
  90. package/fesm2022/c8y-ngx-components-upgrade.mjs.map +1 -1
  91. package/fesm2022/c8y-ngx-components-widgets-cockpit-exports.mjs +1 -1
  92. package/fesm2022/c8y-ngx-components-widgets-cockpit-exports.mjs.map +1 -1
  93. package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-graph.mjs +65 -28
  94. package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-graph.mjs.map +1 -1
  95. package/fesm2022/c8y-ngx-components-widgets-definitions.mjs +2 -1
  96. package/fesm2022/c8y-ngx-components-widgets-definitions.mjs.map +1 -1
  97. package/fesm2022/c8y-ngx-components.mjs +347 -17
  98. package/fesm2022/c8y-ngx-components.mjs.map +1 -1
  99. package/locales/locales.pot +31 -8
  100. package/package.json +1 -1
  101. package/register-device/bulk/bulk-device-registration-modal.component.d.ts +5 -5
  102. package/register-device/bulk/bulk-device-registration-modal.component.d.ts.map +1 -1
  103. package/register-device/general/general-device-registration.component.d.ts +5 -5
  104. package/register-device/general/general-device-registration.component.d.ts.map +1 -1
  105. package/trusted-certificates/list/trusted-certificate-list.component.d.ts +4 -4
  106. package/trusted-certificates/list/trusted-certificate-list.component.d.ts.map +1 -1
  107. package/upgrade/ng1/downgraded.services.d.ts +1 -0
  108. package/upgrade/ng1/downgraded.services.d.ts.map +1 -1
  109. package/upgrade/ng1/index.d.ts.map +1 -1
  110. package/widgets/cockpit-exports/index.d.ts +1 -1
  111. package/widgets/definitions/datapoints-graph/datapoint-graph-widget-factory.d.ts +11 -0
  112. package/widgets/definitions/datapoints-graph/datapoint-graph-widget-factory.d.ts.map +1 -0
  113. package/widgets/definitions/datapoints-graph/index.d.ts +0 -28
  114. package/widgets/definitions/datapoints-graph/index.d.ts.map +1 -1
  115. package/widgets/definitions/index.d.ts +2 -1
  116. package/widgets/definitions/index.d.ts.map +1 -1
@@ -56,4 +56,5 @@ export * from './ui-settings/index';
56
56
  export * from './countdown-interval/index';
57
57
  export * from './color-input/index';
58
58
  export * from './aggregation/index';
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9jb3JlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXBwbGljYXRpb24vaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9hY3Rpb24tYmFyL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aW9uL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vYWxlcnQvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9ib290c3RyYXAvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9icmVhZGNydW1iL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vYm90dG9tLWRyYXdlci9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbW1vbi9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2hlYWRlci9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2kxOG4vaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9sb2dpbi9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL21vZGFsL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vbmF2aWdhdG9yL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vYXV0aGVudGljYXRpb24vaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9zZWFyY2gvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi90YWJzL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vZHJvcC1hcmVhL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vZmlsZS1waWNrZXIvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9maWxlLXBpY2tlci1mb3JtLWNvbnRyb2wvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXRlLXBpY2tlci9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL3VzZXIvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9yb3V0ZXIvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3Jtcy9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2RldmljZS1zdGF0dXMvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9kb2NzL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vZHluYW1pYy1mb3Jtcy9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2R5bmFtaWMtY29tcG9uZW50L2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vZGFzaGJvYXJkL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vc3RlcHBlci9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpc3QtZ3JvdXAvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9xdWlja2xpbmsvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3QvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm92aWRlci1jb25maWd1cmF0aW9uL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vZGF0YS1ncmlkL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vc2VsZWN0LW1vZGFsL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vcHJvZHVjdC1leHBlcmllbmNlL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vaGVscC9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL3JlYWx0aW1lL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vcGx1Z2lucy9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL3JhbmdlLWRpc3BsYXkvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXR1cC9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL3dpemFyZC9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL3Byb3BlcnRpZXMtbGlzdC9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2NvcmUubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vd2l6YXJkL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vdGltZS1pbnRlcnZhbC9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2RhdGUtdGltZS1waWNrZXIvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi90aW1lLXBpY2tlci9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2Fzc2V0LXR5cGVzL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vYXVkaXQtbG9nL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vbGlzdC1kaXNwbGF5LXN3aXRjaC9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2NsaXBib2FyZC9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL3ZlcnNpb24vaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9kcmF3ZXIvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi91aS1zZXR0aW5ncy9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2NvdW50ZG93bi1pbnRlcnZhbC9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbG9yLWlucHV0L2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vYWdncmVnYXRpb24vaW5kZXgnO1xuIl19
59
+ export * from './beta-feature/index';
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9jb3JlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hcHBsaWNhdGlvbi9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2FjdGlvbi1iYXIvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9hY3Rpb24vaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9hbGVydC9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2Jvb3RzdHJhcC9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2JyZWFkY3J1bWIvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9ib3R0b20tZHJhd2VyL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vY29tbW9uL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vaGVhZGVyL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vaTE4bi9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xvZ2luL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vbW9kYWwvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9uYXZpZ2F0b3IvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9hdXRoZW50aWNhdGlvbi9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL3NlYXJjaC9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL3RhYnMvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9kcm9wLWFyZWEvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9maWxlLXBpY2tlci9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2ZpbGUtcGlja2VyLWZvcm0tY29udHJvbC9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2RhdGUtcGlja2VyL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vdXNlci9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL3JvdXRlci9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2Zvcm1zL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vZGV2aWNlLXN0YXR1cy9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2RvY3MvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9keW5hbWljLWZvcm1zL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vZHluYW1pYy1jb21wb25lbnQvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXNoYm9hcmQvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9zdGVwcGVyL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vbGlzdC1ncm91cC9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL3F1aWNrbGluay9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL3NlbGVjdC9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL3Byb3ZpZGVyLWNvbmZpZ3VyYXRpb24vaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhLWdyaWQvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3QtbW9kYWwvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm9kdWN0LWV4cGVyaWVuY2UvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9oZWxwL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vcmVhbHRpbWUvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9wbHVnaW5zL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vcmFuZ2UtZGlzcGxheS9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL3NldHVwL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vd2l6YXJkL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vcHJvcGVydGllcy1saXN0L2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vY29yZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi93aXphcmQvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi90aW1lLWludGVydmFsL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vZGF0ZS10aW1lLXBpY2tlci9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL3RpbWUtcGlja2VyL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vYXNzZXQtdHlwZXMvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9hdWRpdC1sb2cvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9saXN0LWRpc3BsYXktc3dpdGNoL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vY2xpcGJvYXJkL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vdmVyc2lvbi9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2RyYXdlci9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL3VpLXNldHRpbmdzL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vY291bnRkb3duLWludGVydmFsL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vY29sb3ItaW5wdXQvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9hZ2dyZWdhdGlvbi9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2JldGEtZmVhdHVyZS9pbmRleCc7XG4iXX0=
@@ -18,10 +18,10 @@ export class UserDetailsDrawerComponent {
18
18
  this.headerService.closeRightDrawer();
19
19
  }
20
20
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserDetailsDrawerComponent, deps: [{ token: i1.AppStateService }, { token: i2.HeaderService }], target: i0.ɵɵFactoryTarget.Component }); }
21
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UserDetailsDrawerComponent, selector: "c8y-user-details-drawer", host: { classAttribute: "d-contents" }, ngImport: i0, template: "<div class=\"c8y-right-drawer__header separator-bottom\">\n <button type=\"button\" class=\"close\" [attr.tabindex]=\"(headerService.rightDrawerOpen$ | async) ? '0' : '-1'\" title=\"{{ 'Close' | translate }}\" (click)=\"close()\">\n &times;\n </button>\n <div class=\"d-flex a-i-center\">\n <div class=\"user-dot\">{{ appState.currentUser | async | userNameInitials }}</div>\n <div class=\"min-width-0\">\n <p\n *ngIf=\"appState.currentUser | async as currentUser\"\n class=\"text-truncate text-medium text-16\"\n title=\"{{ currentUser | shortenUserName }}\"\n >\n {{ currentUser | shortenUserName }}\n </p>\n <small\n *ngIf=\"appState.currentUser | async | userRolesList as userRoles\"\n [title]=\"userRoles\"\n class=\"text-truncate\"\n >\n {{ userRoles }}\n </small>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.ShortenUserNamePipe, name: "shortenUserName" }, { kind: "pipe", type: i6.UserNameInitialsPipe, name: "userNameInitials" }, { kind: "pipe", type: i7.UserRolesListPipe, name: "userRolesList" }] }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UserDetailsDrawerComponent, selector: "c8y-user-details-drawer", host: { classAttribute: "d-contents" }, ngImport: i0, template: "<div class=\"c8y-right-drawer__header separator-bottom\">\n <button type=\"button\" class=\"close\" [attr.tabindex]=\"(headerService.rightDrawerOpen$ | async) ? '0' : '-1'\" title=\"{{ 'Close' | translate }}\" (click)=\"close()\">\n &times;\n </button>\n <div class=\"d-flex a-i-center\">\n <div class=\"user-dot\">{{ appState.currentUser | async | userNameInitials }}</div>\n <div class=\"min-width-0\">\n <p\n *ngIf=\"appState.currentUser | async as currentUser\"\n class=\"text-truncate text-medium text-16\"\n title=\"{{ currentUser | shortenUserName }}\"\n >\n {{ currentUser | shortenUserName }}\n </p>\n <small\n *ngIf=\"appState.currentUser | async | userRolesList as userRoles\"\n [title]=\"userRoles\"\n class=\"text-truncate\"\n >\n {{ userRoles }}\n </small>\n </div>\n </div>\n</div>", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.ShortenUserNamePipe, name: "shortenUserName" }, { kind: "pipe", type: i6.UserNameInitialsPipe, name: "userNameInitials" }, { kind: "pipe", type: i7.UserRolesListPipe, name: "userRolesList" }] }); }
22
22
  }
23
23
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserDetailsDrawerComponent, decorators: [{
24
24
  type: Component,
25
- args: [{ selector: 'c8y-user-details-drawer', host: { class: 'd-contents' }, template: "<div class=\"c8y-right-drawer__header separator-bottom\">\n <button type=\"button\" class=\"close\" [attr.tabindex]=\"(headerService.rightDrawerOpen$ | async) ? '0' : '-1'\" title=\"{{ 'Close' | translate }}\" (click)=\"close()\">\n &times;\n </button>\n <div class=\"d-flex a-i-center\">\n <div class=\"user-dot\">{{ appState.currentUser | async | userNameInitials }}</div>\n <div class=\"min-width-0\">\n <p\n *ngIf=\"appState.currentUser | async as currentUser\"\n class=\"text-truncate text-medium text-16\"\n title=\"{{ currentUser | shortenUserName }}\"\n >\n {{ currentUser | shortenUserName }}\n </p>\n <small\n *ngIf=\"appState.currentUser | async | userRolesList as userRoles\"\n [title]=\"userRoles\"\n class=\"text-truncate\"\n >\n {{ userRoles }}\n </small>\n </div>\n </div>\n</div>\n" }]
25
+ args: [{ selector: 'c8y-user-details-drawer', host: { class: 'd-contents' }, template: "<div class=\"c8y-right-drawer__header separator-bottom\">\n <button type=\"button\" class=\"close\" [attr.tabindex]=\"(headerService.rightDrawerOpen$ | async) ? '0' : '-1'\" title=\"{{ 'Close' | translate }}\" (click)=\"close()\">\n &times;\n </button>\n <div class=\"d-flex a-i-center\">\n <div class=\"user-dot\">{{ appState.currentUser | async | userNameInitials }}</div>\n <div class=\"min-width-0\">\n <p\n *ngIf=\"appState.currentUser | async as currentUser\"\n class=\"text-truncate text-medium text-16\"\n title=\"{{ currentUser | shortenUserName }}\"\n >\n {{ currentUser | shortenUserName }}\n </p>\n <small\n *ngIf=\"appState.currentUser | async | userRolesList as userRoles\"\n [title]=\"userRoles\"\n class=\"text-truncate\"\n >\n {{ userRoles }}\n </small>\n </div>\n </div>\n</div>" }]
26
26
  }], ctorParameters: () => [{ type: i1.AppStateService }, { type: i2.HeaderService }] });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1kZXRhaWxzLWRyYXdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9jb3JlL3VzZXIvdXNlci1kZXRhaWxzLWRyYXdlci91c2VyLWRldGFpbHMtZHJhd2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2NvcmUvdXNlci91c2VyLWRldGFpbHMtZHJhd2VyL3VzZXItZGV0YWlscy1kcmF3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7O0FBTzVELE1BQU0sT0FBTywwQkFBMEI7SUFDckMsWUFBbUIsUUFBeUIsRUFBUyxhQUE0QjtRQUE5RCxhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUFTLGtCQUFhLEdBQWIsYUFBYSxDQUFlO0lBQUcsQ0FBQztJQUVyRixLQUFLO1FBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQ3hDLENBQUM7K0dBTFUsMEJBQTBCO21HQUExQiwwQkFBMEIsdUdDVHZDLHM0QkF3QkE7OzRGRGZhLDBCQUEwQjtrQkFMdEMsU0FBUzsrQkFDRSx5QkFBeUIsUUFFN0IsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBcHBTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb21tb24nO1xuaW1wb3J0IHsgSGVhZGVyU2VydmljZSB9IGZyb20gJy4uLy4uL2hlYWRlci9oZWFkZXIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS11c2VyLWRldGFpbHMtZHJhd2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3VzZXItZGV0YWlscy1kcmF3ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBob3N0OiB7IGNsYXNzOiAnZC1jb250ZW50cycgfVxufSlcbmV4cG9ydCBjbGFzcyBVc2VyRGV0YWlsc0RyYXdlckNvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBhcHBTdGF0ZTogQXBwU3RhdGVTZXJ2aWNlLCBwdWJsaWMgaGVhZGVyU2VydmljZTogSGVhZGVyU2VydmljZSkge31cblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLmhlYWRlclNlcnZpY2UuY2xvc2VSaWdodERyYXdlcigpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYzh5LXJpZ2h0LWRyYXdlcl9faGVhZGVyIHNlcGFyYXRvci1ib3R0b21cIj5cbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjbG9zZVwiIFthdHRyLnRhYmluZGV4XT1cIihoZWFkZXJTZXJ2aWNlLnJpZ2h0RHJhd2VyT3BlbiQgfCBhc3luYykgPyAnMCcgOiAnLTEnXCIgdGl0bGU9XCJ7eyAnQ2xvc2UnIHwgdHJhbnNsYXRlIH19XCIgKGNsaWNrKT1cImNsb3NlKClcIj5cbiAgICAmdGltZXM7XG4gIDwvYnV0dG9uPlxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGEtaS1jZW50ZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwidXNlci1kb3RcIj57eyBhcHBTdGF0ZS5jdXJyZW50VXNlciB8IGFzeW5jIHwgdXNlck5hbWVJbml0aWFscyB9fTwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtaW4td2lkdGgtMFwiPlxuICAgICAgPHBcbiAgICAgICAgKm5nSWY9XCJhcHBTdGF0ZS5jdXJyZW50VXNlciB8IGFzeW5jIGFzIGN1cnJlbnRVc2VyXCJcbiAgICAgICAgY2xhc3M9XCJ0ZXh0LXRydW5jYXRlIHRleHQtbWVkaXVtIHRleHQtMTZcIlxuICAgICAgICB0aXRsZT1cInt7IGN1cnJlbnRVc2VyIHwgc2hvcnRlblVzZXJOYW1lIH19XCJcbiAgICAgID5cbiAgICAgICAge3sgY3VycmVudFVzZXIgfCBzaG9ydGVuVXNlck5hbWUgfX1cbiAgICAgIDwvcD5cbiAgICAgIDxzbWFsbFxuICAgICAgICAqbmdJZj1cImFwcFN0YXRlLmN1cnJlbnRVc2VyIHwgYXN5bmMgfCB1c2VyUm9sZXNMaXN0IGFzIHVzZXJSb2xlc1wiXG4gICAgICAgIFt0aXRsZV09XCJ1c2VyUm9sZXNcIlxuICAgICAgICBjbGFzcz1cInRleHQtdHJ1bmNhdGVcIlxuICAgICAgPlxuICAgICAgICB7eyB1c2VyUm9sZXMgfX1cbiAgICAgIDwvc21hbGw+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1kZXRhaWxzLWRyYXdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9jb3JlL3VzZXIvdXNlci1kZXRhaWxzLWRyYXdlci91c2VyLWRldGFpbHMtZHJhd2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2NvcmUvdXNlci91c2VyLWRldGFpbHMtZHJhd2VyL3VzZXItZGV0YWlscy1kcmF3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7O0FBTzVELE1BQU0sT0FBTywwQkFBMEI7SUFDckMsWUFBbUIsUUFBeUIsRUFBUyxhQUE0QjtRQUE5RCxhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUFTLGtCQUFhLEdBQWIsYUFBYSxDQUFlO0lBQUcsQ0FBQztJQUVyRixLQUFLO1FBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQ3hDLENBQUM7K0dBTFUsMEJBQTBCO21HQUExQiwwQkFBMEIsdUdDVHZDLG80QkF1Qk07OzRGRGRPLDBCQUEwQjtrQkFMdEMsU0FBUzsrQkFDRSx5QkFBeUIsUUFFN0IsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBcHBTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb21tb24nO1xuaW1wb3J0IHsgSGVhZGVyU2VydmljZSB9IGZyb20gJy4uLy4uL2hlYWRlci9oZWFkZXIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS11c2VyLWRldGFpbHMtZHJhd2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3VzZXItZGV0YWlscy1kcmF3ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBob3N0OiB7IGNsYXNzOiAnZC1jb250ZW50cycgfVxufSlcbmV4cG9ydCBjbGFzcyBVc2VyRGV0YWlsc0RyYXdlckNvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBhcHBTdGF0ZTogQXBwU3RhdGVTZXJ2aWNlLCBwdWJsaWMgaGVhZGVyU2VydmljZTogSGVhZGVyU2VydmljZSkge31cblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLmhlYWRlclNlcnZpY2UuY2xvc2VSaWdodERyYXdlcigpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYzh5LXJpZ2h0LWRyYXdlcl9faGVhZGVyIHNlcGFyYXRvci1ib3R0b21cIj5cbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjbG9zZVwiIFthdHRyLnRhYmluZGV4XT1cIihoZWFkZXJTZXJ2aWNlLnJpZ2h0RHJhd2VyT3BlbiQgfCBhc3luYykgPyAnMCcgOiAnLTEnXCIgdGl0bGU9XCJ7eyAnQ2xvc2UnIHwgdHJhbnNsYXRlIH19XCIgKGNsaWNrKT1cImNsb3NlKClcIj5cbiAgICAmdGltZXM7XG4gIDwvYnV0dG9uPlxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGEtaS1jZW50ZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwidXNlci1kb3RcIj57eyBhcHBTdGF0ZS5jdXJyZW50VXNlciB8IGFzeW5jIHwgdXNlck5hbWVJbml0aWFscyB9fTwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtaW4td2lkdGgtMFwiPlxuICAgICAgPHBcbiAgICAgICAgKm5nSWY9XCJhcHBTdGF0ZS5jdXJyZW50VXNlciB8IGFzeW5jIGFzIGN1cnJlbnRVc2VyXCJcbiAgICAgICAgY2xhc3M9XCJ0ZXh0LXRydW5jYXRlIHRleHQtbWVkaXVtIHRleHQtMTZcIlxuICAgICAgICB0aXRsZT1cInt7IGN1cnJlbnRVc2VyIHwgc2hvcnRlblVzZXJOYW1lIH19XCJcbiAgICAgID5cbiAgICAgICAge3sgY3VycmVudFVzZXIgfCBzaG9ydGVuVXNlck5hbWUgfX1cbiAgICAgIDwvcD5cbiAgICAgIDxzbWFsbFxuICAgICAgICAqbmdJZj1cImFwcFN0YXRlLmN1cnJlbnRVc2VyIHwgYXN5bmMgfCB1c2VyUm9sZXNMaXN0IGFzIHVzZXJSb2xlc1wiXG4gICAgICAgIFt0aXRsZV09XCJ1c2VyUm9sZXNcIlxuICAgICAgICBjbGFzcz1cInRleHQtdHJ1bmNhdGVcIlxuICAgICAgPlxuICAgICAgICB7eyB1c2VyUm9sZXMgfX1cbiAgICAgIDwvc21hbGw+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+Il19
@@ -40,10 +40,10 @@ export class VersionListComponent {
40
40
  this.clipboardService.writeText(text);
41
41
  }
42
42
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: VersionListComponent, deps: [{ token: i1.VersionService }, { token: i2.AppStateService }, { token: i3.ClipboardService }, { token: i4.BsModalService }, { token: i5.PlatformDetailsService }, { token: i6.HeaderService }], target: i0.ɵɵFactoryTarget.Component }); }
43
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: VersionListComponent, selector: "c8y-version-list", ngImport: i0, template: "<div class=\"separator-top p-t-8 p-b-8\">\n <div class=\"c8y-right-drawer__item sticky-top\">\n <i c8yIcon=\"c8y-cumulocity-iot\"></i>\n <span class=\"text-bold\">{{ 'Platform info' | translate }}</span>\n </div>\n\n <ul class=\"list-unstyled\">\n <li\n class=\"c8y-right-drawer__item\"\n *ngIf=\"currentTenantId$ | async as tenantId\"\n >\n <span\n class=\"flex-grow text-muted m-0 text-12 text-truncate\"\n translate\n >\n Tenant ID\n </span>\n <button\n class=\"m-l-auto flex-no-shrink btn-clean p-0 btn-link\"\n title=\"{{ 'Copy tenant ID to the clipboard' | translate }}\"\n [attr.tabindex]=\"(open$ | async) ? '0' : '-1'\"\n type=\"button\"\n (click)=\"$event.stopPropagation(); copyIt(tenantId)\"\n >\n {{ tenantId }}\n <i\n class=\"text-14 m-0\"\n [c8yIcon]=\"'clipboard'\"\n ></i>\n </button>\n </li>\n <li\n class=\"c8y-right-drawer__item\"\n *ngFor=\"let versionEntry of versionsToDirectlyDisplay$ | async\"\n >\n <span\n class=\"flex-no-shrink text-muted text-12 text-truncate m-r-8\"\n [title]=\"versionEntry.label | translate\"\n >\n {{ versionEntry.label | translate }}\n </span>\n <span\n class=\"flex-grow text-right text-truncate\"\n [title]=\"versionEntry.version | translate\"\n >\n {{ versionEntry.version }}\n </span>\n </li>\n <li class=\"c8y-right-drawer__item\">\n <button\n class=\"btn btn-default btn-sm\"\n [attr.tabindex]=\"(open$ | async) ? '0' : '-1'\"\n title=\"{{ 'Download platform details' | translate }}\"\n translate\n (click)=\"downloadPlatformDetails()\"\n >\n Download platform details\n </button>\n </li>\n </ul>\n</div>\n", dependencies: [{ kind: "directive", type: i7.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i8.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i10.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }] }); }
43
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: VersionListComponent, selector: "c8y-version-list", ngImport: i0, template: "<div class=\"separator-top p-t-8 p-b-8\">\n <div class=\"c8y-right-drawer__item sticky-top\">\n <i c8yIcon=\"c8y-c8y-c\"></i>\n <span class=\"text-bold\">{{ 'Platform info' | translate }}</span>\n </div>\n\n <ul class=\"list-unstyled\">\n <li\n class=\"c8y-right-drawer__item\"\n *ngIf=\"currentTenantId$ | async as tenantId\"\n >\n <span\n class=\"flex-grow text-muted m-0 text-12 text-truncate\"\n translate\n >\n Tenant ID\n </span>\n <button\n class=\"m-l-auto flex-no-shrink btn-clean p-0 btn-link\"\n title=\"{{ 'Copy tenant ID to the clipboard' | translate }}\"\n [attr.tabindex]=\"(open$ | async) ? '0' : '-1'\"\n type=\"button\"\n (click)=\"$event.stopPropagation(); copyIt(tenantId)\"\n >\n {{ tenantId }}\n <i\n class=\"text-14 m-0\"\n [c8yIcon]=\"'clipboard'\"\n ></i>\n </button>\n </li>\n <li\n class=\"c8y-right-drawer__item\"\n *ngFor=\"let versionEntry of versionsToDirectlyDisplay$ | async\"\n >\n <span\n class=\"flex-no-shrink text-muted text-12 text-truncate m-r-8\"\n [title]=\"versionEntry.label | translate\"\n >\n {{ versionEntry.label | translate }}\n </span>\n <span\n class=\"flex-grow text-right text-truncate\"\n [title]=\"versionEntry.version | translate\"\n >\n {{ versionEntry.version }}\n </span>\n </li>\n <li class=\"c8y-right-drawer__item\">\n <button\n class=\"btn btn-default btn-sm\"\n [attr.tabindex]=\"(open$ | async) ? '0' : '-1'\"\n title=\"{{ 'Download platform details' | translate }}\"\n (click)=\"downloadPlatformDetails()\"\n >\n <i c8yIcon=\"download\" class=\"m-t-0 m-b-0 text-14\"></i>\n <span translate>Download platform details</span>\n </button>\n </li>\n </ul>\n</div>\n", dependencies: [{ kind: "directive", type: i7.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i8.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i10.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }] }); }
44
44
  }
45
45
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: VersionListComponent, decorators: [{
46
46
  type: Component,
47
- args: [{ selector: 'c8y-version-list', template: "<div class=\"separator-top p-t-8 p-b-8\">\n <div class=\"c8y-right-drawer__item sticky-top\">\n <i c8yIcon=\"c8y-cumulocity-iot\"></i>\n <span class=\"text-bold\">{{ 'Platform info' | translate }}</span>\n </div>\n\n <ul class=\"list-unstyled\">\n <li\n class=\"c8y-right-drawer__item\"\n *ngIf=\"currentTenantId$ | async as tenantId\"\n >\n <span\n class=\"flex-grow text-muted m-0 text-12 text-truncate\"\n translate\n >\n Tenant ID\n </span>\n <button\n class=\"m-l-auto flex-no-shrink btn-clean p-0 btn-link\"\n title=\"{{ 'Copy tenant ID to the clipboard' | translate }}\"\n [attr.tabindex]=\"(open$ | async) ? '0' : '-1'\"\n type=\"button\"\n (click)=\"$event.stopPropagation(); copyIt(tenantId)\"\n >\n {{ tenantId }}\n <i\n class=\"text-14 m-0\"\n [c8yIcon]=\"'clipboard'\"\n ></i>\n </button>\n </li>\n <li\n class=\"c8y-right-drawer__item\"\n *ngFor=\"let versionEntry of versionsToDirectlyDisplay$ | async\"\n >\n <span\n class=\"flex-no-shrink text-muted text-12 text-truncate m-r-8\"\n [title]=\"versionEntry.label | translate\"\n >\n {{ versionEntry.label | translate }}\n </span>\n <span\n class=\"flex-grow text-right text-truncate\"\n [title]=\"versionEntry.version | translate\"\n >\n {{ versionEntry.version }}\n </span>\n </li>\n <li class=\"c8y-right-drawer__item\">\n <button\n class=\"btn btn-default btn-sm\"\n [attr.tabindex]=\"(open$ | async) ? '0' : '-1'\"\n title=\"{{ 'Download platform details' | translate }}\"\n translate\n (click)=\"downloadPlatformDetails()\"\n >\n Download platform details\n </button>\n </li>\n </ul>\n</div>\n" }]
47
+ args: [{ selector: 'c8y-version-list', template: "<div class=\"separator-top p-t-8 p-b-8\">\n <div class=\"c8y-right-drawer__item sticky-top\">\n <i c8yIcon=\"c8y-c8y-c\"></i>\n <span class=\"text-bold\">{{ 'Platform info' | translate }}</span>\n </div>\n\n <ul class=\"list-unstyled\">\n <li\n class=\"c8y-right-drawer__item\"\n *ngIf=\"currentTenantId$ | async as tenantId\"\n >\n <span\n class=\"flex-grow text-muted m-0 text-12 text-truncate\"\n translate\n >\n Tenant ID\n </span>\n <button\n class=\"m-l-auto flex-no-shrink btn-clean p-0 btn-link\"\n title=\"{{ 'Copy tenant ID to the clipboard' | translate }}\"\n [attr.tabindex]=\"(open$ | async) ? '0' : '-1'\"\n type=\"button\"\n (click)=\"$event.stopPropagation(); copyIt(tenantId)\"\n >\n {{ tenantId }}\n <i\n class=\"text-14 m-0\"\n [c8yIcon]=\"'clipboard'\"\n ></i>\n </button>\n </li>\n <li\n class=\"c8y-right-drawer__item\"\n *ngFor=\"let versionEntry of versionsToDirectlyDisplay$ | async\"\n >\n <span\n class=\"flex-no-shrink text-muted text-12 text-truncate m-r-8\"\n [title]=\"versionEntry.label | translate\"\n >\n {{ versionEntry.label | translate }}\n </span>\n <span\n class=\"flex-grow text-right text-truncate\"\n [title]=\"versionEntry.version | translate\"\n >\n {{ versionEntry.version }}\n </span>\n </li>\n <li class=\"c8y-right-drawer__item\">\n <button\n class=\"btn btn-default btn-sm\"\n [attr.tabindex]=\"(open$ | async) ? '0' : '-1'\"\n title=\"{{ 'Download platform details' | translate }}\"\n (click)=\"downloadPlatformDetails()\"\n >\n <i c8yIcon=\"download\" class=\"m-t-0 m-b-0 text-14\"></i>\n <span translate>Download platform details</span>\n </button>\n </li>\n </ul>\n</div>\n" }]
48
48
  }], ctorParameters: () => [{ type: i1.VersionService }, { type: i2.AppStateService }, { type: i3.ClipboardService }, { type: i4.BsModalService }, { type: i5.PlatformDetailsService }, { type: i6.HeaderService }] });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2NvcmUvdmVyc2lvbi92ZXJzaW9uLWxpc3QvdmVyc2lvbi1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2NvcmUvdmVyc2lvbi92ZXJzaW9uLWxpc3QvdmVyc2lvbi1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXJELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxNQUFNLE1BQU0sWUFBWSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7Ozs7Ozs7QUFNckUsTUFBTSxPQUFPLG9CQUFvQjtJQUkvQixZQUNVLE9BQXVCLEVBQ3ZCLFFBQXlCLEVBQ3pCLGdCQUFrQyxFQUNsQyxZQUE0QixFQUM1QixlQUF1QyxFQUN2QyxhQUE0QjtRQUw1QixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUN6QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGlCQUFZLEdBQVosWUFBWSxDQUFnQjtRQUM1QixvQkFBZSxHQUFmLGVBQWUsQ0FBd0I7UUFDdkMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFFcEMsSUFBSSxDQUFDLDBCQUEwQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDO1FBQy9ELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ3RELEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsRUFDM0IsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUM5QixvQkFBb0IsRUFBRSxDQUN2QixDQUFDO1FBQ0YsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDO0lBQ25ELENBQUM7SUFFRCxLQUFLLENBQUMsdUJBQXVCO1FBQzNCLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQ2xFLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMvQyxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDOUIsTUFBTSxDQUFDLElBQUksRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBWTtRQUNqQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7K0dBOUJVLG9CQUFvQjttR0FBcEIsb0JBQW9CLHdEQ2hCakMsaTFEQTZEQTs7NEZEN0NhLG9CQUFvQjtrQkFKaEMsU0FBUzsrQkFDRSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJzTW9kYWxTZXJ2aWNlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDbGlwYm9hcmRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY2xpcGJvYXJkL2NsaXBib2FyZC5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcFN0YXRlU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbW1vbi91aS1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IEhlYWRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9oZWFkZXIvaGVhZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgVmVyc2lvbiB9IGZyb20gJy4uL3ZlcnNpb24ubW9kZWwnO1xuaW1wb3J0IHsgVmVyc2lvblNlcnZpY2UgfSBmcm9tICcuLi92ZXJzaW9uLnNlcnZpY2UnO1xuaW1wb3J0IHNhdmVBcyBmcm9tICdmaWxlLXNhdmVyJztcbmltcG9ydCB7IFBsYXRmb3JtRGV0YWlsc1NlcnZpY2UgfSBmcm9tICcuLi9wbGF0Zm9ybS1kZXRhaWxzLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktdmVyc2lvbi1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3ZlcnNpb24tbGlzdC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgVmVyc2lvbkxpc3RDb21wb25lbnQge1xuICBvcGVuJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgdmVyc2lvbnNUb0RpcmVjdGx5RGlzcGxheSQ6IE9ic2VydmFibGU8VmVyc2lvbltdPjtcbiAgY3VycmVudFRlbmFudElkJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHZlcnNpb246IFZlcnNpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgYXBwU3RhdGU6IEFwcFN0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIGNsaXBib2FyZFNlcnZpY2U6IENsaXBib2FyZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IEJzTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgcGxhdGZvcm1EZXRhaWxzOiBQbGF0Zm9ybURldGFpbHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgaGVhZGVyU2VydmljZTogSGVhZGVyU2VydmljZVxuICApIHtcbiAgICB0aGlzLnZlcnNpb25zVG9EaXJlY3RseURpc3BsYXkkID0gdGhpcy52ZXJzaW9uLm5vbkhpZGRlbkl0ZW1zJDtcbiAgICB0aGlzLmN1cnJlbnRUZW5hbnRJZCQgPSB0aGlzLmFwcFN0YXRlLmN1cnJlbnRUZW5hbnQucGlwZShcbiAgICAgIG1hcCh0ZW5hbnQgPT4gdGVuYW50Py5uYW1lKSxcbiAgICAgIGZpbHRlcih0ZW5hbnRJZCA9PiAhIXRlbmFudElkKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICApO1xuICAgIHRoaXMub3BlbiQgPSB0aGlzLmhlYWRlclNlcnZpY2UucmlnaHREcmF3ZXJPcGVuJDtcbiAgfVxuXG4gIGFzeW5jIGRvd25sb2FkUGxhdGZvcm1EZXRhaWxzKCkge1xuICAgIGNvbnN0IG9iaiA9IGF3YWl0IHRoaXMucGxhdGZvcm1EZXRhaWxzLmdldFBsYXRmb3JtRGV0YWlsc09iamVjdCgpO1xuICAgIGNvbnN0IGpzb24gPSBKU09OLnN0cmluZ2lmeShvYmosIHVuZGVmaW5lZCwgMik7XG4gICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtqc29uXSk7XG4gICAgc2F2ZUFzKGJsb2IsICdwbGF0Zm9ybS1kZXRhaWxzLmpzb24nKTtcbiAgfVxuXG4gIGNvcHlJdCh0ZXh0OiBzdHJpbmcpIHtcbiAgICB0aGlzLmNsaXBib2FyZFNlcnZpY2Uud3JpdGVUZXh0KHRleHQpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2VwYXJhdG9yLXRvcCBwLXQtOCBwLWItOFwiPlxuICA8ZGl2IGNsYXNzPVwiYzh5LXJpZ2h0LWRyYXdlcl9faXRlbSBzdGlja3ktdG9wXCI+XG4gICAgPGkgYzh5SWNvbj1cImM4eS1jdW11bG9jaXR5LWlvdFwiPjwvaT5cbiAgICA8c3BhbiBjbGFzcz1cInRleHQtYm9sZFwiPnt7ICdQbGF0Zm9ybSBpbmZvJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgPC9kaXY+XG5cbiAgPHVsIGNsYXNzPVwibGlzdC11bnN0eWxlZFwiPlxuICAgIDxsaVxuICAgICAgY2xhc3M9XCJjOHktcmlnaHQtZHJhd2VyX19pdGVtXCJcbiAgICAgICpuZ0lmPVwiY3VycmVudFRlbmFudElkJCB8IGFzeW5jIGFzIHRlbmFudElkXCJcbiAgICA+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cImZsZXgtZ3JvdyB0ZXh0LW11dGVkIG0tMCB0ZXh0LTEyIHRleHQtdHJ1bmNhdGVcIlxuICAgICAgICB0cmFuc2xhdGVcbiAgICAgID5cbiAgICAgICAgVGVuYW50IElEXG4gICAgICA8L3NwYW4+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwibS1sLWF1dG8gZmxleC1uby1zaHJpbmsgYnRuLWNsZWFuIHAtMCBidG4tbGlua1wiXG4gICAgICAgIHRpdGxlPVwie3sgJ0NvcHkgdGVuYW50IElEIHRvIHRoZSBjbGlwYm9hcmQnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwiKG9wZW4kIHwgYXN5bmMpID8gJzAnIDogJy0xJ1wiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBjb3B5SXQodGVuYW50SWQpXCJcbiAgICAgID5cbiAgICAgICAge3sgdGVuYW50SWQgfX1cbiAgICAgICAgPGlcbiAgICAgICAgICBjbGFzcz1cInRleHQtMTQgbS0wXCJcbiAgICAgICAgICBbYzh5SWNvbl09XCInY2xpcGJvYXJkJ1wiXG4gICAgICAgID48L2k+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2xpPlxuICAgIDxsaVxuICAgICAgY2xhc3M9XCJjOHktcmlnaHQtZHJhd2VyX19pdGVtXCJcbiAgICAgICpuZ0Zvcj1cImxldCB2ZXJzaW9uRW50cnkgb2YgdmVyc2lvbnNUb0RpcmVjdGx5RGlzcGxheSQgfCBhc3luY1wiXG4gICAgPlxuICAgICAgPHNwYW5cbiAgICAgICAgY2xhc3M9XCJmbGV4LW5vLXNocmluayB0ZXh0LW11dGVkIHRleHQtMTIgdGV4dC10cnVuY2F0ZSBtLXItOFwiXG4gICAgICAgIFt0aXRsZV09XCJ2ZXJzaW9uRW50cnkubGFiZWwgfCB0cmFuc2xhdGVcIlxuICAgICAgPlxuICAgICAgICB7eyB2ZXJzaW9uRW50cnkubGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuXG4gICAgICAgIGNsYXNzPVwiZmxleC1ncm93IHRleHQtcmlnaHQgdGV4dC10cnVuY2F0ZVwiXG4gICAgICAgIFt0aXRsZV09XCJ2ZXJzaW9uRW50cnkudmVyc2lvbiB8IHRyYW5zbGF0ZVwiXG4gICAgICA+XG4gICAgICAgIHt7IHZlcnNpb25FbnRyeS52ZXJzaW9uIH19XG4gICAgICA8L3NwYW4+XG4gICAgPC9saT5cbiAgICA8bGkgY2xhc3M9XCJjOHktcmlnaHQtZHJhd2VyX19pdGVtXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IGJ0bi1zbVwiXG4gICAgICAgIFthdHRyLnRhYmluZGV4XT1cIihvcGVuJCB8IGFzeW5jKSA/ICcwJyA6ICctMSdcIlxuICAgICAgICB0aXRsZT1cInt7ICdEb3dubG9hZCBwbGF0Zm9ybSBkZXRhaWxzJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAoY2xpY2spPVwiZG93bmxvYWRQbGF0Zm9ybURldGFpbHMoKVwiXG4gICAgICA+XG4gICAgICAgIERvd25sb2FkIHBsYXRmb3JtIGRldGFpbHNcbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvbGk+XG4gIDwvdWw+XG48L2Rpdj5cbiJdfQ==
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2NvcmUvdmVyc2lvbi92ZXJzaW9uLWxpc3QvdmVyc2lvbi1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2NvcmUvdmVyc2lvbi92ZXJzaW9uLWxpc3QvdmVyc2lvbi1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXJELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxNQUFNLE1BQU0sWUFBWSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7Ozs7Ozs7QUFNckUsTUFBTSxPQUFPLG9CQUFvQjtJQUkvQixZQUNVLE9BQXVCLEVBQ3ZCLFFBQXlCLEVBQ3pCLGdCQUFrQyxFQUNsQyxZQUE0QixFQUM1QixlQUF1QyxFQUN2QyxhQUE0QjtRQUw1QixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUN6QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGlCQUFZLEdBQVosWUFBWSxDQUFnQjtRQUM1QixvQkFBZSxHQUFmLGVBQWUsQ0FBd0I7UUFDdkMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFFcEMsSUFBSSxDQUFDLDBCQUEwQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDO1FBQy9ELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ3RELEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsRUFDM0IsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUM5QixvQkFBb0IsRUFBRSxDQUN2QixDQUFDO1FBQ0YsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDO0lBQ25ELENBQUM7SUFFRCxLQUFLLENBQUMsdUJBQXVCO1FBQzNCLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQ2xFLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMvQyxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDOUIsTUFBTSxDQUFDLElBQUksRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBWTtRQUNqQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7K0dBOUJVLG9CQUFvQjttR0FBcEIsb0JBQW9CLHdEQ2hCakMsZzVEQTZEQTs7NEZEN0NhLG9CQUFvQjtrQkFKaEMsU0FBUzsrQkFDRSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJzTW9kYWxTZXJ2aWNlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDbGlwYm9hcmRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY2xpcGJvYXJkL2NsaXBib2FyZC5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcFN0YXRlU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbW1vbi91aS1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IEhlYWRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9oZWFkZXIvaGVhZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgVmVyc2lvbiB9IGZyb20gJy4uL3ZlcnNpb24ubW9kZWwnO1xuaW1wb3J0IHsgVmVyc2lvblNlcnZpY2UgfSBmcm9tICcuLi92ZXJzaW9uLnNlcnZpY2UnO1xuaW1wb3J0IHNhdmVBcyBmcm9tICdmaWxlLXNhdmVyJztcbmltcG9ydCB7IFBsYXRmb3JtRGV0YWlsc1NlcnZpY2UgfSBmcm9tICcuLi9wbGF0Zm9ybS1kZXRhaWxzLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktdmVyc2lvbi1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3ZlcnNpb24tbGlzdC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgVmVyc2lvbkxpc3RDb21wb25lbnQge1xuICBvcGVuJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgdmVyc2lvbnNUb0RpcmVjdGx5RGlzcGxheSQ6IE9ic2VydmFibGU8VmVyc2lvbltdPjtcbiAgY3VycmVudFRlbmFudElkJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHZlcnNpb246IFZlcnNpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgYXBwU3RhdGU6IEFwcFN0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIGNsaXBib2FyZFNlcnZpY2U6IENsaXBib2FyZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IEJzTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgcGxhdGZvcm1EZXRhaWxzOiBQbGF0Zm9ybURldGFpbHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgaGVhZGVyU2VydmljZTogSGVhZGVyU2VydmljZVxuICApIHtcbiAgICB0aGlzLnZlcnNpb25zVG9EaXJlY3RseURpc3BsYXkkID0gdGhpcy52ZXJzaW9uLm5vbkhpZGRlbkl0ZW1zJDtcbiAgICB0aGlzLmN1cnJlbnRUZW5hbnRJZCQgPSB0aGlzLmFwcFN0YXRlLmN1cnJlbnRUZW5hbnQucGlwZShcbiAgICAgIG1hcCh0ZW5hbnQgPT4gdGVuYW50Py5uYW1lKSxcbiAgICAgIGZpbHRlcih0ZW5hbnRJZCA9PiAhIXRlbmFudElkKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICApO1xuICAgIHRoaXMub3BlbiQgPSB0aGlzLmhlYWRlclNlcnZpY2UucmlnaHREcmF3ZXJPcGVuJDtcbiAgfVxuXG4gIGFzeW5jIGRvd25sb2FkUGxhdGZvcm1EZXRhaWxzKCkge1xuICAgIGNvbnN0IG9iaiA9IGF3YWl0IHRoaXMucGxhdGZvcm1EZXRhaWxzLmdldFBsYXRmb3JtRGV0YWlsc09iamVjdCgpO1xuICAgIGNvbnN0IGpzb24gPSBKU09OLnN0cmluZ2lmeShvYmosIHVuZGVmaW5lZCwgMik7XG4gICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtqc29uXSk7XG4gICAgc2F2ZUFzKGJsb2IsICdwbGF0Zm9ybS1kZXRhaWxzLmpzb24nKTtcbiAgfVxuXG4gIGNvcHlJdCh0ZXh0OiBzdHJpbmcpIHtcbiAgICB0aGlzLmNsaXBib2FyZFNlcnZpY2Uud3JpdGVUZXh0KHRleHQpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2VwYXJhdG9yLXRvcCBwLXQtOCBwLWItOFwiPlxuICA8ZGl2IGNsYXNzPVwiYzh5LXJpZ2h0LWRyYXdlcl9faXRlbSBzdGlja3ktdG9wXCI+XG4gICAgPGkgYzh5SWNvbj1cImM4eS1jOHktY1wiPjwvaT5cbiAgICA8c3BhbiBjbGFzcz1cInRleHQtYm9sZFwiPnt7ICdQbGF0Zm9ybSBpbmZvJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgPC9kaXY+XG5cbiAgPHVsIGNsYXNzPVwibGlzdC11bnN0eWxlZFwiPlxuICAgIDxsaVxuICAgICAgY2xhc3M9XCJjOHktcmlnaHQtZHJhd2VyX19pdGVtXCJcbiAgICAgICpuZ0lmPVwiY3VycmVudFRlbmFudElkJCB8IGFzeW5jIGFzIHRlbmFudElkXCJcbiAgICA+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cImZsZXgtZ3JvdyB0ZXh0LW11dGVkIG0tMCB0ZXh0LTEyIHRleHQtdHJ1bmNhdGVcIlxuICAgICAgICB0cmFuc2xhdGVcbiAgICAgID5cbiAgICAgICAgVGVuYW50IElEXG4gICAgICA8L3NwYW4+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwibS1sLWF1dG8gZmxleC1uby1zaHJpbmsgYnRuLWNsZWFuIHAtMCBidG4tbGlua1wiXG4gICAgICAgIHRpdGxlPVwie3sgJ0NvcHkgdGVuYW50IElEIHRvIHRoZSBjbGlwYm9hcmQnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwiKG9wZW4kIHwgYXN5bmMpID8gJzAnIDogJy0xJ1wiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBjb3B5SXQodGVuYW50SWQpXCJcbiAgICAgID5cbiAgICAgICAge3sgdGVuYW50SWQgfX1cbiAgICAgICAgPGlcbiAgICAgICAgICBjbGFzcz1cInRleHQtMTQgbS0wXCJcbiAgICAgICAgICBbYzh5SWNvbl09XCInY2xpcGJvYXJkJ1wiXG4gICAgICAgID48L2k+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2xpPlxuICAgIDxsaVxuICAgICAgY2xhc3M9XCJjOHktcmlnaHQtZHJhd2VyX19pdGVtXCJcbiAgICAgICpuZ0Zvcj1cImxldCB2ZXJzaW9uRW50cnkgb2YgdmVyc2lvbnNUb0RpcmVjdGx5RGlzcGxheSQgfCBhc3luY1wiXG4gICAgPlxuICAgICAgPHNwYW5cbiAgICAgICAgY2xhc3M9XCJmbGV4LW5vLXNocmluayB0ZXh0LW11dGVkIHRleHQtMTIgdGV4dC10cnVuY2F0ZSBtLXItOFwiXG4gICAgICAgIFt0aXRsZV09XCJ2ZXJzaW9uRW50cnkubGFiZWwgfCB0cmFuc2xhdGVcIlxuICAgICAgPlxuICAgICAgICB7eyB2ZXJzaW9uRW50cnkubGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuXG4gICAgICAgIGNsYXNzPVwiZmxleC1ncm93IHRleHQtcmlnaHQgdGV4dC10cnVuY2F0ZVwiXG4gICAgICAgIFt0aXRsZV09XCJ2ZXJzaW9uRW50cnkudmVyc2lvbiB8IHRyYW5zbGF0ZVwiXG4gICAgICA+XG4gICAgICAgIHt7IHZlcnNpb25FbnRyeS52ZXJzaW9uIH19XG4gICAgICA8L3NwYW4+XG4gICAgPC9saT5cbiAgICA8bGkgY2xhc3M9XCJjOHktcmlnaHQtZHJhd2VyX19pdGVtXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IGJ0bi1zbVwiXG4gICAgICAgIFthdHRyLnRhYmluZGV4XT1cIihvcGVuJCB8IGFzeW5jKSA/ICcwJyA6ICctMSdcIlxuICAgICAgICB0aXRsZT1cInt7ICdEb3dubG9hZCBwbGF0Zm9ybSBkZXRhaWxzJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgIChjbGljayk9XCJkb3dubG9hZFBsYXRmb3JtRGV0YWlscygpXCJcbiAgICAgID5cbiAgICAgICAgPGkgYzh5SWNvbj1cImRvd25sb2FkXCIgY2xhc3M9XCJtLXQtMCBtLWItMCB0ZXh0LTE0XCI+PC9pPlxuICAgICAgICA8c3BhbiB0cmFuc2xhdGU+RG93bmxvYWQgcGxhdGZvcm0gZGV0YWlsczwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvbGk+XG4gIDwvdWw+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,31 @@
1
+ import { inject, Injectable } from '@angular/core';
2
+ import { gettext, NavigatorNode, PreviewService } from '@c8y/ngx-components';
3
+ import { map } from 'rxjs';
4
+ import * as i0 from "@angular/core";
5
+ export class DatapointExplorerNavigationFactory {
6
+ constructor() {
7
+ this.betaPreviewService = inject(PreviewService);
8
+ }
9
+ get() {
10
+ return this.betaPreviewService.getState$('ui.datapoint-explorer.v2').pipe(map(state => {
11
+ if (state) {
12
+ return [
13
+ new NavigatorNode({
14
+ label: gettext('Data explorer'),
15
+ featureId: 'dataPointExplorer',
16
+ path: 'datapointexplorer-v2',
17
+ icon: 'c8y-data-explorer',
18
+ routerLinkExact: false
19
+ })
20
+ ];
21
+ }
22
+ return [];
23
+ }));
24
+ }
25
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DatapointExplorerNavigationFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
26
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DatapointExplorerNavigationFactory }); }
27
+ }
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DatapointExplorerNavigationFactory, decorators: [{
29
+ type: Injectable
30
+ }] });
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXBvaW50LWV4cGxvcmVyLW5hdmlnYXRpb24tZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2RhdGFwb2ludC1leHBsb3Jlci9kYXRhcG9pbnQtZXhwbG9yZXItbmF2aWdhdGlvbi1mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUF3QixjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRyxPQUFPLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDOztBQUd2QyxNQUFNLE9BQU8sa0NBQWtDO0lBRC9DO1FBRW1CLHVCQUFrQixHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztLQW9COUQ7SUFsQkMsR0FBRztRQUNELE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLElBQUksQ0FDdkUsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ1YsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDVixPQUFPO29CQUNMLElBQUksYUFBYSxDQUFDO3dCQUNoQixLQUFLLEVBQUUsT0FBTyxDQUFDLGVBQWUsQ0FBQzt3QkFDL0IsU0FBUyxFQUFFLG1CQUFtQjt3QkFDOUIsSUFBSSxFQUFFLHNCQUFzQjt3QkFDNUIsSUFBSSxFQUFFLG1CQUFtQjt3QkFDekIsZUFBZSxFQUFFLEtBQUs7cUJBQ3ZCLENBQUM7aUJBQ0gsQ0FBQztZQUNKLENBQUM7WUFDRCxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDOytHQXBCVSxrQ0FBa0M7bUhBQWxDLGtDQUFrQzs7NEZBQWxDLGtDQUFrQztrQkFEOUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0dGV4dCwgTmF2aWdhdG9yTm9kZSwgTmF2aWdhdG9yTm9kZUZhY3RvcnksIFByZXZpZXdTZXJ2aWNlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERhdGFwb2ludEV4cGxvcmVyTmF2aWdhdGlvbkZhY3RvcnkgaW1wbGVtZW50cyBOYXZpZ2F0b3JOb2RlRmFjdG9yeSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYmV0YVByZXZpZXdTZXJ2aWNlID0gaW5qZWN0KFByZXZpZXdTZXJ2aWNlKTtcblxuICBnZXQoKTogT2JzZXJ2YWJsZTxOYXZpZ2F0b3JOb2RlW10+IHtcbiAgICByZXR1cm4gdGhpcy5iZXRhUHJldmlld1NlcnZpY2UuZ2V0U3RhdGUkKCd1aS5kYXRhcG9pbnQtZXhwbG9yZXIudjInKS5waXBlKFxuICAgICAgbWFwKHN0YXRlID0+IHtcbiAgICAgICAgaWYgKHN0YXRlKSB7XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIG5ldyBOYXZpZ2F0b3JOb2RlKHtcbiAgICAgICAgICAgICAgbGFiZWw6IGdldHRleHQoJ0RhdGEgZXhwbG9yZXInKSxcbiAgICAgICAgICAgICAgZmVhdHVyZUlkOiAnZGF0YVBvaW50RXhwbG9yZXInLFxuICAgICAgICAgICAgICBwYXRoOiAnZGF0YXBvaW50ZXhwbG9yZXItdjInLFxuICAgICAgICAgICAgICBpY29uOiAnYzh5LWRhdGEtZXhwbG9yZXInLFxuICAgICAgICAgICAgICByb3V0ZXJMaW5rRXhhY3Q6IGZhbHNlXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfSlcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,37 @@
1
+ import { inject, Injectable } from '@angular/core';
2
+ import { gettext, PreviewService, ViewContext } from '@c8y/ngx-components';
3
+ import { map } from 'rxjs';
4
+ import * as i0 from "@angular/core";
5
+ export class DatapointExplorerRouteFactory {
6
+ constructor() {
7
+ this.betaPreviewService = inject(PreviewService);
8
+ }
9
+ get() {
10
+ return this.betaPreviewService.getState$('ui.datapoint-explorer.v2').pipe(map(state => {
11
+ if (state) {
12
+ return [
13
+ {
14
+ path: 'datapointexplorer-v2',
15
+ loadComponent: () => import('@c8y/ngx-components/datapoint-explorer/view').then(m => m.DatapointExplorerComponent)
16
+ },
17
+ {
18
+ context: ViewContext.Group,
19
+ path: 'data_explorer-v2',
20
+ priority: 800,
21
+ icon: 'c8y-data-explorer',
22
+ label: gettext('Data Explorer'),
23
+ loadComponent: () => import('@c8y/ngx-components/datapoint-explorer/view').then(m => m.DatapointExplorerComponent),
24
+ featureId: 'dataExplorer'
25
+ }
26
+ ];
27
+ }
28
+ return [];
29
+ }));
30
+ }
31
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DatapointExplorerRouteFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
32
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DatapointExplorerRouteFactory }); }
33
+ }
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DatapointExplorerRouteFactory, decorators: [{
35
+ type: Injectable
36
+ }] });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXBvaW50LWV4cGxvcmVyLXJvdXRlLWZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9kYXRhcG9pbnQtZXhwbG9yZXIvZGF0YXBvaW50LWV4cGxvcmVyLXJvdXRlLWZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUVMLE9BQU8sRUFDUCxjQUFjLEVBR2QsV0FBVyxFQUNaLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQzs7QUFHdkMsTUFBTSxPQUFPLDZCQUE2QjtJQUQxQztRQUVtQix1QkFBa0IsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7S0FnQzlEO0lBOUJDLEdBQUc7UUFDRCxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxJQUFJLENBQ3ZFLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNWLElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQ1YsT0FBTztvQkFDTDt3QkFDRSxJQUFJLEVBQUUsc0JBQXNCO3dCQUM1QixhQUFhLEVBQUUsR0FBRyxFQUFFLENBQ2xCLE1BQU0sQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDLElBQUksQ0FDeEQsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsMEJBQTBCLENBQ2xDO3FCQUNrQjtvQkFDdkI7d0JBQ0UsT0FBTyxFQUFFLFdBQVcsQ0FBQyxLQUFLO3dCQUMxQixJQUFJLEVBQUUsa0JBQWtCO3dCQUN4QixRQUFRLEVBQUUsR0FBRzt3QkFDYixJQUFJLEVBQUUsbUJBQW1CO3dCQUN6QixLQUFLLEVBQUUsT0FBTyxDQUFDLGVBQWUsQ0FBQzt3QkFDL0IsYUFBYSxFQUFFLEdBQUcsRUFBRSxDQUNsQixNQUFNLENBQUMsNkNBQTZDLENBQUMsQ0FBQyxJQUFJLENBQ3hELENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLDBCQUEwQixDQUNsQzt3QkFDSCxTQUFTLEVBQUUsY0FBYztxQkFDMUI7aUJBQ0YsQ0FBQztZQUNKLENBQUM7WUFDRCxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDOytHQWhDVSw2QkFBNkI7bUhBQTdCLDZCQUE2Qjs7NEZBQTdCLDZCQUE2QjtrQkFEekMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgRXh0ZW5zaW9uRmFjdG9yeSxcbiAgZ2V0dGV4dCxcbiAgUHJldmlld1NlcnZpY2UsXG4gIFJvdXRlLFxuICBSb3V0ZVdpdGhDb21wb25lbnQsXG4gIFZpZXdDb250ZXh0XG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEYXRhcG9pbnRFeHBsb3JlclJvdXRlRmFjdG9yeSBpbXBsZW1lbnRzIEV4dGVuc2lvbkZhY3Rvcnk8Um91dGU+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBiZXRhUHJldmlld1NlcnZpY2UgPSBpbmplY3QoUHJldmlld1NlcnZpY2UpO1xuXG4gIGdldCgpOiBPYnNlcnZhYmxlPFJvdXRlW10+IHtcbiAgICByZXR1cm4gdGhpcy5iZXRhUHJldmlld1NlcnZpY2UuZ2V0U3RhdGUkKCd1aS5kYXRhcG9pbnQtZXhwbG9yZXIudjInKS5waXBlKFxuICAgICAgbWFwKHN0YXRlID0+IHtcbiAgICAgICAgaWYgKHN0YXRlKSB7XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgcGF0aDogJ2RhdGFwb2ludGV4cGxvcmVyLXYyJyxcbiAgICAgICAgICAgICAgbG9hZENvbXBvbmVudDogKCkgPT5cbiAgICAgICAgICAgICAgICBpbXBvcnQoJ0BjOHkvbmd4LWNvbXBvbmVudHMvZGF0YXBvaW50LWV4cGxvcmVyL3ZpZXcnKS50aGVuKFxuICAgICAgICAgICAgICAgICAgbSA9PiBtLkRhdGFwb2ludEV4cGxvcmVyQ29tcG9uZW50XG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfSBhcyBSb3V0ZVdpdGhDb21wb25lbnQsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGNvbnRleHQ6IFZpZXdDb250ZXh0Lkdyb3VwLFxuICAgICAgICAgICAgICBwYXRoOiAnZGF0YV9leHBsb3Jlci12MicsXG4gICAgICAgICAgICAgIHByaW9yaXR5OiA4MDAsXG4gICAgICAgICAgICAgIGljb246ICdjOHktZGF0YS1leHBsb3JlcicsXG4gICAgICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdEYXRhIEV4cGxvcmVyJyksXG4gICAgICAgICAgICAgIGxvYWRDb21wb25lbnQ6ICgpID0+XG4gICAgICAgICAgICAgICAgaW1wb3J0KCdAYzh5L25neC1jb21wb25lbnRzL2RhdGFwb2ludC1leHBsb3Jlci92aWV3JykudGhlbihcbiAgICAgICAgICAgICAgICAgIG0gPT4gbS5EYXRhcG9pbnRFeHBsb3JlckNvbXBvbmVudFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIGZlYXR1cmVJZDogJ2RhdGFFeHBsb3JlcidcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -1,65 +1,39 @@
1
1
  import { NgModule } from '@angular/core';
2
- import { gettext, hookNavigator, hookRoute, NavigatorNode, ViewContext } from '@c8y/ngx-components';
2
+ import { hookNavigator, hookRoute, hookPreview } from '@c8y/ngx-components';
3
+ import { DatapointExplorerNavigationFactory } from './datapoint-explorer-navigation-factory';
4
+ import { DatapointExplorerRouteFactory } from './datapoint-explorer-route-factory';
3
5
  import * as i0 from "@angular/core";
4
6
  export class DatapointExplorerModule {
5
7
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DatapointExplorerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6
8
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: DatapointExplorerModule }); }
7
9
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DatapointExplorerModule, providers: [
8
- hookRoute([
9
- {
10
- path: 'datapointexplorer-v2',
11
- loadComponent: () => import('@c8y/ngx-components/datapoint-explorer/view').then(m => m.DatapointExplorerComponent)
12
- },
13
- {
14
- context: ViewContext.Group,
15
- path: 'data_explorer-v2',
16
- priority: 800,
17
- icon: 'c8y-data-explorer',
18
- label: gettext('Data Explorer "new"'),
19
- loadComponent: () => import('@c8y/ngx-components/datapoint-explorer/view').then(m => m.DatapointExplorerComponent),
20
- featureId: 'dataExplorer'
10
+ hookRoute(DatapointExplorerRouteFactory),
11
+ hookNavigator(DatapointExplorerNavigationFactory),
12
+ hookPreview({
13
+ key: 'ui.datapoint-explorer.v2',
14
+ label: 'Data point explorer',
15
+ description: () => import('@c8y/style/markdown-files/datapoint-explorer-preview.md').then(m => m.default),
16
+ settings: {
17
+ reload: true
21
18
  }
22
- ]),
23
- hookNavigator([
24
- new NavigatorNode({
25
- label: gettext('Data explorer "new"'),
26
- featureId: 'dataPointExplorer',
27
- path: 'datapointexplorer-v2',
28
- icon: 'c8y-data-explorer',
29
- routerLinkExact: false
30
- })
31
- ])
19
+ })
32
20
  ] }); }
33
21
  }
34
22
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DatapointExplorerModule, decorators: [{
35
23
  type: NgModule,
36
24
  args: [{
37
25
  providers: [
38
- hookRoute([
39
- {
40
- path: 'datapointexplorer-v2',
41
- loadComponent: () => import('@c8y/ngx-components/datapoint-explorer/view').then(m => m.DatapointExplorerComponent)
42
- },
43
- {
44
- context: ViewContext.Group,
45
- path: 'data_explorer-v2',
46
- priority: 800,
47
- icon: 'c8y-data-explorer',
48
- label: gettext('Data Explorer "new"'),
49
- loadComponent: () => import('@c8y/ngx-components/datapoint-explorer/view').then(m => m.DatapointExplorerComponent),
50
- featureId: 'dataExplorer'
26
+ hookRoute(DatapointExplorerRouteFactory),
27
+ hookNavigator(DatapointExplorerNavigationFactory),
28
+ hookPreview({
29
+ key: 'ui.datapoint-explorer.v2',
30
+ label: 'Data point explorer',
31
+ description: () => import('@c8y/style/markdown-files/datapoint-explorer-preview.md').then(m => m.default),
32
+ settings: {
33
+ reload: true
51
34
  }
52
- ]),
53
- hookNavigator([
54
- new NavigatorNode({
55
- label: gettext('Data explorer "new"'),
56
- featureId: 'dataPointExplorer',
57
- path: 'datapointexplorer-v2',
58
- icon: 'c8y-data-explorer',
59
- routerLinkExact: false
60
- })
61
- ])
35
+ })
62
36
  ]
63
37
  }]
64
38
  }] });
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXBvaW50LWV4cGxvcmVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2RhdGFwb2ludC1leHBsb3Jlci9kYXRhcG9pbnQtZXhwbG9yZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFvQ3BHLE1BQU0sT0FBTyx1QkFBdUI7K0dBQXZCLHVCQUF1QjtnSEFBdkIsdUJBQXVCO2dIQUF2Qix1QkFBdUIsYUFqQ3ZCO1lBQ1QsU0FBUyxDQUFDO2dCQUNSO29CQUNFLElBQUksRUFBRSxzQkFBc0I7b0JBQzVCLGFBQWEsRUFBRSxHQUFHLEVBQUUsQ0FDbEIsTUFBTSxDQUFDLDZDQUE2QyxDQUFDLENBQUMsSUFBSSxDQUN4RCxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQywwQkFBMEIsQ0FDbEM7aUJBQ0o7Z0JBQ0Q7b0JBQ0UsT0FBTyxFQUFFLFdBQVcsQ0FBQyxLQUFLO29CQUMxQixJQUFJLEVBQUUsa0JBQWtCO29CQUN4QixRQUFRLEVBQUUsR0FBRztvQkFDYixJQUFJLEVBQUUsbUJBQW1CO29CQUN6QixLQUFLLEVBQUUsT0FBTyxDQUFDLHFCQUFxQixDQUFDO29CQUNyQyxhQUFhLEVBQUUsR0FBRyxFQUFFLENBQ2xCLE1BQU0sQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDLElBQUksQ0FDeEQsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsMEJBQTBCLENBQ2xDO29CQUNILFNBQVMsRUFBRSxjQUFjO2lCQUMxQjthQUNGLENBQUM7WUFDRixhQUFhLENBQUM7Z0JBQ1osSUFBSSxhQUFhLENBQUM7b0JBQ2hCLEtBQUssRUFBRSxPQUFPLENBQUMscUJBQXFCLENBQUM7b0JBQ3JDLFNBQVMsRUFBRSxtQkFBbUI7b0JBQzlCLElBQUksRUFBRSxzQkFBc0I7b0JBQzVCLElBQUksRUFBRSxtQkFBbUI7b0JBQ3pCLGVBQWUsRUFBRSxLQUFLO2lCQUN2QixDQUFDO2FBQ0gsQ0FBQztTQUNIOzs0RkFFVSx1QkFBdUI7a0JBbENuQyxRQUFRO21CQUFDO29CQUNSLFNBQVMsRUFBRTt3QkFDVCxTQUFTLENBQUM7NEJBQ1I7Z0NBQ0UsSUFBSSxFQUFFLHNCQUFzQjtnQ0FDNUIsYUFBYSxFQUFFLEdBQUcsRUFBRSxDQUNsQixNQUFNLENBQUMsNkNBQTZDLENBQUMsQ0FBQyxJQUFJLENBQ3hELENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLDBCQUEwQixDQUNsQzs2QkFDSjs0QkFDRDtnQ0FDRSxPQUFPLEVBQUUsV0FBVyxDQUFDLEtBQUs7Z0NBQzFCLElBQUksRUFBRSxrQkFBa0I7Z0NBQ3hCLFFBQVEsRUFBRSxHQUFHO2dDQUNiLElBQUksRUFBRSxtQkFBbUI7Z0NBQ3pCLEtBQUssRUFBRSxPQUFPLENBQUMscUJBQXFCLENBQUM7Z0NBQ3JDLGFBQWEsRUFBRSxHQUFHLEVBQUUsQ0FDbEIsTUFBTSxDQUFDLDZDQUE2QyxDQUFDLENBQUMsSUFBSSxDQUN4RCxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQywwQkFBMEIsQ0FDbEM7Z0NBQ0gsU0FBUyxFQUFFLGNBQWM7NkJBQzFCO3lCQUNGLENBQUM7d0JBQ0YsYUFBYSxDQUFDOzRCQUNaLElBQUksYUFBYSxDQUFDO2dDQUNoQixLQUFLLEVBQUUsT0FBTyxDQUFDLHFCQUFxQixDQUFDO2dDQUNyQyxTQUFTLEVBQUUsbUJBQW1CO2dDQUM5QixJQUFJLEVBQUUsc0JBQXNCO2dDQUM1QixJQUFJLEVBQUUsbUJBQW1CO2dDQUN6QixlQUFlLEVBQUUsS0FBSzs2QkFDdkIsQ0FBQzt5QkFDSCxDQUFDO3FCQUNIO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldHRleHQsIGhvb2tOYXZpZ2F0b3IsIGhvb2tSb3V0ZSwgTmF2aWdhdG9yTm9kZSwgVmlld0NvbnRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcblxuQE5nTW9kdWxlKHtcbiAgcHJvdmlkZXJzOiBbXG4gICAgaG9va1JvdXRlKFtcbiAgICAgIHtcbiAgICAgICAgcGF0aDogJ2RhdGFwb2ludGV4cGxvcmVyLXYyJyxcbiAgICAgICAgbG9hZENvbXBvbmVudDogKCkgPT5cbiAgICAgICAgICBpbXBvcnQoJ0BjOHkvbmd4LWNvbXBvbmVudHMvZGF0YXBvaW50LWV4cGxvcmVyL3ZpZXcnKS50aGVuKFxuICAgICAgICAgICAgbSA9PiBtLkRhdGFwb2ludEV4cGxvcmVyQ29tcG9uZW50XG4gICAgICAgICAgKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY29udGV4dDogVmlld0NvbnRleHQuR3JvdXAsXG4gICAgICAgIHBhdGg6ICdkYXRhX2V4cGxvcmVyLXYyJyxcbiAgICAgICAgcHJpb3JpdHk6IDgwMCxcbiAgICAgICAgaWNvbjogJ2M4eS1kYXRhLWV4cGxvcmVyJyxcbiAgICAgICAgbGFiZWw6IGdldHRleHQoJ0RhdGEgRXhwbG9yZXIgXCJuZXdcIicpLFxuICAgICAgICBsb2FkQ29tcG9uZW50OiAoKSA9PlxuICAgICAgICAgIGltcG9ydCgnQGM4eS9uZ3gtY29tcG9uZW50cy9kYXRhcG9pbnQtZXhwbG9yZXIvdmlldycpLnRoZW4oXG4gICAgICAgICAgICBtID0+IG0uRGF0YXBvaW50RXhwbG9yZXJDb21wb25lbnRcbiAgICAgICAgICApLFxuICAgICAgICBmZWF0dXJlSWQ6ICdkYXRhRXhwbG9yZXInXG4gICAgICB9XG4gICAgXSksXG4gICAgaG9va05hdmlnYXRvcihbXG4gICAgICBuZXcgTmF2aWdhdG9yTm9kZSh7XG4gICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdEYXRhIGV4cGxvcmVyIFwibmV3XCInKSxcbiAgICAgICAgZmVhdHVyZUlkOiAnZGF0YVBvaW50RXhwbG9yZXInLFxuICAgICAgICBwYXRoOiAnZGF0YXBvaW50ZXhwbG9yZXItdjInLFxuICAgICAgICBpY29uOiAnYzh5LWRhdGEtZXhwbG9yZXInLFxuICAgICAgICByb3V0ZXJMaW5rRXhhY3Q6IGZhbHNlXG4gICAgICB9KVxuICAgIF0pXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRGF0YXBvaW50RXhwbG9yZXJNb2R1bGUge31cbiJdfQ==
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXBvaW50LWV4cGxvcmVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2RhdGFwb2ludC1leHBsb3Jlci9kYXRhcG9pbnQtZXhwbG9yZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUUsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDN0YsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7O0FBaUJuRixNQUFNLE9BQU8sdUJBQXVCOytHQUF2Qix1QkFBdUI7Z0hBQXZCLHVCQUF1QjtnSEFBdkIsdUJBQXVCLGFBZHZCO1lBQ1QsU0FBUyxDQUFDLDZCQUE2QixDQUFDO1lBQ3hDLGFBQWEsQ0FBQyxrQ0FBa0MsQ0FBQztZQUNqRCxXQUFXLENBQUM7Z0JBQ1YsR0FBRyxFQUFFLDBCQUEwQjtnQkFDL0IsS0FBSyxFQUFFLHFCQUFxQjtnQkFDNUIsV0FBVyxFQUFFLEdBQUcsRUFBRSxDQUNoQixNQUFNLENBQUMseURBQXlELENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO2dCQUN4RixRQUFRLEVBQUU7b0JBQ1IsTUFBTSxFQUFFLElBQUk7aUJBQ2I7YUFDRixDQUFDO1NBQ0g7OzRGQUVVLHVCQUF1QjtrQkFmbkMsUUFBUTttQkFBQztvQkFDUixTQUFTLEVBQUU7d0JBQ1QsU0FBUyxDQUFDLDZCQUE2QixDQUFDO3dCQUN4QyxhQUFhLENBQUMsa0NBQWtDLENBQUM7d0JBQ2pELFdBQVcsQ0FBQzs0QkFDVixHQUFHLEVBQUUsMEJBQTBCOzRCQUMvQixLQUFLLEVBQUUscUJBQXFCOzRCQUM1QixXQUFXLEVBQUUsR0FBRyxFQUFFLENBQ2hCLE1BQU0sQ0FBQyx5REFBeUQsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7NEJBQ3hGLFFBQVEsRUFBRTtnQ0FDUixNQUFNLEVBQUUsSUFBSTs2QkFDYjt5QkFDRixDQUFDO3FCQUNIO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGhvb2tOYXZpZ2F0b3IsIGhvb2tSb3V0ZSwgaG9va1ByZXZpZXcgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IERhdGFwb2ludEV4cGxvcmVyTmF2aWdhdGlvbkZhY3RvcnkgfSBmcm9tICcuL2RhdGFwb2ludC1leHBsb3Jlci1uYXZpZ2F0aW9uLWZhY3RvcnknO1xuaW1wb3J0IHsgRGF0YXBvaW50RXhwbG9yZXJSb3V0ZUZhY3RvcnkgfSBmcm9tICcuL2RhdGFwb2ludC1leHBsb3Jlci1yb3V0ZS1mYWN0b3J5JztcblxuQE5nTW9kdWxlKHtcbiAgcHJvdmlkZXJzOiBbXG4gICAgaG9va1JvdXRlKERhdGFwb2ludEV4cGxvcmVyUm91dGVGYWN0b3J5KSxcbiAgICBob29rTmF2aWdhdG9yKERhdGFwb2ludEV4cGxvcmVyTmF2aWdhdGlvbkZhY3RvcnkpLFxuICAgIGhvb2tQcmV2aWV3KHtcbiAgICAgIGtleTogJ3VpLmRhdGFwb2ludC1leHBsb3Jlci52MicsXG4gICAgICBsYWJlbDogJ0RhdGEgcG9pbnQgZXhwbG9yZXInLFxuICAgICAgZGVzY3JpcHRpb246ICgpID0+XG4gICAgICAgIGltcG9ydCgnQGM4eS9zdHlsZS9tYXJrZG93bi1maWxlcy9kYXRhcG9pbnQtZXhwbG9yZXItcHJldmlldy5tZCcpLnRoZW4obSA9PiBtLmRlZmF1bHQpLFxuICAgICAgc2V0dGluZ3M6IHtcbiAgICAgICAgcmVsb2FkOiB0cnVlXG4gICAgICB9XG4gICAgfSlcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBEYXRhcG9pbnRFeHBsb3Jlck1vZHVsZSB7fVxuIl19
@@ -1,7 +1,7 @@
1
1
  import { Component, ViewChild } from '@angular/core';
2
2
  import { FormGroup } from '@angular/forms';
3
- import { DeviceRegistrationBulkService, FeatureService } from '@c8y/client';
4
- import { C8yJSONSchema, C8yStepper, GainsightService, gettext } from '@c8y/ngx-components';
3
+ import { DeviceRegistrationBulkService } from '@c8y/client';
4
+ import { C8yJSONSchema, C8yStepper, FeatureCacheService, GainsightService, gettext } from '@c8y/ngx-components';
5
5
  import { saveAs } from 'file-saver';
6
6
  import { BsModalRef } from 'ngx-bootstrap/modal';
7
7
  import { PRODUCT_EXPERIENCE_BASE_REGISTRATION } from '../extensible/base-device-registration.model';
@@ -44,19 +44,17 @@ const csvHeaders = [
44
44
  const fullCsvHeaders = [...csvHeaders, 'CREDENTIALS'];
45
45
  export const ESTCsvHeaders = [...csvHeaders, 'ENROLLMENT_OTP'];
46
46
  export class BulkDeviceRegistrationModalComponent {
47
- constructor(jsonschema, deviceRegistrationService, registerDeviceService, bsModalRef, gainsightService, featureService, translateService) {
47
+ constructor(jsonschema, deviceRegistrationService, registerDeviceService, bsModalRef, gainsightService, featureCacheService, translateService) {
48
48
  this.jsonschema = jsonschema;
49
49
  this.deviceRegistrationService = deviceRegistrationService;
50
50
  this.registerDeviceService = registerDeviceService;
51
51
  this.bsModalRef = bsModalRef;
52
52
  this.gainsightService = gainsightService;
53
- this.featureService = featureService;
53
+ this.featureCacheService = featureCacheService;
54
54
  this.translateService = translateService;
55
55
  this.form = new FormGroup({});
56
56
  this.model = {};
57
- this.certificateAuthorityFeatureEnabled = this.featureService
58
- .detail('certificate-authority')
59
- .then(({ data }) => data.active);
57
+ this.certificateAuthorityFeatureEnabled = this.featureCacheService.getFeatureState('certificate-authority');
60
58
  }
61
59
  ngOnInit() {
62
60
  this.template = [this.jsonschema.toFieldConfig(registerDeviceBulkSchema)];
@@ -129,14 +127,14 @@ export class BulkDeviceRegistrationModalComponent {
129
127
  const csvBulkFile = model?.csvBulkFile;
130
128
  return csvBulkFile ? csvBulkFile[0]?.file : undefined;
131
129
  }
132
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BulkDeviceRegistrationModalComponent, deps: [{ token: i1.C8yJSONSchema }, { token: i2.DeviceRegistrationBulkService }, { token: i3.RegisterDeviceService }, { token: i4.BsModalRef }, { token: i1.GainsightService }, { token: i2.FeatureService }, { token: i5.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
130
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BulkDeviceRegistrationModalComponent, deps: [{ token: i1.C8yJSONSchema }, { token: i2.DeviceRegistrationBulkService }, { token: i3.RegisterDeviceService }, { token: i4.BsModalRef }, { token: i1.GainsightService }, { token: i1.FeatureCacheService }, { token: i5.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
133
131
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", 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=\"bg-gray-white separator-bottom p-t-16 p-b-16 p-l-24 p-r-24\">\n <div>\n <p class=\"m-b-8 text-medium\">\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=\"bg-gray-white separator-bottom p-t-16 p-b-16 p-l-24 p-r-24\">\n <div>\n <p class=\"m-b-8 text-medium\">\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 class=\"bg-gray-white separator-bottom p-t-16 p-b-16 p-l-24 p-r-24\" *ngIf=\"certificateAuthorityFeatureEnabled | async\">\n <div>\n <p class=\"m-b-8 text-medium\">\n <strong translate>Full registration with device certificate creation</strong>\n </p>\n <small class=\"text-muted\" translate>\n Creates device certificates and devices using the provided list of property values. Once the certificates are provisioned, the devices can immediately start communicating with the platform\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)=\"downloadEst()\"\n >\n <i c8yIcon=\"download\"></i>\n {{ 'Download template' | translate }}\n </a>\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 have been processed.' | translate }}</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: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i6.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: 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: 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", "highlighted", "emptyActions", "dense", "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: i8.FormlyForm, selector: "formly-form", inputs: ["form", "model", "fields", "options"], outputs: ["modelChange"] }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.JsonPipe, name: "json" }] }); }
134
132
  }
135
133
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BulkDeviceRegistrationModalComponent, decorators: [{
136
134
  type: Component,
137
135
  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=\"bg-gray-white separator-bottom p-t-16 p-b-16 p-l-24 p-r-24\">\n <div>\n <p class=\"m-b-8 text-medium\">\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=\"bg-gray-white separator-bottom p-t-16 p-b-16 p-l-24 p-r-24\">\n <div>\n <p class=\"m-b-8 text-medium\">\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 class=\"bg-gray-white separator-bottom p-t-16 p-b-16 p-l-24 p-r-24\" *ngIf=\"certificateAuthorityFeatureEnabled | async\">\n <div>\n <p class=\"m-b-8 text-medium\">\n <strong translate>Full registration with device certificate creation</strong>\n </p>\n <small class=\"text-muted\" translate>\n Creates device certificates and devices using the provided list of property values. Once the certificates are provisioned, the devices can immediately start communicating with the platform\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)=\"downloadEst()\"\n >\n <i c8yIcon=\"download\"></i>\n {{ 'Download template' | translate }}\n </a>\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 have been processed.' | translate }}</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" }]
138
- }], ctorParameters: () => [{ type: i1.C8yJSONSchema }, { type: i2.DeviceRegistrationBulkService }, { type: i3.RegisterDeviceService }, { type: i4.BsModalRef }, { type: i1.GainsightService }, { type: i2.FeatureService }, { type: i5.TranslateService }], propDecorators: { stepper: [{
136
+ }], ctorParameters: () => [{ type: i1.C8yJSONSchema }, { type: i2.DeviceRegistrationBulkService }, { type: i3.RegisterDeviceService }, { type: i4.BsModalRef }, { type: i1.GainsightService }, { type: i1.FeatureCacheService }, { type: i5.TranslateService }], propDecorators: { stepper: [{
139
137
  type: ViewChild,
140
138
  args: [C8yStepper, { static: true }]
141
139
  }] } });
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVsay1kZXZpY2UtcmVnaXN0cmF0aW9uLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3JlZ2lzdGVyLWRldmljZS9idWxrL2J1bGstZGV2aWNlLXJlZ2lzdHJhdGlvbi1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9yZWdpc3Rlci1kZXZpY2UvYnVsay9idWxrLWRldmljZS1yZWdpc3RyYXRpb24tbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFDTCw2QkFBNkIsRUFDN0IsY0FBYyxFQUVmLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTNGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDcEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBRXBHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7Ozs7O0FBRXZELE1BQU0sd0JBQXdCLEdBQVc7SUFDdkMsT0FBTyxFQUFFLDhDQUE4QztJQUN2RCxJQUFJLEVBQUUsUUFBUTtJQUNkLFVBQVUsRUFBRTtRQUNWLFdBQVcsRUFBRTtZQUNYLElBQUksRUFBRSxPQUFPO1lBQ2IsS0FBSyxFQUFFLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztZQUNqQyxXQUFXLEVBQUUsT0FBTyxDQUNsQix1R0FBdUcsQ0FDeEc7WUFDRCxnQkFBZ0IsRUFBRSxLQUFLO1NBQ3hCO0tBQ0Y7SUFDRCxRQUFRLEVBQUUsQ0FBQyxhQUFhLENBQUM7SUFDekIsb0JBQW9CLEVBQUUsS0FBSztDQUM1QixDQUFDO0FBRUYsTUFBTSxnQkFBZ0IsR0FBYSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNsRCxNQUFNLFVBQVUsR0FBYTtJQUMzQixJQUFJO0lBQ0osTUFBTTtJQUNOLE1BQU07SUFDTixPQUFPO0lBQ1AsUUFBUTtJQUNSLE1BQU07SUFDTixPQUFPO0lBQ1AsV0FBVztDQUNaLENBQUM7QUFDRixNQUFNLGNBQWMsR0FBYSxDQUFDLEdBQUcsVUFBVSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0FBQ2hFLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBYSxDQUFDLEdBQUcsVUFBVSxFQUFFLGdCQUFnQixDQUFDLENBQUM7QUFNekUsTUFBTSxPQUFPLG9DQUFvQztJQWMvQyxZQUNVLFVBQXlCLEVBQ3pCLHlCQUF3RCxFQUN4RCxxQkFBNEMsRUFDNUMsVUFBc0IsRUFDdEIsZ0JBQWtDLEVBQ2xDLGNBQThCLEVBQzlCLGdCQUFrQztRQU5sQyxlQUFVLEdBQVYsVUFBVSxDQUFlO1FBQ3pCLDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBK0I7UUFDeEQsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1QyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFkNUMsU0FBSSxHQUFHLElBQUksU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pCLFVBQUssR0FBRyxFQUFFLENBQUM7UUFFWCx1Q0FBa0MsR0FBRyxJQUFJLENBQUMsY0FBYzthQUNyRCxNQUFNLENBQUMsdUJBQXVCLENBQUM7YUFDL0IsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBVWhDLENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyx5QkFBeUI7YUFDM0IsTUFBTSxDQUFDLElBQUksQ0FBQzthQUNaLElBQUksQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUU7WUFDdEIsSUFBSSxHQUFHLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDO2dCQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztnQkFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEtBQUssSUFBSSxDQUFDLFdBQVcsQ0FBQztnQkFDekYsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTztvQkFDekIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyw4QkFBOEIsQ0FBQztvQkFDekMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsNkJBQTZCLENBQUMsQ0FBQyxDQUFDO2dCQUM1RCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDakIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxvQ0FBb0MsQ0FBQyxLQUFLLEVBQUU7d0JBQzdFLE1BQU0sRUFBRSxvQ0FBb0MsQ0FBQyxNQUFNLENBQUMsT0FBTzt3QkFDM0QsU0FBUyxFQUFFLG9DQUFvQyxDQUFDLFNBQVMsQ0FBQyxJQUFJO3FCQUMvRCxDQUFDLENBQUM7Z0JBQ0wsQ0FBQztxQkFBTSxDQUFDO29CQUNOLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsb0NBQW9DLENBQUMsS0FBSyxFQUFFO3dCQUM3RSxNQUFNLEVBQUUsb0NBQW9DLENBQUMsTUFBTSxDQUFDLE9BQU87d0JBQzNELFNBQVMsRUFBRSxvQ0FBb0MsQ0FBQyxTQUFTLENBQUMsSUFBSTtxQkFDL0QsQ0FBQyxDQUFDO2dCQUNMLENBQUM7WUFDSCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFtQyxDQUFDO2dCQUN4RCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO2dCQUN0RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLG9DQUFvQyxDQUFDLEtBQUssRUFBRTtvQkFDN0UsTUFBTSxFQUFFLG9DQUFvQyxDQUFDLE1BQU0sQ0FBQyxPQUFPO29CQUMzRCxTQUFTLEVBQUUsb0NBQW9DLENBQUMsU0FBUyxDQUFDLElBQUk7aUJBQy9ELENBQUMsQ0FBQztZQUNMLENBQUM7WUFDRCxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLENBQUMsQ0FBQzthQUNELEtBQUssQ0FBQyxHQUFHLEVBQUU7WUFDVixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO1lBQzdFLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMseUNBQXlDLENBQUMsQ0FBQyxDQUFDO0lBQzdGLENBQUM7SUFFRCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUMsdUNBQXVDLENBQUMsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsaUNBQWlDLENBQUMsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFFRCxRQUFRLENBQUMsT0FBaUIsRUFBRSxRQUFnQjtRQUMxQyxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqRSxNQUFNLFVBQVUsR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDL0QsTUFBTSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVPLE9BQU8sQ0FBQyxLQUFLO1FBQ25CLE1BQU0sV0FBVyxHQUFJLEtBQWEsRUFBRSxXQUFXLENBQUM7UUFDaEQsT0FBTyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUN4RCxDQUFDOytHQXBHVSxvQ0FBb0M7bUdBQXBDLG9DQUFvQyx5R0FDcEMsVUFBVSw4RENwRHZCLDYxTUFpS0E7OzRGRDlHYSxvQ0FBb0M7a0JBSmhELFNBQVM7K0JBQ0UsMEJBQTBCO3NSQUlLLE9BQU87c0JBQS9DLFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICBEZXZpY2VSZWdpc3RyYXRpb25CdWxrU2VydmljZSxcbiAgRmVhdHVyZVNlcnZpY2UsXG4gIElEZXZpY2VSZWdpc3RyYXRpb25CdWxrUmVzdWx0XG59IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IEM4eUpTT05TY2hlbWEsIEM4eVN0ZXBwZXIsIEdhaW5zaWdodFNlcnZpY2UsIGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IEZvcm1seUZpZWxkQ29uZmlnIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQgeyBzYXZlQXMgfSBmcm9tICdmaWxlLXNhdmVyJztcbmltcG9ydCB7IEJzTW9kYWxSZWYgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcbmltcG9ydCB7IFBST0RVQ1RfRVhQRVJJRU5DRV9CQVNFX1JFR0lTVFJBVElPTiB9IGZyb20gJy4uL2V4dGVuc2libGUvYmFzZS1kZXZpY2UtcmVnaXN0cmF0aW9uLm1vZGVsJztcbmltcG9ydCB7IEJ1bGtGYWlsZWRSZXN1bHQgfSBmcm9tICcuLi9leHRlbnNpYmxlL2J1bGsvZXh0ZW5zaWJsZS1idWxrLWRldmljZS1yZWdpc3RyYXRpb24ubW9kZWwnO1xuaW1wb3J0IHsgUmVnaXN0ZXJEZXZpY2VTZXJ2aWNlIH0gZnJvbSAnLi4vcmVnaXN0ZXItZGV2aWNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5jb25zdCByZWdpc3RlckRldmljZUJ1bGtTY2hlbWE6IG9iamVjdCA9IHtcbiAgJHNjaGVtYTogJ2h0dHBzOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LzIwMTktMDkvc2NoZW1hJyxcbiAgdHlwZTogJ29iamVjdCcsXG4gIHByb3BlcnRpZXM6IHtcbiAgICBjc3ZCdWxrRmlsZToge1xuICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgIHRpdGxlOiBnZXR0ZXh0KCdDU1YgZmlsZSB1cGxvYWQnKSxcbiAgICAgIGRlc2NyaXB0aW9uOiBnZXR0ZXh0KFxuICAgICAgICAnWW91IGNhbiB1c2UgZmlsZSB1cGxvYWQgY29tcG9uZW50IHRvIGxldCB1c2VycyBzZW5kIGZpbGVzLiBUaGlzIGlucHV0IGFjY2VwdHMgb25seSBhIHNpbmdsZSBDU1YgZmlsZS4nXG4gICAgICApLFxuICAgICAgY29udGVudE1lZGlhVHlwZTogJ2NzdidcbiAgICB9XG4gIH0sXG4gIHJlcXVpcmVkOiBbJ2NzdkJ1bGtGaWxlJ10sXG4gIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZVxufTtcblxuY29uc3Qgc2ltcGxlQ3N2SGVhZGVyczogc3RyaW5nW10gPSBbJ0lEJywgJ1BBVEgnXTtcbmNvbnN0IGNzdkhlYWRlcnM6IHN0cmluZ1tdID0gW1xuICAnSUQnLFxuICAnVFlQRScsXG4gICdOQU1FJyxcbiAgJ0lDQ0lEJyxcbiAgJ0lEVFlQRScsXG4gICdQQVRIJyxcbiAgJ1NIRUxMJyxcbiAgJ0FVVEhfVFlQRSdcbl07XG5jb25zdCBmdWxsQ3N2SGVhZGVyczogc3RyaW5nW10gPSBbLi4uY3N2SGVhZGVycywgJ0NSRURFTlRJQUxTJ107XG5leHBvcnQgY29uc3QgRVNUQ3N2SGVhZGVyczogc3RyaW5nW10gPSBbLi4uY3N2SGVhZGVycywgJ0VOUk9MTE1FTlRfT1RQJ107XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2J1bGstZGV2aWNlLXJlZ2lzdHJhdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnYnVsay1kZXZpY2UtcmVnaXN0cmF0aW9uLW1vZGFsLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBCdWxrRGV2aWNlUmVnaXN0cmF0aW9uTW9kYWxDb21wb25lbnQge1xuICBAVmlld0NoaWxkKEM4eVN0ZXBwZXIsIHsgc3RhdGljOiB0cnVlIH0pIHN0ZXBwZXI6IEM4eVN0ZXBwZXI7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgc3VjY2VzczogYm9vbGVhbjtcbiAgcGVuZGluZzogYm9vbGVhbjtcbiAgcmVzdWx0OiBJRGV2aWNlUmVnaXN0cmF0aW9uQnVsa1Jlc3VsdDtcbiAgZmFpbGVkUmVzdWx0OiBCdWxrRmFpbGVkUmVzdWx0O1xuICBmb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XG4gIG1vZGVsID0ge307XG4gIHRlbXBsYXRlOiBGb3JtbHlGaWVsZENvbmZpZ1tdO1xuICBjZXJ0aWZpY2F0ZUF1dGhvcml0eUZlYXR1cmVFbmFibGVkID0gdGhpcy5mZWF0dXJlU2VydmljZVxuICAgIC5kZXRhaWwoJ2NlcnRpZmljYXRlLWF1dGhvcml0eScpXG4gICAgLnRoZW4oKHsgZGF0YSB9KSA9PiBkYXRhLmFjdGl2ZSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBqc29uc2NoZW1hOiBDOHlKU09OU2NoZW1hLFxuICAgIHByaXZhdGUgZGV2aWNlUmVnaXN0cmF0aW9uU2VydmljZTogRGV2aWNlUmVnaXN0cmF0aW9uQnVsa1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWdpc3RlckRldmljZVNlcnZpY2U6IFJlZ2lzdGVyRGV2aWNlU2VydmljZSxcbiAgICBwcml2YXRlIGJzTW9kYWxSZWY6IEJzTW9kYWxSZWYsXG4gICAgcHJpdmF0ZSBnYWluc2lnaHRTZXJ2aWNlOiBHYWluc2lnaHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgZmVhdHVyZVNlcnZpY2U6IEZlYXR1cmVTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy50ZW1wbGF0ZSA9IFt0aGlzLmpzb25zY2hlbWEudG9GaWVsZENvbmZpZyhyZWdpc3RlckRldmljZUJ1bGtTY2hlbWEpXTtcbiAgfVxuXG4gIHVwbG9hZCgpIHtcbiAgICB0aGlzLnBlbmRpbmcgPSB0cnVlO1xuICAgIGNvbnN0IGZpbGUgPSB0aGlzLmdldEZpbGUodGhpcy5tb2RlbCk7XG4gICAgdGhpcy5kZXZpY2VSZWdpc3RyYXRpb25TZXJ2aWNlXG4gICAgICAuY3JlYXRlKGZpbGUpXG4gICAgICAudGhlbigoeyByZXMsIGRhdGEgfSkgPT4ge1xuICAgICAgICBpZiAocmVzLnN0YXR1cyA8IDQwMCkge1xuICAgICAgICAgIHRoaXMucmVzdWx0ID0gZGF0YTtcbiAgICAgICAgICB0aGlzLnN1Y2Nlc3MgPSBkYXRhLm51bWJlck9mRmFpbGVkID09PSAwICYmIGRhdGEubnVtYmVyT2ZTdWNjZXNzZnVsID09PSBkYXRhLm51bWJlck9mQWxsO1xuICAgICAgICAgIHRoaXMubWVzc2FnZSA9IHRoaXMuc3VjY2Vzc1xuICAgICAgICAgICAgPyBnZXR0ZXh0KCdEZXZpY2UgcmVnaXN0cmF0aW9uIGNyZWF0ZWQuJylcbiAgICAgICAgICAgIDogKHRoaXMubWVzc2FnZSA9IGdldHRleHQoJ0RldmljZSByZWdpc3RyYXRpb24gZmFpbGVkLicpKTtcbiAgICAgICAgICBpZiAodGhpcy5zdWNjZXNzKSB7XG4gICAgICAgICAgICB0aGlzLmdhaW5zaWdodFNlcnZpY2UudHJpZ2dlckV2ZW50KFBST0RVQ1RfRVhQRVJJRU5DRV9CQVNFX1JFR0lTVFJBVElPTi5FVkVOVCwge1xuICAgICAgICAgICAgICByZXN1bHQ6IFBST0RVQ1RfRVhQRVJJRU5DRV9CQVNFX1JFR0lTVFJBVElPTi5SRVNVTFQuU1VDQ0VTUyxcbiAgICAgICAgICAgICAgY29tcG9uZW50OiBQUk9EVUNUX0VYUEVSSUVOQ0VfQkFTRV9SRUdJU1RSQVRJT04uQ09NUE9ORU5ULkJVTEtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmdhaW5zaWdodFNlcnZpY2UudHJpZ2dlckV2ZW50KFBST0RVQ1RfRVhQRVJJRU5DRV9CQVNFX1JFR0lTVFJBVElPTi5FVkVOVCwge1xuICAgICAgICAgICAgICByZXN1bHQ6IFBST0RVQ1RfRVhQRVJJRU5DRV9CQVNFX1JFR0lTVFJBVElPTi5SRVNVTFQuRkFJTFVSRSxcbiAgICAgICAgICAgICAgY29tcG9uZW50OiBQUk9EVUNUX0VYUEVSSUVOQ0VfQkFTRV9SRUdJU1RSQVRJT04uQ09NUE9ORU5ULkJVTEtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmZhaWxlZFJlc3VsdCA9IGRhdGEgYXMgdW5rbm93biBhcyBCdWxrRmFpbGVkUmVzdWx0O1xuICAgICAgICAgIHRoaXMubWVzc2FnZSA9IGdldHRleHQoJ0RldmljZSByZWdpc3RyYXRpb24gZmFpbGVkLicpO1xuICAgICAgICAgIHRoaXMuZ2FpbnNpZ2h0U2VydmljZS50cmlnZ2VyRXZlbnQoUFJPRFVDVF9FWFBFUklFTkNFX0JBU0VfUkVHSVNUUkFUSU9OLkVWRU5ULCB7XG4gICAgICAgICAgICByZXN1bHQ6IFBST0RVQ1RfRVhQRVJJRU5DRV9CQVNFX1JFR0lTVFJBVElPTi5SRVNVTFQuRkFJTFVSRSxcbiAgICAgICAgICAgIGNvbXBvbmVudDogUFJPRFVDVF9FWFBFUklFTkNFX0JBU0VfUkVHSVNUUkFUSU9OLkNPTVBPTkVOVC5CVUxLXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5tb2RlbCA9IHt9O1xuICAgICAgICB0aGlzLnBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zdGVwcGVyLm5leHQoKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKCkgPT4ge1xuICAgICAgICB0aGlzLm1lc3NhZ2UgPSBnZXR0ZXh0KCdFcnJvciBvY2N1cnJlZCB3aGlsZSBwcm9jZXNzaW5nIHRoZSB1cGxvYWRlZCBmaWxlLicpO1xuICAgICAgICB0aGlzLnBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zdGVwcGVyLm5leHQoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgZG93bmxvYWRTaW1wbGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZG93bmxvYWQoc2ltcGxlQ3N2SGVhZGVycywgZ2V0dGV4dCgnU2ltcGxlIGJ1bGsgcmVnaXN0cmF0aW9uIC0gdGVtcGxhdGUuY3N2JykpO1xuICB9XG5cbiAgZG93bmxvYWRGdWxsKCkge1xuICAgIHJldHVybiB0aGlzLmRvd25sb2FkKGZ1bGxDc3ZIZWFkZXJzLCBnZXR0ZXh0KCdGdWxsIGJ1bGsgcmVnaXN0cmF0aW9uIC0gdGVtcGxhdGUuY3N2JykpO1xuICB9XG5cbiAgZG93bmxvYWRFc3QoKSB7XG4gICAgcmV0dXJuIHRoaXMuZG93bmxvYWQoRVNUQ3N2SGVhZGVycywgZ2V0dGV4dCgnRVNUIHJlZ2lzdHJhdGlvbiAtIHRlbXBsYXRlLmNzdicpKTtcbiAgfVxuXG4gIGRvd25sb2FkKGhlYWRlcnM6IHN0cmluZ1tdLCBmaWxlTmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgaGVhZGVyUmF3ID0gaGVhZGVycy5tYXAoaGVhZGVyID0+IGBcIiR7aGVhZGVyfVwiYCkuam9pbignOycpO1xuICAgIGNvbnN0IGJpbmFyeUZpbGUgPSBuZXcgQmxvYihbaGVhZGVyUmF3XSwgeyB0eXBlOiAndGV4dC9jc3YnIH0pO1xuICAgIHNhdmVBcyhiaW5hcnlGaWxlLCB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChmaWxlTmFtZSkpO1xuICB9XG5cbiAgY29tcGxldGUoKSB7XG4gICAgdGhpcy5yZWdpc3RlckRldmljZVNlcnZpY2UubGlzdCgpO1xuICAgIHRoaXMuYnNNb2RhbFJlZi5oaWRlKCk7XG4gIH1cblxuICBjYW5jZWwoKSB7XG4gICAgdGhpcy5ic01vZGFsUmVmLmhpZGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RmlsZShtb2RlbCk6IEZpbGUge1xuICAgIGNvbnN0IGNzdkJ1bGtGaWxlID0gKG1vZGVsIGFzIGFueSk/LmNzdkJ1bGtGaWxlO1xuICAgIHJldHVybiBjc3ZCdWxrRmlsZSA/IGNzdkJ1bGtGaWxlWzBdPy5maWxlIDogdW5kZWZpbmVkO1xuICB9XG59XG4iLCI8Yzh5LW1vZGFsXG4gIFt0aXRsZV09XCInQnVsayBkZXZpY2UgcmVnaXN0cmF0aW9uJyB8IHRyYW5zbGF0ZVwiXG4gIFtoZWFkZXJDbGFzc2VzXT1cIidkaWFsb2ctaGVhZGVyJ1wiXG4gIFtjdXN0b21Gb290ZXJdPVwidHJ1ZVwiXG4+XG4gIDxuZy1jb250YWluZXIgYzh5LW1vZGFsLXRpdGxlPlxuICAgIDxpIGM4eUljb249XCJ1cGxvYWRcIj48L2k+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxjOHktc3RlcHBlciBbaGlkZVN0ZXBQcm9ncmVzc109XCJ0cnVlXCIgbGluZWFyIGlkPVwibW9kYWwtYm9keVwiPlxuICAgIDxjZGstc3RlcD5cbiAgICAgIDxwIGNsYXNzPVwibW9kYWwtc3VidGl0bGUgc3RpY2t5LXRvcFwiIHRyYW5zbGF0ZT5SZWdpc3RlciBkZXZpY2VzIGluIGJ1bGs8L3A+XG5cbiAgICAgIDxjOHktZm9ybS1ncm91cCBjbGFzcz1cImQtYmxvY2sgcC0yNCBwLXQtMTYgcC1iLTAgbS1iLTBcIj5cbiAgICAgICAgPGZvcm1seS1mb3JtIFtmb3JtXT1cImZvcm1cIiBbZmllbGRzXT1cInRlbXBsYXRlXCIgW21vZGVsXT1cIm1vZGVsXCI+PC9mb3JtbHktZm9ybT5cbiAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJwLTI0IG0tdC0wIGJnLWxldmVsLTFcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmctZ3JheS13aGl0ZSBzZXBhcmF0b3ItYm90dG9tIHAtdC0xNiBwLWItMTYgcC1sLTI0IHAtci0yNFwiPlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJtLWItOCB0ZXh0LW1lZGl1bVwiPlxuICAgICAgICAgICAgICAgIDxzdHJvbmcgdHJhbnNsYXRlPlNpbXBsZSByZWdpc3RyYXRpb248L3N0cm9uZz5cbiAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJ0ZXh0LW11dGVkXCIgdHJhbnNsYXRlPlxuICAgICAgICAgICAgICAgIENyZWF0ZXMgYWxsIHJlZ2lzdHJhdGlvbiByZXF1ZXN0cyBhdCBvbmNlLCB0aGVuIGVhY2ggb25lIG5lZWRzIHRvIGdvIHRocm91Z2ggcmVndWxhclxuICAgICAgICAgICAgICAgIGFjY2VwdGFuY2UgcHJvY2Vzcy5cbiAgICAgICAgICAgICAgPC9zbWFsbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tYi0xNiBtLXQtMTZcIj5cbiAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICB0aXRsZT1cInt7ICdEb3dubG9hZCB0ZW1wbGF0ZScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IGJ0bi1zbVwiXG4gICAgICAgICAgICAgICAgdGFyZ2V0PVwiX3NlbGZcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJkb3dubG9hZFNpbXBsZSgpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxpIGM4eUljb249XCJkb3dubG9hZFwiIHRyYW5zbGF0ZT48L2k+XG4gICAgICAgICAgICAgICAge3sgJ0Rvd25sb2FkIHRlbXBsYXRlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmctZ3JheS13aGl0ZSBzZXBhcmF0b3ItYm90dG9tIHAtdC0xNiBwLWItMTYgcC1sLTI0IHAtci0yNFwiPlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJtLWItOCB0ZXh0LW1lZGl1bVwiPlxuICAgICAgICAgICAgICAgIDxzdHJvbmcgdHJhbnNsYXRlPkZ1bGwgcmVnaXN0cmF0aW9uPC9zdHJvbmc+XG4gICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPVwidGV4dC1tdXRlZFwiIHRyYW5zbGF0ZT5cbiAgICAgICAgICAgICAgICBDcmVhdGVzIGFsbCBkZXZpY2UgY3JlZGVudGlhbHMgYW5kIGRldmljZXMgdXNpbmcgcHJvdmlkZWQgbGlzdCBvZiBwcm9wZXJ0eSB2YWx1ZXMuXG4gICAgICAgICAgICAgICAgRGV2aWNlcyBjYW4gc3RhcnQgY29tbXVuaWNhdGluZyB3aXRoIHRoZSBwbGF0Zm9ybSBpbW1lZGlhdGVseS5cbiAgICAgICAgICAgICAgPC9zbWFsbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tYi0xNiBtLXQtMTZcIj5cbiAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICB0aXRsZT1cInt7ICdEb3dubG9hZCB0ZW1wbGF0ZScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IGJ0bi1zbVwiXG4gICAgICAgICAgICAgICAgdGFyZ2V0PVwiX3NlbGZcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJkb3dubG9hZEZ1bGwoKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8aSBjOHlJY29uPVwiZG93bmxvYWRcIiB0cmFuc2xhdGU+PC9pPlxuICAgICAgICAgICAgICAgIHt7ICdEb3dubG9hZCB0ZW1wbGF0ZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImJnLWdyYXktd2hpdGUgc2VwYXJhdG9yLWJvdHRvbSBwLXQtMTYgcC1iLTE2IHAtbC0yNCBwLXItMjRcIiAqbmdJZj1cImNlcnRpZmljYXRlQXV0aG9yaXR5RmVhdHVyZUVuYWJsZWQgfCBhc3luY1wiPlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJtLWItOCB0ZXh0LW1lZGl1bVwiPlxuICAgICAgICAgICAgICAgIDxzdHJvbmcgdHJhbnNsYXRlPkZ1bGwgcmVnaXN0cmF0aW9uIHdpdGggZGV2aWNlIGNlcnRpZmljYXRlIGNyZWF0aW9uPC9zdHJvbmc+XG4gICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPVwidGV4dC1tdXRlZFwiIHRyYW5zbGF0ZT5cbiAgICAgICAgICAgICAgICBDcmVhdGVzIGRldmljZSBjZXJ0aWZpY2F0ZXMgYW5kIGRldmljZXMgdXNpbmcgdGhlIHByb3ZpZGVkIGxpc3Qgb2YgcHJvcGVydHkgdmFsdWVzLiBPbmNlIHRoZSBjZXJ0aWZpY2F0ZXMgYXJlIHByb3Zpc2lvbmVkLCB0aGUgZGV2aWNlcyBjYW4gaW1tZWRpYXRlbHkgc3RhcnQgY29tbXVuaWNhdGluZyB3aXRoIHRoZSBwbGF0Zm9ybVxuICAgICAgICAgICAgICA8L3NtYWxsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1iLTE2IG0tdC0xNlwiPlxuICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIHRpdGxlPVwie3sgJ0Rvd25sb2FkIHRlbXBsYXRlJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgYnRuLXNtXCJcbiAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfc2VsZlwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImRvd25sb2FkRXN0KClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGkgYzh5SWNvbj1cImRvd25sb2FkXCI+PC9pPlxuICAgICAgICAgICAgICAgIHt7ICdEb3dubG9hZCB0ZW1wbGF0ZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGM4eS1zdGVwcGVyLWJ1dHRvbnNcbiAgICAgICAgY2xhc3M9XCJzdGlja3ktYm90dG9tIGQtYmxvY2sgcC10LTE2IHAtYi0xNiBzZXBhcmF0b3ItdG9wIGJnLWxldmVsLTBcIlxuICAgICAgICBbc2hvd0J1dHRvbnNdPVwieyBjYW5jZWw6IHRydWUsIG5leHQ6IHRydWUgfVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJmb3JtLmludmFsaWRcIlxuICAgICAgICBbcGVuZGluZ109XCJwZW5kaW5nXCJcbiAgICAgICAgKG9uQ2FuY2VsKT1cImNhbmNlbCgpXCJcbiAgICAgICAgKG9uTmV4dCk9XCJ1cGxvYWQoKVwiXG4gICAgICAgIFtsYWJlbHNdPVwieyBuZXh0OiAnVXBsb2FkJyB9XCJcbiAgICAgID48L2M4eS1zdGVwcGVyLWJ1dHRvbnM+XG4gICAgPC9jZGstc3RlcD5cblxuICAgIDxjZGstc3RlcCBzdGF0ZT1cImZpbmFsXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibS0yNFwiPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwic3VjY2VzczsgZWxzZSB3YXJuaW5nXCI+XG4gICAgICAgICAgPGM4eS1vcGVyYXRpb24tcmVzdWx0XG4gICAgICAgICAgICB0ZXh0PVwie3sgbWVzc2FnZSB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICBbc2l6ZV09XCI4NFwiXG4gICAgICAgICAgICBbdmVydGljYWxdPVwidHJ1ZVwiXG4gICAgICAgICAgICB0eXBlPVwic3VjY2Vzc1wiXG4gICAgICAgICAgICBjbGFzcz1cImxlYWRcIlxuICAgICAgICAgID48L2M4eS1vcGVyYXRpb24tcmVzdWx0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICN3YXJuaW5nPlxuICAgICAgICAgIDxjOHktb3BlcmF0aW9uLXJlc3VsdFxuICAgICAgICAgICAgdGV4dD1cInt7IG1lc3NhZ2UgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgW3NpemVdPVwiODRcIlxuICAgICAgICAgICAgW3ZlcnRpY2FsXT1cInRydWVcIlxuICAgICAgICAgICAgdHlwZT1cImVycm9yXCJcbiAgICAgICAgICAgIGNsYXNzPVwibGVhZFwiXG4gICAgICAgICAgPjwvYzh5LW9wZXJhdGlvbi1yZXN1bHQ+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxjOHktbGlzdC1ncm91cCBjbGFzcz1cInNlcGFyYXRvci10b3AgbS10LTE2XCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlc3VsdDsgZWxzZSBmYWlsZWRSZXNwb25zZVwiPlxuICAgICAgICAgICAgPGM4eS1saSAqbmdJZj1cInN1Y2Nlc3M7IGVsc2UgZmFpbFwiPlxuICAgICAgICAgICAgICA8Yzh5LWxpLWljb24gY2xhc3M9XCJ0ZXh0LXN1Y2Nlc3NcIiBpY29uPVwiY2hlY2stY2lyY2xlXCI+PC9jOHktbGktaWNvbj5cbiAgICAgICAgICAgICAgPHA+e3sgJ0FsbCBkZXZpY2VzIGhhdmUgYmVlbiBwcm9jZXNzZWQuJyB8IHRyYW5zbGF0ZSB9fTwvcD5cbiAgICAgICAgICAgICAgPGM4eS1saS1jb2xsYXBzZT5cbiAgICAgICAgICAgICAgICA8cHJlPjxjb2RlPnt7IHJlc3VsdCB8IGpzb24gfX08L2NvZGU+PC9wcmU+XG4gICAgICAgICAgICAgIDwvYzh5LWxpLWNvbGxhcHNlPlxuICAgICAgICAgICAgPC9jOHktbGk+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2ZhaWw+XG4gICAgICAgICAgICAgIDxjOHktbGk+XG4gICAgICAgICAgICAgICAgPGM4eS1saS1pY29uIGNsYXNzPVwidGV4dC1kYW5nZXJcIiBpY29uPVwiYmFuXCI+PC9jOHktbGktaWNvbj5cbiAgICAgICAgICAgICAgICA8cFxuICAgICAgICAgICAgICAgICAgbmdOb25CaW5kYWJsZVxuICAgICAgICAgICAgICAgICAgW3RyYW5zbGF0ZVBhcmFtc109XCJ7IGNvdW50OiByZXN1bHQ/Lm51bWJlck9mRmFpbGVkLCB0b3RhbDogcmVzdWx0Py5udW1iZXJPZkFsbCB9XCJcbiAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIEZhaWxlZCB0byBwcm9jZXNzIHt7IGNvdW50IH19IG91dCBvZiB7eyB0b3RhbCB9fS5cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgPGM4eS1saS1jb2xsYXBzZT5cbiAgICAgICAgICAgICAgICAgIDxwcmU+PGNvZGU+e3sgcmVzdWx0IHwganNvbiB9fTwvY29kZT48L3ByZT5cbiAgICAgICAgICAgICAgICA8L2M4eS1saS1jb2xsYXBzZT5cbiAgICAgICAgICAgICAgPC9jOHktbGk+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZmFpbGVkUmVzcG9uc2U+XG4gICAgICAgICAgICA8Yzh5LWxpPlxuICAgICAgICAgICAgICA8Yzh5LWxpLWljb24gY2xhc3M9XCJ0ZXh0LWRhbmdlclwiIFtpY29uXT1cIidiYW4nXCI+PC9jOHktbGktaWNvbj5cbiAgICAgICAgICAgICAgPHNtYWxsPnt7IGZhaWxlZFJlc3VsdD8ubWVzc2FnZSB8IHRyYW5zbGF0ZSB9fTwvc21hbGw+XG4gICAgICAgICAgICAgIDxjOHktbGktY29sbGFwc2U+XG4gICAgICAgICAgICAgICAgPHByZT48Y29kZT57eyBmYWlsZWRSZXN1bHQgfCBqc29uIH19PC9jb2RlPjwvcHJlPlxuICAgICAgICAgICAgICA8L2M4eS1saS1jb2xsYXBzZT5cbiAgICAgICAgICAgIDwvYzh5LWxpPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvYzh5LWxpc3QtZ3JvdXA+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxjOHktc3RlcHBlci1idXR0b25zXG4gICAgICAgIGNsYXNzPVwic3RpY2t5LWJvdHRvbSBkLWJsb2NrIHAtdC0xNiBwLWItMTYgc2VwYXJhdG9yLXRvcCBiZy1sZXZlbC0wXCJcbiAgICAgICAgW3Nob3dCdXR0b25zXT1cInsgbmV4dDogdHJ1ZSB9XCJcbiAgICAgICAgKG9uTmV4dCk9XCJjb21wbGV0ZSgpXCJcbiAgICAgICAgW2xhYmVsc109XCJ7IG5leHQ6IHN1Y2Nlc3MgPyAnQ2xvc2UnIDogJ0NhbmNlbCcgfVwiXG4gICAgICA+PC9jOHktc3RlcHBlci1idXR0b25zPlxuICAgIDwvY2RrLXN0ZXA+XG4gIDwvYzh5LXN0ZXBwZXI+XG48L2M4eS1tb2RhbD5cbiJdfQ==
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVsay1kZXZpY2UtcmVnaXN0cmF0aW9uLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3JlZ2lzdGVyLWRldmljZS9idWxrL2J1bGstZGV2aWNlLXJlZ2lzdHJhdGlvbi1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9yZWdpc3Rlci1kZXZpY2UvYnVsay9idWxrLWRldmljZS1yZWdpc3RyYXRpb24tbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSw2QkFBNkIsRUFBaUMsTUFBTSxhQUFhLENBQUM7QUFDM0YsT0FBTyxFQUNMLGFBQWEsRUFDYixVQUFVLEVBQ1YsbUJBQW1CLEVBQ25CLGdCQUFnQixFQUNoQixPQUFPLEVBQ1IsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUVwRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7OztBQUV2RCxNQUFNLHdCQUF3QixHQUFXO0lBQ3ZDLE9BQU8sRUFBRSw4Q0FBOEM7SUFDdkQsSUFBSSxFQUFFLFFBQVE7SUFDZCxVQUFVLEVBQUU7UUFDVixXQUFXLEVBQUU7WUFDWCxJQUFJLEVBQUUsT0FBTztZQUNiLEtBQUssRUFBRSxPQUFPLENBQUMsaUJBQWlCLENBQUM7WUFDakMsV0FBVyxFQUFFLE9BQU8sQ0FDbEIsdUdBQXVHLENBQ3hHO1lBQ0QsZ0JBQWdCLEVBQUUsS0FBSztTQUN4QjtLQUNGO0lBQ0QsUUFBUSxFQUFFLENBQUMsYUFBYSxDQUFDO0lBQ3pCLG9CQUFvQixFQUFFLEtBQUs7Q0FDNUIsQ0FBQztBQUVGLE1BQU0sZ0JBQWdCLEdBQWEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDbEQsTUFBTSxVQUFVLEdBQWE7SUFDM0IsSUFBSTtJQUNKLE1BQU07SUFDTixNQUFNO0lBQ04sT0FBTztJQUNQLFFBQVE7SUFDUixNQUFNO0lBQ04sT0FBTztJQUNQLFdBQVc7Q0FDWixDQUFDO0FBQ0YsTUFBTSxjQUFjLEdBQWEsQ0FBQyxHQUFHLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQztBQUNoRSxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQWEsQ0FBQyxHQUFHLFVBQVUsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0FBTXpFLE1BQU0sT0FBTyxvQ0FBb0M7SUFhL0MsWUFDVSxVQUF5QixFQUN6Qix5QkFBd0QsRUFDeEQscUJBQTRDLEVBQzVDLFVBQXNCLEVBQ3RCLGdCQUFrQyxFQUNsQyxtQkFBd0MsRUFDeEMsZ0JBQWtDO1FBTmxDLGVBQVUsR0FBVixVQUFVLENBQWU7UUFDekIsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUErQjtRQUN4RCwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFiNUMsU0FBSSxHQUFHLElBQUksU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pCLFVBQUssR0FBRyxFQUFFLENBQUM7UUFFWCx1Q0FBa0MsR0FDaEMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBVWpFLENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyx5QkFBeUI7YUFDM0IsTUFBTSxDQUFDLElBQUksQ0FBQzthQUNaLElBQUksQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUU7WUFDdEIsSUFBSSxHQUFHLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDO2dCQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztnQkFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEtBQUssSUFBSSxDQUFDLFdBQVcsQ0FBQztnQkFDekYsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTztvQkFDekIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyw4QkFBOEIsQ0FBQztvQkFDekMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsNkJBQTZCLENBQUMsQ0FBQyxDQUFDO2dCQUM1RCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDakIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxvQ0FBb0MsQ0FBQyxLQUFLLEVBQUU7d0JBQzdFLE1BQU0sRUFBRSxvQ0FBb0MsQ0FBQyxNQUFNLENBQUMsT0FBTzt3QkFDM0QsU0FBUyxFQUFFLG9DQUFvQyxDQUFDLFNBQVMsQ0FBQyxJQUFJO3FCQUMvRCxDQUFDLENBQUM7Z0JBQ0wsQ0FBQztxQkFBTSxDQUFDO29CQUNOLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsb0NBQW9DLENBQUMsS0FBSyxFQUFFO3dCQUM3RSxNQUFNLEVBQUUsb0NBQW9DLENBQUMsTUFBTSxDQUFDLE9BQU87d0JBQzNELFNBQVMsRUFBRSxvQ0FBb0MsQ0FBQyxTQUFTLENBQUMsSUFBSTtxQkFDL0QsQ0FBQyxDQUFDO2dCQUNMLENBQUM7WUFDSCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFtQyxDQUFDO2dCQUN4RCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO2dCQUN0RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLG9DQUFvQyxDQUFDLEtBQUssRUFBRTtvQkFDN0UsTUFBTSxFQUFFLG9DQUFvQyxDQUFDLE1BQU0sQ0FBQyxPQUFPO29CQUMzRCxTQUFTLEVBQUUsb0NBQW9DLENBQUMsU0FBUyxDQUFDLElBQUk7aUJBQy9ELENBQUMsQ0FBQztZQUNMLENBQUM7WUFDRCxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLENBQUMsQ0FBQzthQUNELEtBQUssQ0FBQyxHQUFHLEVBQUU7WUFDVixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO1lBQzdFLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMseUNBQXlDLENBQUMsQ0FBQyxDQUFDO0lBQzdGLENBQUM7SUFFRCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUMsdUNBQXVDLENBQUMsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsaUNBQWlDLENBQUMsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFFRCxRQUFRLENBQUMsT0FBaUIsRUFBRSxRQUFnQjtRQUMxQyxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqRSxNQUFNLFVBQVUsR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDL0QsTUFBTSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVPLE9BQU8sQ0FBQyxLQUFLO1FBQ25CLE1BQU0sV0FBVyxHQUFJLEtBQWEsRUFBRSxXQUFXLENBQUM7UUFDaEQsT0FBTyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUN4RCxDQUFDOytHQW5HVSxvQ0FBb0M7bUdBQXBDLG9DQUFvQyx5R0FDcEMsVUFBVSw4REN0RHZCLDYxTUFpS0E7OzRGRDVHYSxvQ0FBb0M7a0JBSmhELFNBQVM7K0JBQ0UsMEJBQTBCOzJSQUlLLE9BQU87c0JBQS9DLFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEZXZpY2VSZWdpc3RyYXRpb25CdWxrU2VydmljZSwgSURldmljZVJlZ2lzdHJhdGlvbkJ1bGtSZXN1bHQgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQge1xuICBDOHlKU09OU2NoZW1hLFxuICBDOHlTdGVwcGVyLFxuICBGZWF0dXJlQ2FjaGVTZXJ2aWNlLFxuICBHYWluc2lnaHRTZXJ2aWNlLFxuICBnZXR0ZXh0XG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgRm9ybWx5RmllbGRDb25maWcgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IHNhdmVBcyB9IGZyb20gJ2ZpbGUtc2F2ZXInO1xuaW1wb3J0IHsgQnNNb2RhbFJlZiB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuaW1wb3J0IHsgUFJPRFVDVF9FWFBFUklFTkNFX0JBU0VfUkVHSVNUUkFUSU9OIH0gZnJvbSAnLi4vZXh0ZW5zaWJsZS9iYXNlLWRldmljZS1yZWdpc3RyYXRpb24ubW9kZWwnO1xuaW1wb3J0IHsgQnVsa0ZhaWxlZFJlc3VsdCB9IGZyb20gJy4uL2V4dGVuc2libGUvYnVsay9leHRlbnNpYmxlLWJ1bGstZGV2aWNlLXJlZ2lzdHJhdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBSZWdpc3RlckRldmljZVNlcnZpY2UgfSBmcm9tICcuLi9yZWdpc3Rlci1kZXZpY2Uuc2VydmljZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmNvbnN0IHJlZ2lzdGVyRGV2aWNlQnVsa1NjaGVtYTogb2JqZWN0ID0ge1xuICAkc2NoZW1hOiAnaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQvMjAxOS0wOS9zY2hlbWEnLFxuICB0eXBlOiAnb2JqZWN0JyxcbiAgcHJvcGVydGllczoge1xuICAgIGNzdkJ1bGtGaWxlOiB7XG4gICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgdGl0bGU6IGdldHRleHQoJ0NTViBmaWxlIHVwbG9hZCcpLFxuICAgICAgZGVzY3JpcHRpb246IGdldHRleHQoXG4gICAgICAgICdZb3UgY2FuIHVzZSBmaWxlIHVwbG9hZCBjb21wb25lbnQgdG8gbGV0IHVzZXJzIHNlbmQgZmlsZXMuIFRoaXMgaW5wdXQgYWNjZXB0cyBvbmx5IGEgc2luZ2xlIENTViBmaWxlLidcbiAgICAgICksXG4gICAgICBjb250ZW50TWVkaWFUeXBlOiAnY3N2J1xuICAgIH1cbiAgfSxcbiAgcmVxdWlyZWQ6IFsnY3N2QnVsa0ZpbGUnXSxcbiAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlXG59O1xuXG5jb25zdCBzaW1wbGVDc3ZIZWFkZXJzOiBzdHJpbmdbXSA9IFsnSUQnLCAnUEFUSCddO1xuY29uc3QgY3N2SGVhZGVyczogc3RyaW5nW10gPSBbXG4gICdJRCcsXG4gICdUWVBFJyxcbiAgJ05BTUUnLFxuICAnSUNDSUQnLFxuICAnSURUWVBFJyxcbiAgJ1BBVEgnLFxuICAnU0hFTEwnLFxuICAnQVVUSF9UWVBFJ1xuXTtcbmNvbnN0IGZ1bGxDc3ZIZWFkZXJzOiBzdHJpbmdbXSA9IFsuLi5jc3ZIZWFkZXJzLCAnQ1JFREVOVElBTFMnXTtcbmV4cG9ydCBjb25zdCBFU1RDc3ZIZWFkZXJzOiBzdHJpbmdbXSA9IFsuLi5jc3ZIZWFkZXJzLCAnRU5ST0xMTUVOVF9PVFAnXTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYnVsay1kZXZpY2UtcmVnaXN0cmF0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICdidWxrLWRldmljZS1yZWdpc3RyYXRpb24tbW9kYWwuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEJ1bGtEZXZpY2VSZWdpc3RyYXRpb25Nb2RhbENvbXBvbmVudCB7XG4gIEBWaWV3Q2hpbGQoQzh5U3RlcHBlciwgeyBzdGF0aWM6IHRydWUgfSkgc3RlcHBlcjogQzh5U3RlcHBlcjtcbiAgbWVzc2FnZTogc3RyaW5nO1xuICBzdWNjZXNzOiBib29sZWFuO1xuICBwZW5kaW5nOiBib29sZWFuO1xuICByZXN1bHQ6IElEZXZpY2VSZWdpc3RyYXRpb25CdWxrUmVzdWx0O1xuICBmYWlsZWRSZXN1bHQ6IEJ1bGtGYWlsZWRSZXN1bHQ7XG4gIGZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcbiAgbW9kZWwgPSB7fTtcbiAgdGVtcGxhdGU6IEZvcm1seUZpZWxkQ29uZmlnW107XG4gIGNlcnRpZmljYXRlQXV0aG9yaXR5RmVhdHVyZUVuYWJsZWQgPVxuICAgIHRoaXMuZmVhdHVyZUNhY2hlU2VydmljZS5nZXRGZWF0dXJlU3RhdGUoJ2NlcnRpZmljYXRlLWF1dGhvcml0eScpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUganNvbnNjaGVtYTogQzh5SlNPTlNjaGVtYSxcbiAgICBwcml2YXRlIGRldmljZVJlZ2lzdHJhdGlvblNlcnZpY2U6IERldmljZVJlZ2lzdHJhdGlvbkJ1bGtTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVnaXN0ZXJEZXZpY2VTZXJ2aWNlOiBSZWdpc3RlckRldmljZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBic01vZGFsUmVmOiBCc01vZGFsUmVmLFxuICAgIHByaXZhdGUgZ2FpbnNpZ2h0U2VydmljZTogR2FpbnNpZ2h0U2VydmljZSxcbiAgICBwcml2YXRlIGZlYXR1cmVDYWNoZVNlcnZpY2U6IEZlYXR1cmVDYWNoZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnRlbXBsYXRlID0gW3RoaXMuanNvbnNjaGVtYS50b0ZpZWxkQ29uZmlnKHJlZ2lzdGVyRGV2aWNlQnVsa1NjaGVtYSldO1xuICB9XG5cbiAgdXBsb2FkKCkge1xuICAgIHRoaXMucGVuZGluZyA9IHRydWU7XG4gICAgY29uc3QgZmlsZSA9IHRoaXMuZ2V0RmlsZSh0aGlzLm1vZGVsKTtcbiAgICB0aGlzLmRldmljZVJlZ2lzdHJhdGlvblNlcnZpY2VcbiAgICAgIC5jcmVhdGUoZmlsZSlcbiAgICAgIC50aGVuKCh7IHJlcywgZGF0YSB9KSA9PiB7XG4gICAgICAgIGlmIChyZXMuc3RhdHVzIDwgNDAwKSB7XG4gICAgICAgICAgdGhpcy5yZXN1bHQgPSBkYXRhO1xuICAgICAgICAgIHRoaXMuc3VjY2VzcyA9IGRhdGEubnVtYmVyT2ZGYWlsZWQgPT09IDAgJiYgZGF0YS5udW1iZXJPZlN1Y2Nlc3NmdWwgPT09IGRhdGEubnVtYmVyT2ZBbGw7XG4gICAgICAgICAgdGhpcy5tZXNzYWdlID0gdGhpcy5zdWNjZXNzXG4gICAgICAgICAgICA/IGdldHRleHQoJ0RldmljZSByZWdpc3RyYXRpb24gY3JlYXRlZC4nKVxuICAgICAgICAgICAgOiAodGhpcy5tZXNzYWdlID0gZ2V0dGV4dCgnRGV2aWNlIHJlZ2lzdHJhdGlvbiBmYWlsZWQuJykpO1xuICAgICAgICAgIGlmICh0aGlzLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgIHRoaXMuZ2FpbnNpZ2h0U2VydmljZS50cmlnZ2VyRXZlbnQoUFJPRFVDVF9FWFBFUklFTkNFX0JBU0VfUkVHSVNUUkFUSU9OLkVWRU5ULCB7XG4gICAgICAgICAgICAgIHJlc3VsdDogUFJPRFVDVF9FWFBFUklFTkNFX0JBU0VfUkVHSVNUUkFUSU9OLlJFU1VMVC5TVUNDRVNTLFxuICAgICAgICAgICAgICBjb21wb25lbnQ6IFBST0RVQ1RfRVhQRVJJRU5DRV9CQVNFX1JFR0lTVFJBVElPTi5DT01QT05FTlQuQlVMS1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZ2FpbnNpZ2h0U2VydmljZS50cmlnZ2VyRXZlbnQoUFJPRFVDVF9FWFBFUklFTkNFX0JBU0VfUkVHSVNUUkFUSU9OLkVWRU5ULCB7XG4gICAgICAgICAgICAgIHJlc3VsdDogUFJPRFVDVF9FWFBFUklFTkNFX0JBU0VfUkVHSVNUUkFUSU9OLlJFU1VMVC5GQUlMVVJFLFxuICAgICAgICAgICAgICBjb21wb25lbnQ6IFBST0RVQ1RfRVhQRVJJRU5DRV9CQVNFX1JFR0lTVFJBVElPTi5DT01QT05FTlQuQlVMS1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZmFpbGVkUmVzdWx0ID0gZGF0YSBhcyB1bmtub3duIGFzIEJ1bGtGYWlsZWRSZXN1bHQ7XG4gICAgICAgICAgdGhpcy5tZXNzYWdlID0gZ2V0dGV4dCgnRGV2aWNlIHJlZ2lzdHJhdGlvbiBmYWlsZWQuJyk7XG4gICAgICAgICAgdGhpcy5nYWluc2lnaHRTZXJ2aWNlLnRyaWdnZXJFdmVudChQUk9EVUNUX0VYUEVSSUVOQ0VfQkFTRV9SRUdJU1RSQVRJT04uRVZFTlQsIHtcbiAgICAgICAgICAgIHJlc3VsdDogUFJPRFVDVF9FWFBFUklFTkNFX0JBU0VfUkVHSVNUUkFUSU9OLlJFU1VMVC5GQUlMVVJFLFxuICAgICAgICAgICAgY29tcG9uZW50OiBQUk9EVUNUX0VYUEVSSUVOQ0VfQkFTRV9SRUdJU1RSQVRJT04uQ09NUE9ORU5ULkJVTEtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1vZGVsID0ge307XG4gICAgICAgIHRoaXMucGVuZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnN0ZXBwZXIubmV4dCgpO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgIHRoaXMubWVzc2FnZSA9IGdldHRleHQoJ0Vycm9yIG9jY3VycmVkIHdoaWxlIHByb2Nlc3NpbmcgdGhlIHVwbG9hZGVkIGZpbGUuJyk7XG4gICAgICAgIHRoaXMucGVuZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnN0ZXBwZXIubmV4dCgpO1xuICAgICAgfSk7XG4gIH1cblxuICBkb3dubG9hZFNpbXBsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5kb3dubG9hZChzaW1wbGVDc3ZIZWFkZXJzLCBnZXR0ZXh0KCdTaW1wbGUgYnVsayByZWdpc3RyYXRpb24gLSB0ZW1wbGF0ZS5jc3YnKSk7XG4gIH1cblxuICBkb3dubG9hZEZ1bGwoKSB7XG4gICAgcmV0dXJuIHRoaXMuZG93bmxvYWQoZnVsbENzdkhlYWRlcnMsIGdldHRleHQoJ0Z1bGwgYnVsayByZWdpc3RyYXRpb24gLSB0ZW1wbGF0ZS5jc3YnKSk7XG4gIH1cblxuICBkb3dubG9hZEVzdCgpIHtcbiAgICByZXR1cm4gdGhpcy5kb3dubG9hZChFU1RDc3ZIZWFkZXJzLCBnZXR0ZXh0KCdFU1QgcmVnaXN0cmF0aW9uIC0gdGVtcGxhdGUuY3N2JykpO1xuICB9XG5cbiAgZG93bmxvYWQoaGVhZGVyczogc3RyaW5nW10sIGZpbGVOYW1lOiBzdHJpbmcpIHtcbiAgICBjb25zdCBoZWFkZXJSYXcgPSBoZWFkZXJzLm1hcChoZWFkZXIgPT4gYFwiJHtoZWFkZXJ9XCJgKS5qb2luKCc7Jyk7XG4gICAgY29uc3QgYmluYXJ5RmlsZSA9IG5ldyBCbG9iKFtoZWFkZXJSYXddLCB7IHR5cGU6ICd0ZXh0L2NzdicgfSk7XG4gICAgc2F2ZUFzKGJpbmFyeUZpbGUsIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGZpbGVOYW1lKSk7XG4gIH1cblxuICBjb21wbGV0ZSgpIHtcbiAgICB0aGlzLnJlZ2lzdGVyRGV2aWNlU2VydmljZS5saXN0KCk7XG4gICAgdGhpcy5ic01vZGFsUmVmLmhpZGUoKTtcbiAgfVxuXG4gIGNhbmNlbCgpIHtcbiAgICB0aGlzLmJzTW9kYWxSZWYuaGlkZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGaWxlKG1vZGVsKTogRmlsZSB7XG4gICAgY29uc3QgY3N2QnVsa0ZpbGUgPSAobW9kZWwgYXMgYW55KT8uY3N2QnVsa0ZpbGU7XG4gICAgcmV0dXJuIGNzdkJ1bGtGaWxlID8gY3N2QnVsa0ZpbGVbMF0/LmZpbGUgOiB1bmRlZmluZWQ7XG4gIH1cbn1cbiIsIjxjOHktbW9kYWxcbiAgW3RpdGxlXT1cIidCdWxrIGRldmljZSByZWdpc3RyYXRpb24nIHwgdHJhbnNsYXRlXCJcbiAgW2hlYWRlckNsYXNzZXNdPVwiJ2RpYWxvZy1oZWFkZXInXCJcbiAgW2N1c3RvbUZvb3Rlcl09XCJ0cnVlXCJcbj5cbiAgPG5nLWNvbnRhaW5lciBjOHktbW9kYWwtdGl0bGU+XG4gICAgPGkgYzh5SWNvbj1cInVwbG9hZFwiPjwvaT5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPGM4eS1zdGVwcGVyIFtoaWRlU3RlcFByb2dyZXNzXT1cInRydWVcIiBsaW5lYXIgaWQ9XCJtb2RhbC1ib2R5XCI+XG4gICAgPGNkay1zdGVwPlxuICAgICAgPHAgY2xhc3M9XCJtb2RhbC1zdWJ0aXRsZSBzdGlja3ktdG9wXCIgdHJhbnNsYXRlPlJlZ2lzdGVyIGRldmljZXMgaW4gYnVsazwvcD5cblxuICAgICAgPGM4eS1mb3JtLWdyb3VwIGNsYXNzPVwiZC1ibG9jayBwLTI0IHAtdC0xNiBwLWItMCBtLWItMFwiPlxuICAgICAgICA8Zm9ybWx5LWZvcm0gW2Zvcm1dPVwiZm9ybVwiIFtmaWVsZHNdPVwidGVtcGxhdGVcIiBbbW9kZWxdPVwibW9kZWxcIj48L2Zvcm1seS1mb3JtPlxuICAgICAgPC9jOHktZm9ybS1ncm91cD5cblxuICAgICAgPGRpdiBjbGFzcz1cInAtMjQgbS10LTAgYmctbGV2ZWwtMVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJiZy1ncmF5LXdoaXRlIHNlcGFyYXRvci1ib3R0b20gcC10LTE2IHAtYi0xNiBwLWwtMjQgcC1yLTI0XCI+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8cCBjbGFzcz1cIm0tYi04IHRleHQtbWVkaXVtXCI+XG4gICAgICAgICAgICAgICAgPHN0cm9uZyB0cmFuc2xhdGU+U2ltcGxlIHJlZ2lzdHJhdGlvbjwvc3Ryb25nPlxuICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cInRleHQtbXV0ZWRcIiB0cmFuc2xhdGU+XG4gICAgICAgICAgICAgICAgQ3JlYXRlcyBhbGwgcmVnaXN0cmF0aW9uIHJlcXVlc3RzIGF0IG9uY2UsIHRoZW4gZWFjaCBvbmUgbmVlZHMgdG8gZ28gdGhyb3VnaCByZWd1bGFyXG4gICAgICAgICAgICAgICAgYWNjZXB0YW5jZSBwcm9jZXNzLlxuICAgICAgICAgICAgICA8L3NtYWxsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1iLTE2IG0tdC0xNlwiPlxuICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIHRpdGxlPVwie3sgJ0Rvd25sb2FkIHRlbXBsYXRlJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgYnRuLXNtXCJcbiAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfc2VsZlwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImRvd25sb2FkU2ltcGxlKClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGkgYzh5SWNvbj1cImRvd25sb2FkXCIgdHJhbnNsYXRlPjwvaT5cbiAgICAgICAgICAgICAgICB7eyAnRG93bmxvYWQgdGVtcGxhdGUnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJiZy1ncmF5LXdoaXRlIHNlcGFyYXRvci1ib3R0b20gcC10LTE2IHAtYi0xNiBwLWwtMjQgcC1yLTI0XCI+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8cCBjbGFzcz1cIm0tYi04IHRleHQtbWVkaXVtXCI+XG4gICAgICAgICAgICAgICAgPHN0cm9uZyB0cmFuc2xhdGU+RnVsbCByZWdpc3RyYXRpb248L3N0cm9uZz5cbiAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJ0ZXh0LW11dGVkXCIgdHJhbnNsYXRlPlxuICAgICAgICAgICAgICAgIENyZWF0ZXMgYWxsIGRldmljZSBjcmVkZW50aWFscyBhbmQgZGV2aWNlcyB1c2luZyBwcm92aWRlZCBsaXN0IG9mIHByb3BlcnR5IHZhbHVlcy5cbiAgICAgICAgICAgICAgICBEZXZpY2VzIGNhbiBzdGFydCBjb21tdW5pY2F0aW5nIHdpdGggdGhlIHBsYXRmb3JtIGltbWVkaWF0ZWx5LlxuICAgICAgICAgICAgICA8L3NtYWxsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1iLTE2IG0tdC0xNlwiPlxuICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIHRpdGxlPVwie3sgJ0Rvd25sb2FkIHRlbXBsYXRlJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgYnRuLXNtXCJcbiAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfc2VsZlwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImRvd25sb2FkRnVsbCgpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxpIGM4eUljb249XCJkb3dubG9hZFwiIHRyYW5zbGF0ZT48L2k+XG4gICAgICAgICAgICAgICAge3sgJ0Rvd25sb2FkIHRlbXBsYXRlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmctZ3JheS13aGl0ZSBzZXBhcmF0b3ItYm90dG9tIHAtdC0xNiBwLWItMTYgcC1sLTI0IHAtci0yNFwiICpuZ0lmPVwiY2VydGlmaWNhdGVBdXRob3JpdHlGZWF0dXJlRW5hYmxlZCB8IGFzeW5jXCI+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8cCBjbGFzcz1cIm0tYi04IHRleHQtbWVkaXVtXCI+XG4gICAgICAgICAgICAgICAgPHN0cm9uZyB0cmFuc2xhdGU+RnVsbCByZWdpc3RyYXRpb24gd2l0aCBkZXZpY2UgY2VydGlmaWNhdGUgY3JlYXRpb248L3N0cm9uZz5cbiAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJ0ZXh0LW11dGVkXCIgdHJhbnNsYXRlPlxuICAgICAgICAgICAgICAgIENyZWF0ZXMgZGV2aWNlIGNlcnRpZmljYXRlcyBhbmQgZGV2aWNlcyB1c2luZyB0aGUgcHJvdmlkZWQgbGlzdCBvZiBwcm9wZXJ0eSB2YWx1ZXMuIE9uY2UgdGhlIGNlcnRpZmljYXRlcyBhcmUgcHJvdmlzaW9uZWQsIHRoZSBkZXZpY2VzIGNhbiBpbW1lZGlhdGVseSBzdGFydCBjb21tdW5pY2F0aW5nIHdpdGggdGhlIHBsYXRmb3JtXG4gICAgICAgICAgICAgIDwvc21hbGw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLWItMTYgbS10LTE2XCI+XG4gICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyAnRG93bmxvYWQgdGVtcGxhdGUnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBidG4tc21cIlxuICAgICAgICAgICAgICAgIHRhcmdldD1cIl9zZWxmXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZG93bmxvYWRFc3QoKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8aSBjOHlJY29uPVwiZG93bmxvYWRcIj48L2k+XG4gICAgICAgICAgICAgICAge3sgJ0Rvd25sb2FkIHRlbXBsYXRlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8Yzh5LXN0ZXBwZXItYnV0dG9uc1xuICAgICAgICBjbGFzcz1cInN0aWNreS1ib3R0b20gZC1ibG9jayBwLXQtMTYgcC1iLTE2IHNlcGFyYXRvci10b3AgYmctbGV2ZWwtMFwiXG4gICAgICAgIFtzaG93QnV0dG9uc109XCJ7IGNhbmNlbDogdHJ1ZSwgbmV4dDogdHJ1ZSB9XCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImZvcm0uaW52YWxpZFwiXG4gICAgICAgIFtwZW5kaW5nXT1cInBlbmRpbmdcIlxuICAgICAgICAob25DYW5jZWwpPVwiY2FuY2VsKClcIlxuICAgICAgICAob25OZXh0KT1cInVwbG9hZCgpXCJcbiAgICAgICAgW2xhYmVsc109XCJ7IG5leHQ6ICdVcGxvYWQnIH1cIlxuICAgICAgPjwvYzh5LXN0ZXBwZXItYnV0dG9ucz5cbiAgICA8L2Nkay1zdGVwPlxuXG4gICAgPGNkay1zdGVwIHN0YXRlPVwiZmluYWxcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtLTI0XCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJzdWNjZXNzOyBlbHNlIHdhcm5pbmdcIj5cbiAgICAgICAgICA8Yzh5LW9wZXJhdGlvbi1yZXN1bHRcbiAgICAgICAgICAgIHRleHQ9XCJ7eyBtZXNzYWdlIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgIFtzaXplXT1cIjg0XCJcbiAgICAgICAgICAgIFt2ZXJ0aWNhbF09XCJ0cnVlXCJcbiAgICAgICAgICAgIHR5cGU9XCJzdWNjZXNzXCJcbiAgICAgICAgICAgIGNsYXNzPVwibGVhZFwiXG4gICAgICAgICAgPjwvYzh5LW9wZXJhdGlvbi1yZXN1bHQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bmctdGVtcGxhdGUgI3dhcm5pbmc+XG4gICAgICAgICAgPGM4eS1vcGVyYXRpb24tcmVzdWx0XG4gICAgICAgICAgICB0ZXh0PVwie3sgbWVzc2FnZSB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICBbc2l6ZV09XCI4NFwiXG4gICAgICAgICAgICBbdmVydGljYWxdPVwidHJ1ZVwiXG4gICAgICAgICAgICB0eXBlPVwiZXJyb3JcIlxuICAgICAgICAgICAgY2xhc3M9XCJsZWFkXCJcbiAgICAgICAgICA+PC9jOHktb3BlcmF0aW9uLXJlc3VsdD5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPGM4eS1saXN0LWdyb3VwIGNsYXNzPVwic2VwYXJhdG9yLXRvcCBtLXQtMTZcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicmVzdWx0OyBlbHNlIGZhaWxlZFJlc3BvbnNlXCI+XG4gICAgICAgICAgICA8Yzh5LWxpICpuZ0lmPVwic3VjY2VzczsgZWxzZSBmYWlsXCI+XG4gICAgICAgICAgICAgIDxjOHktbGktaWNvbiBjbGFzcz1cInRleHQtc3VjY2Vzc1wiIGljb249XCJjaGVjay1jaXJjbGVcIj48L2M4eS1saS1pY29uPlxuICAgICAgICAgICAgICA8cD57eyAnQWxsIGRldmljZXMgaGF2ZSBiZWVuIHByb2Nlc3NlZC4nIHwgdHJhbnNsYXRlIH19PC9wPlxuICAgICAgICAgICAgICA8Yzh5LWxpLWNvbGxhcHNlPlxuICAgICAgICAgICAgICAgIDxwcmU+PGNvZGU+e3sgcmVzdWx0IHwganNvbiB9fTwvY29kZT48L3ByZT5cbiAgICAgICAgICAgICAgPC9jOHktbGktY29sbGFwc2U+XG4gICAgICAgICAgICA8L2M4eS1saT5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZmFpbD5cbiAgICAgICAgICAgICAgPGM4eS1saT5cbiAgICAgICAgICAgICAgICA8Yzh5LWxpLWljb24gY2xhc3M9XCJ0ZXh0LWRhbmdlclwiIGljb249XCJiYW5cIj48L2M4eS1saS1pY29uPlxuICAgICAgICAgICAgICAgIDxwXG4gICAgICAgICAgICAgICAgICBuZ05vbkJpbmRhYmxlXG4gICAgICAgICAgICAgICAgICBbdHJhbnNsYXRlUGFyYW1zXT1cInsgY291bnQ6IHJlc3VsdD8ubnVtYmVyT2ZGYWlsZWQsIHRvdGFsOiByZXN1bHQ/Lm51bWJlck9mQWxsIH1cIlxuICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgRmFpbGVkIHRvIHByb2Nlc3Mge3sgY291bnQgfX0gb3V0IG9mIHt7IHRvdGFsIH19LlxuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICA8Yzh5LWxpLWNvbGxhcHNlPlxuICAgICAgICAgICAgICAgICAgPHByZT48Y29kZT57eyByZXN1bHQgfCBqc29uIH19PC9jb2RlPjwvcHJlPlxuICAgICAgICAgICAgICAgIDwvYzh5LWxpLWNvbGxhcHNlPlxuICAgICAgICAgICAgICA8L2M4eS1saT5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNmYWlsZWRSZXNwb25zZT5cbiAgICAgICAgICAgIDxjOHktbGk+XG4gICAgICAgICAgICAgIDxjOHktbGktaWNvbiBjbGFzcz1cInRleHQtZGFuZ2VyXCIgW2ljb25dPVwiJ2JhbidcIj48L2M4eS1saS1pY29uPlxuICAgICAgICAgICAgICA8c21hbGw+e3sgZmFpbGVkUmVzdWx0Py5tZXNzYWdlIHwgdHJhbnNsYXRlIH19PC9zbWFsbD5cbiAgICAgICAgICAgICAgPGM4eS1saS1jb2xsYXBzZT5cbiAgICAgICAgICAgICAgICA8cHJlPjxjb2RlPnt7IGZhaWxlZFJlc3VsdCB8IGpzb24gfX08L2NvZGU+PC9wcmU+XG4gICAgICAgICAgICAgIDwvYzh5LWxpLWNvbGxhcHNlPlxuICAgICAgICAgICAgPC9jOHktbGk+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9jOHktbGlzdC1ncm91cD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGM4eS1zdGVwcGVyLWJ1dHRvbnNcbiAgICAgICAgY2xhc3M9XCJzdGlja3ktYm90dG9tIGQtYmxvY2sgcC10LTE2IHAtYi0xNiBzZXBhcmF0b3ItdG9wIGJnLWxldmVsLTBcIlxuICAgICAgICBbc2hvd0J1dHRvbnNdPVwieyBuZXh0OiB0cnVlIH1cIlxuICAgICAgICAob25OZXh0KT1cImNvbXBsZXRlKClcIlxuICAgICAgICBbbGFiZWxzXT1cInsgbmV4dDogc3VjY2VzcyA/ICdDbG9zZScgOiAnQ2FuY2VsJyB9XCJcbiAgICAgID48L2M4eS1zdGVwcGVyLWJ1dHRvbnM+XG4gICAgPC9jZGstc3RlcD5cbiAgPC9jOHktc3RlcHBlcj5cbjwvYzh5LW1vZGFsPlxuIl19