barsa-develop-components 2.2.73 → 2.2.75

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 (81) hide show
  1. package/fesm2022/barsa-develop-components.mjs +205 -204
  2. package/fesm2022/barsa-develop-components.mjs.map +1 -1
  3. package/lib/avatar/avatar.component.d.ts +1 -1
  4. package/lib/form-report-view/form-report-view.component.d.ts +1 -1
  5. package/lib/geographic-location/geographic-location.component.d.ts +1 -1
  6. package/lib/report-button-view/report-button-view.component.d.ts +1 -1
  7. package/package.json +3 -5
  8. package/esm2022/barsa-develop-components.mjs +0 -5
  9. package/esm2022/lib/accept-reject/accept-reject.component.mjs +0 -68
  10. package/esm2022/lib/avatar/avatar.component.mjs +0 -29
  11. package/esm2022/lib/barcode-format-pipe.mjs +0 -25
  12. package/esm2022/lib/barcode-reader/barcode-reader.component.mjs +0 -62
  13. package/esm2022/lib/barcode-reader-dialog/barcode-reader-dialog.component.mjs +0 -82
  14. package/esm2022/lib/barcode-reader-video/barcode-reader-video.component.mjs +0 -66
  15. package/esm2022/lib/barcode.service.mjs +0 -330
  16. package/esm2022/lib/barsa-develop-components.module.mjs +0 -292
  17. package/esm2022/lib/barsa-document-list-item/barsa-document-list-item.component.mjs +0 -104
  18. package/esm2022/lib/barsa-documents/barsa-documents.component.mjs +0 -159
  19. package/esm2022/lib/barsa-geographic-location/barsa-geographic-location.component.mjs +0 -173
  20. package/esm2022/lib/card-content-image-and-title/card-content-image-and-title.component.mjs +0 -50
  21. package/esm2022/lib/card-content-line-chart/card-content-line-chart.component.mjs +0 -36
  22. package/esm2022/lib/card-header-big-image-title-and-subtitle/card-header-big-image-title-and-subtitle.component.mjs +0 -19
  23. package/esm2022/lib/card-header-kpi/card-header-kpi.component.mjs +0 -40
  24. package/esm2022/lib/card-header-logo-title-subtitle/card-header-logo-title-subtitle.component.mjs +0 -45
  25. package/esm2022/lib/checkbox-button/checkbox-button.component.mjs +0 -23
  26. package/esm2022/lib/column-chip/column-chip.component.mjs +0 -44
  27. package/esm2022/lib/column-form-viewer/column-form-viewer.component.mjs +0 -88
  28. package/esm2022/lib/column-progressbar/column-progressbar.component.mjs +0 -87
  29. package/esm2022/lib/enum-info-micro-proccess-flow/enum-info-micro-proccess-flow.component.mjs +0 -18
  30. package/esm2022/lib/footer/footer.component.mjs +0 -43
  31. package/esm2022/lib/form-card/form-card.component.mjs +0 -17
  32. package/esm2022/lib/form-chart-content/form-chart-content.component.mjs +0 -36
  33. package/esm2022/lib/form-content-quick-view/form-content-quick-view.component.mjs +0 -102
  34. package/esm2022/lib/form-report-view/form-report-view.component.mjs +0 -25
  35. package/esm2022/lib/form-report-view-item/form-report-view-item.component.mjs +0 -45
  36. package/esm2022/lib/g4b-details/g4b-details.component.mjs +0 -28
  37. package/esm2022/lib/g4b-estelam/g4b-estelam.component.mjs +0 -30
  38. package/esm2022/lib/geographic-location/geographic-location.component.mjs +0 -88
  39. package/esm2022/lib/login-form/login-form.component.mjs +0 -55
  40. package/esm2022/lib/login-social-conncetions/login-social-conncetions.component.mjs +0 -30
  41. package/esm2022/lib/master-detail-card-form/master-detail-card-form.component.mjs +0 -17
  42. package/esm2022/lib/media-file-uploader/media-file-uploader.component.mjs +0 -238
  43. package/esm2022/lib/micro-proccess-flow/micro-proccess-flow.component.mjs +0 -52
  44. package/esm2022/lib/micro-process-flow-view/micro-process-flow-view.component.mjs +0 -24
  45. package/esm2022/lib/mo-info-micro-proccess-flow/mo-info-micro-proccess-flow.component.mjs +0 -23
  46. package/esm2022/lib/models/document-item.mjs +0 -2
  47. package/esm2022/lib/models/documents-setting.mjs +0 -2
  48. package/esm2022/lib/models/form-report-view-setting.mjs +0 -2
  49. package/esm2022/lib/models/index.mjs +0 -8
  50. package/esm2022/lib/models/micro-process-flow-view-setting.mjs +0 -2
  51. package/esm2022/lib/models/person.mjs +0 -2
  52. package/esm2022/lib/models/service-desk-view-of-services-setting.mjs +0 -2
  53. package/esm2022/lib/models/tab-process-view-setting.mjs +0 -2
  54. package/esm2022/lib/pipes/datasource-to-flow-item.mjs +0 -23
  55. package/esm2022/lib/pipes/index.mjs +0 -3
  56. package/esm2022/lib/pipes/mo-list-to-flow-item.pipe.mjs +0 -23
  57. package/esm2022/lib/query-string-form-observable/query-string-form-observable.component.mjs +0 -37
  58. package/esm2022/lib/query-string-observable/query-string-observable.component.mjs +0 -22
  59. package/esm2022/lib/report-button-view/report-button-view.component.mjs +0 -37
  60. package/esm2022/lib/report-line-chart-view/report-line-chart-view.component.mjs +0 -12
  61. package/esm2022/lib/report-tab-view/report-tab-view.component.mjs +0 -27
  62. package/esm2022/lib/resend-verification-code/resend-verification-code.component.mjs +0 -62
  63. package/esm2022/lib/service-desk-card-content-mojavezhay-akhz-shode/service-desk-card-content-mojavezhay-akhz-shode.component.mjs +0 -28
  64. package/esm2022/lib/service-desk-form-layout-content-mojavez/service-desk-form-layout-content-mojavez.component.mjs +0 -110
  65. package/esm2022/lib/service-desk-header/service-desk-header.component.mjs +0 -249
  66. package/esm2022/lib/service-desk-servcie-detail/service-desk-servcie-detail.component.mjs +0 -142
  67. package/esm2022/lib/service-desk-view-of-services/service-desk-view-of-services.component.mjs +0 -37
  68. package/esm2022/lib/setting-form/setting-form.component.mjs +0 -64
  69. package/esm2022/lib/subform-in-row-report/subform-in-row-report.component.mjs +0 -73
  70. package/esm2022/lib/tab-process-view/tab-process-view.component.mjs +0 -48
  71. package/esm2022/lib/table-view-vertical-columns/table-view-vertical-columns.component.mjs +0 -16
  72. package/esm2022/lib/timer-count-down/timer-count-down.component.mjs +0 -104
  73. package/esm2022/lib/token-report-view/token-report-view.component.mjs +0 -27
  74. package/esm2022/lib/ui-enum-segmented-button/ui-enum-segmented-button.component.mjs +0 -25
  75. package/esm2022/lib/ui-num-rate/ui-num-rate.component.mjs +0 -41
  76. package/esm2022/lib/ui-person/ui-person.component.mjs +0 -160
  77. package/esm2022/lib/ui-person/ui-person.pipe.mjs +0 -41
  78. package/esm2022/lib/ui-pictures-carousel/ui-pictures-carousel.component.mjs +0 -17
  79. package/esm2022/lib/ui-text-field-search/ui-text-field-search.component.mjs +0 -42
  80. package/esm2022/lib/ulv-context-menu-item-show-file-content/ulv-context-menu-item-show-file-content.component.mjs +0 -69
  81. package/esm2022/public-api.mjs +0 -64
@@ -1,292 +0,0 @@
1
- import { CUSTOM_ELEMENTS_SCHEMA, NgModule, NO_ERRORS_SCHEMA } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
- import { FundamentalNgxCoreModule } from '@fundamental-ngx/core';
5
- import { BarsaNovinRayCoreModule, BaseModule } from 'barsa-novin-ray-core';
6
- import { BarsaSapUiModule } from 'barsa-sap-ui';
7
- import { BarsaTilesModule } from 'barsa-tiles';
8
- import { BarsaEchartsModule } from 'barsa-echarts';
9
- import { LoginFormComponent } from './login-form/login-form.component';
10
- import { LoginSocialConncetionsComponent } from './login-social-conncetions/login-social-conncetions.component';
11
- import { UiPersonComponent } from './ui-person/ui-person.component';
12
- import { UiPersonPipe } from './ui-person/ui-person.pipe';
13
- import { BarcodeReaderComponent } from './barcode-reader/barcode-reader.component';
14
- import { BarcodeReaderDialogComponent } from './barcode-reader-dialog/barcode-reader-dialog.component';
15
- import { BarcodeReaderVideoComponent } from './barcode-reader-video/barcode-reader-video.component';
16
- import { UserMediaBaseService, WebBarcodeService } from './barcode.service';
17
- import { SettingFormComponent } from './setting-form/setting-form.component';
18
- import { MicroProcessFlowViewComponent } from './micro-process-flow-view/micro-process-flow-view.component';
19
- import { UiEnumSegmentedButtonComponent } from './ui-enum-segmented-button/ui-enum-segmented-button.component';
20
- import { TabProcessViewComponent } from './tab-process-view/tab-process-view.component';
21
- import { UiTextFieldSearchComponent } from './ui-text-field-search/ui-text-field-search.component';
22
- import { BarcodeFormatPipe } from './barcode-format-pipe';
23
- import { ServiceDeskHeaderComponent } from './service-desk-header/service-desk-header.component';
24
- import { CardContentImageAndTitleComponent } from './card-content-image-and-title/card-content-image-and-title.component';
25
- import { CardHeaderLogoTitleSubtitleComponent } from './card-header-logo-title-subtitle/card-header-logo-title-subtitle.component';
26
- import { FormContentQuickViewComponent } from './form-content-quick-view/form-content-quick-view.component';
27
- import { ServiceDeskServcieDetailComponent } from './service-desk-servcie-detail/service-desk-servcie-detail.component';
28
- import { ServiceDeskViewOfServicesComponent } from './service-desk-view-of-services/service-desk-view-of-services.component';
29
- import { ServiceDeskCardContentMojavezhayAkhzShodeComponent } from './service-desk-card-content-mojavezhay-akhz-shode/service-desk-card-content-mojavezhay-akhz-shode.component';
30
- import { CardHeaderBigImageTitleAndSubtitleComponent } from './card-header-big-image-title-and-subtitle/card-header-big-image-title-and-subtitle.component';
31
- import { ServiceDeskFormLayoutContentMojavezComponent } from './service-desk-form-layout-content-mojavez/service-desk-form-layout-content-mojavez.component';
32
- import { UlvContextMenuItemShowFileContentComponent } from './ulv-context-menu-item-show-file-content/ulv-context-menu-item-show-file-content.component';
33
- import { ResendVerificationCodeComponent } from './resend-verification-code/resend-verification-code.component';
34
- import { CheckboxButtonComponent } from './checkbox-button/checkbox-button.component';
35
- import { ReportTabViewComponent } from './report-tab-view/report-tab-view.component';
36
- import { ReportLineChartViewComponent } from './report-line-chart-view/report-line-chart-view.component';
37
- import { CardHeaderKpiComponent } from './card-header-kpi/card-header-kpi.component';
38
- import { CardContentLineChartComponent } from './card-content-line-chart/card-content-line-chart.component';
39
- import { FormChartContentComponent } from './form-chart-content/form-chart-content.component';
40
- import { TableViewVerticalColumnsComponent } from './table-view-vertical-columns/table-view-vertical-columns.component';
41
- import { QueryStringObservableComponent } from './query-string-observable/query-string-observable.component';
42
- import { QueryStringFormObservableComponent } from './query-string-form-observable/query-string-form-observable.component';
43
- import { G4bDetailsComponent } from './g4b-details/g4b-details.component';
44
- import { AvatarComponent } from './avatar/avatar.component';
45
- import { G4bEstelamComponent } from './g4b-estelam/g4b-estelam.component';
46
- import { TimerCountDownComponent } from './timer-count-down/timer-count-down.component';
47
- import { MoInfoMicroProccessFlowComponent } from './mo-info-micro-proccess-flow/mo-info-micro-proccess-flow.component';
48
- import { MicroProccessFlowComponent } from './micro-proccess-flow/micro-proccess-flow.component';
49
- import { EnumInfoMicroProccessFlowComponent } from './enum-info-micro-proccess-flow/enum-info-micro-proccess-flow.component';
50
- import { DataSourceToFlowItemPipe, MoListToFlowItemPipe } from './pipes';
51
- import { UiPicturesCarouselComponent } from './ui-pictures-carousel/ui-pictures-carousel.component';
52
- import { UiNumRateComponent } from './ui-num-rate/ui-num-rate.component';
53
- import { MediaFileUploaderComponent } from './media-file-uploader/media-file-uploader.component';
54
- import { SubformInRowReportComponent } from './subform-in-row-report/subform-in-row-report.component';
55
- import { MasterDetailCardFormComponent } from './master-detail-card-form/master-detail-card-form.component';
56
- import { ReportButtonViewComponent } from './report-button-view/report-button-view.component';
57
- import { BarsaDocumentsComponent } from './barsa-documents/barsa-documents.component';
58
- import { BarsaDocumentListItemComponent } from './barsa-document-list-item/barsa-document-list-item.component';
59
- import { AcceptRejectComponent } from './accept-reject/accept-reject.component';
60
- import { FooterComponent } from './footer/footer.component';
61
- import { GeographicLocationComponent } from './geographic-location/geographic-location.component';
62
- import { BarsaGeographicLocationComponent } from './barsa-geographic-location/barsa-geographic-location.component';
63
- import { TokenReportViewComponent } from './token-report-view/token-report-view.component';
64
- import { ColumnFormViewerComponent } from './column-form-viewer/column-form-viewer.component';
65
- import { PlatformInputGroupModule } from '@fundamental-ngx/platform';
66
- import { FormReportViewComponent } from './form-report-view/form-report-view.component';
67
- import { FormReportViewItemComponent } from './form-report-view-item/form-report-view-item.component';
68
- import { FormCardComponent } from './form-card/form-card.component';
69
- import { ColumnProgressbarComponent } from './column-progressbar/column-progressbar.component';
70
- import { ColumnChipComponent } from '../public-api';
71
- import * as i0 from "@angular/core";
72
- import * as i1 from "barsa-novin-ray-core";
73
- const components = [
74
- LoginFormComponent,
75
- LoginSocialConncetionsComponent,
76
- UiPersonComponent,
77
- BarcodeReaderComponent,
78
- BarcodeReaderDialogComponent,
79
- BarcodeReaderVideoComponent,
80
- SettingFormComponent,
81
- MicroProcessFlowViewComponent,
82
- UiEnumSegmentedButtonComponent,
83
- TabProcessViewComponent,
84
- UiTextFieldSearchComponent,
85
- ServiceDeskHeaderComponent,
86
- CardContentImageAndTitleComponent,
87
- CardHeaderLogoTitleSubtitleComponent,
88
- FormContentQuickViewComponent,
89
- ServiceDeskServcieDetailComponent,
90
- ServiceDeskViewOfServicesComponent,
91
- ServiceDeskCardContentMojavezhayAkhzShodeComponent,
92
- CardHeaderBigImageTitleAndSubtitleComponent,
93
- ServiceDeskFormLayoutContentMojavezComponent,
94
- UlvContextMenuItemShowFileContentComponent,
95
- ResendVerificationCodeComponent,
96
- CheckboxButtonComponent,
97
- ReportTabViewComponent,
98
- ReportLineChartViewComponent,
99
- CardHeaderKpiComponent,
100
- CardContentLineChartComponent,
101
- FormChartContentComponent,
102
- TableViewVerticalColumnsComponent,
103
- QueryStringObservableComponent,
104
- QueryStringFormObservableComponent,
105
- G4bDetailsComponent,
106
- AvatarComponent,
107
- G4bEstelamComponent,
108
- TimerCountDownComponent,
109
- MoInfoMicroProccessFlowComponent,
110
- MicroProccessFlowComponent,
111
- EnumInfoMicroProccessFlowComponent,
112
- UiPicturesCarouselComponent,
113
- UiNumRateComponent,
114
- MediaFileUploaderComponent,
115
- SubformInRowReportComponent,
116
- MasterDetailCardFormComponent,
117
- ReportButtonViewComponent,
118
- BarsaDocumentsComponent,
119
- BarsaDocumentListItemComponent,
120
- AcceptRejectComponent,
121
- FooterComponent,
122
- GeographicLocationComponent,
123
- BarsaGeographicLocationComponent,
124
- TokenReportViewComponent,
125
- ColumnFormViewerComponent,
126
- FormReportViewComponent,
127
- FormReportViewItemComponent,
128
- FormCardComponent,
129
- ColumnProgressbarComponent,
130
- ColumnChipComponent
131
- ];
132
- const pipes = [UiPersonPipe, BarcodeFormatPipe, MoListToFlowItemPipe, DataSourceToFlowItemPipe];
133
- export class BarsaDevelopComponentsModule extends BaseModule {
134
- constructor(dcm, cfr) {
135
- super(dcm, cfr, 'BarsaDevelopComponentsModule');
136
- this.dcm = dcm;
137
- this.cfr = cfr;
138
- this.dynamicComponents = [...components];
139
- }
140
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaDevelopComponentsModule, deps: [{ token: i1.DynamicComponentService }, { token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.NgModule }); }
141
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: BarsaDevelopComponentsModule, declarations: [LoginFormComponent,
142
- LoginSocialConncetionsComponent,
143
- UiPersonComponent,
144
- BarcodeReaderComponent,
145
- BarcodeReaderDialogComponent,
146
- BarcodeReaderVideoComponent,
147
- SettingFormComponent,
148
- MicroProcessFlowViewComponent,
149
- UiEnumSegmentedButtonComponent,
150
- TabProcessViewComponent,
151
- UiTextFieldSearchComponent,
152
- ServiceDeskHeaderComponent,
153
- CardContentImageAndTitleComponent,
154
- CardHeaderLogoTitleSubtitleComponent,
155
- FormContentQuickViewComponent,
156
- ServiceDeskServcieDetailComponent,
157
- ServiceDeskViewOfServicesComponent,
158
- ServiceDeskCardContentMojavezhayAkhzShodeComponent,
159
- CardHeaderBigImageTitleAndSubtitleComponent,
160
- ServiceDeskFormLayoutContentMojavezComponent,
161
- UlvContextMenuItemShowFileContentComponent,
162
- ResendVerificationCodeComponent,
163
- CheckboxButtonComponent,
164
- ReportTabViewComponent,
165
- ReportLineChartViewComponent,
166
- CardHeaderKpiComponent,
167
- CardContentLineChartComponent,
168
- FormChartContentComponent,
169
- TableViewVerticalColumnsComponent,
170
- QueryStringObservableComponent,
171
- QueryStringFormObservableComponent,
172
- G4bDetailsComponent,
173
- AvatarComponent,
174
- G4bEstelamComponent,
175
- TimerCountDownComponent,
176
- MoInfoMicroProccessFlowComponent,
177
- MicroProccessFlowComponent,
178
- EnumInfoMicroProccessFlowComponent,
179
- UiPicturesCarouselComponent,
180
- UiNumRateComponent,
181
- MediaFileUploaderComponent,
182
- SubformInRowReportComponent,
183
- MasterDetailCardFormComponent,
184
- ReportButtonViewComponent,
185
- BarsaDocumentsComponent,
186
- BarsaDocumentListItemComponent,
187
- AcceptRejectComponent,
188
- FooterComponent,
189
- GeographicLocationComponent,
190
- BarsaGeographicLocationComponent,
191
- TokenReportViewComponent,
192
- ColumnFormViewerComponent,
193
- FormReportViewComponent,
194
- FormReportViewItemComponent,
195
- FormCardComponent,
196
- ColumnProgressbarComponent,
197
- ColumnChipComponent, UiPersonPipe, BarcodeFormatPipe, MoListToFlowItemPipe, DataSourceToFlowItemPipe], imports: [CommonModule,
198
- BarsaNovinRayCoreModule,
199
- ReactiveFormsModule,
200
- BarsaSapUiModule,
201
- BarsaEchartsModule,
202
- BarsaTilesModule,
203
- FundamentalNgxCoreModule,
204
- PlatformInputGroupModule,
205
- FormsModule], exports: [LoginFormComponent,
206
- LoginSocialConncetionsComponent,
207
- UiPersonComponent,
208
- BarcodeReaderComponent,
209
- BarcodeReaderDialogComponent,
210
- BarcodeReaderVideoComponent,
211
- SettingFormComponent,
212
- MicroProcessFlowViewComponent,
213
- UiEnumSegmentedButtonComponent,
214
- TabProcessViewComponent,
215
- UiTextFieldSearchComponent,
216
- ServiceDeskHeaderComponent,
217
- CardContentImageAndTitleComponent,
218
- CardHeaderLogoTitleSubtitleComponent,
219
- FormContentQuickViewComponent,
220
- ServiceDeskServcieDetailComponent,
221
- ServiceDeskViewOfServicesComponent,
222
- ServiceDeskCardContentMojavezhayAkhzShodeComponent,
223
- CardHeaderBigImageTitleAndSubtitleComponent,
224
- ServiceDeskFormLayoutContentMojavezComponent,
225
- UlvContextMenuItemShowFileContentComponent,
226
- ResendVerificationCodeComponent,
227
- CheckboxButtonComponent,
228
- ReportTabViewComponent,
229
- ReportLineChartViewComponent,
230
- CardHeaderKpiComponent,
231
- CardContentLineChartComponent,
232
- FormChartContentComponent,
233
- TableViewVerticalColumnsComponent,
234
- QueryStringObservableComponent,
235
- QueryStringFormObservableComponent,
236
- G4bDetailsComponent,
237
- AvatarComponent,
238
- G4bEstelamComponent,
239
- TimerCountDownComponent,
240
- MoInfoMicroProccessFlowComponent,
241
- MicroProccessFlowComponent,
242
- EnumInfoMicroProccessFlowComponent,
243
- UiPicturesCarouselComponent,
244
- UiNumRateComponent,
245
- MediaFileUploaderComponent,
246
- SubformInRowReportComponent,
247
- MasterDetailCardFormComponent,
248
- ReportButtonViewComponent,
249
- BarsaDocumentsComponent,
250
- BarsaDocumentListItemComponent,
251
- AcceptRejectComponent,
252
- FooterComponent,
253
- GeographicLocationComponent,
254
- BarsaGeographicLocationComponent,
255
- TokenReportViewComponent,
256
- ColumnFormViewerComponent,
257
- FormReportViewComponent,
258
- FormReportViewItemComponent,
259
- FormCardComponent,
260
- ColumnProgressbarComponent,
261
- ColumnChipComponent] }); }
262
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaDevelopComponentsModule, providers: [UserMediaBaseService, WebBarcodeService], imports: [CommonModule,
263
- BarsaNovinRayCoreModule,
264
- ReactiveFormsModule,
265
- BarsaSapUiModule,
266
- BarsaEchartsModule,
267
- BarsaTilesModule,
268
- FundamentalNgxCoreModule,
269
- PlatformInputGroupModule,
270
- FormsModule] }); }
271
- }
272
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaDevelopComponentsModule, decorators: [{
273
- type: NgModule,
274
- args: [{
275
- declarations: [...components, ...pipes],
276
- schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA],
277
- imports: [
278
- CommonModule,
279
- BarsaNovinRayCoreModule,
280
- ReactiveFormsModule,
281
- BarsaSapUiModule,
282
- BarsaEchartsModule,
283
- BarsaTilesModule,
284
- FundamentalNgxCoreModule,
285
- PlatformInputGroupModule,
286
- FormsModule
287
- ],
288
- providers: [UserMediaBaseService, WebBarcodeService],
289
- exports: [...components]
290
- }]
291
- }], ctorParameters: () => [{ type: i1.DynamicComponentService }, { type: i0.ComponentFactoryResolver }] });
292
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLWRldmVsb3AtY29tcG9uZW50cy9zcmMvbGliL2JhcnNhLWRldmVsb3AtY29tcG9uZW50cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE0QixzQkFBc0IsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0csT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVqRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsVUFBVSxFQUEyQixNQUFNLHNCQUFzQixDQUFDO0FBQ3BHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBQ2hILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUN2RyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx1REFBdUQs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eEMsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUUsQ0FBQyxHQUFHLFVBQVUsRUFBRSxHQUFHLEtBQUssQ0FBQztvQkFDdkMsT0FBTyxFQUFFLENBQUMsc0JBQXNCLEVBQUUsZ0JBQWdCLENBQUM7b0JBQ25ELE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLHVCQUF1Qjt3QkFDdkIsbUJBQW1CO3dCQUNuQixnQkFBZ0I7d0JBQ2hCLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQix3QkFBd0I7d0JBQ3hCLHdCQUF3Qjt3QkFDeEIsV0FBVztxQkFDZDtvQkFDRCxTQUFTLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxpQkFBaUIsQ0FBQztvQkFDcEQsT0FBTyxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUM7aUJBQzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBOZ01vZHVsZSwgTk9fRVJST1JTX1NDSEVNQSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRnVuZGFtZW50YWxOZ3hDb3JlTW9kdWxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcclxuXHJcbmltcG9ydCB7IEJhcnNhTm92aW5SYXlDb3JlTW9kdWxlLCBCYXNlTW9kdWxlLCBEeW5hbWljQ29tcG9uZW50U2VydmljZSB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuaW1wb3J0IHsgQmFyc2FTYXBVaU1vZHVsZSB9IGZyb20gJ2JhcnNhLXNhcC11aSc7XHJcbmltcG9ydCB7IEJhcnNhVGlsZXNNb2R1bGUgfSBmcm9tICdiYXJzYS10aWxlcyc7XHJcbmltcG9ydCB7IEJhcnNhRWNoYXJ0c01vZHVsZSB9IGZyb20gJ2JhcnNhLWVjaGFydHMnO1xyXG5cclxuaW1wb3J0IHsgTG9naW5Gb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9sb2dpbi1mb3JtL2xvZ2luLWZvcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTG9naW5Tb2NpYWxDb25uY2V0aW9uc0NvbXBvbmVudCB9IGZyb20gJy4vbG9naW4tc29jaWFsLWNvbm5jZXRpb25zL2xvZ2luLXNvY2lhbC1jb25uY2V0aW9ucy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVaVBlcnNvbkNvbXBvbmVudCB9IGZyb20gJy4vdWktcGVyc29uL3VpLXBlcnNvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVaVBlcnNvblBpcGUgfSBmcm9tICcuL3VpLXBlcnNvbi91aS1wZXJzb24ucGlwZSc7XHJcbmltcG9ydCB7IEJhcmNvZGVSZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL2JhcmNvZGUtcmVhZGVyL2JhcmNvZGUtcmVhZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJhcmNvZGVSZWFkZXJEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2JhcmNvZGUtcmVhZGVyLWRpYWxvZy9iYXJjb2RlLXJlYWRlci1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmFyY29kZVJlYWRlclZpZGVvQ29tcG9uZW50IH0gZnJvbSAnLi9iYXJjb2RlLXJlYWRlci12aWRlby9iYXJjb2RlLXJlYWRlci12aWRlby5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVc2VyTWVkaWFCYXNlU2VydmljZSwgV2ViQmFyY29kZVNlcnZpY2UgfSBmcm9tICcuL2JhcmNvZGUuc2VydmljZSc7XHJcbmltcG9ydCB7IFNldHRpbmdGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9zZXR0aW5nLWZvcm0vc2V0dGluZy1mb3JtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1pY3JvUHJvY2Vzc0Zsb3dWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9taWNyby1wcm9jZXNzLWZsb3ctdmlldy9taWNyby1wcm9jZXNzLWZsb3ctdmlldy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVaUVudW1TZWdtZW50ZWRCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL3VpLWVudW0tc2VnbWVudGVkLWJ1dHRvbi91aS1lbnVtLXNlZ21lbnRlZC1idXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGFiUHJvY2Vzc1ZpZXdDb21wb25lbnQgfSBmcm9tICcuL3RhYi1wcm9jZXNzLXZpZXcvdGFiLXByb2Nlc3Mtdmlldy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVaVRleHRGaWVsZFNlYXJjaENvbXBvbmVudCB9IGZyb20gJy4vdWktdGV4dC1maWVsZC1zZWFyY2gvdWktdGV4dC1maWVsZC1zZWFyY2guY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmFyY29kZUZvcm1hdFBpcGUgfSBmcm9tICcuL2JhcmNvZGUtZm9ybWF0LXBpcGUnO1xyXG5pbXBvcnQgeyBTZXJ2aWNlRGVza0hlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vc2VydmljZS1kZXNrLWhlYWRlci9zZXJ2aWNlLWRlc2staGVhZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENhcmRDb250ZW50SW1hZ2VBbmRUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4vY2FyZC1jb250ZW50LWltYWdlLWFuZC10aXRsZS9jYXJkLWNvbnRlbnQtaW1hZ2UtYW5kLXRpdGxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENhcmRIZWFkZXJMb2dvVGl0bGVTdWJ0aXRsZUNvbXBvbmVudCB9IGZyb20gJy4vY2FyZC1oZWFkZXItbG9nby10aXRsZS1zdWJ0aXRsZS9jYXJkLWhlYWRlci1sb2dvLXRpdGxlLXN1YnRpdGxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvcm1Db250ZW50UXVpY2tWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLWNvbnRlbnQtcXVpY2stdmlldy9mb3JtLWNvbnRlbnQtcXVpY2stdmlldy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZXJ2aWNlRGVza1NlcnZjaWVEZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL3NlcnZpY2UtZGVzay1zZXJ2Y2llLWRldGFpbC9zZXJ2aWNlLWRlc2stc2VydmNpZS1kZXRhaWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2VydmljZURlc2tWaWV3T2ZTZXJ2aWNlc0NvbXBvbmVudCB9IGZyb20gJy4vc2VydmljZS1kZXNrLXZpZXctb2Ytc2VydmljZXMvc2VydmljZS1kZXNrLXZpZXctb2Ytc2VydmljZXMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2VydmljZURlc2tDYXJkQ29udGVudE1vamF2ZXpoYXlBa2h6U2hvZGVDb21wb25lbnQgfSBmcm9tICcuL3NlcnZpY2UtZGVzay1jYXJkLWNvbnRlbnQtbW9qYXZlemhheS1ha2h6LXNob2RlL3NlcnZpY2UtZGVzay1jYXJkLWNvbnRlbnQtbW9qYXZlemhheS1ha2h6LXNob2RlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENhcmRIZWFkZXJCaWdJbWFnZVRpdGxlQW5kU3VidGl0bGVDb21wb25lbnQgfSBmcm9tICcuL2NhcmQtaGVhZGVyLWJpZy1pbWFnZS10aXRsZS1hbmQtc3VidGl0bGUvY2FyZC1oZWFkZXItYmlnLWltYWdlLXRpdGxlLWFuZC1zdWJ0aXRsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZXJ2aWNlRGVza0Zvcm1MYXlvdXRDb250ZW50TW9qYXZlekNvbXBvbmVudCB9IGZyb20gJy4vc2VydmljZS1kZXNrLWZvcm0tbGF5b3V0LWNvbnRlbnQtbW9qYXZlei9zZXJ2aWNlLWRlc2stZm9ybS1sYXlvdXQtY29udGVudC1tb2phdmV6LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVsdkNvbnRleHRNZW51SXRlbVNob3dGaWxlQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4vdWx2LWNvbnRleHQtbWVudS1pdGVtLXNob3ctZmlsZS1jb250ZW50L3Vsdi1jb250ZXh0LW1lbnUtaXRlbS1zaG93LWZpbGUtY29udGVudC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSZXNlbmRWZXJpZmljYXRpb25Db2RlQ29tcG9uZW50IH0gZnJvbSAnLi9yZXNlbmQtdmVyaWZpY2F0aW9uLWNvZGUvcmVzZW5kLXZlcmlmaWNhdGlvbi1jb2RlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENoZWNrYm94QnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9jaGVja2JveC1idXR0b24vY2hlY2tib3gtYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJlcG9ydFRhYlZpZXdDb21wb25lbnQgfSBmcm9tICcuL3JlcG9ydC10YWItdmlldy9yZXBvcnQtdGFiLXZpZXcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmVwb3J0TGluZUNoYXJ0Vmlld0NvbXBvbmVudCB9IGZyb20gJy4vcmVwb3J0LWxpbmUtY2hhcnQtdmlldy9yZXBvcnQtbGluZS1jaGFydC12aWV3LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENhcmRIZWFkZXJLcGlDb21wb25lbnQgfSBmcm9tICcuL2NhcmQtaGVhZGVyLWtwaS9jYXJkLWhlYWRlci1rcGkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ2FyZENvbnRlbnRMaW5lQ2hhcnRDb21wb25lbnQgfSBmcm9tICcuL2NhcmQtY29udGVudC1saW5lLWNoYXJ0L2NhcmQtY29udGVudC1saW5lLWNoYXJ0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvcm1DaGFydENvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuL2Zvcm0tY2hhcnQtY29udGVudC9mb3JtLWNoYXJ0LWNvbnRlbnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGFibGVWaWV3VmVydGljYWxDb2x1bW5zQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS12aWV3LXZlcnRpY2FsLWNvbHVtbnMvdGFibGUtdmlldy12ZXJ0aWNhbC1jb2x1bW5zLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFF1ZXJ5U3RyaW5nT2JzZXJ2YWJsZUNvbXBvbmVudCB9IGZyb20gJy4vcXVlcnktc3RyaW5nLW9ic2VydmFibGUvcXVlcnktc3RyaW5nLW9ic2VydmFibGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUXVlcnlTdHJpbmdGb3JtT2JzZXJ2YWJsZUNvbXBvbmVudCB9IGZyb20gJy4vcXVlcnktc3RyaW5nLWZvcm0tb2JzZXJ2YWJsZS9xdWVyeS1zdHJpbmctZm9ybS1vYnNlcnZhYmxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEc0YkRldGFpbHNDb21wb25lbnQgfSBmcm9tICcuL2c0Yi1kZXRhaWxzL2c0Yi1kZXRhaWxzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEF2YXRhckNvbXBvbmVudCB9IGZyb20gJy4vYXZhdGFyL2F2YXRhci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBHNGJFc3RlbGFtQ29tcG9uZW50IH0gZnJvbSAnLi9nNGItZXN0ZWxhbS9nNGItZXN0ZWxhbS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUaW1lckNvdW50RG93bkNvbXBvbmVudCB9IGZyb20gJy4vdGltZXItY291bnQtZG93bi90aW1lci1jb3VudC1kb3duLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1vSW5mb01pY3JvUHJvY2Nlc3NGbG93Q29tcG9uZW50IH0gZnJvbSAnLi9tby1pbmZvLW1pY3JvLXByb2NjZXNzLWZsb3cvbW8taW5mby1taWNyby1wcm9jY2Vzcy1mbG93LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1pY3JvUHJvY2Nlc3NGbG93Q29tcG9uZW50IH0gZnJvbSAnLi9taWNyby1wcm9jY2Vzcy1mbG93L21pY3JvLXByb2NjZXNzLWZsb3cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRW51bUluZm9NaWNyb1Byb2NjZXNzRmxvd0NvbXBvbmVudCB9IGZyb20gJy4vZW51bS1pbmZvLW1pY3JvLXByb2NjZXNzLWZsb3cvZW51bS1pbmZvLW1pY3JvLXByb2NjZXNzLWZsb3cuY29tcG9uZW50JztcclxuXHJcbmltcG9ydCB7IERhdGFTb3VyY2VUb0Zsb3dJdGVtUGlwZSwgTW9MaXN0VG9GbG93SXRlbVBpcGUgfSBmcm9tICcuL3BpcGVzJztcclxuaW1wb3J0IHsgVWlQaWN0dXJlc0Nhcm91c2VsQ29tcG9uZW50IH0gZnJvbSAnLi91aS1waWN0dXJlcy1jYXJvdXNlbC91aS1waWN0dXJlcy1jYXJvdXNlbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVaU51bVJhdGVDb21wb25lbnQgfSBmcm9tICcuL3VpLW51bS1yYXRlL3VpLW51bS1yYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1lZGlhRmlsZVVwbG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9tZWRpYS1maWxlLXVwbG9hZGVyL21lZGlhLWZpbGUtdXBsb2FkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3ViZm9ybUluUm93UmVwb3J0Q29tcG9uZW50IH0gZnJvbSAnLi9zdWJmb3JtLWluLXJvdy1yZXBvcnQvc3ViZm9ybS1pbi1yb3ctcmVwb3J0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hc3RlckRldGFpbENhcmRGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9tYXN0ZXItZGV0YWlsLWNhcmQtZm9ybS9tYXN0ZXItZGV0YWlsLWNhcmQtZm9ybS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSZXBvcnRCdXR0b25WaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9yZXBvcnQtYnV0dG9uLXZpZXcvcmVwb3J0LWJ1dHRvbi12aWV3LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJhcnNhRG9jdW1lbnRzQ29tcG9uZW50IH0gZnJvbSAnLi9iYXJzYS1kb2N1bWVudHMvYmFyc2EtZG9jdW1lbnRzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJhcnNhRG9jdW1lbnRMaXN0SXRlbUNvbXBvbmVudCB9IGZyb20gJy4vYmFyc2EtZG9jdW1lbnQtbGlzdC1pdGVtL2JhcnNhLWRvY3VtZW50LWxpc3QtaXRlbS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBY2NlcHRSZWplY3RDb21wb25lbnQgfSBmcm9tICcuL2FjY2VwdC1yZWplY3QvYWNjZXB0LXJlamVjdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb290ZXJDb21wb25lbnQgfSBmcm9tICcuL2Zvb3Rlci9mb290ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgR2VvZ3JhcGhpY0xvY2F0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9nZW9ncmFwaGljLWxvY2F0aW9uL2dlb2dyYXBoaWMtbG9jYXRpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmFyc2FHZW9ncmFwaGljTG9jYXRpb25Db21wb25lbnQgfSBmcm9tICcuL2JhcnNhLWdlb2dyYXBoaWMtbG9jYXRpb24vYmFyc2EtZ2VvZ3JhcGhpYy1sb2NhdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUb2tlblJlcG9ydFZpZXdDb21wb25lbnQgfSBmcm9tICcuL3Rva2VuLXJlcG9ydC12aWV3L3Rva2VuLXJlcG9ydC12aWV3LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbHVtbkZvcm1WaWV3ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbHVtbi1mb3JtLXZpZXdlci9jb2x1bW4tZm9ybS12aWV3ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUGxhdGZvcm1JbnB1dEdyb3VwTW9kdWxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybSc7XHJcbmltcG9ydCB7IEZvcm1SZXBvcnRWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLXJlcG9ydC12aWV3L2Zvcm0tcmVwb3J0LXZpZXcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRm9ybVJlcG9ydFZpZXdJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLXJlcG9ydC12aWV3LWl0ZW0vZm9ybS1yZXBvcnQtdmlldy1pdGVtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvcm1DYXJkQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLWNhcmQvZm9ybS1jYXJkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbHVtblByb2dyZXNzYmFyQ29tcG9uZW50IH0gZnJvbSAnLi9jb2x1bW4tcHJvZ3Jlc3NiYXIvY29sdW1uLXByb2dyZXNzYmFyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbHVtbkNoaXBDb21wb25lbnQgfSBmcm9tICcuLi9wdWJsaWMtYXBpJztcclxuXHJcbmNvbnN0IGNvbXBvbmVudHMgPSBbXHJcbiAgICBMb2dpbkZvcm1Db21wb25lbnQsXHJcbiAgICBMb2dpblNvY2lhbENvbm5jZXRpb25zQ29tcG9uZW50LFxyXG4gICAgVWlQZXJzb25Db21wb25lbnQsXHJcbiAgICBCYXJjb2RlUmVhZGVyQ29tcG9uZW50LFxyXG4gICAgQmFyY29kZVJlYWRlckRpYWxvZ0NvbXBvbmVudCxcclxuICAgIEJhcmNvZGVSZWFkZXJWaWRlb0NvbXBvbmVudCxcclxuICAgIFNldHRpbmdGb3JtQ29tcG9uZW50LFxyXG4gICAgTWljcm9Qcm9jZXNzRmxvd1ZpZXdDb21wb25lbnQsXHJcbiAgICBVaUVudW1TZWdtZW50ZWRCdXR0b25Db21wb25lbnQsXHJcbiAgICBUYWJQcm9jZXNzVmlld0NvbXBvbmVudCxcclxuICAgIFVpVGV4dEZpZWxkU2VhcmNoQ29tcG9uZW50LFxyXG4gICAgU2VydmljZURlc2tIZWFkZXJDb21wb25lbnQsXHJcbiAgICBDYXJkQ29udGVudEltYWdlQW5kVGl0bGVDb21wb25lbnQsXHJcbiAgICBDYXJkSGVhZGVyTG9nb1RpdGxlU3VidGl0bGVDb21wb25lbnQsXHJcbiAgICBGb3JtQ29udGVudFF1aWNrVmlld0NvbXBvbmVudCxcclxuICAgIFNlcnZpY2VEZXNrU2VydmNpZURldGFpbENvbXBvbmVudCxcclxuICAgIFNlcnZpY2VEZXNrVmlld09mU2VydmljZXNDb21wb25lbnQsXHJcbiAgICBTZXJ2aWNlRGVza0NhcmRDb250ZW50TW9qYXZlemhheUFraHpTaG9kZUNvbXBvbmVudCxcclxuICAgIENhcmRIZWFkZXJCaWdJbWFnZVRpdGxlQW5kU3VidGl0bGVDb21wb25lbnQsXHJcbiAgICBTZXJ2aWNlRGVza0Zvcm1MYXlvdXRDb250ZW50TW9qYXZlekNvbXBvbmVudCxcclxuICAgIFVsdkNvbnRleHRNZW51SXRlbVNob3dGaWxlQ29udGVudENvbXBvbmVudCxcclxuICAgIFJlc2VuZFZlcmlmaWNhdGlvbkNvZGVDb21wb25lbnQsXHJcbiAgICBDaGVja2JveEJ1dHRvbkNvbXBvbmVudCxcclxuICAgIFJlcG9ydFRhYlZpZXdDb21wb25lbnQsXHJcbiAgICBSZXBvcnRMaW5lQ2hhcnRWaWV3Q29tcG9uZW50LFxyXG4gICAgQ2FyZEhlYWRlcktwaUNvbXBvbmVudCxcclxuICAgIENhcmRDb250ZW50TGluZUNoYXJ0Q29tcG9uZW50LFxyXG4gICAgRm9ybUNoYXJ0Q29udGVudENvbXBvbmVudCxcclxuICAgIFRhYmxlVmlld1ZlcnRpY2FsQ29sdW1uc0NvbXBvbmVudCxcclxuICAgIFF1ZXJ5U3RyaW5nT2JzZXJ2YWJsZUNvbXBvbmVudCxcclxuICAgIFF1ZXJ5U3RyaW5nRm9ybU9ic2VydmFibGVDb21wb25lbnQsXHJcbiAgICBHNGJEZXRhaWxzQ29tcG9uZW50LFxyXG4gICAgQXZhdGFyQ29tcG9uZW50LFxyXG4gICAgRzRiRXN0ZWxhbUNvbXBvbmVudCxcclxuICAgIFRpbWVyQ291bnREb3duQ29tcG9uZW50LFxyXG4gICAgTW9JbmZvTWljcm9Qcm9jY2Vzc0Zsb3dDb21wb25lbnQsXHJcbiAgICBNaWNyb1Byb2NjZXNzRmxvd0NvbXBvbmVudCxcclxuICAgIEVudW1JbmZvTWljcm9Qcm9jY2Vzc0Zsb3dDb21wb25lbnQsXHJcbiAgICBVaVBpY3R1cmVzQ2Fyb3VzZWxDb21wb25lbnQsXHJcbiAgICBVaU51bVJhdGVDb21wb25lbnQsXHJcbiAgICBNZWRpYUZpbGVVcGxvYWRlckNvbXBvbmVudCxcclxuICAgIFN1YmZvcm1JblJvd1JlcG9ydENvbXBvbmVudCxcclxuICAgIE1hc3RlckRldGFpbENhcmRGb3JtQ29tcG9uZW50LFxyXG4gICAgUmVwb3J0QnV0dG9uVmlld0NvbXBvbmVudCxcclxuICAgIEJhcnNhRG9jdW1lbnRzQ29tcG9uZW50LFxyXG4gICAgQmFyc2FEb2N1bWVudExpc3RJdGVtQ29tcG9uZW50LFxyXG4gICAgQWNjZXB0UmVqZWN0Q29tcG9uZW50LFxyXG4gICAgRm9vdGVyQ29tcG9uZW50LFxyXG4gICAgR2VvZ3JhcGhpY0xvY2F0aW9uQ29tcG9uZW50LFxyXG4gICAgQmFyc2FHZW9ncmFwaGljTG9jYXRpb25Db21wb25lbnQsXHJcbiAgICBUb2tlblJlcG9ydFZpZXdDb21wb25lbnQsXHJcbiAgICBDb2x1bW5Gb3JtVmlld2VyQ29tcG9uZW50LFxyXG4gICAgRm9ybVJlcG9ydFZpZXdDb21wb25lbnQsXHJcbiAgICBGb3JtUmVwb3J0Vmlld0l0ZW1Db21wb25lbnQsXHJcbiAgICBGb3JtQ2FyZENvbXBvbmVudCxcclxuICAgIENvbHVtblByb2dyZXNzYmFyQ29tcG9uZW50LFxyXG4gICAgQ29sdW1uQ2hpcENvbXBvbmVudFxyXG5dO1xyXG5jb25zdCBwaXBlcyA9IFtVaVBlcnNvblBpcGUsIEJhcmNvZGVGb3JtYXRQaXBlLCBNb0xpc3RUb0Zsb3dJdGVtUGlwZSwgRGF0YVNvdXJjZVRvRmxvd0l0ZW1QaXBlXTtcclxuQE5nTW9kdWxlKHtcclxuICAgIGRlY2xhcmF0aW9uczogWy4uLmNvbXBvbmVudHMsIC4uLnBpcGVzXSxcclxuICAgIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBOT19FUlJPUlNfU0NIRU1BXSxcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBDb21tb25Nb2R1bGUsXHJcbiAgICAgICAgQmFyc2FOb3ZpblJheUNvcmVNb2R1bGUsXHJcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgICAgICBCYXJzYVNhcFVpTW9kdWxlLFxyXG4gICAgICAgIEJhcnNhRWNoYXJ0c01vZHVsZSxcclxuICAgICAgICBCYXJzYVRpbGVzTW9kdWxlLFxyXG4gICAgICAgIEZ1bmRhbWVudGFsTmd4Q29yZU1vZHVsZSxcclxuICAgICAgICBQbGF0Zm9ybUlucHV0R3JvdXBNb2R1bGUsXHJcbiAgICAgICAgRm9ybXNNb2R1bGVcclxuICAgIF0sXHJcbiAgICBwcm92aWRlcnM6IFtVc2VyTWVkaWFCYXNlU2VydmljZSwgV2ViQmFyY29kZVNlcnZpY2VdLFxyXG4gICAgZXhwb3J0czogWy4uLmNvbXBvbmVudHNdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCYXJzYURldmVsb3BDb21wb25lbnRzTW9kdWxlIGV4dGVuZHMgQmFzZU1vZHVsZSB7XHJcbiAgICBwcm90ZWN0ZWQgZHluYW1pY0NvbXBvbmVudHMgPSBbLi4uY29tcG9uZW50c107XHJcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZGNtOiBEeW5hbWljQ29tcG9uZW50U2VydmljZSwgcHJvdGVjdGVkIGNmcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyKSB7XHJcbiAgICAgICAgc3VwZXIoZGNtLCBjZnIsICdCYXJzYURldmVsb3BDb21wb25lbnRzTW9kdWxlJyk7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -1,104 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { AudioMimeType, BaseComponent, ImageMimeType, PreventDefaulEvent, VideoMimeType, AllFilesMimeType, isImage, getIcon } from 'barsa-novin-ray-core';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "barsa-novin-ray-core";
5
- import * as i2 from "@angular/common";
6
- import * as i3 from "barsa-sap-ui";
7
- import * as i4 from "@fundamental-ngx/core/action-sheet";
8
- import * as i5 from "@fundamental-ngx/core/avatar";
9
- import * as i6 from "@fundamental-ngx/core/button";
10
- import * as i7 from "@fundamental-ngx/core/file-uploader";
11
- import * as i8 from "@fundamental-ngx/core/form";
12
- import * as i9 from "@fundamental-ngx/core/inline-help";
13
- import * as i10 from "@fundamental-ngx/core/object-status";
14
- import * as i11 from "@fundamental-ngx/core/table";
15
- import * as i12 from "@fundamental-ngx/core/toolbar";
16
- export class BarsaDocumentListItemComponent extends BaseComponent {
17
- constructor(_cdr, _picFieldSrc) {
18
- super();
19
- this._cdr = _cdr;
20
- this._picFieldSrc = _picFieldSrc;
21
- this.statusChanged = new EventEmitter();
22
- this.rejectTextChange = new EventEmitter();
23
- this.fileSelectionChange = new EventEmitter();
24
- this.removeFile = new EventEmitter();
25
- this.fullscreen = new EventEmitter();
26
- this.download = new EventEmitter();
27
- this.downloadAll = new EventEmitter();
28
- this.hasFiles = false;
29
- }
30
- ngOnInit() {
31
- super.ngOnInit();
32
- const documentItem = this.documentItem;
33
- documentItem.$ValidExtensions = `
34
- ${documentItem.SupportImage ? ImageMimeType : ''},
35
- ${documentItem.SupportAudio ? AudioMimeType : ''},
36
- ${documentItem.SupportVideo ? VideoMimeType : ''},
37
- ${documentItem.SupportFile ? AllFilesMimeType : ''}
38
- `;
39
- }
40
- ngOnChanges(changes) {
41
- super.ngOnChanges(changes);
42
- const { files } = changes;
43
- files && Array.isArray(files.currentValue) && this._setFirstImage(files.currentValue);
44
- this._detectChanges();
45
- }
46
- onReject(e) {
47
- this.statusChanged.emit({ value: e, rejectedText: e === 2 ? '' : this.rejectedReason });
48
- }
49
- onRejectedTextChange(e) {
50
- this.rejectTextChange.emit(e.target.value);
51
- }
52
- onPreventClick(e) {
53
- PreventDefaulEvent(e);
54
- }
55
- onFileSelection(files) {
56
- this.fileSelectionChange.emit(files);
57
- }
58
- _setFirstImage(files) {
59
- files.length &&
60
- (this.firstImageUrl = isImage(files[0].Type)
61
- ? this._picFieldSrc.transform(files[0].Id, 'ID', null, '', 120, 120)
62
- : getIcon(files[0].Type));
63
- }
64
- _detectChanges() {
65
- this._cdr.detectChanges();
66
- }
67
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaDocumentListItemComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.PictureFieldSourcePipe }], target: i0.ɵɵFactoryTarget.Component }); }
68
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: BarsaDocumentListItemComponent, selector: "bdc-barsa-document-list-item", inputs: { documentItem: "documentItem", deviceSize: "deviceSize", files: "files", accepted: "accepted", rejectedReason: "rejectedReason", readonly: "readonly", status: "status", uploadingState: "uploadingState" }, outputs: { statusChanged: "statusChanged", rejectTextChange: "rejectTextChange", fileSelectionChange: "fileSelectionChange", removeFile: "removeFile", fullscreen: "fullscreen", download: "download", downloadAll: "downloadAll" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<!-- <li fd-list-item style=\"padding: 0.5rem 1rem\">\r\n<span fd-list-thumbnail>\r\n <fd-icon *ngIf=\"documentItem.FontIcon\" [glyph]=\"documentItem.FontIcon\"></fd-icon>\r\n <fd-avatar\r\n *ngIf=\"documentItem.Avatar\"\r\n size=\"s\"\r\n [image]=\"documentItem.Avatar.FileId | picFieldSrc: 'ID':null:''\"\r\n [clickable]=\"true\"\r\n ></fd-avatar\r\n ></span>\r\n\r\n <div fd-list-content>\r\n <div fd-list-title>\r\n <div style=\"display: flex; column-gap: 3px\">\r\n <strong\r\n >{{ documentItem.Title }}\r\n <span fd-object-status status=\"negative\" *ngIf=\"documentItem.IsRequired\"\r\n >*({{ '\u0627\u062C\u0628\u0627\u0631\u06CC' | bbbTranslate }})\r\n </span>\r\n </strong>\r\n <div\r\n *ngIf=\"documentItem.$Accepted === false || documentItem.$Accepted === true\"\r\n style=\"display: flex; column-gap: 3px; flex-wrap: wrap; align-items: center\"\r\n >\r\n <span\r\n fd-object-status\r\n [status]=\"accepted ? 'positive' : 'negative'\"\r\n [label]=\"accepted ? acceptedText : rejectedText\"\r\n [clickable]=\"true\"\r\n [inverted]=\"true\"\r\n [aria-label]=\"accepted ? acceptedText : rejectedText\"\r\n ></span>\r\n <fd-popover title=\"Rejected document\" *ngIf=\"rejectedReason && !accepted\">\r\n <fd-popover-control>\r\n <span\r\n fd-object-status\r\n status=\"negative\"\r\n glyph=\"question-mark\"\r\n glyphAriaLabel=\"Negative\"\r\n title=\"Rejected document\"\r\n ></span>\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n <fd-message-strip type=\"error\" [dismissible]=\"false\">\r\n {{ rejectedReason }}\r\n </fd-message-strip>\r\n </fd-popover-body>\r\n </fd-popover>\r\n </div>\r\n </div>\r\n </div>\r\n <div fd-list-byline [twoCol]=\"true\" [class.smallSize]=\"deviceSize === 's'\">\r\n <div fd-list-byline-left>\r\n <div style=\"display: flex; flex-direction: column; row-gap: 5px; flex-wrap: wrap\">\r\n <span>\r\n {{ documentItem.Description }}\r\n </span>\r\n <div style=\"display: flex; flex-wrap: wrap; column-gap: 3px; align-items: center\">\r\n <ng-container *ngIf=\"hasFiles\">\r\n <button fd-button [fdType]=\"'transparent'\" glyph=\"show\" (click)=\"onFullscreen()\"></button>\r\n <ng-container *ngFor=\"let file of files\">\r\n <fd-token\r\n [readOnly]=\"readonly\"\r\n *ngIf=\"!file.IsDeleted\"\r\n (onCloseClick)=\"onRemoveFile(file)\"\r\n >{{ file.FileName }}</fd-token\r\n >\r\n </ng-container>\r\n </ng-container>\r\n <button\r\n fd-button\r\n *ngIf=\"documentItem.MaxFileCount && !readonly\"\r\n glyph=\"attachment\"\r\n [label]=\"'AttachFile' | bbbTranslate\"\r\n (click)=\"!readonly && uploader.open()\"\r\n ></button>\r\n <fd-file-uploader\r\n #uploader\r\n [style.display]=\"'none'\"\r\n fd-toolbar-item\r\n [id]=\"documentItem.ItemKey\"\r\n [name]=\"'pictures_' + documentItem.ItemKey\"\r\n [accept]=\"documentItem.$ValidExtensions\"\r\n [fileLimit]=\"documentItem.MaxFileCount\"\r\n [multiple]=\"documentItem.MaxFileCount > 0\"\r\n (selectedFilesChanged)=\"onFileSelection($event)\"\r\n ></fd-file-uploader>\r\n </div>\r\n </div>\r\n </div>\r\n <div fd-list-byline-right *ngIf=\"documentItem.CanAccept\">\r\n <bdc-accept-reject\r\n [rejectedReason]=\"rejectedReason\"\r\n [positiveText]=\"acceptedText\"\r\n [negativeText]=\"rejectedText\"\r\n [deviceSize]=\"deviceSize\"\r\n [readonly]=\"readonly\"\r\n ></bdc-accept-reject>\r\n </div>\r\n </div>\r\n </div>\r\n </li> -->\r\n\r\n<tr fd-table-row>\r\n <td fd-table-cell>\r\n @if (documentItem.Avatar && !files.length) {\r\n <fd-avatar\r\n size=\"s\"\r\n [image]=\"documentItem.Avatar.FileId | picFieldSrc: 'ID':null:'':64:64\"\r\n [clickable]=\"true\"\r\n [transparent]=\"true\"\r\n ></fd-avatar>\r\n } @else { @if (files.length) {\r\n <fd-avatar [transparent]=\"true\" size=\"s\" [image]=\"firstImageUrl\" [clickable]=\"true\"></fd-avatar>\r\n } @if (!files.length) {\r\n <fd-avatar [transparent]=\"true\" size=\"s\" [glyph]=\"documentItem.FontIcon\" [clickable]=\"true\"></fd-avatar>\r\n } }\r\n </td>\r\n <td fd-table-cell style=\"min-width: 140px\">\r\n <p fd-table-text>\r\n <strong\r\n >{{ documentItem.Title }}\r\n @if (documentItem.IsRequired) {\r\n <span fd-object-status status=\"negative\">*({{ '\u0627\u062C\u0628\u0627\u0631\u06CC' | bbbTranslate }}) </span>\r\n }\r\n </strong>\r\n </p>\r\n <div>\r\n <span>\r\n {{ documentItem.Description }}\r\n </span>\r\n </div>\r\n </td>\r\n\r\n <td fd-table-cell>\r\n <ng-container>\r\n <!-- <ul fd-list>\r\n <li fd-list-item *ngFor=\"let file of files; let ind = index\">\r\n <span fd-list-title>\r\n {{ file.FileName }}\r\n </span>\r\n <span fd-list-secondary>\r\n <button ariaLabel=\"Remove\" title=\"Remove\" fd-button glyph=\"delete\" ></button>\r\n </span>\r\n </li>\r\n </ul> -->\r\n <div style=\"display: flex; align-items: flex-start; column-gap: 3px; row-gap: 3px; flex-direction: column\">\r\n @for (file of files; track file) {\r\n <!-- <span><fd-icon glyph=\"attachment\"></fd-icon><a fd-link>{{file.FileName}}</a></span> -->\r\n @if (!file.IsDeleted) {\r\n <bsu-file-viewer-popover\r\n [file]=\"file\"\r\n [deviceSize]=\"deviceSize\"\r\n [canDownload]=\"true\"\r\n (remove)=\"removeFile.emit(file)\"\r\n ></bsu-file-viewer-popover>\r\n } }\r\n <!-- <button\r\n fd-button\r\n *ngIf=\"+documentItem.MaxFileCount && !readonly\"\r\n glyph=\"add\"\r\n (click)=\"!readonly && uploader.open()\"\r\n ></button> -->\r\n </div>\r\n <!-- <p *ngFor=\"let file of files\" fd-table-text>\r\n <fd-action-sheet >\r\n <fd-action-sheet-control>\r\n <button\r\n fd-button\r\n glyph=\"settings\"\r\n title=\"Open Action Sheet Mobile\"\r\n id=\"fd-action-sheet-mobile-control\"\r\n aria-haspopup=\"menu\"\r\n [label]=\"file.FileName ||''\"\r\n aria-controls=\"fd-action-sheet-mobile-body\"\r\n ></button>\r\n </fd-action-sheet-control>\r\n\r\n <fd-action-sheet-body\r\n actionSheetBodyId=\"fd-action-sheet-mobile-body\"\r\n ariaLabelledBy=\"fd-action-sheet-mobile-control\"\r\n >\r\n <li fd-action-sheet-item label=\"Search\" glyph=\"search\"></li>\r\n <li fd-action-sheet-item label=\"Download\" glyph=\"download\" ></li>\r\n <li fd-action-sheet-item label=\"Accept\" glyph=\"accept\" ></li>\r\n <li fd-action-sheet-item label=\"Reject\" glyph=\"cancel\" ></li>\r\n <li fd-action-sheet-item label=\"Decide Later\" [isCloseButton]=\"true\"></li>\r\n <li fd-action-sheet-item label=\"Cancel\" [negative]=\"true\" [isCloseButton]=\"true\"></li>\r\n </fd-action-sheet-body>\r\n </fd-action-sheet>\r\n </p> -->\r\n </ng-container>\r\n </td>\r\n <td fd-table-cell>\r\n <div class=\"status\" style=\"position: relative\">\r\n @if (+documentItem.MaxFileCount && !readonly) {\r\n <button\r\n fd-button\r\n glyph=\"attachment\"\r\n [label]=\"'AttachFile' | bbbTranslate\"\r\n [disabled]=\"uploadingState?.key === documentItem.Title && uploadingState?.uploading\"\r\n (click)=\"!readonly && uploader.open()\"\r\n >\r\n @if (uploadingState?.key === documentItem.Title && uploadingState?.uploading) {\r\n <bsu-mask [marginTop]=\"'3px'\"></bsu-mask>\r\n }\r\n </button>\r\n }\r\n <button\r\n fd-button\r\n glyph=\"show\"\r\n fullscreenFiles\r\n [files]=\"files\"\r\n [title]=\"documentItem.Title\"\r\n [fd-inline-help]=\"'\u0645\u0634\u0627\u0647\u062F\u0647 \u0647\u0645\u0647' | bbbTranslate\"\r\n [aria-describedby]=\"'\u0645\u0634\u0627\u0647\u062F\u0647 \u0647\u0645\u0647' | bbbTranslate\"\r\n [ariaLabel]=\"'\u0645\u0634\u0627\u0647\u062F\u0647 \u0647\u0645\u0647' | bbbTranslate\"\r\n fullscreenFiles\r\n [disabled]=\"!files.length\"\r\n [files]=\"files\"\r\n ></button>\r\n <button\r\n fd-button\r\n glyph=\"download\"\r\n [fd-inline-help]=\"'\u062F\u0627\u0646\u0644\u0648\u062F \u0647\u0645\u0647' | bbbTranslate\"\r\n [aria-describedby]=\"'\u062F\u0627\u0646\u0644\u0648\u062F \u0647\u0645\u0647' | bbbTranslate\"\r\n [ariaLabel]=\"'\u062F\u0627\u0646\u0644\u0648\u062F \u0647\u0645\u0647' | bbbTranslate\"\r\n downloadFiles\r\n [disabled]=\"!files.length\"\r\n [files]=\"files\"\r\n (click)=\"downloadAll.emit()\"\r\n ></button>\r\n </div>\r\n </td>\r\n <td fd-table-cell>\r\n <fd-action-sheet #actionSheet>\r\n <fd-action-sheet-control>\r\n <ng-container *ngTemplateOutlet=\"statusTpl\"></ng-container>\r\n </fd-action-sheet-control>\r\n <fd-action-sheet-body>\r\n <li\r\n fd-action-sheet-item\r\n [label]=\"'Accept' | bbbTranslate\"\r\n glyph=\"accept\"\r\n (click)=\"actionSheet.close(); onReject(2)\"\r\n ></li>\r\n <li\r\n fd-action-sheet-item\r\n [label]=\"'Reject' | bbbTranslate\"\r\n glyph=\"cancel\"\r\n (click)=\"actionSheet.close(); onReject(3)\"\r\n ></li>\r\n </fd-action-sheet-body>\r\n </fd-action-sheet>\r\n\r\n @if (status === 3) {\r\n <p fd-table-text maxWidth=\"400px\">\r\n @if (readonly && rejectedReason) {\r\n <span> {{ rejectedReason | bbbTranslate }} </span>\r\n } @if (!readonly) {\r\n <input\r\n fd-form-control\r\n [value]=\"rejectedReason | bbbTranslate\"\r\n [placeholder]=\"'\u062F\u0644\u0627\u06CC\u0644 \u0631\u062F \u0645\u062F\u0631\u06A9' | bbbTranslate\"\r\n />\r\n }\r\n </p>\r\n }\r\n </td>\r\n</tr>\r\n\r\n<fd-file-uploader\r\n #uploader\r\n [style.display]=\"'none'\"\r\n fd-toolbar-item\r\n [id]=\"documentItem.ItemKey\"\r\n [name]=\"'pictures_' + documentItem.ItemKey\"\r\n [accept]=\"documentItem.$ValidExtensions\"\r\n [fileLimit]=\"documentItem.MaxFileCount\"\r\n [multiple]=\"documentItem.MaxFileCount > 0\"\r\n (selectedFilesChanged)=\"onFileSelection($event)\"\r\n></fd-file-uploader>\r\n<ng-template #statusTpl>\r\n <div class=\"status\">\r\n <button fd-button fdType=\"transparent\">\r\n @if (status === 1) {\r\n <span\r\n fd-object-status\r\n [label]=\"'[\u067E\u06CC\u0648\u0633\u062A \u0645\u062F\u0627\u0631\u06A9]' | bbbTranslate\"\r\n [aria-label]=\"'[\u067E\u06CC\u0648\u0633\u062A \u0645\u062F\u0627\u0631\u06A9]' | bbbTranslate\"\r\n ></span>\r\n } @if (status === 2) {\r\n <span\r\n fd-object-status\r\n glyph=\"message-success\"\r\n status=\"positive\"\r\n [label]=\"'Accepted' | bbbTranslate\"\r\n [label]=\"'Accepted' | bbbTranslate\"\r\n ></span>\r\n } @if (status === 3) {\r\n <span\r\n fd-object-status\r\n glyph=\"cancel\"\r\n status=\"negative\"\r\n [label]=\"'Rejected' | bbbTranslate\"\r\n [aria-label]=\"'Rejected' | bbbTranslate\"\r\n ></span>\r\n }\r\n </button>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{display:contents}::ng-deep .fd-list--byline .fd-list__byline-left,::ng-deep .fd-list--byline .fd-list__byline-right{line-height:1.1rem!important}.fd-list__byline.smallSize{flex-direction:column;row-gap:5px}.fd-list__byline.smallSize div{width:100%}td{white-space:nowrap;padding:.5rem}fd-avatar ::ng-deep i{font-size:2.3rem!important}.status{display:flex;align-items:center;column-gap:3px;row-gap:3px}.status span.fd-object-status{font-size:var(--sapFontSize)!important;font-weight:700!important}.status span.fd-object-status ::ng-deep fd-icon{font-size:var(--sapFontSize);font-weight:700}\n"], dependencies: [{ kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: i3.FileViewerPopoverComponent, selector: "bsu-file-viewer-popover", inputs: ["files", "file", "deviceSize", "canDownload", "disableRemove", "fdType", "attachmentViewType"], outputs: ["remove"] }, { kind: "directive", type: i3.FullscreenFilesDirective, selector: "[fullscreenFiles]", inputs: ["files", "title", "deviceSize", "isImageGallery", "component"] }, { kind: "directive", type: i3.DownloadFilesDirective, selector: "[downloadFiles]", inputs: ["files"] }, { kind: "component", type: i4.ActionSheetComponent, selector: "fd-action-sheet", inputs: ["mobile", "placement", "noArrow", "isOpen", "keyboardSupport", "triggers"], outputs: ["focusEscapeList", "isOpenChange"] }, { kind: "component", type: i4.ActionSheetControlComponent, selector: "fd-action-sheet-control", outputs: ["clicked"] }, { kind: "component", type: i4.ActionSheetItemComponent, selector: "[fd-action-sheet-item]", inputs: ["label", "glyph", "glyphFont", "negative", "isCloseButton", "disabled"], outputs: ["keyDown"] }, { kind: "component", type: i4.ActionSheetBodyComponent, selector: "fd-action-sheet-body", inputs: ["actionSheetBodyId", "mobile", "ariaLabel", "ariaLabelledby"] }, { kind: "component", type: i5.AvatarComponent, selector: "fd-avatar", inputs: ["class", "id", "ariaLabel", "ariaLabelledby", "label", "size", "font", "glyph", "zoomGlyph", "circle", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "colorIndication", "random", "clickable", "valueState", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "component", type: i6.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i7.FileUploaderComponent, selector: "fd-file-uploader", inputs: ["disabled", "required", "multiple", "accept", "dragndrop", "maxFileSize", "minFileSize", "id", "ariaLabel", "ariaLabelledBy", "placeholder", "buttonLabel", "buttonAriaLabel", "state", "fileLimit", "inputHidden", "width"], outputs: ["selectedFilesChanged", "selectedInvalidFiles", "onDragEnter", "onDragLeave"] }, { kind: "component", type: i8.FormControlComponent, selector: "input[fd-form-control], textarea[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "directive", type: i9.InlineHelpDirective, selector: "[fd-inline-help]:not([fd-inline-help-template]), [fd-inline-help-template]:not([fd-inline-help])", inputs: ["triggers", "noArrow", "closeOnEscapeKey", "closeOnOutsideClick", "fd-inline-help"] }, { kind: "component", type: i10.ObjectStatusComponent, selector: "[fd-object-status]", inputs: ["class", "status", "glyph", "glyphFont", "label", "glyphAriaLabel", "indicationColor", "clickable", "inverted", "large", "secondaryIndication", "textTemplate"] }, { kind: "directive", type: i11.TableRowDirective, selector: "[fdTableRow], [fd-table-row]", inputs: ["activable", "highlightActive", "hoverable", "focusable", "main", "secondary", "active"] }, { kind: "directive", type: i11.TableCellDirective, selector: "[fdTableCell], [fd-table-cell]", inputs: ["noBorderX", "noBorderY", "activable", "focusable", "hoverable", "fitContent", "noPadding", "noData", "nonInteractive", "key"] }, { kind: "directive", type: i11.TableTextDirective, selector: "[fdTableText], [fd-table-text]", inputs: ["fdTableTextClass", "noWrap", "title", "maxWidth"] }, { kind: "directive", type: i12.ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "pipe", type: i1.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i1.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
69
- }
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaDocumentListItemComponent, decorators: [{
71
- type: Component,
72
- args: [{ selector: 'bdc-barsa-document-list-item', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<!-- <li fd-list-item style=\"padding: 0.5rem 1rem\">\r\n<span fd-list-thumbnail>\r\n <fd-icon *ngIf=\"documentItem.FontIcon\" [glyph]=\"documentItem.FontIcon\"></fd-icon>\r\n <fd-avatar\r\n *ngIf=\"documentItem.Avatar\"\r\n size=\"s\"\r\n [image]=\"documentItem.Avatar.FileId | picFieldSrc: 'ID':null:''\"\r\n [clickable]=\"true\"\r\n ></fd-avatar\r\n ></span>\r\n\r\n <div fd-list-content>\r\n <div fd-list-title>\r\n <div style=\"display: flex; column-gap: 3px\">\r\n <strong\r\n >{{ documentItem.Title }}\r\n <span fd-object-status status=\"negative\" *ngIf=\"documentItem.IsRequired\"\r\n >*({{ '\u0627\u062C\u0628\u0627\u0631\u06CC' | bbbTranslate }})\r\n </span>\r\n </strong>\r\n <div\r\n *ngIf=\"documentItem.$Accepted === false || documentItem.$Accepted === true\"\r\n style=\"display: flex; column-gap: 3px; flex-wrap: wrap; align-items: center\"\r\n >\r\n <span\r\n fd-object-status\r\n [status]=\"accepted ? 'positive' : 'negative'\"\r\n [label]=\"accepted ? acceptedText : rejectedText\"\r\n [clickable]=\"true\"\r\n [inverted]=\"true\"\r\n [aria-label]=\"accepted ? acceptedText : rejectedText\"\r\n ></span>\r\n <fd-popover title=\"Rejected document\" *ngIf=\"rejectedReason && !accepted\">\r\n <fd-popover-control>\r\n <span\r\n fd-object-status\r\n status=\"negative\"\r\n glyph=\"question-mark\"\r\n glyphAriaLabel=\"Negative\"\r\n title=\"Rejected document\"\r\n ></span>\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n <fd-message-strip type=\"error\" [dismissible]=\"false\">\r\n {{ rejectedReason }}\r\n </fd-message-strip>\r\n </fd-popover-body>\r\n </fd-popover>\r\n </div>\r\n </div>\r\n </div>\r\n <div fd-list-byline [twoCol]=\"true\" [class.smallSize]=\"deviceSize === 's'\">\r\n <div fd-list-byline-left>\r\n <div style=\"display: flex; flex-direction: column; row-gap: 5px; flex-wrap: wrap\">\r\n <span>\r\n {{ documentItem.Description }}\r\n </span>\r\n <div style=\"display: flex; flex-wrap: wrap; column-gap: 3px; align-items: center\">\r\n <ng-container *ngIf=\"hasFiles\">\r\n <button fd-button [fdType]=\"'transparent'\" glyph=\"show\" (click)=\"onFullscreen()\"></button>\r\n <ng-container *ngFor=\"let file of files\">\r\n <fd-token\r\n [readOnly]=\"readonly\"\r\n *ngIf=\"!file.IsDeleted\"\r\n (onCloseClick)=\"onRemoveFile(file)\"\r\n >{{ file.FileName }}</fd-token\r\n >\r\n </ng-container>\r\n </ng-container>\r\n <button\r\n fd-button\r\n *ngIf=\"documentItem.MaxFileCount && !readonly\"\r\n glyph=\"attachment\"\r\n [label]=\"'AttachFile' | bbbTranslate\"\r\n (click)=\"!readonly && uploader.open()\"\r\n ></button>\r\n <fd-file-uploader\r\n #uploader\r\n [style.display]=\"'none'\"\r\n fd-toolbar-item\r\n [id]=\"documentItem.ItemKey\"\r\n [name]=\"'pictures_' + documentItem.ItemKey\"\r\n [accept]=\"documentItem.$ValidExtensions\"\r\n [fileLimit]=\"documentItem.MaxFileCount\"\r\n [multiple]=\"documentItem.MaxFileCount > 0\"\r\n (selectedFilesChanged)=\"onFileSelection($event)\"\r\n ></fd-file-uploader>\r\n </div>\r\n </div>\r\n </div>\r\n <div fd-list-byline-right *ngIf=\"documentItem.CanAccept\">\r\n <bdc-accept-reject\r\n [rejectedReason]=\"rejectedReason\"\r\n [positiveText]=\"acceptedText\"\r\n [negativeText]=\"rejectedText\"\r\n [deviceSize]=\"deviceSize\"\r\n [readonly]=\"readonly\"\r\n ></bdc-accept-reject>\r\n </div>\r\n </div>\r\n </div>\r\n </li> -->\r\n\r\n<tr fd-table-row>\r\n <td fd-table-cell>\r\n @if (documentItem.Avatar && !files.length) {\r\n <fd-avatar\r\n size=\"s\"\r\n [image]=\"documentItem.Avatar.FileId | picFieldSrc: 'ID':null:'':64:64\"\r\n [clickable]=\"true\"\r\n [transparent]=\"true\"\r\n ></fd-avatar>\r\n } @else { @if (files.length) {\r\n <fd-avatar [transparent]=\"true\" size=\"s\" [image]=\"firstImageUrl\" [clickable]=\"true\"></fd-avatar>\r\n } @if (!files.length) {\r\n <fd-avatar [transparent]=\"true\" size=\"s\" [glyph]=\"documentItem.FontIcon\" [clickable]=\"true\"></fd-avatar>\r\n } }\r\n </td>\r\n <td fd-table-cell style=\"min-width: 140px\">\r\n <p fd-table-text>\r\n <strong\r\n >{{ documentItem.Title }}\r\n @if (documentItem.IsRequired) {\r\n <span fd-object-status status=\"negative\">*({{ '\u0627\u062C\u0628\u0627\u0631\u06CC' | bbbTranslate }}) </span>\r\n }\r\n </strong>\r\n </p>\r\n <div>\r\n <span>\r\n {{ documentItem.Description }}\r\n </span>\r\n </div>\r\n </td>\r\n\r\n <td fd-table-cell>\r\n <ng-container>\r\n <!-- <ul fd-list>\r\n <li fd-list-item *ngFor=\"let file of files; let ind = index\">\r\n <span fd-list-title>\r\n {{ file.FileName }}\r\n </span>\r\n <span fd-list-secondary>\r\n <button ariaLabel=\"Remove\" title=\"Remove\" fd-button glyph=\"delete\" ></button>\r\n </span>\r\n </li>\r\n </ul> -->\r\n <div style=\"display: flex; align-items: flex-start; column-gap: 3px; row-gap: 3px; flex-direction: column\">\r\n @for (file of files; track file) {\r\n <!-- <span><fd-icon glyph=\"attachment\"></fd-icon><a fd-link>{{file.FileName}}</a></span> -->\r\n @if (!file.IsDeleted) {\r\n <bsu-file-viewer-popover\r\n [file]=\"file\"\r\n [deviceSize]=\"deviceSize\"\r\n [canDownload]=\"true\"\r\n (remove)=\"removeFile.emit(file)\"\r\n ></bsu-file-viewer-popover>\r\n } }\r\n <!-- <button\r\n fd-button\r\n *ngIf=\"+documentItem.MaxFileCount && !readonly\"\r\n glyph=\"add\"\r\n (click)=\"!readonly && uploader.open()\"\r\n ></button> -->\r\n </div>\r\n <!-- <p *ngFor=\"let file of files\" fd-table-text>\r\n <fd-action-sheet >\r\n <fd-action-sheet-control>\r\n <button\r\n fd-button\r\n glyph=\"settings\"\r\n title=\"Open Action Sheet Mobile\"\r\n id=\"fd-action-sheet-mobile-control\"\r\n aria-haspopup=\"menu\"\r\n [label]=\"file.FileName ||''\"\r\n aria-controls=\"fd-action-sheet-mobile-body\"\r\n ></button>\r\n </fd-action-sheet-control>\r\n\r\n <fd-action-sheet-body\r\n actionSheetBodyId=\"fd-action-sheet-mobile-body\"\r\n ariaLabelledBy=\"fd-action-sheet-mobile-control\"\r\n >\r\n <li fd-action-sheet-item label=\"Search\" glyph=\"search\"></li>\r\n <li fd-action-sheet-item label=\"Download\" glyph=\"download\" ></li>\r\n <li fd-action-sheet-item label=\"Accept\" glyph=\"accept\" ></li>\r\n <li fd-action-sheet-item label=\"Reject\" glyph=\"cancel\" ></li>\r\n <li fd-action-sheet-item label=\"Decide Later\" [isCloseButton]=\"true\"></li>\r\n <li fd-action-sheet-item label=\"Cancel\" [negative]=\"true\" [isCloseButton]=\"true\"></li>\r\n </fd-action-sheet-body>\r\n </fd-action-sheet>\r\n </p> -->\r\n </ng-container>\r\n </td>\r\n <td fd-table-cell>\r\n <div class=\"status\" style=\"position: relative\">\r\n @if (+documentItem.MaxFileCount && !readonly) {\r\n <button\r\n fd-button\r\n glyph=\"attachment\"\r\n [label]=\"'AttachFile' | bbbTranslate\"\r\n [disabled]=\"uploadingState?.key === documentItem.Title && uploadingState?.uploading\"\r\n (click)=\"!readonly && uploader.open()\"\r\n >\r\n @if (uploadingState?.key === documentItem.Title && uploadingState?.uploading) {\r\n <bsu-mask [marginTop]=\"'3px'\"></bsu-mask>\r\n }\r\n </button>\r\n }\r\n <button\r\n fd-button\r\n glyph=\"show\"\r\n fullscreenFiles\r\n [files]=\"files\"\r\n [title]=\"documentItem.Title\"\r\n [fd-inline-help]=\"'\u0645\u0634\u0627\u0647\u062F\u0647 \u0647\u0645\u0647' | bbbTranslate\"\r\n [aria-describedby]=\"'\u0645\u0634\u0627\u0647\u062F\u0647 \u0647\u0645\u0647' | bbbTranslate\"\r\n [ariaLabel]=\"'\u0645\u0634\u0627\u0647\u062F\u0647 \u0647\u0645\u0647' | bbbTranslate\"\r\n fullscreenFiles\r\n [disabled]=\"!files.length\"\r\n [files]=\"files\"\r\n ></button>\r\n <button\r\n fd-button\r\n glyph=\"download\"\r\n [fd-inline-help]=\"'\u062F\u0627\u0646\u0644\u0648\u062F \u0647\u0645\u0647' | bbbTranslate\"\r\n [aria-describedby]=\"'\u062F\u0627\u0646\u0644\u0648\u062F \u0647\u0645\u0647' | bbbTranslate\"\r\n [ariaLabel]=\"'\u062F\u0627\u0646\u0644\u0648\u062F \u0647\u0645\u0647' | bbbTranslate\"\r\n downloadFiles\r\n [disabled]=\"!files.length\"\r\n [files]=\"files\"\r\n (click)=\"downloadAll.emit()\"\r\n ></button>\r\n </div>\r\n </td>\r\n <td fd-table-cell>\r\n <fd-action-sheet #actionSheet>\r\n <fd-action-sheet-control>\r\n <ng-container *ngTemplateOutlet=\"statusTpl\"></ng-container>\r\n </fd-action-sheet-control>\r\n <fd-action-sheet-body>\r\n <li\r\n fd-action-sheet-item\r\n [label]=\"'Accept' | bbbTranslate\"\r\n glyph=\"accept\"\r\n (click)=\"actionSheet.close(); onReject(2)\"\r\n ></li>\r\n <li\r\n fd-action-sheet-item\r\n [label]=\"'Reject' | bbbTranslate\"\r\n glyph=\"cancel\"\r\n (click)=\"actionSheet.close(); onReject(3)\"\r\n ></li>\r\n </fd-action-sheet-body>\r\n </fd-action-sheet>\r\n\r\n @if (status === 3) {\r\n <p fd-table-text maxWidth=\"400px\">\r\n @if (readonly && rejectedReason) {\r\n <span> {{ rejectedReason | bbbTranslate }} </span>\r\n } @if (!readonly) {\r\n <input\r\n fd-form-control\r\n [value]=\"rejectedReason | bbbTranslate\"\r\n [placeholder]=\"'\u062F\u0644\u0627\u06CC\u0644 \u0631\u062F \u0645\u062F\u0631\u06A9' | bbbTranslate\"\r\n />\r\n }\r\n </p>\r\n }\r\n </td>\r\n</tr>\r\n\r\n<fd-file-uploader\r\n #uploader\r\n [style.display]=\"'none'\"\r\n fd-toolbar-item\r\n [id]=\"documentItem.ItemKey\"\r\n [name]=\"'pictures_' + documentItem.ItemKey\"\r\n [accept]=\"documentItem.$ValidExtensions\"\r\n [fileLimit]=\"documentItem.MaxFileCount\"\r\n [multiple]=\"documentItem.MaxFileCount > 0\"\r\n (selectedFilesChanged)=\"onFileSelection($event)\"\r\n></fd-file-uploader>\r\n<ng-template #statusTpl>\r\n <div class=\"status\">\r\n <button fd-button fdType=\"transparent\">\r\n @if (status === 1) {\r\n <span\r\n fd-object-status\r\n [label]=\"'[\u067E\u06CC\u0648\u0633\u062A \u0645\u062F\u0627\u0631\u06A9]' | bbbTranslate\"\r\n [aria-label]=\"'[\u067E\u06CC\u0648\u0633\u062A \u0645\u062F\u0627\u0631\u06A9]' | bbbTranslate\"\r\n ></span>\r\n } @if (status === 2) {\r\n <span\r\n fd-object-status\r\n glyph=\"message-success\"\r\n status=\"positive\"\r\n [label]=\"'Accepted' | bbbTranslate\"\r\n [label]=\"'Accepted' | bbbTranslate\"\r\n ></span>\r\n } @if (status === 3) {\r\n <span\r\n fd-object-status\r\n glyph=\"cancel\"\r\n status=\"negative\"\r\n [label]=\"'Rejected' | bbbTranslate\"\r\n [aria-label]=\"'Rejected' | bbbTranslate\"\r\n ></span>\r\n }\r\n </button>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{display:contents}::ng-deep .fd-list--byline .fd-list__byline-left,::ng-deep .fd-list--byline .fd-list__byline-right{line-height:1.1rem!important}.fd-list__byline.smallSize{flex-direction:column;row-gap:5px}.fd-list__byline.smallSize div{width:100%}td{white-space:nowrap;padding:.5rem}fd-avatar ::ng-deep i{font-size:2.3rem!important}.status{display:flex;align-items:center;column-gap:3px;row-gap:3px}.status span.fd-object-status{font-size:var(--sapFontSize)!important;font-weight:700!important}.status span.fd-object-status ::ng-deep fd-icon{font-size:var(--sapFontSize);font-weight:700}\n"] }]
73
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.PictureFieldSourcePipe }], propDecorators: { documentItem: [{
74
- type: Input
75
- }], deviceSize: [{
76
- type: Input
77
- }], files: [{
78
- type: Input
79
- }], accepted: [{
80
- type: Input
81
- }], rejectedReason: [{
82
- type: Input
83
- }], readonly: [{
84
- type: Input
85
- }], status: [{
86
- type: Input
87
- }], uploadingState: [{
88
- type: Input
89
- }], statusChanged: [{
90
- type: Output
91
- }], rejectTextChange: [{
92
- type: Output
93
- }], fileSelectionChange: [{
94
- type: Output
95
- }], removeFile: [{
96
- type: Output
97
- }], fullscreen: [{
98
- type: Output
99
- }], download: [{
100
- type: Output
101
- }], downloadAll: [{
102
- type: Output
103
- }] } });
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtZG9jdW1lbnQtbGlzdC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLWRldmVsb3AtY29tcG9uZW50cy9zcmMvbGliL2JhcnNhLWRvY3VtZW50LWxpc3QtaXRlbS9iYXJzYS1kb2N1bWVudC1saXN0LWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzL3NyYy9saWIvYmFyc2EtZG9jdW1lbnQtbGlzdC1pdGVtL2JhcnNhLWRvY3VtZW50LWxpc3QtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUgsYUFBYSxFQUNiLGFBQWEsRUFFYixhQUFhLEVBQ2Isa0JBQWtCLEVBQ2xCLGFBQWEsRUFDYixnQkFBZ0IsRUFFaEIsT0FBTyxFQUNQLE9BQU8sRUFFVixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7OztBQVU5QixNQUFNLE9BQU8sOEJBQStCLFNBQVEsYUFBYTtJQXFCN0QsWUFBb0IsSUFBdUIsRUFBVSxZQUFvQztRQUNyRixLQUFLLEVBQUUsQ0FBQztRQURRLFNBQUksR0FBSixJQUFJLENBQW1CO1FBQVUsaUJBQVksR0FBWixZQUFZLENBQXdCO1FBVi9FLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQTJDLENBQUM7UUFDNUUscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUM5Qyx3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ2pELGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBc0IsQ0FBQztRQUNwRCxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQTZCLENBQUM7UUFD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Q0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFFSSxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxtQkFBbUI7c0JBQTVCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgSW5wdXQsXHJcbiAgICBPbkNoYW5nZXMsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBTaW1wbGVDaGFuZ2VzXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgICBBYmJyZXZhdGlvbkRldmljZVNpemUsXHJcbiAgICBBdWRpb01pbWVUeXBlLFxyXG4gICAgQmFzZUNvbXBvbmVudCxcclxuICAgIEZpbGVBdHRhY2htZW50SW5mbyxcclxuICAgIEltYWdlTWltZVR5cGUsXHJcbiAgICBQcmV2ZW50RGVmYXVsRXZlbnQsXHJcbiAgICBWaWRlb01pbWVUeXBlLFxyXG4gICAgQWxsRmlsZXNNaW1lVHlwZSxcclxuICAgIFBpY3R1cmVGaWVsZFNvdXJjZVBpcGUsXHJcbiAgICBpc0ltYWdlLFxyXG4gICAgZ2V0SWNvbixcclxuICAgIElVcGxvYWRpbmdTdGF0ZVxyXG59IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuaW1wb3J0IHsgRG9jdW1lbnRJdGVtIH0gZnJvbSAnLi4vbW9kZWxzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdiZGMtYmFyc2EtZG9jdW1lbnQtbGlzdC1pdGVtJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYXJzYS1kb2N1bWVudC1saXN0LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vYmFyc2EtZG9jdW1lbnQtbGlzdC1pdGVtLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHN0YW5kYWxvbmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCYXJzYURvY3VtZW50TGlzdEl0ZW1Db21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICAgIEBJbnB1dCgpIGRvY3VtZW50SXRlbTogRG9jdW1lbnRJdGVtO1xyXG5cclxuICAgIEBJbnB1dCgpIGRldmljZVNpemU6IEFiYnJldmF0aW9uRGV2aWNlU2l6ZTtcclxuICAgIEBJbnB1dCgpIGZpbGVzOiBGaWxlQXR0YWNobWVudEluZm9bXTtcclxuICAgIEBJbnB1dCgpIGFjY2VwdGVkOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgcmVqZWN0ZWRSZWFzb246IHN0cmluZztcclxuICAgIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgc3RhdHVzOiBudW1iZXI7XHJcbiAgICBASW5wdXQoKSB1cGxvYWRpbmdTdGF0ZTogSVVwbG9hZGluZ1N0YXRlO1xyXG5cclxuICAgIEBPdXRwdXQoKSBzdGF0dXNDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjx7IHZhbHVlOiBudW1iZXI7IHJlamVjdGVkVGV4dDogc3RyaW5nIH0+KCk7XHJcbiAgICBAT3V0cHV0KCkgcmVqZWN0VGV4dENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gICAgQE91dHB1dCgpIGZpbGVTZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGVbXT4oKTtcclxuICAgIEBPdXRwdXQoKSByZW1vdmVGaWxlID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlQXR0YWNobWVudEluZm8+KCk7XHJcbiAgICBAT3V0cHV0KCkgZnVsbHNjcmVlbiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVsbCB8IEZpbGVBdHRhY2htZW50SW5mbz4oKTtcclxuICAgIEBPdXRwdXQoKSBkb3dubG9hZCA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZUF0dGFjaG1lbnRJbmZvPigpO1xyXG4gICAgQE91dHB1dCgpIGRvd25sb2FkQWxsID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAgIGhhc0ZpbGVzID0gZmFsc2U7XHJcbiAgICBmaXJzdEltYWdlVXJsOiBhbnk7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIF9waWNGaWVsZFNyYzogUGljdHVyZUZpZWxkU291cmNlUGlwZSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICB9XHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgICAgIGNvbnN0IGRvY3VtZW50SXRlbSA9IHRoaXMuZG9jdW1lbnRJdGVtO1xyXG4gICAgICAgIGRvY3VtZW50SXRlbS4kVmFsaWRFeHRlbnNpb25zID0gYCAgICAgICAgICAgIFxyXG4gICAgICAgICR7ZG9jdW1lbnRJdGVtLlN1cHBvcnRJbWFnZSA/IEltYWdlTWltZVR5cGUgOiAnJ30sXHJcbiAgICAgICAgJHtkb2N1bWVudEl0ZW0uU3VwcG9ydEF1ZGlvID8gQXVkaW9NaW1lVHlwZSA6ICcnfSxcclxuICAgICAgICAke2RvY3VtZW50SXRlbS5TdXBwb3J0VmlkZW8gPyBWaWRlb01pbWVUeXBlIDogJyd9LFxyXG4gICAgICAgICR7ZG9jdW1lbnRJdGVtLlN1cHBvcnRGaWxlID8gQWxsRmlsZXNNaW1lVHlwZSA6ICcnfVxyXG4gICAgICAgIGA7XHJcbiAgICB9XHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkNoYW5nZXMoY2hhbmdlcyk7XHJcbiAgICAgICAgY29uc3QgeyBmaWxlcyB9ID0gY2hhbmdlcztcclxuICAgICAgICBmaWxlcyAmJiBBcnJheS5pc0FycmF5KGZpbGVzLmN1cnJlbnRWYWx1ZSkgJiYgdGhpcy5fc2V0Rmlyc3RJbWFnZShmaWxlcy5jdXJyZW50VmFsdWUpO1xyXG4gICAgICAgIHRoaXMuX2RldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICAgIG9uUmVqZWN0KGU6IG51bWJlcik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc3RhdHVzQ2hhbmdlZC5lbWl0KHsgdmFsdWU6IGUsIHJlamVjdGVkVGV4dDogZSA9PT0gMiA/ICcnIDogdGhpcy5yZWplY3RlZFJlYXNvbiB9KTtcclxuICAgIH1cclxuICAgIG9uUmVqZWN0ZWRUZXh0Q2hhbmdlKGUpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnJlamVjdFRleHRDaGFuZ2UuZW1pdChlLnRhcmdldC52YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBvblByZXZlbnRDbGljayhlKTogdm9pZCB7XHJcbiAgICAgICAgUHJldmVudERlZmF1bEV2ZW50KGUpO1xyXG4gICAgfVxyXG4gICAgb25GaWxlU2VsZWN0aW9uKGZpbGVzOiBGaWxlW10pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZpbGVTZWxlY3Rpb25DaGFuZ2UuZW1pdChmaWxlcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIF9zZXRGaXJzdEltYWdlKGZpbGVzOiBGaWxlQXR0YWNobWVudEluZm9bXSk6IHZvaWQge1xyXG4gICAgICAgIGZpbGVzLmxlbmd0aCAmJlxyXG4gICAgICAgICAgICAodGhpcy5maXJzdEltYWdlVXJsID0gaXNJbWFnZShmaWxlc1swXS5UeXBlKVxyXG4gICAgICAgICAgICAgICAgPyB0aGlzLl9waWNGaWVsZFNyYy50cmFuc2Zvcm0oZmlsZXNbMF0uSWQsICdJRCcsIG51bGwsICcnLCAxMjAsIDEyMClcclxuICAgICAgICAgICAgICAgIDogZ2V0SWNvbihmaWxlc1swXS5UeXBlKSk7XHJcbiAgICB9XHJcbiAgICBwcm90ZWN0ZWQgX2RldGVjdENoYW5nZXMoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxufVxyXG4iLCI8IS0tIDxsaSBmZC1saXN0LWl0ZW0gc3R5bGU9XCJwYWRkaW5nOiAwLjVyZW0gMXJlbVwiPlxyXG48c3BhbiBmZC1saXN0LXRodW1ibmFpbD5cclxuICA8ZmQtaWNvbiAqbmdJZj1cImRvY3VtZW50SXRlbS5Gb250SWNvblwiIFtnbHlwaF09XCJkb2N1bWVudEl0ZW0uRm9udEljb25cIj48L2ZkLWljb24+XHJcbiAgPGZkLWF2YXRhclxyXG4gICAgKm5nSWY9XCJkb2N1bWVudEl0ZW0uQXZhdGFyXCJcclxuICAgIHNpemU9XCJzXCJcclxuICAgIFtpbWFnZV09XCJkb2N1bWVudEl0ZW0uQXZhdGFyLkZpbGVJZCB8IHBpY0ZpZWxkU3JjOiAnSUQnOm51bGw6JydcIlxyXG4gICAgW2NsaWNrYWJsZV09XCJ0cnVlXCJcclxuICAgID48L2ZkLWF2YXRhclxyXG4gID48L3NwYW4+XHJcblxyXG4gIDxkaXYgZmQtbGlzdC1jb250ZW50PlxyXG4gICAgPGRpdiBmZC1saXN0LXRpdGxlPlxyXG4gICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgY29sdW1uLWdhcDogM3B4XCI+XHJcbiAgICAgICAgPHN0cm9uZ1xyXG4gICAgICAgICAgPnt7IGRvY3VtZW50SXRlbS5UaXRsZSB9fVxyXG4gICAgICAgICAgPHNwYW4gZmQtb2JqZWN0LXN0YXR1cyBzdGF0dXM9XCJuZWdhdGl2ZVwiICpuZ0lmPVwiZG9jdW1lbnRJdGVtLklzUmVxdWlyZWRcIlxyXG4gICAgICAgICAgICA+Kih7eyAn2KfYrNio2KfYsduMJyB8IGJiYlRyYW5zbGF0ZSB9fSlcclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L3N0cm9uZz5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAqbmdJZj1cImRvY3VtZW50SXRlbS4kQWNjZXB0ZWQgPT09IGZhbHNlIHx8IGRvY3VtZW50SXRlbS4kQWNjZXB0ZWQgPT09IHRydWVcIlxyXG4gICAgICAgICAgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBjb2x1bW4tZ2FwOiAzcHg7IGZsZXgtd3JhcDogd3JhcDsgYWxpZ24taXRlbXM6IGNlbnRlclwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICBmZC1vYmplY3Qtc3RhdHVzXHJcbiAgICAgICAgICAgIFtzdGF0dXNdPVwiYWNjZXB0ZWQgPyAncG9zaXRpdmUnIDogJ25lZ2F0aXZlJ1wiXHJcbiAgICAgICAgICAgIFtsYWJlbF09XCJhY2NlcHRlZCA/IGFjY2VwdGVkVGV4dCA6IHJlamVjdGVkVGV4dFwiXHJcbiAgICAgICAgICAgIFtjbGlja2FibGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgIFtpbnZlcnRlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgW2FyaWEtbGFiZWxdPVwiYWNjZXB0ZWQgPyBhY2NlcHRlZFRleHQgOiByZWplY3RlZFRleHRcIlxyXG4gICAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgICAgIDxmZC1wb3BvdmVyIHRpdGxlPVwiUmVqZWN0ZWQgZG9jdW1lbnRcIiAqbmdJZj1cInJlamVjdGVkUmVhc29uICYmICFhY2NlcHRlZFwiPlxyXG4gICAgICAgICAgICA8ZmQtcG9wb3Zlci1jb250cm9sPlxyXG4gICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICBmZC1vYmplY3Qtc3RhdHVzXHJcbiAgICAgICAgICAgICAgICBzdGF0dXM9XCJuZWdhdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICBnbHlwaD1cInF1ZXN0aW9uLW1hcmtcIlxyXG4gICAgICAgICAgICAgICAgZ2x5cGhBcmlhTGFiZWw9XCJOZWdhdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICB0aXRsZT1cIlJlamVjdGVkIGRvY3VtZW50XCJcclxuICAgICAgICAgICAgICA+PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2ZkLXBvcG92ZXItY29udHJvbD5cclxuICAgICAgICAgICAgPGZkLXBvcG92ZXItYm9keT5cclxuICAgICAgICAgICAgICA8ZmQtbWVzc2FnZS1zdHJpcCB0eXBlPVwiZXJyb3JcIiBbZGlzbWlzc2libGVdPVwiZmFsc2VcIj5cclxuICAgICAgICAgICAgICAgIHt7IHJlamVjdGVkUmVhc29uIH19XHJcbiAgICAgICAgICAgICAgPC9mZC1tZXNzYWdlLXN0cmlwPlxyXG4gICAgICAgICAgICA8L2ZkLXBvcG92ZXItYm9keT5cclxuICAgICAgICAgIDwvZmQtcG9wb3Zlcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgZmQtbGlzdC1ieWxpbmUgW3R3b0NvbF09XCJ0cnVlXCIgW2NsYXNzLnNtYWxsU2l6ZV09XCJkZXZpY2VTaXplID09PSAncydcIj5cclxuICAgICAgPGRpdiBmZC1saXN0LWJ5bGluZS1sZWZ0PlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyByb3ctZ2FwOiA1cHg7IGZsZXgtd3JhcDogd3JhcFwiPlxyXG4gICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgIHt7IGRvY3VtZW50SXRlbS5EZXNjcmlwdGlvbiB9fVxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGZsZXgtd3JhcDogd3JhcDsgY29sdW1uLWdhcDogM3B4OyBhbGlnbi1pdGVtczogY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNGaWxlc1wiPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gZmQtYnV0dG9uIFtmZFR5cGVdPVwiJ3RyYW5zcGFyZW50J1wiIGdseXBoPVwic2hvd1wiIChjbGljayk9XCJvbkZ1bGxzY3JlZW4oKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGZpbGUgb2YgZmlsZXNcIj5cclxuICAgICAgICAgICAgICAgIDxmZC10b2tlblxyXG4gICAgICAgICAgICAgICAgICBbcmVhZE9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cIiFmaWxlLklzRGVsZXRlZFwiXHJcbiAgICAgICAgICAgICAgICAgIChvbkNsb3NlQ2xpY2spPVwib25SZW1vdmVGaWxlKGZpbGUpXCJcclxuICAgICAgICAgICAgICAgICAgPnt7IGZpbGUuRmlsZU5hbWUgfX08L2ZkLXRva2VuXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJkb2N1bWVudEl0ZW0uTWF4RmlsZUNvdW50ICYmICFyZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICBnbHlwaD1cImF0dGFjaG1lbnRcIlxyXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIidBdHRhY2hGaWxlJyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiIXJlYWRvbmx5ICYmIHVwbG9hZGVyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDxmZC1maWxlLXVwbG9hZGVyXHJcbiAgICAgICAgICAgICAgICAjdXBsb2FkZXJcclxuICAgICAgICAgICAgICAgIFtzdHlsZS5kaXNwbGF5XT1cIidub25lJ1wiXHJcbiAgICAgICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cclxuICAgICAgICAgICAgICAgIFtpZF09XCJkb2N1bWVudEl0ZW0uSXRlbUtleVwiXHJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCIncGljdHVyZXNfJyArIGRvY3VtZW50SXRlbS5JdGVtS2V5XCJcclxuICAgICAgICAgICAgICAgIFthY2NlcHRdPVwiZG9jdW1lbnRJdGVtLiRWYWxpZEV4dGVuc2lvbnNcIlxyXG4gICAgICAgICAgICAgICAgW2ZpbGVMaW1pdF09XCJkb2N1bWVudEl0ZW0uTWF4RmlsZUNvdW50XCJcclxuICAgICAgICAgICAgICAgIFttdWx0aXBsZV09XCJkb2N1bWVudEl0ZW0uTWF4RmlsZUNvdW50ID4gMFwiXHJcbiAgICAgICAgICAgICAgICAoc2VsZWN0ZWRGaWxlc0NoYW5nZWQpPVwib25GaWxlU2VsZWN0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgICAgID48L2ZkLWZpbGUtdXBsb2FkZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBmZC1saXN0LWJ5bGluZS1yaWdodCAqbmdJZj1cImRvY3VtZW50SXRlbS5DYW5BY2NlcHRcIj5cclxuICAgICAgICAgIDxiZGMtYWNjZXB0LXJlamVjdFxyXG4gICAgICAgICAgICBbcmVqZWN0ZWRSZWFzb25dPVwicmVqZWN0ZWRSZWFzb25cIlxyXG4gICAgICAgICAgICBbcG9zaXRpdmVUZXh0XT1cImFjY2VwdGVkVGV4dFwiXHJcbiAgICAgICAgICAgIFtuZWdhdGl2ZVRleHRdPVwicmVqZWN0ZWRUZXh0XCJcclxuICAgICAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXHJcbiAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgICAgICA+PC9iZGMtYWNjZXB0LXJlamVjdD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2xpPiAtLT5cclxuXHJcbjx0ciBmZC10YWJsZS1yb3c+XHJcbiAgICA8dGQgZmQtdGFibGUtY2VsbD5cclxuICAgICAgICBAaWYgKGRvY3VtZW50SXRlbS5BdmF0YXIgJiYgIWZpbGVzLmxlbmd0aCkge1xyXG4gICAgICAgIDxmZC1hdmF0YXJcclxuICAgICAgICAgICAgc2l6ZT1cInNcIlxyXG4gICAgICAgICAgICBbaW1hZ2VdPVwiZG9jdW1lbnRJdGVtLkF2YXRhci5GaWxlSWQgfCBwaWNGaWVsZFNyYzogJ0lEJzpudWxsOicnOjY0OjY0XCJcclxuICAgICAgICAgICAgW2NsaWNrYWJsZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgW3RyYW5zcGFyZW50XT1cInRydWVcIlxyXG4gICAgICAgID48L2ZkLWF2YXRhcj5cclxuICAgICAgICB9IEBlbHNlIHsgQGlmIChmaWxlcy5sZW5ndGgpIHtcclxuICAgICAgICA8ZmQtYXZhdGFyIFt0cmFuc3BhcmVudF09XCJ0cnVlXCIgc2l6ZT1cInNcIiBbaW1hZ2VdPVwiZmlyc3RJbWFnZVVybFwiIFtjbGlja2FibGVdPVwidHJ1ZVwiPjwvZmQtYXZhdGFyPlxyXG4gICAgICAgIH0gQGlmICghZmlsZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgPGZkLWF2YXRhciBbdHJhbnNwYXJlbnRdPVwidHJ1ZVwiIHNpemU9XCJzXCIgW2dseXBoXT1cImRvY3VtZW50SXRlbS5Gb250SWNvblwiIFtjbGlja2FibGVdPVwidHJ1ZVwiPjwvZmQtYXZhdGFyPlxyXG4gICAgICAgIH0gfVxyXG4gICAgPC90ZD5cclxuICAgIDx0ZCBmZC10YWJsZS1jZWxsIHN0eWxlPVwibWluLXdpZHRoOiAxNDBweFwiPlxyXG4gICAgICAgIDxwIGZkLXRhYmxlLXRleHQ+XHJcbiAgICAgICAgICAgIDxzdHJvbmdcclxuICAgICAgICAgICAgICAgID57eyBkb2N1bWVudEl0ZW0uVGl0bGUgfX1cclxuICAgICAgICAgICAgICAgIEBpZiAoZG9jdW1lbnRJdGVtLklzUmVxdWlyZWQpIHtcclxuICAgICAgICAgICAgICAgIDxzcGFuIGZkLW9iamVjdC1zdGF0dXMgc3RhdHVzPVwibmVnYXRpdmVcIj4qKHt7ICfYp9is2KjYp9ix24wnIHwgYmJiVHJhbnNsYXRlIH19KSA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvc3Ryb25nPlxyXG4gICAgICAgIDwvcD5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgIHt7IGRvY3VtZW50SXRlbS5EZXNjcmlwdGlvbiB9fVxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L3RkPlxyXG5cclxuICAgIDx0ZCBmZC10YWJsZS1jZWxsPlxyXG4gICAgICAgIDxuZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwhLS0gPHVsIGZkLWxpc3Q+XHJcbiAgICAgICAgPGxpIGZkLWxpc3QtaXRlbSAqbmdGb3I9XCJsZXQgZmlsZSBvZiBmaWxlczsgbGV0IGluZCA9IGluZGV4XCI+XHJcbiAgICAgICAgICA8c3BhbiBmZC1saXN0LXRpdGxlPlxyXG4gICAgICAgICAgICB7eyBmaWxlLkZpbGVOYW1lIH19XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiBmZC1saXN0LXNlY29uZGFyeT5cclxuICAgICAgICAgICAgPGJ1dHRvbiBhcmlhTGFiZWw9XCJSZW1vdmVcIiB0aXRsZT1cIlJlbW92ZVwiIGZkLWJ1dHRvbiBnbHlwaD1cImRlbGV0ZVwiID48L2J1dHRvbj5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICA8L3VsPiAtLT5cclxuICAgICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyBjb2x1bW4tZ2FwOiAzcHg7IHJvdy1nYXA6IDNweDsgZmxleC1kaXJlY3Rpb246IGNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgQGZvciAoZmlsZSBvZiBmaWxlczsgdHJhY2sgZmlsZSkge1xyXG4gICAgICAgICAgICAgICAgPCEtLSA8c3Bhbj48ZmQtaWNvbiBnbHlwaD1cImF0dGFjaG1lbnRcIj48L2ZkLWljb24+PGEgZmQtbGluaz57e2ZpbGUuRmlsZU5hbWV9fTwvYT48L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICAgICAgQGlmICghZmlsZS5Jc0RlbGV0ZWQpIHtcclxuICAgICAgICAgICAgICAgIDxic3UtZmlsZS12aWV3ZXItcG9wb3ZlclxyXG4gICAgICAgICAgICAgICAgICAgIFtmaWxlXT1cImZpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjYW5Eb3dubG9hZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAocmVtb3ZlKT1cInJlbW92ZUZpbGUuZW1pdChmaWxlKVwiXHJcbiAgICAgICAgICAgICAgICA+PC9ic3UtZmlsZS12aWV3ZXItcG9wb3Zlcj5cclxuICAgICAgICAgICAgICAgIH0gfVxyXG4gICAgICAgICAgICAgICAgPCEtLSA8YnV0dG9uXHJcbiAgICAgICAgZmQtYnV0dG9uXHJcbiAgICAgICAgKm5nSWY9XCIrZG9jdW1lbnRJdGVtLk1heEZpbGVDb3VudCAmJiAhcmVhZG9ubHlcIlxyXG4gICAgICAgIGdseXBoPVwiYWRkXCJcclxuICAgICAgICAoY2xpY2spPVwiIXJlYWRvbmx5ICYmIHVwbG9hZGVyLm9wZW4oKVwiXHJcbiAgICAgID48L2J1dHRvbj4gLS0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8IS0tIDxwICpuZ0Zvcj1cImxldCBmaWxlIG9mIGZpbGVzXCIgZmQtdGFibGUtdGV4dD5cclxuICAgIDxmZC1hY3Rpb24tc2hlZXQgID5cclxuICAgICAgPGZkLWFjdGlvbi1zaGVldC1jb250cm9sPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgICAgZ2x5cGg9XCJzZXR0aW5nc1wiXHJcbiAgICAgICAgICB0aXRsZT1cIk9wZW4gQWN0aW9uIFNoZWV0IE1vYmlsZVwiXHJcbiAgICAgICAgICBpZD1cImZkLWFjdGlvbi1zaGVldC1tb2JpbGUtY29udHJvbFwiXHJcbiAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwibWVudVwiXHJcbiAgICAgICAgICBbbGFiZWxdPVwiZmlsZS5GaWxlTmFtZSB8fCcnXCJcclxuICAgICAgICAgIGFyaWEtY29udHJvbHM9XCJmZC1hY3Rpb24tc2hlZXQtbW9iaWxlLWJvZHlcIlxyXG4gICAgICAgID48L2J1dHRvbj5cclxuICAgICAgPC9mZC1hY3Rpb24tc2hlZXQtY29udHJvbD5cclxuXHJcbiAgICAgIDxmZC1hY3Rpb24tc2hlZXQtYm9keVxyXG4gICAgICAgIGFjdGlvblNoZWV0Qm9keUlkPVwiZmQtYWN0aW9uLXNoZWV0LW1vYmlsZS1ib2R5XCJcclxuICAgICAgICBhcmlhTGFiZWxsZWRCeT1cImZkLWFjdGlvbi1zaGVldC1tb2JpbGUtY29udHJvbFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgIDxsaSBmZC1hY3Rpb24tc2hlZXQtaXRlbSBsYWJlbD1cIlNlYXJjaFwiIGdseXBoPVwic2VhcmNoXCI+PC9saT5cclxuICAgICAgICA8bGkgZmQtYWN0aW9uLXNoZWV0LWl0ZW0gbGFiZWw9XCJEb3dubG9hZFwiIGdseXBoPVwiZG93bmxvYWRcIiA+PC9saT5cclxuICAgICAgICA8bGkgZmQtYWN0aW9uLXNoZWV0LWl0ZW0gbGFiZWw9XCJBY2NlcHRcIiBnbHlwaD1cImFjY2VwdFwiID48L2xpPlxyXG4gICAgICAgIDxsaSBmZC1hY3Rpb24tc2hlZXQtaXRlbSBsYWJlbD1cIlJlamVjdFwiIGdseXBoPVwiY2FuY2VsXCIgPjwvbGk+XHJcbiAgICAgICAgPGxpIGZkLWFjdGlvbi1zaGVldC1pdGVtIGxhYmVsPVwiRGVjaWRlIExhdGVyXCIgW2lzQ2xvc2VCdXR0b25dPVwidHJ1ZVwiPjwvbGk+XHJcbiAgICAgICAgPGxpIGZkLWFjdGlvbi1zaGVldC1pdGVtIGxhYmVsPVwiQ2FuY2VsXCIgW25lZ2F0aXZlXT1cInRydWVcIiBbaXNDbG9zZUJ1dHRvbl09XCJ0cnVlXCI+PC9saT5cclxuICAgICAgPC9mZC1hY3Rpb24tc2hlZXQtYm9keT5cclxuICAgIDwvZmQtYWN0aW9uLXNoZWV0PlxyXG4gIDwvcD4gLS0+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L3RkPlxyXG4gICAgPHRkIGZkLXRhYmxlLWNlbGw+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInN0YXR1c1wiIHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlXCI+XHJcbiAgICAgICAgICAgIEBpZiAoK2RvY3VtZW50SXRlbS5NYXhGaWxlQ291bnQgJiYgIXJlYWRvbmx5KSB7XHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgZ2x5cGg9XCJhdHRhY2htZW50XCJcclxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCInQXR0YWNoRmlsZScgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInVwbG9hZGluZ1N0YXRlPy5rZXkgPT09IGRvY3VtZW50SXRlbS5UaXRsZSAmJiB1cGxvYWRpbmdTdGF0ZT8udXBsb2FkaW5nXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCIhcmVhZG9ubHkgJiYgdXBsb2FkZXIub3BlbigpXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgQGlmICh1cGxvYWRpbmdTdGF0ZT8ua2V5ID09PSBkb2N1bWVudEl0ZW0uVGl0bGUgJiYgdXBsb2FkaW5nU3RhdGU/LnVwbG9hZGluZykge1xyXG4gICAgICAgICAgICAgICAgPGJzdS1tYXNrIFttYXJnaW5Ub3BdPVwiJzNweCdcIj48L2JzdS1tYXNrPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICBmZC1idXR0b25cclxuICAgICAgICAgICAgICAgIGdseXBoPVwic2hvd1wiXHJcbiAgICAgICAgICAgICAgICBmdWxsc2NyZWVuRmlsZXNcclxuICAgICAgICAgICAgICAgIFtmaWxlc109XCJmaWxlc1wiXHJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiZG9jdW1lbnRJdGVtLlRpdGxlXCJcclxuICAgICAgICAgICAgICAgIFtmZC1pbmxpbmUtaGVscF09XCIn2YXYtNin2YfYr9mHINmH2YXZhycgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgW2FyaWEtZGVzY3JpYmVkYnldPVwiJ9mF2LTYp9mH2K/ZhyDZh9mF2YcnIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgIFthcmlhTGFiZWxdPVwiJ9mF2LTYp9mH2K/ZhyDZh9mF2YcnIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgIGZ1bGxzY3JlZW5GaWxlc1xyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFmaWxlcy5sZW5ndGhcIlxyXG4gICAgICAgICAgICAgICAgW2ZpbGVzXT1cImZpbGVzXCJcclxuICAgICAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICBmZC1idXR0b25cclxuICAgICAgICAgICAgICAgIGdseXBoPVwiZG93bmxvYWRcIlxyXG4gICAgICAgICAgICAgICAgW2ZkLWlubGluZS1oZWxwXT1cIifYr9in2YbZhNmI2K8g2YfZhdmHJyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBbYXJpYS1kZXNjcmliZWRieV09XCIn2K/Yp9mG2YTZiNivINmH2YXZhycgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCIn2K/Yp9mG2YTZiNivINmH2YXZhycgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgZG93bmxvYWRGaWxlc1xyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFmaWxlcy5sZW5ndGhcIlxyXG4gICAgICAgICAgICAgICAgW2ZpbGVzXT1cImZpbGVzXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJkb3dubG9hZEFsbC5lbWl0KClcIlxyXG4gICAgICAgICAgICA+PC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L3RkPlxyXG4gICAgPHRkIGZkLXRhYmxlLWNlbGw+XHJcbiAgICAgICAgPGZkLWFjdGlvbi1zaGVldCAjYWN0aW9uU2hlZXQ+XHJcbiAgICAgICAgICAgIDxmZC1hY3Rpb24tc2hlZXQtY29udHJvbD5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzdGF0dXNUcGxcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9mZC1hY3Rpb24tc2hlZXQtY29udHJvbD5cclxuICAgICAgICAgICAgPGZkLWFjdGlvbi1zaGVldC1ib2R5PlxyXG4gICAgICAgICAgICAgICAgPGxpXHJcbiAgICAgICAgICAgICAgICAgICAgZmQtYWN0aW9uLXNoZWV0LWl0ZW1cclxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ0FjY2VwdCcgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIGdseXBoPVwiYWNjZXB0XCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWN0aW9uU2hlZXQuY2xvc2UoKTsgb25SZWplY3QoMilcIlxyXG4gICAgICAgICAgICAgICAgPjwvbGk+XHJcbiAgICAgICAgICAgICAgICA8bGlcclxuICAgICAgICAgICAgICAgICAgICBmZC1hY3Rpb24tc2hlZXQtaXRlbVxyXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInUmVqZWN0JyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgZ2x5cGg9XCJjYW5jZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhY3Rpb25TaGVldC5jbG9zZSgpOyBvblJlamVjdCgzKVwiXHJcbiAgICAgICAgICAgICAgICA+PC9saT5cclxuICAgICAgICAgICAgPC9mZC1hY3Rpb24tc2hlZXQtYm9keT5cclxuICAgICAgICA8L2ZkLWFjdGlvbi1zaGVldD5cclxuXHJcbiAgICAgICAgQGlmIChzdGF0dXMgPT09IDMpIHtcclxuICAgICAgICA8cCBmZC10YWJsZS10ZXh0IG1heFdpZHRoPVwiNDAwcHhcIj5cclxuICAgICAgICAgICAgQGlmIChyZWFkb25seSAmJiByZWplY3RlZFJlYXNvbikge1xyXG4gICAgICAgICAgICA8c3Bhbj4ge3sgcmVqZWN0ZWRSZWFzb24gfCBiYmJUcmFuc2xhdGUgfX0gPC9zcGFuPlxyXG4gICAgICAgICAgICB9IEBpZiAoIXJlYWRvbmx5KSB7XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgZmQtZm9ybS1jb250cm9sXHJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwicmVqZWN0ZWRSZWFzb24gfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIifYr9mE2KfbjNmEINix2K8g2YXYr9ix2qknIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvcD5cclxuICAgICAgICB9XHJcbiAgICA8L3RkPlxyXG48L3RyPlxyXG5cclxuPGZkLWZpbGUtdXBsb2FkZXJcclxuICAgICN1cGxvYWRlclxyXG4gICAgW3N0eWxlLmRpc3BsYXldPVwiJ25vbmUnXCJcclxuICAgIGZkLXRvb2xiYXItaXRlbVxyXG4gICAgW2lkXT1cImRvY3VtZW50SXRlbS5JdGVtS2V5XCJcclxuICAgIFtuYW1lXT1cIidwaWN0dXJlc18nICsgZG9jdW1lbnRJdGVtLkl0ZW1LZXlcIlxyXG4gICAgW2FjY2VwdF09XCJkb2N1bWVudEl0ZW0uJFZhbGlkRXh0ZW5zaW9uc1wiXHJcbiAgICBbZmlsZUxpbWl0XT1cImRvY3VtZW50SXRlbS5NYXhGaWxlQ291bnRcIlxyXG4gICAgW211bHRpcGxlXT1cImRvY3VtZW50SXRlbS5NYXhGaWxlQ291bnQgPiAwXCJcclxuICAgIChzZWxlY3RlZEZpbGVzQ2hhbmdlZCk9XCJvbkZpbGVTZWxlY3Rpb24oJGV2ZW50KVwiXHJcbj48L2ZkLWZpbGUtdXBsb2FkZXI+XHJcbjxuZy10ZW1wbGF0ZSAjc3RhdHVzVHBsPlxyXG4gICAgPGRpdiBjbGFzcz1cInN0YXR1c1wiPlxyXG4gICAgICAgIDxidXR0b24gZmQtYnV0dG9uIGZkVHlwZT1cInRyYW5zcGFyZW50XCI+XHJcbiAgICAgICAgICAgIEBpZiAoc3RhdHVzID09PSAxKSB7XHJcbiAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICBmZC1vYmplY3Qtc3RhdHVzXHJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ1vZvtuM2YjYs9iqINmF2K/Yp9ix2qldJyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBbYXJpYS1sYWJlbF09XCInW9m+24zZiNiz2Kog2YXYr9in2LHaqV0nIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgICAgICAgfSBAaWYgKHN0YXR1cyA9PT0gMikge1xyXG4gICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgZmQtb2JqZWN0LXN0YXR1c1xyXG4gICAgICAgICAgICAgICAgZ2x5cGg9XCJtZXNzYWdlLXN1Y2Nlc3NcIlxyXG4gICAgICAgICAgICAgICAgc3RhdHVzPVwicG9zaXRpdmVcIlxyXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIidBY2NlcHRlZCcgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIidBY2NlcHRlZCcgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICA+PC9zcGFuPlxyXG4gICAgICAgICAgICB9IEBpZiAoc3RhdHVzID09PSAzKSB7XHJcbiAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICBmZC1vYmplY3Qtc3RhdHVzXHJcbiAgICAgICAgICAgICAgICBnbHlwaD1cImNhbmNlbFwiXHJcbiAgICAgICAgICAgICAgICBzdGF0dXM9XCJuZWdhdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ1JlamVjdGVkJyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBbYXJpYS1sYWJlbF09XCInUmVqZWN0ZWQnIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==